linux/drivers/gpu/drm/i915
Mika Kuoppala dce3271b1e drm/i915: reference count for i915_hw_contexts
Enabling PPGTT and also the need to track which context was guilty of
gpu hang (arb robustness enabling) have put pressure for struct i915_hw_context
to be more than just a placeholder for hw context state.

In order to track object lifetime properly in a multi peer usage, add reference
counting for i915_hw_context.

v2: track i915_hw_context pointers instead of using ctx_ids
(from Chris Wilson)

v3 (Ben): Get rid of do_release() and handle refcounting more compactly.
(recommended by Chis)

v4: kref_* put inside static inlines (Daniel Vetter)
remove code duplication on freeing context (Chris Wilson)

v5: idr_remove and ctx->file_priv = NULL in destroy ioctl (Chris)
This actually will cause a problem if one destroys a context and later
refers to the idea of the context (multiple contexts may have the same
id, but only 1 will exist in the idr).

v6: Strip out the request related stuff. Reworded commit message.
Got rid of do_destroy and introduced i915_gem_context_release_handle,
suggested by Chris Wilson.

v7: idr_remove can't be called inside idr_for_each (Chris Wilson)

Signed-off-by: Ben Widawsky <ben@bwidawsk.net> (v5)
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> (v7)
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
[danvet: Squash sob lines, the patch ping-ponged between Ben and Mika
a bit ...]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-04-30 23:40:13 +02:00
..
dvo_ch7xxx.c drm/i915/dvo-ch7xxx: fix get_hw_state 2012-10-12 10:59:11 +02:00
dvo_ch7017.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ivch.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_ns2501.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_sil164.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo_tfp410.c drm/i915/dvo: implement get_hw_state 2012-09-06 07:58:52 +02:00
dvo.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
i915_debugfs.c drm/i915: Turn DEV_INFO_FLAGS into a foreach style macro 2013-04-23 17:44:21 +02:00
i915_dma.c drm/i915: protect backlight registers and data with a spinlock 2013-04-25 14:10:10 +02:00
i915_drv.c drm/i915: Turn HAS_FPGA_DBG_UNCLAIMED into a device_info flag 2013-04-23 17:47:37 +02:00
i915_drv.h drm/i915: reference count for i915_hw_contexts 2013-04-30 23:40:13 +02:00
i915_gem_context.c drm/i915: reference count for i915_hw_contexts 2013-04-30 23:40:13 +02:00
i915_gem_debug.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_gem_dmabuf.c lib/scatterlist: sg_page_iter: support sg lists w/o backing pages 2013-03-27 17:13:44 +01:00
i915_gem_evict.c drm/i915: Create a gtt structure 2013-01-17 22:33:56 +01:00
i915_gem_execbuffer.c Linux 3.9-rc5 2013-04-03 11:28:48 +02:00
i915_gem_gtt.c drm/i915: Split out Haswell code from gen6_pte_encode. 2013-04-22 11:44:21 +02:00
i915_gem_stolen.c drm/i915: Only print the info message about incresing stolen size for FBC once 2013-04-27 14:06:39 +02:00
i915_gem_tiling.c drm/i915: Increase max fence pitch limit to 256KB on IVB+ 2013-04-18 09:43:20 +02:00
i915_gem.c drm/i915: IVB/HSW have 32 fence register 2013-04-18 09:43:21 +02:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c drm/i915: cleanup opregion asle pipestat enable 2013-04-30 10:40:31 +02:00
i915_reg.h drm/i915: hw state readout support for pipe timings 2013-04-29 23:29:38 +02:00
i915_suspend.c drm/i915: protect backlight registers and data with a spinlock 2013-04-25 14:10:10 +02:00
i915_sysfs.c drm/i915: turbo & RC6 support for VLV v7 2013-04-18 10:15:43 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Allow DRM_ROOT_ONLY|DRM_MASTER to submit privileged batchbuffers 2012-10-17 21:06:59 +02:00
i915_ums.c drm/i915: move DP save/restore into i915_ums.c 2013-01-31 11:50:04 +01:00
intel_acpi.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_bios.c drm/i915: set CPT FDI RX polarity bits based on VBT 2013-04-18 09:43:31 +02:00
intel_bios.h drm/i915: set CPT FDI RX polarity bits based on VBT 2013-04-18 09:43:31 +02:00
intel_crt.c drm/i915: Fixup non-24bpp support for VGA screens on Haswell 2013-04-24 14:46:30 +02:00
intel_ddi.c drm/i915: hw state readout support for pipe_config->fdi_lanes 2013-04-29 21:51:14 +02:00
intel_display.c drm/i915: move border color writes to pfit_enable 2013-04-30 16:16:47 +02:00
intel_dp.c drm/i915: allow high-bpc modes on DP 2013-04-29 21:51:13 +02:00
intel_drv.h drm/i915: move lvds_border_bits to pipe_config 2013-04-30 16:16:14 +02:00
intel_dvo.c drm/i915: rip out helper->disable noop functions 2013-02-14 00:07:54 +01:00
intel_fb.c drm/i915: Support PCH no display 2013-04-06 19:33:29 +02:00
intel_hdmi.c drm/i915: implement fdi auto-dithering 2013-04-29 21:51:17 +02:00
intel_i2c.c drm/i915: Don't touch South Display when PCH_NOP 2013-04-08 20:53:00 +02:00
intel_lvds.c drm/i915: move border color writes to pfit_enable 2013-04-30 16:16:47 +02:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c drm/i915: cleanup opregion asle pipestat enable 2013-04-30 10:40:31 +02:00
intel_overlay.c Merge tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-02-08 11:08:10 +10:00
intel_panel.c drm/i915: rip out indirection for pfit pipe_config assignment 2013-04-30 16:16:32 +02:00
intel_pm.c drm/i915: Only print the info message about incresing stolen size for FBC once 2013-04-27 14:06:39 +02:00
intel_ringbuffer.c drm/i915: Fix PIPE_CONTROL DW/QW write through global GTT on IVB+ 2013-02-20 00:21:47 +01:00
intel_ringbuffer.h Merge tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-01-17 20:34:08 +10:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sdvo.c drm/i915: (re)init HPD interrupt storm statistics 2013-04-18 09:43:29 +02:00
intel_sprite.c drm/i915: Relax the sprite scaling limits checks 2013-04-30 22:20:10 +02:00
intel_tv.c drm/i915: (re)init HPD interrupt storm statistics 2013-04-18 09:43:29 +02:00
Makefile drm/i915: extract ums suspend/resume into i915_ums.c 2013-01-31 11:50:03 +01:00