From 975fa04088bff5eb36f232231cf12ff968d78148 Mon Sep 17 00:00:00 2001 From: Guennadi Liakhovetski Date: Tue, 20 Apr 2021 15:46:31 +0200 Subject: [PATCH] zephyr: allow building with dynamic interrupts disabled SOF registers IRQ handlers dynamically, therefore disabling support for dynamic interrupts for SOF builds doesn't make much sense. However, this can be used to at least increase compile-time testing coverage and potentially enable applications, not using dynamic interrupt registration. BugLink: https://github.com/thesofproject/sof/issues/4044 Signed-off-by: Guennadi Liakhovetski --- zephyr/wrapper.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/zephyr/wrapper.c b/zephyr/wrapper.c index d9356b4f9..8f1a4dcdc 100644 --- a/zephyr/wrapper.c +++ b/zephyr/wrapper.c @@ -23,11 +23,6 @@ #include #include -/* Confirm Zephyr config settings - TODO: Use ASSERT */ -#if !CONFIG_DYNAMIC_INTERRUPTS -#error Define CONFIG_DYNAMIC_INTERRUPTS -#endif - /* * Memory - Create Zephyr HEAP for SOF. * @@ -198,8 +193,14 @@ int interrupt_get_irq(unsigned int irq, const char *cascade) int interrupt_register(uint32_t irq, void(*handler)(void *arg), void *arg) { +#ifdef CONFIG_DYNAMIC_INTERRUPTS return arch_irq_connect_dynamic(irq, 0, (void (*)(const void *))handler, arg, 0); +#else + LOG_ERR("Cannot register handler for IRQ %u: dynamic IRQs are disabled", + irq); + return -EOPNOTSUPP; +#endif } #if !CONFIG_LIBRARY