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_irq_kms.c6
3 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 83b76db7bcf..e94c6f18a15 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -93,6 +93,7 @@ extern int radeon_audio;
93extern int radeon_disp_priority; 93extern 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;
96 97
97/* 98/*
98 * Copy from radeon_drv.h so we don't have to include both and have conflicting 99 * 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 e71d2ed7fa1..c12b0775d68 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -118,6 +118,7 @@ int radeon_audio = 0;
118int radeon_disp_priority = 0; 118int radeon_disp_priority = 0;
119int radeon_hw_i2c = 0; 119int radeon_hw_i2c = 0;
120int radeon_pcie_gen2 = 0; 120int radeon_pcie_gen2 = 0;
121int radeon_msi = -1;
121 122
122MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers"); 123MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers");
123module_param_named(no_wb, radeon_no_wb, int, 0444); 124module_param_named(no_wb, radeon_no_wb, int, 0444);
@@ -164,6 +165,9 @@ module_param_named(hw_i2c, radeon_hw_i2c, int, 0444);
164MODULE_PARM_DESC(pcie_gen2, "PCIE Gen2 mode (1 = enable)"); 165MODULE_PARM_DESC(pcie_gen2, "PCIE Gen2 mode (1 = enable)");
165module_param_named(pcie_gen2, radeon_pcie_gen2, int, 0444); 166module_param_named(pcie_gen2, radeon_pcie_gen2, int, 0444);
166 167
168MODULE_PARM_DESC(msi, "MSI support (1 = enable, 0 = disable, -1 = auto)");
169module_param_named(msi, radeon_msi, int, 0444);
170
167static int radeon_suspend(struct drm_device *dev, pm_message_t state) 171static int radeon_suspend(struct drm_device *dev, pm_message_t state)
168{ 172{
169 drm_radeon_private_t *dev_priv = dev->dev_private; 173 drm_radeon_private_t *dev_priv = dev->dev_private;
diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c
index 914d9ee8fd3..8f86aeb2669 100644
--- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
@@ -118,6 +118,12 @@ static bool radeon_msi_ok(struct radeon_device *rdev)
118 if (rdev->flags & RADEON_IS_AGP) 118 if (rdev->flags & RADEON_IS_AGP)
119 return false; 119 return false;
120 120
121 /* force MSI on */
122 if (radeon_msi == 1)
123 return true;
124 else if (radeon_msi == 0)
125 return false;
126
121 /* Quirks */ 127 /* Quirks */
122 /* HP RS690 only seems to work with MSIs. */ 128 /* HP RS690 only seems to work with MSIs. */
123 if ((rdev->pdev->device == 0x791f) && 129 if ((rdev->pdev->device == 0x791f) &&