Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2834220pxb; Mon, 1 Nov 2021 02:49:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJybE7L8UJjmX7JH52W1TIziuYWvI9STjeju52zoS4EOVb/ORQtu5QeIHkd8jD2C3cXZHgVP X-Received: by 2002:a17:906:c283:: with SMTP id r3mr14413732ejz.138.1635760192310; Mon, 01 Nov 2021 02:49:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635760192; cv=none; d=google.com; s=arc-20160816; b=YYnV9HbhQ8rfLsfYyJY1VWFR/YkcB9RoGHitE9K4COA1ZK1sYg2Whlg2WzKqsIl8pu 5r2dbkEW80kK357KTlUIzQtBiqyoSfA9Y6caZIAss/pY6kr7gTWbh0sBsajtwPbvFOnd uXRS7LgRnfHwmZTgbmHIkZWx1unmxQ+6bGxBHS9csAFzFuqjhDLJ5o9NY02pRfk3iKG9 +mybszf65xH+8/yP+FexNepMZPttCpvlQYjCVA0bZjYWLXdFqbYG2LWUjPTANxZogpy3 v9bd8xBKL3Tt+0C7ehcfExoBcNta/Ur2vMyfCloBPlboKfQQRYPOGpGfiSqVXMsDnP8B aq0Q== 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=5Vszp0NLmdRQcNtd+cx7CYPSHA6o6LllofzJH6qflGY=; b=r3aCuYYiN+TBgH4h7XUUFx6T8WTyGDy21F9mmMPNQW9TAheO/EBhKu7HWnuHKdRE0r Lm1pkjeMGtQiVC8RkVmDcQldc/+Be/TBIQDQnkp/9zKH5FXU/woyOTw4wzdnKvX7Codt e1tUZrkV12mraTxWcT6hILpewfl2XQUEwBIE2XwofdnIy8gZO0mZECFa2b8Jk2rgCG3L O9B0WzXKLDczDNoBdEEpjBeDNUVtP8r2OFQoqvsWl4VZwQzgARHj5FjARcLFp4WJO3Al uHvgjznXwo1cWbqN/4OJY1Ek9ZlnbS7RQuE7D0sEaMHmvRJxo0Jh6UlPeHGdmDq2TZLk y8DQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=LHAVHivm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.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 vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id hs3si25792987ejc.712.2021.11.01.02.49.28; Mon, 01 Nov 2021 02:49:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=LHAVHivm; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.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: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234256AbhKAJsB (ORCPT + 99 others); Mon, 1 Nov 2021 05:48:01 -0400 Received: from mail.kernel.org ([198.145.29.99]:48034 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234075AbhKAJoD (ORCPT ); Mon, 1 Nov 2021 05:44:03 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 05E92613D3; Mon, 1 Nov 2021 09:29:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1635758961; bh=CWa7deH9BWuqDSoHTGAD3ALYtOrYo89AJzHorCfCwYc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LHAVHivmpA3yboDW7kycfmHSVlij3xUKy5jTSYv7Ti/yGp1AH3dCaVldT9a3ScHP8 jLBk/uI6pslEN++RTLaowcdPxY2HW7MpB9kVTg7xxPUIABqTUzm2g57GeV01X04S82 AlYa5qz60BXdNluyR42/fv/TmONQgI4q0KfEs1pY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Michael Strauss , Nicholas Kazlauskas , Alex Deucher Subject: [PATCH 5.14 055/125] drm/amd/display: Fallback to clocks which meet requested voltage on DCN31 Date: Mon, 1 Nov 2021 10:17:08 +0100 Message-Id: <20211101082543.594171666@linuxfoundation.org> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211101082533.618411490@linuxfoundation.org> References: <20211101082533.618411490@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michael Strauss commit 54149d13f369e1ab02f36b91feee02069184c1d8 upstream. [WHY] On certain configs, SMU clock table voltages don't match which cause parser to behave incorrectly by leaving dcfclk and socclk table entries unpopulated. [HOW] Currently the function that finds the corresponding clock for a given voltage only checks for exact voltage level matches. In the case that no match gets found, parser now falls back to searching for the max clock which meets the requested voltage (i.e. its corresponding voltage is below requested). Signed-off-by: Michael Strauss Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c | 13 ++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) --- a/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c +++ b/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_clk_mgr.c @@ -518,14 +518,21 @@ static unsigned int find_clk_for_voltage unsigned int voltage) { int i; + int max_voltage = 0; + int clock = 0; for (i = 0; i < NUM_SOC_VOLTAGE_LEVELS; i++) { - if (clock_table->SocVoltage[i] == voltage) + if (clock_table->SocVoltage[i] == voltage) { return clocks[i]; + } else if (clock_table->SocVoltage[i] >= max_voltage && + clock_table->SocVoltage[i] < voltage) { + max_voltage = clock_table->SocVoltage[i]; + clock = clocks[i]; + } } - ASSERT(0); - return 0; + ASSERT(clock); + return clock; } void dcn31_clk_mgr_helper_populate_bw_params(