Re: [PATCH] of: of_mdio: count number of regitered phys
Hi Andrew, Florian, On 30.06.2020 06:35, Florian Fainelli wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the > content is safe > > On 6/29/2020 5:45 PM, Andrew Lunn wrote: >> On Mon, Jun 29, 2020 at 10:26:36AM +0300, Claudiu Beznea wrote: >>> In case of_mdiobus_register_phy()/of_mdiobus_register_device() >>> returns -ENODEV for all PHYs in device tree or for all scanned >>> PHYs there is a chance that of_mdiobus_register() to >>> return success code although no PHY devices were registered. >>> Add a counter that increments every time a PHY was registered >>> to avoid the above scenario. >> >> Hi Claudiu >> >> There is a danger here this will break something. Without this patch, >> an empty bus is O.K. But with this patch, a bus without a PHY is a >> problem. >> >> Take for example FEC. It often comes in pairs. Each has an MDIO >> bus. But to save pins, there are some designs which place two PHYs on >> one bus, leaving the other empty. The driver unconditionally calls >> of_mdiobus_register() and if it returns an error, it will error out >> the probe. So i would not be too surprised if you get reports of >> missing interfaces with this patch. > > Agreed, the potential for breakage here is too high especially given > this is fixing a hypothetical problem rather an an actual one. Even if > we were taking this from the angle of power management, runtime PM > should ensure that a MDIO bus with no slave, or no activity gets runtime > suspended. I understand your points. Thank you for taking time on reviewing this. Claudiu Beznea > -- > Florian >
Re: [PATCH] of: of_mdio: count number of regitered phys
On 6/29/2020 5:45 PM, Andrew Lunn wrote: > On Mon, Jun 29, 2020 at 10:26:36AM +0300, Claudiu Beznea wrote: >> In case of_mdiobus_register_phy()/of_mdiobus_register_device() >> returns -ENODEV for all PHYs in device tree or for all scanned >> PHYs there is a chance that of_mdiobus_register() to >> return success code although no PHY devices were registered. >> Add a counter that increments every time a PHY was registered >> to avoid the above scenario. > > Hi Claudiu > > There is a danger here this will break something. Without this patch, > an empty bus is O.K. But with this patch, a bus without a PHY is a > problem. > > Take for example FEC. It often comes in pairs. Each has an MDIO > bus. But to save pins, there are some designs which place two PHYs on > one bus, leaving the other empty. The driver unconditionally calls > of_mdiobus_register() and if it returns an error, it will error out > the probe. So i would not be too surprised if you get reports of > missing interfaces with this patch. Agreed, the potential for breakage here is too high especially given this is fixing a hypothetical problem rather an an actual one. Even if we were taking this from the angle of power management, runtime PM should ensure that a MDIO bus with no slave, or no activity gets runtime suspended. -- Florian
Re: [PATCH] of: of_mdio: count number of regitered phys
On Mon, Jun 29, 2020 at 10:26:36AM +0300, Claudiu Beznea wrote: > In case of_mdiobus_register_phy()/of_mdiobus_register_device() > returns -ENODEV for all PHYs in device tree or for all scanned > PHYs there is a chance that of_mdiobus_register() to > return success code although no PHY devices were registered. > Add a counter that increments every time a PHY was registered > to avoid the above scenario. Hi Claudiu There is a danger here this will break something. Without this patch, an empty bus is O.K. But with this patch, a bus without a PHY is a problem. Take for example FEC. It often comes in pairs. Each has an MDIO bus. But to save pins, there are some designs which place two PHYs on one bus, leaving the other empty. The driver unconditionally calls of_mdiobus_register() and if it returns an error, it will error out the probe. So i would not be too surprised if you get reports of missing interfaces with this patch. Andrew