summaryrefslogtreecommitdiff
path: root/drm/nv50_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'drm/nv50_display.c')
-rw-r--r--drm/nv50_display.c32
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;