Due to scaling, the userspace and hardware brightness ranges might not have a 1:1 mapping, causing the backlight class sysfs actual_brightness not match the brightness attribute just written. While this is not a strict requirement per Documentation/ABI/stable/sysfs-class-backlight, try the userspace->hardware scaling for a match first and return the cached value to not confuse userspace. The problem was already mitigated by commit 673e7bbdb3920b62cfc6c710bea626b0a9b0f43a Author: U. Artie Eoff <ullysses.a.eoff@xxxxxxxxx> Date: Mon Sep 29 15:49:32 2014 -0700 drm/i915: intel_backlight scale() math WA but this should be more robust for cases where the userspace expects actual_brightness to match the just written brightness. Reference: http://mid.gmane.org/1415737838-9640-1-git-send-email-ullysses.a.eoff@xxxxxxxxx Reference: https://bugzilla.kernel.org/show_bug.cgi?id=85861 Cc: U. Artie Eoff <ullysses.a.eoff@xxxxxxxxx> Signed-off-by: Jani Nikula <jani.nikula@xxxxxxxxx> --- drivers/gpu/drm/i915/intel_panel.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index 4d63839bd9b4..675b56e105e7 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c @@ -1024,7 +1024,17 @@ static int intel_backlight_device_get_brightness(struct backlight_device *bd) drm_modeset_lock(&dev->mode_config.connection_mutex, NULL); hw_level = intel_panel_get_backlight(connector); - ret = scale_hw_to_user(connector, hw_level, bd->props.max_brightness); + + /* + * Check the userspace->hardware scaling for a match first to avoid + * scaling errors in the userspace->hardware->userspace round-trip. + */ + if (hw_level == scale_user_to_hw(connector, bd->props.brightness, + bd->props.max_brightness)) + ret = bd->props.brightness; + else + ret = scale_hw_to_user(connector, hw_level, + bd->props.max_brightness); drm_modeset_unlock(&dev->mode_config.connection_mutex); intel_runtime_pm_put(dev_priv); -- 2.1.3 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx