brcm2708: update linux 4.4 patches to latest version
[openwrt/staging/wigyori.git] / target / linux / brcm2708 / patches-4.4 / 0311-Revert-bcm2835-do-not-require-substream-for-accessin.patch
1 From ba83dd0869f15c33c016de9e061e15cca66327bd Mon Sep 17 00:00:00 2001
2 From: popcornmix <popcornmix@gmail.com>
3 Date: Fri, 29 Apr 2016 17:27:36 +0100
4 Subject: [PATCH] Revert "bcm2835: do not require substream for accessing chmap
5 ctl"
6
7 This reverts commit a05b4815196018c329ea98c24205bc6fa9c097e0.
8 ---
9 sound/arm/bcm2835-ctl.c | 10 +++++++++-
10 1 file changed, 9 insertions(+), 1 deletion(-)
11
12 --- a/sound/arm/bcm2835-ctl.c
13 +++ b/sound/arm/bcm2835-ctl.c
14 @@ -489,6 +489,8 @@ static int snd_bcm2835_chmap_ctl_get(str
15 {
16 struct snd_pcm_chmap *info = snd_kcontrol_chip(kcontrol);
17 bcm2835_chip_t *chip = info->private_data;
18 + unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
19 + struct snd_pcm_substream *substream = snd_pcm_chmap_substream(info, idx);
20 struct cea_channel_speaker_allocation *ch = NULL;
21 int res = 0;
22 int cur = 0;
23 @@ -497,6 +499,11 @@ static int snd_bcm2835_chmap_ctl_get(str
24 if (mutex_lock_interruptible(&chip->audio_mutex))
25 return -EINTR;
26
27 + if (!substream || !substream->runtime) {
28 + res = -ENODEV;
29 + goto unlock;
30 + }
31 +
32 for (i = 0; i < ARRAY_SIZE(channel_allocations); i++) {
33 if (channel_allocations[i].ca_index == chip->cea_chmap)
34 ch = &channel_allocations[i];
35 @@ -514,6 +521,7 @@ static int snd_bcm2835_chmap_ctl_get(str
36 while (cur < 8)
37 ucontrol->value.integer.value[cur++] = SNDRV_CHMAP_NA;
38
39 +unlock:
40 mutex_unlock(&chip->audio_mutex);
41 return res;
42 }
43 @@ -533,7 +541,7 @@ static int snd_bcm2835_chmap_ctl_put(str
44 return -EINTR;
45
46 if (!substream || !substream->runtime) {
47 - /* ignore and return success for the sake of alsactl */
48 + res = -ENODEV;
49 goto unlock;
50 }
51