summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/drm_atomic.c
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2014-12-18 16:01:54 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-01-05 13:55:29 +0100
commitae16c597b61ae4613b13a0c3fac302e8d8827ac7 (patch)
tree317f0b969445d5ff94067e101d3f7c9f5c6db9ad /drivers/gpu/drm/drm_atomic.c
parent6b4959f43a04e12d39c5700607727f2cbcfeac31 (diff)
drm/atomic: atomic connector properties
Expose the core connector state as properties so it can be updated via atomic ioctl. Signed-off-by: Rob Clark <robdclark@gmail.com> Reviewed-by: Sean Paul <seanpaul@chromium.org> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/drm_atomic.c')
-rw-r--r--drivers/gpu/drm/drm_atomic.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 131d47f6f7a2..57cc68177f09 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -627,7 +627,10 @@ int drm_atomic_connector_set_property(struct drm_connector *connector,
struct drm_device *dev = connector->dev;
struct drm_mode_config *config = &dev->mode_config;
- if (property == config->dpms_property) {
+ if (property == config->prop_crtc_id) {
+ struct drm_crtc *crtc = drm_crtc_find(dev, val);
+ return drm_atomic_set_crtc_for_connector(state, crtc);
+ } else if (property == config->dpms_property) {
/* setting DPMS property requires special handling, which
* is done in legacy setprop path for us. Disallow (for
* now?) atomic writes to DPMS property:
@@ -665,7 +668,9 @@ int drm_atomic_connector_get_property(struct drm_connector *connector,
struct drm_device *dev = connector->dev;
struct drm_mode_config *config = &dev->mode_config;
- if (property == config->dpms_property) {
+ if (property == config->prop_crtc_id) {
+ *val = (state->crtc) ? state->crtc->base.id : 0;
+ } else if (property == config->dpms_property) {
*val = connector->dpms;
} else if (connector->funcs->atomic_get_property) {
return connector->funcs->atomic_get_property(connector,