[Intel][945GM] swap the plane/pipe mappings does not work

Jie Luo clotho67 at gmail.com
Thu May 29 02:56:22 PDT 2008


Hi,

When I try to use intel video driver with drm git master, I found a bug 
with the `swap the plane/pipe mappings' quirk which is trying to get FBC 
work with i915 and i945 card. It does not work as expected, and crash X 
after doing suspend. After comment out the `swap the plane/pipe 
mappings' codes in i830_driver.c and disable FBC, X does not crash after 
suspend. Xorg.0.log file shows that DRM actually didn't handle the swap, 
and some codes inside intel driver didn't handle this as well.

I find the reference to DSPACNTR and DSPBCNTR register in Intel's doc 
for i965 (I think this part should apply to i945 as well). According to 
this doc, 'Display A Pipe Select' bits is hardwired to pipe A, and 
'Display B Pipe Select' bits is hardwired to pipe B. This means 
I915_READ(DSPACNTR) & DISPPLANE_SEL_PIPE_MASK == 0 and 
I915_READ(DSPBCNTR) & DISPPLANE_SEL_PIPE_MASK == 1, so plane A is always 
map ping to pipe A and plane B is always mapping to pipe B. And you got 
i915_get_pipe(dev, 0) == 0, i915_get_pipe(dev, 1) == 1 in DRM, but it 
should be i915_get_pipe(dev, 0) == 1, i915_get_pipe(dev, 1) == 0 after 
you swap the plane/pipe.




-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Xorg.0.log-drm-master
URL: <http://lists.x.org/archives/xorg/attachments/20080529/cd5fc651/attachment.ksh>


More information about the xorg mailing list