All of lore.kernel.org
 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 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.