summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchenzhihong007 <[email protected]>2025-04-23 09:43:52 +0800
committerGitHub <[email protected]>2025-04-23 09:43:52 +0800
commit4897d6d62291d499221a2462c35a04caea3d93f8 (patch)
treebec384c38830892c82437074a5d0416cbdd53afa
parente0fedaa9566224a9c8dda8165c22e7a9356c7c7e (diff)
port: hpmicro: update isr processing (#304)
- update isr processing Signed-off-by: Zhihong Chen <[email protected]>
-rw-r--r--port/hpm/usb_dc_hpm.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/port/hpm/usb_dc_hpm.c b/port/hpm/usb_dc_hpm.c
index b663fd9a..3eb2511b 100644
--- a/port/hpm/usb_dc_hpm.c
+++ b/port/hpm/usb_dc_hpm.c
@@ -307,17 +307,10 @@ void USBD_IRQHandler(uint8_t busid)
if (int_status & intr_usb) {
uint32_t const edpt_complete = usb_device_get_edpt_complete_status(handle);
- usb_device_clear_edpt_complete_status(handle, edpt_complete);
- uint32_t edpt_setup_status = usb_device_get_setup_status(handle);
-
- if (edpt_setup_status) {
- /*------------- Set up Received -------------*/
- usb_device_clear_setup_status(handle, edpt_setup_status);
- dcd_qhd_t *qhd0 = usb_device_qhd_get(handle, 0);
- usbd_event_ep0_setup_complete_handler(busid, (uint8_t *)&qhd0->setup_request);
- }
+ uint32_t const edpt_setup_status = usb_device_get_setup_status(handle);
if (edpt_complete) {
+ usb_device_clear_edpt_complete_status(handle, edpt_complete);
for (uint8_t ep_idx = 0; ep_idx < USB_SOS_DCD_MAX_QHD_COUNT; ep_idx++) {
if (edpt_complete & (1 << ep_idx2bit(ep_idx))) {
transfer_len = 0;
@@ -355,6 +348,13 @@ void USBD_IRQHandler(uint8_t busid)
}
}
}
+
+ if (edpt_setup_status) {
+ /*------------- Set up Received -------------*/
+ usb_device_clear_setup_status(handle, edpt_setup_status);
+ dcd_qhd_t *qhd0 = usb_device_qhd_get(handle, 0);
+ usbd_event_ep0_setup_complete_handler(busid, (uint8_t *)&qhd0->setup_request);
+ }
}
}