arch: cxd56xx: Fix cxd56_usbdev.c for SMP

Summary:
- This commit fixes hardfault when running nxplayer with rndis_smp

Impact:
- SMP only

Testing:
- Tested with rndis_smp

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
This commit is contained in:
Masayuki Ishikawa
2021-03-05 08:58:49 +09:00
committed by Xiang Xiao
parent 67b9f5f9e3
commit 197187d826
+16
View File
@@ -1540,6 +1540,10 @@ static int cxd56_epinterrupt(int irq, FAR void *context)
uint16_t len;
int n;
#ifdef CONFIG_SMP
irqstate_t flags = enter_critical_section();
#endif
eps = getreg32(CXD56_USB_DEV_EP_INTR);
{
for (n = 0; n < CXD56_NENDPOINTS; n++)
@@ -1813,6 +1817,10 @@ static int cxd56_epinterrupt(int irq, FAR void *context)
}
}
#ifdef CONFIG_SMP
leave_critical_section(flags);
#endif
return OK;
}
@@ -2585,6 +2593,10 @@ static int cxd56_epstall(FAR struct usbdev_ep_s *ep, bool resume)
uint32_t ctrl;
uint32_t addr;
#ifdef CONFIG_SMP
irqstate_t flags = enter_critical_section();
#endif
addr = USB_ISEPIN(ep->eplog) ? CXD56_USB_IN_EP_CONTROL(privep->epphy)
: CXD56_USB_OUT_EP_CONTROL(privep->epphy);
@@ -2603,6 +2615,10 @@ static int cxd56_epstall(FAR struct usbdev_ep_s *ep, bool resume)
privep->stalled = 1;
}
#ifdef CONFIG_SMP
leave_critical_section(flags);
#endif
return OK;
}