zephyr/drivers/interrupt_controller
Martin Gritzan ff2b827143 drivers: stm32-exti: do not lock hwsem on irq disable
Remove the HWSEM locking around stm32_exti_disable().

The STM32 EXTI driver uses the core-local interrupt mask regsiters on
STM32H7x7 asym. dualcore MCUs. There is no need to lock the HWSEM
guarding the EXTI when accessing these registers.

Some sensor drivers toggle their interrupt mask every time the sensor
triggers the IRQ line. Locking the HWSEM fails e.g. in situations where
one coprocessor serivces the sensor and the other coprocessor sets up
its interrupts initially during bootup. This prevents the sensor driver
from locking the HWSEM and causes a kernel panic on the corresponding
CPU.

Note: The opposing stm32_exti_enable() was already correctly without
locking.

Signed-off-by: Martin Gritzan <martin.gritzan@gmail.com>
2023-10-20 15:15:15 +02:00
..
CMakeLists.txt intc: add NXP S32 WKPU interrupt controller driver 2023-10-11 16:38:34 +01:00
intc_arcv2_irq_unit.c intc: arcv2: convert SYS_INIT to DEVICE_DT_INST_DEFINE 2023-09-22 09:22:55 +02:00
intc_cavs.c drivers: remove references to old CAVS platforms 2023-04-06 18:51:56 +02:00
intc_cavs.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
intc_dw.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
intc_dw.h drivers: intc_dw: fixed misnumbered value of reserved slots in structure 2022-10-17 13:37:09 -04:00
intc_dw_ace.c smp: Move for loops to use arch_num_cpus instead of CONFIG_MP_NUM_CPUS 2022-10-21 13:14:58 +02:00
intc_eirq_nxp_s32.c intc: nxp_s32: initialize after core intc 2023-08-16 10:21:33 +02:00
intc_esp32.c interrupt_controller: intc_esp32: Convert CONFIG_MP_NUM_CPUS handling 2022-10-26 12:00:45 +02:00
intc_esp32c3.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
intc_exti_stm32.c drivers: stm32-exti: do not lock hwsem on irq disable 2023-10-20 15:15:15 +02:00
intc_gd32_exti.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
intc_gic.c intc: gic: convert SYS_INIT to DEVICE_DT_INST_DEFINE 2023-09-22 09:22:55 +02:00
intc_gic_common_priv.h drivers: gicv3: fix getting rdist base address 2021-04-26 13:42:43 +02:00
intc_gicv3.c intc: gic: convert SYS_INIT to DEVICE_DT_INST_DEFINE 2023-09-22 09:22:55 +02:00
intc_gicv3_its.c intc_gicv3_its: anticipate initialization priority 2023-07-12 09:25:35 +02:00
intc_gicv3_priv.h drivers: gic: Redistributor Power Register 2023-08-31 10:24:48 +02:00
intc_intel_vtd.c drivers/interrupt_controller: Move VT-D to new cache API 2023-02-06 10:07:53 +01:00
intc_intel_vtd.h drivers/interrupt_controller: Add VT-D context cache invalidation 2022-01-07 10:47:27 -05:00
intc_ioapic.c drivers: ioapic: declare the device with DEVICE_DT_INST_DEFINE 2023-09-12 10:56:46 +02:00
intc_ioapic_priv.h drivers/interrupt_controller: Make IOAPIC VT-D aware when relevant 2022-01-07 10:47:27 -05:00
intc_irqmp.c intc: irqmp: convert SYS_INIT to DEVICE_DT_INST_DEFINE 2023-09-22 09:22:55 +02:00
intc_ite_it8xxx2.c ITE drivers/interrupt_controller: add intc_ite_it8xxx2_v2 driver 2023-04-19 03:48:38 -04:00
intc_ite_it8xxx2.h it8xxx2: generalize ILM support 2022-10-21 20:31:47 +02:00
intc_ite_it8xxx2_v2.c ITE drivers/interrupt_controller: add intc_ite_it8xxx2_v2 driver 2023-04-19 03:48:38 -04:00
intc_loapic.c intc: loapic: convert DEVICE_DEFINE to DEVICE_DT_INST_DEFINE 2023-09-22 09:22:55 +02:00
intc_loapic_spurious.S asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00
intc_mchp_ecia_xec.c modules: cmsis: move glue code to modules/cmsis 2023-08-24 13:20:21 +02:00
intc_miwu.c intc: miwu: npcx: improve interrupt latency of miwu input events 2023-05-17 09:48:54 +02:00
intc_nuclei_eclic.c intc: nuclei_eclic: convert SYS_INIT to DEVICE_DT_INST_DEFINE 2023-09-22 09:22:55 +02:00
intc_nxp_pint.c intc: intc_nxp_pint: convert SYS_INIT to DEVICE_DT_INST_DEFINE 2023-09-22 09:22:55 +02:00
intc_plic.c drivers: intc: plic: define all registers' offset in the driver 2023-10-04 09:06:28 -04:00
intc_rv32m1_intmux.c devices: constify device pointers initialized at compile time 2022-08-22 17:08:26 +02:00
intc_sam0_eic.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
intc_sam0_eic_priv.h include: add missing errno.h include 2022-10-11 18:05:17 +02:00
intc_shared_irq.c include: add missing zephyr/irq.h include 2022-10-17 22:57:39 +09:00
intc_swerv_pic.c intc: swerv_pic: convert SYS_INIT to DEVICE_DT_INST_DEFINE 2023-09-22 09:22:55 +02:00
intc_system_apic.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
intc_vexriscv_litex.c intc: vexriscv_litex: convert SYS_INIT to DEVICE_DT_INST_DEFINE 2023-09-22 09:22:55 +02:00
intc_vim.c include: arch: arm: Remove aarch32 directory 2023-09-13 10:08:05 +01:00
intc_wkpu_nxp_s32.c intc: add NXP S32 WKPU interrupt controller driver 2023-10-11 16:38:34 +01:00
intc_xmc4xxx.c drivers: interrupt_controller: Add XMC4XXX ERU driver 2022-12-12 10:51:29 +01:00
Kconfig drivers: interrupt-controller: Add VIM Interrupt Controller support 2023-09-04 10:53:09 +02:00
Kconfig.cavs drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.clic drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.dw drivers: intc_dw_ace: use CONFIG_DW_ICTL_ACE 2022-10-11 12:50:05 -04:00
Kconfig.esp32 soc: xtensa,riscv: esp32xx: refactor folder structure 2023-07-25 18:12:33 +02:00
Kconfig.esp32c3 soc: xtensa,riscv: esp32xx: refactor folder structure 2023-07-25 18:12:33 +02:00
Kconfig.gd32_exti drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.gic dts: bindings: interrupt-controller: GIC: Allow specifying version in DT 2023-06-17 08:01:46 -04:00
Kconfig.intel_vtd drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.it8xxx2 ITE drivers/interrupt_controller: add intc_ite_it8xxx2_v2 driver 2023-04-19 03:48:38 -04:00
Kconfig.loapic drivers: loapic: add device tree support for loapic 2023-09-01 16:36:18 +02:00
Kconfig.multilevel scripts: build: gen_isr_tables: make bit masks configurable 2023-08-10 10:55:41 -04:00
Kconfig.multilevel.aggregator_template license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
Kconfig.npcx drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.nxp_pint drivers: interrupt_controller: introduce PINT driver 2023-04-18 16:14:57 -05:00
Kconfig.nxp_s32 intc: add NXP S32 WKPU interrupt controller driver 2023-10-11 16:38:34 +01:00
Kconfig.plic drivers: intc: plic: support trigger type by default and hardcode offset 2023-10-04 09:06:28 -04:00
Kconfig.rv32m1 drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.sam0 drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.shared_irq drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.stm32 drivers: interrupt_controller: stm32: Generate irq_table and isr from dt 2023-01-19 17:20:48 +00:00
Kconfig.vim drivers: interrupt-controller: Add VIM Interrupt Controller support 2023-09-04 10:53:09 +02:00
Kconfig.xec drivers: intc: Update drivers to use devicetree Kconfig symbol 2022-09-01 10:25:36 +02:00
Kconfig.xmc4xxx drivers: interrupt_controller: Add XMC4XXX ERU driver 2022-12-12 10:51:29 +01:00
wuc_ite_it8xxx2.c device: remove redundant init functions 2023-04-19 10:00:25 +02:00