On 16/01/18 10:31, Meghana Madhyastha wrote:
Add helper functions backlight_enable and backlight_disable to
enable/disable a backlight device. These helper functions can
then be used by different drm and tinydrm drivers to avoid
repetition of code and also to enforce a uniform and consistent
way to enable/disable a backlight device.

Signed-off-by: Meghana Madhyastha <meghana.madhyas...@gmail.com>

To be clear I don't disagree with anthing Daniel V. said about the horribly confused (and confusing) power states for backlight.

Nevertheless I don't recall seeing any response (positive or negative) to this post from v13:
https://www.spinics.net/lists/dri-devel/msg154459.html


Daniel.


---
  include/linux/backlight.h | 30 ++++++++++++++++++++++++++++++
  1 file changed, 30 insertions(+)

diff --git a/include/linux/backlight.h b/include/linux/backlight.h
index af7003548..7b6a9a2a3 100644
--- a/include/linux/backlight.h
+++ b/include/linux/backlight.h
@@ -130,6 +130,36 @@ static inline int backlight_update_status(struct 
backlight_device *bd)
        return ret;
  }
+/**
+  * backlight_enable - Enable backlight
+  * @bd: the backlight device to enable
+  */
+static inline int backlight_enable(struct backlight_device *bd)
+{
+       if (!bd)
+               return 0;
+
+       bd->props.power = FB_BLANK_UNBLANK;
+       bd->props.state &= ~BL_CORE_FBBLANK;
+
+       return backlight_update_status(bd);
+}
+
+/**
+  * backlight_disable - Disable backlight
+  * @bd: the backlight device to disable
+  */
+static inline int backlight_disable(struct backlight_device *bd)
+{
+       if (!bd)
+               return 0;
+               
+       bd->props.power = FB_BLANK_POWERDOWN;
+       bd->props.state |= BL_CORE_FBBLANK;
+
+       return backlight_update_status(bd);
+}
+
  extern struct backlight_device *backlight_device_register(const char *name,
        struct device *dev, void *devdata, const struct backlight_ops *ops,
        const struct backlight_properties *props);

Reply via email to