[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20180105191836.GA111999@google.com>
Date: Fri, 5 Jan 2018 11:18:36 -0800
From: Matthias Kaehlcke <mka@...omium.org>
To: Mark Brown <broonie@...nel.org>
Cc: Arnaud Pouliquen <arnaud.pouliquen@...com>,
Liam Girdwood <lgirdwood@...il.com>,
Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>,
Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
"alsa-devel@...a-project.org" <alsa-devel@...a-project.org>,
"devicetree@...r.kernel.org" <devicetree@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Bhumika Goyal <bhumirks@...il.com>,
huang lin <hl@...k-chips.com>,
Brian Norris <briannorris@...omium.org>,
Dylan Reid <dgreid@...omium.org>
Subject: Re: [PATCH] ASoC: codecs: dmic: Use channel map for configs with a
single mic
El Fri, Jan 05, 2018 at 12:04:55PM +0000 Mark Brown ha dit:
> On Fri, Jan 05, 2018 at 11:45:43AM +0100, Arnaud Pouliquen wrote:
>
> > >> + num-channels = <1>;
>
> > In your implementation seems not linked to hardware but software...
>
> > DMIC driver description specifies the channels_max to 8 channels.
> > I suppose that it is used for DMIC codecs that integrate filters and are
> > connected to CPU DAI with I2S/PCM links. But it can be also used for
> > DMIC connected to CPU DAI with a SPI link (in this case decimation
> > filter in on Soc side).
>
> The intention with the DMIC CODEC is that it's used when the CPU
> directly has PDM inputs and the DMICs are just directly wired to it
> (stereo is obviously the norm here but some SoCs may bunch things up
> further for use with mic arrays).
>
> > If we continue to support both use cases, specify the number of channels
> > seems reasonable but this should be use to change the max channel
> > constraint, not to declare a control.
>
> Yes, that would seem the most obvious thing - it's how we handle things
> like CPU DAIs that support very high channel counts when connected to
> stereo CODECs for example. It's not obvious why we'd use a channel map
> here instead.
Thanks for the feedback!
I experimented initially with changing channels_max, but overwriting
dmic_dai.capture.channels_max didn't seem right since it would affect
other possible instances of the codec. I overlooked that this can be
avoided by passing a *copy* with adjusted channels_max to
snd_soc_register_codec().
Matthias
Powered by blists - more mailing lists