forked from openwrt/openwrt
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kernel: backport two intel igc patches from 5.15
to allow proper initialization of device - igc: Remove _I_PHY_ID checking - igc: Remove phy->type checking Signed-off-by: Pascal Coudurier <coudu@wanadoo.fr> (refreshed) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
- Loading branch information
Showing
2 changed files
with
116 additions
and
0 deletions.
There are no files selected for viewing
73 changes: 73 additions & 0 deletions
73
target/linux/generic/backport-5.10/774-v5.15-1-igc-remove-_I_PHY_ID-checking.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
From 7c496de538eebd8212dc2a3c9a468386b264d0d4 Mon Sep 17 00:00:00 2001 | ||
From: Sasha Neftin <sasha.neftin@intel.com> | ||
Date: Wed, 7 Jul 2021 08:14:40 +0300 | ||
Subject: igc: Remove _I_PHY_ID checking | ||
|
||
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> | ||
--- | ||
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(-) | ||
|
||
(limited to 'drivers/net/ethernet/intel/igc') | ||
|
||
--- 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(stru | ||
|
||
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; | ||
--- 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 *ad | ||
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)) { | ||
--- 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 | ||
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 | ||
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) | |
43 changes: 43 additions & 0 deletions
43
target/linux/generic/backport-5.10/774-v5.15-2-igc-remove-phy-type-checking.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
From 47bca7de6a4fb8dcb564c7ca14d885c91ed19e03 Mon Sep 17 00:00:00 2001 | ||
From: Sasha Neftin <sasha.neftin@intel.com> | ||
Date: Sat, 10 Jul 2021 20:57:50 +0300 | ||
Subject: igc: Remove phy->type checking | ||
|
||
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> | ||
--- | ||
drivers/net/ethernet/intel/igc/igc_main.c | 15 ++++----------- | ||
1 file changed, 4 insertions(+), 11 deletions(-) | ||
|
||
(limited to 'drivers/net/ethernet/intel/igc') | ||
|
||
--- 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 *ad | ||
* 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)) { |