Patch "lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected" has been added to the 6.1-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

    lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected

to the 6.1-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:
     lan78xx-enable-auto-speed-configuration-for-lan7850-.patch
and it can be found in the queue-6.1 subdirectory.

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



commit 56f3ecf369d19dd76090f52228ae4715f9115cbe
Author: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
Date:   Thu Feb 22 13:38:38 2024 +0100

    lan78xx: enable auto speed configuration for LAN7850 if no EEPROM is detected
    
    [ Upstream commit 0e67899abfbfdea0c3c0ed3fd263ffc601c5c157 ]
    
    Same as LAN7800, LAN7850 can be used without EEPROM. If EEPROM is not
    present or not flashed, LAN7850 will fail to sync the speed detected by the PHY
    with the MAC. In case link speed is 100Mbit, it will accidentally work,
    otherwise no data can be transferred.
    
    Better way would be to implement link_up callback, or set auto speed
    configuration unconditionally. But this changes would be more intrusive.
    So, for now, set it only if no EEPROM is found.
    
    Fixes: e69647a19c87 ("lan78xx: Set ASD in MAC_CR when EEE is enabled.")
    Signed-off-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240222123839.2816561-1-o.rempel@xxxxxxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index c458c030fadf6..7b9d480e44fe4 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -3035,7 +3035,8 @@ static int lan78xx_reset(struct lan78xx_net *dev)
 	if (dev->chipid == ID_REV_CHIP_ID_7801_)
 		buf &= ~MAC_CR_GMII_EN_;
 
-	if (dev->chipid == ID_REV_CHIP_ID_7800_) {
+	if (dev->chipid == ID_REV_CHIP_ID_7800_ ||
+	    dev->chipid == ID_REV_CHIP_ID_7850_) {
 		ret = lan78xx_read_raw_eeprom(dev, 0, 1, &sig);
 		if (!ret && sig != EEPROM_INDICATOR) {
 			/* Implies there is no external eeprom. Set mac speed */




[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