]> www.infradead.org Git - users/jedix/linux-maple.git/commit
drm/msm: adreno: add plumbing to generate bandwidth vote table for GMU
authorNeil Armstrong <neil.armstrong@linaro.org>
Tue, 17 Dec 2024 14:51:15 +0000 (15:51 +0100)
committerRob Clark <robdclark@chromium.org>
Fri, 3 Jan 2025 15:20:27 +0000 (07:20 -0800)
commitff4a7f6bff527491b8a937ae4633b7066ce301f2
treed4284f4325b5787f699b64f2e1f67da7d97e4935
parent5b0619539c109325cdc516a2c1aded57262ec51b
drm/msm: adreno: add plumbing to generate bandwidth vote table for GMU

The Adreno GPU Management Unit (GMU) can also scale DDR Bandwidth along
the Frequency and Power Domain level, but by default we leave the
OPP core scale the interconnect ddr path.

While scaling via the interconnect path was sufficient, newer GPUs
like the A750 requires specific vote paremeters and bandwidth to
achieve full functionality.

In order to calculate vote values used by the GPU Management
Unit (GMU), we need to parse all the possible OPP Bandwidths and
create a vote value to be sent to the appropriate Bus Control
Modules (BCMs) declared in the GPU info struct.

This vote value is called IB, while on the other side the GMU also
takes another vote called AB which is a 16bit quantized value
of the floor bandwidth against the maximum supported bandwidth.
The AB vote will be calculated later when setting the frequency.

The vote array will then be used to dynamically generate the GMU
bw_table sent during the GMU power-up.

Reviewed-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/629395/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/a6xx_gmu.c
drivers/gpu/drm/msm/adreno/a6xx_gmu.h
drivers/gpu/drm/msm/adreno/a6xx_gpu.h