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