]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
realtek: eth: convert rteth_839x_hw_reset() to regmap 22853/head
authorMarkus Stockhausen <markus.stockhausen@gmx.de>
Wed, 8 Apr 2026 18:47:39 +0000 (20:47 +0200)
committerRobert Marko <robimarko@gmail.com>
Sat, 11 Apr 2026 10:12:32 +0000 (12:12 +0200)
Drop another few sw() macros.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/22853
Signed-off-by: Robert Marko <robimarko@gmail.com>
target/linux/realtek/files-6.18/drivers/net/ethernet/rtl838x_eth.c

index 3239c05506d899ba90feda6067edebaeaab06be4..37ff00fbacd5e8a29bbc4925877cf0b332b58e4e 100644 (file)
@@ -419,27 +419,27 @@ static void rteth_839x_hw_reset(struct rteth_ctrl *ctrl)
        u32 int_saved, nbuf;
 
        /* Preserve L2 notification and NBUF settings */
-       int_saved = sw_r32(ctrl->r->dma_if_intr_msk);
-       nbuf = sw_r32(RTL839X_DMA_IF_NBUF_BASE_DESC_ADDR_CTRL);
+       regmap_read(ctrl->map, ctrl->r->dma_if_intr_msk, &int_saved);
+       regmap_read(ctrl->map, RTL839X_DMA_IF_NBUF_BASE_DESC_ADDR_CTRL, &nbuf);
 
        /* Disable link change interrupt on RTL839x */
-       sw_w32(0, RTL839X_IMR_PORT_LINK_STS_CHG);
-       sw_w32(0, RTL839X_IMR_PORT_LINK_STS_CHG + 4);
+       regmap_write(ctrl->map, RTL839X_IMR_PORT_LINK_STS_CHG, 0);
+       regmap_write(ctrl->map, RTL839X_IMR_PORT_LINK_STS_CHG + 4, 0);
 
        rteth_nic_reset(ctrl, 0xc);
 
        /* Re-enable link change interrupt */
-       sw_w32(0xffffffff, RTL839X_ISR_PORT_LINK_STS_CHG);
-       sw_w32(0xffffffff, RTL839X_ISR_PORT_LINK_STS_CHG + 4);
-       sw_w32(0xffffffff, RTL839X_IMR_PORT_LINK_STS_CHG);
-       sw_w32(0xffffffff, RTL839X_IMR_PORT_LINK_STS_CHG + 4);
+       regmap_write(ctrl->map, RTL839X_ISR_PORT_LINK_STS_CHG, 0xffffffff);
+       regmap_write(ctrl->map, RTL839X_ISR_PORT_LINK_STS_CHG + 4, 0xffffffff);
+       regmap_write(ctrl->map, RTL839X_IMR_PORT_LINK_STS_CHG, 0xffffffff);
+       regmap_write(ctrl->map, RTL839X_IMR_PORT_LINK_STS_CHG + 4, 0xffffffff);
 
        /* Restore notification settings: on RTL838x these bits are null */
-       sw_w32_mask(7 << 20, int_saved & (7 << 20), ctrl->r->dma_if_intr_msk);
-       sw_w32(nbuf, RTL839X_DMA_IF_NBUF_BASE_DESC_ADDR_CTRL);
+       regmap_update_bits(ctrl->map, ctrl->r->dma_if_intr_msk, 7 << 20, int_saved & (7 << 20));
+       regmap_write(ctrl->map, RTL839X_DMA_IF_NBUF_BASE_DESC_ADDR_CTRL, nbuf);
 
        /* Free floating rings without space tracking */
-       sw_w32(0, RTL839X_DMA_IF_RX_RING_SIZE);
+       regmap_write(ctrl->map, RTL839X_DMA_IF_RX_RING_SIZE, 0);
 }
 
 static void rteth_93xx_hw_reset(struct rteth_ctrl *ctrl)