Messages in this thread | | | Date | Thu, 03 Apr 2014 15:31:58 +0200 | From | Lars-Peter Clausen <> | Subject | Re: [PATCH] ASoC: dapm: Add support for multi register mux |
| |
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
| |