Patch "phy: micrel: ksz8041nl: do not use power down mode" has been added to the 4.14-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

    phy: micrel: ksz8041nl: do not use power down mode

to the 4.14-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:
     phy-micrel-ksz8041nl-do-not-use-power-down-mode.patch
and it can be found in the queue-4.14 subdirectory.

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



commit d4cd355d4b9999bf28524e8f9e3f4162d1226335
Author: Stefan Agner <stefan@xxxxxxxx>
Date:   Tue Oct 19 21:16:47 2021 +0200

    phy: micrel: ksz8041nl: do not use power down mode
    
    [ Upstream commit 2641b62d2fab52648e34cdc6994b2eacde2d27c1 ]
    
    Some Micrel KSZ8041NL PHY chips exhibit continuous RX errors after using
    the power down mode bit (0.11). If the PHY is taken out of power down
    mode in a certain temperature range, the PHY enters a weird state which
    leads to continuously reporting RX errors. In that state, the MAC is not
    able to receive or send any Ethernet frames and the activity LED is
    constantly blinking. Since Linux is using the suspend callback when the
    interface is taken down, ending up in that state can easily happen
    during a normal startup.
    
    Micrel confirmed the issue in errata DS80000700A [*], caused by abnormal
    clock recovery when using power down mode. Even the latest revision (A4,
    Revision ID 0x1513) seems to suffer that problem, and according to the
    errata is not going to be fixed.
    
    Remove the suspend/resume callback to avoid using the power down mode
    completely.
    
    [*] https://ww1.microchip.com/downloads/en/DeviceDoc/80000700A.pdf
    
    Fixes: 1a5465f5d6a2 ("phy/micrel: Add suspend/resume support to Micrel PHYs")
    Signed-off-by: Stefan Agner <stefan@xxxxxxxx>
    Acked-by: Marcel Ziswiler <marcel.ziswiler@xxxxxxxxxxx>
    Signed-off-by: Francesco Dolcini <francesco.dolcini@xxxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c
index ef5e5b621ec59..755aa67412923 100644
--- a/drivers/net/phy/micrel.c
+++ b/drivers/net/phy/micrel.c
@@ -876,8 +876,9 @@ static struct phy_driver ksphy_driver[] = {
 	.get_sset_count = kszphy_get_sset_count,
 	.get_strings	= kszphy_get_strings,
 	.get_stats	= kszphy_get_stats,
-	.suspend	= genphy_suspend,
-	.resume		= genphy_resume,
+	/* No suspend/resume callbacks because of errata DS80000700A,
+	 * receiver error following software power down.
+	 */
 }, {
 	.phy_id		= PHY_ID_KSZ8041RNLI,
 	.phy_id_mask	= MICREL_PHY_ID_MASK,



[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