drm/i915: Add windowing for primary planes on gen2/3 and chv
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 3 Jul 2019 20:08:19 +0000 (23:08 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 5 Jul 2019 10:08:26 +0000 (13:08 +0300)
commit26443a4bc44850ff28329ae97a3cc9349d7dd87b
tree168326b3b100f059725cf7452ed56e91ddcf22b1
parent58820574f1e937a1cf3eea629f1496e02560a132
drm/i915: Add windowing for primary planes on gen2/3 and chv

Plane B and C (note that we don't actually expose plane C currently)
on gen2/3 have a window generator, as does the primary plane on CHV
pipe B. So let's allow positioning of these planes freely within the
pipe source area.

Plane A on gen2/3 seems to have some kind of partial window generator
which would allow you to cut the plane off midway through the scanout,
but it would still have to start at the top-left corner of the pipe,
and it would have to be full width. That's doesn't sound all that
useful, so for simplicity let's just keep to the idea that plane A
has to be fullscreen.

Gen4 removed the plane A/B windowing support entirely, and it wasn't
reintroduced until SKL (apart from the CHV pipe B special case).

v2: s/plane/i9xx_plane/ etc. (James)
v3: Make it less confusing
v4: Deal with IS_GEN()

Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190703200824.5971-2-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/display/intel_display.c