mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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:
committed by
Steven Price
parent
5c0c825ae4
commit
16dd7e0305
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user