diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-10-14 10:13:10 +0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-12-21 13:01:18 +0400 |
commit | b98e3f5c9e42f70c171f67331773a575441eab3b (patch) | |
tree | b5fe0dcb9dc6e8cc7b5442a0d44103f7fe7068f9 /drivers/gpu/drm/nouveau/nv50_crtc.c | |
parent | e6e039d10d08fbdecbdcaf20f29bb7a8c8580d4b (diff) | |
download | linux-b98e3f5c9e42f70c171f67331773a575441eab3b.tar.xz |
drm/nv50/disp: synchronise display right after init
This has the effect of ensuring the encoders which were active before we
loaded get disconnected properly before we start reprogramming them.
Also removing a bit of cargo-cult from the initial evo pushbuf.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nv50_crtc.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nv50_crtc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c b/drivers/gpu/drm/nouveau/nv50_crtc.c index f794b4e08f5f..c1c57cb37208 100644 --- a/drivers/gpu/drm/nouveau/nv50_crtc.c +++ b/drivers/gpu/drm/nouveau/nv50_crtc.c @@ -627,7 +627,7 @@ nv50_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode, } } - ret = RING_SPACE(evo, 17); + ret = RING_SPACE(evo, 19); if (ret) return ret; @@ -652,7 +652,10 @@ nv50_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode, } BEGIN_RING(evo, 0, NV50_EVO_CRTC(nv_crtc->index, UNK082C), 1); - OUT_RING(evo, 0); + OUT_RING (evo, 0); + /* required to make display sync channel not hate life */ + BEGIN_RING(evo, 0, NV50_EVO_CRTC(nv_crtc->index, UNK900), 1); + OUT_RING (evo, 0x00000311); /* This is the actual resolution of the mode. */ BEGIN_RING(evo, 0, NV50_EVO_CRTC(nv_crtc->index, REAL_RES), 1); |