From 887c0b8443d4905af432a1ceee803ab93ec2afad Mon Sep 17 00:00:00 2001 From: envirocoder <51299908+envirocoder@users.noreply.github.com> Date: Thu, 24 Nov 2022 14:42:25 +0000 Subject: [PATCH] IRQ on CYW43_PIN_WL_HOST_WAKE not gpio13 (#1069) fix bug #1068 where the raw irq handler that was added masked on IO_IRQ_BANK0 (defined as 13) and not the gpio connected to the CYW43 i.e. CYW43_PIN_WL_HOST_WAKE Co-authored-by: andrew arm --- src/rp2_common/pico_cyw43_arch/cyw43_arch_freertos.c | 4 ++-- src/rp2_common/pico_cyw43_arch/cyw43_arch_poll.c | 4 ++-- .../pico_cyw43_arch/cyw43_arch_threadsafe_background.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/rp2_common/pico_cyw43_arch/cyw43_arch_freertos.c b/src/rp2_common/pico_cyw43_arch/cyw43_arch_freertos.c index 01d9baa..ad044ac 100644 --- a/src/rp2_common/pico_cyw43_arch/cyw43_arch_freertos.c +++ b/src/rp2_common/pico_cyw43_arch/cyw43_arch_freertos.c @@ -138,7 +138,7 @@ int cyw43_arch_init(void) { return PICO_ERROR_GENERIC; } - gpio_add_raw_irq_handler_with_order_priority(IO_IRQ_BANK0, gpio_irq_handler, CYW43_GPIO_IRQ_HANDLER_PRIORITY); + gpio_add_raw_irq_handler_with_order_priority(CYW43_PIN_WL_HOST_WAKE, gpio_irq_handler, CYW43_GPIO_IRQ_HANDLER_PRIORITY); gpio_set_irq_enabled(CYW43_PIN_WL_HOST_WAKE, GPIO_IRQ_LEVEL_HIGH, true); irq_set_enabled(IO_IRQ_BANK0, true); @@ -167,7 +167,7 @@ void cyw43_arch_deinit(void) { signal_cyw43_task(); } gpio_set_irq_enabled(CYW43_PIN_WL_HOST_WAKE, GPIO_IRQ_LEVEL_HIGH, false); - gpio_remove_raw_irq_handler(IO_IRQ_BANK0, gpio_irq_handler); + gpio_remove_raw_irq_handler(CYW43_PIN_WL_HOST_WAKE, gpio_irq_handler); cyw43_deinit(&cyw43_state); } diff --git a/src/rp2_common/pico_cyw43_arch/cyw43_arch_poll.c b/src/rp2_common/pico_cyw43_arch/cyw43_arch_poll.c index e71f86a..64361b2 100644 --- a/src/rp2_common/pico_cyw43_arch/cyw43_arch_poll.c +++ b/src/rp2_common/pico_cyw43_arch/cyw43_arch_poll.c @@ -59,7 +59,7 @@ int cyw43_arch_init(void) { lwip_init(); done_lwip_init = true; } - gpio_add_raw_irq_handler_with_order_priority(IO_IRQ_BANK0, gpio_irq_handler, CYW43_GPIO_IRQ_HANDLER_PRIORITY); + gpio_add_raw_irq_handler_with_order_priority(CYW43_PIN_WL_HOST_WAKE, gpio_irq_handler, CYW43_GPIO_IRQ_HANDLER_PRIORITY); gpio_set_irq_enabled(CYW43_PIN_WL_HOST_WAKE, GPIO_IRQ_LEVEL_HIGH, true); irq_set_enabled(IO_IRQ_BANK0, true); return 0; @@ -67,7 +67,7 @@ int cyw43_arch_init(void) { void cyw43_arch_deinit(void) { gpio_set_irq_enabled(CYW43_PIN_WL_HOST_WAKE, GPIO_IRQ_LEVEL_HIGH, false); - gpio_remove_raw_irq_handler(IO_IRQ_BANK0, gpio_irq_handler); + gpio_remove_raw_irq_handler(CYW43_PIN_WL_HOST_WAKE, gpio_irq_handler); cyw43_deinit(&cyw43_state); } diff --git a/src/rp2_common/pico_cyw43_arch/cyw43_arch_threadsafe_background.c b/src/rp2_common/pico_cyw43_arch/cyw43_arch_threadsafe_background.c index 79ccfd7..60b4030 100644 --- a/src/rp2_common/pico_cyw43_arch/cyw43_arch_threadsafe_background.c +++ b/src/rp2_common/pico_cyw43_arch/cyw43_arch_threadsafe_background.c @@ -187,7 +187,7 @@ int cyw43_arch_init(void) { return PICO_ERROR_GENERIC; } - gpio_add_raw_irq_handler_with_order_priority(IO_IRQ_BANK0, gpio_irq_handler, CYW43_GPIO_IRQ_HANDLER_PRIORITY); + gpio_add_raw_irq_handler_with_order_priority(CYW43_PIN_WL_HOST_WAKE, gpio_irq_handler, CYW43_GPIO_IRQ_HANDLER_PRIORITY); gpio_set_irq_enabled(CYW43_PIN_WL_HOST_WAKE, GPIO_IRQ_LEVEL_HIGH, true); irq_set_enabled(IO_IRQ_BANK0, true); @@ -209,7 +209,7 @@ void cyw43_arch_deinit(void) { periodic_alarm = -1; } gpio_set_irq_enabled(CYW43_PIN_WL_HOST_WAKE, GPIO_IRQ_LEVEL_HIGH, false); - gpio_remove_raw_irq_handler(IO_IRQ_BANK0, gpio_irq_handler); + gpio_remove_raw_irq_handler(CYW43_PIN_WL_HOST_WAKE, gpio_irq_handler); low_prio_irq_deinit(); cyw43_deinit(&cyw43_state); }