42#include <sys/kernel.h>
43#include <sys/module.h>
46#include <isa/isavar.h>
50#include <machine/bus.h>
52#include <machine/resource.h>
58 rman_res_t
count, u_int flags);
60 int type,
int rid,
struct resource *r);
66 DEVMETHOD(device_detach, bus_generic_detach),
67 DEVMETHOD(device_shutdown, bus_generic_shutdown),
68 DEVMETHOD(device_suspend, bus_generic_suspend),
69 DEVMETHOD(device_resume, bus_generic_resume),
72 DEVMETHOD(bus_add_child, bus_generic_add_child),
75 DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
76 DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
77 DEVMETHOD(bus_setup_intr, bus_generic_setup_intr),
78 DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr),
122 switch (pci_get_devid(
dev)) {
144 printf(
"PCI-ISA bridge with incorrect subclass 0x%x\n",
145 pci_get_subclass(
dev));
155 device_set_desc(
dev,
"PCI-ISA bridge");
165 bus_generic_probe(
dev);
166 return (isab_attach(
dev));
169static struct resource *
171 rman_res_t
start, rman_res_t end, rman_res_t
count, u_int flags)
176 if (device_get_parent(
child) !=
dev)
190 sc = device_get_softc(
dev);
210 if (device_get_parent(
child) !=
dev)
223 sc = device_get_softc(
dev);
227 (
"isa_pci resource mismatch"));
233 (
"isa_pci resource reference count underflow"));
234 error = bus_release_resource(
dev,
type,
rid, r);
242 return (BUS_RELEASE_RESOURCE(device_get_parent(
dev),
child,
type,
static int isab_pci_probe(device_t dev)
static struct resource * isab_pci_alloc_resource(device_t dev, device_t child, int type, int *rid, rman_res_t start, rman_res_t end, rman_res_t count, u_int flags)
static int isab_pci_attach(device_t dev)
static int isab_pci_release_resource(device_t dev, device_t child, int type, int rid, struct resource *r)
static device_method_t isab_methods[]
static driver_t isab_driver
DRIVER_MODULE(isab, pci, isab_driver, isab_devclass, 0, 0)
struct isab_pci_resource isab_pci_res[PCIR_MAX_BAR_0+1]