drm/i915: Add dev to ppgtt
authorBen Widawsky <ben@bwidawsk.net>
Mon, 24 Sep 2012 15:55:51 +0000 (08:55 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 11 Nov 2012 22:51:10 +0000 (23:51 +0100)
Some subsequent commits will need to know what generation we're running
on to do different pte encoding for the ppgtt. Since it's not much
hassle or overhead to store it in the ppgtt structure, do that.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_drv.h
drivers/gpu/drm/i915/i915_gem_gtt.c

index f5120d024fdf30b8ff058d798ab01813fa13afef..a2c5e89549ad4cdaadb19bdedb057f6522771af6 100644 (file)
@@ -345,6 +345,7 @@ struct intel_device_info {
 #define I915_PPGTT_PD_ENTRIES 512
 #define I915_PPGTT_PT_ENTRIES 1024
 struct i915_hw_ppgtt {
+       struct drm_device *dev;
        unsigned num_pd_entries;
        struct page **pt_pages;
        uint32_t pd_offset;
index c040aad0cca6652f64ae1198e2ce8868a9e300ea..ed0fe15a41f461ab79a2427457d4d197118d17e7 100644 (file)
@@ -77,6 +77,7 @@ int i915_gem_init_aliasing_ppgtt(struct drm_device *dev)
        if (!ppgtt)
                return ret;
 
+       ppgtt->dev = dev;
        ppgtt->num_pd_entries = I915_PPGTT_PD_ENTRIES;
        ppgtt->pt_pages = kzalloc(sizeof(struct page *)*ppgtt->num_pd_entries,
                                  GFP_KERNEL);
@@ -218,7 +219,7 @@ void i915_ppgtt_bind_object(struct i915_hw_ppgtt *ppgtt,
        switch (cache_level) {
        case I915_CACHE_LLC_MLC:
                /* Haswell doesn't set L3 this way */
-               if (IS_HASWELL(obj->base.dev))
+               if (IS_HASWELL(ppgtt->dev))
                        pte_flags |= GEN6_PTE_CACHE_LLC;
                else
                        pte_flags |= GEN6_PTE_CACHE_LLC_MLC;
@@ -227,7 +228,7 @@ void i915_ppgtt_bind_object(struct i915_hw_ppgtt *ppgtt,
                pte_flags |= GEN6_PTE_CACHE_LLC;
                break;
        case I915_CACHE_NONE:
-               if (IS_HASWELL(obj->base.dev))
+               if (IS_HASWELL(ppgtt->dev))
                        pte_flags |= HSW_PTE_UNCACHED;
                else
                        pte_flags |= GEN6_PTE_UNCACHED;