2022-08-09 13:40:01

by Linjun Bao

[permalink] [raw]
Subject: [PATCH] igc: Remove _I_PHY_ID check for i225 devices

Source commit 7c496de538ee ("igc: Remove _I_PHY_ID checking"),
remove _I_PHY_ID check for i225 device, since i225 devices only
have one PHY vendor.

Signed-off-by: Linjun Bao <[email protected]>
---
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 db289bcce21d..d66429eb14a5 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 9ba05d9aa8e0..b8297a63a7fd 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -2884,8 +2884,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 6156c76d765f..1be112ce6774 100644
--- a/drivers/net/ethernet/intel/igc/igc_phy.c
+++ b/drivers/net/ethernet/intel/igc/igc_phy.c
@@ -235,8 +235,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) |
@@ -376,8 +375,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.25.1


2022-08-09 17:56:14

by Tony Nguyen

[permalink] [raw]
Subject: Re: [PATCH] igc: Remove _I_PHY_ID check for i225 devices

On 8/9/2022 6:35 AM, Linjun Bao wrote:
> Source commit 7c496de538ee ("igc: Remove _I_PHY_ID checking"),
> remove _I_PHY_ID check for i225 device, since i225 devices only
> have one PHY vendor.

What are you trying to do with this patch? You're referencing the
original commit so you know it's committed, but it's not clear to me why
you are re-sending it.

Thanks,
Tony

> Signed-off-by: Linjun Bao <[email protected]>
> ---
> 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 db289bcce21d..d66429eb14a5 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 9ba05d9aa8e0..b8297a63a7fd 100644
> --- a/drivers/net/ethernet/intel/igc/igc_main.c
> +++ b/drivers/net/ethernet/intel/igc/igc_main.c
> @@ -2884,8 +2884,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 6156c76d765f..1be112ce6774 100644
> --- a/drivers/net/ethernet/intel/igc/igc_phy.c
> +++ b/drivers/net/ethernet/intel/igc/igc_phy.c
> @@ -235,8 +235,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) |
> @@ -376,8 +375,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) |

2022-08-10 08:09:47

by Linjun Bao

[permalink] [raw]
Subject: Re: [PATCH] igc: Remove _I_PHY_ID check for i225 devices


On 2022/8/10 上午1:32, Tony Nguyen wrote:
> On 8/9/2022 6:35 AM, Linjun Bao wrote:
>> Source commit 7c496de538ee ("igc: Remove _I_PHY_ID checking"),
>> remove _I_PHY_ID check for i225 device, since i225 devices only
>> have one PHY vendor.
>
> What are you trying to do with this patch? You're referencing the original commit so you know it's committed, but it's not clear to me why you are re-sending it.
>
I'm new here, please correct me if I am doing things in the wrong way.


Yes this commit was committed to mainline about one year ago. But this commit has not been included into kernel 5.4 yet, and I encountered the probe failure when using alderlake-s with Ethernet adapter i225-LM. Since I could not directly apply the patch 7c496de538ee to kernel 5.4, so I generated this patch for kernel 5.4 usage.


Looks like sending a duplicated patch is not expected. Would you please advise what is the proper action when encountering such case? I would like this fix to be implemented into LTS kernel 5.4, I also wrote a ticket on https://bugzilla.kernel.org/show_bug.cgi?id=216261, but no response.


Regards

Joseph


> Thanks,
> Tony
>
>> Signed-off-by: Linjun Bao <[email protected]>
>> ---
>>   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 db289bcce21d..d66429eb14a5 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 9ba05d9aa8e0..b8297a63a7fd 100644
>> --- a/drivers/net/ethernet/intel/igc/igc_main.c
>> +++ b/drivers/net/ethernet/intel/igc/igc_main.c
>> @@ -2884,8 +2884,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 6156c76d765f..1be112ce6774 100644
>> --- a/drivers/net/ethernet/intel/igc/igc_phy.c
>> +++ b/drivers/net/ethernet/intel/igc/igc_phy.c
>> @@ -235,8 +235,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) |
>> @@ -376,8 +375,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) |

