Skip to content

Commit 0c93261

Browse files
lrgirdwotlauda
authored andcommitted
ipc: irq: IPC IRQ is a LEVEL type and is cleared via HW
IPC IRQ is a LEVEL interrupt and hence does not need INTCLEAR set as this is cleared by SHIM HW. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
1 parent 304336b commit 0c93261

2 files changed

Lines changed: 0 additions & 4 deletions

File tree

‎src/drivers/intel/baytrail/ipc.c‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ static void irq_handler(void *arg)
103103

104104
/* Mask Done interrupt before return */
105105
shim_write(SHIM_IMRD, shim_read(SHIM_IMRD) | SHIM_IMRD_DONE);
106-
interrupt_clear(PLATFORM_IPC_INTERRUPT);
107106
do_notify();
108107
}
109108

@@ -113,7 +112,6 @@ static void irq_handler(void *arg)
113112

114113
/* Mask Busy interrupt before return */
115114
shim_write(SHIM_IMRD, shim_read(SHIM_IMRD) | SHIM_IMRD_BUSY);
116-
interrupt_clear(PLATFORM_IPC_INTERRUPT);
117115

118116
/* TODO: place message in Q and process later */
119117
/* It's not Q ATM, may overwrite */

‎src/drivers/intel/haswell/ipc.c‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,13 @@ static void irq_handler(void *arg)
100100

101101
/* Mask Done interrupt before return */
102102
shim_write(SHIM_IMRD, shim_read(SHIM_IMRD) | SHIM_IMRD_DONE);
103-
interrupt_clear(PLATFORM_IPC_INTERRUPT);
104103
do_notify();
105104
}
106105

107106
if (isr & SHIM_ISRD_BUSY && !(imrd & SHIM_IMRD_BUSY)) {
108107

109108
/* Mask Busy interrupt before return */
110109
shim_write(SHIM_IMRD, shim_read(SHIM_IMRD) | SHIM_IMRD_BUSY);
111-
interrupt_clear(PLATFORM_IPC_INTERRUPT);
112110

113111
/* TODO: place message in Q and process later */
114112
/* It's not Q ATM, may overwrite */

0 commit comments

Comments
 (0)