On 08/03/2016 03:12 AM, Kuninori Morimoto wrote:
Hi Mark
Now codec driver and component driver has duplicated callback function, and snd_soc_register_codec() just copied it to component side.
int snd_soc_register_codec(xxx) { ...
if (codec_drv->controls) { codec->component.controls = codec_drv->controls; codec->component.num_controls = codec_drv->num_controls; } if (codec_drv->dapm_widgets) { codec->component.dapm_widgets = codec_drv->dapm_widgets; codec->component.num_dapm_widgets = codec_drv->num_dapm_widgets; } if (codec_drv->dapm_routes) { codec->component.dapm_routes = codec_drv->dapm_routes; codec->component.num_dapm_routes = codec_drv->num_dapm_routes; } ...
}
I think we can cleanup this duplicated function, similar things happen on .probe, .remove, and platform side too.
I would like to post cleanup patches for these. As 1st step, remove codec duplicate callback.
But my concern is that you hate big-patch-set, and it is almost 70 patches. Can I post these patches to ML ? or should I use git pull request ? or I shouldn't post ?
I left this step out on purpose during the componentization of snd_soc_codec. Simply because it is a huge amount of code churn for very little gain. If you want to do it, go ahead, but I don't think it is worth the effort at this point.
I think of this as the final cleanup step once everything else is in place. E.g. there are lots of CODEC drivers that don't actually need anything CODEC specific, except that we need to know that it is a CODEC so we which direction the capture and playback streams of the DAI go. If we can come up with a generic to represent the DAI streams we could convert all these drivers directly from snd_soc_codec_driver to snd_soc_component_driver.
I'd much rather see this conversion to be part of such an effort.