driver idles the ringbuffer, stops it, unbinds all memory, then hands
back off.
Now here's the clever bit: just before we call to idle the ringbuffer
(which sleeps waiting for an interrupt) let's TURN OFF THE FUCKING
INTERRUPT. That's a great idea, really, isn't it?
Move the interrupt disable to *after* stop_ring. Theo's T61 VT switches
again. everyone elses' intel stuff worked by magic (or shared
interrupts) before now.
Fixed after discussion with deraadt@, thanks to miod for suggestions.
ok matthieu@
Original commit message from barry scott to upstream:
Author: Barry Scott <barry.scott@onelan.co.uk>
Date: Tue Jun 23 14:14:50 2009 +0100
Fix segv for clipped movie window
When playing a movie that is clipped on its left and right edges the
Xorg server will SEGV sometimes. This is because the intel driver
ignores the clipping info when it copies the planes out of the XV
data. The check for the optimised copy was wrong to ignore the
width required. Which leads to too much data being copied by the
memcpy. It the source buffe happens to end exactly on a page
boundary the server will SEGV.
As we reviewed the code we checked the calculation of src1, src2 and
src3. The patch includes additional comments to make it clear what
the elements of the calculation are.
This bug exists in git head and we also see it in 2.4.1.
Fix 945GM VT switch in UMS
Bug #19578. We should set private intel_crtc state according to
current, as fail to do so pipe A needs active won't be taken
care of. Also make sure pipe swap operation always set during VT
switch.
This also fixes the *other* x40 lid problem (which happens when you suspend,
then you shut the lid in dont'-suspend-on-lid mode.
the reasoning for the PipeA quirk I finally found:
On some platforms, the firmware may read & write GPU registers
on lid close, suspend/resume time or during various SMM events.
If one of the graphics pipes is disabled at that time, the GPU
may hang due to the programming dependencies of the various
registers.
So essentially, without this patch, if you have this quirk and you shut
the lid, you're hosed, but y'know drivers in userland are great. So are
BIOS writers.
requested by deraadt@, who keeps getting this issue when he's on a plane.
software rasterise them THEN put them into buffer objects.
read-modify-write of graphics memory is expensive.
2.5x speed increase under heavy trap rendering measured.
Another upstream backport. ok matthieu@
in the fastpath they're going straight to the glyph cache anyway and
doing so for small glyphs wastes memory since bos must be padded to page
size.
Backport from upstream (to aid gem development). ok matthieu@
mode from userland. This means we can switch of the vblank ioctl when no
3d client is using it. Backported from newer ddxen to make use of the
new libdrm.
ok matthieu@
both the old i810 and the new intel drivers on i386, and let X
autoconfiguration code choose the one that is used based on the chipset.
Tested by landry@ and a few others.