drm/msm/a6xx: Add speedbin support for A619 GPU
authorKonrad Dybcio <konrad.dybcio@somainline.org>
Sat, 28 May 2022 16:03:50 +0000 (18:03 +0200)
committerRob Clark <robdclark@chromium.org>
Wed, 6 Jul 2022 15:41:57 +0000 (08:41 -0700)
There are various SKUs of A619, ranging from 565 MHz to 850 MHz, depending
on the bin. Add support for distinguishing them, so that proper frequency
ranges can be applied, depending on the HW.

Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
Reviewed-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/487590/
Link: https://lore.kernel.org/r/20220528160353.157870-3-konrad.dybcio@somainline.org
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/a6xx_gpu.c

index d5045c99eef91b5f2ae1ea66d2809d00c935f5fc..2db5dbacb160d86141a5f3b478c4aa12ae0fb706 100644 (file)
@@ -1825,6 +1825,22 @@ static u32 a618_get_speed_bin(u32 fuse)
        return UINT_MAX;
 }
 
+static u32 a619_get_speed_bin(u32 fuse)
+{
+       if (fuse == 0)
+               return 0;
+       else if (fuse == 120)
+               return 4;
+       else if (fuse == 138)
+               return 3;
+       else if (fuse == 169)
+               return 2;
+       else if (fuse == 180)
+               return 1;
+
+       return UINT_MAX;
+}
+
 static u32 adreno_7c3_get_speed_bin(u32 fuse)
 {
        if (fuse == 0)
@@ -1844,6 +1860,9 @@ static u32 fuse_to_supp_hw(struct device *dev, struct adreno_rev rev, u32 fuse)
        if (adreno_cmp_rev(ADRENO_REV(6, 1, 8, ANY_ID), rev))
                val = a618_get_speed_bin(fuse);
 
+       if (adreno_cmp_rev(ADRENO_REV(6, 1, 9, ANY_ID), rev))
+               val = a619_get_speed_bin(fuse);
+
        if (adreno_cmp_rev(ADRENO_REV(6, 3, 5, ANY_ID), rev))
                val = adreno_7c3_get_speed_bin(fuse);