Re: [PATCH net-next v2 4/4] net: dp83869: Add RGMII internal delay configuration

Dan Murphy
2020-05-23T21:40:34Z

Andrew

On 5/23/20 10:09 AM, Andrew Lunn wrote:
>>>> + dp83869->tx_id_delay = DP83869_RGMII_CLK_DELAY_INV;
>>>> + ret = of_property_read_u32(of_node, "tx-internal-delay-ps",
>>>> + &dp83869->tx_id_delay);
>>>> + if (!ret && dp83869->tx_id_delay > dp83869_internal_delay[delay_size]) {
>>>> + phydev_err(phydev,
>>>> + "tx-internal-delay value of %u out of range\n",
>>>> + dp83869->tx_id_delay);
>>>> + return -EINVAL;
>>>> + }
>>> This is the kind of validation that I would be expecting from the PHY
>>> library to do, in fact, since you use Device Tree standard property, I
>>> would expect you only need to pass the maximum delay value and some
>>> storage for your array of delays.
>> Actually the PHY library will return either the 0th index if the value is to
>> small or the max index if the value is to large
>>
>> based on the array passed in so maybe this check is unnecessary.
> Hi Dan
>
> I'm not sure the helper is implementing the best behaviour. Rounded to
> the nearest when within the supported range is O.K. But if the request
> is outside the range, i would report an error.

Hope this email does not bounce.

> Any why is your PHY special, in that is does care about out of range
> delays, when others using new the new core helper don't?

We are not rounding to nearest here.  Basically the helper works to find
the best match

If the delay passed in is less than or equal to the smallest delay then
return the smallest delay index

If the delay passed in is greater then the largest delay then return the
max delay index

Not sure what you mean about this PHY being special.  This helper is not
PHY specific.

After I think about this more I am thinking a helper may be over kill
here and the delay to setting should be done within the PHY driver itself

Dan

> Andrew