drm: Add reference counting on HDR metadata blob
authorJonas Karlman <jonas@kwiboo.se>
Thu, 16 May 2019 14:10:07 +0000 (19:40 +0530)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Wed, 22 May 2019 19:46:35 +0000 (22:46 +0300)
This adds reference count for HDR metadata blob,
handled as part of duplicate and destroy connector
state functions.

v2: Removed the hdr_metadata_changed initialization as
the variable is dropped and not required.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1558015817-12025-3-git-send-email-uma.shankar@intel.com
drivers/gpu/drm/drm_atomic_state_helper.c

index ac929f68ff3153db1cc2abb8fd8b2747efc946ad..ec13823153a97e3140f196b7ce4d6794927bd03f 100644 (file)
@@ -391,6 +391,9 @@ __drm_atomic_helper_connector_duplicate_state(struct drm_connector *connector,
                drm_connector_get(connector);
        state->commit = NULL;
 
+       if (state->hdr_output_metadata)
+               drm_property_blob_get(state->hdr_output_metadata);
+
        /* Don't copy over a writeback job, they are used only once */
        state->writeback_job = NULL;
 }
@@ -438,6 +441,8 @@ __drm_atomic_helper_connector_destroy_state(struct drm_connector_state *state)
 
        if (state->writeback_job)
                drm_writeback_cleanup_job(state->writeback_job);
+
+       drm_property_blob_put(state->hdr_output_metadata);
 }
 EXPORT_SYMBOL(__drm_atomic_helper_connector_destroy_state);