Commit 7d95216e authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/kms: untangle connector property logic a little

Should be the same defaults as before, just easier to follow.
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent f0d15402
...@@ -1197,36 +1197,57 @@ nouveau_connector_create(struct drm_device *dev, int index) ...@@ -1197,36 +1197,57 @@ nouveau_connector_create(struct drm_device *dev, int index)
disp->color_vibrance_property, disp->color_vibrance_property,
150); 150);
/* default scaling mode */
switch (nv_connector->type) { switch (nv_connector->type) {
case DCB_CONNECTOR_VGA:
if (drm->device.info.family >= NV_DEVICE_INFO_V0_TESLA) {
drm_object_attach_property(&connector->base,
dev->mode_config.scaling_mode_property,
nv_connector->scaling_mode);
}
/* fall-through */
case DCB_CONNECTOR_TV_0: case DCB_CONNECTOR_TV_0:
case DCB_CONNECTOR_TV_1: case DCB_CONNECTOR_TV_1:
case DCB_CONNECTOR_TV_3: case DCB_CONNECTOR_TV_3:
case DCB_CONNECTOR_VGA:
nv_connector->scaling_mode = DRM_MODE_SCALE_NONE; nv_connector->scaling_mode = DRM_MODE_SCALE_NONE;
break; break;
default: default:
nv_connector->scaling_mode = DRM_MODE_SCALE_FULLSCREEN; nv_connector->scaling_mode = DRM_MODE_SCALE_FULLSCREEN;
break;
}
drm_object_attach_property(&connector->base, /* scaling mode property */
dev->mode_config.scaling_mode_property, switch (nv_connector->type) {
case DCB_CONNECTOR_TV_0:
case DCB_CONNECTOR_TV_1:
case DCB_CONNECTOR_TV_3:
break;
case DCB_CONNECTOR_VGA:
if (disp->disp.oclass < NV50_DISP)
break; /* can only scale on DFPs */
/* fall-through */
default:
drm_object_attach_property(&connector->base, dev->mode_config.
scaling_mode_property,
nv_connector->scaling_mode); nv_connector->scaling_mode);
break;
}
/* dithering properties */
switch (nv_connector->type) {
case DCB_CONNECTOR_TV_0:
case DCB_CONNECTOR_TV_1:
case DCB_CONNECTOR_TV_3:
case DCB_CONNECTOR_VGA:
break;
default:
if (disp->dithering_mode) { if (disp->dithering_mode) {
nv_connector->dithering_mode = DITHERING_MODE_AUTO;
drm_object_attach_property(&connector->base, drm_object_attach_property(&connector->base,
disp->dithering_mode, disp->dithering_mode,
nv_connector->dithering_mode); nv_connector->
dithering_mode);
nv_connector->dithering_mode = DITHERING_MODE_AUTO;
} }
if (disp->dithering_depth) { if (disp->dithering_depth) {
nv_connector->dithering_depth = DITHERING_DEPTH_AUTO;
drm_object_attach_property(&connector->base, drm_object_attach_property(&connector->base,
disp->dithering_depth, disp->dithering_depth,
nv_connector->dithering_depth); nv_connector->
dithering_depth);
nv_connector->dithering_depth = DITHERING_DEPTH_AUTO;
} }
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment