aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_atomic_uapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/drm_atomic_uapi.c')
-rw-r--r--drivers/gpu/drm/drm_atomic_uapi.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_atomic_uapi.c b/drivers/gpu/drm/drm_atomic_uapi.c
index 30a6d1edd5fe..c40889888a16 100644
--- a/drivers/gpu/drm/drm_atomic_uapi.c
+++ b/drivers/gpu/drm/drm_atomic_uapi.c
@@ -517,6 +517,8 @@ static int drm_atomic_plane_set_property(struct drm_plane *plane,
517{ 517{
518 struct drm_device *dev = plane->dev; 518 struct drm_device *dev = plane->dev;
519 struct drm_mode_config *config = &dev->mode_config; 519 struct drm_mode_config *config = &dev->mode_config;
520 bool replaced = false;
521 int ret;
520 522
521 if (property == config->prop_fb_id) { 523 if (property == config->prop_fb_id) {
522 struct drm_framebuffer *fb = drm_framebuffer_lookup(dev, NULL, val); 524 struct drm_framebuffer *fb = drm_framebuffer_lookup(dev, NULL, val);
@@ -570,6 +572,14 @@ static int drm_atomic_plane_set_property(struct drm_plane *plane,
570 state->color_encoding = val; 572 state->color_encoding = val;
571 } else if (property == plane->color_range_property) { 573 } else if (property == plane->color_range_property) {
572 state->color_range = val; 574 state->color_range = val;
575 } else if (property == config->prop_fb_damage_clips) {
576 ret = drm_atomic_replace_property_blob_from_id(dev,
577 &state->fb_damage_clips,
578 val,
579 -1,
580 sizeof(struct drm_rect),
581 &replaced);
582 return ret;
573 } else if (plane->funcs->atomic_set_property) { 583 } else if (plane->funcs->atomic_set_property) {
574 return plane->funcs->atomic_set_property(plane, state, 584 return plane->funcs->atomic_set_property(plane, state,
575 property, val); 585 property, val);
@@ -625,6 +635,9 @@ drm_atomic_plane_get_property(struct drm_plane *plane,
625 *val = state->color_encoding; 635 *val = state->color_encoding;
626 } else if (property == plane->color_range_property) { 636 } else if (property == plane->color_range_property) {
627 *val = state->color_range; 637 *val = state->color_range;
638 } else if (property == config->prop_fb_damage_clips) {
639 *val = (state->fb_damage_clips) ?
640 state->fb_damage_clips->base.id : 0;
628 } else if (plane->funcs->atomic_get_property) { 641 } else if (plane->funcs->atomic_get_property) {
629 return plane->funcs->atomic_get_property(plane, state, property, val); 642 return plane->funcs->atomic_get_property(plane, state, property, val);
630 } else { 643 } else {