From: <boyuan.zhang@amd.com>
To: <amd-gfx@lists.freedesktop.org>, <leo.liu@amd.com>,
<christian.koenig@amd.com>, <alexander.deucher@amd.com>,
<sunil.khatri@amd.com>
Cc: Boyuan Zhang <boyuan.zhang@amd.com>
Subject: [PATCH 00/18] Separating vcn power management by instance
Date: Fri, 4 Oct 2024 14:44:26 -0400 [thread overview]
Message-ID: <20241004184444.435356-1-boyuan.zhang@amd.com> (raw)
From: Boyuan Zhang <boyuan.zhang@amd.com>
Previously, all vcn instance will be powered on/off at the same time
even only one of the instance requests power status change. This patch set
enables vcn to ONLY power on/off the instance that requires power status
change. Other vcn instances will remain the original power status.
v2: complete re-work for all PM changes as suggested-by Christian König and
Alex Deucher. Adding instance to all existing functions, instead of create
new functions. Remove all duplicated PM functions in previous patch set.
Use a new logic to track instance for ip_block with same type as
suggested by Alex. Also, fix wrong ip block index and remove redundant logic
suggested by Christian. Finally rebase all patches based on Sunil's ip block
changes.
Patch 1-6 are SMU changes to only power ON/OFF given VCN instance.
v2: Remove all duplicated PM functions in v1.
Patch 7 is VCN change to separate gating status for each VCN instance.
v2: Remove redundant logic.
Patch 8 is VCN change to handle idle work separately for each VCN instance.
Patch 9 is to pass ip_block in set_powergating_state() callback function.
v2: fix wrong ip block index for AMD_IP_BLOCK_TYPE_GFX
Patch 10 is to track VCN instance in VCN ip_block.
v2: use a new logic to track vcn instance
Patch 11 is to set_powergating_state by instance in amdgpu_device.
Patch 12-17 are to handle ip callback functions separately for each
VCN instance, so that only the given instance will be powered on/off.
Patch 18 is to set powergating state by VCN instance in amdgpu_vcn.
Boyuan Zhang (18):
drm/amd/pm: add inst to dpm_set_vcn_enable
drm/amd/pm: power up or down vcn by instance
drm/amd/pm: add inst to smu_dpm_set_vcn_enable
drm/amd/pm: add inst to set_powergating_by_smu
drm/amd/pm: add inst to amdgpu_dpm_set_powergating_by_smu
add inst to amdgpu_dpm_enable_vcn
drm/amdgpu: pass ip_block in set_powergating_state
drm/amdgpu: track instances of the same IP block
drm/amdgpu: add set_powergating_state_instance
drm/amdgpu/vcn: separate gating state by instance
drm/amdgpu: power vcn 2_5 by instance
drm/amdgpu: power vcn 3_0 by instance
drm/amdgpu: power vcn 4_0 by instance
drm/amdgpu: power vcn 4_0_3 by instance
drm/amdgpu: power vcn 4_0_5 by instance
drm/amdgpu: power vcn 5_0_0 by instance
drm/amdgpu/vcn: separate idle work by instance
drm/amdgpu: set powergating state by vcn instance
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 +
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 18 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 5 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 68 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 19 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_isp.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 82 +--
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 6 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c | 4 +-
drivers/gpu/drm/amd/amdgpu/cik.c | 2 +-
drivers/gpu/drm/amd/amdgpu/cik_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 2 +-
drivers/gpu/drm/amd/amdgpu/cz_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 8 +-
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 6 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/ih_v6_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/ih_v6_1.c | 4 +-
drivers/gpu/drm/amd/amdgpu/ih_v7_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 10 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 10 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c | 10 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c | 10 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c | 8 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c | 10 +-
drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c | 10 +-
drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/nv.c | 2 +-
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 2 +-
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 8 +-
drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 2 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 2 +-
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c | 2 +-
drivers/gpu/drm/amd/amdgpu/si.c | 2 +-
drivers/gpu/drm/amd/amdgpu/si_dma.c | 4 +-
drivers/gpu/drm/amd/amdgpu/si_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/soc15.c | 2 +-
drivers/gpu/drm/amd/amdgpu/soc21.c | 4 +-
drivers/gpu/drm/amd/amdgpu/soc24.c | 4 +-
drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/uvd_v3_1.c | 2 +-
drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 4 +-
drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 4 +-
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 36 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 23 +-
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 593 +++++++++--------
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 610 +++++++++---------
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 541 ++++++++--------
drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c | 476 +++++++-------
drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c | 549 ++++++++--------
drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c | 459 +++++++------
drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/vega20_ih.c | 2 +-
drivers/gpu/drm/amd/amdgpu/vi.c | 2 +-
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
drivers/gpu/drm/amd/include/amd_shared.h | 2 +-
.../gpu/drm/amd/include/kgd_pp_interface.h | 4 +-
drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 49 +-
drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h | 3 +-
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c | 6 +-
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 2 +-
.../gpu/drm/amd/pm/powerplay/amd_powerplay.c | 6 +-
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 59 +-
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 4 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 3 +-
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v14_0.h | 3 +-
.../gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 4 +-
.../gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 4 +-
.../amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 24 +-
.../gpu/drm/amd/pm/swsmu/smu11/vangogh_ppt.c | 4 +-
.../gpu/drm/amd/pm/swsmu/smu12/renoir_ppt.c | 4 +-
.../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 19 +-
.../drm/amd/pm/swsmu/smu13/smu_v13_0_5_ppt.c | 4 +-
.../drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c | 4 +-
.../gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c | 38 +-
104 files changed, 2053 insertions(+), 1929 deletions(-)
--
2.34.1
next reply other threads:[~2024-10-04 18:45 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-04 18:44 boyuan.zhang [this message]
2024-10-04 18:44 ` [PATCH 01/18] drm/amd/pm: add inst to dpm_set_vcn_enable boyuan.zhang
2024-10-04 18:44 ` [PATCH 02/18] drm/amd/pm: power up or down vcn by instance boyuan.zhang
2024-10-04 18:44 ` [PATCH 03/18] drm/amd/pm: add inst to smu_dpm_set_vcn_enable boyuan.zhang
2024-10-04 18:44 ` [PATCH 04/18] drm/amd/pm: add inst to set_powergating_by_smu boyuan.zhang
2024-10-04 19:14 ` Alex Deucher
2024-10-08 22:06 ` Boyuan Zhang
2024-10-04 18:44 ` [PATCH 05/18] drm/amd/pm: add inst to amdgpu_dpm_set_powergating_by_smu boyuan.zhang
2024-10-04 18:44 ` [PATCH 06/18] add inst to amdgpu_dpm_enable_vcn boyuan.zhang
2024-10-04 18:44 ` [PATCH 07/18] drm/amdgpu: pass ip_block in set_powergating_state boyuan.zhang
2024-10-04 18:44 ` [PATCH 08/18] drm/amdgpu: track instances of the same IP block boyuan.zhang
2024-10-04 18:44 ` [PATCH 09/18] drm/amdgpu: add set_powergating_state_instance boyuan.zhang
2024-10-04 19:40 ` Alex Deucher
2024-10-08 22:07 ` Boyuan Zhang
2024-10-04 18:44 ` [PATCH 10/18] drm/amdgpu/vcn: separate gating state by instance boyuan.zhang
2024-10-04 18:44 ` [PATCH 11/18] drm/amdgpu: power vcn 2_5 " boyuan.zhang
2024-10-04 19:52 ` Alex Deucher
2024-10-08 22:10 ` Boyuan Zhang
2024-10-07 5:22 ` Lazar, Lijo
2024-10-07 13:33 ` Boyuan Zhang
2024-10-07 13:50 ` Lazar, Lijo
2024-10-07 14:17 ` Alex Deucher
2024-10-07 14:29 ` Christian König
2024-10-07 14:32 ` Lazar, Lijo
2024-10-07 15:24 ` Alex Deucher
2024-10-08 7:03 ` Lazar, Lijo
2024-10-08 22:04 ` Boyuan Zhang
2024-10-09 3:43 ` Lazar, Lijo
2024-10-09 13:36 ` Boyuan Zhang
2024-10-09 14:07 ` Lazar, Lijo
2024-10-04 18:44 ` [PATCH 12/18] drm/amdgpu: power vcn 3_0 " boyuan.zhang
2024-10-04 18:44 ` [PATCH 13/18] drm/amdgpu: power vcn 4_0 " boyuan.zhang
2024-10-04 18:44 ` [PATCH 14/18] drm/amdgpu: power vcn 4_0_3 " boyuan.zhang
2024-10-04 18:44 ` [PATCH 15/18] drm/amdgpu: power vcn 4_0_5 " boyuan.zhang
2024-10-04 18:44 ` [PATCH 16/18] drm/amdgpu: power vcn 5_0_0 " boyuan.zhang
2024-10-04 18:44 ` [PATCH 17/18] drm/amdgpu/vcn: separate idle work " boyuan.zhang
2024-10-04 18:44 ` [PATCH 18/18] drm/amdgpu: set powergating state by vcn instance boyuan.zhang
-- strict thread matches above, loose matches on Subject: below --
2024-10-02 4:36 [PATCH 00/18] Separating vcn power management by instance boyuan.zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241004184444.435356-1-boyuan.zhang@amd.com \
--to=boyuan.zhang@amd.com \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=christian.koenig@amd.com \
--cc=leo.liu@amd.com \
--cc=sunil.khatri@amd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.