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@

Reply via email to