Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 305528
b: refs/heads/master
c: be09ad9
h: refs/heads/master
v: v3
  • Loading branch information
Liam Girdwood authored and Mark Brown committed Apr 1, 2012
1 parent b47b120 commit 909b0a5
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4edbb34577c98297f958f131e093a150b9f3226f
refs/heads/master: be09ad90e17b79fdb0d513a31e814ff4d42e3dff
1 change: 1 addition & 0 deletions trunk/include/sound/soc-dai.h
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ struct snd_soc_dai {

struct snd_soc_dapm_widget *playback_widget;
struct snd_soc_dapm_widget *capture_widget;
struct snd_soc_dapm_context dapm;

/* DAI DMA data */
void *playback_dma_data;
Expand Down
14 changes: 14 additions & 0 deletions trunk/sound/soc/soc-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1074,6 +1074,7 @@ static int soc_probe_platform(struct snd_soc_card *card,
{
int ret = 0;
const struct snd_soc_platform_driver *driver = platform->driver;
struct snd_soc_dai *dai;

platform->card = card;
platform->dapm.card = card;
Expand All @@ -1087,6 +1088,14 @@ static int soc_probe_platform(struct snd_soc_card *card,
snd_soc_dapm_new_controls(&platform->dapm,
driver->dapm_widgets, driver->num_dapm_widgets);

/* Create DAPM widgets for each DAI stream */
list_for_each_entry(dai, &dai_list, list) {
if (dai->dev != platform->dev)
continue;

snd_soc_dapm_new_dai_widgets(&platform->dapm, dai);
}

if (driver->probe) {
ret = driver->probe(platform);
if (ret < 0) {
Expand Down Expand Up @@ -1222,9 +1231,12 @@ static int soc_probe_dai_link(struct snd_soc_card *card, int num, int order)
/* probe the cpu_dai */
if (!cpu_dai->probed &&
cpu_dai->driver->probe_order == order) {
cpu_dai->dapm.card = card;
if (!try_module_get(cpu_dai->dev->driver->owner))
return -ENODEV;

snd_soc_dapm_new_dai_widgets(&cpu_dai->dapm, cpu_dai);

if (cpu_dai->driver->probe) {
ret = cpu_dai->driver->probe(cpu_dai);
if (ret < 0) {
Expand Down Expand Up @@ -3242,6 +3254,7 @@ int snd_soc_register_dai(struct device *dev,

dai->dev = dev;
dai->driver = dai_drv;
dai->dapm.dev = dev;
if (!dai->driver->ops)
dai->driver->ops = &null_dai_ops;

Expand Down Expand Up @@ -3318,6 +3331,7 @@ int snd_soc_register_dais(struct device *dev,
dai->id = dai->driver->id;
else
dai->id = i;
dai->dapm.dev = dev;
if (!dai->driver->ops)
dai->driver->ops = &null_dai_ops;

Expand Down

0 comments on commit 909b0a5

Please sign in to comment.