stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH for 5.10.y 0/3] Intel igc backports
@ 2022-05-19  4:51 Nobuhiro Iwamatsu
  2022-05-19  4:51 ` [PATCH 1/3] igc: Remove _I_PHY_ID checking Nobuhiro Iwamatsu
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Nobuhiro Iwamatsu @ 2022-05-19  4:51 UTC (permalink / raw)
  To: stable
  Cc: daichi1.fukui, Greg Kroah-Hartman, Sasha Neftin, Dvora Fuxbrumer,
	Tony Nguyen, Nechama Kraus, Nobuhiro Iwamatsu

Hi,

Intel igc ethernet device does not work on 5.10.y due to a problem with the PHY check
of igc driver.

```
igc: probe of 0000:03:00.0 failed with error -2
```

To fix this issue, we'll need three commits that have been fixed in upstream.

Best regards,
  Nobuhiro

Sasha Neftin (3):
  igc: Remove _I_PHY_ID checking
  igc: Remove phy->type checking
  igc: Update I226_K device ID

 drivers/net/ethernet/intel/igc/igc_base.c | 10 +---------
 drivers/net/ethernet/intel/igc/igc_hw.h   |  1 +
 drivers/net/ethernet/intel/igc/igc_main.c | 18 +++++-------------
 drivers/net/ethernet/intel/igc/igc_phy.c  |  6 ++----
 4 files changed, 9 insertions(+), 26 deletions(-)

-- 
2.36.0



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/3] igc: Remove _I_PHY_ID checking
  2022-05-19  4:51 [PATCH for 5.10.y 0/3] Intel igc backports Nobuhiro Iwamatsu
@ 2022-05-19  4:51 ` Nobuhiro Iwamatsu
  2022-05-19  4:51 ` [PATCH 2/3] igc: Remove phy->type checking Nobuhiro Iwamatsu
  2022-05-19  4:51 ` [PATCH 3/3] igc: Update I226_K device ID Nobuhiro Iwamatsu
  2 siblings, 0 replies; 4+ messages in thread
From: Nobuhiro Iwamatsu @ 2022-05-19  4:51 UTC (permalink / raw)
  To: stable
  Cc: daichi1.fukui, Greg Kroah-Hartman, Sasha Neftin, Dvora Fuxbrumer,
	Tony Nguyen, Nechama Kraus, Nobuhiro Iwamatsu

From: Sasha Neftin <sasha.neftin@intel.com>

commit 7c496de538eebd8212dc2a3c9a468386b264d0d4 upstream.

i225 devices have only one PHY vendor. There is no point checking
_I_PHY_ID during the link establishment and auto-negotiation process.
This patch comes to clean up these pointless checkings.

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
---
 drivers/net/ethernet/intel/igc/igc_base.c | 10 +---------
 drivers/net/ethernet/intel/igc/igc_main.c |  3 +--
 drivers/net/ethernet/intel/igc/igc_phy.c  |  6 ++----
 3 files changed, 4 insertions(+), 15 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_base.c b/drivers/net/ethernet/intel/igc/igc_base.c
index fd37d2c203af..7f3523f0d196 100644
--- a/drivers/net/ethernet/intel/igc/igc_base.c
+++ b/drivers/net/ethernet/intel/igc/igc_base.c
@@ -187,15 +187,7 @@ static s32 igc_init_phy_params_base(struct igc_hw *hw)
 
 	igc_check_for_copper_link(hw);
 
-	/* Verify phy id and set remaining function pointers */
-	switch (phy->id) {
-	case I225_I_PHY_ID:
-		phy->type	= igc_phy_i225;
-		break;
-	default:
-		ret_val = -IGC_ERR_PHY;
-		goto out;
-	}
+	phy->type = igc_phy_i225;
 
 out:
 	return ret_val;
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 61cebb7df6bc..da39380ab205 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -4189,8 +4189,7 @@ bool igc_has_link(struct igc_adapter *adapter)
 		break;
 	}
 
