Some old plus some new patches which mostly streamline the SDMA ring emission.
More or less it is about replacing repeated runtime array walks (and conditionals in general) with direct lookups for things which are invariant at runtime. Smoke tested on Steam Deck only. Bloat-o-meter (from a debug build though): add/remove: 14/15 grow/shrink: 70/294 up/down: 53590/-196161 (-142571) ... Total: Before=10822624, After=10680053, chg -1.32% --- v2/v3: - Tweaks per individual patch changelogs. v4: - Moved Vanjaram override into aqua_vanjaram.c. (Alex) - Applied r-b's. Cc: Timur Kristóf <[email protected]> Tvrtko Ursulin (6): drm/amdgpu: Add SDMA ring init helper drm/amdgpu: Add amdgpu_sdma_types.h header drm/amdgpu: Convert SDMA instance and index to direct lookup drm/amdgpu: Cache the SDMA CSA address drm/amdgpu: Extend logical to device instance lookup to all devices drm/amdgpu: Use memset32 for SDMA padding drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 +- .../drm/amd/amdgpu/amdgpu_amdkfd_gc_9_4_3.c | 1 + .../gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_ip.c | 67 ++------ drivers/gpu/drm/amd/amdgpu/amdgpu_ip.h | 20 ++- drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 17 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ring.h | 26 +++ drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c | 67 +++----- drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.h | 162 ++++-------------- .../gpu/drm/amd/amdgpu/amdgpu_sdma_types.h | 161 +++++++++++++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_ualink.c | 1 + drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c | 1 + drivers/gpu/drm/amd/amdgpu/aqua_vanjaram.c | 31 +++- drivers/gpu/drm/amd/amdgpu/cik_sdma.c | 1 + drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c | 8 +- drivers/gpu/drm/amd/amdgpu/gfxhub_v1_2.c | 1 + drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 1 + drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 1 + drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c | 1 + drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 1 + drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c | 1 + drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c | 1 + drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c | 1 + drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_1.c | 1 + drivers/gpu/drm/amd/amdgpu/nbio_v7_9.c | 1 + drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c | 25 ++- drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c | 25 ++- drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c | 31 ++-- drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 39 ++--- drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c | 29 ++-- drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 30 ++-- drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c | 32 ++-- drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c | 31 ++-- drivers/gpu/drm/amd/amdgpu/sdma_v7_1.c | 34 ++-- drivers/gpu/drm/amd/amdgpu/soc15_common.h | 6 +- drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 1 + drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 1 + drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 1 + drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c | 1 + drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c | 1 + drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c | 1 + drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c | 1 + drivers/gpu/drm/amd/amdgpu/vcn_v5_0_1.c | 1 + drivers/gpu/drm/amd/amdkfd/kfd_device.c | 1 + drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 2 + .../drm/amd/pm/swsmu/smu13/smu_v13_0_12_ppt.c | 1 + .../drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 1 + drivers/gpu/drm/amd/ras/ras_mgr/ras_sys.h | 7 +- 53 files changed, 457 insertions(+), 428 deletions(-) create mode 100644 drivers/gpu/drm/amd/amdgpu/amdgpu_sdma_types.h -- 2.55.0
