diff options
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_drv.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_irq_kms.c | 6 |
3 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index 83b76db7bcfd..e94c6f18a157 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
@@ -93,6 +93,7 @@ extern int radeon_audio; | |||
93 | extern int radeon_disp_priority; | 93 | extern int radeon_disp_priority; |
94 | extern int radeon_hw_i2c; | 94 | extern int radeon_hw_i2c; |
95 | extern int radeon_pcie_gen2; | 95 | extern int radeon_pcie_gen2; |
96 | extern 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 e71d2ed7fa11..c12b0775d688 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; | |||
118 | int radeon_disp_priority = 0; | 118 | int radeon_disp_priority = 0; |
119 | int radeon_hw_i2c = 0; | 119 | int radeon_hw_i2c = 0; |
120 | int radeon_pcie_gen2 = 0; | 120 | int radeon_pcie_gen2 = 0; |
121 | int radeon_msi = -1; | ||
121 | 122 | ||
122 | MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers"); | 123 | MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers"); |
123 | module_param_named(no_wb, radeon_no_wb, int, 0444); | 124 | module_param_named(no_wb, radeon_no_wb, int, 0444); |
@@ -164,6 +165,9 @@ module_param_named(hw_i2c, radeon_hw_i2c, int, 0444); | |||
164 | MODULE_PARM_DESC(pcie_gen2, "PCIE Gen2 mode (1 = enable)"); | 165 | MODULE_PARM_DESC(pcie_gen2, "PCIE Gen2 mode (1 = enable)"); |
165 | module_param_named(pcie_gen2, radeon_pcie_gen2, int, 0444); | 166 | module_param_named(pcie_gen2, radeon_pcie_gen2, int, 0444); |
166 | 167 | ||
168 | MODULE_PARM_DESC(msi, "MSI support (1 = enable, 0 = disable, -1 = auto)"); | ||
169 | module_param_named(msi, radeon_msi, int, 0444); | ||
170 | |||
167 | static int radeon_suspend(struct drm_device *dev, pm_message_t state) | 171 | static 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 914d9ee8fd35..8f86aeb26693 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) && |