lkml.org 
[lkml]   [2011]   [Oct]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 02/12] RADEON: Move r100_*_*reg out of line
    Date
    From: Andi Kleen <ak@linux.intel.com>

    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>
    ---
    drivers/gpu/drm/radeon/r100.c | 40 ++++++++++++++++++++++++++++++++++++
    drivers/gpu/drm/radeon/radeon.h | 43 +++-----------------------------------
    2 files changed, 44 insertions(+), 39 deletions(-)

    diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
    index 7fcdbbb..9a1efac 100644
    --- a/drivers/gpu/drm/radeon/r100.c
    +++ b/drivers/gpu/drm/radeon/r100.c
    @@ -3965,3 +3965,43 @@ int r100_init(struct radeon_device *rdev)
    }
    return 0;
    }
    +
    +uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg)
    +{
    + if (reg < rdev->rmmio_size)
    + return readl(((void __iomem *)rdev->rmmio) + reg);
    + else {
    + writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX);
    + return readl(((void __iomem *)rdev->rmmio) + RADEON_MM_DATA);
    + }
    +}
    +
    +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);
    + else {
    + writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX);
    + writel(v, ((void __iomem *)rdev->rmmio) + RADEON_MM_DATA);
    + }
    +}
    +
    +u32 r100_io_rreg(struct radeon_device *rdev, u32 reg)
    +{
    + if (reg < rdev->rio_mem_size)
    + return ioread32(rdev->rio_mem + reg);
    + else {
    + iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX);
    + return ioread32(rdev->rio_mem + RADEON_MM_DATA);
    + }
    +}
    +
    +void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v)
    +{
    + if (reg < rdev->rio_mem_size)
    + iowrite32(v, rdev->rio_mem + reg);
    + else {
    + iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX);
    + iowrite32(v, rdev->rio_mem + RADEON_MM_DATA);
    + }
    +}
    diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
    index c1e056b..8ac6cba 100644
    --- a/drivers/gpu/drm/radeon/radeon.h
    +++ b/drivers/gpu/drm/radeon/radeon.h
    @@ -1252,45 +1252,10 @@ int radeon_device_init(struct radeon_device *rdev,
    void radeon_device_fini(struct radeon_device *rdev);
    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((rdev->rmmio) + reg);
    - else {
    - 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, (rdev->rmmio) + reg);
    - else {
    - writel(reg, (rdev->rmmio) + RADEON_MM_INDEX);
    - writel(v, (rdev->rmmio) + RADEON_MM_DATA);
    - }
    -}
    -
    -static inline u32 r100_io_rreg(struct radeon_device *rdev, u32 reg)
    -{
    - if (reg < rdev->rio_mem_size)
    - return ioread32(rdev->rio_mem + reg);
    - else {
    - iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX);
    - return ioread32(rdev->rio_mem + RADEON_MM_DATA);
    - }
    -}
    -
    -static inline void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v)
    -{
    - if (reg < rdev->rio_mem_size)
    - iowrite32(v, rdev->rio_mem + reg);
    - else {
    - iowrite32(reg, rdev->rio_mem + RADEON_MM_INDEX);
    - iowrite32(v, rdev->rio_mem + RADEON_MM_DATA);
    - }
    -}
    +uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg);
    +void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v);
    +u32 r100_io_rreg(struct radeon_device *rdev, u32 reg);
    +void r100_io_wreg(struct radeon_device *rdev, u32 reg, u32 v);

    /*
    * Cast helper
    --
    1.7.4.4


    \
     
     \ /
      Last update: 2011-10-14 01:11    [W:3.296 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site