2022-08-10 09:21:07

by Linjun Bao

[permalink] [raw]
Subject: Re: [PATCH] igc: Remove _I_PHY_ID check for i225 devices


On 2022/8/10 上午1:32, Tony Nguyen wrote:
> On 8/9/2022 6:35 AM, Linjun Bao wrote:
>> Source commit 7c496de538ee ("igc: Remove _I_PHY_ID checking"),
>> remove _I_PHY_ID check for i225 device, since i225 devices only
>> have one PHY vendor.
>
> What are you trying to do with this patch? You're referencing the original commit so you know it's committed, but it's not clear to me why you are re-sending it.
>
I'm new here, please correct me if I am doing things in the wrong way.


Yes this commit was committed to mainline about one year ago. But this commit has not been included into kernel 5.4 yet, and I encountered the probe failure when using alderlake-s with Ethernet adapter i225-LM. Since I could not directly apply the patch 7c496de538ee to kernel 5.4, so I generated this patch for kernel 5.4 usage.


Looks like sending a duplicated patch is not expected. Would you please advise what is the proper action when encountering such case? I would like this fix to be implemented into LTS kernel 5.4, I also wrote a ticket on https://bugzilla.kernel.org/show_bug.cgi?id=216261, but no response.


Regards

Joseph


> Thanks,
> Tony
>
>> Signed-off-by: Linjun Bao <[email protected]>
>> ---
>>   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 db289bcce21d..d66429eb14a5 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 9ba05d9aa8e0..b8297a63a7fd 100644
>> --- a/drivers/net/ethernet/intel/igc/igc_main.c
>> +++ b/drivers/net/ethernet/intel/igc/igc_main.c
>> @@ -2884,8 +2884,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 6156c76d765f..1be112ce6774 100644
>> --- a/drivers/net/ethernet/intel/igc/igc_phy.c
>> +++ b/drivers/net/ethernet/intel/igc/igc_phy.c
>> @@ -235,8 +235,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) |
>> @@ -376,8 +375,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) |

2022-08-10 17:38:28

by Tony Nguyen

[permalink] [raw]
Subject: Re: [PATCH] igc: Remove _I_PHY_ID check for i225 devices

On 8/10/2022 1:22 AM, Linjun Bao wrote:
> Yes this commit was committed to mainline about one year ago. But this commit has not been included into kernel 5.4 yet, and I encountered the probe failure when using alderlake-s with Ethernet adapter i225-LM. Since I could not directly apply the patch 7c496de538ee to kernel 5.4, so I generated this patch for kernel 5.4 usage.
>
>
> Looks like sending a duplicated patch is not expected. Would you please advise what is the proper action when encountering such case?

Sounds like you want this backported to stable. Documentation on how to
do it is here [1]. Option 3 seems to be the correct choice.

Thanks,
Tony

[1]
https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#procedure-for-submitting-patches-to-the-stable-tree

2022-08-11 00:17:53

by Linjun Bao

[permalink] [raw]
Subject: Re: [PATCH] igc: Remove _I_PHY_ID check for i225 devices



On 2022/8/11 上午1:20, Tony Nguyen wrote:
> On 8/10/2022 1:22 AM, Linjun Bao wrote:
>> Yes this commit was committed to mainline about one year ago. But this commit has not been included into kernel 5.4 yet, and I encountered the probe failure when using alderlake-s with Ethernet adapter i225-LM. Since I could not directly apply the patch 7c496de538ee to kernel 5.4, so I generated this patch for kernel 5.4 usage.
>>
>>
>> Looks like sending a duplicated patch is not expected. Would you please advise what is the proper action when encountering such case?
>
> Sounds like you want this backported to stable. Documentation on how to do it is here [1]. Option 3 seems to be the correct choice.
>
Thank you Tony, you guide me the correct way, yeah I want this backported to stable kernel 5.4. And now I understand the get_maintainer.pl is for mainline development.

Regards
Joseph

> Thanks,
> Tony
>
> [1] https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#procedure-for-submitting-patches-to-the-stable-tree