]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Don't swap planes on 830M
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 7 Jan 2014 14:15:37 +0000 (16:15 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 10 Jan 2014 07:49:19 +0000 (08:49 +0100)
commit7d4e684018d517a0fb6c8e92e21fc1757d9eb14c
treedf5b9c8c2498a45824c48dfa91755fc1161ba563
parent962de6dc5f71dd9dc2a2363de45a386dfaae32f6
drm/i915: Don't swap planes on 830M

Looks like 830M doesn't quite like it when you try to move a plane from
one pipe to another. It seems that the plane's old pipe has to be active
even if the plane is already disabled, otherwise the relevant register
just won't accept new values.

The following commit:

 commit 0a2ac70441b9450baaf8bbd141eb689b5bfc1d3f
 Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
 Date:   Thu Nov 28 17:30:01 2013 +0200

    drm/i915: Swap primary planes on gen2 for FBC

caused a regression on 830M. It will attempt to swap the planes when the
driver is loaded, but at that time only pipe A might be active, so plane
A gets disabled, but plane B won't get enabled since pipe B is not
active when we try to move the plane over to pipe A.

There's no reason to swap planes on 830M since it doesn't support
FBC. Change the logic a bit to limit the plane swapping to platforms
which actually support FBC. This should avoid getting a black screen on
830M.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_irq.c
drivers/gpu/drm/i915/intel_display.c