svn commit: r278181 - in projects/pmac_pmu/sys/powerpc: include powerpc

Justin Hibbits jhibbits at FreeBSD.org
Wed Feb 4 04:55:06 UTC 2015


Author: jhibbits
Date: Wed Feb  4 04:55:04 2015
New Revision: 278181
URL: https://svnweb.freebsd.org/changeset/base/278181

Log:
  Save the rest of the OpenPIC registers.
  
  While here, convert to using openpic_read()/openpic_write() for PIC accesses, to
  match the rest of the file, and clean up style(9).

Modified:
  projects/pmac_pmu/sys/powerpc/include/openpicvar.h
  projects/pmac_pmu/sys/powerpc/powerpc/openpic.c

Modified: projects/pmac_pmu/sys/powerpc/include/openpicvar.h
==============================================================================
--- projects/pmac_pmu/sys/powerpc/include/openpicvar.h	Wed Feb  4 00:56:55 2015	(r278180)
+++ projects/pmac_pmu/sys/powerpc/include/openpicvar.h	Wed Feb  4 04:55:04 2015	(r278181)
@@ -56,10 +56,13 @@ struct openpic_softc {
 
 	/* Saved states. */
 	uint32_t		sc_saved_config;
+	uint32_t		sc_saved_spurious;
+	uint32_t		sc_saved_tfreq;
 	uint32_t		sc_saved_ipis[4];
 	uint32_t		sc_saved_prios[4];
 	struct openpic_timer	sc_saved_timers[OPENPIC_TIMERS];
-	uint32_t		sc_saved_vectors[OPENPIC_SRC_VECTOR_COUNT];
+	uint32_t		sc_saved_src[OPENPIC_SRC_VECTOR_COUNT];
+	uint32_t		sc_saved_dest[OPENPIC_SRC_VECTOR_COUNT];
 	
 };
 

Modified: projects/pmac_pmu/sys/powerpc/powerpc/openpic.c
==============================================================================
--- projects/pmac_pmu/sys/powerpc/powerpc/openpic.c	Wed Feb  4 00:56:55 2015	(r278180)
+++ projects/pmac_pmu/sys/powerpc/powerpc/openpic.c	Wed Feb  4 04:55:04 2015	(r278181)
@@ -389,25 +389,35 @@ openpic_suspend(device_t dev)
 
 	sc = device_get_softc(dev);
 
-	sc->sc_saved_config = bus_read_4(sc->sc_memr, OPENPIC_CONFIG);
+	sc->sc_saved_config = openpic_read(sc, OPENPIC_CONFIG);
+	sc->sc_saved_spurious = openpic_read(sc, OPENPIC_SPURIOUS_VECTOR);
+	sc->sc_saved_tfreq = openpic_read(sc, OPENPIC_TFREQ);
 	for (i = 0; i < 4; i++) {
-		sc->sc_saved_ipis[i] = bus_read_4(sc->sc_memr, OPENPIC_IPI_VECTOR(i));
+		sc->sc_saved_ipis[i] =
+		    openpic_read(sc, OPENPIC_IPI_VECTOR(i));
 	}
 
 	for (i = 0; i < 4; i++) {
-		sc->sc_saved_prios[i] = bus_read_4(sc->sc_memr, OPENPIC_PCPU_TPR(i));
+		sc->sc_saved_prios[i] =
+		    openpic_read(sc, OPENPIC_PCPU_TPR(i));
 	}
 
 	for (i = 0; i < OPENPIC_TIMERS; i++) {
-		sc->sc_saved_timers[i].tcnt = bus_read_4(sc->sc_memr, OPENPIC_TCNT(i));
-		sc->sc_saved_timers[i].tbase = bus_read_4(sc->sc_memr, OPENPIC_TBASE(i));
-		sc->sc_saved_timers[i].tvec = bus_read_4(sc->sc_memr, OPENPIC_TVEC(i));
-		sc->sc_saved_timers[i].tdst = bus_read_4(sc->sc_memr, OPENPIC_TDST(i));
+		sc->sc_saved_timers[i].tcnt =
+		    openpic_read(sc, OPENPIC_TCNT(i));
+		sc->sc_saved_timers[i].tbase =
+		    openpic_read(sc, OPENPIC_TBASE(i));
+		sc->sc_saved_timers[i].tvec =
+		    openpic_read(sc, OPENPIC_TVEC(i));
+		sc->sc_saved_timers[i].tdst =
+		    openpic_read(sc, OPENPIC_TDST(i));
 	}
 
