diff mbox series

[net-next,v2,1/7] net: ti: icssg-prueth: Enable IEP1

Message ID 20240813074233.2473876-2-danishanwar@ti.com (mailing list archive)
State New, archived
Headers show
Series Introduce HSR offload support for ICSSG | expand

Commit Message

MD Danish Anwar Aug. 13, 2024, 7:42 a.m. UTC
IEP1 is needed by firmware to enable FDB learning and FDB ageing.
Always enable IEP1

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
---
 drivers/net/ethernet/ti/icssg/icssg_prueth.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

Comments

Roger Quadros Aug. 21, 2024, 11:27 a.m. UTC | #1
Hi,

On 13/08/2024 10:42, MD Danish Anwar wrote:
> IEP1 is needed by firmware to enable FDB learning and FDB ageing.

Required by which firmware?

Does dual-emac firmware need this?

> Always enable IEP1
> 
> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
> ---
>  drivers/net/ethernet/ti/icssg/icssg_prueth.c | 14 ++++----------
>  1 file changed, 4 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/net/ethernet/ti/icssg/icssg_prueth.c b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
> index 53a3e44b99a2..613bd8de6eb8 100644
> --- a/drivers/net/ethernet/ti/icssg/icssg_prueth.c
> +++ b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
> @@ -1256,12 +1256,8 @@ static int prueth_probe(struct platform_device *pdev)
>  		goto put_iep0;
>  	}
>  
> -	if (prueth->pdata.quirk_10m_link_issue) {
> -		/* Enable IEP1 for FW in 64bit mode as W/A for 10M FD link detect issue under TX
> -		 * traffic.
> -		 */
> -		icss_iep_init_fw(prueth->iep1);
> -	}
> +	/* Enable IEP1 for FW as it's needed by FW for FDB Learning and FDB ageing */
> +	icss_iep_init_fw(prueth->iep1);
>  
>  	/* setup netdev interfaces */
>  	if (eth0_node) {
> @@ -1366,8 +1362,7 @@ static int prueth_probe(struct platform_device *pdev)
>  	}
>  
>  exit_iep:
> -	if (prueth->pdata.quirk_10m_link_issue)
> -		icss_iep_exit_fw(prueth->iep1);
> +	icss_iep_exit_fw(prueth->iep1);
>  	icss_iep_put(prueth->iep1);
>  
>  put_iep0:
> @@ -1424,8 +1419,7 @@ static void prueth_remove(struct platform_device *pdev)
>  		prueth_netdev_exit(prueth, eth_node);
>  	}
>  
> -	if (prueth->pdata.quirk_10m_link_issue)
> -		icss_iep_exit_fw(prueth->iep1);
> +	icss_iep_exit_fw(prueth->iep1);
>  
>  	icss_iep_put(prueth->iep1);
>  	icss_iep_put(prueth->iep0);
Anwar, Md Danish Aug. 21, 2024, 11:33 a.m. UTC | #2
Hi Roger,

On 8/21/2024 4:57 PM, Roger Quadros wrote:
> Hi,
> 
> On 13/08/2024 10:42, MD Danish Anwar wrote:
>> IEP1 is needed by firmware to enable FDB learning and FDB ageing.
> 
> Required by which firmware?
> 

IEP1 is needed by all ICSSG firmwares (Dual EMAC / Switch / HSR)

> Does dual-emac firmware need this?
> 

Yes, Dual EMAC firmware needs IEP1 to enabled.

