summaryrefslogtreecommitdiff
path: root/drm
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2014-12-22 18:19:45 +1000
committerBen Skeggs <bskeggs@redhat.com>2015-01-10 23:57:07 +1000
commit97b18eaa83a133352719050ff4a133065b46b0a8 (patch)
treeabf6c4c04c42bc60ed172f972edffeba9639f1d1 /drm
parente4cf332052447e57d591fe170b6fabae715ba687 (diff)
downloadnouveau-97b18eaa83a133352719050ff4a133065b46b0a8.tar.gz
kms: default to panel scaling, except for fixed panels prior to nv50
On NV50 and up, we'll allow fixed panels to use EDID-provided modes without the GPU scaler, and force scaling (even for NONE) otherwise. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drm')
-rw-r--r--drm/nouveau_connector.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/drm/nouveau_connector.c b/drm/nouveau_connector.c
index 938de24da..9c871f93c 100644
--- a/drm/nouveau_connector.c
+++ b/drm/nouveau_connector.c
@@ -1199,14 +1199,18 @@ nouveau_connector_create(struct drm_device *dev, int index)
/* default scaling mode */
switch (nv_connector->type) {
- case DCB_CONNECTOR_TV_0:
- case DCB_CONNECTOR_TV_1:
- case DCB_CONNECTOR_TV_3:
- case DCB_CONNECTOR_VGA:
+ case DCB_CONNECTOR_LVDS:
+ case DCB_CONNECTOR_LVDS_SPWG:
+ case DCB_CONNECTOR_eDP:
+ /* see note in nouveau_connector_set_property() */
+ if (disp->disp.oclass < NV50_DISP) {
+ nv_connector->scaling_mode = DRM_MODE_SCALE_FULLSCREEN;
+ break;
+ }
nv_connector->scaling_mode = DRM_MODE_SCALE_NONE;
break;
default:
- nv_connector->scaling_mode = DRM_MODE_SCALE_FULLSCREEN;
+ nv_connector->scaling_mode = DRM_MODE_SCALE_NONE;
break;
}