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

From: Lars-Peter Clausen
Date: Thu Apr 03 2014 - 09:31:43 EST


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
--
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/