[Since Jeff isn't the maintainer of the VIA audio driver I'm sending this to linux-kernel] Hi folks, As the subject says, the audio is silenced a few minutes into playing any DVD on my computer, using the via82cxxx_audio driver. My sound chip is: 00:07.5 Multimedia audio controller: VIA Technologies, Inc. AC97 Audio Controller (rev 21) Subsystem: Sigmatel Inc: Unknown device 7600 Flags: medium devsel, IRQ 9 I/O ports at dc00 [size=256] I/O ports at e000 [size=4] I/O ports at e400 [size=4] Capabilities: [c0] Power Management version 2 It is 100% reproducable, and it usually happens around 4-6 minutes into a DVD. After that has happened sounds in other programs will be silent too. To get sound back I have to use a mixer app and just move the master or pcm volume control one notch up and then back. I have defined debugging in the VIA driver, and below is the output written to /var/log/debug from the via driver when the sound silenced in the movie. I have seen it happen once or twice while playing a mp3 too, but with a DVD it's much easier to reproduce. >From /var/log/debug: Dec 28 19:40:35 sledgehammer kernel: via_dsp_write: ENTER, file=ce01c9a0, buffer=082cccf0, count=8192, ppos=0 Dec 28 19:40:35 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:35 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:35 sledgehammer kernel: via_chan_buffer_init: ENTER Dec 28 19:40:35 sledgehammer kernel: via_chan_buffer_init: EXIT Dec 28 19:40:35 sledgehammer kernel: via_dsp_do_write: Flushed block 6, sw_ptr now 7, n_frags now 1 Dec 28 19:40:35 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100048 00000568 009A0000 00001000 Dec 28 19:40:35 sledgehammer kernel: via_dsp_do_write: Flushed block 7, sw_ptr now 8, n_frags now 0 Dec 28 19:40:35 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100048 00000538 009A0000 00001000 Dec 28 19:40:35 sledgehammer kernel: via_dsp_write: EXIT, returning 8192 Dec 28 19:40:35 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:35 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100050, chan->hw_ptr=9 Dec 28 19:40:35 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 1 Dec 28 19:40:35 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:35 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 123420 bytes Dec 28 19:40:35 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:35 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:35 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100058, chan->hw_ptr=10 Dec 28 19:40:35 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 2 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 119424 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETOSPACE Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl_space: EXIT, returning fragstotal=32, fragsize=4096, fragments=2, bytes=8192 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100060, chan->hw_ptr=11 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 3 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: ENTER, file=ce01c9a0, buffer=082cccf0, count=8192, ppos=0 Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 8, sw_ptr now 9, n_frags now 2 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100060 00000E58 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 9, sw_ptr now 10, n_frags now 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100060 00000E28 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: EXIT, returning 8192 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100068, chan->hw_ptr=12 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 2 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 121732 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 120280 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETOSPACE Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl_space: EXIT, returning fragstotal=32, fragsize=4096, fragments=2, bytes=8192 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: ENTER, file=ce01c9a0, buffer=082cccf0, count=8192, ppos=0 Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 10, sw_ptr now 11, n_frags now 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100068 00000350 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 11, sw_ptr now 12, n_frags now 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100068 00000320 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: EXIT, returning 8192 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100070, chan->hw_ptr=13 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 1 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100078, chan->hw_ptr=14 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 2 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 121920 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 120472 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETOSPACE Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl_space: EXIT, returning fragstotal=32, fragsize=4096, fragments=2, bytes=8192 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: ENTER, file=ce01c9a0, buffer=082cccf0, count=8192, ppos=0 Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 12, sw_ptr now 13, n_frags now 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100078 00000268 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 13, sw_ptr now 14, n_frags now 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100078 0000023C 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: EXIT, returning 8192 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100080, chan->hw_ptr=15 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 122920 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100088, chan->hw_ptr=16 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 2 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 121440 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETOSPACE Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl_space: EXIT, returning fragstotal=32, fragsize=4096, fragments=2, bytes=8192 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: ENTER, file=ce01c9a0, buffer=082cccf0, count=8192, ppos=0 Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 14, sw_ptr now 15, n_frags now 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100088 000003EC 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 15, sw_ptr now 16, n_frags now 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100088 000003B8 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: EXIT, returning 8192 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100090, chan->hw_ptr=17 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 123308 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD100098, chan->hw_ptr=18 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 2 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 121780 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETOSPACE Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl_space: EXIT, returning fragstotal=32, fragsize=4096, fragments=2, bytes=8192 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: ENTER, file=ce01c9a0, buffer=082cccf0, count=8192, ppos=0 Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 16, sw_ptr now 17, n_frags now 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100098 00000958 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 17, sw_ptr now 18, n_frags now 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D100098 0000092C 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: EXIT, returning 8192 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD1000A0, chan->hw_ptr=19 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 123744 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD1000A8, chan->hw_ptr=20 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 2 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 122212 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETOSPACE Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl_space: EXIT, returning fragstotal=32, fragsize=4096, fragments=2, bytes=8192 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: ENTER, file=ce01c9a0, buffer=082cccf0, count=8192, ppos=0 Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_set_buffering: EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_init: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 18, sw_ptr now 19, n_frags now 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D1000A8 00000A18 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: Flushed block 19, sw_ptr now 20, n_frags now 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_do_write: regs==80 00 B7 0D1000A8 000009E8 009A0000 00001000 Dec 28 19:40:36 sledgehammer kernel: via_dsp_write: EXIT, returning 8192 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD1000B0, chan->hw_ptr=21 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 1 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 125032 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_interrupt: intr, status32 == 0x00001001 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, status=0x01, hwptr=0xD1000B8, chan->hw_ptr=22 Dec 28 19:40:36 sledgehammer kernel: via_intr_channel: PCM-OUT intr, channel n_frags == 2 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_GETODELAY Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: GETODELAY EXIT, val = 120956 bytes Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: DSP_RESET Dec 28 19:40:36 sledgehammer kernel: via_chan_clear: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_free: ENTER Dec 28 19:40:36 sledgehammer kernel: via_ac97_wait_idle: ENTER/EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_free: EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_clear: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_ioctl: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_release: ENTER Dec 28 19:40:36 sledgehammer kernel: via_dsp_drain_playback: ENTER, nonblock = 0 Dec 28 19:40:36 sledgehammer kernel: via_dsp_drain_playback: EXIT, returning 0 Dec 28 19:40:36 sledgehammer kernel: via_chan_free: ENTER Dec 28 19:40:36 sledgehammer kernel: via_chan_free: EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_free: ENTER Dec 28 19:40:36 sledgehammer kernel: via_ac97_wait_idle: ENTER/EXIT Dec 28 19:40:36 sledgehammer kernel: via_chan_buffer_free: EXIT Dec 28 19:40:36 sledgehammer kernel: via_dsp_release: EXIT, returning 0 Let me know if more data from the log is needed. I have attached some additional system information with this mail. -- André Dahlqvist