diff options
| author | Ben Widawsky <benjamin.widawsky@intel.com> | 2012-12-18 10:31:26 -0800 | 
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2012-12-20 16:28:42 +0100 | 
| commit | 06e5598fce5ce89fe8bf081398296e5b08d993dd (patch) | |
| tree | 3c00031aed1df894613b53c3900192dd677ec367 | |
| parent | d7e5008f7c2077d856e40a3af746f1a47028b5f2 (diff) | |
| download | olio-linux-3.10-06e5598fce5ce89fe8bf081398296e5b08d993dd.tar.xz olio-linux-3.10-06e5598fce5ce89fe8bf081398296e5b08d993dd.zip  | |
drm/i915: Move GSM mapping into dev_priv
This removes an unused field from the AGP structure and moves it into
the dev_priv structure (with a slightly better name). This builds upon
the kill-agp series already merged.
GSM is a well defined term in the bspec:
GSM: Graphics Stolen Memory
GTT stolen space is defined for storage of the GFX GTT entries in
physical memory. IA can not access GSM directly , it can only access via
GTTMMADR. GT can access GSM directly or through GTTMMADR.
This is not the entire stolen space.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
| -rw-r--r-- | drivers/char/agp/intel-gtt.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem_gtt.c | 14 | ||||
| -rw-r--r-- | include/drm/intel-gtt.h | 2 | 
4 files changed, 10 insertions, 10 deletions
diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c index dbd901e94ea..c8d9dcb15db 100644 --- a/drivers/char/agp/intel-gtt.c +++ b/drivers/char/agp/intel-gtt.c @@ -602,7 +602,6 @@ static int intel_gtt_init(void)  		iounmap(intel_private.registers);  		return -ENOMEM;  	} -	intel_private.base.gtt = intel_private.gtt;  	global_cache_flush();   /* FIXME: ? */ diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 15799e783b7..ae88d87be95 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -800,6 +800,9 @@ typedef struct drm_i915_private {  		unsigned long gtt_end;  		unsigned long stolen_base; /* limited to low memory (32-bit) */ +		/** "Graphics Stolen Memory" holds the global PTEs */ +		uint32_t __iomem *gsm; +  		struct io_mapping *gtt_mapping;  		phys_addr_t gtt_base_addr;  		int gtt_mtrr; diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index 61b3e728be3..912389e38a7 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -290,7 +290,7 @@ void i915_gem_init_ppgtt(struct drm_device *dev)  		return; -	pd_addr = dev_priv->mm.gtt->gtt + ppgtt->pd_offset/sizeof(gtt_pte_t); +	pd_addr = dev_priv->mm.gsm + ppgtt->pd_offset/sizeof(gtt_pte_t);  	for (i = 0; i < ppgtt->num_pd_entries; i++) {  		dma_addr_t pt_addr; @@ -367,7 +367,7 @@ static void i915_ggtt_clear_range(struct drm_device *dev,  {  	struct drm_i915_private *dev_priv = dev->dev_private;  	gtt_pte_t scratch_pte; -	gtt_pte_t __iomem *gtt_base = dev_priv->mm.gtt->gtt + first_entry; +	gtt_pte_t __iomem *gtt_base = (gtt_pte_t __iomem *) dev_priv->mm.gsm + first_entry;  	const int max_entries = dev_priv->mm.gtt->gtt_total_entries - first_entry;  	int i; @@ -432,7 +432,7 @@ static void gen6_ggtt_bind_object(struct drm_i915_gem_object *obj,  	struct scatterlist *sg = st->sgl;  	const int first_entry = obj->gtt_space->start >> PAGE_SHIFT;  	const int max_entries = dev_priv->mm.gtt->gtt_total_entries - first_entry; -	gtt_pte_t __iomem *gtt_entries = dev_priv->mm.gtt->gtt + first_entry; +	gtt_pte_t __iomem *gtt_entries = dev_priv->mm.gsm + first_entry;  	int unused, i = 0;  	unsigned int len, m = 0;  	dma_addr_t addr; @@ -747,9 +747,9 @@ int i915_gem_gtt_init(struct drm_device *dev)  		goto err_out;  	} -	dev_priv->mm.gtt->gtt = ioremap_wc(gtt_bus_addr, -					   dev_priv->mm.gtt->gtt_total_entries * sizeof(gtt_pte_t)); -	if (!dev_priv->mm.gtt->gtt) { +	dev_priv->mm.gsm = ioremap_wc(gtt_bus_addr, +				      dev_priv->mm.gtt->gtt_total_entries * sizeof(gtt_pte_t)); +	if (!dev_priv->mm.gsm) {  		DRM_ERROR("Failed to map the gtt page table\n");  		teardown_scratch_page(dev);  		ret = -ENOMEM; @@ -773,7 +773,7 @@ err_out:  void i915_gem_gtt_fini(struct drm_device *dev)  {  	struct drm_i915_private *dev_priv = dev->dev_private; -	iounmap(dev_priv->mm.gtt->gtt); +	iounmap(dev_priv->mm.gsm);  	teardown_scratch_page(dev);  	if (INTEL_INFO(dev)->gen < 6)  		intel_gmch_remove(); diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h index 6eb76a1f11a..3e3a166a269 100644 --- a/include/drm/intel-gtt.h +++ b/include/drm/intel-gtt.h @@ -18,8 +18,6 @@ struct intel_gtt {  	/* Share the scratch page dma with ppgtts. */  	dma_addr_t scratch_page_dma;  	struct page *scratch_page; -	/* for ppgtt PDE access */ -	u32 __iomem *gtt;  	/* needed for ioremap in drm/i915 */  	phys_addr_t gma_bus_addr;  } *intel_gtt_get(void);  |