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

Lars-Peter Clausen
2014-04-03T13:31:05Z

On 04/03/2014 11:53 AM, Mark Brown wrote:
> On Thu, Apr 03, 2014 at 11:47:15AM +0200, Takashi Iwai wrote:
>
>> I'm a bit late in the game, but I feel a bit uneasy through looking
>> at the whole changes. My primary question is, whether do we really
>> need to share the same struct soc_enum for the onehot type? What
>> makes hard to use a struct soc_enum_onehot for them? You need
>> different individual get/put for each type. We may still need to
>> change soc_dapm_update stuff, but it's different from sharing
>> soc_enum.
>
> Indeed, I had thought this was where the discussion was heading - not
> looked at this version of the patch yet.
>

It would be nice, but it also requires some slight restructuring. The issue
we have right now is that there is strictly speaking a bit of a layering
violation. The DAPM widgets should not need to know how the kcontrols that
are attached to the widget do their IO. What we essentially do in
dapm_connect_mux() (and also dapm_connect_mixer) is an open-coded version of
the controls get handler. Replacing that by calling the get handler instead
should allow us to use different structs for enums and onehot enums.

- Lars