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