Browse Source

drm/nv50-/kms: pass a non-zero value for head to sor dpms methods

There's Apple machines out there which (probably completely arbitrarily)
restrict each output path to a particular head.  This causes us to not
be able to locate the output data needed to power on/off the DP output
correctly.

We fix this by passing in a head index we know is valid (as opposed to
"head 0").

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs 11 năm trước cách đây
mục cha
commit
276e526cfb

+ 2 - 1
drivers/gpu/drm/nouveau/nv50_display.c

@@ -1741,7 +1741,8 @@ nv50_sor_dpms(struct drm_encoder *encoder, int mode)
 		}
 		}
 	}
 	}
 
 
-	mthd  = (ffs(nv_encoder->dcb->sorconf.link) - 1) << 2;
+	mthd  = (ffs(nv_encoder->dcb->heads) - 1) << 3;
+	mthd |= (ffs(nv_encoder->dcb->sorconf.link) - 1) << 2;
 	mthd |= nv_encoder->or;
 	mthd |= nv_encoder->or;
 
 
 	if (nv_encoder->dcb->type == DCB_OUTPUT_DP) {
 	if (nv_encoder->dcb->type == DCB_OUTPUT_DP) {