-	if (hw->mac.type == igc_i225 &&
-	    hw->phy.id == I225_I_PHY_ID) {
+	if (hw->mac.type == igc_i225) {
 		if (!netif_carrier_ok(adapter->netdev)) {
 			adapter->flags &= ~IGC_FLAG_NEED_LINK_UPDATE;
 		} else if (!(adapter->flags & IGC_FLAG_NEED_LINK_UPDATE)) {
diff --git a/drivers/net/ethernet/intel/igc/igc_phy.c b/drivers/net/ethernet/intel/igc/igc_phy.c
index 8de4de2e5636..3a103406eadb 100644
--- a/drivers/net/ethernet/intel/igc/igc_phy.c
+++ b/drivers/net/ethernet/intel/igc/igc_phy.c
@@ -249,8 +249,7 @@ static s32 igc_phy_setup_autoneg(struct igc_hw *hw)
 			return ret_val;
 	}
 
-	if ((phy->autoneg_mask & ADVERTISE_2500_FULL) &&
-	    hw->phy.id == I225_I_PHY_ID) {
+	if (phy->autoneg_mask & ADVERTISE_2500_FULL) {
 		/* Read the MULTI GBT AN Control Register - reg 7.32 */
 		ret_val = phy->ops.read_reg(hw, (STANDARD_AN_REG_MASK <<
 					    MMD_DEVADDR_SHIFT) |
@@ -390,8 +389,7 @@ static s32 igc_phy_setup_autoneg(struct igc_hw *hw)
 		ret_val = phy->ops.write_reg(hw, PHY_1000T_CTRL,
 					     mii_1000t_ctrl_reg);
 
-	if ((phy->autoneg_mask & ADVERTISE_2500_FULL) &&
-	    hw->phy.id == I225_I_PHY_ID)
+	if (phy->autoneg_mask & ADVERTISE_2500_FULL)
 		ret_val = phy->ops.write_reg(hw,
 					     (STANDARD_AN_REG_MASK <<
 					     MMD_DEVADDR_SHIFT) |
-- 
2.36.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/3] igc: Remove phy->type checking
  2022-05-19  4:51 [PATCH for 5.10.y 0/3] Intel igc backports Nobuhiro Iwamatsu
  2022-05-19  4:51 ` [PATCH 1/3] igc: Remove _I_PHY_ID checking Nobuhiro Iwamatsu
@ 2022-05-19  4:51 ` Nobuhiro Iwamatsu
  2022-05-19  4:51 ` [PATCH 3/3] igc: Update I226_K device ID Nobuhiro Iwamatsu
  2 siblings, 0 replies; 4+ messages in thread
From: Nobuhiro Iwamatsu @ 2022-05-19  4:51 UTC (permalink / raw)
  To: stable
  Cc: daichi1.fukui, Greg Kroah-Hartman, Sasha Neftin, Dvora Fuxbrumer,
	Tony Nguyen, Nechama Kraus, Nobuhiro Iwamatsu

From: Sasha Neftin <sasha.neftin@intel.com>

commit 47bca7de6a4fb8dcb564c7ca14d885c91ed19e03 upstream.

i225 devices have only one phy->type: copper. There is no point checking
phy->type during the igc_has_link method from the watchdog that
invoked every 2 seconds.
This patch comes to clean up these pointless checkings.

Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
---
 drivers/net/ethernet/intel/igc/igc_main.c | 15 ++++-----------
 1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index da39380ab205..fd9257c7059a 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -4177,17 +4177,10 @@ bool igc_has_link(struct igc_adapter *adapter)
 	 * false until the igc_check_for_link establishes link
 	 * for copper adapters ONLY
 	 */
-	switch (hw->phy.media_type) {
-	case igc_media_type_copper:
-		if (!hw->mac.get_link_status)
-			return true;
-		hw->mac.ops.check_for_link(hw);
-		link_active = !hw->mac.get_link_status;
-		break;
-	default:
-	case igc_media_type_unknown:
-		break;
-	}
+	if (!hw->mac.get_link_status)
+		return true;
+	hw->mac.ops.check_for_link(hw);
+	link_active = !hw->mac.get_link_status;
 
 	if (hw->mac.type == igc_i225) {
 		if (!netif_carrier_ok(adapter->netdev)) {
-- 
2.36.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 3/3] igc: Update I226_K device ID
  2022-05-19  4:51 [PATCH for 5.10.y 0/3] Intel igc backports Nobuhiro Iwamatsu
  2022-05-19  4:51 ` [PATCH 1/3] igc: Remove _I_PHY_ID checking Nobuhiro Iwamatsu
  2022-05-19  4:51 ` [PATCH 2/3] igc: Remove phy->type checking Nobuhiro Iwamatsu
@ 2022-05-19  4:51 ` Nobuhiro Iwamatsu
  2 siblings, 0 replies; 4+ messages in thread
From: Nobuhiro Iwamatsu @ 2022-05-19  4:51 UTC (permalink / raw)
  To: stable
  Cc: daichi1.fukui, Greg Kroah-Hartman, Sasha Neftin, Dvora Fuxbrumer,
	Tony Nguyen, Nechama Kraus, Nobuhiro Iwamatsu

From: Sasha Neftin <sasha.neftin@intel.com>

commit 79cc8322b6d82747cb63ea464146c0bf5b5a6bc1 upstream.

The device ID for I226_K was incorrectly assigned, update the device
ID to the correct one.

Fixes: bfa5e98c9de4 ("igc: Add new device ID")
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Tested-by: Nechama Kraus <nechamax.kraus@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
---
 drivers/net/ethernet/intel/igc/igc_hw.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/intel/igc/igc_hw.h b/drivers/net/ethernet/intel/igc/igc_hw.h
index 55dae7c4703f..7e29f41f70e0 100644
--- a/drivers/net/ethernet/intel/igc/igc_hw.h
+++ b/drivers/net/ethernet/intel/igc/igc_hw.h
@@ -22,6 +22,7 @@
 #define IGC_DEV_ID_I220_V			0x15F7
 #define IGC_DEV_ID_I225_K			0x3100
 #define IGC_DEV_ID_I225_K2			0x3101
+#define IGC_DEV_ID_I226_K			0x3102
 #define IGC_DEV_ID_I225_LMVP			0x5502
 #define IGC_DEV_ID_I225_IT			0x0D9F
 #define IGC_DEV_ID_I226_LM			0x125B
-- 
2.36.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-05-19  5:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-19  4:51 [PATCH for 5.10.y 0/3] Intel igc backports Nobuhiro Iwamatsu
2022-05-19  4:51 ` [PATCH 1/3] igc: Remove _I_PHY_ID checking Nobuhiro Iwamatsu
2022-05-19  4:51 ` [PATCH 2/3] igc: Remove phy->type checking Nobuhiro Iwamatsu
2022-05-19  4:51 ` [PATCH 3/3] igc: Update I226_K device ID Nobuhiro Iwamatsu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).