diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2011-10-17 10:38:10 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2011-12-21 19:01:20 +1000 |
commit | 488ff207f98650c6a1f077e432b541f3cdcb7ab8 (patch) | |
tree | 5ffa2dec2fa355ad49ce1032ccdc5b7c9faf3b1c /drivers/gpu/drm/nouveau/nv50_crtc.c | |
parent | 6322175530c89ab719cea28202f96a3660491727 (diff) | |
download | op-kernel-dev-488ff207f98650c6a1f077e432b541f3cdcb7ab8.zip op-kernel-dev-488ff207f98650c6a1f077e432b541f3cdcb7ab8.tar.gz |
drm/nouveau: no need to pass parameters into set_scale/dither
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 | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c b/drivers/gpu/drm/nouveau/nv50_crtc.c index c1c57cb..70d7fbb 100644 --- a/drivers/gpu/drm/nouveau/nv50_crtc.c +++ b/drivers/gpu/drm/nouveau/nv50_crtc.c @@ -132,10 +132,12 @@ nv50_crtc_blank(struct nouveau_crtc *nv_crtc, bool blanked) } static int -nv50_crtc_set_dither(struct nouveau_crtc *nv_crtc, bool on, bool update) +nv50_crtc_set_dither(struct nouveau_crtc *nv_crtc, bool update) { struct drm_device *dev = nv_crtc->base.dev; struct nouveau_channel *evo = nv50_display(dev)->master; + struct nouveau_connector *nv_connector = + nouveau_crtc_connector_get(nv_crtc); int ret; NV_DEBUG_KMS(dev, "\n"); @@ -147,7 +149,7 @@ nv50_crtc_set_dither(struct nouveau_crtc *nv_crtc, bool on, bool update) } BEGIN_RING(evo, 0, NV50_EVO_CRTC(nv_crtc->index, DITHER_CTRL), 1); - if (on) + if (nv_connector->use_dithering) OUT_RING(evo, NV50_EVO_CRTC_DITHER_CTRL_ON); else OUT_RING(evo, NV50_EVO_CRTC_DITHER_CTRL_OFF); @@ -180,15 +182,15 @@ nouveau_crtc_connector_get(struct nouveau_crtc *nv_crtc) } static int -nv50_crtc_set_scale(struct nouveau_crtc *nv_crtc, int scaling_mode, bool update) +nv50_crtc_set_scale(struct nouveau_crtc *nv_crtc, bool update) { struct nouveau_connector *nv_connector; struct drm_crtc *crtc = &nv_crtc->base; struct drm_device *dev = crtc->dev; struct nouveau_channel *evo = nv50_display(dev)->master; struct drm_display_mode *mode = &crtc->mode; + int scaling_mode, ret; u32 ctrl = 0, oX, oY; - int ret; NV_DEBUG_KMS(dev, "\n"); @@ -196,6 +198,8 @@ nv50_crtc_set_scale(struct nouveau_crtc *nv_crtc, int scaling_mode, bool update) if (!nv_connector || !nv_connector->native_mode) { NV_ERROR(dev, "no native mode, forcing panel scaling\n"); scaling_mode = DRM_MODE_SCALE_NONE; + } else { + scaling_mode = nv_connector->scaling_mode; } /* start off at the resolution we programmed the crtc for, this @@ -663,8 +667,8 @@ nv50_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode, BEGIN_RING(evo, 0, NV50_EVO_CRTC(nv_crtc->index, SCALE_CENTER_OFFSET), 1); OUT_RING(evo, NV50_EVO_CRTC_SCALE_CENTER_OFFSET_VAL(0, 0)); - nv_crtc->set_dither(nv_crtc, nv_connector->use_dithering, false); - nv_crtc->set_scale(nv_crtc, nv_connector->scaling_mode, false); + nv_crtc->set_dither(nv_crtc, false); + nv_crtc->set_scale(nv_crtc, false); return nv50_crtc_do_mode_set_base(crtc, old_fb, x, y, false); } |