lkml.org 
[lkml]   [2011]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[26/44] ALSA: ctxfi - Fix SPDIF status retrieval
    2.6.32-longterm review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Przemyslaw Bruski <pbruskispam@op.pl>

    commit f164753a263bfd2daaf3e0273b179de7e099c57d 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>

    ---
    sound/pci/ctxfi/ctmixer.c | 19 +++++--------------
    1 file changed, 5 insertions(+), 14 deletions(-)

    --- a/sound/pci/ctxfi/ctmixer.c
    +++ b/sound/pci/ctxfi/ctmixer.c
    @@ -566,19 +566,6 @@ static int ct_spdif_get_mask(struct snd_
    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_kcont
    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_de
    .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
    };



    \
     
     \ /
      Last update: 2011-03-22 00:17    [W:0.021 / U:150.876 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site