On Tuesday 30 August 2016 07:23 PM, Axel Lin wrote: > By setting phy_set_drvdata(phy, mdiodev), struct ns2_pci_phy can be > removed. > > Signed-off-by: Axel Lin <axel....@ingics.com> > Reviewed-and-tested-by: Jon Mason <jon.ma...@broadcom.com> > --- > This was sent on http://www.spinics.net/lists/netdev/msg383513.html > Resent on https://lkml.org/lkml/2016/8/12/658
Will merge this once I start queuing for 4.9. Will start doing it this week. -Kishon > drivers/phy/phy-bcm-ns2-pcie.c | 25 +++++-------------------- > 1 file changed, 5 insertions(+), 20 deletions(-) > > diff --git a/drivers/phy/phy-bcm-ns2-pcie.c b/drivers/phy/phy-bcm-ns2-pcie.c > index 9513f7a..ee61772 100644 > --- a/drivers/phy/phy-bcm-ns2-pcie.c > +++ b/drivers/phy/phy-bcm-ns2-pcie.c > @@ -18,11 +18,6 @@ > #include <linux/phy.h> > #include <linux/phy/phy.h> > > -struct ns2_pci_phy { > - struct mdio_device *mdiodev; > - struct phy *phy; > -}; > - > #define BLK_ADDR_REG_OFFSET 0x1f > #define PLL_AFE1_100MHZ_BLK 0x2100 > #define PLL_CLK_AMP_OFFSET 0x03 > @@ -30,17 +25,17 @@ struct ns2_pci_phy { > > static int ns2_pci_phy_init(struct phy *p) > { > - struct ns2_pci_phy *phy = phy_get_drvdata(p); > + struct mdio_device *mdiodev = phy_get_drvdata(p); > int rc; > > /* select the AFE 100MHz block page */ > - rc = mdiobus_write(phy->mdiodev->bus, phy->mdiodev->addr, > + rc = mdiobus_write(mdiodev->bus, mdiodev->addr, > BLK_ADDR_REG_OFFSET, PLL_AFE1_100MHZ_BLK); > if (rc) > goto err; > > /* set the 100 MHz reference clock amplitude to 2.05 v */ > - rc = mdiobus_write(phy->mdiodev->bus, phy->mdiodev->addr, > + rc = mdiobus_write(mdiodev->bus, mdiodev->addr, > PLL_CLK_AMP_OFFSET, PLL_CLK_AMP_2P05V); > if (rc) > goto err; > @@ -48,7 +43,7 @@ static int ns2_pci_phy_init(struct phy *p) > return 0; > > err: > - dev_err(&phy->mdiodev->dev, "Error %d writing to phy\n", rc); > + dev_err(&mdiodev->dev, "Error %d writing to phy\n", rc); > return rc; > } > > @@ -60,7 +55,6 @@ static int ns2_pci_phy_probe(struct mdio_device *mdiodev) > { > struct device *dev = &mdiodev->dev; > struct phy_provider *provider; > - struct ns2_pci_phy *p; > struct phy *phy; > > phy = devm_phy_create(dev, dev->of_node, &ns2_pci_phy_ops); > @@ -69,16 +63,7 @@ static int ns2_pci_phy_probe(struct mdio_device *mdiodev) > return PTR_ERR(phy); > } > > - p = devm_kmalloc(dev, sizeof(struct ns2_pci_phy), > - GFP_KERNEL); > - if (!p) > - return -ENOMEM; > - > - p->mdiodev = mdiodev; > - dev_set_drvdata(dev, p); > - > - p->phy = phy; > - phy_set_drvdata(phy, p); > + phy_set_drvdata(phy, mdiodev); > > provider = devm_of_phy_provider_register(&phy->dev, > of_phy_simple_xlate); >