[Intel-gfx] [PATCH 6/6 v2] drm/i915: Make GSM void

Daniel Vetter daniel at ffwll.ch
Thu Dec 20 16:33:28 CET 2012


On Wed, Dec 19, 2012 at 11:20:15AM -0800, Ben Widawsky wrote:
> On Wed, Dec 19, 2012 at 01:45:23PM +0200, Ville Syrjälä wrote:
> > On Tue, Dec 18, 2012 at 10:31:27AM -0800, Ben Widawsky wrote:
> > > 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 at bwidawsk.net>
> > > ---
> > >  drivers/gpu/drm/i915/i915_drv.h     | 2 +-
> > >  drivers/gpu/drm/i915/i915_gem_gtt.c | 5 +++--
> > >  2 files changed, 4 insertions(+), 3 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> > > index 49f465a..90dfbd5 100644
> > > --- a/drivers/gpu/drm/i915/i915_drv.h
> > > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > > @@ -800,7 +800,7 @@ typedef struct drm_i915_private {
> > >  		unsigned long stolen_base; /* limited to low memory (32-bit) */
> > >  
> > >  		/** "Graphics Stolen Memory" holds the global PTEs */
> > > -		uint32_t __iomem *gsm;
> > > +		void __iomem *gsm;
> > >  
> > >  		struct io_mapping *gtt_mapping;
> > >  		phys_addr_t gtt_base_addr;
> > > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > > index b4c1e34..a52e784 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.gsm + ppgtt->pd_offset/sizeof(gtt_pte_t);
> > > +	pd_addr = (gtt_pte_t *)dev_priv->mm.gsm + ppgtt->pd_offset/sizeof(gtt_pte_t);
> > 
> > This cast is still missing __iomem.
> 
> That looks to be correct. But it wasn't introduced by me, right? Ie.
> separate patch to fix it before this one?

Very much, and right in this patch - pd_addr and mm.gsm are both __iomem,
so you need to keep that annotation in the cast from void* to gtt_pte_t *.
Fixed up and the remaining three patches applied.

Thanks, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list