Merge remote-tracking branch 'asoc/topic/core' into asoc-next
This commit is contained in:
commit
2914b7004b
|
@ -92,30 +92,21 @@ static int format_register_str(struct snd_soc_codec *codec,
|
|||
int wordsize = min_bytes_needed(codec->driver->reg_cache_size) * 2;
|
||||
int regsize = codec->driver->reg_word_size * 2;
|
||||
int ret;
|
||||
char tmpbuf[len + 1];
|
||||
char regbuf[regsize + 1];
|
||||
|
||||
/* since tmpbuf is allocated on the stack, warn the callers if they
|
||||
* try to abuse this function */
|
||||
WARN_ON(len > 63);
|
||||
|
||||
/* +2 for ': ' and + 1 for '\n' */
|
||||
if (wordsize + regsize + 2 + 1 != len)
|
||||
return -EINVAL;
|
||||
|
||||
sprintf(buf, "%.*x: ", wordsize, reg);
|
||||
buf += wordsize + 2;
|
||||
|
||||
ret = snd_soc_read(codec, reg);
|
||||
if (ret < 0) {
|
||||
memset(regbuf, 'X', regsize);
|
||||
regbuf[regsize] = '\0';
|
||||
} else {
|
||||
snprintf(regbuf, regsize + 1, "%.*x", regsize, ret);
|
||||
}
|
||||
|
||||
/* prepare the buffer */
|
||||
snprintf(tmpbuf, len + 1, "%.*x: %s\n", wordsize, reg, regbuf);
|
||||
/* copy it back to the caller without the '\0' */
|
||||
memcpy(buf, tmpbuf, len);
|
||||
|
||||
if (ret < 0)
|
||||
memset(buf, 'X', regsize);
|
||||
else
|
||||
sprintf(buf, "%.*x", regsize, ret);
|
||||
buf[regsize] = '\n';
|
||||
/* no NUL-termination needed */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -904,12 +895,17 @@ static struct snd_soc_dai *snd_soc_find_dai(
|
|||
{
|
||||
struct snd_soc_component *component;
|
||||
struct snd_soc_dai *dai;
|
||||
struct device_node *component_of_node;
|
||||
|
||||
lockdep_assert_held(&client_mutex);
|
||||
|
||||
/* Find CPU DAI from registered DAIs*/
|
||||
list_for_each_entry(component, &component_list, list) {
|
||||
if (dlc->of_node && component->dev->of_node != dlc->of_node)
|
||||
component_of_node = component->dev->of_node;
|
||||
if (!component_of_node && component->dev->parent)
|
||||
component_of_node = component->dev->parent->of_node;
|
||||
|
||||
if (dlc->of_node && component_of_node != dlc->of_node)
|
||||
continue;
|
||||
if (dlc->name && strcmp(component->name, dlc->name))
|
||||
continue;
|
||||
|
@ -2599,7 +2595,8 @@ static int snd_soc_register_dais(struct snd_soc_component *component,
|
|||
* the same naming style even though those DAIs are not
|
||||
* component-less anymore.
|
||||
*/
|
||||
if (count == 1 && legacy_dai_naming) {
|
||||
if (count == 1 && legacy_dai_naming &&
|
||||
(dai_drv[i].id == 0 || dai_drv[i].name == NULL)) {
|
||||
dai->name = fmt_single_name(dev, &dai->id);
|
||||
} else {
|
||||
dai->name = fmt_multiple_name(dev, &dai_drv[i]);
|
||||
|
@ -3488,11 +3485,16 @@ static int snd_soc_get_dai_name(struct of_phandle_args *args,
|
|||
const char **dai_name)
|
||||
{
|
||||
struct snd_soc_component *pos;
|
||||
struct device_node *component_of_node;
|
||||
int ret = -EPROBE_DEFER;
|
||||
|
||||
mutex_lock(&client_mutex);
|
||||
list_for_each_entry(pos, &component_list, list) {
|
||||
if (pos->dev->of_node != args->np)
|
||||
component_of_node = pos->dev->of_node;
|
||||
if (!component_of_node && pos->dev->parent)
|
||||
component_of_node = pos->dev->parent->of_node;
|
||||
|
||||
if (component_of_node != args->np)
|
||||
continue;
|
||||
|
||||
if (pos->driver->of_xlate_dai_name) {
|
||||
|
|
Loading…
Reference in New Issue