This is an automated email from the ASF dual-hosted git repository. xiaoxiang781216 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 39572c4cf94b477f19735dfdf63a4f354796140c Author: Darryl Ring <[email protected]> AuthorDate: Fri Oct 30 15:02:26 2026 -0700 arch/arm/stm32h5: Fix ADC interrupt dispatch Only handle ADC interrupts that are enabled in IER, so a shared interrupt no longer services flags of an ADC that did not raise it. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Darryl Ring <[email protected]> --- arch/arm/src/stm32h5/stm32_adc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/stm32h5/stm32_adc.c b/arch/arm/src/stm32h5/stm32_adc.c index 8e7d31113dd..df466522778 100644 --- a/arch/arm/src/stm32h5/stm32_adc.c +++ b/arch/arm/src/stm32h5/stm32_adc.c @@ -2106,19 +2106,19 @@ static int adc12_interrupt(int irq, void *context, void *arg) #ifdef CONFIG_STM32_ADC1 regval = getreg32(STM32_ADC1_ISR); - pending = regval & ADC_INT_MASK; + pending = regval & getreg32(STM32_ADC1_IER) & ADC_INT_MASK; if (pending != 0) { - adc_interrupt(&g_adcdev1, regval); + adc_interrupt(&g_adcdev1, pending); } #endif #ifdef CONFIG_STM32_ADC2 regval = getreg32(STM32_ADC2_ISR); - pending = regval & ADC_INT_MASK; + pending = regval & getreg32(STM32_ADC2_IER) & ADC_INT_MASK; if (pending != 0) { - adc_interrupt(&g_adcdev2, regval); + adc_interrupt(&g_adcdev2, pending); } #endif
