version 1.47.2.1, 2011/03/05 20:53:36 |
version 1.47.2.2, 2011/04/21 01:41:49 |
Line 86 struct ehci_pci_softc { |
|
Line 86 struct ehci_pci_softc { |
|
void *sc_ih; /* interrupt vectoring */ |
void *sc_ih; /* interrupt vectoring */ |
}; |
}; |
|
|
static int ehci_sb700_match(struct pci_attach_args *pa); |
static int ehci_sb700_match(const struct pci_attach_args *pa); |
static int ehci_apply_amd_quirks(struct ehci_pci_softc *sc); |
static int ehci_apply_amd_quirks(struct ehci_pci_softc *sc); |
enum ehci_pci_quirk_flags ehci_pci_lookup_quirkdata(pci_vendor_id_t, |
enum ehci_pci_quirk_flags ehci_pci_lookup_quirkdata(pci_vendor_id_t, |
pci_product_id_t); |
pci_product_id_t); |
Line 282 ehci_pci_detach(device_t self, int flags |
|
Line 282 ehci_pci_detach(device_t self, int flags |
|
struct ehci_pci_softc *sc = device_private(self); |
struct ehci_pci_softc *sc = device_private(self); |
int rv; |
int rv; |
|
|
pmf_device_deregister(self); |
|
rv = ehci_detach(&sc->sc, flags); |
rv = ehci_detach(&sc->sc, flags); |
if (rv) |
if (rv) |
return rv; |
return rv; |
|
|
|
pmf_device_deregister(self); |
|
ehci_shutdown(self, flags); |
|
|
/* disable interrupts */ |
/* disable interrupts */ |
EOWRITE2(&sc->sc, EHCI_USBINTR, 0); |
EOWRITE2(&sc->sc, EHCI_USBINTR, 0); |
/* XXX grotty hack to flush the write */ |
/* XXX grotty hack to flush the write */ |
Line 445 ehci_pci_resume(device_t dv, const pmf_q |
|
Line 447 ehci_pci_resume(device_t dv, const pmf_q |
|
} |
} |
|
|
static int |
static int |
ehci_sb700_match(struct pci_attach_args *pa) |
ehci_sb700_match(const struct pci_attach_args *pa) |
{ |
{ |
if (!(PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ATI && |
if (!(PCI_VENDOR(pa->pa_id) == PCI_VENDOR_ATI && |
PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ATI_SB600_SMB)) |
PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ATI_SB600_SMB)) |