OSDN Git Service

Merge tag 'drm-intel-next-2019-05-24' of git://anongit.freedesktop.org/drm/drm-intel...
[tomoyo/tomoyo-test1.git] / drivers / gpu / drm / drm_atomic_uapi.c
index 428d826..eb22e8b 100644 (file)
@@ -676,6 +676,8 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
 {
        struct drm_device *dev = connector->dev;
        struct drm_mode_config *config = &dev->mode_config;
+       bool replaced = false;
+       int ret;
 
        if (property == config->prop_crtc_id) {
                struct drm_crtc *crtc = drm_crtc_find(dev, file_priv, val);
@@ -726,13 +728,20 @@ static int drm_atomic_connector_set_property(struct drm_connector *connector,
                 */
                if (state->link_status != DRM_LINK_STATUS_GOOD)
                        state->link_status = val;
+       } else if (property == config->hdr_output_metadata_property) {
+               ret = drm_atomic_replace_property_blob_from_id(dev,
+                               &state->hdr_output_metadata,
+                               val,
+                               sizeof(struct hdr_output_metadata), -1,
+                               &replaced);
+               return ret;
        } else if (property == config->aspect_ratio_property) {
                state->picture_aspect_ratio = val;
        } else if (property == config->content_type_property) {
                state->content_type = val;
        } else if (property == connector->scaling_mode_property) {
                state->scaling_mode = val;
-       } else if (property == connector->content_protection_property) {
+       } else if (property == config->content_protection_property) {
                if (val == DRM_MODE_CONTENT_PROTECTION_ENABLED) {
                        DRM_DEBUG_KMS("only drivers can set CP Enabled\n");
                        return -EINVAL;
@@ -814,7 +823,10 @@ drm_atomic_connector_get_property(struct drm_connector *connector,
                *val = state->colorspace;
        } else if (property == connector->scaling_mode_property) {
                *val = state->scaling_mode;
-       } else if (property == connector->content_protection_property) {
+       } else if (property == config->hdr_output_metadata_property) {
+               *val = state->hdr_output_metadata ?
+                       state->hdr_output_metadata->base.id : 0;
+       } else if (property == config->content_protection_property) {
                *val = state->content_protection;
        } else if (property == config->writeback_fb_id_property) {
                /* Writeback framebuffer is one-shot, write and forget */