[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <cb193c3d-e75d-3b1e-f3f4-0dcd1e982407@gmail.com>
Date: Thu, 30 Sep 2021 13:06:51 -0700
From: Florian Fainelli <f.fainelli@...il.com>
To: Saravana Kannan <saravanak@...gle.com>,
Andrew Lunn <andrew@...n.ch>
Cc: Vladimir Oltean <olteanv@...il.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"Rafael J. Wysocki" <rafael@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
Vivien Didelot <vivien.didelot@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>, Len Brown <lenb@...nel.org>,
Alvin Sipraga <ALSI@...g-olufsen.dk>, kernel-team@...roid.com,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
linux-acpi@...r.kernel.org
Subject: Re: [PATCH v1 1/2] driver core: fw_devlink: Add support for
FWNODE_FLAG_BROKEN_PARENT
On 9/30/21 12:48 PM, Saravana Kannan wrote:
> On Thu, Sep 30, 2021 at 12:38 PM Andrew Lunn <andrew@...n.ch> wrote:
>>
>>> Btw, do we have non-DSA networking devices where fw_devlink=on
>>> delaying PHY probes is causing an issue?
>>
>> I don't know if issues have been reported, but the realtek driver has
>> had problems in the past when the generic driver is used. Take a look
>> at r8169_mdio_register(), it does something similar to DSA.
>
> Does it have the issue of having the PHY as its child too and then
> depending on it to bind to a driver? I can't tell because I didn't
> know how to find that info for a PCI device.
Yes, r8169 includes a MDIO bus controller, and the PHY is internal to
the Ethernet MAC. These are AFAIR the relevant changes to this discussion:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=16983507742cbcaa5592af530872a82e82fb9c51
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=11287b693d03830010356339e4ceddf47dee34fa
>
>>
>> What is going to make things interesting is that phy_attach_direct()
>> is called in two different contexts. During the MAC drivers probe, it
>> is O.K. to return EPROBE_DEFER, and let the MAC driver try again
>> later, if we know there is a specific PHY driver for it. But when
>> called during the MAC drivers open() op, -EPROBE_DEFER is not
>> allowed. What to do then is an interesting question.
>
> Yeah, basically before doing an open() it'll have to call an API to
> say "just bind with whatever you got". Or something along those lines.
> I already know how to get that to work. I'll send some RFC soonish (I
> hope).
I don't think this is going to scale, we have dozens and dozens of
drivers that connect to the PHY during ndo_open(). It is not realistic
to audit them all, just like the opposite case where the drivers do
probe MDIO/PHY during their .probe() call is not realistic either.
--
Florian
Powered by blists - more mailing lists