[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAKR-sGe3xHkN-1+aLn0ixnskctPK4GTzfXu8O_dkFhHyY1nTeg@mail.gmail.com>
Date: Fri, 17 Mar 2023 13:06:43 +0100
From: Álvaro Fernández Rojas <noltari@...il.com>
To: Vladimir Oltean <olteanv@...il.com>
Cc: davem@...emloft.net, edumazet@...gle.com, kuba@...nel.org,
pabeni@...hat.com, robh+dt@...nel.org,
krzysztof.kozlowski+dt@...aro.org, f.fainelli@...il.com,
jonas.gorski@...il.com, andrew@...n.ch, hkallweit1@...il.com,
linux@...linux.org.uk, netdev@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/3] net: dsa: b53: mmap: register MDIO Mux bus controller
Hi Vladimir,
El vie, 17 mar 2023 a las 12:51, Vladimir Oltean (<olteanv@...il.com>) escribió:
>
> On Fri, Mar 17, 2023 at 12:34:26PM +0100, Álvaro Fernández Rojas wrote:
> > b53 MMAP devices have a MDIO Mux bus controller that must be registered after
> > properly initializing the switch. If the MDIO Mux controller is registered
> > from a separate driver and the device has an external switch present, it will
> > cause a race condition which will hang the device.
>
> Could you describe the race in more details? Why does it hang the device?
I didn't perform a full analysis on the problem, but what I think is
going on is that both b53 switches are probed and both of them fail
due to the ethernet device not being probed yet.
At some point, the internal switch is reset and not fully configured
and the external switch is probed again, but since the internal switch
isn't ready, the MDIO accesses for the external switch fail due to the
internal switch not being ready and this hangs the device because the
access to the external switch is done through the same registers from
the internal switch.
But maybe Florian or Jonas can give some more details about the issue...
--
Álvaro
Powered by blists - more mailing lists