On 7/21/21 9:01 PM, Marek Vasut wrote:
[...]
@@ -486,18 +500,6 @@ static int pwm_backlight_probe(struct
platform_device *pdev)
goto err_alloc;
}
- /*
- * If the GPIO is not known to be already configured as output,
that
- * is, if gpiod_get_direction returns either 1 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) != 0)
- gpiod_direction_output(pb->enable_gpio, 1);
pwm_backlight_initial_power_state() is still called after
pwm_apply_state()
in pwm_backlight_probe(), so that might still be too late, no ?
The initial pwm_apply_state() is essentially a nop or, perhaps, a sanity
check if you prefer to think if it that way.
It can change the PWM period in some (non-DT) cases but only if the PWM
is not already running... and the change of period should not start it
running.
All right, let me give this a try.
ACK, for this case I have here, this works too. Can you submit a proper
patch, including my AB/TB and I think also the Fixes tag ?