drm: rename, adjust and export drm_atomic_replace_property_blob
authorPeter Rosin <peda@axentia.se>
Thu, 13 Jul 2017 16:25:25 +0000 (18:25 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 14 Jul 2017 13:53:06 +0000 (15:53 +0200)
The function has little to do with atomic, it's just where it has so
far been needed. So, rename it to drm_property_replace_blob, move it
to drm_property.c and export it.

Change the semantics to return whether the blob was replaced instead
of using an extra argument for that.

Signed-off-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170713162538.22788-2-peda@axentia.se
drivers/gpu/drm/drm_atomic.c
drivers/gpu/drm/drm_property.c
include/drm/drm_property.h

index b59fd33c57865d164750e5f3ab952ab9d9f01370..01192dd3ed793ac033d2a69820ccca5c445c5972 100644 (file)
@@ -411,34 +411,6 @@ int drm_atomic_set_mode_prop_for_crtc(struct drm_crtc_state *state,
 }
 EXPORT_SYMBOL(drm_atomic_set_mode_prop_for_crtc);
 
-/**
- * drm_atomic_replace_property_blob - replace a blob property
- * @blob: a pointer to the member blob to be replaced
- * @new_blob: the new blob to replace with
- * @replaced: whether the blob has been replaced
- *
- * RETURNS:
- * Zero on success, error code on failure
- */
-static void
-drm_atomic_replace_property_blob(struct drm_property_blob **blob,
-                                struct drm_property_blob *new_blob,
-                                bool *replaced)
-{
-       struct drm_property_blob *old_blob = *blob;
-
-       if (old_blob == new_blob)
-               return;
-
-       drm_property_blob_put(old_blob);
-       if (new_blob)
-               drm_property_blob_get(new_blob);
-       *blob = new_blob;
-       *replaced = true;
-
-       return;
-}
-
 static int
 drm_atomic_replace_property_blob_from_id(struct drm_device *dev,
                                         struct drm_property_blob **blob,
@@ -459,7 +431,7 @@ drm_atomic_replace_property_blob_from_id(struct drm_device *dev,
                }
        }
 
-       drm_atomic_replace_property_blob(blob, new_blob, replaced);
+       *replaced |= drm_property_replace_blob(blob, new_blob);
        drm_property_blob_put(new_blob);
 
        return 0;
index 3e88fa24eab3d382b037a873c6849fe32ead1d46..bc5128203056d08e1bf8ec806b401d7a3de90727 100644 (file)
@@ -709,6 +709,29 @@ err_created:
 }
 EXPORT_SYMBOL(drm_property_replace_global_blob);
 
+/**
+ * drm_property_replace_blob - replace a blob property
+ * @blob: a pointer to the member blob to be replaced
+ * @new_blob: the new blob to replace with
+ *
+ * Return: true if the blob was in fact replaced.
+ */
+bool drm_property_replace_blob(struct drm_property_blob **blob,
+                              struct drm_property_blob *new_blob)
+{
+       struct drm_property_blob *old_blob = *blob;
+
+       if (old_blob == new_blob)
+               return false;
+
+       drm_property_blob_put(old_blob);
+       if (new_blob)
+               drm_property_blob_get(new_blob);
+       *blob = new_blob;
+       return true;
+}
+EXPORT_SYMBOL(drm_property_replace_blob);
+
 int drm_mode_getblob_ioctl(struct drm_device *dev,
                           void *data, struct drm_file *file_priv)
 {
index 619868dc08d8c13cb235b4063eb7013948aefe9c..37355c623e6c32888b2f7b2defabc8f023e7bcc4 100644 (file)
@@ -273,6 +273,8 @@ int drm_property_replace_global_blob(struct drm_device *dev,
                                     const void *data,
                                     struct drm_mode_object *obj_holds_id,
                                     struct drm_property *prop_holds_id);
+bool drm_property_replace_blob(struct drm_property_blob **blob,
+                              struct drm_property_blob *new_blob);
 struct drm_property_blob *drm_property_blob_get(struct drm_property_blob *blob);
 void drm_property_blob_put(struct drm_property_blob *blob);