diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-11-04 03:20:35 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2016-11-06 23:04:47 -0500 |
commit | b2b75eea576b292718e328e23ef81ff62fb88157 (patch) | |
tree | 96761585320dbbb8a5bd88fbc183fd3ba5edd1d2 | |
parent | 56182b8bd14bb8fe85d4d6e6bcbc9779ad538288 (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.c | 17 |
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 | ||
1077 | static int | ||
1078 | nouveau_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 | |||
1077 | static const struct drm_connector_funcs | 1085 | static const struct drm_connector_funcs |
1078 | nouveau_connector_funcs = { | 1086 | nouveau_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 | ||
1092 | static const struct drm_connector_funcs | 1100 | static const struct drm_connector_funcs |
1093 | nouveau_connector_funcs_lvds = { | 1101 | nouveau_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; |