diff options
-rw-r--r-- | sound/soc/generic/simple-card.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 89f83b32d86d..797696fc6f12 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c | |||
@@ -123,6 +123,7 @@ static int asoc_simple_card_parse_of(struct device_node *node, | |||
123 | struct asoc_simple_card_info *info, | 123 | struct asoc_simple_card_info *info, |
124 | struct device *dev) | 124 | struct device *dev) |
125 | { | 125 | { |
126 | struct snd_soc_dai_link *dai_link = info->snd_card.dai_link; | ||
126 | struct device_node *np; | 127 | struct device_node *np; |
127 | char *name; | 128 | char *name; |
128 | int ret; | 129 | int ret; |
@@ -145,7 +146,7 @@ static int asoc_simple_card_parse_of(struct device_node *node, | |||
145 | if (np) | 146 | if (np) |
146 | ret = asoc_simple_card_sub_parse_of(np, | 147 | ret = asoc_simple_card_sub_parse_of(np, |
147 | &info->cpu_dai, | 148 | &info->cpu_dai, |
148 | &info->snd_link.cpu_of_node); | 149 | &dai_link->cpu_of_node); |
149 | if (ret < 0) | 150 | if (ret < 0) |
150 | return ret; | 151 | return ret; |
151 | 152 | ||
@@ -155,7 +156,7 @@ static int asoc_simple_card_parse_of(struct device_node *node, | |||
155 | if (np) | 156 | if (np) |
156 | ret = asoc_simple_card_sub_parse_of(np, | 157 | ret = asoc_simple_card_sub_parse_of(np, |
157 | &info->codec_dai, | 158 | &info->codec_dai, |
158 | &info->snd_link.codec_of_node); | 159 | &dai_link->codec_of_node); |
159 | if (ret < 0) | 160 | if (ret < 0) |
160 | return ret; | 161 | return ret; |
161 | 162 | ||
@@ -169,10 +170,10 @@ static int asoc_simple_card_parse_of(struct device_node *node, | |||
169 | GFP_KERNEL); | 170 | GFP_KERNEL); |
170 | sprintf(name, "%s-%s", info->cpu_dai.name, info->codec_dai.name); | 171 | sprintf(name, "%s-%s", info->cpu_dai.name, info->codec_dai.name); |
171 | info->snd_card.name = name; | 172 | info->snd_card.name = name; |
172 | info->snd_link.name = info->snd_link.stream_name = name; | 173 | dai_link->name = dai_link->stream_name = name; |
173 | 174 | ||
174 | /* simple-card assumes platform == cpu */ | 175 | /* simple-card assumes platform == cpu */ |
175 | info->snd_link.platform_of_node = info->snd_link.cpu_of_node; | 176 | dai_link->platform_of_node = dai_link->cpu_of_node; |
176 | 177 | ||
177 | dev_dbg(dev, "card-name : %s\n", name); | 178 | dev_dbg(dev, "card-name : %s\n", name); |
178 | dev_dbg(dev, "platform : %04x\n", info->daifmt); | 179 | dev_dbg(dev, "platform : %04x\n", info->daifmt); |
@@ -191,6 +192,7 @@ static int asoc_simple_card_parse_of(struct device_node *node, | |||
191 | static int asoc_simple_card_probe(struct platform_device *pdev) | 192 | static int asoc_simple_card_probe(struct platform_device *pdev) |
192 | { | 193 | { |
193 | struct asoc_simple_card_info *cinfo; | 194 | struct asoc_simple_card_info *cinfo; |
195 | struct snd_soc_dai_link *dai_link; | ||
194 | struct device_node *np = pdev->dev.of_node; | 196 | struct device_node *np = pdev->dev.of_node; |
195 | struct device *dev = &pdev->dev; | 197 | struct device *dev = &pdev->dev; |
196 | int ret; | 198 | int ret; |
@@ -204,8 +206,9 @@ static int asoc_simple_card_probe(struct platform_device *pdev) | |||
204 | */ | 206 | */ |
205 | cinfo->snd_card.owner = THIS_MODULE; | 207 | cinfo->snd_card.owner = THIS_MODULE; |
206 | cinfo->snd_card.dev = dev; | 208 | cinfo->snd_card.dev = dev; |
207 | cinfo->snd_card.dai_link = &cinfo->snd_link; | 209 | dai_link = &cinfo->snd_link; |
208 | cinfo->snd_card.num_links = 1; | 210 | cinfo->snd_card.dai_link = dai_link; |
211 | cinfo->snd_card.num_links = 1; | ||
209 | 212 | ||
210 | if (np && of_device_is_available(np)) { | 213 | if (np && of_device_is_available(np)) { |
211 | 214 | ||
@@ -233,18 +236,18 @@ static int asoc_simple_card_probe(struct platform_device *pdev) | |||
233 | } | 236 | } |
234 | 237 | ||
235 | cinfo->snd_card.name = cinfo->card; | 238 | cinfo->snd_card.name = cinfo->card; |
236 | cinfo->snd_link.name = cinfo->name; | 239 | dai_link->name = cinfo->name; |
237 | cinfo->snd_link.stream_name = cinfo->name; | 240 | dai_link->stream_name = cinfo->name; |
238 | cinfo->snd_link.platform_name = cinfo->platform; | 241 | dai_link->platform_name = cinfo->platform; |
239 | cinfo->snd_link.codec_name = cinfo->codec; | 242 | dai_link->codec_name = cinfo->codec; |
240 | } | 243 | } |
241 | 244 | ||
242 | /* | 245 | /* |
243 | * init snd_soc_dai_link | 246 | * init snd_soc_dai_link |
244 | */ | 247 | */ |
245 | cinfo->snd_link.cpu_dai_name = cinfo->cpu_dai.name; | 248 | dai_link->cpu_dai_name = cinfo->cpu_dai.name; |
246 | cinfo->snd_link.codec_dai_name = cinfo->codec_dai.name; | 249 | dai_link->codec_dai_name = cinfo->codec_dai.name; |
247 | cinfo->snd_link.init = asoc_simple_card_dai_init; | 250 | dai_link->init = asoc_simple_card_dai_init; |
248 | 251 | ||
249 | snd_soc_card_set_drvdata(&cinfo->snd_card, cinfo); | 252 | snd_soc_card_set_drvdata(&cinfo->snd_card, cinfo); |
250 | 253 | ||