> +/** > + * 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. Andrew