lkml.org 
[lkml]   [2008]   [Jul]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 37/62] ALSA: trident - pause s/pdif output

    2.6.26 -stable review patch. If anyone has any objections, please let
    us know.

    ------------------
    From: Pierre Ossman <drzeus@drzeus.cx>

    Commit 981bcead3f2279a1ec6fb5f2c57aff79ed61a700 upstream.

    Stop the S/PDIF DMA engine and output when the device is told to pause.
    It will keep on looping the current buffer contents if this isn't done.

    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
    Tested-by: Rene Herman <rene.herman@gmail.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Jaroslav Kysela <perex@perex.cz>
    Cc: Chuck Ebbert <cebbert@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    sound/pci/trident/trident_main.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    --- a/sound/pci/trident/trident_main.c
    +++ b/sound/pci/trident/trident_main.c
    @@ -1590,7 +1590,10 @@ static int snd_trident_trigger(struct sn
    if (spdif_flag) {
    if (trident->device != TRIDENT_DEVICE_ID_SI7018) {
    outl(trident->spdif_pcm_bits, TRID_REG(trident, NX_SPCSTATUS));
    - outb(trident->spdif_pcm_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
    + val = trident->spdif_pcm_ctrl;
    + if (!go)
    + val &= ~(0x28);
    + outb(val, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
    } else {
    outl(trident->spdif_pcm_bits, TRID_REG(trident, SI_SPDIF_CS));
    val = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) | SPDIF_EN;
    --


    \
     
     \ /
      Last update: 2008-07-31 02:21    [W:0.020 / U:59.624 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site