diff options
author | Thierry Reding <treding@nvidia.com> | 2013-12-13 13:31:24 +0100 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2014-01-10 10:15:22 +0100 |
commit | 74b643ea922336e252092304db890c4cad1331bb (patch) | |
tree | 8a5120cfaa3ce88de28aae760b8d196adc92692b | |
parent | c3b09161c4fb91be645c67a9b40b217697893c4a (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.c | 44 |
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) |