From 6e7139a39528e536ca13600ed5b1a5fb0a0dfd1a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Imre=20Vad=C3=A1sz?= Date: Tue, 29 Dec 2015 14:21:03 +0100 Subject: [PATCH] drm/i915: Convert hw level to user level when reading backlight value. Values written to, and then read back from the hw.backlight_level sysctl should now match. --- sys/dev/drm/i915/intel_panel.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/dev/drm/i915/intel_panel.c b/sys/dev/drm/i915/intel_panel.c index 39c1f22b2a..2dff2ee171 100644 --- a/sys/dev/drm/i915/intel_panel.c +++ b/sys/dev/drm/i915/intel_panel.c @@ -1339,21 +1339,21 @@ sysctl_backlight_handler(SYSCTL_HANDLER_ARGS) struct drm_i915_private *dev_priv = dev->dev_private; struct intel_panel *panel = &connector->panel; int err, val; - u32 max_brightness; - - val = panel->backlight.level; + u32 user_level, max_brightness; mutex_lock(&dev_priv->backlight_lock); max_brightness = panel->backlight.max; + user_level = scale_hw_to_user(connector, panel->backlight.level, + max_brightness); mutex_unlock(&dev_priv->backlight_lock); + val = user_level; err = sysctl_handle_int(oidp, &val, 0, req); if (err != 0 || req->newptr == NULL) { return(err); } - if (val != panel->backlight.level && val >=0 && - val <= max_brightness) { + if (val != user_level && val >= 0 && val <= max_brightness) { drm_modeset_lock(&dev->mode_config.connection_mutex, NULL); intel_panel_set_backlight(arg1, val, max_brightness); drm_modeset_unlock(&dev->mode_config.connection_mutex); -- 2.41.0