Received: by 2002:a05:6a10:6d10:0:0:0:0 with SMTP id gq16csp41335pxb; Tue, 12 Apr 2022 16:13:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyj4deI1WB8fiu1FPF5VdMOZcO01vi/qhHakRBAWRqhLPji+BF1JoPQgaZ0BCBCZJ6g/O/x X-Received: by 2002:a17:90a:7145:b0:1ca:97b5:96ae with SMTP id g5-20020a17090a714500b001ca97b596aemr7645443pjs.64.1649805210966; Tue, 12 Apr 2022 16:13:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649805210; cv=none; d=google.com; s=arc-20160816; b=c0gl5aT/KfuVmKM2iEFeF/HwHxrszVlsoXjH5cKhtAd/t+UmM3Ff85s6vPzlTlKUsl O7Pc9z3cidb4f23LaEXv5WESFAtK2izJvWf+9YC/uFd3xWHo+rsDnOTZTZmL2AmkT+zo oMipjGwAy3FordQQfR42RDP8aZyANmt8chCsG2d8pEe7BBT+1refjGVxBPFWcWNKeDbm 9p6/n+3cPSeQqyRk1nPbqhRnl8v0UQJRiHToGmc5sb0Czbx11dbySgfCcHzFjcTW33Tv frJ1iphv5/i6L0l60+ylS0pLA7yjbqKTRe81evzacf6BhQLuQYApnY1YmIeLfM+8NG1H HYUQ== 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=iRZyex2GbjEcq7cucb5motVgUrqYB/Gh9drHLJ9xAjU=; b=yEOTTfBx3ieXAvmRJgtMKlTML/dojCFUluX7eIdJ4PAiGkMIo5W56uaJGvJ1I8+Tow KRFtskTBPU8rP/6xfsVnAnbjwVaNGz/0mKaLr35suIo9fJ1ZYdVb3/P1n2aingcec3Th Bj86coLwpB5fJ4u4NfQ3KbTEJJKDu0zMeRQz0lWkljk5aEHeIYiUtWOcp9sTRVuSzGVl ZDczyLeqAdhbS0/wT7BFVtUbvg2pZzjZSeLaMCBJCMKRE5abIdoz79dQ6vf5Ita4fgDf BNnU23ocQ75J71sN6pSwEnwjkNGq5fQGrMpo5rIwjFlELnYr+rRHEq9/xw3DDGcoPZDq lkwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=JIRfXK0p; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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. [23.128.96.19]) by mx.google.com with ESMTPS id l8-20020a17090aaa8800b001cba831759bsi4998283pjq.119.2022.04.12.16.13.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Apr 2022 16:13:30 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=JIRfXK0p; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 0370520DDF4; Tue, 12 Apr 2022 14:56:40 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1387131AbiDLJFn (ORCPT + 99 others); Tue, 12 Apr 2022 05:05:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1359231AbiDLHmw (ORCPT ); Tue, 12 Apr 2022 03:42:52 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3C58829CAA; Tue, 12 Apr 2022 00:20:56 -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 dfw.source.kernel.org (Postfix) with ESMTPS id CAAE56153F; Tue, 12 Apr 2022 07:20:55 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DE20DC385A1; Tue, 12 Apr 2022 07:20:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1649748055; bh=7zGoYeuoPi9RAdbiPKb+irnBIcgN9hLDgptYFZeAQdQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JIRfXK0piSvwh2Igu2goLn3TazXW5bdzf+wX4FviRxZ+elMG7D9oygKXl0UpwRZuF DJXBsY5FMKD+97aNdRoZlA9eUiqiBm5lXamh/KiYgjLfCKeRXOL/El0p0njYeAdBhq qaCsZQcA8oKjgNxs+qI6Bx9jeWh7IEsJFnrlY0MY= 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.17 303/343] amd/display: set backlight only if required Date: Tue, 12 Apr 2022 08:32:01 +0200 Message-Id: <20220412063000.070566639@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220412062951.095765152@linuxfoundation.org> References: <20220412062951.095765152@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 @@ -3951,7 +3951,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) { @@ -3982,7 +3982,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) @@ -9914,7 +9915,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 {