Re: [PATCH 06/12] staging/android: prepare sync_file for de-staging

2016-05-02 Thread Gustavo Padovan
Hi Pavel,

2016-05-02 Pavel Machek :

> Hi!
> 
> 
> > -}
> > -EXPORT_SYMBOL(sync_file_merge);
> > -
> >  static const char *android_fence_get_driver_name(struct fence *fence)
> >  {
> > struct sync_timeline *parent = fence_parent(fence);
> 
> if this is meant to be used outside android, should it select some
> better prefix than android_fence_?

Sure, This patchset doesn't touch this code, but my latest patchset
changes them to timeline_*.

Gustavo
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH 06/12] staging/android: prepare sync_file for de-staging

2016-05-02 Thread Pavel Machek
Hi!


> -}
> -EXPORT_SYMBOL(sync_file_merge);
> -
>  static const char *android_fence_get_driver_name(struct fence *fence)
>  {
>   struct sync_timeline *parent = fence_parent(fence);

if this is meant to be used outside android, should it select some
better prefix than android_fence_?

Thanks,
Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH 06/12] staging/android: prepare sync_file for de-staging

2016-04-27 Thread Gustavo Padovan
From: Gustavo Padovan 

Move its functions and structs to their own file. Also moves function's
docs to the .c file.

Signed-off-by: Gustavo Padovan 
---
 drivers/staging/android/Makefile   |   2 +-
 drivers/staging/android/sync.c | 373 ---
 drivers/staging/android/sync.h |  38 +-
 drivers/staging/android/sync_debug.c   |   1 +
 drivers/staging/android/sync_file.c| 393 +
 drivers/staging/android/sync_file.h|  57 +++
 .../staging/android/uapi/{sync.h => sync_file.h}   |   0
 7 files changed, 454 insertions(+), 410 deletions(-)
 create mode 100644 drivers/staging/android/sync_file.c
 create mode 100644 drivers/staging/android/sync_file.h
 rename drivers/staging/android/uapi/{sync.h => sync_file.h} (100%)

diff --git a/drivers/staging/android/Makefile b/drivers/staging/android/Makefile
index 980d6dc..ebc2df1 100644
--- a/drivers/staging/android/Makefile
+++ b/drivers/staging/android/Makefile
@@ -4,5 +4,5 @@ obj-y   += ion/
 
 obj-$(CONFIG_ASHMEM)   += ashmem.o
 obj-$(CONFIG_ANDROID_LOW_MEMORY_KILLER)+= lowmemorykiller.o
-obj-$(CONFIG_SYNC) += sync.o sync_debug.o
+obj-$(CONFIG_SYNC) += sync_file.o sync.o sync_debug.o
 obj-$(CONFIG_SW_SYNC)  += sw_sync.o
diff --git a/drivers/staging/android/sync.c b/drivers/staging/android/sync.c
index 1239684..1d14c83 100644
--- a/drivers/staging/android/sync.c
+++ b/drivers/staging/android/sync.c
@@ -16,10 +16,7 @@
 
 #include 
 #include 
-#include 
-#include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -32,7 +29,6 @@
 #include "trace/sync.h"
 
 static const struct fence_ops android_fence_ops;
-static const struct file_operations sync_file_fops;
 
 struct sync_timeline *sync_timeline_create(const struct sync_timeline_ops *ops,
   int size, const char *name)
@@ -136,181 +132,6 @@ struct fence *sync_pt_create(struct sync_timeline *obj, 
int size)
 }
 EXPORT_SYMBOL(sync_pt_create);
 
-static struct sync_file *sync_file_alloc(int size, const char *name)
-{
-   struct sync_file *sync_file;
-
-   sync_file = kzalloc(size, GFP_KERNEL);
-   if (!sync_file)
-   return NULL;
-
-   sync_file->file = anon_inode_getfile("sync_file", &sync_file_fops,
-sync_file, 0);
-   if (IS_ERR(sync_file->file))
-   goto err;
-
-   kref_init(&sync_file->kref);
-   strlcpy(sync_file->name, name, sizeof(sync_file->name));
-
-   init_waitqueue_head(&sync_file->wq);
-
-   return sync_file;
-
-err:
-   kfree(sync_file);
-   return NULL;
-}
-
-static void fence_check_cb_func(struct fence *f, struct fence_cb *cb)
-{
-   struct sync_file_cb *check;
-   struct sync_file *sync_file;
-
-   check = container_of(cb, struct sync_file_cb, cb);
-   sync_file = check->sync_file;
-
-   if (atomic_dec_and_test(&sync_file->status))
-   wake_up_all(&sync_file->wq);
-}
-
-/**
- * sync_fence_create() - creates a sync fence
- * @name:  name of fence to create
- * @fence: fence to add to the sync_fence
- *
- * Creates a sync_file containg @fence. Once this is called, the sync_file
- * takes ownership of @fence.
- */
-struct sync_file *sync_file_create(const char *name, struct fence *fence)
-{
-   struct sync_file *sync_file;
-
-   sync_file = sync_file_alloc(offsetof(struct sync_file, cbs[1]),
-   name);
-   if (!sync_file)
-   return NULL;
-
-   sync_file->num_fences = 1;
-   atomic_set(&sync_file->status, 1);
-
-   sync_file->cbs[0].fence = fence;
-   sync_file->cbs[0].sync_file = sync_file;
-   if (fence_add_callback(fence, &sync_file->cbs[0].cb,
-  fence_check_cb_func))
-   atomic_dec(&sync_file->status);
-
-   sync_file_debug_add(sync_file);
-
-   return sync_file;
-}
-EXPORT_SYMBOL(sync_file_create);
-
-/**
- * sync_file_fdget() - get a sync_file from an fd
- * @fd:fd referencing a fence
- *
- * Ensures @fd references a valid sync_file, increments the refcount of the
- * backing file. Returns the sync_file or NULL in case of error.
- */
-static struct sync_file *sync_file_fdget(int fd)
-{
-   struct file *file = fget(fd);
-
-   if (!file)
-   return NULL;
-
-   if (file->f_op != &sync_file_fops)
-   goto err;
-
-   return file->private_data;
-
-err:
-   fput(file);
-   return NULL;
-}
-
-static void sync_file_add_pt(struct sync_file *sync_file, int *i,
-struct fence *fence)
-{
-   sync_file->cbs[*i].fence = fence;
-   sync_file->cbs[*i].sync_file = sync_file;
-
-   if (!fence_add_callback(fence, &sync_file->cbs[*i].cb,
-   fe