lkml.org 
[lkml]   [2022]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 429/475] net: stmmac: Fix unset max_speed difference between DT and non-DT platforms
    Date
    From: Chen-Yu Tsai <wens@csie.org>

    [ Upstream commit c21cabb0fd0b54b8b54235fc1ecfe1195a23bcb2 ]

    In commit 9cbadf094d9d ("net: stmmac: support max-speed device tree
    property"), when DT platforms don't set "max-speed", max_speed is set to
    -1; for non-DT platforms, it stays the default 0.

    Prior to commit eeef2f6b9f6e ("net: stmmac: Start adding phylink support"),
    the check for a valid max_speed setting was to check if it was greater
    than zero. This commit got it right, but subsequent patches just checked
    for non-zero, which is incorrect for DT platforms.

    In commit 92c3807b9ac3 ("net: stmmac: convert to phylink_get_linkmodes()")
    the conversion switched completely to checking for non-zero value as a
    valid value, which caused 1000base-T to stop getting advertised by
    default.

    Instead of trying to fix all the checks, simply leave max_speed alone if
    DT property parsing fails.

    Fixes: 9cbadf094d9d ("net: stmmac: support max-speed device tree property")
    Fixes: 92c3807b9ac3 ("net: stmmac: convert to phylink_get_linkmodes()")
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Acked-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Link: https://lore.kernel.org/r/20220331184832.16316-1-wens@kernel.org
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
    index a46fea472bc4..70cbf48c2c03 100644
    --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
    +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
    @@ -428,8 +428,7 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
    plat->phylink_node = np;

    /* Get max speed of operation from device tree */
    - if (of_property_read_u32(np, "max-speed", &plat->max_speed))
    - plat->max_speed = -1;
    + of_property_read_u32(np, "max-speed", &plat->max_speed);

    plat->bus_id = of_alias_get_id(np, "ethernet");
    if (plat->bus_id < 0)
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-04-14 17:20    [W:4.021 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site