[alsa-devel] [PATCH] ALSA: ASoC: davinci-mcasp: clean ip davinci_hw_common_param()

Michal Bachraty michal.bachraty at streamunlimited.com
Fri Mar 8 16:17:45 CET 2013


On Friday, March 08, 2013 14:19:38 Daniel Mack wrote:
> As pointed of by Vaibhav, commit 2952b27e2 ("ASoC: davinci-mcasp:
> Add support for multichannel playback") duplicated the logic of
> counting the active serializers. That can be avoided by shifting
> the code around a bit.
> 
> Also, drop two unused defines introduced by the same commit.
> 
> Signed-off-by: Daniel Mack <zonque at gmail.com>
> Cc: Michal Bachraty <michal.bachraty at streamunlimited.com>
> Cc: Vaibhav Bedia <vaibhav.bedia at ti.com>
> ---
>  sound/soc/davinci/davinci-mcasp.c | 34 +++++++++++-----------------------
>  1 file changed, 11 insertions(+), 23 deletions(-)
> 
> diff --git a/sound/soc/davinci/davinci-mcasp.c
> b/sound/soc/davinci/davinci-mcasp.c index b386cad..8a9c0ee 100644
> --- a/sound/soc/davinci/davinci-mcasp.c
> +++ b/sound/soc/davinci/davinci-mcasp.c
> @@ -237,8 +237,6 @@
>  #define RXSTATE		BIT(5)
>  #define SRMOD_MASK	3
>  #define SRMOD_INACTIVE	0
> -#define SRMOD_TX	1
> -#define SRMOD_RX	2
> 
>  /*
>   * DAVINCI_MCASP_LBCTL_REG - Loop Back Control Register Bits
> @@ -691,27 +689,6 @@ static int davinci_hw_common_param(struct
> davinci_audio_dev *dev, int stream, }
> 
>  	for (i = 0; i < dev->num_serializer; i++) {
> -		if (dev->serial_dir[i] == TX_MODE)
> -			tx_ser++;
> -		if (dev->serial_dir[i] == RX_MODE)
> -			rx_ser++;
> -	}
> -
> -	if (stream == SNDRV_PCM_STREAM_PLAYBACK)
> -		ser = tx_ser;
> -	else
> -		ser = rx_ser;
> -
> -	if (ser < max_active_serializers) {
> -		dev_warn(dev->dev, "stream has more channels (%d) than are "
> -			"enabled in mcasp (%d)\n", channels, ser * slots);
> -		return -EINVAL;
> -	}
> -
> -	tx_ser = 0;
> -	rx_ser = 0;
> -
> -	for (i = 0; i < dev->num_serializer; i++) {
>  		mcasp_set_bits(dev->base + DAVINCI_MCASP_XRSRCTL_REG(i),
>  					dev->serial_dir[i]);
>  		if (dev->serial_dir[i] == TX_MODE &&
> @@ -730,6 +707,17 @@ static int davinci_hw_common_param(struct
> davinci_audio_dev *dev, int stream, }
>  	}
> 
> +	if (stream == SNDRV_PCM_STREAM_PLAYBACK)
> +		ser = tx_ser;
> +	else
> +		ser = rx_ser;
> +
> +	if (ser < max_active_serializers) {
> +		dev_warn(dev->dev, "stream has more channels (%d) than are "
> +			"enabled in mcasp (%d)\n", channels, ser * slots);
> +		return -EINVAL;
> +	}
> +
>  	if (dev->txnumevt && stream == SNDRV_PCM_STREAM_PLAYBACK) {
>  		if (dev->txnumevt * tx_ser > 64)
>  			dev->txnumevt = 1;

It works fine. Code is also ok.

Michal


More information about the Alsa-devel mailing list