[alsa-devel] [PATCH v2] ASoC: Tegra machine ASoC driver for boards using ALC5332 codec

Leon Romanovsky leon at leon.nu
Tue Dec 13 07:36:07 CET 2011


On Mon, Dec 12, 2011 at 22:20, Stephen Warren <swarren at nvidia.com> wrote:
> Leon Romanovsky wrote at Monday, December 12, 2011 12:46 PM:
>> At this stage only Toshiba AC100/Dynabook supported.
>
>> +static int tegra_alc5632_asoc_hw_params(struct snd_pcm_substream *substream,
>> +                                     struct snd_pcm_hw_params *params)
> ...
>> +     srate = params_rate(params);
>> +     switch (srate) {
>> +     case 64000:
>> +     case 88200:
>> +     case 96000:
>> +             mclk = 128 * srate;
>> +             break;
>> +     default:
>> +             mclk = 512 * srate;
>> +             break;
>> +     }
>> +     /* FIXME: Codec only requires >= 3MHz if OSR==0 */
>> +     while (mclk < 6000000)
>> +             mclk *= 2;
>
> I think you should replace all that with:
>
> mclk = 512 * srate;
>
> The reason being:
>
> * The codec only supports up to 48KHz as far as I can tell, thus making
> the special-case in the switch statement never fire, and irrelevant.
>
> * The codec wants 512Fs, not min(6MHz, 512Fs) as far as I can tell, so
> the extra while loop at the end is going to set the wrong rate for 8KHz
> and 11.025KHz.
You are right, I'll check it at the spec.

>> +static struct snd_soc_jack_gpio tegra_alc5632_hs_jack_gpio = {
>> +     .name = "Headset Detect",
>> +     .report = SND_JACK_HEADSET,
>> +     .debounce_time = 150,
>> +};
> ...
>> +static int tegra_alc5632_asoc_init(struct snd_soc_pcm_runtime *rtd)
>> +{
> ...
>> +     snd_soc_jack_add_gpios(&tegra_alc5632_hs_jack,
>> +                     1, &tegra_alc5632_hs_jack_gpio);
>
> Since tegra_alc5632_hs_jack_gpio is never set, doesn't this end up using
> GPIO 0 as the headset detect, which most likely is something completely
> unrelated to audio.
This is initial support of board file, at the coming patch set, I'll
update board-paz00-pinmux.c [1] with audio related pins and I'll add
platform device support.
I think It is easy for review in this way.

[1] http://git.kernel.org/?p=linux/kernel/git/olof/tegra.git;a=blob;f=arch/arm/mach-tegra/board-paz00-pinmux.c;h=126892cfddce1ce222b0251f1bac972cb16b6db1;hb=refs/heads/for-next

> Other than those two things, this looks fine to me.

>
> --
> nvpublic
>



-- 
Leon Romanovsky | Independent Linux Consultant
        www.leon.nu | leon at leon.nu


More information about the Alsa-devel mailing list