V3D 3.3 (Broadcom BCM7268) and V3D 4.1 (Broadcom BCM7278) has had no
in-tree userspace since Mesa dropped support in 2024, on the grounds
that those generations were no longer being tested. The situation in
the kernel is similar: the maintainers don't have this hardware, the
hardware is not available for purchase, and there is no known user of
these GPUs.

With no userspace left to drive it and no known users, maintaining the
ver <= 41 code paths is a cost without a benefit, considering that these
paths are not being exercised on real hardware.

As a first step toward removal, emit a deprecation warning at probe for
V3D versions earlier than or equal to 4.1. The hardware remains
functional for now; this only warns. If any real user appears and
explain its use-case, support can be retained.

Schedule the removal of V3D 3.3 and 4.1 support to the next kernel
release.

Link: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25851
Signed-off-by: Maíra Canal <[email protected]>
---
 drivers/gpu/drm/v3d/v3d_drv.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/v3d/v3d_drv.c b/drivers/gpu/drm/v3d/v3d_drv.c
index 805d84435ee0..8d914dbc3315 100644
--- a/drivers/gpu/drm/v3d/v3d_drv.c
+++ b/drivers/gpu/drm/v3d/v3d_drv.c
@@ -4,7 +4,11 @@
 /**
  * DOC: Broadcom V3D Graphics Driver
  *
- * This driver supports the Broadcom V3D 3.3 and 4.1 OpenGL ES GPUs.
+ * This driver supports the Broadcom V3D 4.2 and 7.1 GPUs.
+ *
+ * Support for V3D 3.3 and 4.1 GPUs is deprecated and it will be removed
+ * in the next kernel release.
+ *
  * For V3D 2.x support, see the VC4 driver.
  *
  * The V3D GPU includes a tiled render (composed of a bin and render
@@ -414,6 +418,18 @@ static int v3d_platform_drm_probe(struct platform_device 
*pdev)
         */
        WARN_ON(v3d->ver != gen);
 
+       /* V3D 3.3 and V3D 4.1 has had no in-tree userspace since Mesa
+        * dropped support in 2024 (MR#25851) and they have no known users.
+        * Due to that, support is scheduled for removal in the next release.
+        */
+       if (v3d->ver <= V3D_GEN_41) {
+               dev_warn(dev,
+                        "V3D %u.%u support is deprecated and will be removed "
+                        "in the next kernel release. If you rely on this 
hardware, "
+                        "please report it to 
[email protected].\n",
+                        v3d->ver / 10, v3d->ver % 10);
+       }
+
        v3d->cores = V3D_GET_FIELD(ident1, V3D_HUB_IDENT1_NCORES);
        WARN_ON(v3d->cores > 1); /* multicore not yet implemented */
 
-- 
2.54.0

Reply via email to