svn commit: r278850 - head/sys/dev/usb/controller
Hans Petter Selasky
hselasky at FreeBSD.org
Mon Feb 16 15:34:11 UTC 2015
Author: hselasky
Date: Mon Feb 16 15:34:10 2015
New Revision: 278850
URL: https://svnweb.freebsd.org/changeset/base/278850
Log:
Handle VBUS error interrupts.
Submitted by: SAITOU Toshihide <toshi at ruby.ocn.ne.jp>
PR: 190471
MFC after: 1 week
Modified:
head/sys/dev/usb/controller/musb_otg.c
Modified: head/sys/dev/usb/controller/musb_otg.c
==============================================================================
--- head/sys/dev/usb/controller/musb_otg.c Mon Feb 16 13:02:00 2015 (r278849)
+++ head/sys/dev/usb/controller/musb_otg.c Mon Feb 16 15:34:10 2015 (r278850)
@@ -2258,7 +2258,8 @@ repeat:
if (usb_status & (MUSB2_MASK_IRESET |
MUSB2_MASK_IRESUME | MUSB2_MASK_ISUSP |
- MUSB2_MASK_ICONN | MUSB2_MASK_IDISC)) {
+ MUSB2_MASK_ICONN | MUSB2_MASK_IDISC |
+ MUSB2_MASK_IVBUSERR)) {
DPRINTFN(4, "real bus interrupt 0x%08x\n", usb_status);
@@ -2330,6 +2331,12 @@ repeat:
* always in reset state once device is connected.
*/
if (sc->sc_mode == MUSB2_HOST_MODE) {
+ /* check for VBUS error in USB host mode */
+ if (usb_status & MUSB2_MASK_IVBUSERR) {
+ temp = MUSB2_READ_1(sc, MUSB2_REG_DEVCTL);
+ temp |= MUSB2_MASK_SESS;
+ MUSB2_WRITE_1(sc, MUSB2_REG_DEVCTL, temp);
+ }
if (usb_status & MUSB2_MASK_ICONN)
sc->sc_flags.status_bus_reset = 1;
if (usb_status & MUSB2_MASK_IDISC)
More information about the svn-src-head
mailing list