Re: [PATCH v3 7/8] ASoC: wm8998: Initial WM8998 codec driver

Richard Fitzgerald
2015-05-06T09:24:14Z

On Tue, May 05, 2015 at 10:59:34PM +0100, Mark Brown wrote:
> On Tue, May 05, 2015 at 02:31:29PM +0100, Richard Fitzgerald wrote:
>
> > We can't really tell people what the selection does because that depends on
> > the external hardware. The A setting might be a headset mic, or a line in,
> > or a builtin mic...
>
> > All we can do is say what the selection is called generically by the codec.
> > So take the IN1L signal, on the codec it has two inputs "A" and "B". The
> > IN1L Mux control has two settings "A" and "B". That seems clear.
>
> So you're saying that you've got a mux on a single physical input which
> has two inputs? Are you sure that this is actually a mux and not some
> sort of mode setting that should be in platform data or DT - what do
> these settinngs actually correspond to? The routes in the driver look
> like there's two physical pins for each one of IN1L/R which the device
> can switch between for some reason which does correspond to a mux but
> that'd more normally be named IN1AL or similar.
>

No, I'm just saying I don't see how calling the mux positions "IN1AL"
is any clearer than calling them "A" and "B". The "IN1AL" names of the
DAPM widgets is purely an internal detail that you wouldn't see through
the ALSA interface anyway so they don't relate any more closely to what
Joe user is seeing in the control list. The IN1L mux is for IN1L
so including that information in the mux position is redundant. For me
the real benefit of the "A"/"B" naming is that if you're reading through
a configuration script and saw something like

'IN1L Mux' = 'B'
'IN1R Mux' = 'B'

It's much more readably obvious that both channels are set the same
rather than

'IN1L Mux' = 'IN1BL'
'IN1R Mux' = 'IN1BR'

The second version doesn't tell you any more information than the first
but makes it harder to scan so you have to read more carefully to check
the settings

> Though if the left and right side need to be set to the same thing
> (which IIRC a previous version had code to check for and you did mention
> in your mail) all the time then why are there two separate muxes anyway?

They only need to be set the same if the "A" input is set to digital mic
mode because that uses pins from both the left and right channel to
run the single digital interface. If the A input is analogue the two
channels are independant so the left/right muxes can be set to A or B
inputs independantly.