]> www.infradead.org Git - nvme.git/commitdiff
drm/v3d: Add V3D tech revision to the device information
authorMaíra Canal <mcanal@igalia.com>
Sun, 14 Jul 2024 14:49:11 +0000 (11:49 -0300)
committerMaíra Canal <mcanal@igalia.com>
Mon, 15 Jul 2024 15:45:59 +0000 (12:45 -0300)
The V3D tech revision can be a useful information when configuring
jobs. Therefore, expose it in the `struct v3d_dev` with the V3D tech
version.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240714145243.1223131-1-mcanal@igalia.com
drivers/gpu/drm/v3d/v3d_drv.c
drivers/gpu/drm/v3d/v3d_drv.h

index a47f00b443d3095bc6a0fbc7533adaf437084c9f..5982941d933b2730b5fcad58f15651b9cbeaa5b6 100644 (file)
@@ -265,7 +265,7 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
        struct v3d_dev *v3d;
        int ret;
        u32 mmu_debug;
-       u32 ident1;
+       u32 ident1, ident3;
        u64 mask;
 
        v3d = devm_drm_dev_alloc(dev, &v3d_drm_driver, struct v3d_dev, drm);
@@ -298,6 +298,9 @@ static int v3d_platform_drm_probe(struct platform_device *pdev)
        v3d->cores = V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_NCORES);
        WARN_ON(v3d->cores > 1); /* multicore not yet implemented */
 
+       ident3 = V3D_READ(V3D_HUB_IDENT3);
+       v3d->rev = V3D_GET_FIELD(ident3, V3D_HUB_IDENT3_IPREV);
+
        if (v3d->ver >= 71)
                v3d->max_counters = V3D_V71_NUM_PERFCOUNTERS;
        else if (v3d->ver >= 42)
index 099b962bdfde3a878bda56c509456457539c69ca..49089eefb7c7d1030ac1ad3322b1cfaac79701d0 100644 (file)
@@ -98,10 +98,12 @@ struct v3d_perfmon {
 struct v3d_dev {
        struct drm_device drm;
 
-       /* Short representation (e.g. 33, 41) of the V3D tech version
-        * and revision.
-        */
+       /* Short representation (e.g. 33, 41) of the V3D tech version */
        int ver;
+
+       /* Short representation (e.g. 5, 6) of the V3D tech revision */
+       int rev;
+
        bool single_irq_line;
 
        /* Different revisions of V3D have different total number of performance