svn commit: r294281 - in head/sys/powerpc: ofw pseries

Nathan Whitehorn nwhitehorn at FreeBSD.org
Mon Jan 18 17:27:18 UTC 2016


Author: nwhitehorn
Date: Mon Jan 18 17:27:16 2016
New Revision: 294281
URL: https://svnweb.freebsd.org/changeset/base/294281

Log:
  Move RTAS PCI-specific interpretation of the "reg" property of the PCI host
  device to the RTAS driver, where it belongs.

Modified:
  head/sys/powerpc/ofw/ofw_pci.c
  head/sys/powerpc/ofw/ofw_pci.h
  head/sys/powerpc/pseries/rtas_pci.c

Modified: head/sys/powerpc/ofw/ofw_pci.c
==============================================================================
--- head/sys/powerpc/ofw/ofw_pci.c	Mon Jan 18 17:03:12 2016	(r294280)
+++ head/sys/powerpc/ofw/ofw_pci.c	Mon Jan 18 17:27:16 2016	(r294281)
@@ -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;
 

Modified: head/sys/powerpc/ofw/ofw_pci.h
==============================================================================
--- head/sys/powerpc/ofw/ofw_pci.h	Mon Jan 18 17:03:12 2016	(r294280)
+++ head/sys/powerpc/ofw/ofw_pci.h	Mon Jan 18 17:27:16 2016	(r294281)
@@ -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;
 

Modified: head/sys/powerpc/pseries/rtas_pci.c
==============================================================================
--- head/sys/powerpc/pseries/rtas_pci.c	Mon Jan 18 17:03:12 2016	(r294280)
+++ head/sys/powerpc/pseries/rtas_pci.c	Mon Jan 18 17:27:16 2016	(r294281)
@@ -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 
 		
 	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
 		
 	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,


More information about the svn-src-all mailing list