summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_connector.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2016-11-04 17:20:35 +1000
committerBen Skeggs <bskeggs@redhat.com>2016-11-07 14:04:47 +1000
commitb2b75eea576b292718e328e23ef81ff62fb88157 (patch)
tree96761585320dbbb8a5bd88fbc183fd3ba5edd1d2 /drivers/gpu/drm/nouveau/nouveau_connector.c
parent56182b8bd14bb8fe85d4d6e6bcbc9779ad538288 (diff)
downloadop-kernel-dev-b2b75eea576b292718e328e23ef81ff62fb88157.zip
op-kernel-dev-b2b75eea576b292718e328e23ef81ff62fb88157.tar.gz
drm/nouveau/kms: prepare to support legacy connector dpms with atomic
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_connector.c')
-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 c08d5e6..705c700 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 = {
.best_encoder = nouveau_connector_best_encoder,
};
+static int
+nouveau_connector_dpms(struct drm_connector *connector, int mode)
+{
+ if (connector->dev->mode_config.funcs->atomic_commit)
+ return drm_atomic_helper_connector_dpms(connector, mode);
+ return drm_helper_connector_dpms(connector, mode);
+}
+
static const struct drm_connector_funcs
nouveau_connector_funcs = {
- .dpms = drm_helper_connector_dpms,
+ .dpms = nouveau_connector_dpms,
.reset = nouveau_conn_reset,
.detect = nouveau_connector_detect,
.force = nouveau_connector_force,
@@ -1091,7 +1099,7 @@ nouveau_connector_funcs = {
static const struct drm_connector_funcs
nouveau_connector_funcs_lvds = {
- .dpms = drm_helper_connector_dpms,
+ .dpms = nouveau_connector_dpms,
.reset = nouveau_conn_reset,
.detect = nouveau_connector_detect_lvds,
.force = nouveau_connector_force,
@@ -1335,7 +1343,10 @@ nouveau_connector_create(struct drm_device *dev, int index)
return ERR_PTR(ret);
}
- funcs = &nouveau_connector_funcs_dp;
+ if (dev->mode_config.funcs->atomic_commit)
+ funcs = &nouveau_connector_funcs;
+ else
+ funcs = &nouveau_connector_funcs_dp;
break;
default:
funcs = &nouveau_connector_funcs;
OpenPOWER on IntegriCloud