mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 04:48:04 +09:00
ALSA: ctxfi - Fix SPDIF status retrieval
commit f164753a26 upstream.
SDPIF status retrieval always returned the default settings instead of
the actual ones.
Signed-off-by: Przemyslaw Bruski <pbruskispam@op.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0d2faa172d
commit
6e81878cf3
@@ -566,19 +566,6 @@ static int ct_spdif_get_mask(struct snd_kcontrol *kcontrol,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ct_spdif_default_get(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
unsigned int status = SNDRV_PCM_DEFAULT_CON_SPDIF;
|
||||
|
||||
ucontrol->value.iec958.status[0] = (status >> 0) & 0xff;
|
||||
ucontrol->value.iec958.status[1] = (status >> 8) & 0xff;
|
||||
ucontrol->value.iec958.status[2] = (status >> 16) & 0xff;
|
||||
ucontrol->value.iec958.status[3] = (status >> 24) & 0xff;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ct_spdif_get(struct snd_kcontrol *kcontrol,
|
||||
struct snd_ctl_elem_value *ucontrol)
|
||||
{
|
||||
@@ -586,6 +573,10 @@ static int ct_spdif_get(struct snd_kcontrol *kcontrol,
|
||||
unsigned int status;
|
||||
|
||||
atc->spdif_out_get_status(atc, &status);
|
||||
|
||||
if (status == 0)
|
||||
status = SNDRV_PCM_DEFAULT_CON_SPDIF;
|
||||
|
||||
ucontrol->value.iec958.status[0] = (status >> 0) & 0xff;
|
||||
ucontrol->value.iec958.status[1] = (status >> 8) & 0xff;
|
||||
ucontrol->value.iec958.status[2] = (status >> 16) & 0xff;
|
||||
@@ -629,7 +620,7 @@ static struct snd_kcontrol_new iec958_default_ctl = {
|
||||
.name = SNDRV_CTL_NAME_IEC958("", PLAYBACK, DEFAULT),
|
||||
.count = 1,
|
||||
.info = ct_spdif_info,
|
||||
.get = ct_spdif_default_get,
|
||||
.get = ct_spdif_get,
|
||||
.put = ct_spdif_put,
|
||||
.private_value = MIXER_IEC958_DEFAULT
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user