>> Always enable IEP1
>>
>> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
>> ---
>>  drivers/net/ethernet/ti/icssg/icssg_prueth.c | 14 ++++----------
>>  1 file changed, 4 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/ti/icssg/icssg_prueth.c b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
>> index 53a3e44b99a2..613bd8de6eb8 100644
>> --- a/drivers/net/ethernet/ti/icssg/icssg_prueth.c
>> +++ b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
>> @@ -1256,12 +1256,8 @@ static int prueth_probe(struct platform_device *pdev)
>>  		goto put_iep0;
>>  	}
>>  
>> -	if (prueth->pdata.quirk_10m_link_issue) {
>> -		/* Enable IEP1 for FW in 64bit mode as W/A for 10M FD link detect issue under TX
>> -		 * traffic.
>> -		 */
>> -		icss_iep_init_fw(prueth->iep1);
>> -	}
>> +	/* Enable IEP1 for FW as it's needed by FW for FDB Learning and FDB ageing */
>> +	icss_iep_init_fw(prueth->iep1);
>>  
>>  	/* setup netdev interfaces */
>>  	if (eth0_node) {
>> @@ -1366,8 +1362,7 @@ static int prueth_probe(struct platform_device *pdev)
>>  	}
>>  
>>  exit_iep:
>> -	if (prueth->pdata.quirk_10m_link_issue)
>> -		icss_iep_exit_fw(prueth->iep1);
>> +	icss_iep_exit_fw(prueth->iep1);
>>  	icss_iep_put(prueth->iep1);
>>  
>>  put_iep0:
>> @@ -1424,8 +1419,7 @@ static void prueth_remove(struct platform_device *pdev)
>>  		prueth_netdev_exit(prueth, eth_node);
>>  	}
>>  
>> -	if (prueth->pdata.quirk_10m_link_issue)
>> -		icss_iep_exit_fw(prueth->iep1);
>> +	icss_iep_exit_fw(prueth->iep1);
>>  
>>  	icss_iep_put(prueth->iep1);
>>  	icss_iep_put(prueth->iep0);
>
Roger Quadros Aug. 21, 2024, 11:53 a.m. UTC | #3
On 21/08/2024 14:33, Anwar, Md Danish wrote:
> Hi Roger,
> 
> On 8/21/2024 4:57 PM, Roger Quadros wrote:
>> Hi,
>>
>> On 13/08/2024 10:42, MD Danish Anwar wrote:
>>> IEP1 is needed by firmware to enable FDB learning and FDB ageing.
>>
>> Required by which firmware?
>>
> 
> IEP1 is needed by all ICSSG firmwares (Dual EMAC / Switch / HSR)
> 
>> Does dual-emac firmware need this?
>>
> 
> Yes, Dual EMAC firmware needs IEP1 to enabled.

Then this need to be a bug fix?
What is the impact if IEP1 is not enabled for dual emac.

> 
>>> Always enable IEP1
>>>
>>> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
>>> ---
MD Danish Anwar Aug. 22, 2024, 5:52 a.m. UTC | #4
On 21/08/24 5:23 pm, Roger Quadros wrote:
> 
> 
> On 21/08/2024 14:33, Anwar, Md Danish wrote:
>> Hi Roger,
>>
>> On 8/21/2024 4:57 PM, Roger Quadros wrote:
>>> Hi,
>>>
>>> On 13/08/2024 10:42, MD Danish Anwar wrote:
>>>> IEP1 is needed by firmware to enable FDB learning and FDB ageing.
>>>
>>> Required by which firmware?
>>>
>>
>> IEP1 is needed by all ICSSG firmwares (Dual EMAC / Switch / HSR)
>>
>>> Does dual-emac firmware need this?
>>>
>>
>> Yes, Dual EMAC firmware needs IEP1 to enabled.
> 
> Then this need to be a bug fix?

Correct, this is in fact a bug. But IEP1 is also needed by HSR firmware
so I thought of keeping this patch with HSR series. As HSR will be
completely broken if IEP1 is not enabled.

I didn't want to post two patches one as bug fix to net and one part of
HSR to net-next thus I thought of keeping this patch in this series only.

> What is the impact if IEP1 is not enabled for dual emac.
> 

Without IEP1 enabled, Crash is seen on AM64x 10M link when connecting /
disconnecting multiple times. On AM65x IEP1 was always enabled because
`prueth->pdata.quirk_10m_link_issue` was true. FDB learning and FDB
ageing will also get impacted if IEP1 is not enabled.

