summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBibek Basu <bibek.basu@stericsson.com>2011-11-09 08:43:54 +0530
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-06-05 10:40:09 +0200
commite635e4a8ce02dfac53e4591c3df7ed5c42e36b68 (patch)
treeb2f8bad337b6eebc77f5ebea4ca37732dce7b0b4
parent18e1aee4b43ad9d2de8e419f70304c0c75748c1b (diff)
u5500 : Logical mailbox : add support for 16 DSP buffers
Number of DSP read buffers has ben increased to 16 to avoid message loss when system waking up. Updated check for message pending with atomic_dec_return API which is more proper in this case. ST-Ericsson Linux next: NA ST-Ericsson ID: 367390 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I99ef44ead99a2b9eb856c01e025423a990b0ba98 Signed-off-by: Bibek Basu <bibek.basu@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/36973 Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
-rw-r--r--arch/arm/mach-ux500/include/mach/mbox_channels-db5500.h3
-rw-r--r--drivers/misc/mbox_channels-db5500.c5
-rw-r--r--drivers/misc/modem_audio/mad.c4
3 files changed, 6 insertions, 6 deletions
diff --git a/arch/arm/mach-ux500/include/mach/mbox_channels-db5500.h b/arch/arm/mach-ux500/include/mach/mbox_channels-db5500.h
index c29dfff0ff7..549a9c2c8cb 100644
--- a/arch/arm/mach-ux500/include/mach/mbox_channels-db5500.h
+++ b/arch/arm/mach-ux500/include/mach/mbox_channels-db5500.h
@@ -11,6 +11,9 @@
/* Maximum number of datawords which can be send in one PDU */
#define MAILBOX_NR_OF_DATAWORDS 3
+/* Number of buffers */
+#define NUM_DSP_BUFFER 16
+
/**
* mbox_channel_cb_t - Definition of the mailbox channel callback.
* @data: Pointer to the data.
diff --git a/drivers/misc/mbox_channels-db5500.c b/drivers/misc/mbox_channels-db5500.c
index b3baae12d4b..919be308ed4 100644
--- a/drivers/misc/mbox_channels-db5500.c
+++ b/drivers/misc/mbox_channels-db5500.c
@@ -51,9 +51,6 @@
/* Returns sequence number from mbox message header */
#define GET_SEQ_NUMBER(mbox_msg) (((mbox_msg) >> 24)
-/* Number of buffers */
-#define NUM_DSP_BUFFER 4
-
enum mbox_msg{
MBOX_CLOSE,
MBOX_OPEN,
@@ -379,7 +376,7 @@ rcv_msg:
dev_err(&channels.pdev->dev,
"%s no callback provided\n", __func__);
}
- if (!atomic_dec_and_test(&rx_chan->rcv_counter))
+ if (atomic_dec_return(&rx_chan->rcv_counter) > 0)
goto rcv_msg;
}
diff --git a/drivers/misc/modem_audio/mad.c b/drivers/misc/modem_audio/mad.c
index 88bbcaa3c9c..d31d78ba3f2 100644
--- a/drivers/misc/modem_audio/mad.c
+++ b/drivers/misc/modem_audio/mad.c
@@ -55,8 +55,8 @@ MODULE_LICENSE("GPLv2");
* Maximum number of datawords which can be sent
* in the mailbox each word is 32 bits
*/
-#define MAX_NR_OF_DATAWORDS 3
-#define MAX_NUM_RX_BUFF 4
+#define MAX_NR_OF_DATAWORDS MAILBOX_NR_OF_DATAWORDS
+#define MAX_NUM_RX_BUFF NUM_DSP_BUFFER
#define NR_OF_DATAWORDS_REQD_FOR_ACK 1
/**