RE: [PATCH v2 3/4] dsp-bridge: cleanup and remove HW_MBOX_IsFull

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Felipe,

> HW_MBOX_IsFull has many convoluted macros and is used only once. Clean
> it up so it's easier to see what it's actually doing.

-- Is this the reason you added a new function that checks if fifo is full or is there any issue with the existing function ?

Thank you,
Best regards,
Hari

> -----Original Message-----
> From: Felipe Contreras [mailto:felipe.contreras@xxxxxxxxx]
> Sent: Sunday, February 22, 2009 3:32 AM
> To: linux-omap@xxxxxxxxxxxxxxx
> Cc: Hiroshi DOYU; Kanigeri, Hari; ameya.palande@xxxxxxxxx; Felipe
> Contreras
> Subject: [PATCH v2 3/4] dsp-bridge: cleanup and remove HW_MBOX_IsFull
> 
> HW_MBOX_IsFull has many convoluted macros and is used only once. Clean
> it up so it's easier to see what it's actually doing.
> 
> Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx>
> ---
>  drivers/dsp/bridge/hw/hw_mbox.c    |   25 -------------------------
>  drivers/dsp/bridge/hw/hw_mbox.h    |   35 -------------------------------
> ----
>  drivers/dsp/bridge/wmd/tiomap_sm.c |   15 +++++++++------
>  3 files changed, 9 insertions(+), 66 deletions(-)
> 
> diff --git a/drivers/dsp/bridge/hw/hw_mbox.c
> b/drivers/dsp/bridge/hw/hw_mbox.c
> index 2c14ade..31b890a 100644
> --- a/drivers/dsp/bridge/hw/hw_mbox.c
> +++ b/drivers/dsp/bridge/hw/hw_mbox.c
> @@ -104,31 +104,6 @@ HW_STATUS HW_MBOX_MsgWrite(const u32 baseAddress,
> const HW_MBOX_Id_t mailBoxId,
>  	return status;
>  }
> 
> -/* Reads the full status register for mailbox. */
> -HW_STATUS HW_MBOX_IsFull(const u32 baseAddress, const HW_MBOX_Id_t
> mailBoxId,
> -			u32 *const pIsFull)
> -{
> -	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,
> -							(u32)mailBoxId);
> -
> -	/* fill in return parameter */
> -	*pIsFull = (fullStatus & 0xFF);
> -
> -	return status;
> -}
> -
>  /* Gets number of messages in a specified mailbox. */
>  HW_STATUS HW_MBOX_NumMsgGet(const u32 baseAddress, const HW_MBOX_Id_t
> mailBoxId,
>  				u32 *const pNumMsg)
> diff --git a/drivers/dsp/bridge/hw/hw_mbox.h
> b/drivers/dsp/bridge/hw/hw_mbox.h
> index 225fb40..d2981d3 100644
> --- a/drivers/dsp/bridge/hw/hw_mbox.h
> +++ b/drivers/dsp/bridge/hw/hw_mbox.h
> @@ -130,41 +130,6 @@ extern HW_STATUS HW_MBOX_MsgWrite(
>  		  );
> 
>  /*
> -* FUNCTION      : HW_MBOX_IsFull
> -*
> -* INPUTS:
> -*
> -*   Identifier  : baseAddress
> -*   Type	: const u32
> -*   Description : Base Address of instance of Mailbox module
> -*
> -*   Identifier  : mailBoxId
> -*   Type	: const HW_MBOX_Id_t
> -*   Description : Mail Box Sub module Id to check
> -*
> -* OUTPUTS:
> -*
> -*   Identifier  : pIsFull
> -*   Type	: u32 *const
> -*   Description : false means mail box not Full
> -*		 true means mailbox full.
> -*
> -* RETURNS:
> -*
> -*   Type	: ReturnCode_t
> -*   Description : RET_OK	      No errors occured
> -*		 RET_BAD_NULL_PARAM  Address/pointer Paramater was set to
> 0/NULL
> -*		 RET_INVALID_ID      Invalid Id used
> -*
> -* PURPOSE:      : this function reads the full status register for
> mailbox.
> -*/
> -extern HW_STATUS HW_MBOX_IsFull(
> -		      const u32	 baseAddress,
> -		      const HW_MBOX_Id_t   mailBoxId,
> -		      u32 *const	pIsFull
> -		  );
> -
> -/*
>  * FUNCTION      : HW_MBOX_NumMsgGet
>  *
>  * INPUTS:
> diff --git a/drivers/dsp/bridge/wmd/tiomap_sm.c
> b/drivers/dsp/bridge/wmd/tiomap_sm.c
> index 2f381c8..4ad893b 100644
> --- a/drivers/dsp/bridge/wmd/tiomap_sm.c
> +++ b/drivers/dsp/bridge/wmd/tiomap_sm.c
> @@ -156,6 +156,13 @@ DSP_STATUS CHNLSM_DisableInterrupt(struct
> WMD_DEV_CONTEXT *hDevContext)
>  	return status;
>  }
> 
> +#define MAILBOX_FIFOSTATUS(m) (0x80 + 4 * (m))
> +
> +static inline unsigned int fifo_full(void __iomem *mbox_base, int
> mbox_id)
> +{
> +	return __raw_readl(mbox_base + MAILBOX_FIFOSTATUS(mbox_id)) & 0x1;
> +}
> +
>  /*
>   *  ======== CHNLSM_InterruptDSP ========
>   *      Send an interrupt to the DSP processor(s).
> @@ -171,7 +178,6 @@ DSP_STATUS CHNLSM_InterruptDSP(struct WMD_DEV_CONTEXT
> *hDevContext)
>  	u32 opplevel = 0;
>  #endif
>  	HW_STATUS hwStatus;
> -	u32 mbxFull;
>  	struct CFG_HOSTRES resources;
>  	u16 cnt = 10;
>  	u32 temp;
> @@ -214,12 +220,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)
> -			mdelay(1);
> -		else
> +		if (!fifo_full((void __iomem *) resources.dwMboxBase, 0))
>  			break;
> +		mdelay(1);
>  	}
>  	if (!cnt) {
>  		DBG_Trace(DBG_LEVEL7, "Timed out waiting for DSP mailbox \n");
> --
> 1.6.1.3
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux