svn commit: r231002 - in projects/pseries: dev/ofw powerpc/ofw

Nathan Whitehorn nwhitehorn at FreeBSD.org
Sun Feb 5 00:31:08 UTC 2012


Author: nwhitehorn
Date: Sun Feb  5 00:31:07 2012
New Revision: 231002
URL: http://svn.freebsd.org/changeset/base/231002

Log:
  Choose to use a OF_xref_phandle() differently: for interrupt parents,
  use whatever is in the firmware tree for cross-referencing, and store
  the PIC id as the xref phandle (as we already do in xics).

Modified:
  projects/pseries/dev/ofw/ofw_bus_subr.c
  projects/pseries/powerpc/ofw/ofw_pcibus.c

Modified: projects/pseries/dev/ofw/ofw_bus_subr.c
==============================================================================
--- projects/pseries/dev/ofw/ofw_bus_subr.c	Sat Feb  4 23:29:07 2012	(r231001)
+++ projects/pseries/dev/ofw/ofw_bus_subr.c	Sun Feb  5 00:31:07 2012	(r231002)
@@ -285,8 +285,7 @@ ofw_bus_search_intrmap(void *intr, int i
 	i = imapsz;
 	while (i > 0) {
 		bcopy(mptr + physsz + intrsz, &parent, sizeof(parent));
-		parent = OF_xref_phandle(parent);
-		if (OF_searchprop(parent, "#interrupt-cells",
+		if (OF_searchprop(OF_xref_phandle(parent), "#interrupt-cells",
 		    &pintrsz, sizeof(pintrsz)) == -1)
 			pintrsz = 1;	/* default */
 		pintrsz *= sizeof(pcell_t);

Modified: projects/pseries/powerpc/ofw/ofw_pcibus.c
==============================================================================
--- projects/pseries/powerpc/ofw/ofw_pcibus.c	Sat Feb  4 23:29:07 2012	(r231001)
+++ projects/pseries/powerpc/ofw/ofw_pcibus.c	Sun Feb  5 00:31:07 2012	(r231002)
@@ -213,11 +213,10 @@ ofw_pcibus_enum_devtree(device_t dev, u_
 				icells = 1;
 				OF_getprop(child, "interrupt-parent", &iparent,
 				    sizeof(iparent));
-				iparent = OF_xref_phandle(iparent);
-
 				if (iparent != 0) {
-					OF_getprop(iparent, "#interrupt-cells",
-					    &icells, sizeof(icells));
+					OF_getprop(OF_xref_phandle(iparent),
+					    "#interrupt-cells", &icells,
+					    sizeof(icells));
 					intr[0] = MAP_IRQ(iparent, intr[0]);
 				}
 
@@ -346,8 +345,6 @@ ofw_pcibus_assign_interrupt(device_t dev
 	iparent = -1;
 	if (OF_getprop(node, "interrupt-parent", &iparent, sizeof(iparent)) < 0)
 		iparent = -1;
-	else
-		iparent = OF_xref_phandle(iparent);
 	
 	/*
 	 * Any AAPL,interrupts property gets priority and is


More information about the svn-src-projects mailing list