summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem_gtt.h
diff options
context:
space:
mode:
authorMika Kuoppala2015-06-25 17:35:06 +0200
committerDaniel Vetter2015-06-26 10:50:52 +0200
commitd852c7bf902aa36f37b6fd0bb1147c922e7bd0fb (patch)
treebf86406df2cd1c9c310b014e0a0f219155d7f72c /drivers/gpu/drm/i915/i915_gem_gtt.h
parentdrm/i915/gtt: Allow >= 4GB sizes for vm. (diff)
downloadkernel-qcow2-linux-d852c7bf902aa36f37b6fd0bb1147c922e7bd0fb.tar.gz
kernel-qcow2-linux-d852c7bf902aa36f37b6fd0bb1147c922e7bd0fb.tar.xz
kernel-qcow2-linux-d852c7bf902aa36f37b6fd0bb1147c922e7bd0fb.zip
drm/i915/gtt: Introduce i915_page_dir_dma_addr
The legacy mode mm switch and the execlist context assignment needs dma address for the page directories. Introduce a function that encapsulates the scratch_pd dma fallback if no pd is found. v2: Rebase, s/ring/req Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Reviewed-by: Michel Thierry <michel.thierry@intel.com> (v1) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_gtt.h')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_gtt.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
index 600eec00a1f4..f368c7155223 100644
--- a/drivers/gpu/drm/i915/i915_gem_gtt.h
+++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
@@ -470,6 +470,14 @@ static inline size_t gen8_pte_count(uint64_t address, uint64_t length)
return i915_pte_count(address, length, GEN8_PDE_SHIFT);
}
+static inline dma_addr_t
+i915_page_dir_dma_addr(const struct i915_hw_ppgtt *ppgtt, const unsigned n)
+{
+ return test_bit(n, ppgtt->pdp.used_pdpes) ?
+ ppgtt->pdp.page_directory[n]->daddr :
+ ppgtt->scratch_pd->daddr;
+}
+
int i915_gem_gtt_init(struct drm_device *dev);
void i915_gem_init_global_gtt(struct drm_device *dev);
void i915_global_gtt_cleanup(struct drm_device *dev);