On 16.05.2019 06:24, Anson Huang wrote:
> Add i.MX SCU SoC info driver to support i.MX8QXP SoC, introduce
> driver dependency into Kconfig as CONFIG_IMX_SCU must be
> selected to support i.MX SCU SoC driver, also need to use
> platform driver model to make sure IMX_SCU driver is probed
> before i.MX SCU SoC driver.

> +#define imx_scu_revision(soc_rev) \
> +     soc_rev ? \
> +     kasprintf(GFP_KERNEL, "%d.%d", (soc_rev >> 4) & 0xf,  soc_rev & 0xf) : \
> +     "unknown"

> +     id = of_match_node(imx_scu_soc_match, pdev->dev.of_node);
> +     data = id->data;
> +     if (data) {
> +             soc_dev_attr->soc_id = data->name;
> +             if (data->soc_revision)
> +                     soc_rev = data->soc_revision();
> +     }
> +
> +     soc_dev_attr->revision = imx_scu_revision(soc_rev);
> +     if (!soc_dev_attr->revision)
> +             return -ENODEV;

The imx_scu_revision macro returns either kasprintf or "unknown", never 
NULL. So it's not clear what this return -ENODEV does exactly.

It makes more sense to return -ENODEV if get_soc_revision fails, so 
maybe check "soc_rev != 0" instead?

If you really want to check the kasprintf result then you should return 
-ENOMEM for it. It would be clearer if you dropped the imx_scu_revision 
revision macro and open-coded instead.

--
Regards,
Leonard

Reply via email to