diff options
Diffstat (limited to 'drm/nv50_display.c')
-rw-r--r-- | drm/nv50_display.c | 32 |
1 files changed, 4 insertions, 28 deletions
diff --git a/drm/nv50_display.c b/drm/nv50_display.c index 487bb7ec..07ea2212 100644 --- a/drm/nv50_display.c +++ b/drm/nv50_display.c @@ -1777,11 +1777,9 @@ nv50_sor_mode_set(struct drm_encoder *encoder, struct drm_display_mode *umode, struct nv50_disp *disp = nv50_disp(encoder->dev); struct nv50_mast *mast = nv50_mast(encoder->dev); struct drm_device *dev = encoder->dev; - struct nouveau_drm *drm = nouveau_drm(dev); struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); struct nouveau_crtc *nv_crtc = nouveau_crtc(encoder->crtc); struct nouveau_connector *nv_connector; - struct nvbios *bios = &drm->vbios; u32 *push, lvds = 0; u8 owner = 1 << nv_crtc->index; u8 proto = 0xf; @@ -1803,32 +1801,10 @@ nv50_sor_mode_set(struct drm_encoder *encoder, struct drm_display_mode *umode, break; case DCB_OUTPUT_LVDS: proto = 0x0; - - if (bios->fp_no_ddc) { - if (bios->fp.dual_link) - lvds |= 0x0100; - if (bios->fp.if_is_24bit) - lvds |= 0x0200; - } else { - if (nv_connector->type == DCB_CONNECTOR_LVDS_SPWG) { - if (((u8 *)nv_connector->edid)[121] == 2) - lvds |= 0x0100; - } else - if (mode->clock >= bios->fp.duallink_transition_clk) { - lvds |= 0x0100; - } - - if (lvds & 0x0100) { - if (bios->fp.strapless_is_24bit & 2) - lvds |= 0x0200; - } else { - if (bios->fp.strapless_is_24bit & 1) - lvds |= 0x0200; - } - - if (nv_connector->base.display_info.bpc == 8) - lvds |= 0x0200; - } + if (nv_connector->base.display_info.bpc >= 8) + lvds |= 0x0200; + if (nv_connector->links > 1) + lvds |= 0x0100; nv_call(disp->core, NV50_DISP_SOR_LVDS_SCRIPT + nv_encoder->or, lvds); break; |