>>
>>>> Always enable IEP1
>>>>
>>>> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
>>>> ---
>
Roger Quadros Aug. 22, 2024, 11:27 a.m. UTC | #5
On 22/08/2024 08:52, MD Danish Anwar wrote:
> 
> 
> On 21/08/24 5:23 pm, Roger Quadros wrote:
>>
>>
>> On 21/08/2024 14:33, Anwar, Md Danish wrote:
>>> Hi Roger,
>>>
>>> On 8/21/2024 4:57 PM, Roger Quadros wrote:
>>>> Hi,
>>>>
>>>> On 13/08/2024 10:42, MD Danish Anwar wrote:
>>>>> IEP1 is needed by firmware to enable FDB learning and FDB ageing.
>>>>
>>>> Required by which firmware?
>>>>
>>>
>>> IEP1 is needed by all ICSSG firmwares (Dual EMAC / Switch / HSR)
>>>
>>>> Does dual-emac firmware need this?
>>>>
>>>
>>> Yes, Dual EMAC firmware needs IEP1 to enabled.
>>
>> Then this need to be a bug fix?
> 
> Correct, this is in fact a bug. But IEP1 is also needed by HSR firmware
> so I thought of keeping this patch with HSR series. As HSR will be
> completely broken if IEP1 is not enabled.
> 
> I didn't want to post two patches one as bug fix to net and one part of
> HSR to net-next thus I thought of keeping this patch in this series only.

Bug fixes need to be posted earlier as they can get accepted sooner and
even back-ported to stable. You also need to add the Fixes tag.

> 
>> What is the impact if IEP1 is not enabled for dual emac.
>>
> 
> Without IEP1 enabled, Crash is seen on AM64x 10M link when connecting /
> disconnecting multiple times. On AM65x IEP1 was always enabled because

In that ase you need to enable quirk_10m_link_issue for AM64x platform.
I understand that IEP1 is not required for 100M/1G.

> `prueth->pdata.quirk_10m_link_issue` was true. FDB learning and FDB
> ageing will also get impacted if IEP1 is not enabled.

Is FDB learning and ageing involved in dual Emac mode?

> 
>>>
>>>>> Always enable IEP1
>>>>>
>>>>> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
>>>>> ---
>>
>
Dan Carpenter Aug. 22, 2024, 11:32 a.m. UTC | #6
On Thu, Aug 22, 2024 at 11:22:44AM +0530, MD Danish Anwar wrote:
> 
> 
> On 21/08/24 5:23 pm, Roger Quadros wrote:
> > 
> > 
> > On 21/08/2024 14:33, Anwar, Md Danish wrote:
> >> Hi Roger,
> >>
> >> On 8/21/2024 4:57 PM, Roger Quadros wrote:
> >>> Hi,
> >>>
> >>> On 13/08/2024 10:42, MD Danish Anwar wrote:
> >>>> IEP1 is needed by firmware to enable FDB learning and FDB ageing.
> >>>
> >>> Required by which firmware?
> >>>
> >>
> >> IEP1 is needed by all ICSSG firmwares (Dual EMAC / Switch / HSR)
> >>
> >>> Does dual-emac firmware need this?
> >>>
> >>
> >> Yes, Dual EMAC firmware needs IEP1 to enabled.
> > 
> > Then this need to be a bug fix?
> 
> Correct, this is in fact a bug. But IEP1 is also needed by HSR firmware
> so I thought of keeping this patch with HSR series. As HSR will be
> completely broken if IEP1 is not enabled.
> 
> I didn't want to post two patches one as bug fix to net and one part of
> HSR to net-next thus I thought of keeping this patch in this series only.
> 
> > What is the impact if IEP1 is not enabled for dual emac.
> > 
> 
> Without IEP1 enabled, Crash is seen on AM64x 10M link when connecting /
> disconnecting multiple times. On AM65x IEP1 was always enabled because
> `prueth->pdata.quirk_10m_link_issue` was true. FDB learning and FDB
> ageing will also get impacted if IEP1 is not enabled.
> 

Please could you add the information mentioned in this email into the commit
message?

