On Wed, May 27, 2015 at 09:23:03PM +0200, Lars-Peter Clausen wrote:
Ideally we'd turn the dependency chain the other way around and have a snd_soc_dobj_widget struct which inherits snd_soc_dapm_widget and snd_soc_dobj. In the dobj callbacks you can then still use container_of to get it. This comes at the expense that we have to add a free() callback to snd_soc_dapm_widget. But it opens up the possibility to have other specialized widgets sub-classes. snd_soc_dapm_widget is already rather large given how many instance we have of it and quite a few of the fields are only used by a particular type of widget. Another good candidate for example would be the DAI link widget with all its params fields.
Yeah, I was thinking something along those lines might be good long term but it's definitely a separate thing to getting the topology stuff in and I started worrying about things like multiple inheritance.