[PATCH] xf86VGAarbiter,vgaHW: Only wrap co-operating VGA drivers

Chris Wilson chris at chris-wilson.co.uk
Fri Sep 13 01:31:40 PDT 2013


On Thu, Sep 12, 2013 at 06:40:18PM -0400, Daniel Stone wrote:
> Hi,
> 
> On 12 September 2013 07:37, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> > The approach taken in this patch is to first only enable VGA arbitration
> > for drivers that require VGA resources. This is detected by moving the
> > initialisation from the common xf86 code to the vgaHW module. This is
> > strictly an ABI break as any driver that directly uses VGA (i.e. without
> > using the vgaHW module) will need to make its own declaration of intent.
> > Secondly, we then only wrap the operations with vgaarb get/put for the
> > drivers that require VGA access. If we only have a single driver
> > requring VGA access, we just wrap Enter/LeaveVT and lock the VGA
> > arbiter for the entire duration that the Xserver is active.
> 
> Why not add a new HW_NO_VGA flag to the GET_REQUIRED_HW_INTERFACES
> driverFunc() call, thus skipping the ABI break? Or flip the sense of
> your additional call, making it use VGA unless you opt out.

I thought about the driverFunc, but it is too early. In the case of
-intel, we have all generations compiled into one monolith which
includes one driver (i810) that is reliant on vgaHW.

Enabling it via vgaHW seemed like it would be the easiest path. Now
thinks are slightly murkier as Ville says that our recent hw is snafu
and requires arbitration as well. (It seems like to disable the VGA IO
on Ironlake and above devices we need to disable the entire device...)
The good news is that any system with an Intel Core processor and
discete GPU hasn't required VGA access for the last 6 years - the bad
news is that all discrete GPU systems with the same Core processor are
now (from kernel 3.11) completely broken.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the xorg-devel mailing list