linux-pinenote/drivers/gpu/drm/i915
Arun Siluvery 22a916aaa1 drm/i915: Emit even number of dwords when emitting LRIs
The number of DWords should be even when doing ring emits as
command sequences require QWord alignment.

There was some discussion about the maximum length of the MI_LRI
command. Quoting Mika

"I did some test with bdw:

"The maximum is 128 writes, resulting the 8 bit length
field of the command being 0xff, thus following the spec.
The 128'th write went through.

"Perhaps the max command length is then less in older gens?

"Perhaps WARN_ON(x > 128) in MI_LOAD_REGISTER_IMM would be in place
but one needs minor tweak to command parser a bit also then.

	#define I915_MAX_WA_REGS 16

keeps us safe for now atleast."

Ville commented that on pre-gen6 the length field seems to be
restricted to 0x3f though. So for all cases we should be ok.

v2: user LRI variant that can write multiple regs in one go (Damien).
We can simply insert one NOP at the end instead of one per register write.

Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
[danvet: Add a summary of the MI_LRI length discussion.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-10-24 16:34:15 +02:00
..
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c drm/i915: Check pixel clock in ns2501 mode_valid hook 2014-09-03 11:05:21 +02:00
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Log a message when rejecting LRM to OACONTROL 2014-09-19 17:56:20 +02:00
i915_debugfs.c drm/i915: add runtime PM get/put call in i915_execlists 2014-10-24 16:34:11 +02:00
i915_dma.c drm/i915: call drm_vblank_cleanup() earlier at unload 2014-10-24 16:34:10 +02:00
i915_drv.c drm/i915: vlv: fix gunit HW state corruption during S4 suspend 2014-10-24 16:34:08 +02:00
i915_drv.h drm/i915: preserve swizzle settings if necessary v4 2014-10-24 16:34:09 +02:00
i915_gem.c drm/i915: Correctly reject invalid flags for wait_ioctl 2014-10-24 16:34:14 +02:00
i915_gem_context.c drm/i915/bdw: Apply workarounds in render ring init function 2014-09-03 11:04:42 +02:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_evict.c drm/i915: fix another use-after-free in i915_gem_evict_everything 2014-09-19 14:41:16 +02:00
i915_gem_execbuffer.c drm/i915: Only track real ppgtt for a context 2014-08-13 14:23:33 +02:00
i915_gem_gtt.c Revert "drm/i915: Enable full PPGTT on gen7" 2014-10-24 16:30:14 +02:00
i915_gem_gtt.h drm/i915: Rework GPU reset sequence to match driver load & thaw 2014-09-03 10:54:09 +02:00
i915_gem_render_state.c drm/i915/bdw: Render state init for Execlists 2014-09-03 11:04:52 +02:00
i915_gem_render_state.h drm/i915/bdw: Render state init for Execlists 2014-09-03 11:04:52 +02:00
i915_gem_stolen.c drm/i915: Extend BIOS stolen mem handling to all platform 2014-09-19 14:41:19 +02:00
i915_gem_tiling.c drm/i915: preserve swizzle settings if necessary v4 2014-10-24 16:34:09 +02:00
i915_gem_userptr.c drm/i915: Do not leak pages when freeing userptr objects 2014-09-29 15:31:01 +02:00
i915_gpu_error.c Merge branch 'topic/skl-stage1' into drm-intel-next-queued 2014-09-30 22:36:57 +02:00
i915_ioc32.c drm/i915: remove redundant #ifdef CONFIG_COMPAT 2014-10-24 16:34:07 +02:00
i915_irq.c drm/i915: Filter gmch fifo underruns in the shared handler 2014-10-24 16:33:55 +02:00
i915_params.c Merge tag 'drm-intel-next-2014-09-01' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-09-03 08:30:48 +10:00
i915_reg.h drm/i915: Add rotation support for cursor plane (v5) 2014-10-24 16:34:14 +02:00
i915_suspend.c
i915_sysfs.c drm/i915: Do not export RC6p and RC6pp if they don't exist 2014-10-24 16:34:00 +02:00
i915_trace.h
i915_trace_points.c
i915_ums.c
intel_acpi.c
intel_bios.c Merge tag 'drm-intel-next-2014-09-05' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-09-16 16:02:09 +10:00
intel_bios.h drm/i915/bios: add missing __packed to structs used for reading vbt 2014-09-19 14:43:14 +02:00
intel_crt.c drm/i915: Don't claim that we're resetting PCH ADPA register 2014-10-24 16:34:10 +02:00
intel_ddi.c drm/i915: Use IS_HSW_ULT() in HSW CDCLK clock read-out 2014-10-24 16:33:57 +02:00
intel_display.c drm/i915: Add rotation support for cursor plane (v5) 2014-10-24 16:34:14 +02:00
intel_dp.c drm/i915: Clear TX FIFO reset master override bits on chv 2014-10-03 10:21:13 +02:00
intel_dp_mst.c drm/i915: Fold in intel_mst_port_dp_detect 2014-10-24 16:34:12 +02:00
intel_drv.h drm/i915: Filter gmch fifo underruns in the shared handler 2014-10-24 16:33:55 +02:00
intel_dsi.c drm/i915: Bikeshed rpm functions name a bit. 2014-10-01 10:52:59 +02:00
intel_dsi.h drm/i915: Add support for Video Burst Mode for MIPI DSI 2014-08-08 17:43:45 +02:00
intel_dsi_cmd.c drm/i915: Align intel_dsi*.c files a bit 2014-08-08 17:43:45 +02:00
intel_dsi_cmd.h drm/i915: wait for all DSI FIFOs to be empty 2014-08-07 11:07:15 +02:00
intel_dsi_panel_vbt.c drm/i915: Add support for Video Burst Mode for MIPI DSI 2014-08-08 17:43:45 +02:00
intel_dsi_pll.c drm/i915: Align intel_dsi*.c files a bit 2014-08-08 17:43:45 +02:00
intel_dvo.c drm/i915: Don't call DVO mode_set hook on DPMS changes 2014-09-03 11:05:14 +02:00
intel_fbdev.c drm/i915: make fbdev initialization asynchronous v2 2014-09-03 11:05:01 +02:00
intel_fifo_underrun.c drm/i915: kerneldoc for intel_fifo_underrun.c 2014-10-24 16:33:55 +02:00
intel_frontbuffer.c drm/i915: spelling fixes for frontbuffer tracking kerneldoc 2014-10-01 10:52:57 +02:00
intel_hdmi.c drm/i915: Clear TX FIFO reset master override bits on chv 2014-10-03 10:21:13 +02:00
intel_i2c.c
intel_lrc.c drm/i915: Fix irq checks in ring->irq_get/put functions 2014-09-19 14:43:13 +02:00
intel_lrc.h drm/i915/bdw: Render state init for Execlists 2014-09-03 11:04:52 +02:00
intel_lvds.c drm/i915: Bikeshed rpm functions name a bit. 2014-10-01 10:52:59 +02:00
intel_modes.c
intel_opregion.c Linux 3.16 2014-08-05 09:04:59 +10:00
intel_overlay.c
intel_panel.c drm/i915: spt does not have pch backlight override bit 2014-10-24 16:34:09 +02:00
intel_pm.c drm/i915/chv: Use 16 and 32 for low and high drain latency precision. 2014-10-24 16:34:12 +02:00
intel_renderstate.h drm/i915/bdw: Render state init for Execlists 2014-09-03 11:04:52 +02:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_ringbuffer.c drm/i915: Emit even number of dwords when emitting LRIs 2014-10-24 16:34:15 +02:00
intel_ringbuffer.h drm/i915/bdw: Apply workarounds in render ring init function 2014-09-03 11:04:42 +02:00
intel_runtime_pm.c drm/i915: only run hsw_power_well_post_enable when really needed 2014-10-24 16:34:13 +02:00
intel_sdvo.c
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915/skl: Add 180 degree HW rotation support 2014-10-24 16:34:02 +02:00
intel_tv.c drm/i915: Clarify irq_lock locking, intel_tv_detect 2014-09-19 14:43:19 +02:00
intel_uncore.c drm/i915: use macros to assign mmio access functions 2014-10-24 16:34:13 +02:00
Kconfig drm/i915: Ditch UMS config option 2014-07-24 10:59:53 +02:00
Makefile drm/i915: Extract intel_fifo_underrun.c 2014-10-24 16:33:53 +02:00