regards,
dan carpenter
Anwar, Md Danish Aug. 22, 2024, 12:12 p.m. UTC | #7
On 8/22/2024 4:57 PM, Roger Quadros wrote:
> 
> 
> On 22/08/2024 08:52, MD Danish Anwar wrote:
>>
>>
>> On 21/08/24 5:23 pm, Roger Quadros wrote:
>>>
>>>
>>> On 21/08/2024 14:33, Anwar, Md Danish wrote:
>>>> Hi Roger,
>>>>
>>>> On 8/21/2024 4:57 PM, Roger Quadros wrote:
>>>>> Hi,
>>>>>
>>>>> On 13/08/2024 10:42, MD Danish Anwar wrote:
>>>>>> IEP1 is needed by firmware to enable FDB learning and FDB ageing.
>>>>>
>>>>> Required by which firmware?
>>>>>
>>>>
>>>> IEP1 is needed by all ICSSG firmwares (Dual EMAC / Switch / HSR)
>>>>
>>>>> Does dual-emac firmware need this?
>>>>>
>>>>
>>>> Yes, Dual EMAC firmware needs IEP1 to enabled.
>>>
>>> Then this need to be a bug fix?
>>
>> Correct, this is in fact a bug. But IEP1 is also needed by HSR firmware
>> so I thought of keeping this patch with HSR series. As HSR will be
>> completely broken if IEP1 is not enabled.
>>
>> I didn't want to post two patches one as bug fix to net and one part of
>> HSR to net-next thus I thought of keeping this patch in this series only.
> 
> Bug fixes need to be posted earlier as they can get accepted sooner and
> even back-ported to stable. You also need to add the Fixes tag.
> 

Yes I understand that. The problem was I will need to send the patch
twice once as bug fix to net/main, once as part of this series to
net-next/main and drop it from this series once the patch gets merged to
net and is synced to net-next. Since I cannot post this series without
this patch as the HSR feature will get broken.

Or I need to post this to net/main and wait for it to be part of
net-next and then only I can re-post this series. So to avoid all these
I thought of only posting it as part of this series. This is not a major
bug and it will be okay from feature perspective if this bug gets merged
via net-next.

What do you suggest now? Should I post the bug fix to net/main and post
this seires without this patch or wait for the bug fix to sync then only
post this series?

>>
>>> What is the impact if IEP1 is not enabled for dual emac.
>>>
>>
>> Without IEP1 enabled, Crash is seen on AM64x 10M link when connecting /
>> disconnecting multiple times. On AM65x IEP1 was always enabled because
> 
> In that ase you need to enable quirk_10m_link_issue for AM64x platform.

Correct. But since for all ICSSG supported platform quirk_10m_link_issue
 needs to be enabled. Which in turn will enable IEP1. I think it's
better enable IEP1 directly without any condition.

IEP1 is also needed for Switch and HSR firmwares so I thought directly
enabling it instead of enabling it inside the if check
`prueth->pdata.quirk_10m_link_issue` would be better idea.

What do you suggest here? Will setting `quirk_10m_link_issue` as true
for AM64x will be a better approach or always enabling IEP1 without any
if check will be better approach for this?

> I understand that IEP1 is not required for 100M/1G.
> 
>> `prueth->pdata.quirk_10m_link_issue` was true. FDB learning and FDB
>> ageing will also get impacted if IEP1 is not enabled.
> 
> Is FDB learning and ageing involved in dual Emac mode?
> 

Yes FDB learning and ageing is involved in dual EMAC mode as well.

