[AMD Official Use Only - AMD Internal Distribution Only] The series is: Acked-by: Leo Liu <leo.liu@xxxxxxx> > -----Original Message----- > From: Zhang, Boyuan <Boyuan.Zhang@xxxxxxx> > Sent: October 24, 2024 10:35 PM > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Liu, Leo <Leo.Liu@xxxxxxx>; Koenig, > Christian <Christian.Koenig@xxxxxxx>; Deucher, Alexander > <Alexander.Deucher@xxxxxxx>; Khatri, Sunil <Sunil.Khatri@xxxxxxx> > Cc: Zhang, Boyuan <Boyuan.Zhang@xxxxxxx> > Subject: [PATCH 00/29] Separating vcn power management by instance > > From: Boyuan Zhang <boyuan.zhang@xxxxxxx> > > v5: > revise patch #6, #28 based on Christian's comments. > revise patch #7, #8 based on Sunil's comments. > revise patch #24 due to Lijo's recent commit. > > remove patch #28, #29, #31 in v4 based on comments. > > add reviewed-by/acked-by to patch #1-#19, #27, #29 > > v4: > code polishing and minor fixes. > > v3: > move all of the per instance variables from struct amdgpu_vcn to struct > amdgpu_vcn_inst. (patch 10 - 11) > > update amdgpu_device_ip_set_powergating_state() to take the instance as a > new parameter, remove the duplicated function in v2. (patch 19) > > update all amdgpu_vcn_* helpers to handle vcn instance. All functions are > now only handle the given vcn instance. (patch 20 - 26) > > update all vcn ip callback functions to handle vcn instance. All functions are > now only handle the given vcn instance. (patch 27 - 32) > > > 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. > > 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. > > Boyuan Zhang (29): > 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 dpm_set_powergating_by_smu > drm/amdgpu: add inst to amdgpu_dpm_enable_vcn > drm/amdgpu: pass ip_block in set_powergating_state > drm/amdgpu: pass ip_block in set_clockgating_state > drm/amdgpu: track instances of the same IP block > drm/amdgpu: move per inst variables to amdgpu_vcn_inst > 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 > drm/amdgpu: early_init for each vcn instance > drm/amdgpu: sw_init for each vcn instance > drm/amdgpu: sw_fini for each vcn instance > drm/amdgpu: hw_init for each vcn instance > drm/amdgpu: suspend for each vcn instance > drm/amdgpu: resume for each vcn instance > drm/amdgpu: setup_ucode for each vcn instance > drm/amdgpu: set funcs for each vcn instance > drm/amdgpu: wait_for_idle for each vcn instance > drm/amdgpu: set_powergating for each vcn instance > > drivers/gpu/drm/amd/amdgpu/amdgpu.h | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 20 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 41 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 24 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_isp.c | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_reset.c | 13 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 341 +++--- > drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 26 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 4 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c | 14 +- > drivers/gpu/drm/amd/amdgpu/cik.c | 4 +- > drivers/gpu/drm/amd/amdgpu/cik_ih.c | 4 +- > drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 6 +- > drivers/gpu/drm/amd/amdgpu/cz_ih.c | 4 +- > drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 4 +- > drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 4 +- > drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 4 +- > drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 4 +- > drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 12 +- > drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 8 +- > drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c | 8 +- > drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 8 +- > drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 8 +- > drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 10 +- > drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 8 +- > drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 6 +- > drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 6 +- > drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 6 +- > drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 6 +- > drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c | 4 +- > drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 6 +- > drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 6 +- > drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 6 +- > drivers/gpu/drm/amd/amdgpu/iceland_ih.c | 4 +- > drivers/gpu/drm/amd/amdgpu/ih_v6_0.c | 8 +- > drivers/gpu/drm/amd/amdgpu/ih_v6_1.c | 8 +- > drivers/gpu/drm/amd/amdgpu/ih_v7_0.c | 8 +- > drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c | 16 +- > drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c | 16 +- > drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c | 16 +- > drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c | 16 +- > drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c | 14 +- > drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c | 16 +- > drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c | 16 +- > drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c | 2 +- > drivers/gpu/drm/amd/amdgpu/navi10_ih.c | 6 +- > drivers/gpu/drm/amd/amdgpu/nv.c | 6 +- > drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 4 +- > drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 6 +- > drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 12 +- > drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 10 +- > drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 6 +- > drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 6 +- > drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 4 +- > drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c | 4 +- > drivers/gpu/drm/amd/amdgpu/si.c | 4 +- > drivers/gpu/drm/amd/amdgpu/si_dma.c | 8 +- > drivers/gpu/drm/amd/amdgpu/si_ih.c | 4 +- > drivers/gpu/drm/amd/amdgpu/soc15.c | 6 +- > drivers/gpu/drm/amd/amdgpu/soc21.c | 8 +- > drivers/gpu/drm/amd/amdgpu/soc24.c | 8 +- > drivers/gpu/drm/amd/amdgpu/tonga_ih.c | 4 +- > drivers/gpu/drm/amd/amdgpu/uvd_v3_1.c | 6 +- > drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c | 10 +- > drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c | 19 +- > drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c | 19 +- > drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c | 4 +- > drivers/gpu/drm/amd/amdgpu/vce_v2_0.c | 10 +- > drivers/gpu/drm/amd/amdgpu/vce_v3_0.c | 14 +- > drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 8 +- > drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 76 +- > drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 60 +- > drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 1077 ++++++++--------- > drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 832 +++++++------ > drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 720 ++++++----- > drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c | 646 +++++----- > drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c | 695 ++++++----- > drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c | 609 +++++----- > drivers/gpu/drm/amd/amdgpu/vega10_ih.c | 6 +- > drivers/gpu/drm/amd/amdgpu/vega20_ih.c | 6 +- > drivers/gpu/drm/amd/amdgpu/vi.c | 6 +- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 4 +- > drivers/gpu/drm/amd/include/amd_shared.h | 4 +- > .../gpu/drm/amd/include/kgd_pp_interface.h | 4 +- > drivers/gpu/drm/amd/pm/amdgpu_dpm.c | 55 +- > drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h | 3 +- > drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c | 16 +- > drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 4 +- > .../gpu/drm/amd/pm/powerplay/amd_powerplay.c | 8 +- > .../drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c | 6 +- > .../powerplay/hwmgr/smu7_clockpowergating.c | 12 +- > .../drm/amd/pm/powerplay/hwmgr/smu8_hwmgr.c | 12 +- > .../drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c | 6 +- > drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 65 +- > 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 +- > 113 files changed, 3030 insertions(+), 3012 deletions(-) > > -- > 2.34.1