Commit 4551978b authored by Thomas Zimmermann's avatar Thomas Zimmermann Committed by Lee Jones

backlight: Remove fb_blank from struct backlight_properties

Remove the field fb_blank from struct backlight_properties and remove
all code that still sets or reads it. Backlight blank status is now
tracked exclusively in struct backlight_properties.state.

The core backlight code keeps the fb_blank and state fields in sync,
but doesn't do anything else with fb_blank. Several drivers initialize
fb_blank to FB_BLANK_UNBLANK to enable the backlight. This is already
the default for the state field. So we can delete the fb_blank code
from core and drivers and rely on the state field.
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Cc: Flavio Suligoi <f.suligoi@asem.it>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Tested-by: default avatarFlavio Suligoi <f.suligoi@asem.it>
Reviewed-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
Reviewed-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/20240319093915.31778-7-tzimmermann@suse.deSigned-off-by: default avatarLee Jones <lee@kernel.org>
parent 9a7bb61f
...@@ -118,14 +118,12 @@ static int fb_notifier_callback(struct notifier_block *self, ...@@ -118,14 +118,12 @@ static int fb_notifier_callback(struct notifier_block *self,
bd->fb_bl_on[node] = true; bd->fb_bl_on[node] = true;
if (!bd->use_count++) { if (!bd->use_count++) {
bd->props.state &= ~BL_CORE_FBBLANK; bd->props.state &= ~BL_CORE_FBBLANK;
bd->props.fb_blank = FB_BLANK_UNBLANK;
backlight_update_status(bd); backlight_update_status(bd);
} }
} else if (fb_blank != FB_BLANK_UNBLANK && bd->fb_bl_on[node]) { } else if (fb_blank != FB_BLANK_UNBLANK && bd->fb_bl_on[node]) {
bd->fb_bl_on[node] = false; bd->fb_bl_on[node] = false;
if (!(--bd->use_count)) { if (!(--bd->use_count)) {
bd->props.state |= BL_CORE_FBBLANK; bd->props.state |= BL_CORE_FBBLANK;
bd->props.fb_blank = fb_blank;
backlight_update_status(bd); backlight_update_status(bd);
} }
} }
......
...@@ -363,7 +363,6 @@ static int mp3309c_probe(struct i2c_client *client) ...@@ -363,7 +363,6 @@ static int mp3309c_probe(struct i2c_client *client)
props.scale = BACKLIGHT_SCALE_LINEAR; props.scale = BACKLIGHT_SCALE_LINEAR;
props.type = BACKLIGHT_RAW; props.type = BACKLIGHT_RAW;
props.power = FB_BLANK_UNBLANK; props.power = FB_BLANK_UNBLANK;
props.fb_blank = FB_BLANK_UNBLANK;
chip->bl = devm_backlight_device_register(dev, "mp3309c", dev, chip, chip->bl = devm_backlight_device_register(dev, "mp3309c", dev, chip,
&mp3309c_bl_ops, &props); &mp3309c_bl_ops, &props);
if (IS_ERR(chip->bl)) if (IS_ERR(chip->bl))
......
...@@ -139,7 +139,6 @@ static int omapbl_probe(struct platform_device *pdev) ...@@ -139,7 +139,6 @@ static int omapbl_probe(struct platform_device *pdev)
omap_cfg_reg(PWL); /* Conflicts with UART3 */ omap_cfg_reg(PWL); /* Conflicts with UART3 */
dev->props.fb_blank = FB_BLANK_UNBLANK;
dev->props.brightness = pdata->default_intensity; dev->props.brightness = pdata->default_intensity;
omapbl_update_status(dev); omapbl_update_status(dev);
......
...@@ -153,7 +153,6 @@ static void init_backlight(struct atmel_lcdfb_info *sinfo) ...@@ -153,7 +153,6 @@ static void init_backlight(struct atmel_lcdfb_info *sinfo)
sinfo->backlight = bl; sinfo->backlight = bl;
bl->props.power = FB_BLANK_UNBLANK; bl->props.power = FB_BLANK_UNBLANK;
bl->props.fb_blank = FB_BLANK_UNBLANK;
bl->props.brightness = atmel_bl_get_brightness(bl); bl->props.brightness = atmel_bl_get_brightness(bl);
} }
......
...@@ -1215,7 +1215,6 @@ static int dsicm_probe(struct platform_device *pdev) ...@@ -1215,7 +1215,6 @@ static int dsicm_probe(struct platform_device *pdev)
ddata->bldev = bldev; ddata->bldev = bldev;
bldev->props.fb_blank = FB_BLANK_UNBLANK;
bldev->props.power = FB_BLANK_UNBLANK; bldev->props.power = FB_BLANK_UNBLANK;
bldev->props.brightness = 255; bldev->props.brightness = 255;
......
...@@ -753,7 +753,6 @@ static int acx565akm_probe(struct spi_device *spi) ...@@ -753,7 +753,6 @@ static int acx565akm_probe(struct spi_device *spi)
} }
memset(&props, 0, sizeof(props)); memset(&props, 0, sizeof(props));
props.fb_blank = FB_BLANK_UNBLANK;
props.power = FB_BLANK_UNBLANK; props.power = FB_BLANK_UNBLANK;
props.type = BACKLIGHT_RAW; props.type = BACKLIGHT_RAW;
......
...@@ -218,25 +218,6 @@ struct backlight_properties { ...@@ -218,25 +218,6 @@ struct backlight_properties {
*/ */
int power; int power;
/**
* @fb_blank: The power state from the FBIOBLANK ioctl.
*
* When the FBIOBLANK ioctl is called @fb_blank is set to the
* blank parameter and the update_status() operation is called.
*
* When the backlight device is enabled @fb_blank is set
* to FB_BLANK_UNBLANK. When the backlight device is disabled
* @fb_blank is set to FB_BLANK_POWERDOWN.
*
* Backlight drivers should avoid using this property. It has been
* replaced by state & BL_CORE_FBLANK (although most drivers should
* use backlight_is_blank() as the preferred means to get the blank
* state).
*
* fb_blank is deprecated and will be removed.
*/
int fb_blank;
/** /**
* @type: The type of backlight supported. * @type: The type of backlight supported.
* *
...@@ -366,7 +347,6 @@ static inline int backlight_enable(struct backlight_device *bd) ...@@ -366,7 +347,6 @@ static inline int backlight_enable(struct backlight_device *bd)
return 0; return 0;
bd->props.power = FB_BLANK_UNBLANK; bd->props.power = FB_BLANK_UNBLANK;
bd->props.fb_blank = FB_BLANK_UNBLANK;
bd->props.state &= ~BL_CORE_FBBLANK; bd->props.state &= ~BL_CORE_FBBLANK;
return backlight_update_status(bd); return backlight_update_status(bd);
...@@ -382,7 +362,6 @@ static inline int backlight_disable(struct backlight_device *bd) ...@@ -382,7 +362,6 @@ static inline int backlight_disable(struct backlight_device *bd)
return 0; return 0;
bd->props.power = FB_BLANK_POWERDOWN; bd->props.power = FB_BLANK_POWERDOWN;
bd->props.fb_blank = FB_BLANK_POWERDOWN;
bd->props.state |= BL_CORE_FBBLANK; bd->props.state |= BL_CORE_FBBLANK;
return backlight_update_status(bd); return backlight_update_status(bd);
...@@ -395,15 +374,13 @@ static inline int backlight_disable(struct backlight_device *bd) ...@@ -395,15 +374,13 @@ static inline int backlight_disable(struct backlight_device *bd)
* Display is expected to be blank if any of these is true:: * Display is expected to be blank if any of these is true::
* *
* 1) if power in not UNBLANK * 1) if power in not UNBLANK
* 2) if fb_blank is not UNBLANK * 2) if state indicate BLANK or SUSPENDED
* 3) if state indicate BLANK or SUSPENDED
* *
* Returns true if display is expected to be blank, false otherwise. * Returns true if display is expected to be blank, false otherwise.
*/ */
static inline bool backlight_is_blank(const struct backlight_device *bd) static inline bool backlight_is_blank(const struct backlight_device *bd)
{ {
return bd->props.power != FB_BLANK_UNBLANK || return bd->props.power != FB_BLANK_UNBLANK ||
bd->props.fb_blank != FB_BLANK_UNBLANK ||
bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK); bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment