tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[patch] xhci patch 20150923



Hello,

Here are xhci patches for nick-nhusb branch.


nhusb-xhcireg_h.diff
	+ Fix the name of multiple inclusion protection.
nhusb-uhub_c.diff
	+ Fix devices were not recognized at boot on some xhci
	  (AFAIK Intel PCHs).


--
t-hash
--- sys/dev/usb/xhcireg.h.orig	2015-09-13 18:38:00.000000000 +0900
+++ sys/dev/usb/xhcireg.h	2015-09-13 18:53:03.000000000 +0900
@@ -26,8 +26,8 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _XHCIREG_H_
-#define	_XHCIREG_H_
+#ifndef _DEV_USB_XHCIREG_H_
+#define	_DEV_USB_XHCIREG_H_
 
 /* XHCI PCI config registers */
 #define	PCI_CBMEM		0x10	/* configuration base MEM */
@@ -470,4 +470,4 @@ struct xhci_erste {
 } __packed __aligned(XHCI_ERSTE_ALIGN);
 #define XHCI_ERSTE_SIZE sizeof(struct xhci_erste)
 
-#endif	/* _XHCIREG_H_ */
+#endif	/* _DEV_USB_XHCIREG_H_ */
--- sys/dev/usb/uhub.c.orig	2015-06-07 01:42:33.000000000 +0900
+++ sys/dev/usb/uhub.c	2015-09-22 19:45:06.000000000 +0900
@@ -587,6 +587,13 @@ uhub_explore(struct usbd_device *dev)
 			}
 		}
 		if (change & UPS_C_PORT_RESET) {
+			/*
+			 * some xHCs set PortResetChange instead of CSC
+			 * when port is reset.
+			 */
+			if ((status & UPS_CURRENT_CONNECT_STATUS) != 0) {
+				change |= UPS_C_CONNECT_STATUS;
+			}
 			usbd_clear_port_feature(dev, port, UHF_C_PORT_RESET);
 		}
 		if (change & UPS_C_BH_PORT_RESET) {


Home | Main Index | Thread Index | Old Index