diff options
-rw-r--r-- | common/ioexpander.c | 2 | ||||
-rw-r--r-- | include/gpio_list.h | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/common/ioexpander.c b/common/ioexpander.c index e130e77a8a..de64bafc7e 100644 --- a/common/ioexpander.c +++ b/common/ioexpander.c @@ -51,7 +51,7 @@ static int ioex_is_valid_interrupt_signal(enum ioex_signal signal) const struct ioex_info *g = ioex_get_signal_info(signal); /* Fail if no interrupt handler */ - if (signal >= ioex_ih_count) + if (signal - IOEX_SIGNAL_START >= ioex_ih_count) return EC_ERROR_PARAM1; drv = ioex_config[g->ioex].drv; diff --git a/include/gpio_list.h b/include/gpio_list.h index 37d49a6f97..22025b25d8 100644 --- a/include/gpio_list.h +++ b/include/gpio_list.h @@ -111,8 +111,9 @@ const int ioex_ih_count = ARRAY_SIZE(ioex_irq_handlers); * IOEX's declaration in the gpio.inc * file. */ -#define IOEX_INT(name, expin, flags, handler) \ - BUILD_ASSERT(IOEX_##name < ARRAY_SIZE(ioex_irq_handlers)); +#define IOEX_INT(name, expin, flags, handler) \ + BUILD_ASSERT(IOEX_##name - IOEX_SIGNAL_START \ + < ARRAY_SIZE(ioex_irq_handlers)); #include "gpio.wrap" #define IOEX(name, expin, flags) expin |