Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arm/omap Make the softc static. Add a prcm_bootstr...



details:   https://anonhg.NetBSD.org/src/rev/c19219a9242d
branches:  trunk
changeset: 787721:c19219a9242d
user:      matt <matt%NetBSD.org@localhost>
date:      Sat Jun 29 20:19:54 2013 +0000

description:
Make the softc static.  Add a prcm_bootstrap(bus_space_handle_t) so that
early bootstrap code can use prcm_read_4 and prcm_write_4.

diffstat:

 sys/arch/arm/omap/omap2_prcm.c |  41 +++++++++++++++++++++++------------------
 1 files changed, 23 insertions(+), 18 deletions(-)

diffs (96 lines):

diff -r e51fe0c683a7 -r c19219a9242d sys/arch/arm/omap/omap2_prcm.c
--- a/sys/arch/arm/omap/omap2_prcm.c    Sat Jun 29 16:50:51 2013 +0000
+++ b/sys/arch/arm/omap/omap2_prcm.c    Sat Jun 29 20:19:54 2013 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: omap2_prcm.c,v 1.4 2012/12/11 18:51:38 riastradh Exp $ */
+/*     $NetBSD: omap2_prcm.c,v 1.5 2013/06/29 20:19:54 matt Exp $      */
 
 /*-
  * Copyright (c) 2010 Adam Hoka
@@ -28,7 +28,7 @@
 
 #include "opt_omap.h"
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: omap2_prcm.c,v 1.4 2012/12/11 18:51:38 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap2_prcm.c,v 1.5 2013/06/29 20:19:54 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -52,14 +52,17 @@
 };
 
 /* for external access to prcm operations */
-struct prcm_softc *prcm_sc;
+struct prcm_softc prcm_sc = {
+       .sc_iot = &omap_bs_tag,
+       .sc_size = OMAP2_PRM_SIZE,
+};
 
 /* prototypes */
 static int     prcm_match(device_t, cfdata_t, void *);
 static void    prcm_attach(device_t, device_t, void *);
 
 /* attach structures */
-CFATTACH_DECL_NEW(prcm, sizeof(struct prcm_softc),
+CFATTACH_DECL_NEW(prcm, 0,
        prcm_match, prcm_attach, NULL, NULL);
 
 static int
@@ -77,18 +80,16 @@
 {
        struct obio_attach_args *obio = aux;
 
-       KASSERT(prcm_sc == NULL);
-       prcm_sc = device_private(self);
+       KASSERT(prcm_sc.sc_dev == NULL);
 
-       prcm_sc->sc_dev = self;
-       prcm_sc->sc_iot = &omap_bs_tag;
+       self->dv_private = &prcm_sc;
+       prcm_sc.sc_dev = self;
 
-       prcm_sc->sc_base = obio->obio_addr;
-       prcm_sc->sc_size = OMAP2_PRM_SIZE;
+       prcm_sc.sc_base = obio->obio_addr;
 
        /* map i/o space for PRM */
-       if (bus_space_map(prcm_sc->sc_iot, prcm_sc->sc_base, prcm_sc->sc_size,
-           0, &prcm_sc->sc_ioh) != 0) {
+       if (bus_space_map(prcm_sc.sc_iot, prcm_sc.sc_base, prcm_sc.sc_size,
+           0, &prcm_sc.sc_ioh) != 0) {
                aprint_error("prcm_attach: can't map i/o space for prm");
                return;
        }
@@ -96,22 +97,26 @@
        aprint_normal(": Power, Reset and Clock Management\n");
 }
 
+void
+prcm_bootstrap(bus_space_handle_t ioh)
+{
+       prcm_sc.sc_ioh = ioh;
+}
+
 uint32_t
 prcm_read_4(bus_size_t module, bus_size_t reg)
 {
 
-       KASSERT(prcm_sc != NULL);
-       return bus_space_read_4(prcm_sc->sc_iot, prcm_sc->sc_ioh,
-           module + reg);
+       KASSERT(prcm_sc.sc_ioh != 0);
+       return bus_space_read_4(prcm_sc.sc_iot, prcm_sc.sc_ioh, module + reg);
 }
 
 void
 prcm_write_4(bus_size_t module, bus_size_t reg, uint32_t data)
 {
 
-       KASSERT(prcm_sc != NULL);
-       bus_space_write_4(prcm_sc->sc_iot, prcm_sc->sc_ioh,
-           module + reg, data);
+       KASSERT(prcm_sc.sc_ioh != 0);
+       bus_space_write_4(prcm_sc.sc_iot, prcm_sc.sc_ioh, module + reg, data);
 }
 
 void



Home | Main Index | Thread Index | Old Index