mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-07-21 11:26:59 +00:00
07e8c30da9
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
127 lines
3.7 KiB
Diff
127 lines
3.7 KiB
Diff
From cc8cb0d0731c7a0517653e65c754051a69f34c3e Mon Sep 17 00:00:00 2001
|
|
From: Gregoire Gentil <gregoire@gentil.com>
|
|
Date: Wed, 31 Mar 2010 11:14:04 +0200
|
|
Subject: [PATCH 14/17] backlight: add PWM support
|
|
|
|
---
|
|
drivers/video/backlight/backlight.c | 81 +++++++++++++++++++++++++++++++++++
|
|
include/linux/backlight.h | 3 +
|
|
2 files changed, 84 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
|
|
index 7898707..615f40f 100644
|
|
--- a/drivers/video/backlight/backlight.c
|
|
+++ b/drivers/video/backlight/backlight.c
|
|
@@ -226,6 +226,84 @@ static void bl_device_release(struct device *dev)
|
|
kfree(bd);
|
|
}
|
|
|
|
+static ssize_t backlight_show_boost(struct device *dev, struct device_attribute *attr, char *buf)
|
|
+{
|
|
+ struct backlight_device *bd = to_backlight_device(dev);
|
|
+ return sprintf(buf, "%u\n", bd->props.boost);
|
|
+}
|
|
+
|
|
+static ssize_t backlight_store_boost(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
|
|
+{
|
|
+ unsigned long i;
|
|
+ struct backlight_device *bd = to_backlight_device(dev);
|
|
+
|
|
+ if (strict_strtoul(buf, 10, &i))
|
|
+ return -EINVAL;
|
|
+
|
|
+ mutex_lock(&bd->ops_lock);
|
|
+ if (bd->ops)
|
|
+ {
|
|
+ if (i)
|
|
+ bd->props.boost = 1;
|
|
+ else
|
|
+ bd->props.boost = 0;
|
|
+ backlight_update_status(bd);
|
|
+ }
|
|
+ mutex_unlock(&bd->ops_lock);
|
|
+
|
|
+ return count;
|
|
+}
|
|
+
|
|
+static ssize_t backlight_show_pwm_fq(struct device *dev, struct device_attribute *attr, char *buf)
|
|
+{
|
|
+ struct backlight_device *bd = to_backlight_device(dev);
|
|
+ return sprintf(buf, "%u\n", bd->props.pwm_fq);
|
|
+}
|
|
+
|
|
+static ssize_t backlight_store_pwm_fq(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
|
|
+{
|
|
+ unsigned long i;
|
|
+ struct backlight_device *bd = to_backlight_device(dev);
|
|
+
|
|
+ if (strict_strtoul(buf, 10, &i))
|
|
+ return -EINVAL;
|
|
+
|
|
+ mutex_lock(&bd->ops_lock);
|
|
+ if (bd->ops)
|
|
+ {
|
|
+ bd->props.pwm_fq = i;
|
|
+ backlight_update_status(bd);
|
|
+ }
|
|
+ mutex_unlock(&bd->ops_lock);
|
|
+
|
|
+ return count;
|
|
+}
|
|
+
|
|
+static ssize_t backlight_show_min_duty(struct device *dev, struct device_attribute *attr, char *buf)
|
|
+{
|
|
+ struct backlight_device *bd = to_backlight_device(dev);
|
|
+ return sprintf(buf, "%u\n", bd->props.min_duty);
|
|
+}
|
|
+
|
|
+static ssize_t backlight_store_min_duty(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
|
|
+{
|
|
+ unsigned long i;
|
|
+ struct backlight_device *bd = to_backlight_device(dev);
|
|
+
|
|
+ if (strict_strtoul(buf, 10, &i))
|
|
+ return -EINVAL;
|
|
+
|
|
+ mutex_lock(&bd->ops_lock);
|
|
+ if (bd->ops)
|
|
+ {
|
|
+ bd->props.min_duty = i;
|
|
+ backlight_update_status(bd);
|
|
+ }
|
|
+ mutex_unlock(&bd->ops_lock);
|
|
+
|
|
+ return count;
|
|
+}
|
|
+
|
|
static struct device_attribute bl_device_attributes[] = {
|
|
__ATTR(bl_power, 0644, backlight_show_power, backlight_store_power),
|
|
__ATTR(brightness, 0666, backlight_show_brightness,
|
|
@@ -233,6 +311,9 @@ static struct device_attribute bl_device_attributes[] = {
|
|
__ATTR(actual_brightness, 0444, backlight_show_actual_brightness,
|
|
NULL),
|
|
__ATTR(max_brightness, 0444, backlight_show_max_brightness, NULL),
|
|
+ __ATTR(boost, 0666, backlight_show_boost, backlight_store_boost),
|
|
+ __ATTR(pwm_fq, 0666, backlight_show_pwm_fq, backlight_store_pwm_fq),
|
|
+ __ATTR(min_duty, 0666, backlight_show_min_duty, backlight_store_min_duty),
|
|
__ATTR_NULL,
|
|
};
|
|
|
|
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
|
|
index 0f5f578..f3a9b9f 100644
|
|
--- a/include/linux/backlight.h
|
|
+++ b/include/linux/backlight.h
|
|
@@ -64,6 +64,9 @@ struct backlight_properties {
|
|
int fb_blank;
|
|
/* Flags used to signal drivers of state changes */
|
|
/* Upper 4 bits are reserved for driver internal use */
|
|
+ int boost;
|
|
+ int pwm_fq;
|
|
+ int min_duty;
|
|
unsigned int state;
|
|
|
|
#define BL_CORE_SUSPENDED (1 << 0) /* backlight is suspended */
|
|
--
|
|
1.6.6.1
|
|
|