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 v3] ASoC: davinci-mcasp: set up channel status bits for S/PDIF mode
Date: Thu, 27 Mar 2014 12:29:10 +0200 [thread overview]
Message-ID: <5333FD76.5030705@ti.com> (raw)
In-Reply-To: <1395916060-16234-1-git-send-email-zonque@gmail.com>
On 03/27/2014 12:27 PM, Daniel Mack wrote:
> In DIT (S/PDIF) mode, program the transmitted user bits to reflect the
> configured sample rate, along with some other details.
>
> Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> ---
> v3 just changes variable names.
>
> sound/soc/davinci/davinci-mcasp.c | 49 +++++++++++++++++++++++++++++++++++++--
> 1 file changed, 47 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
> index 4500cf0..a21a7d4 100644
> --- a/sound/soc/davinci/davinci-mcasp.c
> +++ b/sound/soc/davinci/davinci-mcasp.c
> @@ -27,6 +27,7 @@
> #include <linux/of_platform.h>
> #include <linux/of_device.h>
>
> +#include <sound/asoundef.h>
> #include <sound/core.h>
> #include <sound/pcm.h>
> #include <sound/pcm_params.h>
> @@ -576,8 +577,12 @@ static int mcasp_i2s_hw_param(struct davinci_mcasp *mcasp, int stream)
> }
>
> /* S/PDIF */
> -static int mcasp_dit_hw_param(struct davinci_mcasp *mcasp)
> +static int mcasp_dit_hw_param(struct davinci_mcasp *mcasp,
> + unsigned int rate)
> {
> + u32 cs_value = 0;
> + u8 *cs_bytes = (u8*) &cs_value;
> +
> /* Set the TX format : 24 bit right rotation, 32 bit slot, Pad 0
> and LSB first */
> mcasp_set_bits(mcasp, DAVINCI_MCASP_TXFMT_REG, TXROT(6) | TXSSZ(15));
> @@ -599,6 +604,46 @@ static int mcasp_dit_hw_param(struct davinci_mcasp *mcasp)
> /* Enable the DIT */
> mcasp_set_bits(mcasp, DAVINCI_MCASP_TXDITCTL_REG, DITEN);
>
> + /* Set S/PDIF channel status bits */
> + cs_bytes[0] = IEC958_AES0_CON_NOT_COPYRIGHT;
> + cs_bytes[1] = IEC958_AES1_CON_PCM_CODER;
> +
> + switch (rate) {
> + case 22050:
> + cs_bytes[3] |= IEC958_AES3_CON_FS_22050;
> + break;
> + case 24000:
> + cs_bytes[3] |= IEC958_AES3_CON_FS_24000;
> + break;
> + case 32000:
> + cs_bytes[3] |= IEC958_AES3_CON_FS_32000;
> + break;
> + case 44100:
> + cs_bytes[3] |= IEC958_AES3_CON_FS_44100;
> + break;
> + case 48000:
> + cs_bytes[3] |= IEC958_AES3_CON_FS_48000;
> + break;
> + case 88200:
> + cs_bytes[3] |= IEC958_AES3_CON_FS_88200;
> + break;
> + case 96000:
> + cs_bytes[3] |= IEC958_AES3_CON_FS_96000;
> + break;
> + case 176400:
> + cs_bytes[3] |= IEC958_AES3_CON_FS_176400;
> + break;
> + case 192000:
> + cs_bytes[3] |= IEC958_AES3_CON_FS_192000;
> + break;
> + default:
> + printk(KERN_WARNING "unsupported sampling rate: %d\n", rate);
> + return -EINVAL;
> + }
> +
> + mcasp_set_reg(mcasp, DAVINCI_MCASP_DITCSRA_REG, cs_value);
> + mcasp_set_reg(mcasp, DAVINCI_MCASP_DITCSRB_REG, cs_value);
> +
> return 0;
> }
>
> @@ -634,7 +679,7 @@ static int davinci_mcasp_hw_params(struct snd_pcm_substream *substream,
> return ret;
>
> if (mcasp->op_mode == DAVINCI_MCASP_DIT_MODE)
> - ret = mcasp_dit_hw_param(mcasp);
> + ret = mcasp_dit_hw_param(mcasp, params_rate(params));
> else
> ret = mcasp_i2s_hw_param(mcasp, substream->stream);
>
>
--
Péter
next prev parent reply other threads:[~2014-03-27 10:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-27 10:27 [PATCH v3] ASoC: davinci-mcasp: set up channel status bits for S/PDIF mode Daniel Mack
2014-03-27 10:29 ` Peter Ujfalusi [this message]
2014-03-27 13:18 ` Mark Brown
2014-06-18 15:14 ` Daniel Mack
2014-06-18 17:56 ` Mark Brown
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=5333FD76.5030705@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox