[PATCH 3/3] omap mailbox: remove mbox_configured scheme
Hiroshi DOYU
Hiroshi.DOYU at nokia.com
Fri Jul 2 08:05:05 EDT 2010
From: ext Ohad Ben-Cohen <ohad at wizery.com>
mbox_configured is global and therefore does not support
concurrent usage of multiple mailbox instances.
Instead of fixing this, we can just eliminate mbox_configured
(and its locking) entirely, since any given mailbox instance
can only be taken by a single receiver now.
Signed-off-by: Ohad Ben-Cohen <ohad at wizery.com>
Signed-off-by: Hiroshi DOYU <Hiroshi.DOYU at nokia.com>
---
arch/arm/plat-omap/mailbox.c | 24 ++++--------------------
1 files changed, 4 insertions(+), 20 deletions(-)
diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c
index aafa63f..6a9dfe5 100644
--- a/arch/arm/plat-omap/mailbox.c
+++ b/arch/arm/plat-omap/mailbox.c
@@ -35,9 +35,6 @@ static struct workqueue_struct *mboxd;
static struct omap_mbox **mboxes;
static bool rq_full;
-static int mbox_configured;
-static DEFINE_MUTEX(mbox_configured_lock);
-
static unsigned int mbox_kfifo_size = CONFIG_OMAP_MBOX_KFIFO_SIZE;
module_param(mbox_kfifo_size, uint, S_IRUGO);
MODULE_PARM_DESC(mbox_kfifo_size, "Size of omap's mailbox kfifo (bytes)");
@@ -240,16 +237,9 @@ static int omap_mbox_startup(struct omap_mbox *mbox)
struct omap_mbox_queue *mq;
if (mbox->ops->startup) {
- mutex_lock(&mbox_configured_lock);
- if (!mbox_configured)
- ret = mbox->ops->startup(mbox);
-
- if (ret) {
- mutex_unlock(&mbox_configured_lock);
+ ret = mbox->ops->startup(mbox);
+ if (ret)
return ret;
- }
- mbox_configured++;
- mutex_unlock(&mbox_configured_lock);
}
ret = request_irq(mbox->irq, mbox_interrupt, IRQF_SHARED,
@@ -295,14 +285,8 @@ static void omap_mbox_fini(struct omap_mbox *mbox)
mbox_queue_free(mbox->txq);
mbox_queue_free(mbox->rxq);
- if (mbox->ops->shutdown) {
- mutex_lock(&mbox_configured_lock);
- if (mbox_configured > 0)
- mbox_configured--;
- if (!mbox_configured)
- mbox->ops->shutdown(mbox);
- mutex_unlock(&mbox_configured_lock);
- }
+ if (mbox->ops->shutdown)
+ mbox->ops->shutdown(mbox);
}
struct omap_mbox *omap_mbox_get(const char *name, int (*callback)(void *))
--
1.7.1.rc2
More information about the linux-arm-kernel
mailing list