Re: [PATCH net-next v3 2/4] net: phy: Add a helper to return the index for of the internal delay

From: Dan Murphy
Date: Wed May 27 2020 - 08:13:42 EST


Andrew

On 5/26/20 7:42 PM, Andrew Lunn wrote:
+/**
+ * phy_get_delay_index - returns the index of the internal delay
+ * @phydev: phy_device struct
+ * @delay_values: array of delays the PHY supports
+ * @size: the size of the delay array
+ * @int_delay: the internal delay to be looked up
+ * @descending: if the delay array is in descending order
+ *
+ * Returns the index within the array of internal delay passed in.
+ * Return errno if the delay is invalid or cannot be found.
+ */
+s32 phy_get_delay_index(struct phy_device *phydev, int *delay_values, int size,
+ int int_delay, bool descending)
+{
+ if (int_delay < 0)
+ return -EINVAL;
+
+ if (size <= 0)
+ return -EINVAL;
+
+ if (descending)
+ return phy_find_descending_delay(phydev, delay_values, size,
+ int_delay);
+
+ return phy_find_ascending_delay(phydev, delay_values, size, int_delay);
+}
+EXPORT_SYMBOL(phy_get_delay_index);
Do we really need this ascending vs descending? This array is not
coming from device tree of anything, it is a static list in the PHY
driver. I would just define it needs to be ascending and be done.

I was thinking about the constraints of having just an ascending array helper.

If there is a PHY out there that has a descending delay array then this function is not a helper.

Then the PHY driver now has to implement a descending search or extend out this helper to do the same.

I can just keep it ascending for now but this helper may need to be updated in the future to accommodate any PHYs with descending delay arrays.

Dan


Andrew