summaryrefslogtreecommitdiff
path: root/target/linux/brcm2708/patches-4.1/0083-bcm2708-vcio-Remove-restriction-of-only-a-single-ins.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.1/0083-bcm2708-vcio-Remove-restriction-of-only-a-single-ins.patch')
-rw-r--r--target/linux/brcm2708/patches-4.1/0083-bcm2708-vcio-Remove-restriction-of-only-a-single-ins.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.1/0083-bcm2708-vcio-Remove-restriction-of-only-a-single-ins.patch b/target/linux/brcm2708/patches-4.1/0083-bcm2708-vcio-Remove-restriction-of-only-a-single-ins.patch
new file mode 100644
index 0000000..ad169da
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.1/0083-bcm2708-vcio-Remove-restriction-of-only-a-single-ins.patch
@@ -0,0 +1,45 @@
+From 79796a03fa8311ea9030817db27690f24f72214c Mon Sep 17 00:00:00 2001
+From: popcornmix <popcornmix@gmail.com>
+Date: Fri, 26 Jun 2015 17:37:38 +0100
+Subject: [PATCH 083/121] bcm2708-vcio: Remove restriction of only a single
+ instance being open
+
+We need more than one process to be able to use mailbox interface (e.g. HW cursor in fbturbo and hello_fft).
+Locking should be handled on each mailbox access
+---
+ drivers/mailbox/bcm2708-vcio.c | 14 --------------
+ 1 file changed, 14 deletions(-)
+
+--- a/drivers/mailbox/bcm2708-vcio.c
++++ b/drivers/mailbox/bcm2708-vcio.c
+@@ -242,20 +242,9 @@ EXPORT_SYMBOL_GPL(bcm_mailbox_property);
+
+ /* Platform Device for Mailbox */
+
+-/*
+- * Is the device open right now? Used to prevent
+- * concurent access into the same device
+- */
+-static bool device_is_open;
+-
+ /* This is called whenever a process attempts to open the device file */
+ static int device_open(struct inode *inode, struct file *file)
+ {
+- /* We don't want to talk to two processes at the same time */
+- if (device_is_open)
+- return -EBUSY;
+-
+- device_is_open = true;
+ try_module_get(THIS_MODULE);
+
+ return 0;
+@@ -263,9 +252,6 @@ static int device_open(struct inode *ino
+
+ static int device_release(struct inode *inode, struct file *file)
+ {
+- /* We're now ready for our next caller */
+- device_is_open = false;
+-
+ module_put(THIS_MODULE);
+
+ return 0;