Re: [PATCH 1/2] net: ethernet: marvell: pxa168_eth: use phydev from struct net_device
From: Philippe Reynes <hidden>
Date: 2016-07-18 22:00:36
Also in:
lkml
Hi, On 18/07/16 12:14, Sergei Shtylyov wrote:
Hello. On 7/18/2016 12:30 AM, Philippe Reynes wrote:quoted
The private structure contain a pointer to phydev, but the structure net_device already contain such pointer. So we can remove the pointer phydev in the private structure, and update the driver to use the one contained in struct net_device. Signed-off-by: Philippe Reynes<redacted> --- drivers/net/ethernet/marvell/pxa168_eth.c | 36 +++++++++++++---------------- 1 files changed, 16 insertions(+), 20 deletions(-)diff --git a/drivers/net/ethernet/marvell/pxa168_eth.c b/drivers/net/ethernet/marvell/pxa168_eth.c index 54d5154..d466326 100644 --- a/drivers/net/ethernet/marvell/pxa168_eth.c +++ b/drivers/net/ethernet/marvell/pxa168_eth.c[...]quoted
@@ -973,16 +972,17 @@ static int pxa168_init_phy(struct net_device *dev) { struct pxa168_eth_private *pep = netdev_priv(dev); struct ethtool_cmd cmd; + struct phy_device *phy = NULL;Initializer not really needed.
You're right, the first line using phy is an assign, so it's not really usefull.
quoted
int err; - if (pep->phy) + if (dev->phydev) return 0; - pep->phy = mdiobus_scan(pep->smi_bus, pep->phy_addr); - if (IS_ERR(pep->phy)) - return PTR_ERR(pep->phy); + phy = mdiobus_scan(pep->smi_bus, pep->phy_addr); + if (IS_ERR(phy)) + return PTR_ERR(phy); - err = phy_connect_direct(dev, pep->phy, pxa168_eth_adjust_link, + err = phy_connect_direct(dev, phy, pxa168_eth_adjust_link, pep->phy_intf); if (err) return err;Hm, where do you assign 'dev->phydev'?
dev-> phydev is assigned in phy_connect_direct. In fact, phy_connect_direct call phy_attach_direct, and this last function assign phydev to dev->phydev.
[...] MBR, Sergei
Regards, Philippe