linux_dsm_epyc7002/drivers/gpu/drm/i915
Ville Syrjälä ae80152dda drm/i915: Rewrite VLV/CHV watermark code
Assuming the PND deadline mechanism works reasonably we should do
memory requests as early as possible so that PND has schedule the
requests more intelligently. Currently we're still calculating
the watermarks as if VLV/CHV are identical to g4x, which isn't
the case.

The current code also seems to calculate insufficient watermarks
and hence we're seeing some underruns, especially on high resolution
displays.

To fix it just rip out the current code and replace is with something
that tries to utilize PND as efficiently as possible.

We now calculate the WM watermark to trigger when the FIFO still has
256us worth of data. 256us is the maximum deadline value supoorted by
PND, so issuing memory requests earlier would mean we probably couldn't
utilize the full FIFO as PND would attempt to return the data at
least in at least 256us. We also clamp the watermark to at least 8
cachelines as that's the magic watermark that enabling trickle feed
would also impose. I'm assuming it matches some burst size.

In theory we could just enable trickle feed and ignore the WM values,
except trickle feed doesn't work with max fifo mode anyway, so we'd
still need to calculate the SR watermarks. It seems cleaner to just
disable trickle feed and calculate all watermarks the same way. Also
trickle feed wouldn't account for the 256us max deadline value, thoguh
that may be a moot point in non-max fifo mode sicne the FIFOs are fairly
small.

On VLV max fifo mode can be used with either primary or sprite planes.
So the code now also checks all the planes (apart from the cursor)
when calculating the SR plane watermark.

We don't have to worry about the WM1 watermarks since we're using the
PND deadline scheme which means the hardware ignores WM1 values.

