Quoting Thomas Zimmermann (2024-08-21 10:56:59-03:00) >Setting 'nomodeset' on the kernel command line disables all graphics >drivers with modesetting capabilities; leaving only firmware drivers, >such as simpledrm or efifb. > >Most DRM drivers automatically support 'nomodeset' via DRM's module >helper macros. In xe, which uses regular module_init(), manually call >drm_firmware_drivers_only() to test for 'nomodeset'. Do not register >the driver if set. > >Signed-off-by: Thomas Zimmermann <tzimmermann@xxxxxxx> >--- > drivers/gpu/drm/xe/xe_module.c | 5 +++++ > 1 file changed, 5 insertions(+) > >diff --git a/drivers/gpu/drm/xe/xe_module.c b/drivers/gpu/drm/xe/xe_module.c >index 923460119cec..60fb7dd26903 100644 >--- a/drivers/gpu/drm/xe/xe_module.c >+++ b/drivers/gpu/drm/xe/xe_module.c >@@ -8,6 +8,8 @@ > #include <linux/init.h> > #include <linux/module.h> > >+#include <drm/drm_module.h> >+ > #include "xe_drv.h" > #include "xe_hw_fence.h" > #include "xe_pci.h" >@@ -92,6 +94,9 @@ static int __init xe_init(void) > { > int err, i; > >+ if (drm_firmware_drivers_only()) >+ return -ENODEV; >+ Hm... But what if xe is to be used only for compute or render? Shouldn't we handle this somewhere else? Taking a quick look, xe_display_probe() might be a good candidate? -- Gustavo Sousa > for (i = 0; i < ARRAY_SIZE(init_funcs); i++) { > err = init_funcs[i].init(); > if (err) { >-- >2.46.0 >