net: mvgbe: Fix build error with CONFIG_PHYLIB
PATCH 1/1 net: mvgbe: Fix build error with CONFIG_PHYLIB
Commit 5a49f17481bb ("net: mii: Use spatch to update miiphy_register") updated the mvgbe implementation of smi_reg_read/smi_reg_write. Prior to that change mvgbe_phy_read and mvgbe_phy_write where used as wrappers to satisfy the phylib APIs. Because these functions weren't updated in that commit build errors where triggered when CONFIG_PHYLIB was enabled.
Fix these build errors by removing mvgbe_phy_read and mvgbe_phy_write and using smi_reg_read/smi_reg_write directly.
---
Looking at this closer it actually appears that the mvgbe driver has 2 places where a mii_dev is created. The first in mvgbe_phylib_init() which is triggered when CONFIG_PHYLIB is enabled (this is where I first noticed the build error), the second in mvgbe_initialize() which is triggered when CONFIG_MII or CONFIG_CMD_MII is enabled.
I think this could do with some more cleaning up. But perhaps the build error should be fixed first and then we can tackle the cleanup.
drivers/net/mvgbe.c | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-)
drivers/net/mvgbe.c +3 -22
@@ -177,25 +177,6 @@ static int smi_reg_write(struct mii_dev *bus, int phy_adr, int devad, }#endif -#if defined(CONFIG_PHYLIB ) -int mvgbe_phy_read (struct mii_dev *bus,int phy_addr,int dev_addr, -int reg_addr) -{ -u16 data; -int ret; - ret =smi_reg_read (bus->name, phy_addr, reg_addr, &data); -if (ret) -return ret; -return data; -} - -int mvgbe_phy_write (struct mii_dev *bus,int phy_addr,int dev_addr, -int reg_addr,u16 data) -{ -return smi_reg_write (bus->name, phy_addr, reg_addr, data); -} -#endif -/* Stop and checks all queues */ static void stop_queue (u32 * qreg) {
@@ -676,8 +657,8 @@ int mvgbe_phylib_init(struct eth_device *dev, int phyid)printf ("mdio_alloc failed\n" );return -ENOMEM ; } - bus->read = mvgbe_phy_read; - bus->write = mvgbe_phy_write; + bus->read = smi_reg_read; + bus->write = smi_reg_write;strcpy (bus->name, dev->name); ret =mdio_register (bus);
@@ -688,7 +669,7 @@ int mvgbe_phylib_init(struct eth_device *dev, int phyid) }/* Set phy address of the port */ -mvgbe_phy_write (bus,MV_PHY_ADR_REQUEST ,0 ,MV_PHY_ADR_REQUEST , phyid); +smi_reg_write (bus,MV_PHY_ADR_REQUEST ,0 ,MV_PHY_ADR_REQUEST , phyid); phydev =phy_connect (bus, phyid, dev,PHY_INTERFACE_MODE_RGMII );if (!phydev) {
Signature · 1 line
2.10.2
PATCH 1/1 net: mvgbe: Fix build error with CONFIG_PHYLIB
Quoted 17 lines · Chris Packham
Commit
5a49f17481bb("net: mii: Use spatch to updatemiiphy_register") updated the mvgbe implementation of smi_reg_read/smi_reg_write. Prior to that changemvgbe_phy_readandmvgbe_phy_writewhere used as wrappers to satisfy the phylib APIs. Because these functions weren't updated in that commit build errors where triggered whenCONFIG_PHYLIBwas enabled.Fix these build errors by removing
mvgbe_phy_readandmvgbe_phy_writeand using smi_reg_read/smi_reg_write directly.Signed-off-by Chris Packham <[email protected]>---
Looking at this closer it actually appears that the mvgbe driver has 2 places where amii_devis created. The first inmvgbe_phylib_init()which is triggered whenCONFIG_PHYLIBis enabled (this is where I first noticed the build error), the second inmvgbe_initialize()which is triggered whenCONFIG_MIIorCONFIG_CMD_MIIis enabled.
Quoted 2 lines
I think this could do with some more cleaning up. But perhaps the build error should be fixed first and then we can tackle the cleanup.
I agree - I'll pull this fix as is.