* [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24
@ 2019-07-24 21:26 Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 1/5] igc: Remove the polarity field from a PHY information structure Jeff Kirsher
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Jeff Kirsher @ 2019-07-24 21:26 UTC (permalink / raw)
To: davem; +Cc: Jeff Kirsher, netdev, nhorman, sassmann
This series contains updates to igc and e1000e client drivers only.
Sasha provides a couple of cleanups to remove code that is not needed
and reduce structure sizes. Updated the MAC reset flow to use the
device reset flow instead of a port reset flow. Added addition device
id's that will be supported.
Kai-Heng Feng provides a workaround for a possible stalled packet issue
in our ICH devices due to a clock recovery from the PCH being too slow.
v2: removed the last patch in the series that supposedly fixed a MAC/PHY
de-sync potential issue while waiting for additional information from
hardware engineers.
The following are changes since commit 92493a2f8a8d5a5bc1188fc71ef02df859ebd932:
Build fixes for skb_frag_size conversion
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue 1GbE
Kai-Heng Feng (1):
e1000e: add workaround for possible stalled packet
Sasha Neftin (4):
igc: Remove the polarity field from a PHY information structure
igc: Remove the unused field from a device specification structure
igc: Update the MAC reset flow
igc: Add more SKUs for i225 device
drivers/net/ethernet/intel/e1000e/ich8lan.c | 10 ++++++++++
drivers/net/ethernet/intel/e1000e/ich8lan.h | 2 +-
drivers/net/ethernet/intel/igc/igc_base.c | 5 ++++-
drivers/net/ethernet/intel/igc/igc_defines.h | 2 +-
drivers/net/ethernet/intel/igc/igc_hw.h | 14 +++-----------
drivers/net/ethernet/intel/igc/igc_main.c | 3 +++
6 files changed, 22 insertions(+), 14 deletions(-)
--
2.21.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [net-next v2 1/5] igc: Remove the polarity field from a PHY information structure
2019-07-24 21:26 [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 Jeff Kirsher
@ 2019-07-24 21:26 ` Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 2/5] igc: Remove the unused field from a device specification structure Jeff Kirsher
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Jeff Kirsher @ 2019-07-24 21:26 UTC (permalink / raw)
To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher
From: Sasha Neftin <sasha.neftin@intel.com>
Polarity and cable length fields is not applicable for the i225 device.
This patch comes to clean up PHY information structure.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igc/igc_hw.h | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/net/ethernet/intel/igc/igc_hw.h b/drivers/net/ethernet/intel/igc/igc_hw.h
index 1039a224ac80..f689f0a02b5d 100644
--- a/drivers/net/ethernet/intel/igc/igc_hw.h
+++ b/drivers/net/ethernet/intel/igc/igc_hw.h
@@ -151,16 +151,10 @@ struct igc_phy_info {
u16 autoneg_advertised;
u16 autoneg_mask;
- u16 cable_length;
- u16 max_cable_length;
- u16 min_cable_length;
- u16 pair_length[4];
u8 mdix;
- bool disable_polarity_correction;
bool is_mdix;
- bool polarity_correction;
bool reset_disable;
bool speed_downgraded;
bool autoneg_wait_to_complete;
--
2.21.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [net-next v2 2/5] igc: Remove the unused field from a device specification structure
2019-07-24 21:26 [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 1/5] igc: Remove the polarity field from a PHY information structure Jeff Kirsher
@ 2019-07-24 21:26 ` Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 3/5] igc: Update the MAC reset flow Jeff Kirsher
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Jeff Kirsher @ 2019-07-24 21:26 UTC (permalink / raw)
To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher
From: Sasha Neftin <sasha.neftin@intel.com>
This patch comes to clean up the device specification structure.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igc/igc_hw.h | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/net/ethernet/intel/igc/igc_hw.h b/drivers/net/ethernet/intel/igc/igc_hw.h
index f689f0a02b5d..9a338fbf671c 100644
--- a/drivers/net/ethernet/intel/igc/igc_hw.h
+++ b/drivers/net/ethernet/intel/igc/igc_hw.h
@@ -184,12 +184,7 @@ struct igc_fc_info {
};
struct igc_dev_spec_base {
- bool global_device_reset;
- bool eee_disable;
bool clear_semaphore_once;
- bool module_plugged;
- u8 media_port;
- bool mas_capable;
};
struct igc_hw {
--
2.21.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [net-next v2 3/5] igc: Update the MAC reset flow
2019-07-24 21:26 [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 1/5] igc: Remove the polarity field from a PHY information structure Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 2/5] igc: Remove the unused field from a device specification structure Jeff Kirsher
@ 2019-07-24 21:26 ` Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 4/5] igc: Add more SKUs for i225 device Jeff Kirsher
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Jeff Kirsher @ 2019-07-24 21:26 UTC (permalink / raw)
To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher
From: Sasha Neftin <sasha.neftin@intel.com>
Use Device Reset flow instead of Port Reset flow.
This flow performs a reset of the entire controller device,
resulting in a state nearly approximating the state
following a power-up reset or internal PCIe reset,
except for system PCI configuration.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igc/igc_base.c | 2 +-
drivers/net/ethernet/intel/igc/igc_defines.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/igc/igc_base.c b/drivers/net/ethernet/intel/igc/igc_base.c
index 59258d791106..46206b3dabfb 100644
--- a/drivers/net/ethernet/intel/igc/igc_base.c
+++ b/drivers/net/ethernet/intel/igc/igc_base.c
@@ -40,7 +40,7 @@ static s32 igc_reset_hw_base(struct igc_hw *hw)
ctrl = rd32(IGC_CTRL);
hw_dbg("Issuing a global reset to MAC\n");
- wr32(IGC_CTRL, ctrl | IGC_CTRL_RST);
+ wr32(IGC_CTRL, ctrl | IGC_CTRL_DEV_RST);
ret_val = igc_get_auto_rd_done(hw);
if (ret_val) {
diff --git a/drivers/net/ethernet/intel/igc/igc_defines.h b/drivers/net/ethernet/intel/igc/igc_defines.h
index fc0ccfe38a20..11b99acf4abe 100644
--- a/drivers/net/ethernet/intel/igc/igc_defines.h
+++ b/drivers/net/ethernet/intel/igc/igc_defines.h
@@ -54,7 +54,7 @@
#define IGC_ERR_SWFW_SYNC 13
/* Device Control */
-#define IGC_CTRL_RST 0x04000000 /* Global reset */
+#define IGC_CTRL_DEV_RST 0x20000000 /* Device reset */
#define IGC_CTRL_PHY_RST 0x80000000 /* PHY Reset */
#define IGC_CTRL_SLU 0x00000040 /* Set link up (Force Link) */
--
2.21.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [net-next v2 4/5] igc: Add more SKUs for i225 device
2019-07-24 21:26 [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 Jeff Kirsher
` (2 preceding siblings ...)
2019-07-24 21:26 ` [net-next v2 3/5] igc: Update the MAC reset flow Jeff Kirsher
@ 2019-07-24 21:26 ` Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 5/5] e1000e: add workaround for possible stalled packet Jeff Kirsher
2019-07-24 22:35 ` [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 David Miller
5 siblings, 0 replies; 7+ messages in thread
From: Jeff Kirsher @ 2019-07-24 21:26 UTC (permalink / raw)
To: davem; +Cc: Sasha Neftin, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher
From: Sasha Neftin <sasha.neftin@intel.com>
Add support for more SKUs.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/igc/igc_base.c | 3 +++
drivers/net/ethernet/intel/igc/igc_hw.h | 3 +++
drivers/net/ethernet/intel/igc/igc_main.c | 3 +++
3 files changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/intel/igc/igc_base.c b/drivers/net/ethernet/intel/igc/igc_base.c
index 46206b3dabfb..db289bcce21d 100644
--- a/drivers/net/ethernet/intel/igc/igc_base.c
+++ b/drivers/net/ethernet/intel/igc/igc_base.c
@@ -209,6 +209,9 @@ static s32 igc_get_invariants_base(struct igc_hw *hw)
switch (hw->device_id) {
case IGC_DEV_ID_I225_LM:
case IGC_DEV_ID_I225_V:
+ case IGC_DEV_ID_I225_I:
+ case IGC_DEV_ID_I220_V:
+ case IGC_DEV_ID_I225_K:
mac->type = igc_i225;
break;
default:
diff --git a/drivers/net/ethernet/intel/igc/igc_hw.h b/drivers/net/ethernet/intel/igc/igc_hw.h
index 9a338fbf671c..abb2d72911ff 100644
--- a/drivers/net/ethernet/intel/igc/igc_hw.h
+++ b/drivers/net/ethernet/intel/igc/igc_hw.h
@@ -18,6 +18,9 @@
#define IGC_DEV_ID_I225_LM 0x15F2
#define IGC_DEV_ID_I225_V 0x15F3
+#define IGC_DEV_ID_I225_I 0x15F8
+#define IGC_DEV_ID_I220_V 0x15F7
+#define IGC_DEV_ID_I225_K 0x3100
#define IGC_FUNC_0 0
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 9ffe71424ece..e5114bebd30b 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -36,6 +36,9 @@ static const struct igc_info *igc_info_tbl[] = {
static const struct pci_device_id igc_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, IGC_DEV_ID_I225_LM), board_base },
{ PCI_VDEVICE(INTEL, IGC_DEV_ID_I225_V), board_base },
+ { PCI_VDEVICE(INTEL, IGC_DEV_ID_I225_I), board_base },
+ { PCI_VDEVICE(INTEL, IGC_DEV_ID_I220_V), board_base },
+ { PCI_VDEVICE(INTEL, IGC_DEV_ID_I225_K), board_base },
/* required last entry */
{0, }
};
--
2.21.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [net-next v2 5/5] e1000e: add workaround for possible stalled packet
2019-07-24 21:26 [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 Jeff Kirsher
` (3 preceding siblings ...)
2019-07-24 21:26 ` [net-next v2 4/5] igc: Add more SKUs for i225 device Jeff Kirsher
@ 2019-07-24 21:26 ` Jeff Kirsher
2019-07-24 22:35 ` [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 David Miller
5 siblings, 0 replies; 7+ messages in thread
From: Jeff Kirsher @ 2019-07-24 21:26 UTC (permalink / raw)
To: davem; +Cc: Kai-Heng Feng, netdev, nhorman, sassmann, Aaron Brown, Jeff Kirsher
From: Kai-Heng Feng <kai.heng.feng@canonical.com>
This works around a possible stalled packet issue, which may occur due to
clock recovery from the PCH being too slow, when the LAN is transitioning
from K1 at 1G link speed.
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204057
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000e/ich8lan.c | 10 ++++++++++
drivers/net/ethernet/intel/e1000e/ich8lan.h | 2 +-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 395b05701480..a1fab77b2096 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -1429,6 +1429,16 @@ static s32 e1000_check_for_copper_link_ich8lan(struct e1000_hw *hw)
else
phy_reg |= 0xFA;
e1e_wphy_locked(hw, I217_PLL_CLOCK_GATE_REG, phy_reg);
+
+ if (speed == SPEED_1000) {
+ hw->phy.ops.read_reg_locked(hw, HV_PM_CTRL,
+ &phy_reg);
+
+ phy_reg |= HV_PM_CTRL_K1_CLK_REQ;
+
+ hw->phy.ops.write_reg_locked(hw, HV_PM_CTRL,
+ phy_reg);
+ }
}
hw->phy.ops.release(hw);
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.h b/drivers/net/ethernet/intel/e1000e/ich8lan.h
index eb09c755fa17..1502895eb45d 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.h
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.h
@@ -210,7 +210,7 @@
/* PHY Power Management Control */
#define HV_PM_CTRL PHY_REG(770, 17)
-#define HV_PM_CTRL_PLL_STOP_IN_K1_GIGA 0x100
+#define HV_PM_CTRL_K1_CLK_REQ 0x200
#define HV_PM_CTRL_K1_ENABLE 0x4000
#define I217_PLL_CLOCK_GATE_REG PHY_REG(772, 28)
--
2.21.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24
2019-07-24 21:26 [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 Jeff Kirsher
` (4 preceding siblings ...)
2019-07-24 21:26 ` [net-next v2 5/5] e1000e: add workaround for possible stalled packet Jeff Kirsher
@ 2019-07-24 22:35 ` David Miller
5 siblings, 0 replies; 7+ messages in thread
From: David Miller @ 2019-07-24 22:35 UTC (permalink / raw)
To: jeffrey.t.kirsher; +Cc: netdev, nhorman, sassmann
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Wed, 24 Jul 2019 14:26:08 -0700
> This series contains updates to igc and e1000e client drivers only.
>
> Sasha provides a couple of cleanups to remove code that is not needed
> and reduce structure sizes. Updated the MAC reset flow to use the
> device reset flow instead of a port reset flow. Added addition device
> id's that will be supported.
>
> Kai-Heng Feng provides a workaround for a possible stalled packet issue
> in our ICH devices due to a clock recovery from the PCH being too slow.
>
> v2: removed the last patch in the series that supposedly fixed a MAC/PHY
> de-sync potential issue while waiting for additional information from
> hardware engineers.
Pulled, thanks Jeff.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-07-24 22:35 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-24 21:26 [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 1/5] igc: Remove the polarity field from a PHY information structure Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 2/5] igc: Remove the unused field from a device specification structure Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 3/5] igc: Update the MAC reset flow Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 4/5] igc: Add more SKUs for i225 device Jeff Kirsher
2019-07-24 21:26 ` [net-next v2 5/5] e1000e: add workaround for possible stalled packet Jeff Kirsher
2019-07-24 22:35 ` [net-next v2 0/5][pull request] 1GbE Intel Wired LAN Driver Updates 2019-07-24 David Miller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.