aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2015-11-28 10:18:46 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2015-11-28 10:18:46 +0000
commitdb0b9dbf0bcce6b53647bd3bd25ff88e45794f16 (patch)
treebc8ea132fbad6441ee988d264afaa122dd668b10
parentbe48aa8f69331b6ec5b8594cf72a9563a75ab646 (diff)
downloadChibiOS-db0b9dbf0bcce6b53647bd3bd25ff88e45794f16.tar.gz
ChibiOS-db0b9dbf0bcce6b53647bd3bd25ff88e45794f16.tar.bz2
ChibiOS-db0b9dbf0bcce6b53647bd3bd25ff88e45794f16.zip
Fixed bug #674.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8536 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r--os/hal/ports/STM32/LLD/OTGv1/usb_lld.c2
-rw-r--r--readme.txt2
-rw-r--r--testhal/STM32/STM32F7xx/USB_CDC/main.c4
3 files changed, 7 insertions, 1 deletions
diff --git a/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c b/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c
index 6d94f2e07..9c37d58a5 100644
--- a/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c
+++ b/os/hal/ports/STM32/LLD/OTGv1/usb_lld.c
@@ -168,7 +168,7 @@ static void otg_disable_ep(USBDriver *usbp) {
if ((otgp->oe[i].DOEPCTL & DOEPCTL_EPENA) != 0) {
otgp->oe[i].DOEPCTL = DOEPCTL_EPDIS;
/* Wait for endpoint disable.*/
- while (!(otgp->oe[i].DOEPINT & DOEPINT_OTEPDIS))
+ while (!(otgp->oe[i].DOEPCTL & DOEPCTL_EPDIS))
;
}
else
diff --git a/readme.txt b/readme.txt
index 1e9b571bc..323dfb0e2 100644
--- a/readme.txt
+++ b/readme.txt
@@ -135,6 +135,8 @@
- HAL: Updated STM32F0xx headers to STM32CubeF0 version 1.3.0. Added support
for STM32F030xC, STM32F070x6, STM32F070xB, STM32F091xC,
STM32F098xx devices.
+- HAL: Fixed usbStop() hangs in STM32 OTGv1 driver (bug #674)(backported
+ to 3.0.4 and 2.6.10).
- HAL: Fixed STM32 I2Cv2 driver fails on transfers greater than 255 bytes
(bug #673)(backported to 3.0.4).
- HAL: Fixed STM32 I2Cv2 DMA conflict (bug #671)(backported to 3.0.4).
diff --git a/testhal/STM32/STM32F7xx/USB_CDC/main.c b/testhal/STM32/STM32F7xx/USB_CDC/main.c
index d992623c0..73ad1ef18 100644
--- a/testhal/STM32/STM32F7xx/USB_CDC/main.c
+++ b/testhal/STM32/STM32F7xx/USB_CDC/main.c
@@ -213,6 +213,10 @@ int main(void) {
chThdRelease(shelltp); /* Recovers memory of the previous shell. */
shelltp = NULL; /* Triggers spawning of a new shell. */
}
+ if (palReadPad(GPIOI, GPIOI_BUTTON_USER)) {
+ usbDisconnectBus(serusbcfg.usbp);
+ usbStop(serusbcfg.usbp);
+ }
chThdSleepMilliseconds(1000);
}
}