[PATCH 00/18] Separating vcn power management by instance

boyuan.zhang at amd.com boyuan.zhang at amd.com
Wed Oct 2 04:36:09 UTC 2024


From: Boyuan Zhang <boyuan.zhang at 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.

Patch 1-6 are SMU changes to only power ON/OFF given VCN instance.

Patch 7 is VCN change to separate gating status for each VCN instance.

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.
Suggested-by Christian König.

Patch 10 is to track VCN instance in VCN ip_block.
Suggested-by Christian König and Alex Deucher.

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 new vcn enable function pointer
  drm/amd/pm: enable vcn by instance for smu v13
  drm/amd/pm: enable vcn by instance for smu v14
  drm/amd/pm: enable vcn by instance for smu 11
  drm/amd/pm: set vcn enable by instance
  drm/amd/pm: set powergating by smu by instance
  drm/amdgpu/vcn: separate gating state by instance
  drm/amdgpu/vcn: separate idle work by instance
  drm/amdgpu: pass ip_block in set_powergating_state
  drm/amdgpu: add ip block with instance
  drm/amdgpu: add set_powergating_state_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: set powergating state by vcn instance

 drivers/gpu/drm/amd/amdgpu/amdgpu.h           |   9 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c       |   4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c    |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |  80 ++-
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c |  19 +-
 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        |   6 +-
 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         |   4 +-
 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/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        |   4 +-
 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         |  29 +-
 drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c         |  18 +-
 drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c         | 580 +++++++++--------
 drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c         | 605 +++++++++---------
 drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c         | 531 ++++++++-------
 drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c       | 486 +++++++-------
 drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c       | 538 ++++++++--------
 drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c       | 448 +++++++------
 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    |   2 +
 drivers/gpu/drm/amd/pm/amdgpu_dpm.c           |  67 ++
 drivers/gpu/drm/amd/pm/inc/amdgpu_dpm.h       |   4 +
 drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c    |   2 +-
 drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c    |   2 +-
 .../gpu/drm/amd/pm/powerplay/amd_powerplay.c  |   2 +-
 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c     | 138 +++-
 drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h |  10 +-
 drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h  |   5 +-
 drivers/gpu/drm/amd/pm/swsmu/inc/smu_v14_0.h  |   5 +-
 .../amd/pm/swsmu/smu11/sienna_cichlid_ppt.c   |  24 +-
 .../gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c    |  21 +-
 .../drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c  |   2 +-
 .../drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c  |   2 +-
 .../drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c  |   2 +-
 .../gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c    |  40 +-
 .../drm/amd/pm/swsmu/smu14/smu_v14_0_0_ppt.c  |   2 +-
 .../drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c  |   2 +-
 101 files changed, 2132 insertions(+), 1871 deletions(-)

-- 
2.34.1



More information about the amd-gfx mailing list