diff --git a/esp-hal/src/interrupt/xtensa.rs b/esp-hal/src/interrupt/xtensa.rs index a6b58cbdb..c65e65b47 100644 --- a/esp-hal/src/interrupt/xtensa.rs +++ b/esp-hal/src/interrupt/xtensa.rs @@ -159,9 +159,7 @@ pub fn enable_direct(interrupt: Interrupt, cpu_interrupt: CpuInterrupt) -> Resul unsafe { map(Cpu::current(), interrupt, cpu_interrupt); - xtensa_lx::interrupt::enable_mask( - xtensa_lx::interrupt::get_mask() | (1 << cpu_interrupt as u32), - ); + xtensa_lx::interrupt::enable_mask(1 << cpu_interrupt as u32); } Ok(()) } @@ -513,9 +511,7 @@ mod vectored { unsafe { map(cpu, interrupt, cpu_interrupt); - xtensa_lx::interrupt::enable_mask( - xtensa_lx::interrupt::get_mask() | (1 << cpu_interrupt as u32), - ); + xtensa_lx::interrupt::enable_mask(1 << cpu_interrupt as u32); } Ok(()) } diff --git a/esp-preempt/src/task/xtensa.rs b/esp-preempt/src/task/xtensa.rs index c94f5ccef..3b3dd1a53 100644 --- a/esp-preempt/src/task/xtensa.rs +++ b/esp-preempt/src/task/xtensa.rs @@ -72,12 +72,10 @@ const SW_INTERRUPT: u32 = if cfg!(esp32) { 1 << 29 } else { 1 << 7 }; pub(crate) fn setup_multitasking() { unsafe { - let enabled = xtensa_lx::interrupt::disable(); xtensa_lx::interrupt::enable_mask( SW_INTERRUPT | xtensa_lx_rt::interrupt::CpuInterruptLevel::Level2.mask() - | xtensa_lx_rt::interrupt::CpuInterruptLevel::Level6.mask() - | enabled, + | xtensa_lx_rt::interrupt::CpuInterruptLevel::Level6.mask(), ); } } diff --git a/hil-test/src/bin/esp_radio_floats.rs b/hil-test/src/bin/esp_radio_floats.rs index 498e06060..716dfff1e 100644 --- a/hil-test/src/bin/esp_radio_floats.rs +++ b/hil-test/src/bin/esp_radio_floats.rs @@ -123,19 +123,6 @@ mod tests { .start_app_core( unsafe { &mut *core::ptr::addr_of_mut!(APP_CORE_STACK) }, move || { - // app core starts with interrupts disabled - unsafe { - esp_hal::xtensa_lx::interrupt::enable_mask( - esp_hal::xtensa_lx_rt::interrupt::CpuInterruptLevel::Level1.mask() - | esp_hal::xtensa_lx_rt::interrupt::CpuInterruptLevel::Level2 - .mask() - | esp_hal::xtensa_lx_rt::interrupt::CpuInterruptLevel::Level3 - .mask() - | esp_hal::xtensa_lx_rt::interrupt::CpuInterruptLevel::Level6 - .mask(), - ); - } - let timg0 = TimerGroup::new(peripherals.TIMG0); esp_preempt::start(timg0.timer0); let _init = esp_radio::init().unwrap(); diff --git a/xtensa-lx/src/interrupt.rs b/xtensa-lx/src/interrupt.rs index 801dd9b4a..78a813f79 100644 --- a/xtensa-lx/src/interrupt.rs +++ b/xtensa-lx/src/interrupt.rs @@ -154,7 +154,7 @@ where let r = f(); // enable previously disabled interrupts - unsafe { enable_mask(old_mask) }; + unsafe { set_mask(old_mask) }; r }