diff options
author | Dave Airlie <airlied@starflyer.(none)> | 2005-09-30 17:09:07 +1000 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2005-09-30 17:09:07 +1000 |
commit | 689b9d74b1c00e1316fbb7d1e912fe1227fdb1ab (patch) | |
tree | 46d53c2d2ecb31d3db08f034052106030a9d8046 | |
parent | b6ce156c415544f900e031890c78eba8bc92f9b3 (diff) |
drm: add option to force writeback off.
In order to get some better debugging from people about certain hangs/crashes
we need to be able to turn AGP writeback off permanently...
Signed-off-by: Dave Airlie <airlied@linux.ie>
-rw-r--r-- | drivers/char/drm/radeon_cp.c | 4 | ||||
-rw-r--r-- | drivers/char/drm/radeon_drv.c | 5 | ||||
-rw-r--r-- | drivers/char/drm/radeon_drv.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c index 447bfbe0da8..e64d680899f 100644 --- a/drivers/char/drm/radeon_cp.c +++ b/drivers/char/drm/radeon_cp.c @@ -1205,6 +1205,10 @@ static void radeon_cp_init_ring_buffer(drm_device_t * dev, dev_priv->writeback_works = 0; DRM_DEBUG("writeback test failed\n"); } + if (radeon_no_wb == 1) { + dev_priv->writeback_works = 0; + DRM_DEBUG("writeback forced off\n"); + } dev_priv->sarea_priv->last_frame = dev_priv->scratch[0] = 0; RADEON_WRITE(RADEON_LAST_FRAME_REG, dev_priv->sarea_priv->last_frame); diff --git a/drivers/char/drm/radeon_drv.c b/drivers/char/drm/radeon_drv.c index 6c1766120c1..7074d01ed1d 100644 --- a/drivers/char/drm/radeon_drv.c +++ b/drivers/char/drm/radeon_drv.c @@ -37,6 +37,11 @@ #include "drm_pciids.h" +int radeon_no_wb; + +MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers\n"); +module_param_named(no_wb, radeon_no_wb, int, 0444); + static int postinit(struct drm_device *dev, unsigned long flags) { DRM_INFO("Initialized %s %d.%d.%d %s on minor %d: %s\n", diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h index e36076981d1..3c747348866 100644 --- a/drivers/char/drm/radeon_drv.h +++ b/drivers/char/drm/radeon_drv.h @@ -281,6 +281,7 @@ typedef struct drm_radeon_buf_priv { u32 age; } drm_radeon_buf_priv_t; +extern int radeon_no_wb; /* radeon_cp.c */ extern int radeon_cp_init(DRM_IOCTL_ARGS); extern int radeon_cp_start(DRM_IOCTL_ARGS); |