Re: [net-next PATCH v3 4/5] net: phy: Introduce fwnode_get_phy_id()

From: Andy Shevchenko
Date: Tue May 05 2020 - 10:21:19 EST


On Tue, May 5, 2020 at 4:29 PM Calvin Johnson
<calvin.johnson@xxxxxxxxxxx> wrote:
>
> Extract phy_id from compatible string. This will be used by
> fwnode_mdiobus_register_phy() to create phy device using the
> phy_id.

> +int fwnode_get_phy_id(struct fwnode_handle *fwnode, u32 *phy_id)
> +{
> + const char *cp;
> + unsigned int upper, lower;
> + int ret;
> +
> + ret = fwnode_property_read_string(fwnode, "compatible", &cp);
> + if (!ret) {

if (ret)
return ret;

will help a lot with readability of this.

> + if (sscanf(cp, "ethernet-phy-id%4x.%4x",
> + &upper, &lower) == 2) {

> + *phy_id = ((upper & 0xFFFF) << 16) | (lower & 0xFFFF);

How upper can be bigger than 0xfff? Same for lower.

> + return 0;
> + }
> + }
> + return -EINVAL;
> +}

--
With Best Regards,
Andy Shevchenko