Skip to content

Commit 6cecf02

Browse files
Mario Limoncielloanguy11
authored andcommitted
Revert "e1000e: disable s0ix entry and exit flows for ME systems"
commit e086ba2 ("e1000e: disable s0ix entry and exit flows for ME systems") disabled s0ix flows for systems that have various incarnations of the i219-LM ethernet controller. This changed caused power consumption regressions on the following shipping Dell Comet Lake based laptops: * Latitude 5310 * Latitude 5410 * Latitude 5410 * Latitude 5510 * Precision 3550 * Latitude 5411 * Latitude 5511 * Precision 3551 * Precision 7550 * Precision 7750 This commit was introduced because of some regressions on certain Thinkpad laptops. This comment was potentially caused by an earlier commit 632fbd5 ("e1000e: fix S0ix flows for cable connected case"). or it was possibly caused by a system not meeting platform architectural requirements for low power consumption. Other changes made in the driver with extended timeouts are expected to make the driver more impervious to platform firmware behavior. Fixes: e086ba2 ("e1000e: disable s0ix entry and exit flows for ME systems") Reviewed-by: Alexander Duyck <alexander.duyck@gmail.com> Signed-off-by: Mario Limonciello <mario.limonciello@dell.com> Reviewed-by: Hans de Goede <hdegoede@redhat.com> Tested-by: Yijun Shen <Yijun.shen@dell.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
1 parent 3cf31b1 commit 6cecf02

File tree

1 file changed

+2
-43
lines changed
  • drivers/net/ethernet/intel/e1000e

1 file changed

+2
-43
lines changed

drivers/net/ethernet/intel/e1000e/netdev.c

Lines changed: 2 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -103,45 +103,6 @@ static const struct e1000_reg_info e1000_reg_info_tbl[] = {
103103
{0, NULL}
104104
};
105105

106-
struct e1000e_me_supported {
107-
u16 device_id; /* supported device ID */
108-
};
109-
110-
static const struct e1000e_me_supported me_supported[] = {
111-
{E1000_DEV_ID_PCH_LPT_I217_LM},
112-
{E1000_DEV_ID_PCH_LPTLP_I218_LM},
113-
{E1000_DEV_ID_PCH_I218_LM2},
114-
{E1000_DEV_ID_PCH_I218_LM3},
115-
{E1000_DEV_ID_PCH_SPT_I219_LM},
116-
{E1000_DEV_ID_PCH_SPT_I219_LM2},
117-
{E1000_DEV_ID_PCH_LBG_I219_LM3},
118-
{E1000_DEV_ID_PCH_SPT_I219_LM4},
119-
{E1000_DEV_ID_PCH_SPT_I219_LM5},
120-
{E1000_DEV_ID_PCH_CNP_I219_LM6},
121-
{E1000_DEV_ID_PCH_CNP_I219_LM7},
122-
{E1000_DEV_ID_PCH_ICP_I219_LM8},
123-
{E1000_DEV_ID_PCH_ICP_I219_LM9},
124-
{E1000_DEV_ID_PCH_CMP_I219_LM10},
125-
{E1000_DEV_ID_PCH_CMP_I219_LM11},
126-
{E1000_DEV_ID_PCH_CMP_I219_LM12},
127-
{E1000_DEV_ID_PCH_TGP_I219_LM13},
128-
{E1000_DEV_ID_PCH_TGP_I219_LM14},
129-
{E1000_DEV_ID_PCH_TGP_I219_LM15},
130-
{0}
131-
};
132-
133-
static bool e1000e_check_me(u16 device_id)
134-
{
135-
struct e1000e_me_supported *id;
136-
137-
for (id = (struct e1000e_me_supported *)me_supported;
138-
id->device_id; id++)
139-
if (device_id == id->device_id)
140-
return true;
141-
142-
return false;
143-
}
144-
145106
/**
146107
* __ew32_prepare - prepare to write to MAC CSR register on certain parts
147108
* @hw: pointer to the HW structure
@@ -6974,8 +6935,7 @@ static __maybe_unused int e1000e_pm_suspend(struct device *dev)
69746935
e1000e_pm_thaw(dev);
69756936
} else {
69766937
/* Introduce S0ix implementation */
6977-
if (hw->mac.type >= e1000_pch_cnp &&
6978-
!e1000e_check_me(hw->adapter->pdev->device))
6938+
if (hw->mac.type >= e1000_pch_cnp)
69796939
e1000e_s0ix_entry_flow(adapter);
69806940
}
69816941

@@ -6991,8 +6951,7 @@ static __maybe_unused int e1000e_pm_resume(struct device *dev)
69916951
int rc;
69926952

69936953
/* Introduce S0ix implementation */
6994-
if (hw->mac.type >= e1000_pch_cnp &&
6995-
!e1000e_check_me(hw->adapter->pdev->device))
6954+
if (hw->mac.type >= e1000_pch_cnp)
69966955
e1000e_s0ix_exit_flow(adapter);
69976956

69986957
rc = __e1000_resume(pdev);

0 commit comments

Comments
 (0)