aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2011-10-13 19:08:42 -0400
committerDave Airlie <airlied@redhat.com>2011-10-18 04:55:05 -0400
commit6fcbef7a50b2f618376b65845a92cde3efc4a131 (patch)
treeb354c4a7d32ae53d08deda69be293e70f7467a36
parentce580fab739c815e25d13bae62f96ba7251f6e2e (diff)
drm/radeon: Move r100_*_*reg out of line
This shrinks the sizes of a lot of functions in the radeon driver dramatically. With a non force inline + -Os kernel this is default anyways. Cc: David Airlie <airlied@linux.ie> Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--drivers/gpu/drm/radeon/r100.c40
-rw-r--r--drivers/gpu/drm/radeon/radeon.h43
2 files changed, 44 insertions, 39 deletions
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index 13c0169e70ac..e108f265882a 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -4072,3 +4072,43 @@ int r100_init(struct radeon_device *rdev)
4072 } 4072 }
4073 return 0; 4073 return 0;
4074} 4074}
4075
4076uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg)
4077{
4078 if (reg < rdev->rmmio_size)
4079 return readl(((void __iomem *)rdev->rmmio) + reg);
4080 else {
4081 writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX);
4082 return readl(((void __iomem *)rdev->rmmio) + RADEON_MM_DATA);
4083 }
4084}
4085
4086void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v)
4087{
4088 if (reg < rdev->rmmio_size)
4089 writel(v, ((void __iomem *)rdev->rmmio) + reg);
4090 else {
4091 writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX);
4092 writel(v, ((void __iomem *)rdev->rmmio) + RADEON_MM_DATA);
4093 }
4094}
4095
4096u32 r100_io_rreg(struct radeon_device *rdev, u32 reg)
4097{
4098 if (reg < rdev->rio_mem_size)
4099 return ioread32(rdev->rio_mem + reg);
4100 else {
4101 iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX);
4102 return ioread32(rdev->rio_mem + RADEON_MM_DATA);
4103 }
4104}
4105
4106void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v)
4107{
4108 if (reg < rdev->rio_mem_size)
4109 iowrite32(v, rdev->rio_mem + reg);
4110 else {
4111 iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX);
4112 iowrite32(v, rdev->rio_mem + RADEON_MM_DATA);
4113 }
4114}
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index f3260f7136a9..a116d42a238a 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -1228,45 +1228,10 @@ int radeon_device_init(struct radeon_device *rdev,
1228void radeon_device_fini(struct radeon_device *rdev); 1228void radeon_device_fini(struct radeon_device *rdev);
1229int radeon_gpu_wait_for_idle(struct radeon_device *rdev); 1229int radeon_gpu_wait_for_idle(struct radeon_device *rdev);
1230 1230
1231static inline uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg) 1231uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg);
1232{ 1232void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
1233 if (reg < rdev->rmmio_size) 1233u32 r100_io_rreg(struct radeon_device *rdev, u32 reg);
1234 return readl((rdev->rmmio) + reg); 1234void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v);
1235 else {
1236 writel(reg, (rdev->rmmio) + RADEON_MM_INDEX);
1237 return readl((rdev->rmmio) + RADEON_MM_DATA);
1238 }
1239}
1240
1241static inline void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v)
1242{
1243 if (reg < rdev->rmmio_size)
1244 writel(v, (rdev->rmmio) + reg);
1245 else {
1246 writel(reg, (rdev->rmmio) + RADEON_MM_INDEX);
1247 writel(v, (rdev->rmmio) + RADEON_MM_DATA);
1248 }
1249}
1250
1251static inline u32 r100_io_rreg(struct radeon_device *rdev, u32 reg)
1252{
1253 if (reg < rdev->rio_mem_size)
1254 return ioread32(rdev->rio_mem + reg);
1255 else {
1256 iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX);
1257 return ioread32(rdev->rio_mem + RADEON_MM_DATA);
1258 }
1259}
1260
1261static inline void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v)
1262{
1263 if (reg < rdev->rio_mem_size)
1264 iowrite32(v, rdev->rio_mem + reg);
1265 else {
1266 iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX);
1267 iowrite32(v, rdev->rio_mem + RADEON_MM_DATA);
1268 }
1269}
1270 1235
1271/* 1236/*
1272 * Cast helper 1237 * Cast helper