stm32/ipcc: remove constrain

This commit is contained in:
xoviat 2023-05-20 10:10:21 -05:00
parent d736c9205c
commit 661b1f3373
2 changed files with 7 additions and 13 deletions

View file

@ -35,6 +35,10 @@ pub struct Ipcc<'d> {
impl<'d> Ipcc<'d> {
pub fn new(peri: impl Peripheral<P = IPCC> + 'd, _config: Config) -> Self {
Self::new_inner(peri)
}
pub(crate) fn new_inner(peri: impl Peripheral<P = IPCC> + 'd) -> Self {
into_ref!(peri);
Self { _peri: peri }
@ -180,14 +184,3 @@ unsafe fn _configure_pwr() {
// set RF wake-up clock = LSE
rcc.csr().modify(|w| w.set_rfwkpsel(0b01));
}
// TODO: if anyone has a better idea, please let me know
/// extension trait that constrains the [`Ipcc`] peripheral
pub trait IpccExt<'d> {
fn constrain(self) -> Ipcc<'d>;
}
impl<'d> IpccExt<'d> for IPCC {
fn constrain(self) -> Ipcc<'d> {
Ipcc { _peri: self.into_ref() }
}
}

View file

@ -131,8 +131,9 @@ impl EvtBox {
impl Drop for EvtBox {
fn drop(&mut self) {
use crate::ipcc::IpccExt;
let mut ipcc = unsafe { crate::Peripherals::steal() }.IPCC.constrain();
use crate::ipcc::Ipcc;
let mut ipcc = Ipcc::new_inner(unsafe { crate::Peripherals::steal() }.IPCC);
mm::MemoryManager::evt_drop(self.ptr, &mut ipcc);
}
}