[PATCH V3 3/3] net: phy: Make phy_interface_is_rgmii a switch statement

Ramon Fried rfried.dev at gmail.com
Sun Apr 30 21:42:42 CEST 2023


On Sat, Apr 15, 2023 at 1:06 AM Nishanth Menon <nm at ti.com> wrote:
>
> Recent commit 75d28899e3e9 ("net: phy: Synchronize PHY interface modes
> with Linux") reordered the enum definitions. This exposed a problem
> in range checking functions to identify the interface type. Though
> this specific api wasn't impacted (all the RGMII definitions remained
> within range), this experience should be used to never to have to face
> this kind of challenge again.
>
> While it is possible for the phy drivers to use the enums directly,
> drivers such as dp83867, dp83869, marvell, micrel_ksz90x1 etc use this
> api.
>
> Reported-by: Tom Rini <trini at konsulko.com>
> Reviewed-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
> Reviewed-by: Marek Behún <kabel at kernel.org>
> Signed-off-by: Nishanth Menon <nm at ti.com>
> ---
> Changes since V2:
> * picked up reviewed-by
> * s/was'nt/wasn't/g in commit message, minor rewording.
> V2: https://lore.kernel.org/r/20230414042433.3436425-3-nm@ti.com
> V1: https://lore.kernel.org/r/20230413180713.2922524-3-nm@ti.com
>  include/phy.h | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/include/phy.h b/include/phy.h
> index cb87d1d4fc95..247223d92be7 100644
> --- a/include/phy.h
> +++ b/include/phy.h
> @@ -361,8 +361,15 @@ int get_phy_id(struct mii_dev *bus, int addr, int devad, u32 *phy_id);
>   */
>  static inline bool phy_interface_is_rgmii(struct phy_device *phydev)
>  {
> -       return phydev->interface >= PHY_INTERFACE_MODE_RGMII &&
> -               phydev->interface <= PHY_INTERFACE_MODE_RGMII_TXID;
> +       switch (phydev->interface) {
> +       case PHY_INTERFACE_MODE_RGMII:
> +       case PHY_INTERFACE_MODE_RGMII_ID:
> +       case PHY_INTERFACE_MODE_RGMII_RXID:
> +       case PHY_INTERFACE_MODE_RGMII_TXID:
> +               return 1;
> +       default:
> +               return 0;
> +       }
>  }
>
>  bool phy_interface_is_ncsi(void);
> --
> 2.40.0
>
Reviewed-by: Ramon Fried <rfried.dev at gmail.com>


More information about the U-Boot mailing list