[PATCH net-next v3 09/10] net: ti: icssg-prueth: Modify common functions for SR1.0

Diogo Ivo diogo.ivo at siemens.com
Tue Feb 27 04:42:55 PST 2024


On 2/26/24 17:33, Roger Quadros wrote:
> 
> 
> On 21/02/2024 17:24, Diogo Ivo wrote:
>> Some parts of the logic differ only slightly between Silicon Revisions.
>> In these cases add the bits that differ to a common function that
>> executes those bits conditionally based on the Silicon Revision.
>>
>> Based on the work of Roger Quadros, Vignesh Raghavendra and
>> Grygorii Strashko in TI's 5.10 SDK [1].
>>
>> [1]: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.ti.com%2Fcgit%2Fti-linux-kernel%2Fti-linux-kernel%2Ftree%2F%3Fh%3Dti-linux-5.10.y&data=05%7C02%7Cdiogo.ivo%40siemens.com%7C44253ecc112a4f939f5e08dc36f11754%7C38ae3bcd95794fd4addab42e1495d55a%7C1%7C0%7C638445656302550240%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7C&sdata=kXkC6HubTh0yeftDSzmIy47tJmlnISQjMbWoOqvEAx0%3D&reserved=0
>>
>> Co-developed-by: Jan Kiszka <jan.kiszka at siemens.com>
>> Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
>> Signed-off-by: Diogo Ivo <diogo.ivo at siemens.com>
>> ---
>>   drivers/net/ethernet/ti/icssg/icssg_common.c | 46 +++++++++++++++-----
>>   drivers/net/ethernet/ti/icssg/icssg_prueth.c |  4 +-
>>   drivers/net/ethernet/ti/icssg/icssg_prueth.h |  2 +-
>>   3 files changed, 38 insertions(+), 14 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/ti/icssg/icssg_common.c b/drivers/net/ethernet/ti/icssg/icssg_common.c

...

>> -	emac->rx_flow_id_base = k3_udma_glue_rx_get_flow_id_base(rx_chn->rx_chn);
>> -	netdev_dbg(ndev, "flow id base = %d\n", emac->rx_flow_id_base);
>> +	flow_id_base = k3_udma_glue_rx_get_flow_id_base(rx_chn->rx_chn);
>> +	if (!strcmp(name, "rxmgm")) {
> 
> if (emac->is_sr1 && !strcmp(name, "rxmgm")) ?

Since technically the DT should only contain "rxmgm" for SR1.0 I did not
add the emac->is_sr1 check but it can't hurt to be safer so I'll add it.

...

>>   	if (eth0_node) {
>> -		ret = prueth_get_cores(prueth, ICSS_SLICE0);
>> +		ret = prueth_get_cores(prueth, ICSS_SLICE0, true);
> 
> Isn't this SR2.0 device driver? so is_sr1 parameter should be false?
> 
>>   		if (ret)
>>   			goto put_cores;
>>   	}
>>   
>>   	if (eth1_node) {
>> -		ret = prueth_get_cores(prueth, ICSS_SLICE1);
>> +		ret = prueth_get_cores(prueth, ICSS_SLICE1, true);
> 
> here too?

Yes, you are correct, thank you for catching that.

Best regards,
Diogo



More information about the linux-arm-kernel mailing list