aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/radeon/radeon.h1
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.c4
-rw-r--r--drivers/gpu/drm/radeon/radeon_ring.c2
3 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index b8d4d947c347..0784e4d57d28 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -94,6 +94,7 @@ extern int radeon_disp_priority;
94extern int radeon_hw_i2c; 94extern int radeon_hw_i2c;
95extern int radeon_pcie_gen2; 95extern int radeon_pcie_gen2;
96extern int radeon_msi; 96extern int radeon_msi;
97extern int radeon_lockup_timeout;
97 98
98/* 99/*
99 * Copy from radeon_drv.h so we don't have to include both and have conflicting 100 * Copy from radeon_drv.h so we don't have to include both and have conflicting
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index ef7bb3f6ecae..e62e56a57ee4 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -128,6 +128,7 @@ int radeon_disp_priority = 0;
128int radeon_hw_i2c = 0; 128int radeon_hw_i2c = 0;
129int radeon_pcie_gen2 = 0; 129int radeon_pcie_gen2 = 0;
130int radeon_msi = -1; 130int radeon_msi = -1;
131int radeon_lockup_timeout = 10000;
131 132
132MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers"); 133MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers");
133module_param_named(no_wb, radeon_no_wb, int, 0444); 134module_param_named(no_wb, radeon_no_wb, int, 0444);
@@ -177,6 +178,9 @@ module_param_named(pcie_gen2, radeon_pcie_gen2, int, 0444);
177MODULE_PARM_DESC(msi, "MSI support (1 = enable, 0 = disable, -1 = auto)"); 178MODULE_PARM_DESC(msi, "MSI support (1 = enable, 0 = disable, -1 = auto)");
178module_param_named(msi, radeon_msi, int, 0444); 179module_param_named(msi, radeon_msi, int, 0444);
179 180
181MODULE_PARM_DESC(lockup_timeout, "GPU lockup timeout in ms (defaul 10000 = 10 seconds, 0 = disable)");
182module_param_named(lockup_timeout, radeon_lockup_timeout, int, 0444);
183
180static int radeon_suspend(struct drm_device *dev, pm_message_t state) 184static int radeon_suspend(struct drm_device *dev, pm_message_t state)
181{ 185{
182 drm_radeon_private_t *dev_priv = dev->dev_private; 186 drm_radeon_private_t *dev_priv = dev->dev_private;
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
index 203ec1f6bbb9..08e1578f55f8 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -441,7 +441,7 @@ bool radeon_ring_test_lockup(struct radeon_device *rdev, struct radeon_ring *rin
441 return false; 441 return false;
442 } 442 }
443 elapsed = jiffies_to_msecs(cjiffies - ring->last_activity); 443 elapsed = jiffies_to_msecs(cjiffies - ring->last_activity);
444 if (elapsed >= 10000) { 444 if (radeon_lockup_timeout && elapsed >= radeon_lockup_timeout) {
445 dev_err(rdev->dev, "GPU lockup CP stall for more than %lumsec\n", elapsed); 445 dev_err(rdev->dev, "GPU lockup CP stall for more than %lumsec\n", elapsed);
446 return true; 446 return true;
447 } 447 }