svn commit: r302306 - head/sys/dev/usb/controller

Hans Petter Selasky hselasky at FreeBSD.org
Fri Jul 1 07:27:34 UTC 2016


Author: hselasky
Date: Fri Jul  1 07:27:33 2016
New Revision: 302306
URL: https://svnweb.freebsd.org/changeset/base/302306

Log:
  Fix detection of USB device disconnects in USB host mode when the USB
  device is connected directly to the USB port of the DWC OTG, in this
  case a RPI-zero.
  
  PR:		210695
  Approved by:	re (gjb)
  MFC after:	1 week

Modified:
  head/sys/dev/usb/controller/dwc_otg.c

Modified: head/sys/dev/usb/controller/dwc_otg.c
==============================================================================
--- head/sys/dev/usb/controller/dwc_otg.c	Fri Jul  1 05:48:45 2016	(r302305)
+++ head/sys/dev/usb/controller/dwc_otg.c	Fri Jul  1 07:27:33 2016	(r302306)
@@ -2985,7 +2985,8 @@ dwc_otg_interrupt(void *arg)
 		else
 			sc->sc_flags.status_bus_reset = 0;
 
-		if (hprt & HPRT_PRTENCHNG)
+		if ((hprt & HPRT_PRTENCHNG) &&
+		    (hprt & HPRT_PRTENA) == 0)
 			sc->sc_flags.change_enabled = 1;
 
 		if (hprt & HPRT_PRTENA)
@@ -4745,6 +4746,8 @@ tr_handle_get_port_status:
 
 	value = 0;
 
+	if (sc->sc_flags.change_enabled)
+		value |= UPS_C_PORT_ENABLED;
 	if (sc->sc_flags.change_connect)
 		value |= UPS_C_CONNECT_STATUS;
 	if (sc->sc_flags.change_suspend)


More information about the svn-src-all mailing list