You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.6 KiB
Diff
90 lines
2.6 KiB
Diff
From a1a77a925422be3f0c48002c2aa6c6d898a37f95 Mon Sep 17 00:00:00 2001
|
|
From: Takashi Iwai <tiwai@suse.de>
|
|
Date: Tue, 4 Sep 2018 17:58:31 +0200
|
|
Subject: [PATCH] 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)
|