]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
net: stmmac: Uniformize the use of dma_init_* callbacks
[thirdparty/kernel/stable.git] / drivers / net / ethernet / stmicro / stmmac / dwmac-sun8i.c
index 11c287a7ed52325091a5f0db2eecfda6714165ea..2e6e2a96b4f263023e04eaad77e56f160cbedc5c 100644 (file)
@@ -276,17 +276,28 @@ static int sun8i_dwmac_dma_reset(void __iomem *ioaddr)
  * Called from stmmac via stmmac_dma_ops->init
  */
 static void sun8i_dwmac_dma_init(void __iomem *ioaddr,
-                                struct stmmac_dma_cfg *dma_cfg,
-                                u32 dma_tx, u32 dma_rx, int atds)
+                                struct stmmac_dma_cfg *dma_cfg, int atds)
 {
-       /* Write TX and RX descriptors address */
-       writel(dma_rx, ioaddr + EMAC_RX_DESC_LIST);
-       writel(dma_tx, ioaddr + EMAC_TX_DESC_LIST);
-
        writel(EMAC_RX_INT | EMAC_TX_INT, ioaddr + EMAC_INT_EN);
        writel(0x1FFFFFF, ioaddr + EMAC_INT_STA);
 }
 
+static void sun8i_dwmac_dma_init_rx(void __iomem *ioaddr,
+                                   struct stmmac_dma_cfg *dma_cfg,
+                                   u32 dma_rx_phy, u32 chan)
+{
+       /* Write RX descriptors address */
+       writel(dma_rx_phy, ioaddr + EMAC_RX_DESC_LIST);
+}
+
+static void sun8i_dwmac_dma_init_tx(void __iomem *ioaddr,
+                                   struct stmmac_dma_cfg *dma_cfg,
+                                   u32 dma_tx_phy, u32 chan)
+{
+       /* Write TX descriptors address */
+       writel(dma_tx_phy, ioaddr + EMAC_TX_DESC_LIST);
+}
+
 /* sun8i_dwmac_dump_regs() - Dump EMAC address space
  * Called from stmmac_dma_ops->dump_regs
  * Used for ethtool
@@ -492,6 +503,8 @@ static void sun8i_dwmac_dma_operation_mode_tx(void __iomem *ioaddr, int mode,
 static const struct stmmac_dma_ops sun8i_dwmac_dma_ops = {
        .reset = sun8i_dwmac_dma_reset,
        .init = sun8i_dwmac_dma_init,
+       .init_rx_chan = sun8i_dwmac_dma_init_rx,
+       .init_tx_chan = sun8i_dwmac_dma_init_tx,
        .dump_regs = sun8i_dwmac_dump_regs,
        .dma_rx_mode = sun8i_dwmac_dma_operation_mode_rx,
        .dma_tx_mode = sun8i_dwmac_dma_operation_mode_tx,