diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-06-30 11:10:02 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-07-08 12:56:53 +1000 |
commit | 276e526cfb257add928a57b196ea3e5c22b703ef (patch) | |
tree | a3d4eddb43430088108bf440f9ab4d2e6cdb6f30 | |
parent | 3c4be80bce681740d31646b8aff06d82ef453566 (diff) |
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>
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_display.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index afdf607df3e6..4c534b7b04da 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/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; if (nv_encoder->dcb->type == DCB_OUTPUT_DP) { |