From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7B45C433B4 for ; Tue, 11 May 2021 03:33:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8994861629 for ; Tue, 11 May 2021 03:33:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229465AbhEKDeP (ORCPT ); Mon, 10 May 2021 23:34:15 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:36500 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229920AbhEKDeN (ORCPT ); Mon, 10 May 2021 23:34:13 -0400 Received: from mail-lj1-f198.google.com ([209.85.208.198]) by youngberry.canonical.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1lgJ8p-0006CQ-Ma for linux-kernel@vger.kernel.org; Tue, 11 May 2021 03:33:05 +0000 Received: by mail-lj1-f198.google.com with SMTP id a14-20020a2e7f0e0000b02900b9011db00cso10208161ljd.8 for ; Mon, 10 May 2021 20:33:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qpZ1o8BZbVj97ScJ5uIe5Iz8N7aLUvfNU9S9Nz3IzwM=; b=rNzTqLPO5VyhfVSDmg9BuR8B1OFGk9d9I4XkuSd+aO0NuVo6c36hxq1mvBgz+FT5Yd lEblpdGP9cI6mQyEogLvtdkA2zKGTCvQlVdn0Z/UlBc/v3qGaANrJ3E58wLS6LqugdQn FX3K79cMMIWIx8abdKyfStVnckYW+ixEXaKZCPQHWmDNt/nrWbrz4eDhxGWXSbHMmtt+ ZNPYKwNLuSymiQt66VLsTyX7mPt1KDGbFU+SPYhirGzT0ljkYdBqJpT/sC8NdYsuvE6k q+ENlmJgbO37fpHrNF94V9Ax62VgpRTnMpoJHyF693c21jl5Kt0r0+7c1KIU4HfcnYDD um2w== X-Gm-Message-State: AOAM530YuHOXcogDreL3Y2e1ciSaZRy5w+640xROl7s6TYSUlpwjd7Ya +hZiirijDsNHAYj0sZvlmaAuc0OageAUWip+IzBLRSwWbs/9d3E/6gcm6YeSgZNJyoqd7RxdCLy 28nHDvFZxhtOKR8lV13HS4KwamHnSyZiqAr0sXsj83BvzDXEKMys/IHxvsg== X-Received: by 2002:a05:6512:3b93:: with SMTP id g19mr19441658lfv.548.1620703983109; Mon, 10 May 2021 20:33:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzJ3I3h7WqnNP7SEfWG7sKaQkaYZUkTMSdI76PL8q58FqDBzKUFS9tR8ZJAqHuO5+E46Kf0NlHlj83wxal64HY= X-Received: by 2002:a05:6512:3b93:: with SMTP id g19mr19441646lfv.548.1620703982869; Mon, 10 May 2021 20:33:02 -0700 (PDT) MIME-Version: 1.0 References: <20210430045656.577395-1-kai.heng.feng@canonical.com> In-Reply-To: <20210430045656.577395-1-kai.heng.feng@canonical.com> From: Kai-Heng Feng Date: Tue, 11 May 2021 11:32:50 +0800 Message-ID: Subject: Re: [PATCH v2] drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected To: "Deucher, Alexander" , Christian Koenig Cc: David Airlie , Daniel Vetter , "open list:RADEON and AMDGPU DRM DRIVERS" , "open list:DRM DRIVERS" , open list Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 30, 2021 at 12:57 PM Kai-Heng Feng wrote: > > Screen flickers rapidly when two 4K 60Hz monitors are in use. This issue > doesn't happen when one monitor is 4K 60Hz (pixelclock 594MHz) and > another one is 4K 30Hz (pixelclock 297MHz). > > The issue is gone after setting "power_dpm_force_performance_level" to > "high". Following the indication, we found that the issue occurs when > sclk is too low. > > So resolve the issue by disabling sclk switching when there are two > monitors requires high pixelclock (> 297MHz). > > v2: > - Only apply the fix to Oland. > Signed-off-by: Kai-Heng Feng A gentle ping... > --- > drivers/gpu/drm/radeon/radeon.h | 1 + > drivers/gpu/drm/radeon/radeon_pm.c | 8 ++++++++ > drivers/gpu/drm/radeon/si_dpm.c | 3 +++ > 3 files changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h > index 42281fce552e6..56ed5634cebef 100644 > --- a/drivers/gpu/drm/radeon/radeon.h > +++ b/drivers/gpu/drm/radeon/radeon.h > @@ -1549,6 +1549,7 @@ struct radeon_dpm { > void *priv; > u32 new_active_crtcs; > int new_active_crtc_count; > + int high_pixelclock_count; > u32 current_active_crtcs; > int current_active_crtc_count; > bool single_display; > diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c > index 0c1950f4e146f..3861c0b98fcf3 100644 > --- a/drivers/gpu/drm/radeon/radeon_pm.c > +++ b/drivers/gpu/drm/radeon/radeon_pm.c > @@ -1767,6 +1767,7 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev) > struct drm_device *ddev = rdev->ddev; > struct drm_crtc *crtc; > struct radeon_crtc *radeon_crtc; > + struct radeon_connector *radeon_connector; > > if (!rdev->pm.dpm_enabled) > return; > @@ -1776,6 +1777,7 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev) > /* update active crtc counts */ > rdev->pm.dpm.new_active_crtcs = 0; > rdev->pm.dpm.new_active_crtc_count = 0; > + rdev->pm.dpm.high_pixelclock_count = 0; > if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) { > list_for_each_entry(crtc, > &ddev->mode_config.crtc_list, head) { > @@ -1783,6 +1785,12 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev) > if (crtc->enabled) { > rdev->pm.dpm.new_active_crtcs |= (1 << radeon_crtc->crtc_id); > rdev->pm.dpm.new_active_crtc_count++; > + if (!radeon_crtc->connector) > + continue; > + > + radeon_connector = to_radeon_connector(radeon_crtc->connector); > + if (radeon_connector->pixelclock_for_modeset > 297000) > + rdev->pm.dpm.high_pixelclock_count++; > } > } > } > diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c > index 9186095518047..3cc2b96a7f368 100644 > --- a/drivers/gpu/drm/radeon/si_dpm.c > +++ b/drivers/gpu/drm/radeon/si_dpm.c > @@ -2979,6 +2979,9 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev, > (rdev->pdev->device == 0x6605)) { > max_sclk = 75000; > } > + > + if (rdev->pm.dpm.high_pixelclock_count > 1) > + disable_sclk_switching = true; > } > > if (rps->vce_active) { > -- > 2.30.2 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CDB61C433ED for ; Tue, 11 May 2021 03:33:09 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6172761585 for ; Tue, 11 May 2021 03:33:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6172761585 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=canonical.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 99BA86E9A9; Tue, 11 May 2021 03:33:07 +0000 (UTC) Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5A256E9A8 for ; Tue, 11 May 2021 03:33:06 +0000 (UTC) Received: from mail-lj1-f198.google.com ([209.85.208.198]) by youngberry.canonical.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1lgJ8p-0006CT-NV for dri-devel@lists.freedesktop.org; Tue, 11 May 2021 03:33:05 +0000 Received: by mail-lj1-f198.google.com with SMTP id u6-20020a2ea1660000b02900d692882addso10262588ljl.4 for ; Mon, 10 May 2021 20:33:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qpZ1o8BZbVj97ScJ5uIe5Iz8N7aLUvfNU9S9Nz3IzwM=; b=ueCuY7nlJMAdjG7PJWE6yfjETlbSQed33s1axOelQQgjb4P8SXx0XGmSbPyZtB8BFZ w1BRWKiZyh2dJvFA/Du0NWsYGGi6+A6zaSLtCIUOJ3hSm9fvuh6/RShhRI4ybeHctkbr s79D61mjwbx84dMvD+9bi8gOwFsLYzMqT4Hrg4jHUkiD2NT3zMN3heAyGrJQ+5zDg9UB 27LoEay70Pu5MfYIGmZzRyxv4hB0vJCzU3MlEvrsA2sysUXGRDbLf9tWWGq+M2mFulrH TNB1zyLmrbLMZATJqIqrqB5zXlH+kn9IVSOeqyVnbV/urqYu4Z0b4W4AYzsNLx59EKrC cMdQ== X-Gm-Message-State: AOAM533Dx+xzZShHloaYB9gCGlp1ogjDC1KhnwqJBW/ILoUBKA1rAqef 4C5Rpf31rsmrUC56qFCHYXRo17yz+kBZZX780skgUQL27Up+YNlroEYUNJCzDd609IpEu295GdZ 0Eh2nNLcxW0q6LzAiIUYTdMi4v74FSva2eCjH9bWLri20RTjLnZxHCasFJ1P/hA== X-Received: by 2002:a05:6512:3b93:: with SMTP id g19mr19441659lfv.548.1620703983109; Mon, 10 May 2021 20:33:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzJ3I3h7WqnNP7SEfWG7sKaQkaYZUkTMSdI76PL8q58FqDBzKUFS9tR8ZJAqHuO5+E46Kf0NlHlj83wxal64HY= X-Received: by 2002:a05:6512:3b93:: with SMTP id g19mr19441646lfv.548.1620703982869; Mon, 10 May 2021 20:33:02 -0700 (PDT) MIME-Version: 1.0 References: <20210430045656.577395-1-kai.heng.feng@canonical.com> In-Reply-To: <20210430045656.577395-1-kai.heng.feng@canonical.com> From: Kai-Heng Feng Date: Tue, 11 May 2021 11:32:50 +0800 Message-ID: Subject: Re: [PATCH v2] drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected To: "Deucher, Alexander" , Christian Koenig Content-Type: text/plain; charset="UTF-8" X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , "open list:DRM DRIVERS" , "open list:RADEON and AMDGPU DRM DRIVERS" , open list Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Fri, Apr 30, 2021 at 12:57 PM Kai-Heng Feng wrote: > > Screen flickers rapidly when two 4K 60Hz monitors are in use. This issue > doesn't happen when one monitor is 4K 60Hz (pixelclock 594MHz) and > another one is 4K 30Hz (pixelclock 297MHz). > > The issue is gone after setting "power_dpm_force_performance_level" to > "high". Following the indication, we found that the issue occurs when > sclk is too low. > > So resolve the issue by disabling sclk switching when there are two > monitors requires high pixelclock (> 297MHz). > > v2: > - Only apply the fix to Oland. > Signed-off-by: Kai-Heng Feng A gentle ping... > --- > drivers/gpu/drm/radeon/radeon.h | 1 + > drivers/gpu/drm/radeon/radeon_pm.c | 8 ++++++++ > drivers/gpu/drm/radeon/si_dpm.c | 3 +++ > 3 files changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h > index 42281fce552e6..56ed5634cebef 100644 > --- a/drivers/gpu/drm/radeon/radeon.h > +++ b/drivers/gpu/drm/radeon/radeon.h > @@ -1549,6 +1549,7 @@ struct radeon_dpm { > void *priv; > u32 new_active_crtcs; > int new_active_crtc_count; > + int high_pixelclock_count; > u32 current_active_crtcs; > int current_active_crtc_count; > bool single_display; > diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c > index 0c1950f4e146f..3861c0b98fcf3 100644 > --- a/drivers/gpu/drm/radeon/radeon_pm.c > +++ b/drivers/gpu/drm/radeon/radeon_pm.c > @@ -1767,6 +1767,7 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev) > struct drm_device *ddev = rdev->ddev; > struct drm_crtc *crtc; > struct radeon_crtc *radeon_crtc; > + struct radeon_connector *radeon_connector; > > if (!rdev->pm.dpm_enabled) > return; > @@ -1776,6 +1777,7 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev) > /* update active crtc counts */ > rdev->pm.dpm.new_active_crtcs = 0; > rdev->pm.dpm.new_active_crtc_count = 0; > + rdev->pm.dpm.high_pixelclock_count = 0; > if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) { > list_for_each_entry(crtc, > &ddev->mode_config.crtc_list, head) { > @@ -1783,6 +1785,12 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev) > if (crtc->enabled) { > rdev->pm.dpm.new_active_crtcs |= (1 << radeon_crtc->crtc_id); > rdev->pm.dpm.new_active_crtc_count++; > + if (!radeon_crtc->connector) > + continue; > + > + radeon_connector = to_radeon_connector(radeon_crtc->connector); > + if (radeon_connector->pixelclock_for_modeset > 297000) > + rdev->pm.dpm.high_pixelclock_count++; > } > } > } > diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c > index 9186095518047..3cc2b96a7f368 100644 > --- a/drivers/gpu/drm/radeon/si_dpm.c > +++ b/drivers/gpu/drm/radeon/si_dpm.c > @@ -2979,6 +2979,9 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev, > (rdev->pdev->device == 0x6605)) { > max_sclk = 75000; > } > + > + if (rdev->pm.dpm.high_pixelclock_count > 1) > + disable_sclk_switching = true; > } > > if (rps->vce_active) { > -- > 2.30.2 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EECA6C43460 for ; Tue, 11 May 2021 07:49:39 +0000 (UTC) Received: from gabe.freedesktop.org (unknown [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8F30F61930 for ; Tue, 11 May 2021 07:49:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8F30F61930 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=canonical.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2E19C6E9EF; Tue, 11 May 2021 07:49:33 +0000 (UTC) Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by gabe.freedesktop.org (Postfix) with ESMTPS id C8A476E9A9 for ; Tue, 11 May 2021 03:33:06 +0000 (UTC) Received: from mail-lj1-f199.google.com ([209.85.208.199]) by youngberry.canonical.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1lgJ8p-0006CO-Lz for amd-gfx@lists.freedesktop.org; Tue, 11 May 2021 03:33:05 +0000 Received: by mail-lj1-f199.google.com with SMTP id h1-20020a2e9ec10000b02900edf305c2e1so603860ljk.12 for ; Mon, 10 May 2021 20:33:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qpZ1o8BZbVj97ScJ5uIe5Iz8N7aLUvfNU9S9Nz3IzwM=; b=XjRpWU+WSR/1ZAVT1tr5QWvAx4dyhm8Mbz5JTTrQdkIuHM+im+NdrHHFtJNE+S+mtb xmbPCAneyKbuz4geCXq5RKkMEgQPgmjYrl9xS94UeSNWr6kfrA2DgztFas9pSH5ZrFnl te2Xyci3SHBx3ZxEnx2h7yi9QKEOPqV0SgOzhF43IxObThySAxYQCPXSc2V0Zl/r4AMK K0C6NTkzEheVyhSKVVfsQlcJoiOdGqDB4/Z+ElIL8DqhvH1pKI37c8ZFnOJPP6Ro5Lth XHq/E+B3saqlVK3wE7uDkokJSzkHnXgDy52BovH+5TJYKhzf+JMZJV0wxxDrCxlXLBHD IOVw== X-Gm-Message-State: AOAM533CF8YeN6BSwBV+ht5e4dOOmzJf6JkG+8DEQbJqGe2rD9jn9+he Z/4OgQTtLgv/BJAZep3Z/1X+WIgZIt/FwRkpexSRHLTtpILOI8FFOZx0Kw6C3AUavEAhHW2DjvH t2f0AVM8s7Ljy4/q73MT3haiwRfZdmIslnWmHY5abGLcWnr5zrXzrbWyds2U= X-Received: by 2002:a05:6512:3b93:: with SMTP id g19mr19441660lfv.548.1620703983110; Mon, 10 May 2021 20:33:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzJ3I3h7WqnNP7SEfWG7sKaQkaYZUkTMSdI76PL8q58FqDBzKUFS9tR8ZJAqHuO5+E46Kf0NlHlj83wxal64HY= X-Received: by 2002:a05:6512:3b93:: with SMTP id g19mr19441646lfv.548.1620703982869; Mon, 10 May 2021 20:33:02 -0700 (PDT) MIME-Version: 1.0 References: <20210430045656.577395-1-kai.heng.feng@canonical.com> In-Reply-To: <20210430045656.577395-1-kai.heng.feng@canonical.com> From: Kai-Heng Feng Date: Tue, 11 May 2021 11:32:50 +0800 Message-ID: Subject: Re: [PATCH v2] drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected To: "Deucher, Alexander" , Christian Koenig X-Mailman-Approved-At: Tue, 11 May 2021 07:49:32 +0000 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , "open list:DRM DRIVERS" , "open list:RADEON and AMDGPU DRM DRIVERS" , Daniel Vetter , open list Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" On Fri, Apr 30, 2021 at 12:57 PM Kai-Heng Feng wrote: > > Screen flickers rapidly when two 4K 60Hz monitors are in use. This issue > doesn't happen when one monitor is 4K 60Hz (pixelclock 594MHz) and > another one is 4K 30Hz (pixelclock 297MHz). > > The issue is gone after setting "power_dpm_force_performance_level" to > "high". Following the indication, we found that the issue occurs when > sclk is too low. > > So resolve the issue by disabling sclk switching when there are two > monitors requires high pixelclock (> 297MHz). > > v2: > - Only apply the fix to Oland. > Signed-off-by: Kai-Heng Feng A gentle ping... > --- > drivers/gpu/drm/radeon/radeon.h | 1 + > drivers/gpu/drm/radeon/radeon_pm.c | 8 ++++++++ > drivers/gpu/drm/radeon/si_dpm.c | 3 +++ > 3 files changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h > index 42281fce552e6..56ed5634cebef 100644 > --- a/drivers/gpu/drm/radeon/radeon.h > +++ b/drivers/gpu/drm/radeon/radeon.h > @@ -1549,6 +1549,7 @@ struct radeon_dpm { > void *priv; > u32 new_active_crtcs; > int new_active_crtc_count; > + int high_pixelclock_count; > u32 current_active_crtcs; > int current_active_crtc_count; > bool single_display; > diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c > index 0c1950f4e146f..3861c0b98fcf3 100644 > --- a/drivers/gpu/drm/radeon/radeon_pm.c > +++ b/drivers/gpu/drm/radeon/radeon_pm.c > @@ -1767,6 +1767,7 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev) > struct drm_device *ddev = rdev->ddev; > struct drm_crtc *crtc; > struct radeon_crtc *radeon_crtc; > + struct radeon_connector *radeon_connector; > > if (!rdev->pm.dpm_enabled) > return; > @@ -1776,6 +1777,7 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev) > /* update active crtc counts */ > rdev->pm.dpm.new_active_crtcs = 0; > rdev->pm.dpm.new_active_crtc_count = 0; > + rdev->pm.dpm.high_pixelclock_count = 0; > if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) { > list_for_each_entry(crtc, > &ddev->mode_config.crtc_list, head) { > @@ -1783,6 +1785,12 @@ static void radeon_pm_compute_clocks_dpm(struct radeon_device *rdev) > if (crtc->enabled) { > rdev->pm.dpm.new_active_crtcs |= (1 << radeon_crtc->crtc_id); > rdev->pm.dpm.new_active_crtc_count++; > + if (!radeon_crtc->connector) > + continue; > + > + radeon_connector = to_radeon_connector(radeon_crtc->connector); > + if (radeon_connector->pixelclock_for_modeset > 297000) > + rdev->pm.dpm.high_pixelclock_count++; > } > } > } > diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c > index 9186095518047..3cc2b96a7f368 100644 > --- a/drivers/gpu/drm/radeon/si_dpm.c > +++ b/drivers/gpu/drm/radeon/si_dpm.c > @@ -2979,6 +2979,9 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev, > (rdev->pdev->device == 0x6605)) { > max_sclk = 75000; > } > + > + if (rdev->pm.dpm.high_pixelclock_count > 1) > + disable_sclk_switching = true; > } > > if (rps->vce_active) { > -- > 2.30.2 > _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx