From 6da0e02d636ad043b54aa5a2cd71f7c7886f49f7 Mon Sep 17 00:00:00 2001 From: Galion Date: Thu, 7 May 2020 22:13:50 +0200 Subject: [PATCH] Fix for #3089 - update hook after updating gpio bits --- app/platform/platform.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/platform/platform.c b/app/platform/platform.c index e6e28136b5..b203dc368b 100644 --- a/app/platform/platform.c +++ b/app/platform/platform.c @@ -307,6 +307,10 @@ int platform_gpio_register_intr_hook(uint32_t bits, platform_hook_function hook) uint32_t old_bits = oh.entry[i].bits; *(volatile uint32_t *) &oh.entry[i].bits = bits; *(volatile uint32_t *) &oh.all_bits = (oh.all_bits & ~old_bits) | bits; + ETS_GPIO_INTR_DISABLE(); + // This is a structure copy, so interrupts need to be disabled + platform_gpio_hook = oh; + ETS_GPIO_INTR_ENABLE(); return 1; } }