Re: [PATCH] ASoC: dapm: Add support for multi register mux

From: Lars-Peter Clausen
Date: Fri Apr 04 2014 - 03:39:38 EST


On 04/04/2014 09:34 AM, Arun Shamanna Lakshmi wrote:

-----Original Message-----
From: Lars-Peter Clausen [mailto:lars@xxxxxxxxxx]
Sent: Friday, April 04, 2014 12:32 AM
To: Arun Shamanna Lakshmi
Cc: lgirdwood@xxxxxxxxx; broonie@xxxxxxxxxx;
swarren@xxxxxxxxxxxxx; perex@xxxxxxxx; tiwai@xxxxxxx; alsa-
devel@xxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Songhee Baek
Subject: Re: [PATCH] ASoC: dapm: Add support for multi register mux

On 04/03/2014 10:11 PM, Arun Shamanna Lakshmi wrote:
[...]
Here as well, default for bit_pos should be 0.

This means when 'None' of the options are selected, by default, it
enumerates to 0. Since we are using __ffs, BIT(0) of Register-0 also
enumerates to 0. That's the reason why I used just ffs in the first place.
Let me know your opinion. My value table looks like below.

#define MUX_VALUE(npart, nbit) (nbit + 32 * npart)
static const int mux_values[] = {
0,
MUX_VALUE(0, 0),
.
.
.
MUX_VALUE(0, 31),
/* above inputs are for part0 mux */
MUX_VALUE(1, 0),
.
.
.
MUX_VALUE(1, 31),
/* above inputs are for part1 mux */
MUX_VALUE(2, 0),
.
.
.
MUX_VALUE(2, 31),
/* above inputs are for part2 mux */
};

Ok, so having none of the input selected should be a valid user selectable
option?

Yes. If 'None' is selected, it goes and clears the register. So, can we have ffs( )
instead of __ffs( ) ? It would fix this case.

Yes, but you need to make sure to handle it also correctly in the put handler, since all of the registers need to be written to 0 in that case.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/