linux_old1/drivers/gpu/drm/i915
John Harrison 76c3916887 drm/i915: Update deferred context creation to do explicit request management
In execlist mode, context initialisation is deferred until first use of the
given context. This is because execlist mode has per ring context state and thus
many more context storage objects than legacy mode and many are never actually
used. Previously, the initialisation commands were written to the ring and
tagged with some random request structure via the OLR. This seemed to be causing
a null pointer deference bug under certain circumstances (BZ:88865).

This patch adds explicit request creation and submission to the deferred
initialisation code path. Thus removing any reliance on or randomness caused by
the OLR.

Note that it should be possible to move the deferred context creation until even
later - when the context is actually switched to rather than when it is merely
validated. This would allow the initialisation to be done within the request of
the work that is wanting to use the context. Hence, the extra request that is
created, used and retired just for the context init could be removed completely.
However, this is left for a follow up patch.

For: VIZ-5115
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Reviewed-by: Tomas Elf <tomas.elf@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-06-23 14:02:11 +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
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 drm/i915: Enable dithering on NatSemi DVO2501 for Fujitsu S6010 2015-04-23 21:31:58 +02:00
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: unify no_fbc_reason message printing 2015-06-15 18:36:36 +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: Update i915_switch_context() to take a request structure 2015-06-23 14:02:09 +02:00
i915_gem.c drm/i915: Update i915_switch_context() to take a request structure 2015-06-23 14:02:09 +02:00
i915_gem_batch_pool.c drm/i915: Split batch pool into size buckets 2015-04-10 08:56:05 +02:00
i915_gem_batch_pool.h drm/i915: Split batch pool into size buckets 2015-04-10 08:56:05 +02:00
i915_gem_context.c drm/i915: Update do_switch() to take a request structure 2015-06-23 14:02:10 +02:00
i915_gem_debug.c drm/i915: Implement inter-engine read-read optimisations 2015-05-21 15:11:42 +02:00
i915_gem_dmabuf.c dma-buf: cleanup dma_buf_export() to make it easily extensible 2015-04-21 14:47:16 +05:30
i915_gem_evict.c drm/i915: kerneldoc for i915_gem_shrinker.c 2015-03-20 11:48:16 +01:00
i915_gem_execbuffer.c drm/i915: Update i915_switch_context() to take a request structure 2015-06-23 14:02:09 +02:00
i915_gem_gtt.c drm/i915: Update ppgtt_init_ring() & context_enable() to take requests 2015-06-23 14:02:09 +02:00
i915_gem_gtt.h drm/i915: Update ppgtt_init_ring() & context_enable() to take requests 2015-06-23 14:02:09 +02:00
i915_gem_render_state.c drm/i915: Add explicit request management to i915_gem_init_hw() 2015-06-23 14:02:08 +02:00
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Simplify object is-pinned checking for shrinker 2015-04-10 10:58:34 +02:00
i915_gem_stolen.c drm/i915: use proper FBC base register on all new platforms 2015-04-09 15:57:46 +02:00
i915_gem_tiling.c drm/i915: Simplify i915_gem_obj_is_pinned() test for set-tiling 2015-04-16 11:20:29 +02:00
i915_gem_userptr.c drm/i915: Use uninterruptible mutex_lock for userptr bo creation 2015-05-20 11:26:03 +02:00
i915_gpu_error.c drm/i915: Implement inter-engine read-read optimisations 2015-05-21 15:11:42 +02:00
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: Report an error when i915.reset prevents a reset 2015-06-23 14:01:38 +02:00
i915_reg.h drm/i915/gen8: Add WaFlushCoherentL3CacheLinesAtContextSwitch workaround 2015-06-23 14:01:41 +02: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/vlv: fix RC6 residency time calculation 2015-06-15 11:56:37 +02:00
i915_trace.h Merge tag 'drm-intel-next-2015-04-23-fixed' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-05-08 20:51:06 +10:00
i915_trace_points.c
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 ULL postfix to VGT_MAGIC constant 2015-03-17 22:30:18 +01:00
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 drm/i915/audio: do not mess with audio registers if port is invalid 2015-05-08 13:03:36 +02:00
intel_bios.c drm/i915/bios: be more explicit about discarding iomem address space 2015-05-20 11:26:01 +02:00
intel_bios.h drm/i915: Fix the VBT child device parsing for BSW 2015-04-10 08:56:14 +02:00
intel_crt.c drm/i915: Disable CRT port after pipe on PCH platforms 2015-05-21 23:23:16 +02:00
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/bxt: fix DDI PHY vswing scale value setting 2015-06-12 13:14:38 +03:00
intel_display.c Merge remote-tracking branch 'airlied/drm-next' into HEAD 2015-06-23 14:01:53 +02:00
intel_dp.c drm/i915: Split skl_update_scaler, v4. 2015-06-22 14:19:50 +02:00
intel_dp_mst.c drm/i915: Use for_each_connector_in_state helper macro 2015-05-08 13:03:58 +02:00
intel_drv.h drm/i915: Remove unused ring argument from frontbuffer invalidate and busy functions. 2015-06-22 15:59:18 +02:00
intel_dsi.c drm/i915/dsi: remove non-op hot plug callback 2015-05-29 10:15:21 +02:00
intel_dsi.h drm/i915/dsi: add drm mipi dsi host support 2015-01-29 16:51:39 +01:00
intel_dsi_panel_vbt.c drm/i915: s/dpio_lock/sb_lock/ 2015-05-28 11:13:51 +02:00
intel_dsi_pll.c drm/i915: s/dpio_lock/sb_lock/ 2015-05-28 11:13:51 +02:00
intel_dvo.c drm/i915: Silence compiler warning in dvo 2015-04-29 14:37:48 +03:00
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: Remove unused ring argument from frontbuffer invalidate and busy functions. 2015-06-22 15:59:18 +02: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: Remove unused ring argument from frontbuffer invalidate and busy functions. 2015-06-22 15:59:18 +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 drm/i915: don't register invalid gmbus pins for skl 2015-05-20 11:25:50 +02:00
intel_lrc.c drm/i915: Update deferred context creation to do explicit request management 2015-06-23 14:02:11 +02:00
intel_lrc.h drm/i915: Merged the many do_execbuf() parameters into a structure 2015-06-23 14:01:59 +02:00
intel_lvds.c drm/i915: Ignore LVDS presence in VBT flag if the LVDS is enabled by BIOS 2015-06-22 16:13:48 +02: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: i915_add_request must not fail 2015-06-23 14:01:57 +02:00
intel_panel.c drm/i915/bxt: BLC implementation 2015-05-08 13:03:38 +02:00
intel_pm.c drm/i915: Remove more ilk rc6 remnants 2015-06-15 23:25:25 +02:00
intel_psr.c drm/i915: PSR VLV: Add single frame update. 2015-04-14 19:15:23 +02:00
intel_renderstate.h
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_ringbuffer.c drm/i915: Update alloc_request to return the allocated request 2015-06-23 14:02:00 +02:00
intel_ringbuffer.h drm/i915: Reserve ring buffer space for i915_add_request() commands 2015-06-23 14:01:56 +02:00
intel_runtime_pm.c drm/i915: Throw out WIP CHV power well definitions 2015-05-28 11:13:50 +02:00
intel_sdvo.c drm/i915: Disable SDVO port after the pipe on PCH platforms 2015-05-21 23:22:01 +02:00
intel_sdvo_regs.h
intel_sideband.c drm/i915: s/dpio_lock/sb_lock/ 2015-05-28 11:13:51 +02:00
intel_sprite.c drm/i915: Make setting color key atomic. 2015-06-22 14:28:15 +02:00
intel_tv.c drm/i915: Allocate connector state together with the connectors 2015-04-13 15:21:21 +03:00
intel_uncore.c drm/i915: Report an error when i915.reset prevents a reset 2015-06-23 14:01:38 +02:00