Skip to content
  • Mike Brady's avatar
    staging: bcm2835-audio: interpolate audio delay · 01c5c561
    Mike Brady authored
    
    
    When the BCM2835 audio output is used, userspace sees a jitter up to 10ms
    in the audio position, aka "delay" -- the number of frames that must
    be output before a new frame would be played.
    Make this a bit nicer for userspace by interpolating the position
    using the CPU clock.
    The overhead is small -- an extra ktime_get() every time a GPU message
    is sent -- and another call and a few calculations whenever the delay
    is sought from userland.
    At 48,000 frames per second, i.e. approximately 20 microseconds per
    frame, it would take a clock inaccuracy of
    20 microseconds in 10 milliseconds -- 2,000 parts per million --
    to result in an inaccurate estimate, whereas
    crystal- or resonator-based clocks typically have an
    inaccuracy of 10s to 100s of parts per million.
    
    Signed-off-by: default avatarMike Brady <mikebrady@eircom.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    01c5c561