Browse Source

drm/i915: Make GSM void

The iomapping of the register region has historically been a uint32_t
for the obvious reason that our PTE size was always 4b. In the future
however, we cannot make this assumption.

By making the type void, it makes the upcoming pointer math we will do
much easier, and hopefully gives the compiler opportunities to warn us
when we do stupid things.

v2: Cast to __iomem, caught by Ville

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
[danvet: Fixup __iomem issue for real.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Ben Widawsky 13 years ago
parent
commit
1c45140d3d
2 changed files with 4 additions and 3 deletions
  1. 1 1
      drivers/gpu/drm/i915/i915_drv.h
  2. 3 2
      drivers/gpu/drm/i915/i915_gem_gtt.c

+ 1 - 1
drivers/gpu/drm/i915/i915_drv.h

@@ -801,7 +801,7 @@ typedef struct drm_i915_private {
 		unsigned long stolen_base; /* limited to low memory (32-bit) */
 		unsigned long stolen_base; /* limited to low memory (32-bit) */
 
 
 		/** "Graphics Stolen Memory" holds the global PTEs */
 		/** "Graphics Stolen Memory" holds the global PTEs */
-		uint32_t __iomem *gsm;
+		void __iomem *gsm;
 
 
 		struct io_mapping *gtt_mapping;
 		struct io_mapping *gtt_mapping;
 		phys_addr_t gtt_base_addr;
 		phys_addr_t gtt_base_addr;

+ 3 - 2
drivers/gpu/drm/i915/i915_gem_gtt.c

@@ -290,7 +290,7 @@ void i915_gem_init_ppgtt(struct drm_device *dev)
 		return;
 		return;
 
 
 
 
-	pd_addr = dev_priv->mm.gsm + ppgtt->pd_offset/sizeof(gtt_pte_t);
+	pd_addr = (gtt_pte_t __iomem*)dev_priv->mm.gsm + ppgtt->pd_offset/sizeof(gtt_pte_t);
 	for (i = 0; i < ppgtt->num_pd_entries; i++) {
 	for (i = 0; i < ppgtt->num_pd_entries; i++) {
 		dma_addr_t pt_addr;
 		dma_addr_t pt_addr;
 
 
@@ -432,7 +432,8 @@ static void gen6_ggtt_bind_object(struct drm_i915_gem_object *obj,
 	struct scatterlist *sg = st->sgl;
 	struct scatterlist *sg = st->sgl;
 	const int first_entry = obj->gtt_space->start >> PAGE_SHIFT;
 	const int first_entry = obj->gtt_space->start >> PAGE_SHIFT;
 	const int max_entries = dev_priv->mm.gtt->gtt_total_entries - first_entry;
 	const int max_entries = dev_priv->mm.gtt->gtt_total_entries - first_entry;
-	gtt_pte_t __iomem *gtt_entries = dev_priv->mm.gsm + first_entry;
+	gtt_pte_t __iomem *gtt_entries =
+		(gtt_pte_t __iomem *)dev_priv->mm.gsm + first_entry;
 	int unused, i = 0;
 	int unused, i = 0;
 	unsigned int len, m = 0;
 	unsigned int len, m = 0;
 	dma_addr_t addr;
 	dma_addr_t addr;