Re: [net-next] net: ravb: Only advertise Rx/Tx timestamps if hardware supports it

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/8/24 8:45 PM, Niklas Söderlund wrote:
[...]

> Sorry for missing your comment earlier.

   I prolly shouldn't have stamped my R-b tag so easily before
asking a question. :-)

[...]

>>>> Recent work moving the reporting of Rx software timestamps to the core
>>>> [1] highlighted an issue where hardware time stamping where advertised

   s/where/was/.

>>>> for the platforms where it is not supported.
>>>>
>>>> Fix this by covering advertising support for hardware timestamps only if
>>>> the hardware supports it. Due to the Tx implementation in RAVB software
>>>> Tx timestamping is also only considered if the hardware supports
>>>> hardware timestamps. This should be addressed in future, but this fix
>>>> only reflects what the driver currently implements.
>>>>
>>>> 1. Commit 277901ee3a26 ("ravb: Remove setting of RX software timestamp")
>>>>
>>>> Fixes: 7e09a052dc4e ("ravb: Exclude gPTP feature support for RZ/G2L")
>>>> Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx>
>>> [...]
>>>
>>> Reviewed-by: Sergey Shtylyov <s.shtylyov@xxxxxx>
>>>
>>>> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
>>>> index d2a6518532f3..907af4651c55 100644
>>>> --- a/drivers/net/ethernet/renesas/ravb_main.c
>>>> +++ b/drivers/net/ethernet/renesas/ravb_main.c
>>>> @@ -1750,20 +1750,19 @@ static int ravb_get_ts_info(struct net_device *ndev,
>>>>  	struct ravb_private *priv = netdev_priv(ndev);
>>>>  	const struct ravb_hw_info *hw_info = priv->info;
>>>>  
>>>> -	info->so_timestamping =
>>>> -		SOF_TIMESTAMPING_TX_SOFTWARE |
>>>> -		SOF_TIMESTAMPING_TX_HARDWARE |
>>>> -		SOF_TIMESTAMPING_RX_HARDWARE |
>>>> -		SOF_TIMESTAMPING_RAW_HARDWARE;
>>>> -	info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON);
>>>> -	info->rx_filters =
>>>> -		(1 << HWTSTAMP_FILTER_NONE) |
>>>> -		(1 << HWTSTAMP_FILTER_PTP_V2_L2_EVENT) |
>>>> -		(1 << HWTSTAMP_FILTER_ALL);
>>>> -	if (hw_info->gptp || hw_info->ccc_gac)
>>>> +	if (hw_info->gptp || hw_info->ccc_gac) {
>>>> +		info->so_timestamping =
>>>> +			SOF_TIMESTAMPING_TX_SOFTWARE |
>>>> +			SOF_TIMESTAMPING_TX_HARDWARE |
>>>> +			SOF_TIMESTAMPING_RX_HARDWARE |
>>>> +			SOF_TIMESTAMPING_RAW_HARDWARE;
>>>> +		info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON);
>>>> +		info->rx_filters =
>>>> +			(1 << HWTSTAMP_FILTER_NONE) |
>>>> +			(1 << HWTSTAMP_FILTER_PTP_V2_L2_EVENT) |
>>>> +			(1 << HWTSTAMP_FILTER_ALL);
>>>>  		info->phc_index = ptp_clock_index(priv->ptp.clock);
>>>> -	else
>>>> -		info->phc_index = 0;
>>>
>>>    Is it OK to remove this line?
> 
> Yes it is OK, see the discussion that sparked this patch.
> 
> https://lore.kernel.org/netdev/20240829204429.GA3708622@xxxxxxxxxxxx/

   Ah, now I'm seeing where that 0 came from... :-)

>>    Also, how about inverting the *if* condition above (and doing an early
>> *return*) and avoiding reindenting the code below it?
> 
> I thought about that but opted not to do so. The same check is used all 
> over the code and I think it's value in keeping it similar. I will go 
> over all this code again as Gen4 will need more work to fully enable 
> gPTP. My hope is to abstract the check into something bore descriptive 

   s/bore/more/? :-)

> instead of sprinkling yet more conditions on to this one. Is it OK for 
> you to keep them aligned for now?

   Fine by me.

>> [...]

MBR, Sergey




[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux