[Intel-wired-lan] [PATCH v1 2/2] e1000e: Fixing packet loss issues on new platforms
Mark Pearson
markpearson at lenovo.com
Wed Sep 22 13:56:50 UTC 2021
Thanks Sasha,
Confirmed this fixes the problem on my X13 G2
Tested-by: Mark Pearson <markpearson at lenovo.com>
Mark
On 2021-09-22 09:29, Sasha Neftin wrote:
>
>
>
> -------- Forwarded Message --------
> Subject: [PATCH v1 2/2] e1000e: Fixing packet loss issues on new platforms
> Date: Wed, 22 Sep 2021 09:55:42 +0300
> From: Sasha Neftin <sasha.neftin at intel.com>
> To: intel-wired-lan at lists.osuosl.org
> CC: Sasha Neftin <sasha.neftin at intel.com>
>
> Update the HW MAC initialization flow. Do not gate DMA clock from
> the modPHY block. Keeping this clock will prevent drop packets sent
> in burst mode on the Kumeran interface.
>
> Bugzilla:
> https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.kernel.org%2Fshow_bug.cgi%3Fid%3D213651&data=04%7C01%7Cmarkpearson%40lenovo.com%7Cb5b073b630794c8ff7b908d97dcd03a3%7C5c7d0b28bdf8410caa934df372b16203%7C1%7C0%7C637679141742309105%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=1TJGrHWxUne7m%2BOPaAw5TuMAJHzOldg5Ws4xSY2Ew40%3D&reserved=0
>
> Bugzilla:
> https://apc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.kernel.org%2Fshow_bug.cgi%3Fid%3D213377&data=04%7C01%7Cmarkpearson%40lenovo.com%7Cb5b073b630794c8ff7b908d97dcd03a3%7C5c7d0b28bdf8410caa934df372b16203%7C1%7C0%7C637679141742319058%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=BRuJa4pf%2FhTau%2BfDY1lMOI%2F0wCMUYh5bB%2FJHZjTJmQw%3D&reserved=0
>
> Fixes: bc7f75fa9788 ("New pci-express e1000 driver");
> Signed-off-by: Sasha Neftin <sasha.neftin at intel.com>
> ---
> drivers/net/ethernet/intel/e1000e/ich8lan.c | 11 ++++++++++-
> drivers/net/ethernet/intel/e1000e/ich8lan.h | 3 +++
> 2 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c
> b/drivers/net/ethernet/intel/e1000e/ich8lan.c
> index 66d7196310e2..5e4fc9b4e2ad 100644
> --- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
> +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
> @@ -4813,7 +4813,7 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw
> *hw)
> static s32 e1000_init_hw_ich8lan(struct e1000_hw *hw)
> {
> struct e1000_mac_info *mac = &hw->mac;
> - u32 ctrl_ext, txdctl, snoop;
> + u32 ctrl_ext, txdctl, snoop, fflt_dbg;
> s32 ret_val;
> u16 i;
> @@ -4872,6 +4872,15 @@ static s32 e1000_init_hw_ich8lan(struct
> e1000_hw *hw)
> snoop = (u32)~(PCIE_NO_SNOOP_ALL);
> e1000e_set_pcie_no_snoop(hw, snoop);
> + /* Enable workaround for packet loss issue on TGP PCH
> + * Do not gate DMA clock from the modPHY block
> + */
> + if (mac->type >= e1000_pch_tgp) {
> + fflt_dbg = er32(FFLT_DBG);
> + fflt_dbg |= E1000_FFLT_DBG_DONT_GATE_WAKE_DMA_CLK;
> + ew32(FFLT_DBG, fflt_dbg);
> + }
> +
> ctrl_ext = er32(CTRL_EXT);
> ctrl_ext |= E1000_CTRL_EXT_RO_DIS;
> ew32(CTRL_EXT, ctrl_ext);
> diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.h
> b/drivers/net/ethernet/intel/e1000e/ich8lan.h
> index d6a092e5ee74..2504b11c3169 100644
> --- a/drivers/net/ethernet/intel/e1000e/ich8lan.h
> +++ b/drivers/net/ethernet/intel/e1000e/ich8lan.h
> @@ -289,6 +289,9 @@
> /* Proprietary Latency Tolerance Reporting PCI Capability */
> #define E1000_PCI_LTR_CAP_LPT 0xA8
> +/* Don't gate wake DMA clock */
> +#define E1000_FFLT_DBG_DONT_GATE_WAKE_DMA_CLK 0x1000
> +
> void e1000e_write_protect_nvm_ich8lan(struct e1000_hw *hw);
> void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw,
> bool state);
More information about the Intel-wired-lan
mailing list