aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_state.c
diff options
context:
space:
mode:
authorDavid Miller <davem@davemloft.net>2009-02-12 05:15:37 -0500
committerDave Airlie <airlied@redhat.com>2009-03-13 00:24:00 -0400
commitb07fa022ecf1e04fd0623877affe9e10bf45ac86 (patch)
tree59d17e4b898db739701552030519ca7e0004ab6c /drivers/gpu/drm/radeon/radeon_state.c
parent296c6ae0e9b5ced1060b43a68b5f7e41a18509f6 (diff)
drm: radeon: Fix ring_rptr accesses.
The memory behind ring_rptr can either be in ioremapped memory or a vmalloc() normal kernel memory buffer. However, the code unconditionally uses DRM_{READ,WRITE}32() (and thus readl() and writel()) to access it. Basically, if RADEON_IS_AGP then it's ioremap()'d memory else it's vmalloc'd memory. Adjust all of the ring_rptr access code as needed. While we're here, kill the 'scratch' pointer in drm_radeon_private. It's only used in the one place where it is initialized. Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_state.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_state.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
index ef940a079dc..03fea43dae7 100644
--- a/drivers/gpu/drm/radeon/radeon_state.c
+++ b/drivers/gpu/drm/radeon/radeon_state.c
@@ -3010,14 +3010,14 @@ static int radeon_cp_getparam(struct drm_device *dev, void *data, struct drm_fil
3010 break; 3010 break;
3011 case RADEON_PARAM_LAST_FRAME: 3011 case RADEON_PARAM_LAST_FRAME:
3012 dev_priv->stats.last_frame_reads++; 3012 dev_priv->stats.last_frame_reads++;
3013 value = GET_SCRATCH(0); 3013 value = GET_SCRATCH(dev_priv, 0);
3014 break; 3014 break;
3015 case RADEON_PARAM_LAST_DISPATCH: 3015 case RADEON_PARAM_LAST_DISPATCH:
3016 value = GET_SCRATCH(1); 3016 value = GET_SCRATCH(dev_priv, 1);
3017 break; 3017 break;
3018 case RADEON_PARAM_LAST_CLEAR: 3018 case RADEON_PARAM_LAST_CLEAR:
3019 dev_priv->stats.last_clear_reads++; 3019 dev_priv->stats.last_clear_reads++;
3020 value = GET_SCRATCH(2); 3020 value = GET_SCRATCH(dev_priv, 2);
3021 break; 3021 break;
3022 case RADEON_PARAM_IRQ_NR: 3022 case RADEON_PARAM_IRQ_NR:
3023 value = drm_dev_to_irq(dev); 3023 value = drm_dev_to_irq(dev);