summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2010-12-06 15:36:33 +0100
committerTakashi Iwai <tiwai@suse.de>2010-12-06 15:36:33 +0100
commit9f6b69683bab17100b9e49dc576fe2db87feffa0 (patch)
treec17a9300ae768be22d921477d3de0dcc19fce6d9 /sound
parent695a6c0704ee1994c14f90b9ec389ad87b45e666 (diff)
parent0afc8c733e95642ee9200966081da82564af8f8f (diff)
Merge branch 'topic/asoc' into for-next
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/wm_hubs.c2
-rw-r--r--sound/soc/samsung/smdk_spdif.c4
-rw-r--r--sound/soc/soc-cache.c18
-rw-r--r--sound/soc/soc-core.c6
-rw-r--r--sound/soc/soc-dapm.c4
-rw-r--r--sound/soc/soc-jack.c7
6 files changed, 32 insertions, 9 deletions
diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
index b24ba9fa7ef7..c466982eed23 100644
--- a/sound/soc/codecs/wm_hubs.c
+++ b/sound/soc/codecs/wm_hubs.c
@@ -323,7 +323,7 @@ SOC_DOUBLE_R("Speaker Switch",
SOC_DOUBLE_R("Speaker ZC Switch",
WM8993_SPEAKER_VOLUME_LEFT, WM8993_SPEAKER_VOLUME_RIGHT,
7, 1, 0),
-SOC_DOUBLE_TLV("Speaker Boost Volume", WM8993_SPKOUT_BOOST, 0, 3, 7, 0,
+SOC_DOUBLE_TLV("Speaker Boost Volume", WM8993_SPKOUT_BOOST, 3, 0, 7, 0,
spkboost_tlv),
SOC_ENUM("Speaker Reference", speaker_ref),
SOC_ENUM("Speaker Mode", speaker_mode),
diff --git a/sound/soc/samsung/smdk_spdif.c b/sound/soc/samsung/smdk_spdif.c
index ca779ad1613c..cb2f4d04ab7e 100644
--- a/sound/soc/samsung/smdk_spdif.c
+++ b/sound/soc/samsung/smdk_spdif.c
@@ -28,7 +28,7 @@
static int set_audio_clock_heirachy(struct platform_device *pdev)
{
struct clk *fout_epll, *mout_epll, *sclk_audio0, *sclk_spdif;
- int ret;
+ int ret = 0;
fout_epll = clk_get(NULL, "fout_epll");
if (IS_ERR(fout_epll)) {
@@ -152,8 +152,6 @@ static struct snd_soc_ops smdk_spdif_ops = {
.hw_params = smdk_hw_params,
};
-static struct snd_soc_card smdk;
-
static struct snd_soc_dai_link smdk_dai = {
.name = "S/PDIF",
.stream_name = "S/PDIF PCM Playback",
diff --git a/sound/soc/soc-cache.c b/sound/soc/soc-cache.c
index ff2bc8beddaa..678fd75d4511 100644
--- a/sound/soc/soc-cache.c
+++ b/sound/soc/soc-cache.c
@@ -1533,6 +1533,7 @@ static int snd_soc_flat_cache_init(struct snd_soc_codec *codec)
static const struct snd_soc_cache_ops cache_types[] = {
{
.id = SND_SOC_FLAT_COMPRESSION,
+ .name = "flat",
.init = snd_soc_flat_cache_init,
.exit = snd_soc_flat_cache_exit,
.read = snd_soc_flat_cache_read,
@@ -1541,6 +1542,7 @@ static const struct snd_soc_cache_ops cache_types[] = {
},
{
.id = SND_SOC_LZO_COMPRESSION,
+ .name = "LZO",
.init = snd_soc_lzo_cache_init,
.exit = snd_soc_lzo_cache_exit,
.read = snd_soc_lzo_cache_read,
@@ -1549,6 +1551,7 @@ static const struct snd_soc_cache_ops cache_types[] = {
},
{
.id = SND_SOC_RBTREE_COMPRESSION,
+ .name = "rbtree",
.init = snd_soc_rbtree_cache_init,
.exit = snd_soc_rbtree_cache_exit,
.read = snd_soc_rbtree_cache_read,
@@ -1573,8 +1576,12 @@ int snd_soc_cache_init(struct snd_soc_codec *codec)
mutex_init(&codec->cache_rw_mutex);
codec->cache_ops = &cache_types[i];
- if (codec->cache_ops->init)
+ if (codec->cache_ops->init) {
+ if (codec->cache_ops->name)
+ dev_dbg(codec->dev, "Initializing %s cache for %s codec\n",
+ codec->cache_ops->name, codec->name);
return codec->cache_ops->init(codec);
+ }
return -EINVAL;
}
@@ -1584,8 +1591,12 @@ int snd_soc_cache_init(struct snd_soc_codec *codec)
*/
int snd_soc_cache_exit(struct snd_soc_codec *codec)
{
- if (codec->cache_ops && codec->cache_ops->exit)
+ if (codec->cache_ops && codec->cache_ops->exit) {
+ if (codec->cache_ops->name)
+ dev_dbg(codec->dev, "Destroying %s cache for %s codec\n",
+ codec->cache_ops->name, codec->name);
return codec->cache_ops->exit(codec);
+ }
return -EINVAL;
}
@@ -1657,6 +1668,9 @@ int snd_soc_cache_sync(struct snd_soc_codec *codec)
}
if (codec->cache_ops && codec->cache_ops->sync) {
+ if (codec->cache_ops->name)
+ dev_dbg(codec->dev, "Syncing %s cache for %s codec\n",
+ codec->cache_ops->name, codec->name);
ret = codec->cache_ops->sync(codec);
if (!ret)
codec->cache_sync = 0;
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 78a01014079a..17dcd56a2520 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -33,6 +33,7 @@
#include <linux/slab.h>
#include <sound/ac97_codec.h>
#include <sound/core.h>
+#include <sound/jack.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
@@ -1741,8 +1742,6 @@ static int snd_soc_init_codec_cache(struct snd_soc_codec *codec,
/* override the compress_type if necessary */
if (compress_type && codec->compress_type != compress_type)
codec->compress_type = compress_type;
- dev_dbg(codec->dev, "Cache compress_type for %s is %d\n",
- codec->name, codec->compress_type);
ret = snd_soc_cache_init(codec);
if (ret < 0) {
dev_err(codec->dev, "Failed to set cache compression type: %d\n",
@@ -1753,7 +1752,6 @@ static int snd_soc_init_codec_cache(struct snd_soc_codec *codec,
return 0;
}
-
static void snd_soc_instantiate_card(struct snd_soc_card *card)
{
struct platform_device *pdev = to_platform_device(card->dev);
@@ -3363,7 +3361,9 @@ int snd_soc_register_dais(struct device *dev,
pr_debug("Registered DAI '%s'\n", dai->name);
}
+ mutex_lock(&client_mutex);
snd_soc_instantiate_cards();
+ mutex_unlock(&client_mutex);
return 0;
err:
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 6a29d59dabaf..9af2d8ad0895 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -162,6 +162,10 @@ static int snd_soc_dapm_set_bias_level(struct snd_soc_card *card,
else
dapm->bias_level = level;
}
+ if (ret == 0) {
+ if (card && card->set_bias_level_post)
+ ret = card->set_bias_level_post(card, level);
+ }
trace_snd_soc_bias_level_done(card, level);
diff --git a/sound/soc/soc-jack.c b/sound/soc/soc-jack.c
index 0e9b0710928b..ac5a5bc7375a 100644
--- a/sound/soc/soc-jack.c
+++ b/sound/soc/soc-jack.c
@@ -17,6 +17,7 @@
#include <linux/interrupt.h>
#include <linux/workqueue.h>
#include <linux/delay.h>
+#include <trace/events/asoc.h>
/**
* snd_soc_jack_new - Create a new jack
@@ -64,6 +65,8 @@ void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)
int enable;
int oldstatus;
+ trace_snd_soc_jack_report(jack, mask, status);
+
if (!jack)
return;
@@ -82,6 +85,8 @@ void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask)
if (mask && (jack->status == oldstatus))
goto out;
+ trace_snd_soc_jack_notify(jack, status);
+
list_for_each_entry(pin, &jack->pins, list) {
enable = pin->mask & jack->status;
@@ -210,6 +215,8 @@ static irqreturn_t gpio_handler(int irq, void *data)
struct snd_soc_jack_gpio *gpio = data;
struct device *dev = gpio->jack->codec->card->dev;
+ trace_snd_soc_jack_irq(gpio->name);
+
if (device_may_wakeup(dev))
pm_wakeup_event(dev, gpio->debounce_time + 50);