[PATCH 1/3] drm/msm/a3xx: Pass the revision information

Fabio Estevam festevam at denx.de
Tue Jun 20 18:14:21 UTC 2023


On 20/06/2023 14:40, Dmitry Baryshkov wrote:

> This looks like a boilerplate being added to all aYxx drivers (and
> then these fields are also set in adreno_gpu_init()). Can we remove
> duplication somehow?

Sorry, I missed this comment prior to sending v2.

Maybe a simpler fix for a2xx_gpu would be:

--- a/drivers/gpu/drm/msm/adreno/a2xx_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/a2xx_gpu.c
@@ -540,6 +540,10 @@ struct msm_gpu *a2xx_gpu_init(struct drm_device 
*dev)
         gpu->perfcntrs = perfcntrs;
         gpu->num_perfcntrs = ARRAY_SIZE(perfcntrs);

+       ret = adreno_gpu_init(dev, pdev, adreno_gpu, &funcs, 1);
+       if (ret)
+               goto fail;
+
         if (adreno_is_a20x(adreno_gpu))
                 adreno_gpu->registers = a200_registers;
         else if (adreno_is_a225(adreno_gpu))
@@ -547,10 +551,6 @@ struct msm_gpu *a2xx_gpu_init(struct drm_device 
*dev)
         else
                 adreno_gpu->registers = a220_registers;

-       ret = adreno_gpu_init(dev, pdev, adreno_gpu, &funcs, 1);
-       if (ret)
-               goto fail;
-
         if (!gpu->aspace) {
                 dev_err(dev->dev, "No memory protection without MMU\n");
                 if (!allow_vram_carveout) {

What do you think?

a3xx and a4xx call adreno_gpu_init() prior to adreno_is_xxx() so they 
don't have issues.


More information about the dri-devel mailing list