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); }