On 12/05/14 20:58, Joachim Eastwood wrote: > Hello Tomi, > > There seems to be a mismatch between your panel-dpi code and DT docs. > > The docs state that enable-gpios is optinal but in panel-dpi.c you > have the following code > gpio = devm_gpiod_get(&pdev->dev, "enable"); > if (IS_ERR(gpio)) { > dev_err(&pdev->dev, "failed to parse enable gpio\n"); > return PTR_ERR(gpio); > } else { > gpiod_direction_output(gpio, 0); > ddata->enable_gpio = gpio; > } > > Making probing fail on my DT since I don't use enable-gpios with Would this work? Only compile tested. diff --git a/drivers/video/fbdev/omap2/displays-new/panel-dpi.c b/drivers/video/fbdev/omap2/displays-new/panel-dpi.c index dca6b10d1157..2ac38eaa4c8f 100644 --- a/drivers/video/fbdev/omap2/displays-new/panel-dpi.c +++ b/drivers/video/fbdev/omap2/displays-new/panel-dpi.c @@ -210,14 +210,19 @@ static int panel_dpi_probe_of(struct platform_device *pdev) struct gpio_desc *gpio; gpio = devm_gpiod_get(&pdev->dev, "enable"); + if (IS_ERR(gpio)) { - dev_err(&pdev->dev, "failed to parse enable gpio\n"); - return PTR_ERR(gpio); + r = PTR_ERR(gpio); + if (r == -EPROBE_DEFER || r != -ENOENT) + return r; + else + gpio = NULL; } else { gpiod_direction_output(gpio, 0); - ddata->enable_gpio = gpio; } + ddata->enable_gpio = gpio; + ddata->backlight_gpio = -ENOENT; r = of_get_display_timing(node, "panel-timing", &timing);
Attachment:
signature.asc
Description: OpenPGP digital signature