Loading include/sound/soc.h +1 −0 Original line number Diff line number Diff line Loading @@ -1807,6 +1807,7 @@ int snd_soc_of_get_dai_name(struct device_node *of_node, int snd_soc_of_get_dai_link_codecs(struct device *dev, struct device_node *of_node, struct snd_soc_dai_link *dai_link); void snd_soc_of_put_dai_link_codecs(struct snd_soc_dai_link *dai_link); int snd_soc_add_dai_link(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link); Loading sound/soc/soc-core.c +23 −9 Original line number Diff line number Diff line Loading @@ -4392,6 +4392,26 @@ int snd_soc_of_get_dai_name(struct device_node *of_node, } EXPORT_SYMBOL_GPL(snd_soc_of_get_dai_name); /* * snd_soc_of_put_dai_link_codecs - Dereference device nodes in the codecs array * @dai_link: DAI link * * Dereference device nodes acquired by snd_soc_of_get_dai_link_codecs(). */ void snd_soc_of_put_dai_link_codecs(struct snd_soc_dai_link *dai_link) { struct snd_soc_dai_link_component *component = dai_link->codecs; int index; for (index = 0; index < dai_link->num_codecs; index++, component++) { if (!component->of_node) break; of_node_put(component->of_node); component->of_node = NULL; } } EXPORT_SYMBOL_GPL(snd_soc_of_put_dai_link_codecs); /* * snd_soc_of_get_dai_link_codecs - Parse a list of CODECs in the devicetree * @dev: Card device Loading @@ -4401,7 +4421,8 @@ EXPORT_SYMBOL_GPL(snd_soc_of_get_dai_name); * Builds an array of CODEC DAI components from the DAI link property * 'sound-dai'. * The array is set in the DAI link and the number of DAIs is set accordingly. * The device nodes in the array (of_node) must be dereferenced by the caller. * The device nodes in the array (of_node) must be dereferenced by calling * snd_soc_of_put_dai_link_codecs() on @dai_link. * * Returns 0 for success */ Loading Loading @@ -4449,14 +4470,7 @@ int snd_soc_of_get_dai_link_codecs(struct device *dev, } return 0; err: for (index = 0, component = dai_link->codecs; index < dai_link->num_codecs; index++, component++) { if (!component->of_node) break; of_node_put(component->of_node); component->of_node = NULL; } snd_soc_of_put_dai_link_codecs(dai_link); dai_link->codecs = NULL; dai_link->num_codecs = 0; return ret; Loading Loading
include/sound/soc.h +1 −0 Original line number Diff line number Diff line Loading @@ -1807,6 +1807,7 @@ int snd_soc_of_get_dai_name(struct device_node *of_node, int snd_soc_of_get_dai_link_codecs(struct device *dev, struct device_node *of_node, struct snd_soc_dai_link *dai_link); void snd_soc_of_put_dai_link_codecs(struct snd_soc_dai_link *dai_link); int snd_soc_add_dai_link(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link); Loading
sound/soc/soc-core.c +23 −9 Original line number Diff line number Diff line Loading @@ -4392,6 +4392,26 @@ int snd_soc_of_get_dai_name(struct device_node *of_node, } EXPORT_SYMBOL_GPL(snd_soc_of_get_dai_name); /* * snd_soc_of_put_dai_link_codecs - Dereference device nodes in the codecs array * @dai_link: DAI link * * Dereference device nodes acquired by snd_soc_of_get_dai_link_codecs(). */ void snd_soc_of_put_dai_link_codecs(struct snd_soc_dai_link *dai_link) { struct snd_soc_dai_link_component *component = dai_link->codecs; int index; for (index = 0; index < dai_link->num_codecs; index++, component++) { if (!component->of_node) break; of_node_put(component->of_node); component->of_node = NULL; } } EXPORT_SYMBOL_GPL(snd_soc_of_put_dai_link_codecs); /* * snd_soc_of_get_dai_link_codecs - Parse a list of CODECs in the devicetree * @dev: Card device Loading @@ -4401,7 +4421,8 @@ EXPORT_SYMBOL_GPL(snd_soc_of_get_dai_name); * Builds an array of CODEC DAI components from the DAI link property * 'sound-dai'. * The array is set in the DAI link and the number of DAIs is set accordingly. * The device nodes in the array (of_node) must be dereferenced by the caller. * The device nodes in the array (of_node) must be dereferenced by calling * snd_soc_of_put_dai_link_codecs() on @dai_link. * * Returns 0 for success */ Loading Loading @@ -4449,14 +4470,7 @@ int snd_soc_of_get_dai_link_codecs(struct device *dev, } return 0; err: for (index = 0, component = dai_link->codecs; index < dai_link->num_codecs; index++, component++) { if (!component->of_node) break; of_node_put(component->of_node); component->of_node = NULL; } snd_soc_of_put_dai_link_codecs(dai_link); dai_link->codecs = NULL; dai_link->num_codecs = 0; return ret; Loading