diff options
author | Mathieu Larouche <mathieu.larouche@matrox.com> | 2016-05-27 15:12:50 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-06-01 01:25:04 -0400 |
commit | d3922b69617b62bb2509936b68301f837229d9f0 (patch) | |
tree | 2a8dc14121a2e741a2493e9022ec309233f16807 | |
parent | afe705be38f1e65b173868486944377186b9f206 (diff) |
drm/mgag200: Black screen fix for G200e rev 4
- Fixed black screen for some resolutions of G200e rev4
- Fixed testm & testn which had predetermined value.
Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Mathieu Larouche <mathieu.larouche@matrox.com>
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | drivers/gpu/drm/mgag200/mgag200_mode.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c index 14e64e08909e..d347dca17267 100644 --- a/drivers/gpu/drm/mgag200/mgag200_mode.c +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c | |||
@@ -182,7 +182,7 @@ static int mga_g200se_set_plls(struct mga_device *mdev, long clock) | |||
182 | } | 182 | } |
183 | } | 183 | } |
184 | 184 | ||
185 | fvv = pllreffreq * testn / testm; | 185 | fvv = pllreffreq * (n + 1) / (m + 1); |
186 | fvv = (fvv - 800000) / 50000; | 186 | fvv = (fvv - 800000) / 50000; |
187 | 187 | ||
188 | if (fvv > 15) | 188 | if (fvv > 15) |
@@ -202,6 +202,14 @@ static int mga_g200se_set_plls(struct mga_device *mdev, long clock) | |||
202 | WREG_DAC(MGA1064_PIX_PLLC_M, m); | 202 | WREG_DAC(MGA1064_PIX_PLLC_M, m); |
203 | WREG_DAC(MGA1064_PIX_PLLC_N, n); | 203 | WREG_DAC(MGA1064_PIX_PLLC_N, n); |
204 | WREG_DAC(MGA1064_PIX_PLLC_P, p); | 204 | WREG_DAC(MGA1064_PIX_PLLC_P, p); |
205 | |||
206 | if (mdev->unique_rev_id >= 0x04) { | ||
207 | WREG_DAC(0x1a, 0x09); | ||
208 | msleep(20); | ||
209 | WREG_DAC(0x1a, 0x01); | ||
210 | |||
211 | } | ||
212 | |||
205 | return 0; | 213 | return 0; |
206 | } | 214 | } |
207 | 215 | ||