Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b23b9e71 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nv50: respect LVDS link count from EDID on SPWG panels



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 8c3f6bb9
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -517,13 +517,25 @@ nv50_display_script_select(struct drm_device *dev, struct dcb_entry *dcb,
			if (bios->fp.if_is_24bit)
				script |= 0x0200;
		} else {
			/* determine number of lvds links */
			if (nv_connector && nv_connector->edid &&
			    nv_connector->dcb->type == DCB_CONNECTOR_LVDS_SPWG) {
				/* http://www.spwg.org */
				if (((u8 *)nv_connector->edid)[121] == 2)
					script |= 0x0100;
			} else
			if (pxclk >= bios->fp.duallink_transition_clk) {
				script |= 0x0100;
			}

			/* determine panel depth */
			if (script & 0x0100) {
				if (bios->fp.strapless_is_24bit & 2)
					script |= 0x0200;
			} else
			} else {
				if (bios->fp.strapless_is_24bit & 1)
					script |= 0x0200;
			}

			if (nv_connector && nv_connector->edid &&
			    (nv_connector->edid->revision >= 4) &&