CVSROOT: /cvs
Module name: src
Changes by: [email protected] 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@