Merge remote-tracking branch 'asoc/topic/samsung' into asoc-next

This commit is contained in:
Mark Brown
2018-03-28 10:26:30 +08:00
13 changed files with 432 additions and 151 deletions

View File

@@ -4356,6 +4356,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
@@ -4365,7 +4385,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
*/
@@ -4413,14 +4434,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;