[Intel-gfx] [RFC 0/8] Add two-stage watermark programming for VLV/CHV (v5)
Chi Ding
chix.ding at intel.com
Thu Jun 23 12:36:20 UTC 2016
From: root <root at localhost.localdomain>
In addition to calculating final watermarks, we also pre-calculate
a set of intermediate watermark values at atomic check time. These
intermediate watermarks are a combination of the watermarks for the
old state and the new state; they should satisfy the requirements of
both states which means they can be programmed immediately when we
commit the atomic state (without waiting for a vblank). Once the
vblank does happen, we can then re-program watermarks to the more
optimal final value.
The DSPARB Display Arbitration Control register is double buffered.
The FIFO repartitioning happens atomically with plane updates but
how the register double buffering works isn't clear at the moment.
It needs to be figured out to fix the watermark updates.
v2: Split the first patch of v1 into the following patches
- Remove unused parameters from intel_plane_wm_parameters.
- Rename skl_plane_id to wm_plane_id.
- Move fifo_size from intel_plane_wm_parameters to vlv_wm_state.
v3: Split the 3rd patch of v2 into the following two patches
- Move fifo_size from intel_plane_wm_parameters to vlv_wm_state
- Change to use intel_crtc_state instead of base CRTC object
- The patch headlines are also changed to fit the requirement.
v4:
- Split the 3rd patch of v3 "Move fifo_size from intel_plane_wm_parameters
to vlv_wm_state" to add a new one "return EINVAL when computed
watermark exceeds system limitation"
- Add a new patch "Move active watermarks into intel_crtc->wm.active.vlv"
to be consistent with what we do on other platforms
- Change the patch "Add intermediate field in intel_crtc_wm_state and handlers
for two-level watermark" to use macro drm_atomic_crtc_state_for_each_plane_state
to simplify the code
- Change the patch "Add optimal field in intel_crtc_wm_state" to
use mutex in vlv_update_wm to make assigning currently active wm_state
and merging multiple wm_state become one atomic operation
v5: recreated the patches because v4 patches were created with drm-intel
kernel 4.7.0-rc1+ and can't be applied on the current version 4.7.0-rc4+
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
Signed-off-by: Chi Ding <chix.ding at intel.com>
Maarten Lankhorst (8):
drm/i915: Remove unused parameters from intel_plane_wm_parameters
drm/i915: Rename skl_wm_plane_id to wm_plane_id
drm/i915/vlv: Move fifo_size from intel_plane_wm_parameters to
vlv_wm_state
drm/i915/vlv: return EINVAL when computed watermark exceeds system
limitation
drm/i915/vlv: Change to use intel_crtc_state instead of base CRTC
object
drm/i915/vlv: Add optimal field in intel_crtc_wm_state
drm/i915/vlv: Move active watermarks into intel_crtc->wm.active.vlv
drm/i915/vlv: Add intermediate field in intel_crtc_wm_state and
handlers for two-level watermark
drivers/gpu/drm/i915/intel_display.c | 8 +-
drivers/gpu/drm/i915/intel_drv.h | 52 ++----
drivers/gpu/drm/i915/intel_pm.c | 326 +++++++++++++++++++++++------------
3 files changed, 232 insertions(+), 154 deletions(-)
--
1.8.0.1
More information about the Intel-gfx
mailing list