On Fri, Apr 04, 2014 at 05:12:10PM -0700, Arun Shamanna Lakshmi wrote: > 1. Modify soc_enum struct to handle pointers for reg and mask > 2. Add dapm get and put APIs for multi register one hot encoded mux > 3. Update snd_soc_dapm_update struct to support multiple reg update
> If you've got several changes like this it's probably a sign that the > change ought to be split into a patch series. > I'm still not seeing any handling of the issues with having invalid > configurations written to the device during the process of carrying out > multi register updates; I did raise this with one of the earlier > versions but don't recall any response. To handle the invalid configurations in case of a multi register update, the 'not selected registers' are cleared first and only then 'selected register' is set. This is ensured by initializing the snd_soc_dapm_update structure in the right order inside put_value_enum_onehot API. > I also think I agree with Takashi on this one - trying to implement this > without adding an abstraction for the control values is making the code > more complex than it needs to be, all the conditional paths for _ONEHOT > aren't pretty (and don't use switches which is the usual idiom for this > stuff if it's not indirected via functions). To summarize, I need to add get and put function pointers inside kcontrol structure and use them during dapm_connect_mux and dapm_set_mixer_path_status. Then, a separate soc_enum_onehot structure can be used along with the above patch. I can probably first submit a patch for adding abstraction to control values and then submit the change for soc_enum_onehot. Please correct me if my understanding is wrong. -- View this message in context: http://linux-kernel.2935.n7.nabble.com/PATCH-ASoC-dapm-Add-support-for-multi-register-mux-tp835209p837198.html Sent from the Linux Kernel mailing list archive at Nabble.com. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/