the problem with the trident driver is definitely the spurious irqs. the driver doesn't print all such spurious interrupts, which is why they don't show up in my logs. when i changed my trace code, its became clear that they definitely occur quite often.
the problem with dropping "spurious" irqs is that they are assymmetric. here's a sample trace: 61600185043063: trident interrupt chn = 0x40000000 61600185055106: trident interrupt chn = 0x80000000 61600185062055: wakeup stream playback with 66 (since capture wake: 644915) 61600185069856: playback poll 2601: avail = 66 61600185073585: capture poll 2679: avail = 2 61600185131556: capture poll 2680: avail = 2 61600185720609: trident interrupt chn = 0x80000000 61600185728104: wakeup stream playback with 130 (since capture wake: 1310964) 61600185736834: trident interrupt chn = 0x40000000 61600186358693: trident interrupt chn = 0x80000000 61600186365864: wakeup stream playback with 193 (since capture wake: 1948724) 61600186374515: trident interrupt chn = 0x40000000 the irqs with chn = 0x80000000 are for the playback channel. the ones with chn = 0x40000000 are for the capture channel. the spurious interrupt was actually for the one at 61600185720609 (playback), but instead, the driver decides that the *next* IRQ (for capture) was spurious (it was only 1.59 samples later!), and does nothing with it. that was the wrong decision, alas :) i can fix this, and i will. patch coming shortly. --p _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel