| From 895c92e86bf98f16d95965e8a6d67550f3b7fa51 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 18 Nov 2021 15:50:31 +0530 |
| Subject: drm/msm/a6xx: Fix uinitialized use of gpu_scid |
| |
| From: Akhil P Oommen <akhilpo@codeaurora.org> |
| |
| [ Upstream commit 9ba873e66ed317a1ff645d5e52c2e72597ff3d18 ] |
| |
| Avoid a possible uninitialized use of gpu_scid variable to fix the |
| below smatch warning: |
| drivers/gpu/drm/msm/adreno/a6xx_gpu.c:1480 a6xx_llc_activate() |
| error: uninitialized symbol 'gpu_scid'. |
| |
| Reported-by: Dan Carpenter <dan.carpenter@oracle.com> |
| Signed-off-by: Akhil P Oommen <akhilpo@codeaurora.org> |
| Link: https://lore.kernel.org/r/20211118154903.3.Ie4ac321feb10168af569d9c2b4cf6828bed8122c@changeid |
| Signed-off-by: Rob Clark <robdclark@chromium.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 18 +++++++++--------- |
| 1 file changed, 9 insertions(+), 9 deletions(-) |
| |
| diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c |
| index 267a880811d65..723074aae5b63 100644 |
| --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c |
| +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c |
| @@ -1424,17 +1424,24 @@ static void a6xx_llc_activate(struct a6xx_gpu *a6xx_gpu) |
| { |
| struct adreno_gpu *adreno_gpu = &a6xx_gpu->base; |
| struct msm_gpu *gpu = &adreno_gpu->base; |
| - u32 gpu_scid, cntl1_regval = 0; |
| + u32 cntl1_regval = 0; |
| |
| if (IS_ERR(a6xx_gpu->llc_mmio)) |
| return; |
| |
| if (!llcc_slice_activate(a6xx_gpu->llc_slice)) { |
| - gpu_scid = llcc_get_slice_id(a6xx_gpu->llc_slice); |
| + u32 gpu_scid = llcc_get_slice_id(a6xx_gpu->llc_slice); |
| |
| gpu_scid &= 0x1f; |
| cntl1_regval = (gpu_scid << 0) | (gpu_scid << 5) | (gpu_scid << 10) | |
| (gpu_scid << 15) | (gpu_scid << 20); |
| + |
| + /* On A660, the SCID programming for UCHE traffic is done in |
| + * A6XX_GBIF_SCACHE_CNTL0[14:10] |
| + */ |
| + if (adreno_is_a660_family(adreno_gpu)) |
| + gpu_rmw(gpu, REG_A6XX_GBIF_SCACHE_CNTL0, (0x1f << 10) | |
| + (1 << 8), (gpu_scid << 10) | (1 << 8)); |
| } |
| |
| /* |
| @@ -1471,13 +1478,6 @@ static void a6xx_llc_activate(struct a6xx_gpu *a6xx_gpu) |
| } |
| |
| gpu_rmw(gpu, REG_A6XX_GBIF_SCACHE_CNTL1, GENMASK(24, 0), cntl1_regval); |
| - |
| - /* On A660, the SCID programming for UCHE traffic is done in |
| - * A6XX_GBIF_SCACHE_CNTL0[14:10] |
| - */ |
| - if (adreno_is_a660_family(adreno_gpu)) |
| - gpu_rmw(gpu, REG_A6XX_GBIF_SCACHE_CNTL0, (0x1f << 10) | |
| - (1 << 8), (gpu_scid << 10) | (1 << 8)); |
| } |
| |
| static void a6xx_llc_slices_destroy(struct a6xx_gpu *a6xx_gpu) |
| -- |
| 2.33.0 |
| |