The branch main has been updated by manu:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=5d88a52be44a98e2b49db7ead317b2d0b2ef9eaa

commit 5d88a52be44a98e2b49db7ead317b2d0b2ef9eaa
Author:     Emmanuel Vadot <[email protected]>
AuthorDate: 2023-10-04 16:19:26 +0000
Commit:     Emmanuel Vadot <[email protected]>
CommitDate: 2023-10-05 15:34:40 +0000

    dwc: Move dma engine configuration to dwc1000_dma.c
    
    No functional changes intended.
---
 sys/dev/dwc/dwc1000_dma.c | 14 ++++++++++++++
 sys/dev/dwc/if_dwc.c      | 37 +++++++++----------------------------
 sys/dev/dwc/if_dwcvar.h   |  8 ++++++++
 3 files changed, 31 insertions(+), 28 deletions(-)

diff --git a/sys/dev/dwc/dwc1000_dma.c b/sys/dev/dwc/dwc1000_dma.c
index 25916404bb63..16b2b2a3241d 100644
--- a/sys/dev/dwc/dwc1000_dma.c
+++ b/sys/dev/dwc/dwc1000_dma.c
@@ -632,6 +632,20 @@ dma1000_init(struct dwc_softc *sc)
        int nidx;
        int idx;
 
+       reg = BUS_MODE_USP;
+       if (!sc->nopblx8)
+               reg |= BUS_MODE_EIGHTXPBL;
+       reg |= (sc->txpbl << BUS_MODE_PBL_SHIFT);
+       reg |= (sc->rxpbl << BUS_MODE_RPBL_SHIFT);
+       if (sc->fixed_burst)
+               reg |= BUS_MODE_FIXEDBURST;
+       if (sc->mixed_burst)
+               reg |= BUS_MODE_MIXEDBURST;
+       if (sc->aal)
+               reg |= BUS_MODE_AAL;
+
+       WRITE4(sc, BUS_MODE, reg);
+
        /*
         * DMA must be stop while changing descriptor list addresses.
         */
diff --git a/sys/dev/dwc/if_dwc.c b/sys/dev/dwc/if_dwc.c
index a3ce32c95cb9..0e18d57a4c23 100644
--- a/sys/dev/dwc/if_dwc.c
+++ b/sys/dev/dwc/if_dwc.c
@@ -498,12 +498,7 @@ dwc_attach(device_t dev)
        struct dwc_softc *sc;
        if_t ifp;
        int error;
-       uint32_t reg;
-       uint32_t txpbl, rxpbl, pbl;
-       bool nopblx8 = false;
-       bool fixed_burst = false;
-       bool mixed_burst = false;
-       bool aal = false;
+       uint32_t pbl;
 
        sc = device_get_softc(dev);
        sc->dev = dev;
@@ -534,18 +529,18 @@ dwc_attach(device_t dev)
 
        if (OF_getencprop(sc->node, "snps,pbl", &pbl, sizeof(uint32_t)) <= 0)
                pbl = BUS_MODE_DEFAULT_PBL;
-       if (OF_getencprop(sc->node, "snps,txpbl", &txpbl, sizeof(uint32_t)) <= 
0)
-               txpbl = pbl;
-       if (OF_getencprop(sc->node, "snps,rxpbl", &rxpbl, sizeof(uint32_t)) <= 
0)
-               rxpbl = pbl;
+       if (OF_getencprop(sc->node, "snps,txpbl", &sc->txpbl, sizeof(uint32_t)) 
<= 0)
+               sc->txpbl = pbl;
+       if (OF_getencprop(sc->node, "snps,rxpbl", &sc->rxpbl, sizeof(uint32_t)) 
<= 0)
+               sc->rxpbl = pbl;
        if (OF_hasprop(sc->node, "snps,no-pbl-x8") == 1)
-               nopblx8 = true;
+               sc->nopblx8 = true;
        if (OF_hasprop(sc->node, "snps,fixed-burst") == 1)
-               fixed_burst = true;
+               sc->fixed_burst = true;
        if (OF_hasprop(sc->node, "snps,mixed-burst") == 1)
-               mixed_burst = true;
+               sc->mixed_burst = true;
        if (OF_hasprop(sc->node, "snps,aal") == 1)
-               aal = true;
+               sc->aal = true;
 
        error = clk_set_assigned(dev, ofw_bus_get_node(dev));
        if (error != 0) {
@@ -585,20 +580,6 @@ dwc_attach(device_t dev)
                return (error);
        }
 
-       reg = BUS_MODE_USP;
-       if (!nopblx8)
-               reg |= BUS_MODE_EIGHTXPBL;
-       reg |= (txpbl << BUS_MODE_PBL_SHIFT);
-       reg |= (rxpbl << BUS_MODE_RPBL_SHIFT);
-       if (fixed_burst)
-               reg |= BUS_MODE_FIXEDBURST;
-       if (mixed_burst)
-               reg |= BUS_MODE_MIXEDBURST;
-       if (aal)
-               reg |= BUS_MODE_AAL;
-
-       WRITE4(sc, BUS_MODE, reg);
-
        if (dma1000_init(sc)) {
                bus_release_resources(dev, dwc_spec, sc->res);
                return (ENXIO);
diff --git a/sys/dev/dwc/if_dwcvar.h b/sys/dev/dwc/if_dwcvar.h
index 8a4b941297d0..2481b5c220bf 100644
--- a/sys/dev/dwc/if_dwcvar.h
+++ b/sys/dev/dwc/if_dwcvar.h
@@ -81,6 +81,14 @@ struct dwc_softc {
        hwreset_t               rst_stmmaceth;
        hwreset_t               rst_ahb;
 
+       /* DMA config */
+       uint32_t                txpbl;  /* TX Burst lenght */
+       uint32_t                rxpbl;  /* RX Burst lenght */
+       bool                    nopblx8;
+       bool                    fixed_burst;
+       bool                    mixed_burst;
+       bool                    aal;
+
        /* RX */
        bus_dma_tag_t           rxdesc_tag;
        bus_dmamap_t            rxdesc_map;

Reply via email to