@@ -869,12 +869,7 @@ void handle_ep0(struct usbh_bus *bus)
869869 break ;
870870 case USB_EP0_STATE_IN_DATA :
871871 if (ep0_status & USB_CSRL0_RXRDY ) {
872- size = urb -> transfer_buffer_length ;
873- if (size > USB_GET_MAXPACKETSIZE (urb -> ep -> wMaxPacketSize )) {
874- size = USB_GET_MAXPACKETSIZE (urb -> ep -> wMaxPacketSize );
875- }
876-
877- size = MIN (size , HWREGH (USB_BASE + MUSB_IND_RXCOUNT_OFFSET ));
872+ size = HWREGH (USB_BASE + MUSB_IND_RXCOUNT_OFFSET );
878873 musb_read_packet (bus , 0 , urb -> transfer_buffer , size );
879874 HWREGB (USB_BASE + MUSB_IND_TXCSRL_OFFSET ) &= ~USB_CSRL0_RXRDY ;
880875 urb -> transfer_buffer += size ;
@@ -933,6 +928,7 @@ void USBH_IRQHandler(uint8_t busid)
933928 uint8_t ep_idx ;
934929 uint8_t old_ep_idx ;
935930 struct usbh_bus * bus ;
931+ uint32_t size ;
936932
937933 bus = & g_usbhost_bus [busid ];
938934
@@ -1024,7 +1020,7 @@ void USBH_IRQHandler(uint8_t busid)
10241020 urb -> errorcode = 0 ;
10251021 musb_urb_waitup (urb );
10261022 } else {
1027- musb_write_packet (bus , ep_idx , urb -> transfer_buffer , size );
1023+ musb_write_packet (bus , ep_idx , urb -> transfer_buffer , MIN ( urb -> transfer_buffer_length , USB_GET_MAXPACKETSIZE ( urb -> ep -> wMaxPacketSize )) );
10281024 HWREGB (USB_BASE + MUSB_IND_TXCSRL_OFFSET ) = USB_TXCSRL1_TXRDY ;
10291025 }
10301026 }
@@ -1056,11 +1052,7 @@ void USBH_IRQHandler(uint8_t busid)
10561052 urb -> errorcode = - USB_ERR_STALL ;
10571053 musb_urb_waitup (urb );
10581054 } else if (ep_csrl_status & USB_RXCSRL1_RXRDY ) {
1059- uint32_t size = urb -> transfer_buffer_length ;
1060- if (size > USB_GET_MAXPACKETSIZE (urb -> ep -> wMaxPacketSize )) {
1061- size = USB_GET_MAXPACKETSIZE (urb -> ep -> wMaxPacketSize );
1062- }
1063- size = MIN (size , HWREGH (USB_BASE + MUSB_IND_RXCOUNT_OFFSET ));
1055+ size = HWREGH (USB_BASE + MUSB_IND_RXCOUNT_OFFSET );
10641056
10651057 musb_read_packet (bus , ep_idx , urb -> transfer_buffer , size );
10661058
0 commit comments