From: Konrad Dybcio <[email protected]> Fill out the register tables to enable IFPC on these SKUs.
Signed-off-by: Konrad Dybcio <[email protected]> --- drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 47 +++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c index 5e1d91a73a4e..89829fa8f4f4 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c @@ -814,6 +814,43 @@ static const u32 a630_pwrup_reglist_regs[] = { DECLARE_ADRENO_REGLIST_LIST(a630_pwrup_reglist); +static const u32 a640_pwrup_reglist_regs[] = { + REG_A6XX_VSC_ADDR_MODE_CNTL, + REG_A6XX_GRAS_ADDR_MODE_CNTL, + REG_A6XX_RB_ADDR_MODE_CNTL, + REG_A6XX_PC_ADDR_MODE_CNTL, + REG_A6XX_HLSQ_ADDR_MODE_CNTL, + REG_A6XX_VFD_ADDR_MODE_CNTL, + REG_A6XX_VPC_ADDR_MODE_CNTL, + REG_A6XX_UCHE_ADDR_MODE_CNTL, + REG_A6XX_SP_ADDR_MODE_CNTL, + REG_A6XX_TPL1_ADDR_MODE_CNTL, + REG_A6XX_UCHE_WRITE_RANGE_MAX, + REG_A6XX_UCHE_WRITE_RANGE_MAX + 1, + REG_A6XX_UCHE_TRAP_BASE, + REG_A6XX_UCHE_TRAP_BASE + 1, + REG_A6XX_UCHE_WRITE_THRU_BASE, + REG_A6XX_UCHE_WRITE_THRU_BASE + 1, + REG_A6XX_UCHE_GMEM_RANGE_MIN, + REG_A6XX_UCHE_GMEM_RANGE_MIN + 1, + REG_A6XX_UCHE_GMEM_RANGE_MAX, + REG_A6XX_UCHE_GMEM_RANGE_MAX + 1, + REG_A6XX_UCHE_FILTER_CNTL, + REG_A6XX_UCHE_CACHE_WAYS, + REG_A6XX_UCHE_MODE_CNTL, + REG_A6XX_RB_NC_MODE_CNTL, + REG_A6XX_TPL1_NC_MODE_CNTL, + REG_A6XX_SP_NC_MODE_CNTL, + REG_A6XX_PC_DBG_ECO_CNTL, + REG_A6XX_RB_CONTEXT_SWITCH_GMEM_SAVE_RESTORE_ENABLE, + REG_A6XX_UCHE_GBIF_GX_CONFIG, + REG_A6XX_UCHE_CLIENT_PF, + REG_A6XX_RBBM_GBIF_CLIENT_QOS_CNTL, + REG_A6XX_RBBM_PERFCTR_CNTL, +}; + +DECLARE_ADRENO_REGLIST_LIST(a640_pwrup_reglist); + static const struct adreno_info a6xx_gpus[] = { { .chip_ids = ADRENO_CHIP_IDS(0x06010000), @@ -1115,7 +1152,8 @@ static const struct adreno_info a6xx_gpus[] = { }, .gmem = SZ_1M, .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT | - ADRENO_QUIRK_4GB_VA, + ADRENO_QUIRK_4GB_VA | + ADRENO_QUIRK_IFPC, .inactive_period = DRM_MSM_INACTIVE_PERIOD, .funcs = &a6xx_gpu_funcs, .zapfw = "a640_zap.mdt", @@ -1124,6 +1162,8 @@ static const struct adreno_info a6xx_gpus[] = { .protect = &a630_protect, .gmu_cgc_mode = 0x00020202, .prim_fifo_threshold = 0x00180000, + .ifpc_reglist = &a630_ifpc_reglist, + .pwrup_reglist = &a640_pwrup_reglist, }, .speedbins = ADRENO_SPEEDBINS( { 0, 0 }, @@ -1238,7 +1278,8 @@ static const struct adreno_info a6xx_gpus[] = { }, .gmem = SZ_2M, .quirks = ADRENO_QUIRK_HAS_CACHED_COHERENT | - ADRENO_QUIRK_4GB_VA, + ADRENO_QUIRK_4GB_VA | + ADRENO_QUIRK_IFPC, .inactive_period = DRM_MSM_INACTIVE_PERIOD, .funcs = &a6xx_gpu_funcs, .zapfw = "a640_zap.mdt", @@ -1247,6 +1288,8 @@ static const struct adreno_info a6xx_gpus[] = { .protect = &a630_protect, .gmu_cgc_mode = 0x00020202, .prim_fifo_threshold = 0x00200200, + .ifpc_reglist = &a630_ifpc_reglist, + .pwrup_reglist = &a640_pwrup_reglist, }, }, { .chip_ids = ADRENO_CHIP_IDS(0x06090000), -- 2.56.0
