Message ID | 20200622093744.13685-7-brgl@bgdev.pl (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | net: phy: correctly model the PHY voltage supply in DT | expand |
On Mon, Jun 22, 2020 at 11:37:35AM +0200, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > Similarily to PHY drivers - there's no reason to require probe() to be > implemented in order to call mdio_device_reset(). MDIO devices can have > resets defined without needing to do anything in probe(). > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> I would be surprised if there is any MDIO driver which don't have a probe callback. Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
On 6/22/20 2:37 AM, Bartosz Golaszewski wrote: > From: Bartosz Golaszewski <bgolaszewski@baylibre.com> > > Similarily to PHY drivers - there's no reason to require probe() to be > implemented in order to call mdio_device_reset(). MDIO devices can have > resets defined without needing to do anything in probe(). > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Same comment as patch #5, I would prefer that we seek a solution that allows MDIO drivers to manage multiple reset lines (would that exist) on their own instead of this one size fits all approach. Thank you.
diff --git a/drivers/net/phy/mdio_device.c b/drivers/net/phy/mdio_device.c index f60443e48622..be615504b829 100644 --- a/drivers/net/phy/mdio_device.c +++ b/drivers/net/phy/mdio_device.c @@ -150,10 +150,10 @@ static int mdio_probe(struct device *dev) struct mdio_driver *mdiodrv = to_mdio_driver(drv); int err = 0; - if (mdiodrv->probe) { - /* Deassert the reset signal */ - mdio_device_reset(mdiodev, 0); + /* Deassert the reset signal */ + mdio_device_reset(mdiodev, 0); + if (mdiodrv->probe) { err = mdiodrv->probe(mdiodev); if (err) { /* Assert the reset signal */ @@ -170,12 +170,11 @@ static int mdio_remove(struct device *dev) struct device_driver *drv = mdiodev->dev.driver; struct mdio_driver *mdiodrv = to_mdio_driver(drv); - if (mdiodrv->remove) { + if (mdiodrv->remove) mdiodrv->remove(mdiodev); - /* Assert the reset signal */ - mdio_device_reset(mdiodev, 1); - } + /* Assert the reset signal */ + mdio_device_reset(mdiodev, 1); return 0; }