Just in case we're dealing with a yet not recognised device.

Reviewed-by: Steven Price <[email protected]>
Signed-off-by: Adrián Larumbe <[email protected]>
---
 drivers/gpu/drm/panfrost/panfrost_gpu.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c 
b/drivers/gpu/drm/panfrost/panfrost_gpu.c
index f94337a6c302..8d049a07d393 100644
--- a/drivers/gpu/drm/panfrost/panfrost_gpu.c
+++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c
@@ -240,9 +240,10 @@ static const struct panfrost_model gpu_models[] = {
        /* MediaTek MT8188 Mali-G57 MC3 */
        GPU_MODEL(g57, 0x9093,
                GPU_REV(g57, 0, 0)),
+       {0},
 };
 
-static void panfrost_gpu_init_features(struct panfrost_device *pfdev)
+static int panfrost_gpu_init_features(struct panfrost_device *pfdev)
 {
        u32 gpu_id, num_js, major, minor, status, rev;
        const char *name = "unknown";
@@ -327,6 +328,12 @@ static void panfrost_gpu_init_features(struct 
panfrost_device *pfdev)
                break;
        }
 
+       if (!model->name) {
+               dev_err(pfdev->base.dev, "GPU model not found: mali-%s id rev 
%#x %#x\n",
+                       name, gpu_id, rev);
+               return -ENODEV;
+       }
+
        bitmap_from_u64(pfdev->features.hw_features, hw_feat);
        bitmap_from_u64(pfdev->features.hw_issues, hw_issues);
 
@@ -347,6 +354,8 @@ static void panfrost_gpu_init_features(struct 
panfrost_device *pfdev)
 
        dev_info(pfdev->base.dev, "shader_present=0x%0llx l2_present=0x%0llx",
                 pfdev->features.shader_present, pfdev->features.l2_present);
+
+       return 0;
 }
 
 void panfrost_cycle_counter_get(struct panfrost_device *pfdev)
@@ -489,7 +498,9 @@ int panfrost_gpu_init(struct panfrost_device *pfdev)
        if (err)
                return err;
 
-       panfrost_gpu_init_features(pfdev);
+       err = panfrost_gpu_init_features(pfdev);
+       if (err)
+               return err;
 
        err = dma_set_mask_and_coherent(pfdev->base.dev,
                                        DMA_BIT_MASK(FIELD_GET(0xff00,
-- 
2.51.0

Reply via email to