>>
>>>>
>>>>>> Always enable IEP1
>>>>>>
>>>>>> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
>>>>>> ---
>>>
>>
>
Anwar, Md Danish Aug. 22, 2024, 12:13 p.m. UTC | #8
On 8/22/2024 5:02 PM, Dan Carpenter wrote:
> On Thu, Aug 22, 2024 at 11:22:44AM +0530, MD Danish Anwar wrote:
>>
>>
>> On 21/08/24 5:23 pm, Roger Quadros wrote:
>>>
>>>
>>> On 21/08/2024 14:33, Anwar, Md Danish wrote:
>>>> Hi Roger,
>>>>
>>>> On 8/21/2024 4:57 PM, Roger Quadros wrote:
>>>>> Hi,
>>>>>
>>>>> On 13/08/2024 10:42, MD Danish Anwar wrote:
>>>>>> IEP1 is needed by firmware to enable FDB learning and FDB ageing.
>>>>>
>>>>> Required by which firmware?
>>>>>
>>>>
>>>> IEP1 is needed by all ICSSG firmwares (Dual EMAC / Switch / HSR)
>>>>
>>>>> Does dual-emac firmware need this?
>>>>>
>>>>
>>>> Yes, Dual EMAC firmware needs IEP1 to enabled.
>>>
>>> Then this need to be a bug fix?
>>
>> Correct, this is in fact a bug. But IEP1 is also needed by HSR firmware
>> so I thought of keeping this patch with HSR series. As HSR will be
>> completely broken if IEP1 is not enabled.
>>
>> I didn't want to post two patches one as bug fix to net and one part of
>> HSR to net-next thus I thought of keeping this patch in this series only.
>>
>>> What is the impact if IEP1 is not enabled for dual emac.
>>>
>>
>> Without IEP1 enabled, Crash is seen on AM64x 10M link when connecting /
>> disconnecting multiple times. On AM65x IEP1 was always enabled because
>> `prueth->pdata.quirk_10m_link_issue` was true. FDB learning and FDB
>> ageing will also get impacted if IEP1 is not enabled.
>>
> 
> Please could you add the information mentioned in this email into the commit
> message?

Sure Dan.

> 
> regards,
> dan carpenter
>
Roger Quadros Aug. 23, 2024, 11:30 a.m. UTC | #9
Hi,

On 22/08/2024 15:12, Anwar, Md Danish wrote:
> 
> 
> On 8/22/2024 4:57 PM, Roger Quadros wrote:
>>
>>
>> On 22/08/2024 08:52, MD Danish Anwar wrote:
>>>
>>>
>>> On 21/08/24 5:23 pm, Roger Quadros wrote:
>>>>
>>>>
>>>> On 21/08/2024 14:33, Anwar, Md Danish wrote:
>>>>> Hi Roger,
>>>>>
>>>>> On 8/21/2024 4:57 PM, Roger Quadros wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On 13/08/2024 10:42, MD Danish Anwar wrote:
>>>>>>> IEP1 is needed by firmware to enable FDB learning and FDB ageing.
>>>>>>
>>>>>> Required by which firmware?
>>>>>>
>>>>>
>>>>> IEP1 is needed by all ICSSG firmwares (Dual EMAC / Switch / HSR)
>>>>>
>>>>>> Does dual-emac firmware need this?
>>>>>>
>>>>>
>>>>> Yes, Dual EMAC firmware needs IEP1 to enabled.
>>>>
>>>> Then this need to be a bug fix?
>>>
>>> Correct, this is in fact a bug. But IEP1 is also needed by HSR firmware
>>> so I thought of keeping this patch with HSR series. As HSR will be
>>> completely broken if IEP1 is not enabled.
>>>
>>> I didn't want to post two patches one as bug fix to net and one part of
>>> HSR to net-next thus I thought of keeping this patch in this series only.
>>
>> Bug fixes need to be posted earlier as they can get accepted sooner and
>> even back-ported to stable. You also need to add the Fixes tag.
>>
> 
> Yes I understand that. The problem was I will need to send the patch
> twice once as bug fix to net/main, once as part of this series to
> net-next/main and drop it from this series once the patch gets merged to
> net and is synced to net-next. Since I cannot post this series without
> this patch as the HSR feature will get broken.

HSR feature is not yet there so nothing will be broken. You can mention
in cover letter that a separate patch is required for functionality.

> 
> Or I need to post this to net/main and wait for it to be part of
> net-next and then only I can re-post this series. So to avoid all these
> I thought of only posting it as part of this series. This is not a major
> bug and it will be okay from feature perspective if this bug gets merged
> via net-next.
> 

If there is no build dependency I don't see why you need to wait.

> What do you suggest now? Should I post the bug fix to net/main and post
> this seires without this patch or wait for the bug fix to sync then only
> post this series?
> 

please see below.

