Message ID | 20220221201039.2.I9436e0e300f76b2e6c34136a0b902e8cfd73e0d6@changeid (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Support 7c3 gpu SKUs | expand |
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 >
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 --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)
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(-)