[Intel-gfx] [PATCH v2 1/1] drm/i915: Fix VGA handling using stop_machine() or mmio
Chris Wilson
chris at chris-wilson.co.uk
Mon Sep 30 16:53:10 CEST 2013
On Mon, Sep 30, 2013 at 05:41:44PM +0300, Ville Syrjälä wrote:
> On Mon, Sep 30, 2013 at 03:24:37PM +0100, Chris Wilson wrote:
> > On Mon, Sep 30, 2013 at 05:08:31PM +0300, ville.syrjala at linux.intel.com wrote:
> > > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > >
> > > We have several problems with out VGA handling:
> > > - We try to use the GMCH control VGA disable bit even though it may
> > > be locked
> > > - If we manage to disable VGA throuh GMCH control, we're no longer
> > > able to correctly disable the VGA plane
> > > - Taking part in the VGA arbitration is too expensive for X [1]
> >
> > I'd like to emphasize that X disables DRI if it detects 2 vga cards,
> > effectively breaking all machines with a discrete GPU. Even if one of
> > those is not being used.
> >
> > > +/*
> > > + * 21 devices with 8 functions per device max on the same bus.
> > > + * We don't need locking for these due to stop_machine().
> > > + */
> > > +static u16 vga_cmd[21*8];
> > > +static u16 vga_ctl[21*8];
> >
> > Should we just allocate storage for when we need it? We are now adding
> > several hundred bytes to our module, which is bound to cause us to use
> > an extra page, and they can be passed around through the stop_machine
> > closure rather than static.
>
> I guess we could do that. Although I do wonder a bit if we'd race with
> hotplug. Not sure there's a way to hotplug stuff onto the root bus...
Within stop-machine? I surely hope not!
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list