diff mbox series

[2/5] drm/msm/adreno: Generate name from chipid for 7c3

Message ID 20220221201039.2.I9436e0e300f76b2e6c34136a0b902e8cfd73e0d6@changeid (mailing list archive)
State Superseded
Headers show
Series Support 7c3 gpu SKUs | expand

Commit Message

Akhil P Oommen Feb. 21, 2022, 2:40 p.m. UTC
Use a gpu name which is sprintf'ed from the chipid for 7c3 gpu instead of
hardcoding one. This helps to avoid code churn in case of a gpu rename.

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

 drivers/gpu/drm/msm/adreno/adreno_device.c |  1 -
 drivers/gpu/drm/msm/adreno/adreno_gpu.c    | 14 ++++++++++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

Comments

Rob Clark Feb. 23, 2022, 12:58 a.m. UTC | #1
On Mon, Feb 21, 2022 at 6:41 AM Akhil P Oommen <quic_akhilpo@quicinc.com> wrote:
>
> Use a gpu name which is sprintf'ed from the chipid for 7c3 gpu instead of
> hardcoding one. This helps to avoid code churn in case of a gpu rename.
>
> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
> ---
>
>  drivers/gpu/drm/msm/adreno/adreno_device.c |  1 -
>  drivers/gpu/drm/msm/adreno/adreno_gpu.c    | 14 ++++++++++++--
>  2 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c b/drivers/gpu/drm/msm/adreno/adreno_device.c
> index fb26193..89cfd84 100644
> --- a/drivers/gpu/drm/msm/adreno/adreno_device.c
> +++ b/drivers/gpu/drm/msm/adreno/adreno_device.c
> @@ -318,7 +318,6 @@ static const struct adreno_info gpulist[] = {
>                 .hwcg = a660_hwcg,
>         }, {
>                 .rev = ADRENO_REV(6, 3, 5, ANY_ID),
> -               .name = "Adreno 7c Gen 3",
>                 .fw = {
>                         [ADRENO_FW_SQE] = "a660_sqe.fw",
>                         [ADRENO_FW_GMU] = "a660_gmu.bin",
> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> index f33cfa4..158bbf7 100644
> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> @@ -929,12 +929,22 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
>         struct adreno_platform_config *config = dev->platform_data;
>         struct msm_gpu_config adreno_gpu_config  = { 0 };
>         struct msm_gpu *gpu = &adreno_gpu->base;
> +       struct adreno_rev *rev = &config->rev;
> +       const char *gpu_name;
> +       static char name[8];

I think 8 is not always enough.. but maybe just use devm_kasprintf()
to keep it simpler?

BR,
-R

>
>         adreno_gpu->funcs = funcs;
>         adreno_gpu->info = adreno_info(config->rev);
>         adreno_gpu->gmem = adreno_gpu->info->gmem;
>         adreno_gpu->revn = adreno_gpu->info->revn;
> -       adreno_gpu->rev = config->rev;
> +       adreno_gpu->rev = *rev;
> +
> +       gpu_name = adreno_gpu->info->name;
> +       if (!gpu_name) {
> +               sprintf(name, "%d.%d.%d.%d", rev->core, rev->major, rev->minor,
> +                               rev->patchid);
> +               gpu_name = name;
> +       }
>
>         adreno_gpu_config.ioname = "kgsl_3d0_reg_memory";
>
> @@ -948,7 +958,7 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
>         pm_runtime_enable(dev);
>
>         return msm_gpu_init(drm, pdev, &adreno_gpu->base, &funcs->base,
> -                       adreno_gpu->info->name, &adreno_gpu_config);
> +                       gpu_name, &adreno_gpu_config);
>  }
>
>  void adreno_gpu_cleanup(struct adreno_gpu *adreno_gpu)
> --
> 2.7.4
>
Akhil P Oommen Feb. 23, 2022, 8:08 p.m. UTC | #2
On 2/23/2022 6:28 AM, Rob Clark wrote:
> On Mon, Feb 21, 2022 at 6:41 AM Akhil P Oommen <quic_akhilpo@quicinc.com> wrote:
>> Use a gpu name which is sprintf'ed from the chipid for 7c3 gpu instead of
>> hardcoding one. This helps to avoid code churn in case of a gpu rename.
>>
>> Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
>> ---
>>
>>   drivers/gpu/drm/msm/adreno/adreno_device.c |  1 -
>>   drivers/gpu/drm/msm/adreno/adreno_gpu.c    | 14 ++++++++++++--
>>   2 files changed, 12 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c b/drivers/gpu/drm/msm/adreno/adreno_device.c
>> index fb26193..89cfd84 100644
>> --- a/drivers/gpu/drm/msm/adreno/adreno_device.c
>> +++ b/drivers/gpu/drm/msm/adreno/adreno_device.c
>> @@ -318,7 +318,6 @@ static const struct adreno_info gpulist[] = {
>>                  .hwcg = a660_hwcg,
>>          }, {
>>                  .rev = ADRENO_REV(6, 3, 5, ANY_ID),
>> -               .name = "Adreno 7c Gen 3",
>>                  .fw = {
>>                          [ADRENO_FW_SQE] = "a660_sqe.fw",
>>                          [ADRENO_FW_GMU] = "a660_gmu.bin",
>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
>> index f33cfa4..158bbf7 100644
>> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
>> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
>> @@ -929,12 +929,22 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
>>          struct adreno_platform_config *config = dev->platform_data;
>>          struct msm_gpu_config adreno_gpu_config  = { 0 };
>>          struct msm_gpu *gpu = &adreno_gpu->base;
>> +       struct adreno_rev *rev = &config->rev;
>> +       const char *gpu_name;
>> +       static char name[8];
> I think 8 is not always enough.. but maybe just use devm_kasprintf()
> to keep it simpler?
>
> BR,
> -R
Sounds good. Will update this patch.

-Akhil.
>>          adreno_gpu->funcs = funcs;
>>          adreno_gpu->info = adreno_info(config->rev);
>>          adreno_gpu->gmem = adreno_gpu->info->gmem;
>>          adreno_gpu->revn = adreno_gpu->info->revn;
>> -       adreno_gpu->rev = config->rev;
>> +       adreno_gpu->rev = *rev;
>> +
>> +       gpu_name = adreno_gpu->info->name;
>> +       if (!gpu_name) {
>> +               sprintf(name, "%d.%d.%d.%d", rev->core, rev->major, rev->minor,
>> +                               rev->patchid);
>> +               gpu_name = name;
>> +       }
>>
>>          adreno_gpu_config.ioname = "kgsl_3d0_reg_memory";
>>
>> @@ -948,7 +958,7 @@ int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
>>          pm_runtime_enable(dev);
>>
>>          return msm_gpu_init(drm, pdev, &adreno_gpu->base, &funcs->base,
>> -                       adreno_gpu->info->name, &adreno_gpu_config);
>> +                       gpu_name, &adreno_gpu_config);
>>   }
>>
>>   void adreno_gpu_cleanup(struct adreno_gpu *adreno_gpu)
>> --
>> 2.7.4
>>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c b/drivers/gpu/drm/msm/adreno/adreno_device.c
index fb26193..89cfd84 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_device.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_device.c
@@ -318,7 +318,6 @@  static const struct adreno_info gpulist[] = {
 		.hwcg = a660_hwcg,
 	}, {
 		.rev = ADRENO_REV(6, 3, 5, ANY_ID),
-		.name = "Adreno 7c Gen 3",
 		.fw = {
 			[ADRENO_FW_SQE] = "a660_sqe.fw",
 			[ADRENO_FW_GMU] = "a660_gmu.bin",
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index f33cfa4..158bbf7 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -929,12 +929,22 @@  int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
 	struct adreno_platform_config *config = dev->platform_data;
 	struct msm_gpu_config adreno_gpu_config  = { 0 };
 	struct msm_gpu *gpu = &adreno_gpu->base;
+	struct adreno_rev *rev = &config->rev;
+	const char *gpu_name;
+	static char name[8];
 
 	adreno_gpu->funcs = funcs;
 	adreno_gpu->info = adreno_info(config->rev);
 	adreno_gpu->gmem = adreno_gpu->info->gmem;
 	adreno_gpu->revn = adreno_gpu->info->revn;
-	adreno_gpu->rev = config->rev;
+	adreno_gpu->rev = *rev;
+
+	gpu_name = adreno_gpu->info->name;
+	if (!gpu_name) {
+		sprintf(name, "%d.%d.%d.%d", rev->core, rev->major, rev->minor,
+				rev->patchid);
+		gpu_name = name;
+	}
 
 	adreno_gpu_config.ioname = "kgsl_3d0_reg_memory";
 
@@ -948,7 +958,7 @@  int adreno_gpu_init(struct drm_device *drm, struct platform_device *pdev,
 	pm_runtime_enable(dev);
 
 	return msm_gpu_init(drm, pdev, &adreno_gpu->base, &funcs->base,
-			adreno_gpu->info->name, &adreno_gpu_config);
+			gpu_name, &adreno_gpu_config);
 }
 
 void adreno_gpu_cleanup(struct adreno_gpu *adreno_gpu)