Remove usb controller takeover code now that it is handled by the pci code.

Reminded by:	jhb
Reviewed by:	HPS
This commit is contained in:
Andrew Thompson 2009-10-26 20:23:15 +00:00
parent ac9bce0f3b
commit 77cbe30ea9
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=198500
3 changed files with 0 additions and 88 deletions

View File

@ -102,8 +102,6 @@ __FBSDID("$FreeBSD$");
#define PCI_EHCI_BASE_REG 0x10
static void ehci_pci_takecontroller(device_t self);
static device_probe_t ehci_pci_probe;
static device_attach_t ehci_pci_attach;
static device_detach_t ehci_pci_detach;
@ -129,7 +127,6 @@ ehci_pci_resume(device_t self)
{
ehci_softc_t *sc = device_get_softc(self);
ehci_pci_takecontroller(self);
ehci_resume(sc);
bus_generic_resume(self);
@ -414,7 +411,6 @@ ehci_pci_attach(device_t self)
sc->sc_intr_hdl = NULL;
goto error;
}
ehci_pci_takecontroller(self);
/* Undocumented quirks taken from Linux */
@ -506,51 +502,6 @@ ehci_pci_detach(device_t self)
return (0);
}
static void
ehci_pci_takecontroller(device_t self)
{
ehci_softc_t *sc = device_get_softc(self);
uint32_t cparams;
uint32_t eec;
uint16_t to;
uint8_t eecp;
uint8_t bios_sem;
cparams = EREAD4(sc, EHCI_HCCPARAMS);
/* Synchronise with the BIOS if it owns the controller. */
for (eecp = EHCI_HCC_EECP(cparams); eecp != 0;
eecp = EHCI_EECP_NEXT(eec)) {
eec = pci_read_config(self, eecp, 4);
if (EHCI_EECP_ID(eec) != EHCI_EC_LEGSUP) {
continue;
}
bios_sem = pci_read_config(self, eecp +
EHCI_LEGSUP_BIOS_SEM, 1);
if (bios_sem == 0) {
continue;
}
device_printf(sc->sc_bus.bdev, "waiting for BIOS "
"to give up control\n");
pci_write_config(self, eecp +
EHCI_LEGSUP_OS_SEM, 1, 1);
to = 500;
while (1) {
bios_sem = pci_read_config(self, eecp +
EHCI_LEGSUP_BIOS_SEM, 1);
if (bios_sem == 0)
break;
if (--to == 0) {
device_printf(sc->sc_bus.bdev,
"timed out waiting for BIOS\n");
break;
}
usb_pause_mtx(NULL, hz / 100); /* wait 10ms */
}
}
}
static driver_t ehci_driver =
{
.name = "ehci",

View File

@ -175,30 +175,6 @@ ohci_controller_init(ohci_softc_t *sc)
uint32_t per;
uint32_t desca;
/* Determine in what context we are running. */
ctl = OREAD4(sc, OHCI_CONTROL);
if (ctl & OHCI_IR) {
/* SMM active, request change */
DPRINTF("SMM active, request owner change\n");
OWRITE4(sc, OHCI_COMMAND_STATUS, OHCI_OCR);
for (i = 0; (i < 100) && (ctl & OHCI_IR); i++) {
usb_pause_mtx(NULL, hz / 1000);
ctl = OREAD4(sc, OHCI_CONTROL);
}
if (ctl & OHCI_IR) {
device_printf(sc->sc_bus.bdev,
"SMM does not respond, resetting\n");
OWRITE4(sc, OHCI_CONTROL, OHCI_HCFS_RESET);
goto reset;
}
} else {
DPRINTF("cold started\n");
reset:
/* controller was cold started */
usb_pause_mtx(NULL,
USB_MS_TO_TICKS(USB_BUS_RESET_DELAY));
}
/*
* This reset should not be necessary according to the OHCI spec, but
* without it some controllers do not start.

View File

@ -115,8 +115,6 @@ uhci_pci_resume(device_t self)
{
uhci_softc_t *sc = device_get_softc(self);
pci_write_config(self, PCI_LEGSUP, PCI_LEGSUP_USBPIRQDEN, 2);
uhci_resume(sc);
bus_generic_resume(self);
@ -363,19 +361,6 @@ uhci_pci_attach(device_t self)
sc->sc_intr_hdl = NULL;
goto error;
}
/*
* Set the PIRQD enable bit and switch off all the others. We don't
* want legacy support to interfere with us XXX Does this also mean
* that the BIOS won't touch the keyboard anymore if it is connected
* to the ports of the root hub?
*/
#ifdef USB_DEBUG
if (pci_read_config(self, PCI_LEGSUP, 2) != PCI_LEGSUP_USBPIRQDEN) {
device_printf(self, "LegSup = 0x%04x\n",
pci_read_config(self, PCI_LEGSUP, 2));
}
#endif
pci_write_config(self, PCI_LEGSUP, PCI_LEGSUP_USBPIRQDEN, 2);
err = uhci_init(sc);
if (!err) {