Switches the is_x185 check to is_x1xx_family to accommodate more devices. Note that I got the X1-45 GPU ID from Windows which may not be correct. Signed-off-by: John Schulz <john.schulz1@xxxxxxxxxxxxxx> --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 3 ++- drivers/gpu/drm/msm/adreno/adreno_gpu.h | 12 +++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c index 06cab2c6fd66..f04aeacae3c2 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c @@ -2,6 +2,7 @@ /* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. */ +#include "adreno_gpu.h" #include "msm_gem.h" #include "msm_mmu.h" #include "msm_gpu_trace.h" @@ -1026,7 +1027,7 @@ static int hw_init(struct msm_gpu *gpu) gpu_write(gpu, REG_A6XX_UCHE_CLIENT_PF, BIT(7) | 0x1); /* Set weights for bicubic filtering */ - if (adreno_is_a650_family(adreno_gpu) || adreno_is_x185(adreno_gpu)) { + if (adreno_is_a650_family(adreno_gpu) || adreno_is_x1xx_family(adreno_gpu)) { gpu_write(gpu, REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_0, 0); gpu_write(gpu, REG_A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_1, 0x3fe05ff4); diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h index 58d7e7915c57..ec36fc915433 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h @@ -526,9 +526,15 @@ static inline int adreno_is_a750(struct adreno_gpu *gpu) return gpu->info->chip_ids[0] == 0x43051401; } -static inline int adreno_is_x185(struct adreno_gpu *gpu) -{ - return gpu->info->chip_ids[0] == 0x43050c01; +static inline int adreno_is_x1xx_family(struct adreno_gpu *gpu) +{ + switch (gpu->info->chip_ids[0]) { + case 0x1fc31043; // X1-45 + case 0x43050c01; // X1-85 + return 1; + default: + return 0; + } } static inline int adreno_is_a740_family(struct adreno_gpu *gpu) -- 2.46.1