public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Bo Shen <voice.shen@atmel.com>
To: Peter Rosin <peda@axentia.se>
Cc: "'alsa-devel@alsa-project.org'" <alsa-devel@alsa-project.org>,
	"Takashi Iwai" <tiwai@suse.de>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>
Subject: Re: [alsa-devel] [PATCH] ASoC: atmel_ssc_dai: Track playback and capture CMR dividers separately.
Date: Wed, 22 Oct 2014 17:23:01 +0800	[thread overview]
Message-ID: <54477775.7070401@atmel.com> (raw)
In-Reply-To: <05f8e371e0ac40949bfc01b8d86d3c6e@EMAIL.axentia.se>

Hi Peter,

On 10/22/2014 04:33 PM, Peter Rosin wrote:
> The sama5d3xek/wm9804 combo, as implemented in the kernel, has the
> ssc dai in slave mode, and therefore don't need to fiddle with any
> ssc dai dividers (atmel_9804.c :atmel_asoc_wm9804_hw_params() only
> sets things in the wm9804 codec dai driver and leaves the ssc dai to itself).
>
> Instead, try the above code on your code with the ssc dai in master mode
> that you pointed at previously.

Yes, I try the ssc working as master mode.

> https://github.com/Android4SAM/linux-at91/commit/33db8ebd3e75632c482dda271340f4d2adcfd320
>
> If that happens to not hit -EBUSY (which it might not, since the wm9804 codec
> will only allow stereo, so the SNDCTL_DSP_CHANNELS ioctl might not need
> to make any change for any ssc divider) add code to also set a non-default
> sample rate, e.g.:
>
> speed = 22050;
> if (ioctl(fd, SNDCTL_DSP_SPEED, &speed) == -1) {
> 	perror("SNDCTL_DSP_SPEED");
> 	return 1;
> }

with this piece of code, I reproduce your issue.

Now, I know the reason of this issue, work in oss mode, it will set the 
default clock to 8KHz, and then if change to other sample rate, for 
example 48KHz, the div is different, then it reports -EBUSY.

So, I think we won't change the ATMEL_SSC_CMR_DIV to ATMEL_SSC_TCMR_DIV 
and ATMEL_SSC_RCMR_DIV, as it will affect other users. We just deal with 
this situation in ATMEL_SSC_CMR_DIV block, check the direction, if the 
same direction change the div, then accept the change, otherwise, return 
-EBUSY.

>
> Cheers,
> Peter

Best Regards,
Bo Shen

  reply	other threads:[~2014-10-22  9:23 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-20 13:45 [PATCH] ASoC: atmel_ssc_dai: Track playback and capture CMR dividers separately Peter Rosin
2014-10-21  1:54 ` [alsa-devel] " Bo Shen
2014-10-21  7:55   ` Peter Rosin
2014-10-21  9:00     ` Bo Shen
2014-10-21 11:02       ` Peter Rosin
2014-10-21 13:05       ` Peter Rosin
2014-10-22  1:27         ` Bo Shen
2014-10-22  4:47           ` Peter Rosin
2014-10-22  8:09             ` Bo Shen
2014-10-22  8:33               ` Peter Rosin
2014-10-22  9:23                 ` Bo Shen [this message]
2014-10-22 11:42                   ` Peter Rosin

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=54477775.7070401@atmel.com \
    --to=voice.shen@atmel.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peda@axentia.se \
    --cc=tiwai@suse.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox