If we have nomodeset on the kernel command line we should have the
firmware framebuffer driver kept as is and not try to load the
full-blown KMS driver.

In this case, let's just register the v3d driver.

Signed-off-by: Maxime Ripard <[email protected]>
---
 drivers/gpu/drm/vc4/vc4_drv.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
index 16abc3a3d601..12694e2201e7 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.c
+++ b/drivers/gpu/drm/vc4/vc4_drv.c
@@ -357,12 +357,22 @@ static int __init vc4_drm_register(void)
 {
        int ret;
 
-       ret = platform_register_drivers(component_drivers,
-                                       ARRAY_SIZE(component_drivers));
-       if (ret)
-               return ret;
+       if (!drm_firmware_drivers_only()) {
+               ret = platform_register_drivers(component_drivers,
+                                               ARRAY_SIZE(component_drivers));
+               if (ret)
+                       return ret;
 
-       return platform_driver_register(&vc4_platform_driver);
+               ret = platform_driver_register(&vc4_platform_driver);
+               if (ret)
+                       return ret;
+       } else {
+               ret = platform_driver_register(&vc4_v3d_driver);
+               if (ret)
+                       return ret;
+       }
+
+       return 0;
 }
 
 static void __exit vc4_drm_unregister(void)
-- 
2.33.1

Reply via email to