Commit d1084184 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/kms: disallow dual-link harder if hdmi connection detected

The fallthrough cases (pre-Fermi) would accidentally allow dual-link pixel
clocks even where they shouldn't be.  This leads to a high resolution HDMI
displays, connected via a DVI->HDMI adapter, to fail on the original NV50.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 533f4752
...@@ -978,11 +978,13 @@ get_tmds_link_bandwidth(struct drm_connector *connector) ...@@ -978,11 +978,13 @@ get_tmds_link_bandwidth(struct drm_connector *connector)
struct nouveau_drm *drm = nouveau_drm(connector->dev); struct nouveau_drm *drm = nouveau_drm(connector->dev);
struct dcb_output *dcb = nv_connector->detected_encoder->dcb; struct dcb_output *dcb = nv_connector->detected_encoder->dcb;
struct drm_display_info *info = NULL; struct drm_display_info *info = NULL;
const unsigned duallink_scale = unsigned duallink_scale =
nouveau_duallink && nv_encoder->dcb->duallink_possible ? 2 : 1; nouveau_duallink && nv_encoder->dcb->duallink_possible ? 2 : 1;
if (drm_detect_hdmi_monitor(nv_connector->edid)) if (drm_detect_hdmi_monitor(nv_connector->edid)) {
info = &nv_connector->base.display_info; info = &nv_connector->base.display_info;
duallink_scale = 1;
}
if (info) { if (info) {
if (nouveau_hdmimhz > 0) if (nouveau_hdmimhz > 0)
...@@ -1003,6 +1005,7 @@ get_tmds_link_bandwidth(struct drm_connector *connector) ...@@ -1003,6 +1005,7 @@ get_tmds_link_bandwidth(struct drm_connector *connector)
if (drm->client.device.info.family >= NV_DEVICE_INFO_V0_FERMI) if (drm->client.device.info.family >= NV_DEVICE_INFO_V0_FERMI)
return 225000; return 225000;
} }
if (dcb->location != DCB_LOC_ON_CHIP || if (dcb->location != DCB_LOC_ON_CHIP ||
drm->client.device.info.chipset >= 0x46) drm->client.device.info.chipset >= 0x46)
return 165000 * duallink_scale; return 165000 * duallink_scale;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment