diff options
author | Álvaro Fernández Rojas <noltari@gmail.com> | 2019-07-09 20:32:28 +0200 |
---|---|---|
committer | Álvaro Fernández Rojas <noltari@gmail.com> | 2019-07-14 12:44:14 +0200 |
commit | 42954857190b9df16d9d873ecc7f6cc38e013e44 (patch) | |
tree | 98c588f629ff534d458eb0884782ea99672d7634 /target/linux/brcm2708/patches-4.19/950-0441-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch | |
parent | f1875e902d0afb7d9b9e5285b4fd8da7f6c5e30a (diff) | |
download | upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.gz upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.tar.bz2 upstream-42954857190b9df16d9d873ecc7f6cc38e013e44.zip |
brcm2708: add linux 4.19 support
Boot tested on Raspberry Pi B+ (BCM2708) and Raspberry Pi 2 (BCM2709)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0441-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0441-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0441-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch b/target/linux/brcm2708/patches-4.19/950-0441-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch new file mode 100644 index 0000000000..99b9ed23cd --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0441-staging-bcm2835-audio-Remove-redundant-spdif-stream-.patch @@ -0,0 +1,89 @@ +From 5171b87bdf5a98d8d24f9fd7a5f3b6304e8ce5ad Mon Sep 17 00:00:00 2001 +From: Takashi Iwai <tiwai@suse.de> +Date: Tue, 4 Sep 2018 17:58:31 +0200 +Subject: [PATCH 441/703] staging: bcm2835-audio: Remove redundant spdif stream + ctls + +commit ab91e26229eaca2832df51e13c1285aea3be33ab upstream. + +The "IEC958 Playback Stream" control does basically the very same +thing as "IEC958 Playback Default" redundantly. The former should +have been stream-specific and restored after closing the stream, but +we don't do in that way. + +Since it's nothing but confusion, remove this fake. + +Signed-off-by: Takashi Iwai <tiwai@suse.de> +Tested-by: Stefan Wahren <stefan.wahren@i2se.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + .../vc04_services/bcm2835-audio/bcm2835-ctl.c | 51 ------------------- + 1 file changed, 51 deletions(-) + +--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c ++++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-ctl.c +@@ -233,48 +233,6 @@ static int snd_bcm2835_spdif_mask_get(st + return 0; + } + +-static int snd_bcm2835_spdif_stream_info(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_info *uinfo) +-{ +- uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; +- uinfo->count = 1; +- return 0; +-} +- +-static int snd_bcm2835_spdif_stream_get(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_value *ucontrol) +-{ +- struct bcm2835_chip *chip = snd_kcontrol_chip(kcontrol); +- int i; +- +- mutex_lock(&chip->audio_mutex); +- +- for (i = 0; i < 4; i++) +- ucontrol->value.iec958.status[i] = +- (chip->spdif_status >> (i * 8)) & 0xff; +- +- mutex_unlock(&chip->audio_mutex); +- return 0; +-} +- +-static int snd_bcm2835_spdif_stream_put(struct snd_kcontrol *kcontrol, +- struct snd_ctl_elem_value *ucontrol) +-{ +- struct bcm2835_chip *chip = snd_kcontrol_chip(kcontrol); +- unsigned int val = 0; +- int i, change; +- +- mutex_lock(&chip->audio_mutex); +- +- for (i = 0; i < 4; i++) +- val |= (unsigned int)ucontrol->value.iec958.status[i] << (i * 8); +- change = val != chip->spdif_status; +- chip->spdif_status = val; +- +- mutex_unlock(&chip->audio_mutex); +- return change; +-} +- + static struct snd_kcontrol_new snd_bcm2835_spdif[] = { + { + .iface = SNDRV_CTL_ELEM_IFACE_PCM, +@@ -290,15 +248,6 @@ static struct snd_kcontrol_new snd_bcm28 + .info = snd_bcm2835_spdif_mask_info, + .get = snd_bcm2835_spdif_mask_get, + }, +- { +- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | +- SNDRV_CTL_ELEM_ACCESS_INACTIVE, +- .iface = SNDRV_CTL_ELEM_IFACE_PCM, +- .name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, PCM_STREAM), +- .info = snd_bcm2835_spdif_stream_info, +- .get = snd_bcm2835_spdif_stream_get, +- .put = snd_bcm2835_spdif_stream_put, +- }, + }; + + int snd_bcm2835_new_ctl(struct bcm2835_chip *chip) |