Received: by 2002:a05:6512:3d0e:0:0:0:0 with SMTP id d14csp20852lfv; Tue, 12 Apr 2022 15:33:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwPE5w15FL48BVum1vGIw41nwHCezlncd2uVTmw8I0qx7PJAaBtEQ53NsVp7vGud/t3lxrI X-Received: by 2002:a17:902:6b47:b0:156:ae54:deaf with SMTP id g7-20020a1709026b4700b00156ae54deafmr39190401plt.129.1649802799841; Tue, 12 Apr 2022 15:33:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649802799; cv=none; d=google.com; s=arc-20160816; b=0xT+CsdusisVyQhipmxOgaMhgZgPZkVeJISbAne2MTz902xTLBGAOAYoybSNi4UaSM quxKBKOJEem7RzvxvF0otCJVRHn0Ha2f/Tp1JbeCFYVbSQi1EtfCYaYrx/fgMOX4w3L2 0XT5LS9uBeDxZNL2QEiEmCuzTklUTo2LL2FcqQWYi1f1ZHoZR2bCZNP38Q0yrxgm6VNY Lckov9Tyy//01bKHTqu+aBl8OUrTxwqpQ45yRs7foQZpwU9M4pOoI390UCUH+Scq9r4C PIbpr72SJu/t+UNdj1CWQ7X8PpRcmWrk6H8H/dy8GGUPYrGg266MZgu0AZP6LQjLEDqP q4Sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=WoSsum7FtrMa8MNlQcTTnPtCFJGdplbjYCT4DZt1uyk=; b=bd0xhN7E4vLMHVB7DTupp7lA5bFGBLTTfx2JbTWtBnDLnRsKAjl9w6qdlCHg4krY0m RlQD94XS2Md8at5d3HXc6vqU753oe2LUYTSYbGW4KkqX9YPDupgOe5/WW73gsG+q9k9g kDhyXO/Cq9q/iIQfYGD0dCG4dAPuoHZTkfozr3uXBf3oezG+0CmLwOFA6w2R0f76Ehje x0nCit3ult7Ap7eTkGnVPaJsttp+xc8dI5yzc3/f5O38ElKylQlcwMor6/tXk6WYiuUS +d1iqrFpLssYbt1HG6pgoSbiwRgotwCrUwoUx1JC3Pje3mNLOsDAHwOKRt9f5+I3JbXN MoWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=0J2sgtW5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id bj20-20020a056a02019400b003816043eee0si4176888pgb.213.2022.04.12.15.33.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 15:33:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=0J2sgtW5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id F3EEAE0990; Tue, 12 Apr 2022 14:09:50 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357197AbiDLIRf (ORCPT + 99 others); Tue, 12 Apr 2022 04:17:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43212 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1355139AbiDLH1L (ORCPT ); Tue, 12 Apr 2022 03:27:11 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE1434839A; Tue, 12 Apr 2022 00:07:13 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 5255DB81A8F; Tue, 12 Apr 2022 07:07:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9DEFCC385A6; Tue, 12 Apr 2022 07:07:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649747231; bh=vls4zsqU9sJp4tWeqhCblfDb12VqS9RG9GrlYCpE/YY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=0J2sgtW5pDypseMzgR3KqysdPpcZQxwlksTleegUOpkn/I6N/1wSoAKcDouMuSnMT 4yS0eXwe19dTCZRt6mTEQu9QC5opZH/bHqzdzB7MTXQwLCw3k5xpF7NcHHHjgYkiLr /xt5c28p31+hm0XJop1/pfZ8Qui12V+rfTooBLj4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Shirish S , Harry Wentland , Alex Deucher Subject: [PATCH 5.16 250/285] amd/display: set backlight only if required Date: Tue, 12 Apr 2022 08:31:47 +0200 Message-Id: <20220412062950.876290151@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220412062943.670770901@linuxfoundation.org> References: <20220412062943.670770901@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Shirish S commit 4052287a75eb3fc0f487fcc5f768a38bede455c8 upstream. [Why] comparing pwm bl values (coverted) with user brightness(converted) levels in commit_tail leads to continuous setting of backlight via dmub as they don't to match. This leads overdrive in queuing of commands to DMCU that sometimes lead to depending on load on DMCU fw: "[drm:dc_dmub_srv_wait_idle] *ERROR* Error waiting for DMUB idle: status=3" [How] Store last successfully set backlight value and compare with it instead of pwm reads which is not what we should compare with. Signed-off-by: Shirish S Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 ++++--- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 6 ++++++ 2 files changed, 10 insertions(+), 3 deletions(-) --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -3924,7 +3924,7 @@ static u32 convert_brightness_to_user(co max - min); } -static int amdgpu_dm_backlight_set_level(struct amdgpu_display_manager *dm, +static void amdgpu_dm_backlight_set_level(struct amdgpu_display_manager *dm, int bl_idx, u32 user_brightness) { @@ -3955,7 +3955,8 @@ static int amdgpu_dm_backlight_set_level DRM_DEBUG("DM: Failed to update backlight on eDP[%d]\n", bl_idx); } - return rc ? 0 : 1; + if (rc) + dm->actual_brightness[bl_idx] = user_brightness; } static int amdgpu_dm_backlight_update_status(struct backlight_device *bd) @@ -9804,7 +9805,7 @@ static void amdgpu_dm_atomic_commit_tail /* restore the backlight level */ for (i = 0; i < dm->num_of_edps; i++) { if (dm->backlight_dev[i] && - (amdgpu_dm_backlight_get_level(dm, i) != dm->brightness[i])) + (dm->actual_brightness[i] != dm->brightness[i])) amdgpu_dm_backlight_set_level(dm, i, dm->brightness[i]); } #endif --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h @@ -540,6 +540,12 @@ struct amdgpu_display_manager { * cached backlight values. */ u32 brightness[AMDGPU_DM_MAX_NUM_EDP]; + /** + * @actual_brightness: + * + * last successfully applied backlight values. + */ + u32 actual_brightness[AMDGPU_DM_MAX_NUM_EDP]; }; enum dsc_clock_force_state {