On Fri, Oct 22, 2021 at 2:15 PM Artem S. Tashkinov <aros@xxxxxxx> wrote: > Kernel 5.14.12 introduced this change, git commit > ec7cc3f74b4236860ce612656aa5be7936d1c594: > > --- a/linux-5.14.11/drivers/video/fbdev/Kconfig > +++ b/linux-5.14.12/drivers/video/fbdev/Kconfig > @@ -2191,8 +2191,9 @@ config FB_HYPERV > This framebuffer driver supports Microsoft Hyper-V Synthetic Video. > > config FB_SIMPLE > - bool "Simple framebuffer support" > - depends on (FB = y) && !DRM_SIMPLEDRM > + tristate "Simple framebuffer support" > + depends on FB > + depends on !DRM_SIMPLEDRM > select FB_CFB_FILLRECT > select FB_CFB_COPYAREA > select FB_CFB_IMAGEBLIT > > > However if you enable CONFIG_DRM_SIMPLEDRM=y along with it, the system > will show a black screen on boot while logging these messages: > > [drm] Initialized simpledrm 1.0.0 20200625 for simple-framebuffer.0 on > minor 0 > simple-framebuffer simple-framebuffer.0: [drm] *ERROR* fbdev: Failed to > setup generic emulation (ret=-22) > fbcon: Taking over console If you want to help debug this, you can try adding a few printk statements around this code that could run into -EINVAL (22): drm_file_alloc() ... if (dev->driver->open) { ret = dev->driver->open(dev, file); if (ret < 0) goto out_prime_destroy; } or static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper, int preferred_bpp) ... ret = (*fb_helper->funcs->fb_probe)(fb_helper, &sizes); or static int do_fbcon_takeover(int show_logo) ... if (!num_registered_fb) return -ENODEV; and then go from there. > When CONFIG_DRM_SIMPLEDRM is disabled it proceeds to boot normally: > simple-framebuffer simple-framebuffer.0: framebuffer at 0xe1000000, > 0x300000 bytes > simple-framebuffer simple-framebuffer.0: format=a8r8g8b8, > mode=1024x768x32, linelength=4096 > fbcon: Deferring console take-over > simple-framebuffer simple-framebuffer.0: fb0: simplefb registered! Ok, good, so FB_SIMPLE continues to work as expected if it's built-in. When the driver is a loadable module, it should work once you load the module, but that is only after the system is fully booted. It's possible that there is a bug with the module loading. In the meantime I would suggest to keep using FB_SIMPLE=y if that works for you. Arnd