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;
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to