Thread (5 messages) flat view 5 messages, 3 authors, 2021-01-09

Re: MDIO over I2C driver driver probe dependency issue

From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2021-01-08 22:12:16


On 1/8/2021 1:04 PM, Andrew Lunn wrote:
On Fri, Jan 08, 2021 at 03:02:52PM -0500, Brian Silverman wrote:
quoted
Thanks for the responses - I now have a more clear picture of what's going on.
 (Note: I'm using Xilinx's 2019.2 kernel (based off 4.19).  I believe it would
be similar to latest kernels, but I could be wrong.)
Hi Brian

macb_main has had a lot of changes with respect to PHYs. Please try
something modern, like 5.10.
It does not seem to me like 5.10 will be much better, because we have
the following in PHYLINK:

int phylink_of_phy_connect(struct phylink *pl, struct device_node *dn,
                             u32 flags)
...
          phy_dev = of_phy_find_device(phy_node);
          /* We're done with the phy_node handle */
          of_node_put(phy_node);
          if (!phy_dev)
                  return -ENODEV;

Given Brian's configuration we should be returning -EPROBE_DEFER here,
but doing that would likely break a number of systems that do expect
-ENODEV to be returned. However there may be hope with fw_devlink to
create an appropriate graph of probing orders and solve the
consumer/provider order generically.

Up until now we did not really have a situation like this one where the
MDIO/PHY subsystem depended upon an another one to be available. The
problem does exist, however it is not clear to me yet how to best solve it.
-- 
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help