All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Trimarchi <michael@amarulasolutions.com>
To: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: alsa-devel@alsa-project.org, Mark Brown <broonie@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Jarkko Nikula <jarkko.nikula@bitmer.com>
Subject: Re: [RFC PATCH] ASoC: omap-mcbsp: Add support for highter rate up to 384000
Date: Mon, 12 Aug 2013 17:57:17 +0200	[thread overview]
Message-ID: <520905DD.4050109@amarulasolutions.com> (raw)
In-Reply-To: <520900F0.9080600@ti.com>

Hi

On 08/12/2013 05:36 PM, Peter Ujfalusi wrote:
> On 08/10/2013 10:53 AM, Michael Trimarchi wrote:
>> I found some time but I can't not test this patch now ;) too far from
>> my office. The idea is to check with MAX_BCLK. There are two points
>> that should cover slave and master mode. Is it the right direction?
>> BTW Do you think that is better to have at soc level as a new constraint?
> 
> I would not bother with the bclk check for now. We did not had issues so far
> and 48MHz is quite high anyways for our users so far.

Right now I'm working on 2 device that they need to support
384Khz 32bit stereo playback/recording and next dsd512, but we can skip this test.
Check is only for consistency anyway and it doesn't cost so much in time. I will prepare
a new patch and send without it.

Michael


> 
>>
>> Michael
>>
>> diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
>> index 7483efb..ea95ad2 100644
>> --- a/sound/soc/omap/omap-mcbsp.c
>> +++ b/sound/soc/omap/omap-mcbsp.c
>> @@ -39,7 +39,9 @@
>>  #include "mcbsp.h"
>>  #include "omap-mcbsp.h"
>>  
>> -#define OMAP_MCBSP_RATES	(SNDRV_PCM_RATE_8000_96000)
>> +#define OMAP_MCBSP_MAX_BCLK	48000000
>> +#define OMAP_MCBSP_RATES	(SNDRV_PCM_RATE_8000_192000 |		\
>> +				 SNDRV_PCM_RATE_KNOT)
>>  
>>  #define OMAP_MCBSP_SOC_SINGLE_S16_EXT(xname, xmin, xmax, \
>>  	xhandler_get, xhandler_put) \
>> @@ -225,10 +227,14 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream,
>>  	struct omap_mcbsp *mcbsp = snd_soc_dai_get_drvdata(cpu_dai);
>>  	struct omap_mcbsp_reg_cfg *regs = &mcbsp->cfg_regs;
>>  	struct snd_dmaengine_dai_dma_data *dma_data;
>> -	int wlen, channels, wpf;
>> +	int wlen, channels, wpf, bclk;
>>  	int pkt_size = 0;
>>  	unsigned int format, div, framesize, master;
>>  
>> +	bclk = snd_soc_params_to_bclk(params);
>> +	if (bclk < 0 || bclk > OMAP_MCBSP_MAX_BCLK)
>> +		return -EINVAL;
>> +
>>  	dma_data = snd_soc_dai_get_dma_data(cpu_dai, substream);
>>  	channels = params_channels(params);
>>  
>> @@ -326,7 +332,7 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream,
>>  	/* In McBSP master modes, FRAME (i.e. sample rate) is generated
>>  	 * by _counting_ BCLKs. Calculate frame size in BCLKs */
>>  	master = mcbsp->fmt & SND_SOC_DAIFMT_MASTER_MASK;
>> -	if (master ==	SND_SOC_DAIFMT_CBS_CFS) {
>> +	if (master == SND_SOC_DAIFMT_CBS_CFS) {
>>  		div = mcbsp->clk_div ? mcbsp->clk_div : 1;
>>  		framesize = (mcbsp->in_freq / div) / params_rate(params);
>>  
>> @@ -500,6 +506,9 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
>>  			return -EBUSY;
>>  	}
>>  
>> +	if (freq > OMAP_MCBSP_MAX_BCLK)
>> +		return -EINVAL;
>> +
>>  	mcbsp->in_freq = freq;
>>  	regs->srgr2 &= ~CLKSM;
>>  	regs->pcr0 &= ~SCLKME;
>>>
>>>>
>>>> Michael
>>>>
>>>>>>  	},
>>>>>>  	.capture = {
>>>>>>  		.channels_min = 1,
>>>>>>  		.channels_max = 16,
>>>>>>  		.rates = OMAP_MCBSP_RATES,
>>>>>> +		.rate_min = 8000,
>>>>>> +		.rate_max = 384000,
>>>>>
>>>>> Same here, do not set these.
>>>>>
>>>>>>  		.formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
>>>>>>  	},
>>>>>>  	.ops = &mcbsp_dai_ops,
>>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> Péter
>>>>
>>>
>>>
>>> -- 
>>> Péter
> 
> 

      reply	other threads:[~2013-08-12 15:57 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-07 18:28 [RFC PATCH] ASoC: omap-mcbsp: Add support for highter rate up to 384000 Michael Trimarchi
2013-08-08 10:51 ` Peter Ujfalusi
2013-08-08 11:04   ` Michael Trimarchi
2013-08-09  5:18     ` Peter Ujfalusi
2013-08-09  7:43       ` Michael Trimarchi
2013-08-10  7:53       ` Michael Trimarchi
2013-08-12 15:36         ` Peter Ujfalusi
2013-08-12 15:57           ` Michael Trimarchi [this message]

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=520905DD.4050109@amarulasolutions.com \
    --to=michael@amarulasolutions.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=jarkko.nikula@bitmer.com \
    --cc=lgirdwood@gmail.com \
    --cc=peter.ujfalusi@ti.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.