]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Use the same pte_encoding for ppgtt as for gtt
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 30 Jul 2013 18:04:37 +0000 (19:04 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 4 Aug 2013 19:29:57 +0000 (21:29 +0200)
The PTE layouts are the same for both ppgtt and gtt, so we can simplify
the setup for ppgtt by copying the encoding function pointer from gtt.
This prevents bugs where we update one function pointer, but forget the
other.

For instance,

commit 8585c3f7bae5be8f5ab12b31afc0dbd669a510a9
Author: Ben Widawsky <ben@bwidawsk.net>
Date:   Thu Jul 4 11:02:06 2013 -0700

    drm/i915: Use eLLC/LLC by default when available

only extends the gtt to use eLLC/LLC cacheing and forgets to also update
the ppgtt function pointer.

v2: Actually mention the bug being fixed (Kenneth)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem_gtt.c

index 3b639a94dddf72b1fdebcf2f00e46f9d60c17bb8..e7b420495516373a3671f91d2297de973f59070e 100644 (file)
@@ -298,13 +298,7 @@ static int gen6_ppgtt_init(struct i915_hw_ppgtt *ppgtt)
         * now. */
        first_pd_entry_in_global_pt = gtt_total_entries(dev_priv->gtt);
 
-       if (IS_HASWELL(dev)) {
-               ppgtt->base.pte_encode = hsw_pte_encode;
-       } else if (IS_VALLEYVIEW(dev)) {
-               ppgtt->base.pte_encode = byt_pte_encode;
-       } else {
-               ppgtt->base.pte_encode = gen6_pte_encode;
-       }
+       ppgtt->base.pte_encode = dev_priv->gtt.base.pte_encode;
        ppgtt->num_pd_entries = GEN6_PPGTT_PD_ENTRIES;
        ppgtt->enable = gen6_ppgtt_enable;
        ppgtt->base.clear_range = gen6_ppgtt_clear_range;