[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 16:41:44 CEST 2013


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...

> 
> But anyway, it does what is says on the tin and makes my dGPU testing
> box usable again, without breaking any other machine that I've tested on
> so far,
> Tested-by: Chris Wilson <chris at chris-wilson.co.uk>
> -Chris
> 
> -- 
> Chris Wilson, Intel Open Source Technology Centre

-- 
Ville Syrjälä
Intel OTC



More information about the Intel-gfx mailing list