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

From: Dan Murphy
Date: Sat May 23 2020 - 17:43:37 EST


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