>>>
>>>> What is the impact if IEP1 is not enabled for dual emac.
>>>>
>>>
>>> Without IEP1 enabled, Crash is seen on AM64x 10M link when connecting /
>>> disconnecting multiple times. On AM65x IEP1 was always enabled because
>>
>> In that ase you need to enable quirk_10m_link_issue for AM64x platform.
> 
> Correct. But since for all ICSSG supported platform quirk_10m_link_issue
>  needs to be enabled. Which in turn will enable IEP1. I think it's
> better enable IEP1 directly without any condition.
> 
> IEP1 is also needed for Switch and HSR firmwares so I thought directly
> enabling it instead of enabling it inside the if check
> `prueth->pdata.quirk_10m_link_issue` would be better idea.
> 
> What do you suggest here? Will setting `quirk_10m_link_issue` as true
> for AM64x will be a better approach or always enabling IEP1 without any
> if check will be better approach for this?

I would suggest that you first send a bug fix patch for AM64x which sets
quirk_10m_link_issue for AM64x. This should make it into the next -rc
and eventually stable.

Then in your HSR series, you can decide if you want to conditionally
enable it for HSR/switch mode or permanently enable it regardless.

> 
>> I understand that IEP1 is not required for 100M/1G.
>>
>>> `prueth->pdata.quirk_10m_link_issue` was true. FDB learning and FDB
>>> ageing will also get impacted if IEP1 is not enabled.
>>
>> Is FDB learning and ageing involved in dual Emac mode?
>>
> 
> Yes FDB learning and ageing is involved in dual EMAC mode as well.
> 
>>>
>>>>>
>>>>>>> Always enable IEP1
>>>>>>>
>>>>>>> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
>>>>>>> ---
>>>>
>>>
>>
>
MD Danish Anwar Aug. 23, 2024, 11:41 a.m. UTC | #10
On 23/08/24 5:00 pm, Roger Quadros wrote:
> Hi,
> 
> On 22/08/2024 15:12, Anwar, Md Danish wrote:
>>
>>
>> On 8/22/2024 4:57 PM, Roger Quadros wrote:
>>>
>>>
>>> On 22/08/2024 08:52, MD Danish Anwar wrote:
>>>>
>>>>
>>>> On 21/08/24 5:23 pm, Roger Quadros wrote:
>>>>>
>>>>>
>>>>> On 21/08/2024 14:33, Anwar, Md Danish wrote:
>>>>>> Hi Roger,
>>>>>>
>>>>>> On 8/21/2024 4:57 PM, Roger Quadros wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> On 13/08/2024 10:42, MD Danish Anwar wrote:
>>>>>>>> IEP1 is needed by firmware to enable FDB learning and FDB ageing.
>>>>>>>
>>>>>>> Required by which firmware?
>>>>>>>
>>>>>>
>>>>>> IEP1 is needed by all ICSSG firmwares (Dual EMAC / Switch / HSR)
>>>>>>
>>>>>>> Does dual-emac firmware need this?
>>>>>>>
>>>>>>
>>>>>> Yes, Dual EMAC firmware needs IEP1 to enabled.
>>>>>
>>>>> Then this need to be a bug fix?
>>>>
>>>> Correct, this is in fact a bug. But IEP1 is also needed by HSR firmware
>>>> so I thought of keeping this patch with HSR series. As HSR will be
>>>> completely broken if IEP1 is not enabled.
>>>>
>>>> I didn't want to post two patches one as bug fix to net and one part of
>>>> HSR to net-next thus I thought of keeping this patch in this series only.
>>>
>>> Bug fixes need to be posted earlier as they can get accepted sooner and
>>> even back-ported to stable. You also need to add the Fixes tag.
>>>
>>
>> Yes I understand that. The problem was I will need to send the patch
>> twice once as bug fix to net/main, once as part of this series to
>> net-next/main and drop it from this series once the patch gets merged to
>> net and is synced to net-next. Since I cannot post this series without
>> this patch as the HSR feature will get broken.
> 
> HSR feature is not yet there so nothing will be broken. You can mention
> in cover letter that a separate patch is required for functionality.
> 
>>
>> Or I need to post this to net/main and wait for it to be part of
>> net-next and then only I can re-post this series. So to avoid all these
>> I thought of only posting it as part of this series. This is not a major
>> bug and it will be okay from feature perspective if this bug gets merged
>> via net-next.
>>
> 
> If there is no build dependency I don't see why you need to wait.
> 
>> What do you suggest now? Should I post the bug fix to net/main and post
>> this seires without this patch or wait for the bug fix to sync then only
>> post this series?
>>
> 
> please see below.
> 
>>>>
>>>>> What is the impact if IEP1 is not enabled for dual emac.
>>>>>
>>>>
>>>> Without IEP1 enabled, Crash is seen on AM64x 10M link when connecting /
>>>> disconnecting multiple times. On AM65x IEP1 was always enabled because
>>>
>>> In that ase you need to enable quirk_10m_link_issue for AM64x platform.
>>
>> Correct. But since for all ICSSG supported platform quirk_10m_link_issue
>>  needs to be enabled. Which in turn will enable IEP1. I think it's
>> better enable IEP1 directly without any condition.
>>
>> IEP1 is also needed for Switch and HSR firmwares so I thought directly
>> enabling it instead of enabling it inside the if check
>> `prueth->pdata.quirk_10m_link_issue` would be better idea.
>>
>> What do you suggest here? Will setting `quirk_10m_link_issue` as true
>> for AM64x will be a better approach or always enabling IEP1 without any
>> if check will be better approach for this?
> 
> I would suggest that you first send a bug fix patch for AM64x which sets
> quirk_10m_link_issue for AM64x. This should make it into the next -rc
> and eventually stable.
> 

