Patch "e1000e: Enable GPT clock before sending message to CSME" has been added to the 5.18-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

    e1000e: Enable GPT clock before sending message to CSME

to the 5.18-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:
     e1000e-enable-gpt-clock-before-sending-message-to-cs.patch
and it can be found in the queue-5.18 subdirectory.

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



commit 75b0b2ae3c0626ea0fe5c551d008d6a0dbc6f5a8
Author: Sasha Neftin <sasha.neftin@xxxxxxxxx>
Date:   Sun May 8 10:09:05 2022 +0300

    e1000e: Enable GPT clock before sending message to CSME
    
    [ Upstream commit b49feacbeffc7635cc6692cbcc6a1eae2c17da6f ]
    
    On corporate (CSME) ADL systems, the Ethernet Controller may stop working
    ("HW unit hang") after exiting from the s0ix state. The reason is that
    CSME misses the message sent by the host. Enabling the dynamic GPT clock
    solves this problem. This clock is cleared upon HW initialization.
    
    Fixes: 3e55d231716e ("e1000e: Add handshake with the CSME to support S0ix")
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=214821
    Reviewed-by: Dima Ruinskiy <dima.ruinskiy@xxxxxxxxx>
    Signed-off-by: Sasha Neftin <sasha.neftin@xxxxxxxxx>
    Tested-by: Chia-Lin Kao (AceLan) <acelan.kao@xxxxxxxxxxxxx>
    Tested-by: Naama Meir <naamax.meir@xxxxxxxxxxxxxxx>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
index fa06f68c8c80..c64102b29862 100644
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
@@ -6494,6 +6494,10 @@ static void e1000e_s0ix_exit_flow(struct e1000_adapter *adapter)
 
 	if (er32(FWSM) & E1000_ICH_FWSM_FW_VALID &&
 	    hw->mac.type >= e1000_pch_adp) {
+		/* Keep the GPT clock enabled for CSME */
+		mac_data = er32(FEXTNVM);
+		mac_data |= BIT(3);
+		ew32(FEXTNVM, mac_data);
 		/* Request ME unconfigure the device from S0ix */
 		mac_data = er32(H2ME);
 		mac_data &= ~E1000_H2ME_START_DPG;



[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