diff options
author | Greg Hackmann <ghackmann@google.com> | 2014-03-24 16:45:43 -0700 |
---|---|---|
committer | Greg Hackmann <ghackmann@google.com> | 2014-03-24 17:43:12 -0700 |
commit | e42126fcf1525129f25c895d26ddd868e5d4dff9 (patch) | |
tree | 965d160d364ffcc156ac396f7c96e4098d8ba9ff /include/video | |
parent | e8cec2c1f77a8a90f701fd2cebdea4feba7640bf (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/video')
-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; |