From patchwork Wed Mar 16 07:51:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: You-Sheng Yang X-Patchwork-Id: 1606032 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KJMsm3fbQz9sFs for ; Wed, 16 Mar 2022 18:51:23 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nUORB-0007Cq-M3; Wed, 16 Mar 2022 07:51:17 +0000 Received: from mail-pf1-f170.google.com ([209.85.210.170]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1nUORA-0007Bw-GD for kernel-team@lists.ubuntu.com; Wed, 16 Mar 2022 07:51:16 +0000 Received: by mail-pf1-f170.google.com with SMTP id s8so2857665pfk.12 for ; Wed, 16 Mar 2022 00:51:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uhbzresphTwpbQJZ7nSsv4XwfGY0+Evnl6xxFEL6+SE=; b=XlgercLA++sSfJfb1B7KN20xqSjDsnvKncEgLCm/lU56VjBJCCkiw96kQZGDBGrLz9 UNtiXew2Hn+VUjZAcAXs0qK4MBqQjet9gCViLRemcBtZFDsKWufOmfE1ZzJKRSnZoGlP l2kAgzEZ/HhsbK1fONtKT6MmtgR2S7KPZJTl7UH1NMz73lMuZGhFs2U3ywJiW0Rligsy 8r0EfMFRI1mVI+/j295gNyhhqmztxxPy42LOwth2q3UcVLjV5a8WUZbwzDG5mmFxf+m0 dD8YAZyytD/o9JP1CIxYjV9TSFUlL9RYxbFgZ17exFPqLQZb804jCgX2OMsMdiPcXtoC MRlw== X-Gm-Message-State: AOAM532UWJwsb7+bDrLw7oARLoNHR1W2FY/Lj9356W59GkxooNzcluz2 5YfMR//zFyE/1uIGOz421x9r2ztNIsU= X-Google-Smtp-Source: ABdhPJzFsMOFiCKjneZO2P3/+QuE4hKhB2CzTgFH+LoadHZhZ6mYrq5ZmO/gu8f3BTg0Rh1SSkpMSA== X-Received: by 2002:a05:6a00:2448:b0:4f7:a138:29c7 with SMTP id d8-20020a056a00244800b004f7a13829c7mr21445059pfj.32.1647417074267; Wed, 16 Mar 2022 00:51:14 -0700 (PDT) Received: from localhost (2001-b400-e7a8-8e4e-9beb-d002-2069-d1fb.emome-ip6.hinet.net. [2001:b400:e7a8:8e4e:9beb:d002:2069:d1fb]) by smtp.gmail.com with ESMTPSA id g9-20020a056a0023c900b004f736d081d9sm1922592pfc.64.2022.03.16.00.51.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Mar 2022 00:51:13 -0700 (PDT) From: You-Sheng Yang To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/2][SRU][OEM-5.14] drm/amdgpu/display: Only set vblank_disable_immediate when PSR is not enabled Date: Wed, 16 Mar 2022 15:51:07 +0800 Message-Id: <20220316075109.3371061-2-vicamo.yang@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220316075109.3371061-1-vicamo.yang@canonical.com> References: <20220316075109.3371061-1-vicamo.yang@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.210.170; envelope-from=vicamo@gmail.com; helo=mail-pf1-f170.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Nicholas Kazlauskas BugLink: https://bugs.launchpad.net/amd/+bug/1964850 [Why] PSR currently relies on the kernel's delayed vblank on/off mechanism as an implicit bufferring mechanism to prevent excessive entry/exit. Without this delay the user experience is impacted since it can take a few frames to enter/exit. [How] Only allow vblank disable immediate for DC when psr is not supported. Leave a TODO indicating that this support should be extended in the future to delay independent of the vblank interrupt. Fixes: 92020e81ddbeac ("drm/amdgpu/display: set vblank_disable_immediate for DC") Acked-by: Alex Deucher Reviewed-by: Harry Wentland Signed-off-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher (cherry picked from commit 70897848730470cc477d5d89e6222c0f6a9ac173) Signed-off-by: You-Sheng Yang --- drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 574b3f5849981..bde35437db9d1 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -1495,9 +1495,6 @@ static int amdgpu_dm_init(struct amdgpu_device *adev) adev_to_drm(adev)->mode_config.cursor_width = adev->dm.dc->caps.max_cursor_size; adev_to_drm(adev)->mode_config.cursor_height = adev->dm.dc->caps.max_cursor_size; - /* Disable vblank IRQs aggressively for power-saving */ - adev_to_drm(adev)->vblank_disable_immediate = true; - if (drm_vblank_init(adev_to_drm(adev), adev->dm.display_indexes_num)) { DRM_ERROR( "amdgpu: failed to initialize sw for display support.\n"); @@ -4091,6 +4088,14 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev) } + /* + * Disable vblank IRQs aggressively for power-saving. + * + * TODO: Fix vblank control helpers to delay PSR entry to allow this when PSR + * is also supported. + */ + adev_to_drm(adev)->vblank_disable_immediate = !psr_feature_enabled; + /* Software is initialized. Now we can register interrupt handlers. */ switch (adev->asic_type) { #if defined(CONFIG_DRM_AMD_DC_SI) From patchwork Wed Mar 16 07:51:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: You-Sheng Yang X-Patchwork-Id: 1606033 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KJMsp74Fpz9sCD for ; Wed, 16 Mar 2022 18:51:26 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1nUORF-0007F9-0i; Wed, 16 Mar 2022 07:51:21 +0000 Received: from mail-pf1-f173.google.com ([209.85.210.173]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1nUORC-0007Cc-GL for kernel-team@lists.ubuntu.com; Wed, 16 Mar 2022 07:51:18 +0000 Received: by mail-pf1-f173.google.com with SMTP id l8so2945493pfu.1 for ; Wed, 16 Mar 2022 00:51:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=KMK+0QzOFtkSDNMHsZiLR20UqmIjd4/n5DCqAx4fqYA=; b=dY8z2s7JMNTrnAgRcrCe6XjPy931s5/QDxVMe+dC0Qar04kapAgd2vHNz6AhDacWn0 w3wrUPQs0/ORY2bhiAIZz6jXMjFqTEEbBkea63R6FLujZZwUJkswv2YSqwwY0XU/KmFd 6nbwI9DPUvxifIaGlqQ5WUAcC65nEPo9kEo09qasm8unqiWn30rpL79/DcJ9Wm3BrbAF zKz75Mlmd+BWNO82fb+CIfSxyGMfZJq9w2YooVPsBQbmiMeAIvHjZSRxW1AYQm2JvSDU AGeCbf33NAbsf//RLsH1bElSyIx2+SLKeDBcR9mb7b2mCLm5xVevhudr/7CpXy9Qi2YF 61Jw== X-Gm-Message-State: AOAM530o3hleL2WocIolk0tQo+oK9pVhYRglk6obp7E4dln45XlDa2fm nQYmOO2jm4W0sQuKh1BF8ZEwTKSvpW4= X-Google-Smtp-Source: ABdhPJzecHjOQ+K2wslJjDfXgeVfPivWJo7fuPp++V3UaFQM5Vvyj/lyRMLS4dwQHCiUd4oKafFE4A== X-Received: by 2002:a05:6a00:1a8b:b0:4f7:10a6:3cea with SMTP id e11-20020a056a001a8b00b004f710a63ceamr33279611pfv.75.1647417076411; Wed, 16 Mar 2022 00:51:16 -0700 (PDT) Received: from localhost (2001-b400-e7a8-8e4e-9beb-d002-2069-d1fb.emome-ip6.hinet.net. [2001:b400:e7a8:8e4e:9beb:d002:2069:d1fb]) by smtp.gmail.com with ESMTPSA id f4-20020aa782c4000000b004f6f0334a51sm1635434pfn.126.2022.03.16.00.51.15 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Mar 2022 00:51:16 -0700 (PDT) From: You-Sheng Yang To: kernel-team@lists.ubuntu.com Subject: [PATCH 2/2][SRU][OEM-5.14] drm/amd/display: For vblank_disable_immediate, check PSR is really used Date: Wed, 16 Mar 2022 15:51:08 +0800 Message-Id: <20220316075109.3371061-3-vicamo.yang@canonical.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220316075109.3371061-1-vicamo.yang@canonical.com> References: <20220316075109.3371061-1-vicamo.yang@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.210.173; envelope-from=vicamo@gmail.com; helo=mail-pf1-f173.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Michel Dänzer BugLink: https://bugs.launchpad.net/amd/+bug/1964850 Even if PSR is allowed for a present GPU, there might be no eDP link which supports PSR. Fixes: 708978487304 ("drm/amdgpu/display: Only set vblank_disable_immediate when PSR is not enabled") Reviewed-by: Harry Wentland Signed-off-by: Michel Dänzer Signed-off-by: Alex Deucher (cherry picked from commit 4d22336f903930eb94588b939c310743a3640276) Signed-off-by: You-Sheng Yang --- .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index bde35437db9d1..b003d1b0be715 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -4039,6 +4039,9 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev) } #endif + /* Disable vblank IRQs aggressively for power-saving. */ + adev_to_drm(adev)->vblank_disable_immediate = true; + /* loops over all connectors on the board */ for (i = 0; i < link_cnt; i++) { struct dc_link *link = NULL; @@ -4083,19 +4086,17 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev) if (psr_feature_enabled) amdgpu_dm_set_psr_caps(link); + + /* TODO: Fix vblank control helpers to delay PSR entry to allow this when + * PSR is also supported. + */ + if (link->psr_settings.psr_feature_enabled) + adev_to_drm(adev)->vblank_disable_immediate = false; } } - /* - * Disable vblank IRQs aggressively for power-saving. - * - * TODO: Fix vblank control helpers to delay PSR entry to allow this when PSR - * is also supported. - */ - adev_to_drm(adev)->vblank_disable_immediate = !psr_feature_enabled; - /* Software is initialized. Now we can register interrupt handlers. */ switch (adev->asic_type) { #if defined(CONFIG_DRM_AMD_DC_SI)