summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter2012-06-07 15:56:03 +0200
committerDaniel Vetter2012-06-12 22:21:07 +0200
commit8ecd1a6615f0d9de6759aafe229bc1cc4ee99c7b (patch)
tree21ed616513e68e37b7fc2d95d19fad1e1a883add
parentagp/intel-gtt: move gart base addres setup (diff)
downloadkernel-qcow2-linux-8ecd1a6615f0d9de6759aafe229bc1cc4ee99c7b.tar.gz
kernel-qcow2-linux-8ecd1a6615f0d9de6759aafe229bc1cc4ee99c7b.tar.xz
kernel-qcow2-linux-8ecd1a6615f0d9de6759aafe229bc1cc4ee99c7b.zip
drm/i915: call intel_enable_gtt
When drm/i915 is in control of the gtt, we need to call the enable function at all the relevant places ourselves. Reviewed-by: Jani Nikula <jani.nikula@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/char/agp/intel-gtt.c3
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c3
-rw-r--r--include/drm/intel-gtt.h2
3 files changed, 7 insertions, 1 deletions
diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
index 4387e69f8b11..419a25eeefd8 100644
--- a/drivers/char/agp/intel-gtt.c
+++ b/drivers/char/agp/intel-gtt.c
@@ -777,7 +777,7 @@ static void i830_write_entry(dma_addr_t addr, unsigned int entry,
writel(addr | pte_flags, intel_private.gtt + entry);
}
-static bool intel_enable_gtt(void)
+bool intel_enable_gtt(void)
{
u8 __iomem *reg;
@@ -823,6 +823,7 @@ static bool intel_enable_gtt(void)
return true;
}
+EXPORT_SYMBOL(intel_enable_gtt);
static int i830_setup(void)
{
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 108e4c2b5ffa..2884b0865473 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -3689,6 +3689,9 @@ i915_gem_init_hw(struct drm_device *dev)
drm_i915_private_t *dev_priv = dev->dev_private;
int ret;
+ if (!intel_enable_gtt())
+ return -EIO;
+
i915_gem_l3_remap(dev);
i915_gem_init_swizzling(dev);
diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
index 84ebd7188fc6..8e29d551bb3c 100644
--- a/include/drm/intel-gtt.h
+++ b/include/drm/intel-gtt.h
@@ -27,6 +27,8 @@ int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
struct agp_bridge_data *bridge);
void intel_gmch_remove(void);
+bool intel_enable_gtt(void);
+
void intel_gtt_chipset_flush(void);
void intel_gtt_unmap_memory(struct scatterlist *sg_list, int num_sg);
void intel_gtt_clear_range(unsigned int first_entry, unsigned int num_entries);