• David Dillow's avatar
    sis7019: fix capture issues with multiple periods per buffer · 3a3d5fd1
    David Dillow authored
    When using a timing voice to clock out periods during capture, the
    driver would slowly loose synchronization and never catch up, eventually
    reaching a point where it no longer generated interrupts. To avoid
    this situation, the virtual period clocking was changed to shorten the
    next timing period when our timing voice falls too far behind the
    capture voice. In addition, the first virtual period for the timing
    voice was slightly too short, causing the timing voice to initially be
    ahead of the capture voice.
    
    While tracking down this problem, I noticed that the expected sample
    offset was being incorrectly initialized, causing an overrun to be
    incorrectly reported when the timing voice happened to be perfectly
    synchronized.
    Reported-by: default avatarHans Schou <linux@schou.dk>
    Signed-off-by: default avatarDave Dillow <dave@thedillows.org>
    Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
    3a3d5fd1
sis7019.c 38.9 KB