OK Roger, I will send out the fix patch.

> Then in your HSR series, you can decide if you want to conditionally
> enable it for HSR/switch mode or permanently enable it regardless.
> 
>>
>>> I understand that IEP1 is not required for 100M/1G.
>>>
>>>> `prueth->pdata.quirk_10m_link_issue` was true. FDB learning and FDB
>>>> ageing will also get impacted if IEP1 is not enabled.
>>>
>>> Is FDB learning and ageing involved in dual Emac mode?
>>>
>>
>> Yes FDB learning and ageing is involved in dual EMAC mode as well.
>>
>>>>
>>>>>>
>>>>>>>> Always enable IEP1
>>>>>>>>
>>>>>>>> Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
>>>>>>>> ---
>>>>>
>>>>
>>>
>>
>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/ti/icssg/icssg_prueth.c b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
index 53a3e44b99a2..613bd8de6eb8 100644
--- a/drivers/net/ethernet/ti/icssg/icssg_prueth.c
+++ b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
@@ -1256,12 +1256,8 @@  static int prueth_probe(struct platform_device *pdev)
 		goto put_iep0;
 	}
 
-	if (prueth->pdata.quirk_10m_link_issue) {
-		/* Enable IEP1 for FW in 64bit mode as W/A for 10M FD link detect issue under TX
-		 * traffic.
-		 */
-		icss_iep_init_fw(prueth->iep1);
-	}
+	/* Enable IEP1 for FW as it's needed by FW for FDB Learning and FDB ageing */
+	icss_iep_init_fw(prueth->iep1);
 
 	/* setup netdev interfaces */
 	if (eth0_node) {
@@ -1366,8 +1362,7 @@  static int prueth_probe(struct platform_device *pdev)
 	}
 
 exit_iep:
-	if (prueth->pdata.quirk_10m_link_issue)
-		icss_iep_exit_fw(prueth->iep1);
+	icss_iep_exit_fw(prueth->iep1);
 	icss_iep_put(prueth->iep1);
 
 put_iep0:
@@ -1424,8 +1419,7 @@  static void prueth_remove(struct platform_device *pdev)
 		prueth_netdev_exit(prueth, eth_node);
 	}
 
-	if (prueth->pdata.quirk_10m_link_issue)
-		icss_iep_exit_fw(prueth->iep1);
+	icss_iep_exit_fw(prueth->iep1);
 
 	icss_iep_put(prueth->iep1);
 	icss_iep_put(prueth->iep0);