summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2013-12-13 13:31:24 +0100
committerThierry Reding <treding@nvidia.com>2014-01-10 10:15:22 +0100
commit74b643ea922336e252092304db890c4cad1331bb (patch)
tree8a5120cfaa3ce88de28aae760b8d196adc92692b
parentc3b09161c4fb91be645c67a9b40b217697893c4a (diff)
drm/panel: simple: Implement brightness interface
Provide implementations to control the associated backlight device. Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r--drivers/gpu/drm/panel/panel-simple.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 3e611afc93f4..cdddad3c80e1 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -174,10 +174,54 @@ static int panel_simple_get_modes(struct drm_panel *panel)
return num;
}
+static int panel_simple_get_brightness_range(struct drm_panel *panel,
+ uint64_t *min, uint64_t *max)
+{
+ struct panel_simple *p = to_panel_simple(panel);
+
+ if (!p->backlight)
+ return -ENODEV;
+
+ *max = p->backlight->props.max_brightness;
+ *min = 0;
+
+ return 0;
+}
+
+static int panel_simple_get_brightness(struct drm_panel *panel,
+ uint64_t *value)
+{
+ struct panel_simple *p = to_panel_simple(panel);
+
+ if (!p->backlight)
+ return -ENODEV;
+
+ *value = p->backlight->props.brightness;
+
+ return 0;
+}
+
+static int panel_simple_set_brightness(struct drm_panel *panel,
+ uint64_t value)
+{
+ struct panel_simple *p = to_panel_simple(panel);
+
+ if (!p->backlight)
+ return -ENODEV;
+
+ p->backlight->props.brightness = value;
+ backlight_update_status(p->backlight);
+
+ return 0;
+}
+
static const struct drm_panel_funcs panel_simple_funcs = {
.disable = panel_simple_disable,
.enable = panel_simple_enable,
.get_modes = panel_simple_get_modes,
+ .get_brightness_range = panel_simple_get_brightness_range,
+ .get_brightness = panel_simple_get_brightness,
+ .set_brightness = panel_simple_set_brightness,
};
static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)