Loading asoc/lahaina.c +45 −1 Original line number Diff line number Diff line Loading @@ -6698,7 +6698,9 @@ static int msm_populate_dai_link_component_of_node( int i, j, index, ret = 0; struct device *cdev = card->dev; struct snd_soc_dai_link *dai_link = card->dai_link; struct device_node *np; struct device_node *np = NULL; int codecs_enabled = 0; struct snd_soc_dai_link_component *codecs_comp = NULL; if (!cdev) { dev_err(cdev, "%s: Sound card device memory NULL\n", __func__); Loading Loading @@ -6782,6 +6784,48 @@ static int msm_populate_dai_link_component_of_node( } } /* In multi-codec scenario, check if codecs are enabled for this platform */ for (i = 0; i < card->num_links; i++) { codecs_enabled = 0; if (dai_link[i].num_codecs > 1) { for (j = 0; j < dai_link[i].num_codecs; j++) { if (!dai_link[i].codecs[j].of_node) continue; np = dai_link[i].codecs[j].of_node; if (!of_device_is_available(np)) { dev_err(cdev, "%s: codec is disabled: %s\n", __func__, np->full_name); dai_link[i].codecs[j].of_node = NULL; continue; } codecs_enabled++; } if (codecs_enabled > 0 && codecs_enabled < dai_link[i].num_codecs) { codecs_comp = devm_kzalloc(cdev, sizeof(struct snd_soc_dai_link_component) * codecs_enabled, GFP_KERNEL); index = 0; for (j = 0; j < dai_link[i].num_codecs; j++) { if(dai_link[i].codecs[j].of_node) { codecs_comp[index].of_node = dai_link[i].codecs[j].of_node; codecs_comp[index].dai_name = dai_link[i].codecs[j].dai_name; codecs_comp[index].name = NULL; index++; } } dai_link[i].codecs = codecs_comp; dai_link[i].num_codecs = codecs_enabled; } } } err: return ret; } Loading Loading
asoc/lahaina.c +45 −1 Original line number Diff line number Diff line Loading @@ -6698,7 +6698,9 @@ static int msm_populate_dai_link_component_of_node( int i, j, index, ret = 0; struct device *cdev = card->dev; struct snd_soc_dai_link *dai_link = card->dai_link; struct device_node *np; struct device_node *np = NULL; int codecs_enabled = 0; struct snd_soc_dai_link_component *codecs_comp = NULL; if (!cdev) { dev_err(cdev, "%s: Sound card device memory NULL\n", __func__); Loading Loading @@ -6782,6 +6784,48 @@ static int msm_populate_dai_link_component_of_node( } } /* In multi-codec scenario, check if codecs are enabled for this platform */ for (i = 0; i < card->num_links; i++) { codecs_enabled = 0; if (dai_link[i].num_codecs > 1) { for (j = 0; j < dai_link[i].num_codecs; j++) { if (!dai_link[i].codecs[j].of_node) continue; np = dai_link[i].codecs[j].of_node; if (!of_device_is_available(np)) { dev_err(cdev, "%s: codec is disabled: %s\n", __func__, np->full_name); dai_link[i].codecs[j].of_node = NULL; continue; } codecs_enabled++; } if (codecs_enabled > 0 && codecs_enabled < dai_link[i].num_codecs) { codecs_comp = devm_kzalloc(cdev, sizeof(struct snd_soc_dai_link_component) * codecs_enabled, GFP_KERNEL); index = 0; for (j = 0; j < dai_link[i].num_codecs; j++) { if(dai_link[i].codecs[j].of_node) { codecs_comp[index].of_node = dai_link[i].codecs[j].of_node; codecs_comp[index].dai_name = dai_link[i].codecs[j].dai_name; codecs_comp[index].name = NULL; index++; } } dai_link[i].codecs = codecs_comp; dai_link[i].num_codecs = codecs_enabled; } } } err: return ret; } Loading