All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: Daniel Mack <zonque@gmail.com>, broonie@kernel.org
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH] ASoC: mcasp: don't override bclk divider if it was provided by the machine
Date: Wed, 16 Jul 2014 15:13:29 +0300	[thread overview]
Message-ID: <53C66C69.3080301@ti.com> (raw)
In-Reply-To: <1405512281-8188-1-git-send-email-zonque@gmail.com>

On 07/16/2014 03:04 PM, Daniel Mack wrote:
> If a machine driver provides an BCLK divider to the McASP driver, skip the
> automatic calculation.
> 
> This fixes machines on which the physical sample transport always works
> in 32 bits, even though not all of them are actually used.
> snd_soc_params_to_bclk() will fail to address such cases properly.

Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>

> 
> Signed-off-by: Daniel Mack <zonque@gmail.com>
> ---
>  sound/soc/davinci/davinci-mcasp.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
> index 0518f27..dbeb4fd 100644
> --- a/sound/soc/davinci/davinci-mcasp.c
> +++ b/sound/soc/davinci/davinci-mcasp.c
> @@ -64,6 +64,7 @@ struct davinci_mcasp {
>  	u8	num_serializer;
>  	u8	*serial_dir;
>  	u8	version;
> +	u8	bclk_div;
>  	u16	bclk_lrclk_ratio;
>  	int	streams;
>  
> @@ -420,6 +421,7 @@ static int davinci_mcasp_set_clkdiv(struct snd_soc_dai *dai, int div_id, int div
>  			       ACLKXDIV(div - 1), ACLKXDIV_MASK);
>  		mcasp_mod_bits(mcasp, DAVINCI_MCASP_ACLKRCTL_REG,
>  			       ACLKRDIV(div - 1), ACLKRDIV_MASK);
> +		mcasp->bclk_div = div;
>  		break;
>  
>  	case 2:		/* BCLK/LRCLK ratio */
> @@ -722,8 +724,11 @@ static int davinci_mcasp_hw_params(struct snd_pcm_substream *substream,
>  	int period_size = params_period_size(params);
>  	int ret;
>  
> -	/* If mcasp is BCLK master we need to set BCLK divider */
> -	if (mcasp->bclk_master) {
> +	/*
> +	 * If mcasp is BCLK master, and a BCLK divider was not provided by
> +	 * the machine driver, we need to calculate the ratio.
> +	 */
> +	if (mcasp->bclk_master && mcasp->bclk_div == 0) {
>  		unsigned int bclk_freq = snd_soc_params_to_bclk(params);
>  		if (mcasp->sysclk_freq % bclk_freq != 0) {
>  			dev_err(mcasp->dev, "Can't produce required BCLK\n");
> 


-- 
Péter

  reply	other threads:[~2014-07-16 12:13 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-16 12:04 [PATCH] ASoC: mcasp: don't override bclk divider if it was provided by the machine Daniel Mack
2014-07-16 12:13 ` Peter Ujfalusi [this message]
2014-07-16 21:18 ` Mark Brown
2014-07-16 21:19   ` Daniel Mack

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53C66C69.3080301@ti.com \
    --to=peter.ujfalusi@ti.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=zonque@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.