aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
diff options
context:
space:
mode:
authorShahid Akhtar <sakhtar@ti.com>2012-08-03 16:59:59 -0500
committerZiyann <jaraidaniel@gmail.com>2014-10-01 12:58:54 +0200
commit657a59748be8f83e0093fc58c3f9e3f319e77254 (patch)
tree2ce4b141c0a71d249b1b1c6383fde0cc477d8f1c /arch/arm/plat-omap
parent4aca6fda2a28baf587bf0ec776a811324bc650aa (diff)
downloadkernel_samsung_tuna-657a59748be8f83e0093fc58c3f9e3f319e77254.zip
kernel_samsung_tuna-657a59748be8f83e0093fc58c3f9e3f319e77254.tar.gz
kernel_samsung_tuna-657a59748be8f83e0093fc58c3f9e3f319e77254.tar.bz2
omap: mailbox: process all messages before suspend
The mailbox for remote processors must wait for all messages from remote processors to be processed before unregistering block notifiers. Change-Id: I75ae76dacdb95582b5f075690c2c3ecaf99e5f65 Signed-off-by: Shahid Akhtar <sakhtar@ti.com>
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r--arch/arm/plat-omap/mailbox.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c
index c006751..e26277d 100644
--- a/arch/arm/plat-omap/mailbox.c
+++ b/arch/arm/plat-omap/mailbox.c
@@ -313,10 +313,10 @@ static void omap_mbox_fini(struct omap_mbox *mbox)
{
mutex_lock(&mbox_configured_lock);
+ flush_work_sync(&mbox->rxq->work);
if (!--mbox->use_count) {
free_irq(mbox->irq, mbox);
tasklet_kill(&mbox->txq->tasklet);
- flush_work_sync(&mbox->rxq->work);
mbox_queue_free(mbox->txq);
mbox_queue_free(mbox->rxq);
}
@@ -364,9 +364,9 @@ EXPORT_SYMBOL(omap_mbox_get);
void omap_mbox_put(struct omap_mbox *mbox, struct notifier_block *nb)
{
+ omap_mbox_fini(mbox);
if (nb)
blocking_notifier_chain_unregister(&mbox->notifier, nb);
- omap_mbox_fini(mbox);
}
EXPORT_SYMBOL(omap_mbox_put);