On 14/05/14 00:26, Tony Lindgren wrote:

> +static int sharp_ls_probe_of(struct platform_device *pdev)
> +{
> +     struct panel_drv_data *ddata = platform_get_drvdata(pdev);
> +     struct device_node *node = pdev->dev.of_node;
> +     struct omap_dss_device *in;
> +
> +     ddata->vcc = devm_regulator_get(&pdev->dev, "envdd");
> +     if (IS_ERR(ddata->vcc)) {
> +             dev_err(&pdev->dev, "failed to get regulator\n");
> +             return PTR_ERR(ddata->vcc);
> +     }
> +
> +     /* lcd INI */
> +     ddata->ini_gpio = sharp_ls_get_gpio_of(&pdev->dev, 0, 0, "enable");
> +     if (PTR_ERR(ddata->ini_gpio) == -EPROBE_DEFER)
> +             return -EPROBE_DEFER;

Hmm, the GPIOs are optional, but shouldn't we react somehow to real
errors? I guess we should do something like:

ddata->ini_gpio = sharp_ls_get_gpio_of(&pdev->dev, 0, 0, "enable");
if (IS_ERR(ddata->ini_gpio) {
        int err = PTR_ERR(ddata->ini_gpio);
        if (err == -EPROBE_DEFER || err != -ENOENT)
                return err;
}

 Tomi


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to