-	for (i = 0; i < OPENPIC_SRC_VECTOR_COUNT; i++)
-		sc->sc_saved_vectors[i] =
-		    bus_read_4(sc->sc_memr, OPENPIC_SRC_VECTOR(i)) & ~OPENPIC_ACTIVITY;
+	for (i = 0; i < OPENPIC_SRC_VECTOR_COUNT; i++) {
+		sc->sc_saved_src[i] = openpic_read(sc,
+		    OPENPIC_SRC_VECTOR(i)) & ~OPENPIC_ACTIVITY;
+		sc->sc_saved_dest[i] = openpic_read(sc, OPENPIC_IDEST(i));
+	}
 
 	return (0);
 }
@@ -420,24 +430,34 @@ openpic_resume(device_t dev)
 
     	sc = device_get_softc(dev);
 
-	sc->sc_saved_config = bus_read_4(sc->sc_memr, OPENPIC_CONFIG);
+	openpic_write(sc, OPENPIC_CONFIG, sc->sc_saved_config);
+	openpic_write(sc, OPENPIC_SPURIOUS_VECTOR, sc->sc_saved_spurious);
+	openpic_write(sc, OPENPIC_TFREQ, sc->sc_saved_tfreq);
 	for (i = 0; i < 4; i++) {
-		bus_write_4(sc->sc_memr, OPENPIC_IPI_VECTOR(i), sc->sc_saved_ipis[i]);
+		openpic_write(sc, OPENPIC_IPI_VECTOR(i),
+		    sc->sc_saved_ipis[i]);
 	}
 
 	for (i = 0; i < 4; i++) {
-		bus_write_4(sc->sc_memr, OPENPIC_PCPU_TPR(i), sc->sc_saved_prios[i]);
+		openpic_write(sc, OPENPIC_PCPU_TPR(i),
+		    sc->sc_saved_prios[i]);
 	}
 
 	for (i = 0; i < OPENPIC_TIMERS; i++) {
-		bus_write_4(sc->sc_memr, OPENPIC_TCNT(i), sc->sc_saved_timers[i].tcnt);
-		bus_write_4(sc->sc_memr, OPENPIC_TBASE(i), sc->sc_saved_timers[i].tbase);
-		bus_write_4(sc->sc_memr, OPENPIC_TVEC(i), sc->sc_saved_timers[i].tvec);
-		bus_write_4(sc->sc_memr, OPENPIC_TDST(i), sc->sc_saved_timers[i].tdst);
+		openpic_write(sc, OPENPIC_TCNT(i),
+		    sc->sc_saved_timers[i].tcnt);
+		openpic_write(sc, OPENPIC_TBASE(i),
+		    sc->sc_saved_timers[i].tbase);
+		openpic_write(sc, OPENPIC_TVEC(i),
+		    sc->sc_saved_timers[i].tvec);
+		openpic_write(sc, OPENPIC_TDST(i),
+		    sc->sc_saved_timers[i].tdst);
 	}
 
-	for (i = 0; i < OPENPIC_SRC_VECTOR_COUNT; i++)
-		bus_write_4(sc->sc_memr, OPENPIC_SRC_VECTOR(i), sc->sc_saved_vectors[i]);
+	for (i = 0; i < OPENPIC_SRC_VECTOR_COUNT; i++) {
+		openpic_write(sc, OPENPIC_SRC_VECTOR(i), sc->sc_saved_src[i]);
+		openpic_write(sc, OPENPIC_IDEST(i), sc->sc_saved_dest[i]);
+	}
 
 	return (0);
 }


More information about the svn-src-projects mailing list