diff options
author | Kevin Hilman <khilman@linaro.org> | 2015-10-20 11:26:19 -0700 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2015-10-20 11:26:19 -0700 |
commit | e4bec9707eb7446e0cd1961f91e6948819327933 (patch) | |
tree | 3a46cdedb7896b1d7f535d6ae62c010bcea0cce8 /sound/soc/soc-dapm.c | |
parent | 717ba9113b87cae180d7c9f2078e76359bc9bcca (diff) | |
parent | 2b090d9432eb704e3d718a0a05a3d62437b1863f (diff) |
Merge branch 'linux-linaro-lsk-v3.18' into linux-linaro-lsk-v3.18-android
Diffstat (limited to 'sound/soc/soc-dapm.c')
-rw-r--r-- | sound/soc/soc-dapm.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 943e6a9a6319..34e5d8253c24 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c @@ -1854,6 +1854,7 @@ static ssize_t dapm_widget_power_read_file(struct file *file, size_t count, loff_t *ppos) { struct snd_soc_dapm_widget *w = file->private_data; + struct snd_soc_card *card = w->dapm->card; char *buf; int in, out; ssize_t ret; @@ -1863,6 +1864,8 @@ static ssize_t dapm_widget_power_read_file(struct file *file, if (!buf) return -ENOMEM; + mutex_lock(&card->dapm_mutex); + in = is_connected_input_ep(w, NULL); dapm_clear_walk_input(w->dapm, &w->sources); out = is_connected_output_ep(w, NULL); @@ -1905,6 +1908,8 @@ static ssize_t dapm_widget_power_read_file(struct file *file, p->sink->name); } + mutex_unlock(&card->dapm_mutex); + ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret); kfree(buf); @@ -2165,11 +2170,15 @@ static ssize_t dapm_widget_show(struct device *dev, struct snd_soc_pcm_runtime *rtd = dev_get_drvdata(dev); int i, count = 0; + mutex_lock(&rtd->card->dapm_mutex); + for (i = 0; i < rtd->num_codecs; i++) { struct snd_soc_codec *codec = rtd->codec_dais[i]->codec; count += dapm_widget_show_codec(codec, buf + count); } + mutex_unlock(&rtd->card->dapm_mutex); + return count; } |