> +int __phy_speed_down(struct phy_device *phydev)
> +{
> + int min_common_speed = phy_resolve_min_speed(phydev, true);
> +
> + if (min_common_speed == SPEED_UNKNOWN)
> + return -EINVAL;
> +
> + return __set_linkmode_max_speed(phydev, min_common_speed,
> +
__phy_speed_down provides most of the functionality for phy_speed_down.
It makes use of new helper phy_resolve_min_speed that is based on the
sorting of the settings[] array.
In certain cases it may be helpful to be able to exclude legacy half
duplex modes, therefore prepare phy_resolve_min_speed()