From 0c9e91a60c9eb6120053a2148d67c2cd71d6fc06 Mon Sep 17 00:00:00 2001 From: Markus Stockhausen Date: Fri, 2 May 2025 10:17:11 -0400 Subject: [PATCH] realtek: move private bus structure closer to the bus Relocate the bus structure definition into the MDIO source code area of the ethernet driver. So if the real bus driver is forked from the rest of the code only one area needs to be removed. Rename it to make clear it belongs to the bus. Signed-off-by: Markus Stockhausen Link: https://github.com/openwrt/openwrt/pull/18402 Signed-off-by: Stijn Tintel --- .../drivers/net/ethernet/rtl838x_eth.c | 30 +++++++++++++------ .../drivers/net/ethernet/rtl838x_eth.h | 12 -------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.c b/target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.c index 557df765937..d9c689d8cc9 100644 --- a/target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.c +++ b/target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.c @@ -1707,6 +1707,18 @@ static int rtl838x_set_link_ksettings(struct net_device *ndev, * reimplemented. For now it should be sufficient. */ +struct rtmdio_bus_priv { + struct rtl838x_eth_priv *eth_priv; + int extaddr; + int rawpage; + int page[64]; + bool raw[64]; + int (*read_mmd_phy)(u32 port, u32 addr, u32 reg, u32 *val); + int (*write_mmd_phy)(u32 port, u32 addr, u32 reg, u32 val); + int (*read_phy)(u32 port, u32 page, u32 reg, u32 *val); + int (*write_phy)(u32 port, u32 page, u32 reg, u32 val); +}; + /* * Provide a generic read/write function so we can access arbitrary ports on the bus. * E.g. other ports of a PHY package on the bus. This basically resembles the kernel @@ -1803,7 +1815,7 @@ int phy_port_read_paged(struct phy_device *phydev, int port, int page, u32 regnu static int rtmdio_read_c45(struct mii_bus *bus, int addr, int devnum, int regnum) { int err, val; - struct rtl838x_bus_priv *bus_priv = bus->priv; + struct rtmdio_bus_priv *bus_priv = bus->priv; if (bus_priv->extaddr >= 0) addr = bus_priv->extaddr; @@ -1817,7 +1829,7 @@ static int rtmdio_read_c45(struct mii_bus *bus, int addr, int devnum, int regnum static int rtmdio_83xx_read(struct mii_bus *bus, int addr, int regnum) { int err, val; - struct rtl838x_bus_priv *bus_priv = bus->priv; + struct rtmdio_bus_priv *bus_priv = bus->priv; struct rtl838x_eth_priv *eth_priv = bus_priv->eth_priv; if (bus_priv->extaddr >= 0) @@ -1842,7 +1854,7 @@ static int rtmdio_83xx_read(struct mii_bus *bus, int addr, int regnum) static int rtmdio_93xx_read(struct mii_bus *bus, int addr, int regnum) { int err, val; - struct rtl838x_bus_priv *bus_priv = bus->priv; + struct rtmdio_bus_priv *bus_priv = bus->priv; struct rtl838x_eth_priv *eth_priv = bus_priv->eth_priv; if (bus_priv->extaddr >= 0) @@ -1870,7 +1882,7 @@ static int rtmdio_93xx_read(struct mii_bus *bus, int addr, int regnum) static int rtmdio_write_c45(struct mii_bus *bus, int addr, int devnum, int regnum, u16 val) { int err; - struct rtl838x_bus_priv *bus_priv = bus->priv; + struct rtmdio_bus_priv *bus_priv = bus->priv; if (bus_priv->extaddr >= 0) addr = bus_priv->extaddr; @@ -1884,7 +1896,7 @@ static int rtmdio_write_c45(struct mii_bus *bus, int addr, int devnum, int regnu static int rtmdio_83xx_write(struct mii_bus *bus, int addr, int regnum, u16 val) { int err, page, offset = 0; - struct rtl838x_bus_priv *bus_priv = bus->priv; + struct rtmdio_bus_priv *bus_priv = bus->priv; struct rtl838x_eth_priv *eth_priv = bus_priv->eth_priv; if (regnum == RTMDIO_PORT_SELECT) { @@ -1924,7 +1936,7 @@ static int rtmdio_83xx_write(struct mii_bus *bus, int addr, int regnum, u16 val) static int rtmdio_93xx_write(struct mii_bus *bus, int addr, int regnum, u16 val) { int err, page; - struct rtl838x_bus_priv *bus_priv = bus->priv; + struct rtmdio_bus_priv *bus_priv = bus->priv; struct rtl838x_eth_priv *eth_priv = bus_priv->eth_priv; if (regnum == RTMDIO_PORT_SELECT) { @@ -1993,7 +2005,7 @@ u8 mac_type_bit[RTL930X_CPU_PORT] = {0, 0, 0, 0, 2, 2, 2, 2, 4, 4, 4, 4, 6, 6, 6 static int rtmdio_930x_reset(struct mii_bus *bus) { - struct rtl838x_bus_priv *bus_priv = bus->priv; + struct rtmdio_bus_priv *bus_priv = bus->priv; struct rtl838x_eth_priv *priv = bus_priv->eth_priv; u32 c45_mask = 0; u32 poll_sel[2]; @@ -2099,7 +2111,7 @@ static int rtmdio_930x_reset(struct mii_bus *bus) static int rtmdio_931x_reset(struct mii_bus *bus) { - struct rtl838x_bus_priv *bus_priv = bus->priv; + struct rtmdio_bus_priv *bus_priv = bus->priv; struct rtl838x_eth_priv *priv = bus_priv->eth_priv; u32 c45_mask = 0; u32 poll_sel[4]; @@ -2199,7 +2211,7 @@ static int rtl931x_chip_init(struct rtl838x_eth_priv *priv) static int rtl838x_mdio_init(struct rtl838x_eth_priv *priv) { struct device_node *mii_np, *dn; - struct rtl838x_bus_priv *bus_priv; + struct rtmdio_bus_priv *bus_priv; u32 pn; int i, ret; diff --git a/target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.h b/target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.h index d6d88fc2ed0..47ed286aa44 100644 --- a/target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.h +++ b/target/linux/realtek/files-6.6/drivers/net/ethernet/rtl838x_eth.h @@ -408,18 +408,6 @@ inline u32 rtl931x_get_mac_tx_pause_sts(int p) struct p_hdr; struct dsa_tag; -struct rtl838x_bus_priv { - struct rtl838x_eth_priv *eth_priv; - int extaddr; - int rawpage; - int page[64]; - bool raw[64]; - int (*read_mmd_phy)(u32 port, u32 addr, u32 reg, u32 *val); - int (*write_mmd_phy)(u32 port, u32 addr, u32 reg, u32 val); - int (*read_phy)(u32 port, u32 page, u32 reg, u32 *val); - int (*write_phy)(u32 port, u32 page, u32 reg, u32 val); -}; - struct rtl838x_eth_reg { irqreturn_t (*net_irq)(int irq, void *dev_id); int (*mac_port_ctrl)(int port);