Thread (14 messages) flat view 14 messages, 3 authors, 2021-09-21

Re: Race between "Generic PHY" and "bcm53xx" drivers after -EPROBE_DEFER

From: Rafał Miłecki <zajec5@gmail.com>
Date: 2021-09-21 10:52:31

On 21.09.2021 11:45, Rafał Miłecki wrote:
On 20.09.2021 20:25, Florian Fainelli wrote:
quoted
On 9/20/21 11:17 AM, Vladimir Oltean wrote:
[snip]
quoted
quoted
All I am saying is that there is not really any need to come up with a
Device Tree-based solution since you can inspect the mdio_device and
find out whether it is an Ethernet PHY or a MDIO device proper, and that
ought to cover all cases that I can think of.
Okay, but where's the problem? I guess we're on the same page, and
you're saying that we should not be calling bcma_mdio_mii_register, and
assigning the result to bgmac->mii_bus, because that makes us call
bcma_phy_connect instead of bgmac_phy_connect_direct. But based on what
condition? Simply if bgmac->phyaddr == BGMAC_PHY_NOREGS?
Yes simply that condition, I really believe it ought to be enough for
the space these devices are in use.
I'm afraid I got lost somewhere in this discussion.

If we don't call bcma_mdio_mii_register() (as suggested in quoted
e-mail) then MDIO device 0x1e won't get created and "bcm53xx"
(b53_mdio.c) won't ever load.
I did a quick test and replaced bcma_phy_connect with
bgmac_phy_connect_direct.

That fixes the problem for me.

So I guess we should:
1. Leave the bcma_mdio_mii_register() call
2. Use bcma_phy_connect() only for real PHY device

Correct me if I'm wrong please.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help