|
@@ -80,11 +80,6 @@ struct sync_file *sync_file_create(struct dma_fence *fence)
|
|
|
|
|
|
sync_file->fence = dma_fence_get(fence);
|
|
sync_file->fence = dma_fence_get(fence);
|
|
|
|
|
|
- snprintf(sync_file->name, sizeof(sync_file->name), "%s-%s%llu-%d",
|
|
|
|
- fence->ops->get_driver_name(fence),
|
|
|
|
- fence->ops->get_timeline_name(fence), fence->context,
|
|
|
|
- fence->seqno);
|
|
|
|
-
|
|
|
|
return sync_file;
|
|
return sync_file;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(sync_file_create);
|
|
EXPORT_SYMBOL(sync_file_create);
|
|
@@ -129,6 +124,36 @@ struct dma_fence *sync_file_get_fence(int fd)
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(sync_file_get_fence);
|
|
EXPORT_SYMBOL(sync_file_get_fence);
|
|
|
|
|
|
|
|
+/**
|
|
|
|
+ * sync_file_get_name - get the name of the sync_file
|
|
|
|
+ * @sync_file: sync_file to get the fence from
|
|
|
|
+ * @buf: destination buffer to copy sync_file name into
|
|
|
|
+ * @len: available size of destination buffer.
|
|
|
|
+ *
|
|
|
|
+ * Each sync_file may have a name assigned either by the user (when merging
|
|
|
|
+ * sync_files together) or created from the fence it contains. In the latter
|
|
|
|
+ * case construction of the name is deferred until use, and so requires
|
|
|
|
+ * sync_file_get_name().
|
|
|
|
+ *
|
|
|
|
+ * Returns: a string representing the name.
|
|
|
|
+ */
|
|
|
|
+char *sync_file_get_name(struct sync_file *sync_file, char *buf, int len)
|
|
|
|
+{
|
|
|
|
+ if (sync_file->user_name[0]) {
|
|
|
|
+ strlcpy(buf, sync_file->user_name, len);
|
|
|
|
+ } else {
|
|
|
|
+ struct dma_fence *fence = sync_file->fence;
|
|
|
|
+
|
|
|
|
+ snprintf(buf, len, "%s-%s%llu-%d",
|
|
|
|
+ fence->ops->get_driver_name(fence),
|
|
|
|
+ fence->ops->get_timeline_name(fence),
|
|
|
|
+ fence->context,
|
|
|
|
+ fence->seqno);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return buf;
|
|
|
|
+}
|
|
|
|
+
|
|
static int sync_file_set_fence(struct sync_file *sync_file,
|
|
static int sync_file_set_fence(struct sync_file *sync_file,
|
|
struct dma_fence **fences, int num_fences)
|
|
struct dma_fence **fences, int num_fences)
|
|
{
|
|
{
|
|
@@ -266,7 +291,7 @@ static struct sync_file *sync_file_merge(const char *name, struct sync_file *a,
|
|
goto err;
|
|
goto err;
|
|
}
|
|
}
|
|
|
|
|
|
- strlcpy(sync_file->name, name, sizeof(sync_file->name));
|
|
|
|
|
|
+ strlcpy(sync_file->user_name, name, sizeof(sync_file->user_name));
|
|
return sync_file;
|
|
return sync_file;
|
|
|
|
|
|
err:
|
|
err:
|
|
@@ -413,7 +438,7 @@ static long sync_file_ioctl_fence_info(struct sync_file *sync_file,
|
|
}
|
|
}
|
|
|
|
|
|
no_fences:
|
|
no_fences:
|
|
- strlcpy(info.name, sync_file->name, sizeof(info.name));
|
|
|
|
|
|
+ sync_file_get_name(sync_file, info.name, sizeof(info.name));
|
|
info.status = dma_fence_is_signaled(sync_file->fence);
|
|
info.status = dma_fence_is_signaled(sync_file->fence);
|
|
info.num_fences = num_fences;
|
|
info.num_fences = num_fences;
|
|
|
|
|