diff mbox series

[v3,3/4] drm/msm/a6xx: Add speedbin support for A619 GPU

Message ID 20220528160353.157870-3-konrad.dybcio@somainline.org
State Accepted
Commit fba6767c2dabcfaed0a8abf77fde0a8cb1b9fe10
Headers show
Series [v3,1/4] drm/msm/adreno: Remove dead code | expand

Commit Message

Konrad Dybcio May 28, 2022, 4:03 p.m. UTC
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>
---
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

Comments

Akhil P Oommen June 30, 2022, 3:04 p.m. UTC | #1
On 5/28/2022 9:33 PM, Konrad Dybcio wrote:
> 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>
> ---
>   drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 19 +++++++++++++++++++
>   1 file changed, 19 insertions(+)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> index 331cd2f6b9e3..a2a30a9ab677 100644
> --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
> @@ -1836,6 +1836,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)
> @@ -1855,6 +1871,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);
>   

Reviewed-by: Akhil P Oommen <quic_akhilpo@quicinc.com>


-Akhil
diff mbox series

Patch

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
index 331cd2f6b9e3..a2a30a9ab677 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c
@@ -1836,6 +1836,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)
@@ -1855,6 +1871,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);