cavs: disable all interrupts when configuring interrupt controllers

Some interrupts can be enabled by the ROM, e.g. the timer interrupt.
When then in Zephyr the interrupt controller is enabled, before
individual interrupts are configured, interrupts can arrive and lead
to the spurious interrupt handler being invoked. Fix thid by
disabling all child interrupts when configuring cAVS interrupt
controllers.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
This commit is contained in:
Guennadi Liakhovetski 2020-10-07 08:22:07 +02:00 committed by Anas Nashif
commit 80f9daab9f

View file

@ -132,6 +132,11 @@ static const struct irq_next_level_api cavs_apis = {
#define CAVS_ICTL_INIT(n) \
static int cavs_ictl_##n##_initialize(const struct device *port) \
{ \
struct cavs_ictl_runtime *context = port->data; \
volatile struct cavs_registers * const regs = \
(struct cavs_registers *)context->base_addr; \
regs->disable_il = ~0; \
\
return 0; \
} \
\