|
@@ -297,14 +297,15 @@ static int pwm_backlight_probe(struct platform_device *pdev)
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
- * If the GPIO is configured as input, change the direction to output
|
|
|
- * and set the GPIO as active.
|
|
|
+ * If the GPIO is not known to be already configured as output, that
|
|
|
+ * is, if gpiod_get_direction returns either GPIOF_DIR_IN or -EINVAL,
|
|
|
+ * change the direction to output and set the GPIO as active.
|
|
|
* Do not force the GPIO to active when it was already output as it
|
|
|
* could cause backlight flickering or we would enable the backlight too
|
|
|
* early. Leave the decision of the initial backlight state for later.
|
|
|
*/
|
|
|
if (pb->enable_gpio &&
|
|
|
- gpiod_get_direction(pb->enable_gpio) == GPIOF_DIR_IN)
|
|
|
+ gpiod_get_direction(pb->enable_gpio) != GPIOF_DIR_OUT)
|
|
|
gpiod_direction_output(pb->enable_gpio, 1);
|
|
|
|
|
|
pb->power_supply = devm_regulator_get(&pdev->dev, "power");
|