Skip to content

Commit 747e937

Browse files
hoshinolinajannau
authored andcommitted
media: apple: isp: Clear IRQs when resetting coproc
XXX this might be wrong on some chips? Signed-off-by: Asahi Lina <lina@asahilina.net>
1 parent 7587888 commit 747e937

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

  • drivers/media/platform/apple/isp

drivers/media/platform/apple/isp/isp-fw.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ static int isp_reset_coproc(struct apple_isp *isp)
213213
{
214214
int retries;
215215
u32 status;
216+
u32 val;
216217

217218
isp_coproc_write32(isp, ISP_COPROC_EDPRCR, 0x2);
218219

@@ -228,6 +229,18 @@ static int isp_reset_coproc(struct apple_isp *isp)
228229
isp_coproc_write32(isp, ISP_COPROC_IRQ_MASK_4, 0xffffffff);
229230
isp_coproc_write32(isp, ISP_COPROC_IRQ_MASK_5, 0xffffffff);
230231

232+
for (retries = 0; retries < 128; retries++) {
233+
val = isp_coproc_read32(isp, 0x818);
234+
if (val == 0)
235+
break;
236+
}
237+
238+
for (retries = 0; retries < 128; retries++) {
239+
val = isp_coproc_read32(isp, 0x81c);
240+
if (val == 0)
241+
break;
242+
}
243+
231244
for (retries = 0; retries < ISP_FIRMWARE_MAX_TRIES; retries++) {
232245
status = isp_coproc_read32(isp, ISP_COPROC_STATUS);
233246
if (status & ISP_COPROC_IN_WFI) {

0 commit comments

Comments
 (0)