CVSROOT: /cvs Module name: src Changes by: ratc...@cvs.openbsd.org 2015/07/29 02:06:29
Modified files: sys/dev/pci : azalia.c Log message: Rework buffer position reporting code. - use simpler data structures (makes the code shorter). - if multiple interrupts are missed, call audio(4) as many times as we missed interrupts (unless the pointer wrapped, which this is undetectable, but upper layer handles it) - fetch the link fifos size in the interrupt handler, as, according to the spec it may change dynamically. - certain devices expose the last offset of the link fifo size instead of the fifo size itself; workaround this by incrementing the reported link fifo size if it's odd. Fixes recovery after missed interrupts on asus eeepcs, maybe others. ok deraadt, help from armani@