The bitfield positions changed in a7xx.

v2: Don't open-code the bitfield building

Signed-off-by: Rob Clark <[email protected]>
---
 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c   | 11 +++++++++--
 drivers/gpu/drm/msm/registers/adreno/a6xx.xml |  6 +++++-
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c 
b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
index 173c14f215a7..8317e1107389 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c
@@ -174,8 +174,15 @@ static int a6xx_crashdumper_run(struct msm_gpu *gpu,
 static int debugbus_read(struct msm_gpu *gpu, u32 block, u32 offset,
                u32 *data)
 {
-       u32 reg = A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX(offset) |
-               A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL(block);
+       u32 reg;
+
+       if (to_adreno_gpu(gpu)->info->family >= ADRENO_7XX_GEN1) {
+               reg = A7XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX(offset) |
+                       A7XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL(block);
+       } else {
+               reg = A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_INDEX(offset) |
+                       A6XX_DBGC_CFG_DBGBUS_SEL_D_PING_BLK_SEL(block);
+       }
 
        gpu_write(gpu, REG_A6XX_DBGC_CFG_DBGBUS_SEL_A, reg);
        gpu_write(gpu, REG_A6XX_DBGC_CFG_DBGBUS_SEL_B, reg);
diff --git a/drivers/gpu/drm/msm/registers/adreno/a6xx.xml 
b/drivers/gpu/drm/msm/registers/adreno/a6xx.xml
index d860fd94feae..7a32f6715752 100644
--- a/drivers/gpu/drm/msm/registers/adreno/a6xx.xml
+++ b/drivers/gpu/drm/msm/registers/adreno/a6xx.xml
@@ -594,10 +594,14 @@ by a particular renderpass/blit.
        <reg32 offset="0x0600" name="DBGC_CFG_DBGBUS_SEL_A"/>
        <reg32 offset="0x0601" name="DBGC_CFG_DBGBUS_SEL_B"/>
        <reg32 offset="0x0602" name="DBGC_CFG_DBGBUS_SEL_C"/>
-       <reg32 offset="0x0603" name="DBGC_CFG_DBGBUS_SEL_D">
+       <reg32 offset="0x0603" name="DBGC_CFG_DBGBUS_SEL_D" variants="A6XX">
                <bitfield high="7" low="0" name="PING_INDEX"/>
                <bitfield high="15" low="8" name="PING_BLK_SEL"/>
        </reg32>
+       <reg32 offset="0x0603" name="DBGC_CFG_DBGBUS_SEL_D" variants="A7XX-">
+               <bitfield high="7" low="0" name="PING_INDEX"/>
+               <bitfield high="24" low="16" name="PING_BLK_SEL"/>
+       </reg32>
        <reg32 offset="0x0604" name="DBGC_CFG_DBGBUS_CNTLT">
                <bitfield high="5" low="0" name="TRACEEN"/>
                <bitfield high="14" low="12" name="GRANU"/>
-- 
2.50.1

Reply via email to