From: Thomas Zimmermann <tzimmermann@suse.de>
To: lee@kernel.org, daniel.thompson@linaro.org, sam@ravnborg.org,
jingoohan1@gmail.com, deller@gmx.de, linus.walleij@linaro.org,
f.suligoi@asem.it, ukleinek@kernel.org
Cc: dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org,
linux-pwm@vger.kernel.org,
Thomas Zimmermann <tzimmermann@suse.de>
Subject: [PATCH v2 01/17] backlight: Add BACKLIGHT_POWER_ constants for power states
Date: Mon, 24 Jun 2024 17:19:56 +0200 [thread overview]
Message-ID: <20240624152033.25016-2-tzimmermann@suse.de> (raw)
In-Reply-To: <20240624152033.25016-1-tzimmermann@suse.de>
Duplicate FB_BLANK_ constants as BACKLIGHT_POWER__ constants in the
backlight header file. Allows backlight drivers to avoid including
the fbdev header file and removes a compile-time dependency between
the two subsystems.
The new BACKLIGHT_POWER_ constants have the same values as their
FB_BLANK_ counterparts. Hence UAPI and internal semantics do not
change. The backlight drivers can be converted one by one. Each
instance of FB_BLANK_UNBLANK becomes BACKLIGHT_POWER_ON, each of
FB_BLANK_POWERDOWN becomes BACKLIGHT_POWER_OFF, and FB_BLANK_NORMAL
becomes BACKLIGHT_POWER_REDUCED.
Backlight code or drivers do not use FB_BLANK_VSYNC_SUSPEND and
FB_BLANK_HSYNC_SUSPEND, so no new constants for these are being
added.
The semantics of FB_BLANK_NORMAL appear inconsistent. In fbdev,
NORMAL means display off with sync enabled. In backlight code,
this translates to turn the backlight off, but some drivers
interpret it as backlight on. So we keep the current code as is,
but mark BACKLIGHT_POWER_REDUCED as deprecated. Drivers should be
fixed and the constant removed. This affects ams369fg06 and a few
DRM panel drivers.
v2:
- rename BL_CORE_ power constants to BACKLIGHT_POWER_ (Sam)
- fix documentation
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
.../ABI/stable/sysfs-class-backlight | 7 ++++---
include/linux/backlight.h | 20 +++++++++++--------
2 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/Documentation/ABI/stable/sysfs-class-backlight b/Documentation/ABI/stable/sysfs-class-backlight
index 023fb52645f8..6102d6bebdf9 100644
--- a/Documentation/ABI/stable/sysfs-class-backlight
+++ b/Documentation/ABI/stable/sysfs-class-backlight
@@ -3,10 +3,11 @@ Date: April 2005
KernelVersion: 2.6.12
Contact: Richard Purdie <rpurdie@rpsys.net>
Description:
- Control BACKLIGHT power, values are FB_BLANK_* from fb.h
+ Control BACKLIGHT power, values are compatible with
+ FB_BLANK_* from fb.h
- - FB_BLANK_UNBLANK (0) : power on.
- - FB_BLANK_POWERDOWN (4) : power off
+ - 0 (FB_BLANK_UNBLANK) : power on.
+ - 4 (FB_BLANK_POWERDOWN) : power off
Users: HAL
What: /sys/class/backlight/<backlight>/brightness
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index 19a1c0e22629..ea9c1bc8148e 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -209,15 +209,19 @@ struct backlight_properties {
* attribute: /sys/class/backlight/<backlight>/bl_power
* When the power property is updated update_status() is called.
*
- * The possible values are: (0: full on, 1 to 3: power saving
- * modes; 4: full off), see FB_BLANK_XXX.
+ * The possible values are: (0: full on, 4: full off), see
+ * BACKLIGHT_POWER constants.
*
- * When the backlight device is enabled @power is set
- * to FB_BLANK_UNBLANK. When the backlight device is disabled
- * @power is set to FB_BLANK_POWERDOWN.
+ * When the backlight device is enabled, @power is set to
+ * BACKLIGHT_POWER_ON. When the backlight device is disabled,
+ * @power is set to BACKLIGHT_POWER_OFF.
*/
int power;
+#define BACKLIGHT_POWER_ON (0)
+#define BACKLIGHT_POWER_OFF (4)
+#define BACKLIGHT_POWER_REDUCED (1) // deprecated; don't use in new code
+
/**
* @type: The type of backlight supported.
*
@@ -346,7 +350,7 @@ static inline int backlight_enable(struct backlight_device *bd)
if (!bd)
return 0;
- bd->props.power = FB_BLANK_UNBLANK;
+ bd->props.power = BACKLIGHT_POWER_ON;
bd->props.state &= ~BL_CORE_FBBLANK;
return backlight_update_status(bd);
@@ -361,7 +365,7 @@ static inline int backlight_disable(struct backlight_device *bd)
if (!bd)
return 0;
- bd->props.power = FB_BLANK_POWERDOWN;
+ bd->props.power = BACKLIGHT_POWER_OFF;
bd->props.state |= BL_CORE_FBBLANK;
return backlight_update_status(bd);
@@ -380,7 +384,7 @@ static inline int backlight_disable(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 != BACKLIGHT_POWER_ON ||
bd->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK);
}
--
2.45.2
next prev parent reply other threads:[~2024-06-24 15:28 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-24 15:19 [PATCH v2 00/17] backlight: Introduce power-state constants Thomas Zimmermann
2024-06-24 15:19 ` Thomas Zimmermann [this message]
2024-06-24 15:19 ` [PATCH v2 02/17] backlight: aat2870-backlight: Use blacklight power constants Thomas Zimmermann
2024-06-24 15:19 ` [PATCH v2 03/17] backlight: ams369fb06: Use backlight " Thomas Zimmermann
2024-06-24 15:19 ` [PATCH v2 04/17] backlight: corgi-lcd: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 05/17] backlight: gpio-backlight: " Thomas Zimmermann
2024-06-26 11:52 ` Linus Walleij
2024-06-24 15:20 ` [PATCH v2 06/17] backlight: ipaq-micro-backlight: " Thomas Zimmermann
2024-06-26 11:51 ` Linus Walleij
2024-06-24 15:20 ` [PATCH v2 07/17] backlight: journada_bl: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 08/17] backlight: kb3886-bl: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 09/17] backlight: ktd253-backlight: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 10/17] backlight: led-backlight: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 11/17] backlight: lm3533-backlight: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 12/17] backlight: mp3309c: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 13/17] backlight: pandora-backlight: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 14/17] backlight: pcf50633-backlight: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 15/17] backlight: pwm-backlight: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 16/17] backlight: rave-sp-backlight: " Thomas Zimmermann
2024-06-24 15:20 ` [PATCH v2 17/17] backlight: sky81452-backlight: " Thomas Zimmermann
2024-07-01 11:07 ` [PATCH v2 00/17] backlight: Introduce power-state constants Daniel Thompson
2024-07-04 15:45 ` Lee Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240624152033.25016-2-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=daniel.thompson@linaro.org \
--cc=deller@gmx.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=f.suligoi@asem.it \
--cc=jingoohan1@gmail.com \
--cc=lee@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-fbdev@vger.kernel.org \
--cc=linux-pwm@vger.kernel.org \
--cc=sam@ravnborg.org \
--cc=ukleinek@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).