Răsfoiți Sursa

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>
Dave Airlie 20 ani în urmă
părinte
comite
689b9d74b1

+ 4 - 0
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);

+ 5 - 0
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",

+ 1 - 0
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);