Move RTAS PCI-specific interpretation of the "reg" property of the PCI host
device to the RTAS driver, where it belongs.
This commit is contained in:
parent
2a81017500
commit
613d01fe04
@ -136,10 +136,6 @@ ofw_pci_init(device_t dev)
|
||||
sc = device_get_softc(dev);
|
||||
sc->sc_initialized = 1;
|
||||
|
||||
if (OF_getencprop(node, "reg", (pcell_t *)&sc->sc_pcir,
|
||||
sizeof(sc->sc_pcir)) == -1)
|
||||
return (ENXIO);
|
||||
|
||||
if (OF_getencprop(node, "bus-range", busrange, sizeof(busrange)) != 8)
|
||||
busrange[0] = 0;
|
||||
|
||||
|
@ -56,8 +56,6 @@ struct ofw_pci_softc {
|
||||
|
||||
int sc_quirks;
|
||||
|
||||
struct ofw_pci_register sc_pcir;
|
||||
|
||||
struct ofw_pci_range *sc_range;
|
||||
int sc_nrange;
|
||||
|
||||
|
@ -91,6 +91,8 @@ static device_method_t rtaspci_methods[] = {
|
||||
struct rtaspci_softc {
|
||||
struct ofw_pci_softc pci_sc;
|
||||
|
||||
struct ofw_pci_register sc_pcir;
|
||||
|
||||
cell_t read_pci_config, write_pci_config;
|
||||
cell_t ex_read_pci_config, ex_write_pci_config;
|
||||
int sc_extended_config;
|
||||
@ -127,6 +129,10 @@ rtaspci_attach(device_t dev)
|
||||
|
||||
sc = device_get_softc(dev);
|
||||
|
||||
if (OF_getencprop(ofw_bus_get_node(dev), "reg", (pcell_t *)&sc->sc_pcir,
|
||||
sizeof(sc->sc_pcir)) == -1)
|
||||
return (ENXIO);
|
||||
|
||||
sc->read_pci_config = rtas_token_lookup("read-pci-config");
|
||||
sc->write_pci_config = rtas_token_lookup("write-pci-config");
|
||||
sc->ex_read_pci_config = rtas_token_lookup("ibm,read-pci-config");
|
||||
@ -157,8 +163,8 @@ rtaspci_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg,
|
||||
|
||||
if (sc->ex_read_pci_config != -1)
|
||||
error = rtas_call_method(sc->ex_read_pci_config, 4, 2,
|
||||
config_addr, sc->pci_sc.sc_pcir.phys_hi,
|
||||
sc->pci_sc.sc_pcir.phys_mid, width, &pcierror, &retval);
|
||||
config_addr, sc->sc_pcir.phys_hi,
|
||||
sc->sc_pcir.phys_mid, width, &pcierror, &retval);
|
||||
else
|
||||
error = rtas_call_method(sc->read_pci_config, 2, 2,
|
||||
config_addr, width, &pcierror, &retval);
|
||||
@ -196,7 +202,7 @@ rtaspci_write_config(device_t dev, u_int bus, u_int slot, u_int func,
|
||||
|
||||
if (sc->ex_write_pci_config != -1)
|
||||
rtas_call_method(sc->ex_write_pci_config, 5, 1, config_addr,
|
||||
sc->pci_sc.sc_pcir.phys_hi, sc->pci_sc.sc_pcir.phys_mid,
|
||||
sc->sc_pcir.phys_hi, sc->sc_pcir.phys_mid,
|
||||
width, val, &pcierror);
|
||||
else
|
||||
rtas_call_method(sc->write_pci_config, 3, 1, config_addr,
|
||||
|
Loading…
x
Reference in New Issue
Block a user