Skip to content

Commit a6472f8

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 85e9981 commit a6472f8

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
@@ -215,6 +215,7 @@ static int isp_reset_coproc(struct apple_isp *isp)
215215
{
216216
int retries;
217217
u32 status;
218+
u32 val;
218219

219220
isp_coproc_write32(isp, ISP_COPROC_EDPRCR, 0x2);
220221

@@ -230,6 +231,18 @@ static int isp_reset_coproc(struct apple_isp *isp)
230231
isp_coproc_write32(isp, ISP_COPROC_IRQ_MASK_4, 0xffffffff);
231232
isp_coproc_write32(isp, ISP_COPROC_IRQ_MASK_5, 0xffffffff);
232233

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

0 commit comments

Comments
 (0)