W dniu 2020-09-04 o 06:04, Florian Fainelli pisze:
On 9/2/2020 9:39 PM, Florian Fainelli wrote:
Hi all,
This patch series takes care of enabling the Ethernet PHY clocks in
DT-based systems (we have no way to do it for ACPI, and ACPI would
likely keep all of this hardware enabled anyway).
Please test on your respective platforms, mine still seems to have
a race condition that I am tracking down as it looks like we are not
waiting long enough post clock enable.
The check on the clock reference count is necessary to avoid an
artificial bump of the clock reference count and to support the unbind
-> bind of the PHY driver. We could solve it in different ways.
Comments and test results welcome!
Andrew, while we figure out a proper way to support this with the
Linux device driver model, would you be opposed in a single patch to
drivers/net/mdio/mdio-bcm-unimac.c which takes care of enabling the
PHY's clock during bus->reset just for the sake of getting those
systems to work, and later on we move over to the pre-probe mechanism?
That would allow me to continue working with upstream kernels on these
systems without carrying a big pile of patches.
Just a bunch of questions.
Actually, why is it necessary to have a full MDIO bus scan already
during probing peripherals?
If during probing the peripherals enable their resources (like clocks),
what's wrong in having the full MDIO bus scan after probing of all
peripherals is complete (and all peripherals are up)?
Also, what's wrong in letting the MDIO bus scan find only some PHYs in
the first go, and then letting each driver instance (of particular
peripheral) initiate scan only for its specific PHY, if it was not found
yet?
(Is it thatof_mdio.h provides public function of_mdiobus_register, but
not something similar to add only specific devices/phys without
destroying the existing state?)
I'd say that it is not necessary to have a PHY getting found before it
is needed to setup the complete interface.
Best regards,
Adam