On Wed, Jul 13, 2011 at 2:28 AM, Benjamin Herrenschmidt <benh at kernel.crashing.org> wrote: > Just defining rdev->rmmio properly in the first place should do > the trick. In some cases, the cast were also complete dups as > the original variable was already of the right type. > > Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > --- > > (resent adding dri-devel to the CC list to hit patchwork) > > ?drivers/gpu/drm/radeon/radeon.h | ? 22 +++++++++++----------- > ?drivers/gpu/drm/radeon/rs600.c ?| ? ?2 +- > ?2 files changed, 12 insertions(+), 12 deletions(-) > > diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h > index ef0e0e0..c92cf2c 100644 > --- a/drivers/gpu/drm/radeon/radeon.h > +++ b/drivers/gpu/drm/radeon/radeon.h > @@ -1174,7 +1174,7 @@ struct radeon_device { > ? ? ? ?/* Register mmio */ > ? ? ? ?resource_size_t ? ? ? ? ? ? ? ? rmmio_base; > ? ? ? ?resource_size_t ? ? ? ? ? ? ? ? rmmio_size; > - ? ? ? void ? ? ? ? ? ? ? ? ? ? ? ? ? ?*rmmio; > + ? ? ? void __iomem ? ? ? ? ? ? ? ? ? ?*rmmio; > ? ? ? ?radeon_rreg_t ? ? ? ? ? ? ? ? ? mc_rreg; > ? ? ? ?radeon_wreg_t ? ? ? ? ? ? ? ? ? mc_wreg; > ? ? ? ?radeon_rreg_t ? ? ? ? ? ? ? ? ? pll_rreg; > @@ -1251,20 +1251,20 @@ int radeon_gpu_wait_for_idle(struct radeon_device > *rdev); > ?static inline uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg) > ?{ > ? ? ? ?if (reg < rdev->rmmio_size) > - ? ? ? ? ? ? ? return readl(((void __iomem *)rdev->rmmio) + reg); > + ? ? ? ? ? ? ? return readl((rdev->rmmio) + reg); > ? ? ? ?else { > - ? ? ? ? ? ? ? writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX); > - ? ? ? ? ? ? ? return readl(((void __iomem *)rdev->rmmio) + RADEON_MM_DATA); > + ? ? ? ? ? ? ? writel(reg, (rdev->rmmio) + RADEON_MM_INDEX); > + ? ? ? ? ? ? ? return readl((rdev->rmmio) + RADEON_MM_DATA); > ? ? ? ?} > ?} > > ?static inline void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, > uint32_t v) > ?{ > ? ? ? ?if (reg < rdev->rmmio_size) > - ? ? ? ? ? ? ? writel(v, ((void __iomem *)rdev->rmmio) + reg); > + ? ? ? ? ? ? ? writel(v, (rdev->rmmio) + reg); > ? ? ? ?else { > - ? ? ? ? ? ? ? writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX); > - ? ? ? ? ? ? ? writel(v, ((void __iomem *)rdev->rmmio) + RADEON_MM_DATA); > + ? ? ? ? ? ? ? writel(reg, (rdev->rmmio) + RADEON_MM_INDEX); > + ? ? ? ? ? ? ? writel(v, (rdev->rmmio) + RADEON_MM_DATA); > ? ? ? ?} > ?} > > @@ -1296,10 +1296,10 @@ static inline void r100_io_wreg(struct radeon_device > *rdev, u32 reg, u32 v) > ?/* > ?* Registers read & write functions. > ?*/ > -#define RREG8(reg) readb(((void __iomem *)rdev->rmmio) + (reg)) > -#define WREG8(reg, v) writeb(v, ((void __iomem *)rdev->rmmio) + (reg)) > -#define RREG16(reg) readw(((void __iomem *)rdev->rmmio) + (reg)) > -#define WREG16(reg, v) writew(v, ((void __iomem *)rdev->rmmio) + (reg)) > +#define RREG8(reg) readb((rdev->rmmio) + (reg)) > +#define WREG8(reg, v) writeb(v, (rdev->rmmio) + (reg)) > +#define RREG16(reg) readw((rdev->rmmio) + (reg)) > +#define WREG16(reg, v) writew(v, (rdev->rmmio) + (reg)) > ?#define RREG32(reg) r100_mm_rreg(rdev, (reg)) > ?#define DREG32(reg) printk(KERN_INFO "REGISTER: " #reg " : 0x%08X\n", > r100_mm_rreg(rdev, (reg))) > ?#define WREG32(reg, v) r100_mm_wreg(rdev, (reg), (v)) > diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c > index 6e3b11e..6779576 100644 > --- a/drivers/gpu/drm/radeon/rs600.c > +++ b/drivers/gpu/drm/radeon/rs600.c > @@ -530,7 +530,7 @@ int rs600_gart_set_page(struct radeon_device *rdev, int > i, uint64_t addr) > ? ? ? ?addr = addr & 0xFFFFFFFFFFFFF000ULL; > ? ? ? ?addr |= R600_PTE_VALID | R600_PTE_SYSTEM | R600_PTE_SNOOPED; > ? ? ? ?addr |= R600_PTE_READABLE | R600_PTE_WRITEABLE; > - ? ? ? writeq(addr, ((void __iomem *)ptr) + (i * 8)); > + ? ? ? writeq(addr, ptr + (i * 8)); > ? ? ? ?return 0; > ?} > > > > >