v2: Use plane->state->fb instead of plane->fb

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-03-17 22:30:14 +01:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_cmd_parser.c drm/i915: Trim the command parser allocations 2015-02-23 17:07:40 +01:00
i915_debugfs.c drm/i915: Exit early from psr_status if PSR is not supported by the device 2015-03-17 22:30:10 +01:00
i915_dma.c drm/i915/chv: Determine CHV slice/subslice/EU info 2015-03-17 22:30:05 +01:00
i915_drv.c drm/i915: Remove irq-related FIXME in reset code 2015-03-17 22:29:49 +01:00
i915_drv.h drm/i915: Rewrite VLV/CHV watermark code 2015-03-17 22:30:14 +01:00
i915_gem_batch_pool.c drm/i915: Mark shadow batch buffers as purgeable 2014-12-16 10:39:09 +01:00
i915_gem_context.c drm/i915: Reset logical ring contexts' head and tail during GPU reset 2015-02-24 00:19:37 +01:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_evict.c drm/i915: Add some extra guards in evict_vm 2015-01-06 09:07:59 +01:00
i915_gem_execbuffer.c drm/i915: pass which operation triggered the frontbuffer tracking 2015-03-17 22:29:51 +01:00
i915_gem_gtt.c drm/i915: Setup all page directories for gen8 2015-03-17 22:29:58 +01:00
i915_gem_gtt.h drm/i915: Create page table allocators 2015-02-25 16:53:43 +01:00
i915_gem_render_state.c
i915_gem_render_state.h
i915_gem_stolen.c Linux 4.0-rc3 2015-03-09 19:58:30 +10:00
i915_gem_tiling.c drm/i915: Check obj->vma_list under the struct_mutex 2015-02-24 15:30:42 +02:00
i915_gem_userptr.c drm/i915: Prevent use-after-free in invalidate_range_start callback 2015-02-05 16:31:30 +02:00
i915_gem.c drm/i915: also do frontbuffer tracking on pwrites 2015-03-17 22:29:52 +01:00
i915_gpu_error.c drm/i915: Add process identifier to requests 2015-02-13 23:28:37 +01:00
i915_ioc32.c
i915_irq.c drm/i915/skl: Restore pipe interrupt registers after power well enabling 2015-03-17 22:30:07 +01:00
i915_params.c drm/i915: Disable the mmio.debug WARN after it fires 2015-03-17 22:30:00 +01:00
i915_reg.h drm/i915: Rewrite VLV/CHV watermark code 2015-03-17 22:30:14 +01:00
i915_suspend.c drm/i915: Remove regfile code&data for UMS suspend/resume 2015-02-27 18:10:39 +01:00
i915_sysfs.c drm/i915: Add media rc6 residency file to sysfs 2015-02-26 17:48:00 +01:00
i915_trace_points.c
i915_trace.h drm/i915/trace: Fix offsets for 64b 2015-02-13 23:28:11 +01:00
i915_vgpu.c drm/i915: Adds graphic address space ballooning logic 2015-02-13 23:28:23 +01:00
i915_vgpu.h drm/i915: Add the display switch logic for vGPU in i915 driver 2015-02-13 23:28:24 +01:00
intel_acpi.c
intel_atomic_plane.c drm/i915: Rotation property is now handled in DRM core 2015-03-10 09:59:33 +01:00
intel_atomic.c drm/i915: Set crtc backpointer when duplicating crtc state 2015-03-17 22:29:53 +01:00
intel_audio.c drm/i915: Make intel_crtc->config a pointer 2015-01-27 09:50:50 +01:00
intel_bios.c drm/i915/skl: Support for edp low_vswing param in vbt 2015-02-25 16:06:00 +01:00
intel_bios.h drm/i915/skl: Support for edp low_vswing param in vbt 2015-02-25 16:06:00 +01:00
intel_crt.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_ddi.c drm/i915/skl: Add support for edp 1.4 intermediate frequencies 2015-03-17 22:29:57 +01:00
intel_display.c drm/i915: Update prop, int co-eff and gain threshold for CHV 2015-03-17 22:30:13 +01:00
intel_dp_mst.c drm/i915: Add a for_each_intel_connector macro 2015-03-17 22:29:53 +01:00
intel_dp.c drm/i915/skl: Program PLL for edp1.4 intermediate frequencies 2015-03-17 22:29:57 +01:00
intel_drv.h drm/i915/skl: Make gen8_irq_power_well_post_enable() take a pipe mask 2015-03-17 22:30:06 +01:00
intel_dsi_panel_vbt.c drm/i915/dsi: remove intel_dsi_cmd.c and the unused functions therein 2015-01-29 16:57:14 +01:00
intel_dsi_pll.c drm/i915: Use DSI Pll1 for enabling MIPI DSI on Port C 2014-12-10 17:47:21 +01:00
intel_dsi.c Merge tag 'drm-intel-next-2015-02-14' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-03-05 09:41:09 +10:00
intel_dsi.h drm/i915/dsi: add drm mipi dsi host support 2015-01-29 16:51:39 +01:00
intel_dvo.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_fbc.c drm/i915: add frontbuffer tracking to FBC 2015-03-17 22:29:56 +01:00
intel_fbdev.c drm/i915: Make sure we invalidate frontbuffer on fbcon. 2015-03-17 22:30:14 +01:00
intel_fifo_underrun.c drm/i915: Check for driver readyness before handling an underrun interrupt 2015-03-04 10:04:19 +02:00
intel_frontbuffer.c drm/i915: add frontbuffer tracking to FBC 2015-03-17 22:29:56 +01:00
intel_hdmi.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_i2c.c
intel_lrc.c Linux 4.0-rc3 2015-03-09 19:58:30 +10:00
intel_lrc.h drm/i915: Rename 'flags' to 'dispatch_flags' for better code reading 2015-02-25 22:43:29 +01:00
intel_lvds.c drm/i915: Use enabled value from crtc_state rather than crtc (v2) 2015-02-26 00:14:02 +01:00
intel_modes.c
intel_opregion.c drm/i915: Remove DRIVER_MODESET checks from modeset code 2015-02-27 18:10:53 +01:00
intel_overlay.c drm/i915: Remove DRIVER_MODESET checks from modeset code 2015-02-27 18:10:53 +01:00
intel_panel.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-02-16 15:48:00 -08:00
intel_pm.c drm/i915: Rewrite VLV/CHV watermark code 2015-03-17 22:30:14 +01:00
intel_psr.c drm/i915/skl: Enabling PSR on Skylake 2015-01-28 17:22:29 +01:00
intel_renderstate_gen6.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate_gen7.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate_gen8.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate_gen9.c drm/i915: Add headers to the various render state 2014-12-10 17:47:23 +01:00
intel_renderstate.h
intel_ringbuffer.c drm/i915: fix simple_return.cocci warnings 2015-03-17 22:30:00 +01:00
intel_ringbuffer.h drm/i915: add frontbuffer tracking to FBC 2015-03-17 22:29:56 +01:00
intel_runtime_pm.c drm/i915: Spelling s/auxilliary/auxiliary/ 2015-03-17 22:30:12 +01:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Fix trivial typos in comments and warning message 2015-03-17 22:29:48 +01:00
intel_sideband.c drm/i915: Correct the IOSF Dev_FN field for IOSF transfers 2015-02-09 14:26:19 +02:00
intel_sprite.c drm/i915/skl: Update watermarks for Y tiling 2015-02-27 18:10:56 +01:00
intel_tv.c drm/i915: Add atomic_get_property entrypoint for connectors (v2) 2015-01-27 09:57:10 +01:00
intel_uncore.c drm/i915: Disable the mmio.debug WARN after it fires 2015-03-17 22:30:00 +01:00
Kconfig drm/i915/dsi: add drm mipi dsi host support 2015-01-29 16:51:39 +01:00
Makefile drm/i915: Remove regfile code&data for UMS suspend/resume 2015-02-27 18:10:39 +01:00