Patchworkβ DSPBRIDGE: Fix flood of messages from DSP

login
register
about
Submitter Ramos Falcon, Ernesto
Date 2009-10-30 23:08:22
Message ID <B852767254C5C94EBB1040EE0EFA0600848E0C3C@dlee01.ent.ti.com>
Download mbox | patch
Permalink /patch/56733/
State Not Applicable, archived
Headers show

Comments

Ramos Falcon, Ernesto - 2009-10-30 23:08:22
From 577c4e8e647ca503518914302889dced3e898b04 Mon Sep 17 00:00:00 2001
From: Ernesto Ramos <ernesto@ti.com>
Date: Thu, 29 Oct 2009 13:10:30 -0600
Subject: [PATCH] DSPBRIDGE: Fix flood of messages from DSP

This patch fixes an issue in dspbridge when several messages are sent
in one shot but MPU was only able to process one message.

Signed-off-by: Ernesto Ramos <ernesto@ti.com>
Signed-off by: Bhavin Shah <bshah@ti.com>
---
 drivers/dsp/bridge/wmd/msg_sm.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

Patch

diff --git a/drivers/dsp/bridge/wmd/msg_sm.c b/drivers/dsp/bridge/wmd/msg_sm.c
index 0231f65..16eab74 100644
--- a/drivers/dsp/bridge/wmd/msg_sm.c
+++ b/drivers/dsp/bridge/wmd/msg_sm.c
@@ -314,6 +314,11 @@  DSP_STATUS WMD_MSG_Get(struct MSG_QUEUE *hMsgQueue,
 				   (struct LST_ELEM *)pMsgFrame);
 			if (LST_IsEmpty(hMsgQueue->msgUsedList))
 				SYNC_ResetEvent(hMsgQueue->hSyncEvent);
+			else {
+				NTFY_Notify(hMsgQueue->hNtfy,
+					DSP_NODEMESSAGEREADY);
+				SYNC_SetEvent(hMsgQueue->hSyncEvent);
+			}
 
 			fGotMsg = true;
 		}
@@ -361,9 +366,11 @@  DSP_STATUS WMD_MSG_Get(struct MSG_QUEUE *hMsgQueue,
 			}
 			hMsgQueue->refCount--;
 			/* Reset the event if there are still queued messages */
-			if (!LST_IsEmpty(hMsgQueue->msgUsedList))
+			if (!LST_IsEmpty(hMsgQueue->msgUsedList)) {
+				NTFY_Notify(hMsgQueue->hNtfy,
+					DSP_NODEMESSAGEREADY);
 				SYNC_SetEvent(hMsgQueue->hSyncEvent);
-
+			}
 			/* Exit critical section */
 			(void)SYNC_LeaveCS(hMsgMgr->hSyncCS);
 		}