Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Feb 2015 04:55:05 +0000 (UTC)
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r278181 - in projects/pmac_pmu/sys/powerpc: include powerpc
Message-ID:  <201502040455.t144t5bA099237@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201502040455.t144t5bA099237>