From patchwork Thu Feb 26 01:42:46 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Guzman Lugo, Fernando" X-Patchwork-Id: 8874 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n1Q1gt63007429 for ; Thu, 26 Feb 2009 01:42:55 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753121AbZBZBmz (ORCPT ); Wed, 25 Feb 2009 20:42:55 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753360AbZBZBmz (ORCPT ); Wed, 25 Feb 2009 20:42:55 -0500 Received: from devils.ext.ti.com ([198.47.26.153]:41359 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753121AbZBZBmy convert rfc822-to-8bit (ORCPT ); Wed, 25 Feb 2009 20:42:54 -0500 Received: from dlep95.itg.ti.com ([157.170.170.107]) by devils.ext.ti.com (8.13.7/8.13.7) with ESMTP id n1Q1glan018069; Wed, 25 Feb 2009 19:42:52 -0600 Received: from dlee73.ent.ti.com (localhost [127.0.0.1]) by dlep95.itg.ti.com (8.13.8/8.13.8) with ESMTP id n1Q1glQk010673; Wed, 25 Feb 2009 19:42:47 -0600 (CST) Received: from dlee06.ent.ti.com ([157.170.170.11]) by dlee73.ent.ti.com ([157.170.170.88]) with mapi; Wed, 25 Feb 2009 19:42:46 -0600 From: "Guzman Lugo, Fernando" To: "linux-omap@vger.kernel.org" CC: Felipe Contreras Date: Wed, 25 Feb 2009 19:42:46 -0600 Subject: [UPDATE][PATCH][OMAPZOOM] DSPBRIDGE: Remove unnecessary checks in HW_MBOX_IsFull function Thread-Topic: [UPDATE][PATCH][OMAPZOOM] DSPBRIDGE: Remove unnecessary checks in HW_MBOX_IsFull function Thread-Index: AcmXs4Yus2NXL+q0SWuahlMa7BMPpA== Message-ID: <496565EC904933469F292DDA3F1663E60287751A02@dlee06.ent.ti.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US MIME-Version: 1.0 Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org Hi, I have updated the patch base on Felipe's patches. From db89674b7316d7490e71c131091758eb7ef0eca2 Mon Sep 17 00:00:00 2001 From: Fernando Guzman Lugo Date: Wed, 25 Feb 2009 19:27:41 -0600 Subject: [PATCH] DSPBRIDGE: Remove unnecessary checks in HW_MBOX_IsFull function This patch removes some unnecesarry checks in HW_MBOX_IsFull function Signed-off-by: Guzman Lugo Fernando --- drivers/dsp/bridge/hw/hw_mbox.c | 22 ++-------------------- drivers/dsp/bridge/hw/hw_mbox.h | 6 ++---- drivers/dsp/bridge/wmd/tiomap_sm.c | 14 ++++---------- 3 files changed, 8 insertions(+), 34 deletions(-) diff --git a/drivers/dsp/bridge/hw/hw_mbox.c b/drivers/dsp/bridge/hw/hw_mbox.c index bc61d64..3a539f5 --- a/drivers/dsp/bridge/hw/hw_mbox.c +++ b/drivers/dsp/bridge/hw/hw_mbox.c @@ -105,28 +105,10 @@ HW_STATUS HW_MBOX_MsgWrite(const u32 baseAddress, const HW_MBOX_Id_t mailBoxId, } /* Reads the full status register for mailbox. */ -HW_STATUS HW_MBOX_IsFull(const u32 baseAddress, const HW_MBOX_Id_t mailBoxId, - u32 *const pIsFull) +inline bool HW_MBOX_IsFull(const u32 baseAddress, const HW_MBOX_Id_t mailBoxId) { - HW_STATUS status = RET_OK; - u32 fullStatus; - - /* Check input parameters */ - CHECK_INPUT_PARAM(baseAddress, 0, RET_BAD_NULL_PARAM, RES_MBOX_BASE + - RES_INVALID_INPUT_PARAM); - CHECK_INPUT_PARAM(pIsFull, NULL, RET_BAD_NULL_PARAM, RES_MBOX_BASE + - RES_INVALID_INPUT_PARAM); - CHECK_INPUT_RANGE_MIN0(mailBoxId, HW_MBOX_ID_MAX, RET_INVALID_ID, - RES_MBOX_BASE + RES_INVALID_INPUT_PARAM); - - /* read the is full status parameter for Mailbox */ - fullStatus = MLBMAILBOX_FIFOSTATUS___0_15FifoFullMBmRead32(baseAddress, + return MLBMAILBOX_FIFOSTATUS___0_15FifoFullMBmRead32(baseAddress, (u32)mailBoxId); - - /* fill in return parameter */ - *pIsFull = (fullStatus & 0xFF); - - return status; } /* Gets number of messages in a specified mailbox. */ diff --git a/drivers/dsp/bridge/hw/hw_mbox.h b/drivers/dsp/bridge/hw/hw_mbox.h index 225fb40..50a3746 --- a/drivers/dsp/bridge/hw/hw_mbox.h +++ b/drivers/dsp/bridge/hw/hw_mbox.h @@ -158,11 +158,9 @@ extern HW_STATUS HW_MBOX_MsgWrite( * * PURPOSE: : this function reads the full status register for mailbox. */ -extern HW_STATUS HW_MBOX_IsFull( +extern inline bool HW_MBOX_IsFull( const u32 baseAddress, - const HW_MBOX_Id_t mailBoxId, - u32 *const pIsFull - ); + const HW_MBOX_Id_t mailBoxId); /* * FUNCTION : HW_MBOX_NumMsgGet diff --git a/drivers/dsp/bridge/wmd/tiomap_sm.c b/drivers/dsp/bridge/wmd/tiomap_sm.c index edc3bcf..2843788 --- a/drivers/dsp/bridge/wmd/tiomap_sm.c +++ b/drivers/dsp/bridge/wmd/tiomap_sm.c @@ -178,9 +178,8 @@ DSP_STATUS CHNLSM_InterruptDSP(struct WMD_DEV_CONTEXT *hDevContext) #endif #endif HW_STATUS hwStatus; - u32 mbxFull; struct CFG_HOSTRES resources; - u16 cnt = 10; + u16 cnt = 1000; u32 temp; /* We are waiting indefinitely here. This needs to be fixed in the * second phase */ @@ -241,14 +240,9 @@ DSP_STATUS CHNLSM_InterruptDSP(struct WMD_DEV_CONTEXT *hDevContext) pDevContext->dwBrdState = BRD_RUNNING; } - while (--cnt) { - hwStatus = HW_MBOX_IsFull(resources.dwMboxBase, - MBOX_ARM2DSP, &mbxFull); - if (mbxFull) - UTIL_Wait(1000); /* wait for 1 ms) */ - else - break; - } + while (--cnt && HW_MBOX_IsFull(resources.dwMboxBase, MBOX_ARM2DSP)) + udelay(1); + if (!cnt) { DBG_Trace(DBG_LEVEL7, "Timed out waiting for DSP mailbox \n"); status = WMD_E_TIMEOUT;