From 87aec1f48cd79adb924d3cfb855e300a76a64559 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Mon, 30 Jan 2017 11:11:19 +0000 Subject: Fixed bug #816. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10071 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/ports/STM32/LLD/OTGv1/hal_usb_lld.c | 32 ++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'os/hal/ports/STM32/LLD/OTGv1') diff --git a/os/hal/ports/STM32/LLD/OTGv1/hal_usb_lld.c b/os/hal/ports/STM32/LLD/OTGv1/hal_usb_lld.c index 52e44f011..73f585f21 100644 --- a/os/hal/ports/STM32/LLD/OTGv1/hal_usb_lld.c +++ b/os/hal/ports/STM32/LLD/OTGv1/hal_usb_lld.c @@ -609,11 +609,25 @@ static void usb_lld_serve_interrupt(USBDriver *usbp) { otg_epin_handler(usbp, 2); if (src & (1 << 3)) otg_epin_handler(usbp, 3); -#if STM32_USB_USE_OTG2 +#if USB_MAX_ENDPOINTS >= 4 if (src & (1 << 4)) otg_epin_handler(usbp, 4); +#endif +#if USB_MAX_ENDPOINTS >= 5 if (src & (1 << 5)) otg_epin_handler(usbp, 5); +#endif +#if USB_MAX_ENDPOINTS >= 6 + if (src & (1 << 6)) + otg_epin_handler(usbp, 6); +#endif +#if USB_MAX_ENDPOINTS >= 7 + if (src & (1 << 7)) + otg_epin_handler(usbp, 7); +#endif +#if USB_MAX_ENDPOINTS >= 8 + if (src & (1 << 8)) + otg_epin_handler(usbp, 8); #endif } if (sts & GINTSTS_OEPINT) { @@ -625,11 +639,25 @@ static void usb_lld_serve_interrupt(USBDriver *usbp) { otg_epout_handler(usbp, 2); if (src & (1 << 19)) otg_epout_handler(usbp, 3); -#if STM32_USB_USE_OTG2 +#if USB_MAX_ENDPOINTS >= 4 if (src & (1 << 20)) otg_epout_handler(usbp, 4); +#endif +#if USB_MAX_ENDPOINTS >= 5 if (src & (1 << 21)) otg_epout_handler(usbp, 5); +#endif +#if USB_MAX_ENDPOINTS >= 6 + if (src & (1 << 22)) + otg_epout_handler(usbp, 6); +#endif +#if USB_MAX_ENDPOINTS >= 7 + if (src & (1 << 23)) + otg_epout_handler(usbp, 7); +#endif +#if USB_MAX_ENDPOINTS >= 8 + if (src & (1 << 24)) + otg_epout_handler(usbp, 8); #endif } } -- cgit v1.2.3