diff options
author | Greg Hackmann <ghackmann@google.com> | 2014-03-24 16:45:43 -0700 |
---|---|---|
committer | Nitin Garg <nitin.garg@freescale.com> | 2014-04-21 22:35:44 -0500 |
commit | 29b0a2930c712cce71a462e4017266ec5abbde89 (patch) | |
tree | c2ff77095ad8ff776b08c0a8a529c118506c20a4 /include | |
parent | 4b3d55a0101ac25f14cc6f58c65b85bf657224d3 (diff) |
video: adf: replace fbdev helper's open flag with refcount
A device's fb_info is shared between clients. fb_release() is called
when each client is released, not just the last one. Since the fbdev
helper needs to release its dma-buf when the last client goes away, it
must keep its own reference count.
fbmem and fbcon hold different locks while calling fb_release(), so
explicit locking is needed.
Change-Id: I42cd659f7633adba7c11f407d4b594bd43305d6a
Signed-off-by: Greg Hackmann <ghackmann@google.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/video/adf_fbdev.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/video/adf_fbdev.h b/include/video/adf_fbdev.h index 9c349144b5cd..e4d6fb7b25df 100644 --- a/include/video/adf_fbdev.h +++ b/include/video/adf_fbdev.h @@ -16,6 +16,7 @@ #define _VIDEO_ADF_FBDEV_H_ #include <linux/fb.h> +#include <linux/mutex.h> #include <video/adf.h> struct adf_fbdev { @@ -24,7 +25,8 @@ struct adf_fbdev { struct fb_info *info; u32 pseudo_palette[16]; - bool open; + unsigned int refcount; + struct mutex refcount_lock; struct dma_buf *dma_buf; u32 offset; |