Hi Stefan,
On 16/03/25 13:51, Stefan Wahren wrote:
Hi Maíra,
Am 16.03.25 um 15:15 schrieb Maíra Canal:
The V3D driver currently determines the GPU tech version (33, 41...)
by reading a register. This approach has worked so far since this
information wasn’t needed before powering on the GPU.
V3D 7.1 introduces new registers that must be written to power on the
GPU, requiring us to know the V3D version beforehand. To address this,
associate each supported SoC with the corresponding VideoCore GPU version
as part of the device data.
To prevent possible mistakes, add an assertion to verify that the version
specified in the device data matches the one reported by the hardware.
If there is a mismatch, the kernel will trigger a warning.
Reviewed-by: Iago Toral Quiroga <itoral@xxxxxxxxxx>
Signed-off-by: Maíra Canal <mcanal@xxxxxxxxxx>
---
drivers/gpu/drm/v3d/v3d_debugfs.c | 126 ++++++++++++++++++
+-------------------
drivers/gpu/drm/v3d/v3d_drv.c | 22 +++++--
drivers/gpu/drm/v3d/v3d_drv.h | 11 +++-
drivers/gpu/drm/v3d/v3d_gem.c | 10 +--
drivers/gpu/drm/v3d/v3d_irq.c | 6 +-
drivers/gpu/drm/v3d/v3d_perfmon.c | 4 +-
drivers/gpu/drm/v3d/v3d_sched.c | 6 +-
7 files changed, 101 insertions(+), 84 deletions(-)
diff --git a/drivers/gpu/drm/v3d/v3d_debugfs.c b/drivers/gpu/drm/v3d/
v3d_debugfs.c
index
76816f2551c10026a775e4331ad7eb2f008cfb0a..7e789e181af0ac138044f194a29555c30ab01836 100644
--- a/drivers/gpu/drm/v3d/v3d_debugfs.c
+++ b/drivers/gpu/drm/v3d/v3d_debugfs.c
[...]
@@ -196,11 +196,11 @@ static int v3d_v3d_debugfs_ident(struct seq_file
*m, void *unused)
seq_printf(m, " QPUs: %d\n", nslc * qups);
seq_printf(m, " Semaphores: %d\n",
V3D_GET_FIELD(ident1, V3D_IDENT1_NSEM));
- if (v3d->ver <= 42) {
+ if (v3d->ver <= V3D_GEN_42) {
seq_printf(m, " BCG int: %d\n",
(ident2 & V3D_IDENT2_BCG_INT) != 0);
}
- if (v3d->ver < 40) {
+ if (v3d->ver < V3D_GEN_41) {
I had expected that such a behavior change was at least mentioned in the
commit log.
I can add a comment about it in the commit message, but this isn't a
functional change. V3D 4.0 doesn't exist and hypothetically, if it did,
the driver doesn't support it. The driver only supports 33, 41, 42, and
71.
In the end, `v3d->ver < 40` means V3D 3.3.
Best Regards,
- Maíra
Except of this, look good to me.