linux/drivers/gpu/drm/i915
Ben Widawsky 679845ede0 drm/i915: Clean up VMAs before freeing
It's quite common for an object to simply be on the inactive list (and
not unbound) when we want to free the context. This of course happens
with lazy unbinding. Simply, this is needed when an object isn't fully
unbound but we want to free one VMA of the object, for whatever reason.

NOTE: The aliasing PPGTT is not a proper VM, so it needs special casing.

This addresses the fixup requirement mentioned in:
drm/915: Better reset handling for contexts

In the flink, and dmabuf case, we can't assert that the object isn't
still active. To keep it more generic, just check the vma's link in the
object vma list. If we wanted to do a better job, we could track last
seqno (and active) per VMA. It was decided not to do this in the last
iteration. Unfortunately this means the assertion can miss real bugs
when using flink/dmabuf.

v2: Use the newer introduced i915_gem_evict_vm(). Note that handling the
aliasing PPGTT is special.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-18 16:15:40 +01:00
..
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c drm/i915/ns2501: Rip out the reenable hack 2013-11-04 16:32:31 +01:00
dvo_sil164.c
dvo_tfp410.c
dvo.h
i915_debugfs.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
i915_dma.c drm/i915: Do aliasing PPGTT init with contexts 2013-12-18 15:32:14 +01:00
i915_drv.c drm/i915: Disallow dynamic ppgtt param modification 2013-11-26 10:10:14 +01:00
i915_drv.h drm/i915: Clean up VMAs before freeing 2013-12-18 16:15:40 +01:00
i915_gem_context.c drm/i915: Get context early in execbuf 2013-12-18 15:52:42 +01:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_evict.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
i915_gem_execbuffer.c drm/i915: Get context early in execbuf 2013-12-18 15:52:42 +01:00
i915_gem_gtt.c drm/i915: Do aliasing PPGTT init with contexts 2013-12-18 15:32:14 +01:00
i915_gem_stolen.c
i915_gem_tiling.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
i915_gem.c drm/i915: Defer request freeing 2013-12-18 15:52:51 +01:00
i915_gpu_error.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Swap primary planes on gen2 for FBC 2013-12-04 12:09:36 +01:00
i915_reg.h drm/i915: Fix bogus FBC1 defines 2013-12-04 12:09:34 +01:00
i915_suspend.c drm/i915: do not save/restore backlight registers in KMS 2013-11-14 12:22:32 +01:00
i915_sysfs.c Merge branch 'backlight-rework' into drm-intel-next-queued 2013-11-15 10:02:39 +01:00
i915_trace_points.c
i915_trace.h
i915_ums.c drm/i915: do not save/restore backlight registers in KMS 2013-11-14 12:22:32 +01:00
intel_acpi.c ACPI: Eliminate the DEVICE_ACPI_HANDLE() macro 2013-11-14 23:17:21 +01:00
intel_bios.c i915: Use 120MHz LVDS SSC clock for gen5/gen6/gen7 2013-11-15 00:38:44 +01:00
intel_bios.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_crt.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_ddi.c Linux 3.13-rc3 2013-12-09 09:19:14 +01:00
intel_display.c Linux 3.13-rc3 2013-12-09 09:19:14 +01:00
intel_dp.c Linux 3.13-rc3 2013-12-09 09:19:14 +01:00
intel_drv.h drm/i915: add intel_display_power_enabled_sw() for use in atomic ctx 2013-11-28 15:05:06 +01:00
intel_dsi_cmd.c
intel_dsi_cmd.h
intel_dsi_pll.c
intel_dsi.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_dsi.h
intel_dvo.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_fbdev.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
intel_hdmi.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_i2c.c drm/i915/vlv: split CCK and DDR freq usage 2013-11-05 19:28:47 +01:00
intel_lvds.c drm/i915/lvds: don't restore hw state in the lid notifier for pch platforms 2013-12-02 15:08:41 +01:00
intel_modes.c
intel_opregion.c Linux 3.13-rc3 2013-12-09 09:19:14 +01:00
intel_overlay.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
intel_panel.c Merge branch 'bdw-fixes' into backlight-rework 2013-11-15 09:44:29 +01:00
intel_pm.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
intel_ringbuffer.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
intel_ringbuffer.h
intel_sdvo_regs.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_sdvo.c drm/i915: Return a drm_mode_status enum in the mode_valid vfuncs 2013-11-28 16:49:33 +01:00
intel_sideband.c drm/i915/vlv: Make the vlv_dpio_read/vlv_dpio_write more PHY centric 2013-11-11 10:57:45 +01:00
intel_sprite.c drm/i915: Enable pipe gamma for sprites 2013-11-21 09:09:37 +01:00
intel_tv.c drm/i915/tv: add ->get_config callback 2013-11-18 22:24:33 +01:00
intel_uncore.c drm/i915: Get context early in execbuf 2013-12-18 15:52:42 +01:00
Kconfig i915, fbdev: Fix Kconfig typo 2013-11-21 21:59:02 +01:00
Makefile