Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion include/sound/simple_card_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ void asoc_simple_card_clk_disable(struct asoc_simple_dai *dai);
&dai_link->codec_dai_name, \
list_name, cells_name, NULL)
#define asoc_simple_card_parse_platform(node, dai_link, list_name, cells_name) \
asoc_simple_card_parse_dai(node, dai_link->platform, \
asoc_simple_card_parse_dai(node, &dai_link->platform, \
&dai_link->platform_of_node, \
NULL, list_name, cells_name, NULL)
int asoc_simple_card_parse_dai(struct device_node *node,
Expand Down
2 changes: 1 addition & 1 deletion include/sound/soc.h
Original file line number Diff line number Diff line change
Expand Up @@ -925,7 +925,7 @@ struct snd_soc_dai_link {
*/
const char *platform_name;
struct device_node *platform_of_node;
struct snd_soc_dai_link_component *platform;
struct snd_soc_dai_link_component platform;

int id; /* optional ID for machine driver link identification */

Expand Down
4 changes: 3 additions & 1 deletion sound/soc/generic/audio-graph-card.c
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,9 @@ static int asoc_graph_card_probe(struct platform_device *pdev)
for (i = 0; i < num; i++) {
dai_link[i].codecs = &dai_props[i].codecs;
dai_link[i].num_codecs = 1;
dai_link[i].platform = &dai_props[i].platform;
dai_link[i].platform.name = dai_props[i].platform.name;
dai_link[i].platform.of_node = dai_props[i].platform.of_node;
dai_link[i].platform.dai_name = dai_props[i].platform.dai_name;
}

priv->pa_gpio = devm_gpiod_get_optional(dev, "pa", GPIOD_OUT_LOW);
Expand Down
4 changes: 2 additions & 2 deletions sound/soc/generic/simple-card-utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -376,8 +376,8 @@ EXPORT_SYMBOL_GPL(asoc_simple_card_init_dai);
int asoc_simple_card_canonicalize_dailink(struct snd_soc_dai_link *dai_link)
{
/* Assumes platform == cpu */
if (!dai_link->platform->of_node)
dai_link->platform->of_node = dai_link->cpu_of_node;
if (!dai_link->platform.of_node)
dai_link->platform.of_node = dai_link->cpu_of_node;

return 0;

Expand Down
6 changes: 4 additions & 2 deletions sound/soc/generic/simple-card.c
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,9 @@ static int asoc_simple_card_probe(struct platform_device *pdev)
for (i = 0; i < num; i++) {
dai_link[i].codecs = &dai_props[i].codecs;
dai_link[i].num_codecs = 1;
dai_link[i].platform = &dai_props[i].platform;
dai_link[i].platform.name = dai_props[i].platform.name;
dai_link[i].platform.of_node = dai_props[i].platform.of_node;
dai_link[i].platform.dai_name = dai_props[i].platform.dai_name;
}

priv->dai_props = dai_props;
Expand Down Expand Up @@ -439,7 +441,7 @@ static int asoc_simple_card_probe(struct platform_device *pdev)
codecs->name = cinfo->codec;
codecs->dai_name = cinfo->codec_dai.name;

platform = dai_link->platform;
platform = &dai_link->platform;
platform->name = cinfo->platform;

card->name = (cinfo->card) ? cinfo->card : cinfo->name;
Expand Down
18 changes: 7 additions & 11 deletions sound/soc/soc-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -915,7 +915,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card,

/* find one from the set of registered platforms */
for_each_component(component) {
if (!snd_soc_is_matching_component(dai_link->platform,
if (!snd_soc_is_matching_component(&dai_link->platform,
component))
continue;

Expand Down Expand Up @@ -1026,22 +1026,18 @@ static void soc_remove_dai_links(struct snd_soc_card *card)
static int snd_soc_init_platform(struct snd_soc_card *card,
struct snd_soc_dai_link *dai_link)
{
struct snd_soc_dai_link_component *platform = dai_link->platform;
struct snd_soc_dai_link_component *platform = &dai_link->platform;

/*
* FIXME
*
* this function should be removed in the future
*/
/* convert Legacy platform link */
if (!platform) {
platform = devm_kzalloc(card->dev,
sizeof(struct snd_soc_dai_link_component),
GFP_KERNEL);
if (!platform)
return -ENOMEM;
if (dai_link->platform_name || dai_link->platform_of_node) {
dev_dbg(card->dev,
"ASoC: Defaulting to legacy platform data!\n");

dai_link->platform = platform;
platform->name = dai_link->platform_name;
platform->of_node = dai_link->platform_of_node;
platform->dai_name = NULL;
Expand Down Expand Up @@ -1123,7 +1119,7 @@ static int soc_init_dai_link(struct snd_soc_card *card,
* Platform may be specified by either name or OF node, but
* can be left unspecified, and a dummy platform will be used.
*/
if (link->platform->name && link->platform->of_node) {
if (link->platform.name && link->platform.of_node) {
dev_err(card->dev,
"ASoC: Both platform name/of_node are set for %s\n",
link->name);
Expand Down Expand Up @@ -1924,7 +1920,7 @@ static void soc_check_tplg_fes(struct snd_soc_card *card)
dev_err(card->dev, "init platform error");
continue;
}
dai_link->platform->name = component->name;
dai_link->platform.name = component->name;

/* convert non BE into BE */
dai_link->no_pcm = 1;
Expand Down