svn commit: r367880 - head/sys/arm/allwinner
Emmanuel Vadot
manu at FreeBSD.org
Fri Nov 20 11:28:23 UTC 2020
Author: manu
Date: Fri Nov 20 11:28:23 2020
New Revision: 367880
URL: https://svnweb.freebsd.org/changeset/base/367880
Log:
if_awg: Add awg_stop_dma and use it in awg_stop
No functional changes intended
Modified:
head/sys/arm/allwinner/if_awg.c
Modified: head/sys/arm/allwinner/if_awg.c
==============================================================================
--- head/sys/arm/allwinner/if_awg.c Fri Nov 20 11:28:06 2020 (r367879)
+++ head/sys/arm/allwinner/if_awg.c Fri Nov 20 11:28:23 2020 (r367880)
@@ -781,6 +781,31 @@ awg_init_dma(struct awg_softc *sc)
}
static void
+awg_stop_dma(struct awg_softc *sc)
+{
+ uint32_t val;
+
+ AWG_ASSERT_LOCKED(sc);
+
+ /* Stop transmit DMA and flush data in the TX FIFO */
+ val = RD4(sc, EMAC_TX_CTL_1);
+ val &= ~TX_DMA_EN;
+ val |= FLUSH_TX_FIFO;
+ WR4(sc, EMAC_TX_CTL_1, val);
+
+ /* Disable interrupts */
+ awg_disable_dma_intr(sc);
+
+ /* Disable transmit DMA */
+ val = RD4(sc, EMAC_TX_CTL_1);
+ WR4(sc, EMAC_TX_CTL_1, val & ~TX_DMA_EN);
+
+ /* Disable receive DMA */
+ val = RD4(sc, EMAC_RX_CTL_1);
+ WR4(sc, EMAC_RX_CTL_1, val & ~RX_DMA_EN);
+}
+
+static void
awg_init_locked(struct awg_softc *sc)
{
struct mii_data *mii;
@@ -830,24 +855,8 @@ awg_stop(struct awg_softc *sc)
callout_stop(&sc->stat_ch);
- /* Stop transmit DMA and flush data in the TX FIFO */
- val = RD4(sc, EMAC_TX_CTL_1);
- val &= ~TX_DMA_EN;
- val |= FLUSH_TX_FIFO;
- WR4(sc, EMAC_TX_CTL_1, val);
-
+ awg_stop_dma(sc);
awg_enable_mac(sc, false);
-
- /* Disable interrupts */
- awg_disable_dma_intr(sc);
-
- /* Disable transmit DMA */
- val = RD4(sc, EMAC_TX_CTL_1);
- WR4(sc, EMAC_TX_CTL_1, val & ~TX_DMA_EN);
-
- /* Disable receive DMA */
- val = RD4(sc, EMAC_RX_CTL_1);
- WR4(sc, EMAC_RX_CTL_1, val & ~RX_DMA_EN);
sc->link = 0;
More information about the svn-src-all
mailing list