Patch "net: dsa: mv88e6xxx: Unforce speed & duplex in mac_link_down()" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: dsa: mv88e6xxx: Unforce speed & duplex in mac_link_down()

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-dsa-mv88e6xxx-unforce-speed-duplex-in-mac_link_d.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 8b105520c0ce92864b4d1d4b547db87ef1a52d58
Author: Marek Behún <kabel@xxxxxxxxxx>
Date:   Sat Dec 11 23:51:41 2021 +0100

    net: dsa: mv88e6xxx: Unforce speed & duplex in mac_link_down()
    
    [ 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@xxxxxxxxxx>
    Reviewed-by: Russell King (Oracle) <rmk+kernel@xxxxxxxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

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)



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux