[PATCH 00/21 v2] Adding support for skylake shared scalers

Chandra Konduru
2015-03-21T00:05:18Z

This patch enables skylake display scalers in atomic framework.
Version 2 of patch series addresses comments from Daniel and Matt.
see below for full details and also individual patch headers.
Though changes aren't big, but they trickled down into multiple
patches. So I'm sending the whole series for completeness and
also to go through round of PRTS testing.

Performed several basic test scenarios covering both panel
fitting and plane scaling scenarios. plane scaling requires
switching planes from transitional helpers to full atomic helpers
which is currently reverted in nightly. Even without full atomic
helpers, existing plane capability continues to works. Will be
sending the corresponding i-g-t tests seperately.

v2:
-removed nested loop in drm_plane_from_index (Daniel)
-populate crtc scaler state from hw state (Daniel)
-added scaler id check to intel_pipe_config_compare (Daniel)
-use single copy of scaler limits (Matt)
-do gen checks before calling a helper (Matt)
-use skylake_pfit_update to control skylake panel fitter(me)
-rebased on top of Ander's v3 patch series (me)

Chandra Konduru (21):
drm/i915: Adding drm helper function drm_plane_from_index().
drm/i915: Register definitions for skylake scalers
drm/i915: Enable get_colorkey functions for primary plane.
drm/i915: skylake scaler structure definitions
drm/i915: Initialize skylake scalers
drm/i915: Dump scaler_state too as part of dumping crtc_state
drm/i915: Helper function to update skylake scaling ratio.
drm/i915: Add helper function to update scaler_users in crtc_state
drm/i915: Add atomic function to setup scalers scalers for a crtc.
drm/i915: Helper function to detach a scaler from a plane or crtc
drm/i915: Ensure planes begin with no scaler.
drm/i915: Ensure colorkey and scaling aren't enabled at same time
drm/i915: Preserve scaler state when clearing crtc_state
drm/i915: use current scaler state during readout_hw_state.
drm/i915: Update scaling ratio as part of crtc_compute_config
drm/i915: Ensure setting up scalers into staged crtc_state
drm/i915: copy staged scaler state from drm state to crtc->config.
drm/i915: stage panel fitting scaler request for fixed mode panel
drm/i915: Enable skylake panel fitting using skylake shared scalers
drm/i915: Enable skylake primary plane scaling using shared scalers
drm/i915: Enable skylake sprite plane scaling using shared scalers

drivers/gpu/drm/drm_crtc.c | 22 ++
drivers/gpu/drm/i915/i915_reg.h | 115 ++++++++
drivers/gpu/drm/i915/intel_atomic.c | 161 +++++++++++
drivers/gpu/drm/i915/intel_display.c | 490 +++++++++++++++++++++++++++++++---
drivers/gpu/drm/i915/intel_dp.c | 8 +
drivers/gpu/drm/i915/intel_drv.h | 109 ++++++++
drivers/gpu/drm/i915/intel_sprite.c | 95 +++++--
include/drm/drm_crtc.h | 1 +
8 files changed, 942 insertions(+), 59 deletions(-)

--
1.7.9.5