On Mon, Feb 27, 2017 at 03:55:12AM -0500, Ian Sutton wrote:
> Previous patch was malformed, d'oh.
> 
> Index: conf/GENERIC
> ===================================================================
> RCS file: /cvs/src/sys/arch/armv7/conf/GENERIC,v
> retrieving revision 1.71
> diff -u -p -r1.71 GENERIC
> --- conf/GENERIC      23 Jan 2017 22:43:17 -0000      1.71
> +++ conf/GENERIC      27 Feb 2017 08:21:08 -0000
> @@ -63,7 +63,7 @@ omapid*             at omap?
>  # OMAP on-chip devices
>  intc*                at fdt?                 # OMAP3 interrupt controller
>  omwugen*     at fdt?                 # Wake-up generator
> -#edma*               at omap?                # OMAP3 dma controller
> +edma*                at fdt?                 # OMAP3 dma controller
>  prcm*                at omap?                # power/clock controller
>  ompinmux*    at fdt?                 # pin muxing
>  omdog*               at fdt?                 # watchdog timer
> Index: omap/edma.c
> ===================================================================
> RCS file: /cvs/src/sys/arch/armv7/omap/edma.c,v
> retrieving revision 1.5
> diff -u -p -r1.5 edma.c
> --- omap/edma.c       22 Jan 2015 14:33:01 -0000      1.5
> +++ omap/edma.c       27 Feb 2017 08:21:08 -0000
> @@ -19,12 +19,15 @@
>  #include <sys/types.h>
>  #include <sys/systm.h>
>  
> -#include <machine/bus.h>
> +#include <machine/fdt.h>
>  
>  #include <armv7/armv7/armv7var.h>
>  #include <armv7/omap/prcmvar.h>
>  #include <armv7/omap/edmavar.h>
>  
> +#include <dev/ofw/openfirm.h>
> +#include <dev/ofw/fdt.h>
> +
>  #define DEVNAME(s)           ((s)->sc_dev.dv_xname)
>  
>  struct edma_softc {
> @@ -78,30 +81,46 @@ struct edma_softc {
>  
>  struct edma_softc *edma_sc;
>  
> +int  edma_match(struct device *, void *, void *);
>  void edma_attach(struct device *, struct device *, void *);
>  int  edma_comp_intr(void *);
>  
>  struct cfattach edma_ca = {
> -     sizeof(struct edma_softc), NULL, edma_attach
> +     sizeof(struct edma_softc), edma_match, edma_attach
>  };
>  
>  struct cfdriver edma_cd = {
>       NULL, "edma", DV_DULL
>  };
>  
> +int
> +edma_match(struct device *parent, void *match, void *aux)
> +{
> +     struct fdt_attach_args *faa = aux;
> +     char hwmods[32];
> +
> +     if (OF_is_compatible(faa->fa_node, "ti,edma3-tpcc")) {
> +         OF_getprop(faa->fa_node, "ti,hwmods", &hwmods, 32);
> +
> +         return !strncmp(hwmods, "tpcc", 32);
> +     }
> +
> +     return 0;
> +}
> +
>  void
>  edma_attach(struct device *parent, struct device *self, void *aux)
>  {
> -     struct armv7_attach_args *aa = aux;
> +     struct fdt_attach_args *faa = aux;
>       struct edma_softc *sc = (struct edma_softc *)self;
>       uint32_t rev;
>       int i;
>  
> -     sc->sc_iot = aa->aa_iot;
> +     sc->sc_iot = faa->fa_iot;
>  
>       /* Map Base address for TPCC and TPCTX */
> -     if (bus_space_map(sc->sc_iot, aa->aa_dev->mem[0].addr,
> -         aa->aa_dev->mem[0].size, 0, &sc->sc_tpcc)) {
> +     if (bus_space_map(sc->sc_iot, faa->fa_reg[0].addr, faa->fa_reg[0].size, 
> 0,

this exceeds 80 chars

> +         &sc->sc_tpcc)) {
>               printf("%s: bus_space_map failed for TPCC\n", DEVNAME(sc));
>               return ;
>       }
> @@ -115,12 +134,12 @@ edma_attach(struct device *parent, struc
>  
>       /* XXX IPL_VM ? */
>       /* Enable interrupts line */
> -     sc->sc_ih_comp = arm_intr_establish(aa->aa_dev->irq[0], IPL_VM,
> -         edma_comp_intr, sc, DEVNAME(sc));
> +     sc->sc_ih_comp = arm_intr_establish_fdt(faa->fa_node, IPL_VM, 
> edma_comp_intr,

as does this

> +         sc, DEVNAME(sc));
>       if (sc->sc_ih_comp == NULL) {
>               printf("%s: unable to establish interrupt comp\n", DEVNAME(sc));
>               bus_space_unmap(sc->sc_iot, sc->sc_tpcc,
> -                 aa->aa_dev->mem[0].size);
> +                 faa->fa_reg[0].size);
>               return ;
>       }
>  
> Index: omap/files.omap
> ===================================================================
> RCS file: /cvs/src/sys/arch/armv7/omap/files.omap,v
> retrieving revision 1.19
> diff -u -p -r1.19 files.omap
> --- omap/files.omap   3 Oct 2016 01:59:20 -0000       1.19
> +++ omap/files.omap   27 Feb 2017 08:21:08 -0000
> @@ -39,7 +39,7 @@ attach tiiic at fdt
>  file arch/armv7/omap/ti_iic.c                tiiic
>  
>  device edma
> -attach edma at omap
> +attach edma at fdt
>  file arch/armv7/omap/edma.c                  edma
>  
>  device intc
> 

Reply via email to