Minor tweaks to make this chip work better with Linux;
please merge.

- Dave
This has two minor patches to make this driver work better with
the Genesys GL880S:  don't report hardware port indicators (until
the root hub code supports them); and patch the misreported number
of ports (two, not four).

Signed-off-by: David Brownell <[EMAIL PROTECTED]>


--- 1.105/drivers/usb/host/ehci-hcd.c	2004-11-15 14:28:15 -08:00
+++ edited/drivers/usb/host/ehci-hcd.c	2004-11-23 00:39:00 -08:00
@@ -379,6 +379,14 @@
 	/* cache this readonly data; minimize PCI reads */
 	ehci->hcs_params = readl (&ehci->caps->hcs_params);
 
+	/* at least the Genesys GL880S needs fixup here */
+	temp = HCS_N_CC(ehci->hcs_params) * HCS_N_PCC(ehci->hcs_params);
+	temp &= 0x0f;
+	if (temp && HCS_N_PORTS(ehci->hcs_params) > temp) {
+		temp |= (ehci->hcs_params & ~0xf);
+		ehci->hcs_params = temp;
+	}
+
 	/* force HC to halt state */
 	return ehci_halt (ehci);
 }
--- 1.39/drivers/usb/host/ehci-hub.c	2004-11-15 14:28:15 -08:00
+++ edited/drivers/usb/host/ehci-hub.c	2004-11-23 00:14:42 -08:00
@@ -281,8 +281,11 @@
 	temp = 0x0008;			/* per-port overcurrent reporting */
 	if (HCS_PPC (ehci->hcs_params))
 		temp |= 0x0001;		/* per-port power control */
+#if 0
+// re-enable when we support USB_PORT_FEAT_INDICATOR below.
 	if (HCS_INDICATOR (ehci->hcs_params))
 		temp |= 0x0080;		/* per-port indicators (LEDs) */
+#endif
 	desc->wHubCharacteristics = cpu_to_le16 (temp);
 }
 

Reply via email to