From: Boyuan Zhang <boyuan.zhang@xxxxxxx> v6: revise patch #3, #5 based on Alex's comments. add reviewed-by/acked-by and rebase patches. 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 | 41 +- 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 | 73 +- 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, 3020 insertions(+), 3016 deletions(-) -- 2.34.1