diff options
author | David Gwynne <dlg@cvs.openbsd.org> | 2004-12-29 01:52:28 +0000 |
---|---|---|
committer | David Gwynne <dlg@cvs.openbsd.org> | 2004-12-29 01:52:28 +0000 |
commit | e21f5a39ae887f8942ef4219e31f1ae7e5ade40c (patch) | |
tree | 0d92495fbe02d52ddc8ffd61fbb4247e4b95c341 /sys/dev/usb | |
parent | 72f515ed522e03c0608093ba6f814fbeebd7d9fc (diff) |
from freebsd: ehci.c 1.13, ehci_pci.c 1.13, ehcireg.h 1.5, ehcivar.h 1.3
log message:
Attempt to follow the correct procedure for synchronising with the
system BIOS to disable legacy device emulation as per the "EHCI
Extended Capability: Pre-OS to OS Handoff Synchronisation" section
of the EHCI spec. BIOSes that implement legacy emulation using SMIs
are supposed to disable the emulation when this procedure is performed.
tested on various archs by jsg@ and me
ok pascoe@, looks sane jsg@
Diffstat (limited to 'sys/dev/usb')
-rw-r--r-- | sys/dev/usb/ehci.c | 4 | ||||
-rw-r--r-- | sys/dev/usb/ehcireg.h | 15 | ||||
-rw-r--r-- | sys/dev/usb/ehcivar.h | 3 |
3 files changed, 14 insertions, 8 deletions
diff --git a/sys/dev/usb/ehci.c b/sys/dev/usb/ehci.c index 4279581c0cd..363a084f0f3 100644 --- a/sys/dev/usb/ehci.c +++ b/sys/dev/usb/ehci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ehci.c,v 1.32 2004/10/31 10:29:45 dlg Exp $ */ +/* $OpenBSD: ehci.c,v 1.33 2004/12/29 01:52:27 dlg Exp $ */ /* $NetBSD: ehci.c,v 1.66 2004/06/30 03:11:56 mycroft Exp $ */ /* @@ -144,7 +144,6 @@ struct ehci_pipe { } u; }; -Static void ehci_shutdown(void *); Static void ehci_power(int, void *); Static usbd_status ehci_open(usbd_pipe_handle); @@ -416,7 +415,6 @@ ehci_init(ehci_softc_t *sc) sc->sc_bus.pipe_size = sizeof(struct ehci_pipe); sc->sc_powerhook = powerhook_establish(ehci_power, sc); - sc->sc_shutdownhook = shutdownhook_establish(ehci_shutdown, sc); sc->sc_eintrs = EHCI_NORMAL_INTRS; diff --git a/sys/dev/usb/ehcireg.h b/sys/dev/usb/ehcireg.h index 3be89651e7b..76c4baffb40 100644 --- a/sys/dev/usb/ehcireg.h +++ b/sys/dev/usb/ehcireg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ehcireg.h,v 1.11 2004/10/25 22:30:04 dlg Exp $ */ +/* $OpenBSD: ehcireg.h,v 1.12 2004/12/29 01:52:27 dlg Exp $ */ /* $NetBSD: ehcireg.h,v 1.17 2004/06/23 06:45:56 mycroft Exp $ */ /* @@ -64,9 +64,16 @@ #define PCI_EHCI_PORTWAKECAP 0x62 /* RW Port wake caps (opt) */ -/* Regs ar EECP + offset */ -#define PCI_EHCI_USBLEGSUP 0x00 -#define PCI_EHCI_USBLEGCTLSTS 0x04 +/* EHCI Extended Capabilities */ +#define EHCI_EC_LEGSUP 0x01 + +#define EHCI_EECP_NEXT(x) (((x) >> 8) & 0xff) +#define EHCI_EECP_ID(x) ((x) & 0xff) + +#define EHCI_LEGSUP_LEGSUP 0x01 +#define EHCI_LEGSUP_OSOWNED 0x01000000 /* OS owned semaphore */ +#define EHCI_LEGSUP_BIOSOWNED 0x00010000 /* BIOS owned semaphore */ +#define PCI_LEGSUP_USBLEGCTLSTS 0x04 /*** EHCI capability registers ***/ diff --git a/sys/dev/usb/ehcivar.h b/sys/dev/usb/ehcivar.h index cc4d3fc1c93..bdfde1445b0 100644 --- a/sys/dev/usb/ehcivar.h +++ b/sys/dev/usb/ehcivar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ehcivar.h,v 1.6 2004/10/20 12:45:31 dlg Exp $ */ +/* $OpenBSD: ehcivar.h,v 1.7 2004/12/29 01:52:27 dlg Exp $ */ /* $NetBSD: ehcivar.h,v 1.12 2001/12/31 12:16:57 augustss Exp $ */ /* @@ -154,3 +154,4 @@ usbd_status ehci_init(ehci_softc_t *); int ehci_intr(void *); int ehci_detach(ehci_softc_t *, int); int ehci_activate(device_ptr_t, enum devact); +void ehci_shutdown(void *); |