|
@@ -313,7 +313,6 @@ 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) &&
|
|
@@ -425,21 +424,23 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /* Acer laptop reports DVI-D as DVI-I and hpd pins reversed */
|
|
|
+ /* Acer laptop (Acer TravelMate 5730G) has an HDMI port
|
|
|
+ * on the laptop and a DVI port on the docking station and
|
|
|
+ * both share the same encoder, hpd pin, and ddc line.
|
|
|
+ * So while the bios table is technically correct,
|
|
|
+ * we drop the DVI port here since xrandr has no concept of
|
|
|
+ * encoders and will try and drive both connectors
|
|
|
+ * with different crtcs which isn't possible on the hardware
|
|
|
+ * side and leaves no crtcs for LVDS or VGA.
|
|
|
+ */
|
|
|
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)) {
|
|
|
- gpio = radeon_lookup_gpio(rdev, 6);
|
|
|
- *hpd = radeon_atom_get_hpd_info_from_gpio(rdev, &gpio);
|
|
|
+ /* actually it's a DVI-D port not DVI-I */
|
|
|
*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);
|
|
|
+ return false;
|
|
|
}
|
|
|
}
|
|
|
|