[PATCH v4 1/2] drm: move i915_kick_out_vgacon to vgaarb

Daniel Vetter daniel at ffwll.ch
Thu Feb 28 09:57:12 UTC 2019


On Mon, Feb 25, 2019 at 09:34:09AM +0100, Gerd Hoffmann wrote:
> On Fri, Feb 22, 2019 at 06:20:11PM +0100, Daniel Vetter wrote:
> > On Fri, Feb 22, 2019 at 12:03 PM Gerd Hoffmann <kraxel at redhat.com> wrote:
> > >
> > >   Hi,
> > >
> > > > > -   /*
> > > > > -    * WARNING: Apparently we must kick fbdev drivers before vgacon,
> > > > > -    * otherwise the vga fbdev driver falls over.
> > > > > -    */
> > > > >     ret = i915_kick_out_firmware_fb(dev_priv);
> > > >
> > > > This needs to be replaced with a call to
> > > > drm_fb_helper_remove_conflicting_pci_framebuffers, because the above
> > > > wrapper hasn't been converted yet. Otherwise you end up removing the
> > > > vgacon unbind from i915.
> > >
> > > Ah, little but important difference I didn't notice on the first look.
> > > That wrapper calls the non-pci version.  But seems it isn't that easy
> > > to switch over because the framebuffer is in stolen memory instead of a
> > > pci bar ...
> > 
> > stolen memory is where the fb physically resides. the pci bar is how
> > you access it (as long as you take all the pci bars). From a quick
> > look i915 and pci version of remove_conflicting_fb matched.
> 
> Well, it is
> 
> 	ap->ranges[0].base = ggtt->gmadr.start;
> 	ap->ranges[0].size = ggtt->mappable_end;
> 
> vs.
> 
> 	ap->ranges[0].base = pci_resource_start(pdev, res_id);
> 	ap->ranges[0].size = pci_resource_len(pdev, res_id);
> 
> So not obvious that they are the same.  At least to me, maybe it is a
> different story for someone knowing the i915 driver better.

It's one of the pci bars, so amounts to the same. But yeah not obvious if
you don't know that.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dri-devel mailing list