• Jarkko Nikula's avatar
    ASoC: Add support for optional auxiliary dailess codecs · 2eea392d
    Jarkko Nikula authored
    This makes possible to register auxiliary dailess codecs in a machine
    driver. Term dailess is used here for amplifiers and codecs without DAI or
    DAI being unused.
    
    Dailess auxiliary codecs are kept in struct snd_soc_aux_dev and those codecs
    are probed after initializing the DAI links. There are no major differences
    between DAI link codecs and dailess codecs in ASoC core point of view. DAPM
    handles them equally and sysfs and debugfs directories for dailess codecs
    are similar except the pmdown_time node is not created.
    
    Only suspend and resume functions are modified to traverse all probed codecs
    instead of DAI link codecs.
    
    Example below shows a dailess codec registration.
    
    struct snd_soc_aux_dev foo_aux_dev[] = {
    	{
    		.name = "Amp",
    		.codec_name = "codec.2",
    		.init = foo_init2,
    	},
    };
    
    static struct snd_soc_card card = {
    	...
    	.aux_dev = foo_aux_dev,
    	.num_aux_devs = ARRAY_SIZE(foo_aux_dev),
    };
    Signed-off-by: default avatarJarkko Nikula <jhnikula@gmail.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    2eea392d
soc.h 24.7 KB