From: Konrad Dybcio <[email protected]>

Extend it to all targets with a real GMU and use a rmw instead of a
full write to preserve other things within that register.

Signed-off-by: Konrad Dybcio <[email protected]>
---
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c             | 6 +++---
 drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml | 1 +
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 92e8c8abb86d..48d3ee4d55d9 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1332,10 +1332,10 @@ static int hw_init(struct msm_gpu *gpu)
        /* Turn on performance counters */
        gpu_write(gpu, REG_A6XX_RBBM_PERFCTR_CNTL, 0x1);
 
-       if (adreno_is_a7xx(adreno_gpu)) {
+       if (!adreno_has_gmu_wrapper(adreno_gpu)) {
                /* Turn on the IFPC counter (countable 4 on XOCLK4) */
-               gmu_write(&a6xx_gpu->gmu, 
REG_A6XX_GMU_CX_GMU_POWER_COUNTER_SELECT_1,
-                         FIELD_PREP(GENMASK(7, 0), 0x4));
+               gmu_rmw(&a6xx_gpu->gmu, 
REG_A6XX_GMU_CX_GMU_POWER_COUNTER_SELECT_1,
+                       GENMASK(7, 0), 0x4);
        }
 
        /* Select CP0 to always count cycles */
diff --git a/drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml 
b/drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml
index b3082738c99d..4f934c194f73 100644
--- a/drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml
+++ b/drivers/gpu/drm/msm/registers/adreno/a6xx_gmu.xml
@@ -83,6 +83,7 @@ xsi:schemaLocation="https://gitlab.freedesktop.org/freedreno/ 
rules-fd.xsd">
        <reg32 offset="0x1f84a" name="GMU_CX_GMU_POWER_COUNTER_XOCLK_3_L"/>
        <reg32 offset="0x1f84b" name="GMU_CX_GMU_POWER_COUNTER_XOCLK_3_H"/>
        <reg32 offset="0x1f84c" name="GMU_CX_GMU_POWER_COUNTER_XOCLK_4_L"/>
+       <reg32 offset="0x1fca8" name="GMU_CX_GMU_POWER_COUNTER_XOCLK_4_L" 
variants="A8XX-"/>
        <reg32 offset="0x1f84d" name="GMU_CX_GMU_POWER_COUNTER_XOCLK_4_H"/>
        <reg32 offset="0x1f84e" name="GMU_CX_GMU_POWER_COUNTER_XOCLK_5_L"/>
        <reg32 offset="0x1f84f" name="GMU_CX_GMU_POWER_COUNTER_XOCLK_5_H"/>

-- 
2.56.0

Reply via email to