diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-08-06 00:27:44 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-08-09 20:46:52 -0400 |
commit | 9ea2c4be978d597076ddc6c550557de5d243cea8 (patch) | |
tree | f16eab2a2fd9346c075497100adb3eaa3b6b4e25 /drivers/gpu | |
parent | cce13ff7596985903ad924504562190a2c163a63 (diff) |
drm/radeon/kms: add additional quirk for Acer rv620 laptop
HPD pins are reversed
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=29387
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_atombios.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c index dc9102fc7ed5..a416ab5c0c45 100644 --- a/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/drivers/gpu/drm/radeon/radeon_atombios.c | |||
@@ -268,6 +268,7 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev, | |||
268 | uint16_t *line_mux, | 268 | uint16_t *line_mux, |
269 | struct radeon_hpd *hpd) | 269 | struct radeon_hpd *hpd) |
270 | { | 270 | { |
271 | struct radeon_device *rdev = dev->dev_private; | ||
271 | 272 | ||
272 | /* Asus M2A-VM HDMI board lists the DVI port as HDMI */ | 273 | /* Asus M2A-VM HDMI board lists the DVI port as HDMI */ |
273 | if ((dev->pdev->device == 0x791e) && | 274 | if ((dev->pdev->device == 0x791e) && |
@@ -370,13 +371,22 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev, | |||
370 | } | 371 | } |
371 | } | 372 | } |
372 | 373 | ||
373 | /* Acer laptop reports DVI-D as DVI-I */ | 374 | /* Acer laptop reports DVI-D as DVI-I and hpd pins reversed */ |
374 | if ((dev->pdev->device == 0x95c4) && | 375 | if ((dev->pdev->device == 0x95c4) && |
375 | (dev->pdev->subsystem_vendor == 0x1025) && | 376 | (dev->pdev->subsystem_vendor == 0x1025) && |
376 | (dev->pdev->subsystem_device == 0x013c)) { | 377 | (dev->pdev->subsystem_device == 0x013c)) { |
378 | struct radeon_gpio_rec gpio; | ||
379 | |||
377 | if ((*connector_type == DRM_MODE_CONNECTOR_DVII) && | 380 | if ((*connector_type == DRM_MODE_CONNECTOR_DVII) && |
378 | (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) | 381 | (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) { |
382 | gpio = radeon_lookup_gpio(rdev, 6); | ||
383 | *hpd = radeon_atom_get_hpd_info_from_gpio(rdev, &gpio); | ||
379 | *connector_type = DRM_MODE_CONNECTOR_DVID; | 384 | *connector_type = DRM_MODE_CONNECTOR_DVID; |
385 | } else if ((*connector_type == DRM_MODE_CONNECTOR_HDMIA) && | ||
386 | (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) { | ||
387 | gpio = radeon_lookup_gpio(rdev, 7); | ||
388 | *hpd = radeon_atom_get_hpd_info_from_gpio(rdev, &gpio); | ||
389 | } | ||
380 | } | 390 | } |
381 | 391 | ||
382 | /* XFX Pine Group device rv730 reports no VGA DDC lines | 392 | /* XFX Pine Group device rv730 reports no VGA DDC lines |