diff mbox

[U-Boot] net: mvgbe: Fix build error with CONFIG_PHYLIB

Message ID 20161031214832.9822-1-judge.packham@gmail.com
State Accepted
Commit 6ecf9e21b5ecd5ddfe9100cb1023ca244fe63ceb
Delegated to: Joe Hershberger
Headers show

Commit Message

Chris Packham Oct. 31, 2016, 9:48 p.m. UTC
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.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
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(-)

Comments

Joe Hershberger Nov. 1, 2016, 8:23 p.m. UTC | #1
On Mon, Oct 31, 2016 at 4:48 PM, Chris Packham <judge.packham@gmail.com> wrote:
> 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.
>
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> 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.

I agree - I'll pull this fix as is.

Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger Nov. 7, 2016, 5:31 p.m. UTC | #2
Hi Chris,

https://patchwork.ozlabs.org/patch/689658/ was applied to u-boot-net.git.

Thanks!
-Joe
diff mbox

Patch

diff --git a/drivers/net/mvgbe.c b/drivers/net/mvgbe.c
index c784cdcae265..f833efbe6779 100644
--- a/drivers/net/mvgbe.c
+++ b/drivers/net/mvgbe.c
@@ -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) {