From patchwork Fri Jan 27 12:57:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Harry Pan X-Patchwork-Id: 9541977 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 1DA7360429 for ; Fri, 27 Jan 2017 14:38:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0E26325D9E for ; Fri, 27 Jan 2017 14:38:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0001F26E54; Fri, 27 Jan 2017 14:38:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id BFA5426E4F for ; Fri, 27 Jan 2017 14:38:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D174B6ED73; Fri, 27 Jan 2017 14:38:49 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org X-Greylist: delayed 695 seconds by postgrey-1.35 at gabe; Fri, 27 Jan 2017 14:38:48 UTC Received: from E6440 (123-192-253-61.dynamic.kbronet.com.tw [123.192.253.61]) by gabe.freedesktop.org (Postfix) with ESMTP id 8F4756ED72; Fri, 27 Jan 2017 14:38:48 +0000 (UTC) Received: from E6440.gar.corp.intel.com (localhost [127.0.0.1]) by E6440 (Postfix) with ESMTP id 71CCDC0A82; Fri, 27 Jan 2017 20:57:43 +0800 (CST) From: Harry Pan To: LKML 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 Cc: airlied@linux.ie, intel-gfx@lists.freedesktop.org, Harry Pan , dri-devel@lists.freedesktop.org, daniel.vetter@intel.com, gs0622@gmail.com Subject: [Intel-gfx] [PATCH] drm/i915: minor corner case fix to respect user's backlight setting X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP 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 =