From 0ed224cf591b35f542ddb6615bbce44ce5799ddd Mon Sep 17 00:00:00 2001 From: Graham Sanderson Date: Mon, 17 Feb 2025 16:07:27 -0600 Subject: [PATCH] Add irq_has_handler() and use it to fix GPIO IRQ assert (#2277) --- src/rp2_common/hardware_gpio/gpio.c | 7 ++----- .../hardware_irq/include/hardware/irq.h | 16 +++++++++++++++- src/rp2_common/hardware_irq/irq.c | 8 +++++++- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/rp2_common/hardware_gpio/gpio.c b/src/rp2_common/hardware_gpio/gpio.c index 44c39e9c..2c4e91d4 100644 --- a/src/rp2_common/hardware_gpio/gpio.c +++ b/src/rp2_common/hardware_gpio/gpio.c @@ -184,12 +184,9 @@ static void _gpio_set_irq_enabled(uint gpio, uint32_t events, bool enabled, io_b } void gpio_set_irq_enabled(uint gpio, uint32_t events, bool enabled) { - // either this call disables the interrupt - // or callback should already be set (raw or using gpio_set_irq_callback) + // either this call disables the interrupt or callback should already be set. // this protects against enabling the interrupt without callback set - assert(!enabled - || (raw_irq_mask[get_core_num()] & (1ull<