aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2016-11-04 03:20:35 -0400
committerBen Skeggs <bskeggs@redhat.com>2016-11-06 23:04:47 -0500
commitb2b75eea576b292718e328e23ef81ff62fb88157 (patch)
tree96761585320dbbb8a5bd88fbc183fd3ba5edd1d2
parent56182b8bd14bb8fe85d4d6e6bcbc9779ad538288 (diff)
drm/nouveau/kms: prepare to support legacy connector dpms with atomic
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_connector.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index c08d5e6c3a05..705c700fdeef 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -1074,9 +1074,17 @@ nouveau_connector_helper_funcs = {
1074 .best_encoder = nouveau_connector_best_encoder, 1074 .best_encoder = nouveau_connector_best_encoder,
1075}; 1075};
1076 1076
1077static int
1078nouveau_connector_dpms(struct drm_connector *connector, int mode)
1079{
1080 if (connector->dev->mode_config.funcs->atomic_commit)
1081 return drm_atomic_helper_connector_dpms(connector, mode);
1082 return drm_helper_connector_dpms(connector, mode);
1083}
1084
1077static const struct drm_connector_funcs 1085static const struct drm_connector_funcs
1078nouveau_connector_funcs = { 1086nouveau_connector_funcs = {
1079 .dpms = drm_helper_connector_dpms, 1087 .dpms = nouveau_connector_dpms,
1080 .reset = nouveau_conn_reset, 1088 .reset = nouveau_conn_reset,
1081 .detect = nouveau_connector_detect, 1089 .detect = nouveau_connector_detect,
1082 .force = nouveau_connector_force, 1090 .force = nouveau_connector_force,
@@ -1091,7 +1099,7 @@ nouveau_connector_funcs = {
1091 1099
1092static const struct drm_connector_funcs 1100static const struct drm_connector_funcs
1093nouveau_connector_funcs_lvds = { 1101nouveau_connector_funcs_lvds = {
1094 .dpms = drm_helper_connector_dpms, 1102 .dpms = nouveau_connector_dpms,
1095 .reset = nouveau_conn_reset, 1103 .reset = nouveau_conn_reset,
1096 .detect = nouveau_connector_detect_lvds, 1104 .detect = nouveau_connector_detect_lvds,
1097 .force = nouveau_connector_force, 1105 .force = nouveau_connector_force,
@@ -1335,7 +1343,10 @@ nouveau_connector_create(struct drm_device *dev, int index)
1335 return ERR_PTR(ret); 1343 return ERR_PTR(ret);
1336 } 1344 }
1337 1345
1338 funcs = &nouveau_connector_funcs_dp; 1346 if (dev->mode_config.funcs->atomic_commit)
1347 funcs = &nouveau_connector_funcs;
1348 else
1349 funcs = &nouveau_connector_funcs_dp;
1339 break; 1350 break;
1340 default: 1351 default:
1341 funcs = &nouveau_connector_funcs; 1352 funcs = &nouveau_connector_funcs;