lkml.org 
[lkml]   [2022]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH net] net: phy: broadcom: Fix brcm_fet_config_init()
From
On 3/24/22 14:54, Florian Fainelli wrote:
> A Broadcom AC201 PHY (same entry as 5241) would be flagged by the
> Broadcom UniMAC MDIO controller as not completing the turn around
> properly since the PHY expects 65 MDC clock cycles to complete a write
> cycle, and the MDIO controller was only sending 64 MDC clock cycles as
> determined by looking at a scope shot.
>
> This would make the subsequent read fail with the UniMAC MDIO controller
> command field having MDIO_READ_FAIL set and we would abort the
> brcm_fet_config_init() function and thus not probe the PHY at all.
>
> After issuing a software reset, wait for at least 1ms which is well
> above the 1us reset delay advertised by the datasheet and issue a dummy
> read to let the PHY turn around the line properly. This read
> specifically ignores -EIO which would be returned by MDIO controllers
> checking for the line being turned around.
>
> If we have a genuine read failure, the next read of the interrupt
> status register would pick it up anyway.
>
> Fixes: d7a2ed9248a3 ("broadcom: Add AC131 phy support")
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---

I will make this a v2 which explicitly includes delay.h to have a
definition for usleep_range9) so this commit would apply cleanly to
earlier kernels as well. Please do not apply just yet. Thanks!
--
Florian

\
 
 \ /
  Last update: 2022-03-24 23:33    [W:0.051 / U:0.348 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site