compositor-drm: drm_set_backlight heads
Fix this function to support more than one head per output. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Daniel Stone <daniels@collabora.com> Acked-by: Derek Foreman <derekf@osg.samsung.com>
This commit is contained in:
@@ -3806,21 +3806,24 @@ drm_get_backlight(struct drm_head *head)
|
|||||||
static void
|
static void
|
||||||
drm_set_backlight(struct weston_output *output_base, uint32_t value)
|
drm_set_backlight(struct weston_output *output_base, uint32_t value)
|
||||||
{
|
{
|
||||||
struct drm_head *head = to_drm_head(weston_output_get_first_head(output_base));
|
struct drm_output *output = to_drm_output(output_base);
|
||||||
|
struct drm_head *head;
|
||||||
long max_brightness, new_brightness;
|
long max_brightness, new_brightness;
|
||||||
|
|
||||||
if (!head->backlight)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (value > 255)
|
if (value > 255)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
max_brightness = backlight_get_max_brightness(head->backlight);
|
wl_list_for_each(head, &output->base.head_list, base.output_link) {
|
||||||
|
if (!head->backlight)
|
||||||
|
return;
|
||||||
|
|
||||||
/* get denormalized value */
|
max_brightness = backlight_get_max_brightness(head->backlight);
|
||||||
new_brightness = (value * max_brightness) / 255;
|
|
||||||
|
|
||||||
backlight_set_brightness(head->backlight, new_brightness);
|
/* get denormalized value */
|
||||||
|
new_brightness = (value * max_brightness) / 255;
|
||||||
|
|
||||||
|
backlight_set_brightness(head->backlight, new_brightness);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user