lkml.org 
[lkml]   [2008]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [alsa-devel] looping S/PDIF data
    On Thu, 19 Jun 2008, Takashi Iwai wrote:

    > At Wed, 18 Jun 2008 09:24:59 +0200,
    > Rene Herman wrote:
    > >
    > > On 17-06-08 21:55, Pierre Ossman wrote:
    > >
    > > > Ping
    > > >
    > > > On Sat, 31 May 2008 11:26:06 +0200
    > > > Pierre Ossman <drzeus-list@drzeus.cx> wrote:
    > > >
    > > >> I have a minor annoyance with the snd_trident driver that I was hoping
    > > >> you might have a fix for:
    > > >>
    > > >> Pausing the output does not seem to take on the S/PDIF output. Analog
    > > >> outputs properly stop in their tracks, but the S/PDIF port keeps
    > > >> looping the current data buffer, which gives a rather unpleasant end
    > > >> result. :)
    > >
    > > Try the alsa-devel list...
    >
    > Does the patch below help?
    >
    >
    > Takashi
    >
    > diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c
    > index bbcee2c..916d4b8 100644
    > --- a/sound/pci/trident/trident_main.c
    > +++ b/sound/pci/trident/trident_main.c
    > @@ -1593,7 +1593,11 @@ static int snd_trident_trigger(struct snd_pcm_substream *substream,
    > outb(trident->spdif_pcm_ctrl, 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;
    > + val = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL));
    > + if (go)
    > + val |= SPDIF_EN;
    > + else
    > + val &= ~SPDIF_EN;
    > outl(val, TRID_REG(trident, SI_SERIAL_INTF_CTRL));
    > }
    > }

    I don't think that this patch is correct. DMA transfers should be disabled
    by:

    outl(what, TRID_REG(trident, T4D_STOP_B));
    outl(val, TRID_REG(trident, T4D_AINTEN_B));

    lines. Adding &= ~SPDIF_EN can disable output from AC97 to S/PDIF as well.

    Jaroslav

    -----
    Jaroslav Kysela <perex@perex.cz>
    Linux Kernel Sound Maintainer
    ALSA Project, Red Hat, Inc.



    \
     
     \ /
      Last update: 2008-06-19 14:43    [W:0.023 / U:1.228 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site