Commit 01e324b4 authored by Takashi Iwai's avatar Takashi Iwai

Merge branch 'fix/asoc' into for-linus

parents 23aebca4 b214f11f
...@@ -21,7 +21,18 @@ config SND_OMAP_SOC_AMS_DELTA ...@@ -21,7 +21,18 @@ config SND_OMAP_SOC_AMS_DELTA
select SND_OMAP_SOC_MCBSP select SND_OMAP_SOC_MCBSP
select SND_SOC_CX20442 select SND_SOC_CX20442
help help
Say Y if you want to add support for SoC audio on Amstrad Delta. Say Y if you want to add support for SoC audio device connected to
a handset and a speakerphone found on Amstrad E3 (Delta) videophone.
Note that in order to get those devices fully supported, you have to
build the kernel with standard serial port driver included and
configured for at least 4 ports. Then, from userspace, you must load
a line discipline #19 on the modem (ttyS3) serial line. The simplest
way to achieve this is to install util-linux-ng and use the included
ldattach utility. This can be started automatically from udev,
a simple rule like this one should do the trick (it does for me):
ACTION=="add", KERNEL=="controlC0", \
RUN+="/usr/sbin/ldattach 19 /dev/ttyS3"
config SND_OMAP_SOC_OSK5912 config SND_OMAP_SOC_OSK5912
tristate "SoC Audio support for omap osk5912" tristate "SoC Audio support for omap osk5912"
......
...@@ -834,6 +834,9 @@ EXPORT_SYMBOL_GPL(snd_soc_resume_device); ...@@ -834,6 +834,9 @@ EXPORT_SYMBOL_GPL(snd_soc_resume_device);
#define soc_resume NULL #define soc_resume NULL
#endif #endif
static struct snd_soc_dai_ops null_dai_ops = {
};
static void snd_soc_instantiate_card(struct snd_soc_card *card) static void snd_soc_instantiate_card(struct snd_soc_card *card)
{ {
struct platform_device *pdev = container_of(card->dev, struct platform_device *pdev = container_of(card->dev,
...@@ -877,6 +880,11 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card) ...@@ -877,6 +880,11 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card)
ac97 = 1; ac97 = 1;
} }
for (i = 0; i < card->num_links; i++) {
if (!card->dai_link[i].codec_dai->ops)
card->dai_link[i].codec_dai->ops = &null_dai_ops;
}
/* If we have AC97 in the system then don't wait for the /* If we have AC97 in the system then don't wait for the
* codec. This will need revisiting if we have to handle * codec. This will need revisiting if we have to handle
* systems with mixed AC97 and non-AC97 parts. Only check for * systems with mixed AC97 and non-AC97 parts. Only check for
...@@ -2329,9 +2337,6 @@ static int snd_soc_unregister_card(struct snd_soc_card *card) ...@@ -2329,9 +2337,6 @@ static int snd_soc_unregister_card(struct snd_soc_card *card)
return 0; return 0;
} }
static struct snd_soc_dai_ops null_dai_ops = {
};
/** /**
* snd_soc_register_dai - Register a DAI with the ASoC core * snd_soc_register_dai - Register a DAI with the ASoC core
* *
......
...@@ -2072,9 +2072,9 @@ int snd_soc_dapm_stream_event(struct snd_soc_codec *codec, ...@@ -2072,9 +2072,9 @@ int snd_soc_dapm_stream_event(struct snd_soc_codec *codec,
} }
} }
} }
mutex_unlock(&codec->mutex);
dapm_power_widgets(codec, event); dapm_power_widgets(codec, event);
mutex_unlock(&codec->mutex);
dump_dapm(codec, __func__); dump_dapm(codec, __func__);
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment