lkml.org 
[lkml]   [2021]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 075/177] net: dsa: mv88e6xxx: Unforce speed & duplex in mac_link_down()
    Date
    From: Marek Behún <kabel@kernel.org>

    [ Upstream commit 9d591fc028b6bddb38c6585874f331267cbdadae ]

    Commit 64d47d50be7a ("net: dsa: mv88e6xxx: configure interface settings
    in mac_config") removed forcing of speed and duplex from
    mv88e6xxx_mac_config(), where the link is forced down, and left it only
    in mv88e6xxx_mac_link_up(), by which time link is unforced.

    It seems that (at least on 88E6190) when changing cmode to 2500base-x,
    if the link is not forced down, but the speed or duplex are still
    forced, the forcing of new settings for speed & duplex doesn't take in
    mv88e6xxx_mac_link_up().

    Fix this by unforcing speed & duplex in mv88e6xxx_mac_link_down().

    Fixes: 64d47d50be7a ("net: dsa: mv88e6xxx: configure interface settings in mac_config")
    Signed-off-by: Marek Behún <kabel@kernel.org>
    Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/dsa/mv88e6xxx/chip.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
    index a31cc0ab7c625..43d126628610b 100644
    --- a/drivers/net/dsa/mv88e6xxx/chip.c
    +++ b/drivers/net/dsa/mv88e6xxx/chip.c
    @@ -769,6 +769,10 @@ static void mv88e6xxx_mac_link_down(struct dsa_switch *ds, int port,
    if ((!mv88e6xxx_port_ppu_updates(chip, port) ||
    mode == MLO_AN_FIXED) && ops->port_sync_link)
    err = ops->port_sync_link(chip, port, mode, false);
    +
    + if (!err && ops->port_set_speed_duplex)
    + err = ops->port_set_speed_duplex(chip, port, SPEED_UNFORCED,
    + DUPLEX_UNFORCED);
    mv88e6xxx_reg_unlock(chip);

    if (err)
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-12-20 16:12    [W:4.276 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site