On Wed, Feb 20, 2019 at 03:36:40PM +0100, Gerd Hoffmann wrote: > Problem: qxl switches from native mode back into vga compatibility mode > when it notices someone is accessing vga registers. And vgacon does > exactly that before fbcon takes over. > > Before qxl switched to the generic fbdev emulation that didn't cause any > problems. With the generic fbdev emulation the switch to vga mode > happens now and then, probably caused by a initialization order change > and triggered by a printk in a bad moment. > > So make sure we take vgacon out of the picture by making dummycon > taking over the console early enough. > > Not entriely happy with the approach, I'm open to better ideas. > > Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> > --- > drivers/gpu/drm/qxl/qxl_drv.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/qxl/qxl_drv.c b/drivers/gpu/drm/qxl/qxl_drv.c > index bb81e310eb..88349dc13e 100644 > --- a/drivers/gpu/drm/qxl/qxl_drv.c > +++ b/drivers/gpu/drm/qxl/qxl_drv.c > @@ -30,6 +30,7 @@ > > #include <linux/module.h> > #include <linux/console.h> > +#include <linux/vt_kern.h> > > #include <drm/drmP.h> > #include <drm/drm.h> > @@ -89,6 +90,11 @@ qxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > > drm_kms_helper_poll_init(&qdev->ddev); > > + /* unbind vgacon to make sure it doesn't touch our vga registers */ > + console_lock(); > + ret = do_take_over_console(&dummy_con, 0, MAX_NR_CONSOLES - 1, true); > + console_unlock(); Still seems very late, in i915 we kick out vgacon as pretty much the first thing in driver load. See i915_kick_out_vgacon. I wonder whether we should integrate that logic into drm_fb_helper_remove_conflicting_pci_framebuffers, by checking whether that pci device can decode VGA and kick out vgacon in that case. Instead of sprinkling the same logic over all drivers. -Daniel > + > /* Complete initialization. */ > ret = drm_dev_register(&qdev->ddev, ent->driver_data); > if (ret) > -- > 2.9.3 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization