|
@@ -268,6 +268,7 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
|
|
|
uint16_t *line_mux,
|
|
|
struct radeon_hpd *hpd)
|
|
|
{
|
|
|
+ struct radeon_device *rdev = dev->dev_private;
|
|
|
|
|
|
/* Asus M2A-VM HDMI board lists the DVI port as HDMI */
|
|
|
if ((dev->pdev->device == 0x791e) &&
|
|
@@ -370,13 +371,22 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /* Acer laptop reports DVI-D as DVI-I */
|
|
|
+ /* Acer laptop reports DVI-D as DVI-I and hpd pins reversed */
|
|
|
if ((dev->pdev->device == 0x95c4) &&
|
|
|
(dev->pdev->subsystem_vendor == 0x1025) &&
|
|
|
(dev->pdev->subsystem_device == 0x013c)) {
|
|
|
+ struct radeon_gpio_rec gpio;
|
|
|
+
|
|
|
if ((*connector_type == DRM_MODE_CONNECTOR_DVII) &&
|
|
|
- (supported_device == ATOM_DEVICE_DFP1_SUPPORT))
|
|
|
+ (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) {
|
|
|
+ gpio = radeon_lookup_gpio(rdev, 6);
|
|
|
+ *hpd = radeon_atom_get_hpd_info_from_gpio(rdev, &gpio);
|
|
|
*connector_type = DRM_MODE_CONNECTOR_DVID;
|
|
|
+ } else if ((*connector_type == DRM_MODE_CONNECTOR_HDMIA) &&
|
|
|
+ (supported_device == ATOM_DEVICE_DFP1_SUPPORT)) {
|
|
|
+ gpio = radeon_lookup_gpio(rdev, 7);
|
|
|
+ *hpd = radeon_atom_get_hpd_info_from_gpio(rdev, &gpio);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/* XFX Pine Group device rv730 reports no VGA DDC lines
|