android_kernel_oneplus_msm8998/drivers/gpu/drm/i915
Ville Syrjälä 262cd2e154 drm/i915: CHV DDR DVFS support and another watermark rewrite
Turns out the VLV/CHV system agent doesn't understand memory
latencies, so trying to rely on the PND deadline mechanism is not
going to fly especially when DDR DVFS is enabled. Currently we try to
avoid the problems by lying to the system agent about the deadlines
and setting the FIFO watermarks to 8 cachelines. This however leads to
bad memory self refresh residency.

So in order to satosfy everyone we'll just give up on the deadline
scheme and program the watermarks old school based on the worst case
memory latency.

I've modelled this a bit on the ILK+ approach where we compute multiple
sets of watermarks for each pipe (PM2,PM5,DDR DVFS) and when merge thet
appropriate one later with the watermarks from other pipes. There isn't
too much to merge actually since each pipe has a totally independent
FIFO (well apart from the mess with the partially shared DSPARB
registers), but still decopuling the pipes from each other seems like a
good idea.

Eventually we'll want to perform the watermark update in two phases
around the plane update to avoid underruns due to the single buffered
watermark registers. But that's still in limbo for ILK+ too, so I've not
gone that far yet for VLV/CHV either.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Clint Taylor <Clinton.A.Taylor@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-06-29 10:55:13 +02:00
..
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c Fix resume from suspend on IBM X30 2015-06-15 12:21:01 +02:00
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Add SCRATCH1 and ROW_CHICKEN3 to the register whitelist. 2015-06-15 16:00:48 +03:00
i915_debugfs.c drm/i915: Update rps frequencies for BXT 2015-06-26 19:41:15 +02:00
i915_dma.c drm/i915: Report an error when i915.reset prevents a reset 2015-06-23 14:01:38 +02:00
i915_drv.c drm/i915: Report an error when i915.reset prevents a reset 2015-06-23 14:01:38 +02:00
i915_drv.h drm/i915: CHV DDR DVFS support and another watermark rewrite 2015-06-29 10:55:13 +02:00
i915_gem.c drm/i915: Unconditionally do fb tracking invalidate in set_domain 2015-06-29 10:46:45 +02:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Update intel_ring_begin() to take a request structure 2015-06-23 14:02:29 +02:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_evict.c
i915_gem_execbuffer.c drm/i915: Move the request/file and request/pid association to creation time 2015-06-23 14:02:33 +02:00
i915_gem_gtt.c drm/i915/gtt: Switch gen8_free_page_tables params 2015-06-26 18:36:32 +02:00
i915_gem_gtt.h drm/i915/gtt: Move scratch_pd and scratch_pt into vm struct 2015-06-26 11:06:30 +02:00
i915_gem_render_state.c drm/i915: Update ring->dispatch_execbuffer() to take a request structure 2015-06-23 14:02:25 +02:00
i915_gem_render_state.h drm/i915: Update render_state_init() to take a request structure 2015-06-23 14:02:12 +02:00
i915_gem_shrinker.c
i915_gem_stolen.c
i915_gem_tiling.c
i915_gem_userptr.c
i915_gpu_error.c
i915_ioc32.c
i915_irq.c drm/i915: reduce line width in {pch, i9xx}_get_hpd_pins() 2015-06-22 15:04:43 +02:00
i915_params.c drm/i915: Nuke lvds downclock support 2015-06-24 10:27:26 +02:00
i915_reg.h drm/i915: Update rps frequencies for BXT 2015-06-26 19:41:15 +02:00
i915_suspend.c
i915_sysfs.c drm/i915/vlv: fix RC6 residency time calculation 2015-06-15 11:56:37 +02:00
i915_trace.h drm/i915: Update ring->sync_to() to take a request structure 2015-06-23 14:02:27 +02:00
i915_trace_points.c
i915_vgpu.c
i915_vgpu.h
intel_acpi.c
intel_atomic.c drm/i915: Make cdclk part of the atomic state. 2015-06-22 14:28:37 +02:00
intel_atomic_plane.c drm/i915: Remove transitional references from intel_plane_atomic_check. 2015-06-22 14:28:29 +02:00
intel_audio.c
intel_bios.c drm/i915: Nuke lvds downclock support 2015-06-24 10:27:26 +02:00
intel_bios.h
intel_crt.c
intel_csr.c Merge remote-tracking branch 'airlied/drm-next' into HEAD 2015-06-23 14:01:53 +02:00
intel_ddi.c drm/i915/skl: Skip remaining dividers when deviation is 0 2015-06-26 19:41:59 +02:00
intel_display.c drm/i915: CHV DDR DVFS support and another watermark rewrite 2015-06-29 10:55:13 +02:00
intel_dp.c drm/i915/drrs: Restrict buffer tracking to the DRRS pipe 2015-06-24 00:22:36 +02:00
intel_dp_mst.c
intel_drv.h drm/i915: CHV DDR DVFS support and another watermark rewrite 2015-06-29 10:55:13 +02:00
intel_dsi.c
intel_dsi.h
intel_dsi_panel_vbt.c
intel_dsi_pll.c
intel_dvo.c
intel_fbc.c drm/i915: don't set the FBC plane select bits on HSW+ 2015-06-15 18:36:42 +02:00
intel_fbdev.c drm/i915: Update i915_gem_object_sync() to take a request structure 2015-06-23 14:02:13 +02:00
intel_fifo_underrun.c
intel_frontbuffer.c drm/i915: Nuke lvds downclock support 2015-06-24 10:27:26 +02:00
intel_hdmi.c drm/i915: Double the port clock when using double clocked modes with 12bpc 2015-06-15 11:36:40 +02:00
intel_hotplug.c drm/i915: move generic hotplug code into new intel_hotplug.c file 2015-06-22 15:03:42 +02:00
intel_i2c.c
intel_lrc.c drm/i915/lrc: Update PDPx registers with lri commands 2015-06-26 18:33:51 +02:00
intel_lrc.h drm/i915: Add *_ring_begin() to request allocation 2015-06-23 14:02:30 +02:00
intel_lvds.c drm/i915: Nuke lvds downclock support 2015-06-24 10:27:26 +02:00
intel_modes.c
intel_opregion.c
intel_overlay.c drm/i915: Update intel_ring_begin() to take a request structure 2015-06-23 14:02:29 +02:00
intel_panel.c
intel_pm.c drm/i915: CHV DDR DVFS support and another watermark rewrite 2015-06-29 10:55:13 +02:00
intel_psr.c drm/i915/psr: Restrict single-shot updates to the PSR pipe 2015-06-24 00:22:37 +02:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915: Remove the now obsolete 'outstanding_lazy_request' 2015-06-23 14:02:32 +02:00
intel_ringbuffer.h drm/i915: Remove the now obsolete 'outstanding_lazy_request' 2015-06-23 14:02:32 +02:00
intel_runtime_pm.c
intel_sdvo.c
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: Store frontbuffer_bits in the plane 2015-06-25 14:11:44 +02:00
intel_tv.c
intel_uncore.c drm/i915: Report an error when i915.reset prevents a reset 2015-06-23 14:01:38 +02:00
Kconfig drm/i915: Remove KMS Kconfig option 2015-06-22 16:16:35 +02:00
Makefile drm/i915: move generic hotplug code into new intel_hotplug.c file 2015-06-22 15:03:42 +02:00