drm/panfrost: Handle inexistent GPU during probe

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

Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Link: https://lore.kernel.org/r/20251019145225.3621989-3-adrian.larumbe@collabora.com
Signed-off-by: Steven Price <steven.price@arm.com>
This commit is contained in:
Adrián Larumbe
2025-10-19 15:52:07 +01:00
committed by Steven Price
parent 5c0c825ae4
commit 16dd7e0305

View File

@@ -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,