[Intel-gfx] [PATCH v2 1/1] drm/i915: Fix VGA handling using stop_machine() or mmio
Ville Syrjälä
ville.syrjala at linux.intel.com
Mon Sep 30 17:10:23 CEST 2013
On Mon, Sep 30, 2013 at 03:53:10PM +0100, Chris Wilson wrote:
> 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!
Can we allocate there? I was thinking of allocating before stop_machine().
--
Ville Syrjälä
Intel OTC
More information about the Intel-gfx
mailing list