diff --git a/drivers/gpu/msm/adreno_a6xx_gmu.c b/drivers/gpu/msm/adreno_a6xx_gmu.c index 47912f42d005..84398b5a4618 100644 --- a/drivers/gpu/msm/adreno_a6xx_gmu.c +++ b/drivers/gpu/msm/adreno_a6xx_gmu.c @@ -55,6 +55,15 @@ static const unsigned int a6xx_gmu_registers[] = { 0x26400, 0x26416, 0x26420, 0x26427, }; +static const unsigned int a660_gmu_registers[] = { + /* GMU CX */ + 0x1F408, 0x1F40D, 0x1F40F, 0x1F40F, 0x1F50B, 0x1F50B, 0x1F860, 0x1F860, + 0x1F870, 0x1F877, 0x1F8C4, 0x1F8C4, 0x1F8F0, 0x1F8F1, 0x1F948, 0x1F94A, + 0x1F966, 0x1F96B, 0x1F970, 0x1F970, 0x1F972, 0x1F979, 0x1F9CD, 0x1F9D4, + 0x1FA02, 0x1FA03, 0x20000, 0x20001, 0x20004, 0x20004, 0x20008, 0x20012, + 0x20018, 0x20018, +}; + #define RSC_CMD_OFFSET 2 #define PDC_CMD_OFFSET 4 @@ -1718,6 +1727,11 @@ static void a6xx_gmu_snapshot(struct kgsl_device *device, adreno_snapshot_registers(device, snapshot, a6xx_gmu_registers, ARRAY_SIZE(a6xx_gmu_registers) / 2); + /* Snapshot A660 specific GMU registers */ + if (adreno_is_a660(ADRENO_DEVICE(device))) + adreno_snapshot_registers(device, snapshot, a660_gmu_registers, + ARRAY_SIZE(a660_gmu_registers) / 2); + if (a6xx_gmu_gx_is_on(device)) { /* Set fence to ALLOW mode so registers can be read */ kgsl_regwrite(device, A6XX_GMU_AO_AHB_FENCE_CTRL, 0);