From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Pan Subject: [PATCH] drm/i915: minor corner case fix to respect user's backlight setting Date: Fri, 27 Jan 2017 20:57:40 +0800 Message-ID: <1485521860-682-1-git-send-email-harry.pan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: LKML Cc: airlied@linux.ie, intel-gfx@lists.freedesktop.org, Harry Pan , dri-devel@lists.freedesktop.org, daniel.vetter@intel.com, gs0622@gmail.com List-Id: dri-devel@lists.freedesktop.org V2hlbiBlbmFibGluZyBwYW5lbCBiYWNrbGlnaHQsIGlmIHRoZSBjdXJyZW50IGJhY2tsaWdodCBs ZXZlbApzZXR0aW5nIG1hdGNoZXMgdGhlIHBhbmVsJ3MgbWluaW1hbCwgaXQgd291bGQgYXBwbHkg ZGVmYXVsdCBwb2xpY3kgdG8Kb3ZlcnJpZGUgdGhlIGN1cnJlbnQgbGV2ZWwgYnkgdGhlIHBhbmVs J3MgbWF4aW11bSB1bnRpbCBuZXh0IHJlcXVlc3QKdG8gdXBkYXRlIGJyaWdodG5lc3MsIHRoaXMg bGVhZHMgdW5leHBlY3RlZCB1c2VyIGNvbmZ1c2lvbiB3aXRoCnRlbXBvcmFyeSBmdWxsIHBvd2Vy IGJhY2tsaWdodC4KClRoaXMgb2RkIGNvdWxkIGJlIHJlcHJvZHVjZWQgYXMgY29tbWFuZHMgbGlr ZSB0aGVzZToKICQgeGJhY2tsaWdodCAtc2V0IDAKICQgc3VkbyBzaCAtYyAnZWNobyBtZW0gPiAv c3lzL3Bvd2VyL3N0YXRlJwogKHJlc3VtZSkKClRvIGZpeCB0aGlzLCBzbGlnaHRseSB0aW5rZXIg dGhlIGJhY2tsaWdodCBsZXZlbCBjb21wYXJpc29uIGZyb20KJ2xlc3MtYW5kLWVxdWFsLXRvJyB0 byAnbGVzcy10aGFuJy4KCkJlZm9yZTogKGRtZXNnIHwgZ3JlcCBiYWNrbGlnaHQgIyB3aXRoIGRy bS5kZWJ1Zz0weGUpClsgICA4Mi4yNDkyNjVdIFtkcm06aW50ZWxfYmFja2xpZ2h0X2RldmljZV91 cGRhdGVfc3RhdHVzIFtpOTE1XV0gdXBkYXRpbmcgaW50ZWxfYmFja2xpZ2h0LCBicmlnaHRuZXNz PTAvNTI3MwpbICAgODIuMjQ5MjgyXSBbZHJtOmludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNr bGlnaHQgW2k5MTVdXSBzZXQgYmFja2xpZ2h0IFBXTSA9IDIwNwpbICAgODIuMjQ5MzA2XSBbZHJt OmludGVsX2VkcF9iYWNrbGlnaHRfcG93ZXIgW2k5MTVdXSBwYW5lbCBwb3dlciBjb250cm9sIGJh Y2tsaWdodCBkaXNhYmxlClsgICA5Mi4wNjYwNDFdIFtkcm06aW50ZWxfZWRwX2JhY2tsaWdodF9v ZmYgW2k5MTVdXQpbICAgOTIuMjcwNDg5XSBbZHJtOmludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9i YWNrbGlnaHQgW2k5MTVdXSBzZXQgYmFja2xpZ2h0IFBXTSA9IDAKWyAgIDk0LjA4MDQzNF0gW2Ry bTppbnRlbF9lZHBfYmFja2xpZ2h0X29uLnBhcnQuMjUgW2k5MTVdXQpbICAgOTQuMDgwNDc2XSBb ZHJtOmludGVsX3BhbmVsX2VuYWJsZV9iYWNrbGlnaHQgW2k5MTVdXSBwaXBlIEEKWyAgIDk0LjA4 MDUzOV0gW2RybTppbnRlbF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0IFtpOTE1XV0gc2V0 IGJhY2tsaWdodCBQV00gPSA1MjczCgpBZnRlcjoKWyDCoMKgNzIuODc0NDY1XSBbZHJtOmludGVs X2JhY2tsaWdodF9kZXZpY2VfdXBkYXRlX3N0YXR1cyBbaTkxNV1dIHVwZGF0aW5nIGludGVsX2Jh Y2tsaWdodCwgYnJpZ2h0bmVzcz0wLzUyNzMKWyDCoMKgNzIuODc0NDk5XSBbZHJtOmludGVsX3Bh bmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQgW2k5MTVdXSBzZXQgYmFja2xpZ2h0IFBXTSA9IDIw NwpbIMKgwqA3Mi44NzQ1NDBdIFtkcm06aW50ZWxfZWRwX2JhY2tsaWdodF9wb3dlciBbaTkxNV1d IHBhbmVsIHBvd2VyIGNvbnRyb2wgYmFja2xpZ2h0IGRpc2FibGUKWyDCoMKgODYuODA3OTI4XSBb ZHJtOmludGVsX2VkcF9iYWNrbGlnaHRfb2ZmIFtpOTE1XV0KWyDCoMKgODcuMDEzMjI3XSBbZHJt OmludGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQgW2k5MTVdXSBzZXQgYmFja2xpZ2h0 IFBXTSA9IDAKWyDCoMKgODkuMDAxODI5XSBbZHJtOmludGVsX2VkcF9iYWNrbGlnaHRfb24ucGFy dC4yNSBbaTkxNV1dClsgwqDCoDg5LjAwMTg1OV0gW2RybTppbnRlbF9wYW5lbF9lbmFibGVfYmFj a2xpZ2h0IFtpOTE1XV0gcGlwZSBBClsgwqDCoDg5LjAwMTkyNl0gW2RybTppbnRlbF9wYW5lbF9h Y3R1YWxseV9zZXRfYmFja2xpZ2h0IFtpOTE1XV0gc2V0IGJhY2tsaWdodCBQV00gPSAyMDcKCkZp eGVzOiAxM2YzZmJlODI3ZDAgKCJmaXggaW5jb25zaXN0ZW50IGJyaWdodG5lc3MgYWZ0ZXIgcmVz dW1lIikKClNpZ25lZC1vZmYtYnk6IEhhcnJ5IFBhbiA8aGFycnkucGFuQGludGVsLmNvbT4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIHwgMiArLQogMSBmaWxlIGNoYW5n ZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bh bmVsLmMKaW5kZXggMDhhYjZkNy4uZTg4MjEzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5l bC5jCkBAIC0xMTA0LDcgKzExMDQsNyBAQCB2b2lkIGludGVsX3BhbmVsX2VuYWJsZV9iYWNrbGln aHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCiAJV0FSTl9PTihwYW5lbC0+ YmFja2xpZ2h0Lm1heCA9PSAwKTsKIAotCWlmIChwYW5lbC0+YmFja2xpZ2h0LmxldmVsIDw9IHBh bmVsLT5iYWNrbGlnaHQubWluKSB7CisJaWYgKHBhbmVsLT5iYWNrbGlnaHQubGV2ZWwgPCBwYW5l bC0+YmFja2xpZ2h0Lm1pbikgewogCQlwYW5lbC0+YmFja2xpZ2h0LmxldmVsID0gcGFuZWwtPmJh Y2tsaWdodC5tYXg7CiAJCWlmIChwYW5lbC0+YmFja2xpZ2h0LmRldmljZSkKIAkJCXBhbmVsLT5i YWNrbGlnaHQuZGV2aWNlLT5wcm9wcy5icmlnaHRuZXNzID0KLS0gCjIuNi42CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751503AbdA1NWl (ORCPT ); Sat, 28 Jan 2017 08:22:41 -0500 Received: from 123-192-253-61.dynamic.kbronet.com.tw ([123.192.253.61]:56298 "EHLO E6440" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750893AbdA1NWd (ORCPT ); Sat, 28 Jan 2017 08:22:33 -0500 X-Greylist: delayed 4282 seconds by postgrey-1.27 at vger.kernel.org; Sat, 28 Jan 2017 08:22:33 EST From: Harry Pan To: LKML Cc: gs0622@gmail.com, Harry Pan , daniel.vetter@intel.com, jani.nikula@linux.intel.com, airlied@linux.ie, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: [PATCH] drm/i915: minor corner case fix to respect user's backlight setting Date: Fri, 27 Jan 2017 20:57:40 +0800 Message-Id: <1485521860-682-1-git-send-email-harry.pan@intel.com> X-Mailer: git-send-email 2.6.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When enabling panel backlight, if the current backlight level setting matches the panel's minimal, it would apply default policy to override the current level by the panel's maximum until next request to update brightness, this leads unexpected user confusion with temporary full power backlight. This odd could be reproduced as commands like these: $ xbacklight -set 0 $ sudo sh -c 'echo mem > /sys/power/state' (resume) To fix this, slightly tinker the backlight level comparison from 'less-and-equal-to' to 'less-than'. Before: (dmesg | grep backlight # with drm.debug=0xe) [ 82.249265] [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=0/5273 [ 82.249282] [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 207 [ 82.249306] [drm:intel_edp_backlight_power [i915]] panel power control backlight disable [ 92.066041] [drm:intel_edp_backlight_off [i915]] [ 92.270489] [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 0 [ 94.080434] [drm:intel_edp_backlight_on.part.25 [i915]] [ 94.080476] [drm:intel_panel_enable_backlight [i915]] pipe A [ 94.080539] [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 5273 After: [   72.874465] [drm:intel_backlight_device_update_status [i915]] updating intel_backlight, brightness=0/5273 [   72.874499] [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 207 [   72.874540] [drm:intel_edp_backlight_power [i915]] panel power control backlight disable [   86.807928] [drm:intel_edp_backlight_off [i915]] [   87.013227] [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 0 [   89.001829] [drm:intel_edp_backlight_on.part.25 [i915]] [   89.001859] [drm:intel_panel_enable_backlight [i915]] pipe A [   89.001926] [drm:intel_panel_actually_set_backlight [i915]] set backlight PWM = 207 Fixes: 13f3fbe827d0 ("fix inconsistent brightness after resume") Signed-off-by: Harry Pan --- drivers/gpu/drm/i915/intel_panel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c index 08ab6d7..e882139 100644 --- a/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c @@ -1104,7 +1104,7 @@ void intel_panel_enable_backlight(struct intel_connector *connector) WARN_ON(panel->backlight.max == 0); - if (panel->backlight.level <= panel->backlight.min) { + if (panel->backlight.level < panel->backlight.min) { panel->backlight.level = panel->backlight.max; if (panel->backlight.device) panel->backlight.device->props.brightness = -- 2.6.6