aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.14/950-0369-staging-bcm2835-camera-Remove-bulk_mutex-as-it-is-no.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.14/950-0369-staging-bcm2835-camera-Remove-bulk_mutex-as-it-is-no.patch')
-rw-r--r--target/linux/brcm2708/patches-4.14/950-0369-staging-bcm2835-camera-Remove-bulk_mutex-as-it-is-no.patch154
1 files changed, 0 insertions, 154 deletions
diff --git a/target/linux/brcm2708/patches-4.14/950-0369-staging-bcm2835-camera-Remove-bulk_mutex-as-it-is-no.patch b/target/linux/brcm2708/patches-4.14/950-0369-staging-bcm2835-camera-Remove-bulk_mutex-as-it-is-no.patch
deleted file mode 100644
index 7cae806893..0000000000
--- a/target/linux/brcm2708/patches-4.14/950-0369-staging-bcm2835-camera-Remove-bulk_mutex-as-it-is-no.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-From 5d8eefe0b0b10b346c76cda1c99bceca33d66aac Mon Sep 17 00:00:00 2001
-From: Dave Stevenson <dave.stevenson@raspberrypi.org>
-Date: Thu, 10 May 2018 12:42:09 -0700
-Subject: [PATCH 369/454] staging: bcm2835-camera: Remove bulk_mutex as it is
- not required
-
-commit 71fcbc4740ab24c5208a24cf48a8190dc8f5d9ae upstream.
-
-There is no requirement to serialise bulk transfers as that is all
-done in VCHI, and if a second MMAL_MSG_TYPE_BUFFER_TO_HOST happened
-before the VCHI_CALLBACK_BULK_RECEIVED, then the service_callback
-thread is deadlocked.
-
-Remove the bulk_mutex so that multiple receives can be scheduled at a
-time.
-
-Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
-Signed-off-by: Eric Anholt <eric@anholt.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- .../vc04_services/bcm2835-camera/mmal-vchiq.c | 48 +------------------
- 1 file changed, 1 insertion(+), 47 deletions(-)
-
---- a/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c
-+++ b/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.c
-@@ -165,9 +165,6 @@ struct vchiq_mmal_instance {
- /* ensure serialised access to service */
- struct mutex vchiq_mutex;
-
-- /* ensure serialised access to bulk operations */
-- struct mutex bulk_mutex;
--
- /* vmalloc page to receive scratch bulk xfers into */
- void *bulk_scratch;
-
-@@ -335,13 +332,6 @@ static int bulk_receive(struct vchiq_mma
- unsigned long flags = 0;
- int ret;
-
-- /* bulk mutex stops other bulk operations while we have a
-- * receive in progress - released in callback
-- */
-- ret = mutex_lock_interruptible(&instance->bulk_mutex);
-- if (ret != 0)
-- return ret;
--
- rd_len = msg->u.buffer_from_host.buffer_header.length;
-
- /* take buffer from queue */
-@@ -360,8 +350,6 @@ static int bulk_receive(struct vchiq_mma
- * waiting bulk receive?
- */
-
-- mutex_unlock(&instance->bulk_mutex);
--
- return -EINVAL;
- }
-
-@@ -402,11 +390,6 @@ static int bulk_receive(struct vchiq_mma
-
- vchi_service_release(instance->handle);
-
-- if (ret != 0) {
-- /* callback will not be clearing the mutex */
-- mutex_unlock(&instance->bulk_mutex);
-- }
--
- return ret;
- }
-
-@@ -416,13 +399,6 @@ static int dummy_bulk_receive(struct vch
- {
- int ret;
-
-- /* bulk mutex stops other bulk operations while we have a
-- * receive in progress - released in callback
-- */
-- ret = mutex_lock_interruptible(&instance->bulk_mutex);
-- if (ret != 0)
-- return ret;
--
- /* zero length indicates this was a dummy transfer */
- msg_context->u.bulk.buffer_used = 0;
-
-@@ -438,11 +414,6 @@ static int dummy_bulk_receive(struct vch
-
- vchi_service_release(instance->handle);
-
-- if (ret != 0) {
-- /* callback will not be clearing the mutex */
-- mutex_unlock(&instance->bulk_mutex);
-- }
--
- return ret;
- }
-
-@@ -497,18 +468,11 @@ buffer_from_host(struct vchiq_mmal_insta
-
- pr_debug("instance:%p buffer:%p\n", instance->handle, buf);
-
-- /* bulk mutex stops other bulk operations while we
-- * have a receive in progress
-- */
-- if (mutex_lock_interruptible(&instance->bulk_mutex))
-- return -EINTR;
--
- /* get context */
- if (!buf->msg_context) {
- pr_err("%s: msg_context not allocated, buf %p\n", __func__,
- buf);
-- ret = -EINVAL;
-- goto unlock;
-+ return -EINVAL;
- }
- msg_context = buf->msg_context;
-
-@@ -562,9 +526,6 @@ buffer_from_host(struct vchiq_mmal_insta
-
- vchi_service_release(instance->handle);
-
--unlock:
-- mutex_unlock(&instance->bulk_mutex);
--
- return ret;
- }
-
-@@ -688,9 +649,6 @@ static void buffer_to_host_cb(struct vch
- static void bulk_receive_cb(struct vchiq_mmal_instance *instance,
- struct mmal_msg_context *msg_context)
- {
-- /* bulk receive operation complete */
-- mutex_unlock(&msg_context->u.bulk.instance->bulk_mutex);
--
- /* replace the buffer header */
- port_buffer_from_host(msg_context->u.bulk.instance,
- msg_context->u.bulk.port);
-@@ -706,9 +664,6 @@ static void bulk_abort_cb(struct vchiq_m
- {
- pr_err("%s: bulk ABORTED msg_context:%p\n", __func__, msg_context);
-
-- /* bulk receive operation complete */
-- mutex_unlock(&msg_context->u.bulk.instance->bulk_mutex);
--
- /* replace the buffer header */
- port_buffer_from_host(msg_context->u.bulk.instance,
- msg_context->u.bulk.port);
-@@ -2047,7 +2002,6 @@ int vchiq_mmal_init(struct vchiq_mmal_in
- return -ENOMEM;
-
- mutex_init(&instance->vchiq_mutex);
-- mutex_init(&instance->bulk_mutex);
-
- instance->bulk_scratch = vmalloc(PAGE_SIZE);
-