OpenCloudOS-Kernel/drivers/video/backlight
Daniel Thompson 79fad92f2e backlight: pwm_bl: Improve bootloader/kernel device handover
Currently there are (at least) two problems in the way pwm_bl starts
managing the enable_gpio pin. Both occur when the backlight is initially
off and the driver finds the pin not already in output mode and, as a
result, unconditionally switches it to output-mode and asserts the signal.

Problem 1: This could cause the backlight to flicker since, at this stage
in driver initialisation, we have no idea what the PWM and regulator are
doing (an unconfigured PWM could easily "rest" at 100% duty cycle).

Problem 2: This will cause us not to correctly honour the
post_pwm_on_delay (which also risks flickers).

Fix this by moving the code to configure the GPIO output mode until after
we have examines the handover state. That allows us to initialize
enable_gpio to off if the backlight is currently off and on if the
backlight is on.

Cc: stable@vger.kernel.org
Reported-by: Marek Vasut <marex@denx.de>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Marek Vasut <marex@denx.de>
Tested-by: Marek Vasut <marex@denx.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2021-08-19 10:59:03 +01:00
..
88pm860x_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
Kconfig backlight: Kconfig whitespace and indentation cleanups 2021-06-01 13:36:24 +01:00
Makefile backlight: rt4831: Adds support for Richtek RT4831 backlight 2021-05-19 15:52:25 +01:00
aat2870_bl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 2019-06-05 17:37:07 +02:00
adp5520_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
adp8860_bl.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
adp8870_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
ams369fg06.c backlight: ams369fg06: Drop GPIO include 2019-12-16 10:30:41 +00:00
apple_bl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
arcxcnn_bl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
as3711_bl.c backlight: as3711_bl: Simplify update_status 2020-07-20 10:27:03 +01:00
backlight.c backlight: backlight: Make of_find_backlight static 2020-07-20 10:27:11 +01:00
bd6107.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
corgi_lcd.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
cr_bllcd.c video: backlight: cr_bllcd: Remove unused variable 'intensity' 2020-07-21 15:45:45 +01:00
da903x_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
da9052_bl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ep93xx_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
gpio_backlight.c backlight: gpio_backlight: Simplify update_status() 2020-07-20 10:27:05 +01:00
hp680_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
hx8357.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 71 2019-05-24 17:36:47 +02:00
ili922x.c backlight: ili922x: Add missing kerneldoc description for ili922x_reg_dump()'s arg 2020-07-06 08:11:42 +01:00
ili9320.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ili9320.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ipaq_micro_bl.c backlight: ipaq_micro: Make structure micro_bl_props constant 2019-10-02 14:19:00 +01:00
jornada720_bl.c backlight: journada720: Fix Wmisleading-indentation warning 2021-03-23 09:42:55 +00:00
jornada720_lcd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 73 2019-05-24 17:36:47 +02:00
kb3886_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
ktd253-backlight.c backlight: ktd253: Stabilize backlight 2021-07-21 17:27:27 +01:00
l4f00242t03.c backlight: l4f00242t03: Convert to GPIO descriptors 2020-04-29 08:52:15 +01:00
lcd.c backlight: lcd: Add missing kerneldoc entry for 'struct device parent' 2020-07-06 08:11:41 +01:00
led_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
lm3533_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
lm3630a_bl.c backlight: lm3630a: Convert to atomic PWM API and check for errors 2021-06-22 14:11:37 +01:00
lm3639_bl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lms283gf05.c backlight: lms283gf05: Convert to GPIO descriptors 2021-01-20 12:47:11 +00:00
lms501kf03.c backlight: lms501kf03: Remove unused const variables 2020-07-06 08:11:41 +01:00
locomolcd.c ARM: 9049/1: locomo: make locomo bus's remove callback return void 2021-02-01 19:44:30 +00:00
lp855x_bl.c backlight: lp855x: Ensure regulators are disabled on probe failure 2020-04-28 08:09:36 +01:00
lp8788_bl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ltv350qv.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ltv350qv.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
lv5207lp.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
max8925_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
omap1_bl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 154 2019-05-30 11:26:33 -07:00
otm3225a.c backlight: otm3225a: Add support for ORISE OTM3225A LCD SoC 2018-04-30 10:50:44 +01:00
pandora_bl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pcf50633-backlight.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 151 2019-05-30 11:26:28 -07:00
platform_lcd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
pwm_bl.c backlight: pwm_bl: Improve bootloader/kernel device handover 2021-08-19 10:59:03 +01:00
qcom-wled.c video: backlight: qcom-wled: Add PMI8994 compatible 2021-05-27 17:23:43 +01:00
rave-sp-backlight.c backlight: rave-sp: Leave initial state and register with correct device 2019-08-12 09:11:10 +01:00
rt4831-backlight.c backlight: rt4831: Adds support for Richtek RT4831 backlight 2021-05-19 15:52:25 +01:00
sky81452-backlight.c backlight: sky81452-backlight: Convert comma to semicolon 2021-01-20 12:54:14 +00:00
tdo24m.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 332 2019-06-05 17:37:06 +02:00
tosa_bl.c backlight: tosa_bl: Include the right header 2020-09-08 12:31:19 +01:00
tosa_bl.h video: backlight: tosa: Use GPIO lookup table 2019-11-11 09:29:56 +00:00
tosa_lcd.c backlight: tosa_lcd: Include the right header 2020-09-08 12:30:02 +01:00
tps65217_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00
vgg2432a4.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
wm831x_bl.c backlight: Use backlight_get_brightness() throughout 2020-07-20 10:27:06 +01:00