linux/drivers/gpu/drm/i915
Ben Widawsky f3a964b96d drm/i915/bdw: Reorganize PPGTT init
Create 3 clear stages in PPGTT init. This will help with upcoming
changes be more readable. The 3 stages are, allocation, dma mapping, and
writing the P[DT]Es

One nice benefit to the patches is that it makes 2 very clear error
points, allocation, and mapping, and avoids having to do any handling
after writing PTEs (something which was likely buggy before). This
simplified error handling I suspect will be helpful when we move to
deferred/dynamic page table allocation and mapping.

The patches also attempts to break up some of the steps into more
logical reviewable chunks, particularly when we free.

v2: Don't call cleanup on the error path since that takes down the
drm_mm and list entry, which aren't setup at this point.

v3: Fixes addressing Imre's comments from:
<1392821989.19792.13.camel@intelbox>

Don't do dynamic allocation for the page table DMA addresses. I can't
remember why I did it in the first place. This addresses one of Imre's
other issues.

Fix error path leak of page tables.

v4: Fix the fix of the error path leak. Original fix still leaked page
tables. (Imre)

Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-04 15:54:31 +01:00
..
Kconfig i915, fbdev: Fix Kconfig typo 2013-11-21 21:59:02 +01:00
Makefile drm/i915: move module parameters into a struct, in a new file 2014-01-27 17:16:45 +01:00
dvo.h drm/i915: Remove unused mode_fixup() vfunc of struct intel_dvo_dev_ops 2013-09-05 21:39:59 +02:00
dvo_ch7xxx.c drm/i915: dvo_ch7xxx: fix vsync polarity setting 2013-07-25 16:10:22 +02:00
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
i915_debugfs.c drm/i915: get/put runtime PM without holding rps.hw_lock 2014-03-04 15:13:04 +01:00
i915_dma.c drm/i915: delay master/sarea deref for legacy ioctls 2014-02-12 23:50:06 +01:00
i915_drv.c drm/i915: Restore rps/rc6 on reset 2014-02-07 10:25:10 +01:00
i915_drv.h drm/i915: Move ppgtt_release out of the header 2014-03-04 15:52:15 +01:00
i915_gem.c drm/i915: Only bind each object rather than for every execbuffer 2014-02-14 14:18:38 +01:00
i915_gem_context.c drm/i915/bdw: Free PPGTT struct 2014-03-04 15:53:58 +01:00
i915_gem_debug.c drm/i915: Fix #endif comment 2013-08-09 10:45:52 +02:00
i915_gem_dmabuf.c drm/i915: Pin pages whilst allocating for dma-buf vmap() 2013-11-29 15:51:20 +01:00
i915_gem_evict.c drm/i915: Consolidate binding parameters into flags 2014-02-14 14:16:58 +01:00
i915_gem_execbuffer.c drm/i915: Only bind each object rather than for every execbuffer 2014-02-14 14:18:38 +01:00
i915_gem_gtt.c drm/i915/bdw: Reorganize PPGTT init 2014-03-04 15:54:31 +01:00
i915_gem_stolen.c drm/i915: Fix the offset issue for the stolen GEM objects 2014-01-28 09:04:42 +01:00
i915_gem_tiling.c drm/i915: Make pin count per VMA 2013-12-18 15:27:49 +01:00
i915_gpu_error.c drm/i915: Generate a hang error code 2014-02-05 17:17:10 +01:00
i915_ioc32.c
i915_irq.c drm/i915: sprinkle static 2014-03-02 21:19:51 +01:00
i915_params.c drm/i915: Provide a command line option to disable display 2014-02-12 18:53:01 +01:00
i915_reg.h drm/i915: Change IVB WIZ hashing mode to 16x4 2014-03-04 15:39:05 +01:00
i915_suspend.c drm/i915: Kill most of the FBC register save/restore 2014-01-25 21:17:03 +01:00
i915_sysfs.c drm/i915: Update rps interrupt limits 2014-02-07 10:26:17 +01:00
i915_trace.h drm/i915: Consolidate binding parameters into flags 2014-02-14 14:16:58 +01:00
i915_trace_points.c
i915_ums.c drm/i915: Only restore backlight combination mode reg for ums 2014-01-24 17:22:45 +01:00
intel_acpi.c ACPI: Eliminate the DEVICE_ACPI_HANDLE() macro 2013-11-14 23:17:21 +01:00
intel_bios.c drm/i915: move module parameters into a struct, in a new file 2014-01-27 17:16:45 +01:00
intel_bios.h drm/i915: parse backlight modulation frequency from the BIOS VBT 2013-12-16 10:02:48 +01:00
intel_crt.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_ddi.c drm/i915: Consolidate FUSE_STRAP in one set of defines 2014-02-12 18:52:52 +01:00
intel_display.c drm/i915: rename modeset_update_power_wells 2014-03-04 15:11:28 +01:00
intel_dp.c drm/i915: dp: fix order of dp aux i2c device cleanup 2014-02-14 11:24:59 +01:00
intel_drv.h drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_dsi.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_dsi.h drm/i915: Parametrize the dphy and other spec specific parameters 2013-12-11 23:52:20 +01:00
intel_dsi_cmd.c drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_cmd.h drm/i915/dsi: s/size_t/int/ 2013-09-04 17:34:51 +02:00
intel_dsi_pll.c drm/i915: Try harder to get best m, n, p values with minimal error 2013-12-11 23:52:18 +01:00
intel_dvo.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_fbdev.c drm/i915: don't preserve inherited configs with nothing on v2 2014-02-13 11:52:44 +01:00
intel_hdmi.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +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: add unregister callback to connector 2014-02-14 11:24:47 +01: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: Eliminate lots of WARNs when there's no backlight present 2014-01-22 10:34:38 +01:00
intel_overlay.c drm/i915: tune down user-triggerable dmesg noise in the cursor/overlay code 2014-02-14 19:02:32 +01:00
intel_panel.c drm/i915: Initialize downclock mode in panel init 2014-02-12 18:53:05 +01:00
intel_pm.c drm/i915: Add a comment about WIZ hashing vs. thread counts 2014-03-04 15:39:35 +01:00
intel_ringbuffer.c drm/i915: Handle set_cache_level errors in the status page setup 2014-02-14 14:18:00 +01:00
intel_ringbuffer.h drm/i915: Use hangcheck score to find guilty context 2014-02-04 11:57:24 +01:00
intel_sdvo.c drm/i915: sdvo: add i2c sysfs symlink to the connector's directory 2014-02-14 11:25:14 +01:00
intel_sdvo_regs.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_sideband.c drm/i915: Use FLISDSI interface for band gap reset 2013-12-11 23:52:17 +01:00
intel_sprite.c drm/i915: Shuffle sprite register writes into a tighter group 2014-01-24 17:22:53 +01:00
intel_tv.c drm/i915: add unregister callback to connector 2014-02-14 11:24:47 +01:00
intel_uncore.c Merge branch 'topic/ppgtt' into drm-intel-next-queued 2014-01-25 21:14:57 +01:00