diff options
| author | Alex Deucher <alexdeucher@gmail.com> | 2011-01-12 20:05:11 -0500 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2011-01-16 21:21:34 -0500 |
| commit | d42dd579ac1498e23f29465225fa3eee4520f5e5 (patch) | |
| tree | 0781d5ae64b039a23bfdc2ec2c7356b679247d18 /drivers/gpu | |
| parent | 394d83c17fac2b7bcf05cb99d1e945135767bb6b (diff) | |
drm/radeon/kms: add module option for pcie gen2
Switching to pcie gen2 causes problems on some
boards. Add a module option to turn it on/off.
There are gen2 compatability issues with some
motherboards it seems.
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=33027
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/radeon/evergreen.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/r600.c | 3 | ||||
| -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/rv770.c | 3 |
5 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c index 7fe8ebdcdc0e..e201a88caf59 100644 --- a/drivers/gpu/drm/radeon/evergreen.c +++ b/drivers/gpu/drm/radeon/evergreen.c | |||
| @@ -3158,6 +3158,9 @@ static void evergreen_pcie_gen2_enable(struct radeon_device *rdev) | |||
| 3158 | { | 3158 | { |
| 3159 | u32 link_width_cntl, speed_cntl; | 3159 | u32 link_width_cntl, speed_cntl; |
| 3160 | 3160 | ||
| 3161 | if (radeon_pcie_gen2 == 0) | ||
| 3162 | return; | ||
| 3163 | |||
| 3161 | if (rdev->flags & RADEON_IS_IGP) | 3164 | if (rdev->flags & RADEON_IS_IGP) |
| 3162 | return; | 3165 | return; |
| 3163 | 3166 | ||
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index 6b50716267c0..9fe86253cfcd 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c | |||
| @@ -3658,6 +3658,9 @@ static void r600_pcie_gen2_enable(struct radeon_device *rdev) | |||
| 3658 | u32 link_width_cntl, lanes, speed_cntl, training_cntl, tmp; | 3658 | u32 link_width_cntl, lanes, speed_cntl, training_cntl, tmp; |
| 3659 | u16 link_cntl2; | 3659 | u16 link_cntl2; |
| 3660 | 3660 | ||
| 3661 | if (radeon_pcie_gen2 == 0) | ||
| 3662 | return; | ||
| 3663 | |||
| 3661 | if (rdev->flags & RADEON_IS_IGP) | 3664 | if (rdev->flags & RADEON_IS_IGP) |
| 3662 | return; | 3665 | return; |
| 3663 | 3666 | ||
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index e9486630a467..71d2a554bbe6 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
| @@ -92,6 +92,7 @@ extern int radeon_tv; | |||
| 92 | extern int radeon_audio; | 92 | 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 | 96 | ||
| 96 | /* | 97 | /* |
| 97 | * Copy from radeon_drv.h so we don't have to include both and have conflicting | 98 | * 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 be5cb4f28c29..d5680a0c87af 100644 --- a/drivers/gpu/drm/radeon/radeon_drv.c +++ b/drivers/gpu/drm/radeon/radeon_drv.c | |||
| @@ -104,6 +104,7 @@ int radeon_tv = 1; | |||
| 104 | int radeon_audio = 1; | 104 | int radeon_audio = 1; |
| 105 | int radeon_disp_priority = 0; | 105 | int radeon_disp_priority = 0; |
| 106 | int radeon_hw_i2c = 0; | 106 | int radeon_hw_i2c = 0; |
| 107 | int radeon_pcie_gen2 = 0; | ||
| 107 | 108 | ||
| 108 | MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers"); | 109 | MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers"); |
| 109 | module_param_named(no_wb, radeon_no_wb, int, 0444); | 110 | module_param_named(no_wb, radeon_no_wb, int, 0444); |
| @@ -147,6 +148,9 @@ module_param_named(disp_priority, radeon_disp_priority, int, 0444); | |||
| 147 | MODULE_PARM_DESC(hw_i2c, "hw i2c engine enable (0 = disable)"); | 148 | MODULE_PARM_DESC(hw_i2c, "hw i2c engine enable (0 = disable)"); |
| 148 | module_param_named(hw_i2c, radeon_hw_i2c, int, 0444); | 149 | module_param_named(hw_i2c, radeon_hw_i2c, int, 0444); |
| 149 | 150 | ||
| 151 | MODULE_PARM_DESC(pcie_gen2, "PCIE Gen2 mode (1 = enable)"); | ||
| 152 | module_param_named(pcie_gen2, radeon_pcie_gen2, int, 0444); | ||
| 153 | |||
| 150 | static int radeon_suspend(struct drm_device *dev, pm_message_t state) | 154 | static int radeon_suspend(struct drm_device *dev, pm_message_t state) |
| 151 | { | 155 | { |
| 152 | drm_radeon_private_t *dev_priv = dev->dev_private; | 156 | drm_radeon_private_t *dev_priv = dev->dev_private; |
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c index 3a264aa3a79a..bd9ee90421e4 100644 --- a/drivers/gpu/drm/radeon/rv770.c +++ b/drivers/gpu/drm/radeon/rv770.c | |||
| @@ -1372,6 +1372,9 @@ static void rv770_pcie_gen2_enable(struct radeon_device *rdev) | |||
| 1372 | u32 link_width_cntl, lanes, speed_cntl, tmp; | 1372 | u32 link_width_cntl, lanes, speed_cntl, tmp; |
| 1373 | u16 link_cntl2; | 1373 | u16 link_cntl2; |
| 1374 | 1374 | ||
| 1375 | if (radeon_pcie_gen2 == 0) | ||
| 1376 | return; | ||
| 1377 | |||
| 1375 | if (rdev->flags & RADEON_IS_IGP) | 1378 | if (rdev->flags & RADEON_IS_IGP) |
| 1376 | return; | 1379 | return; |
| 1377 | 1380 | ||
