• Santosh Mardi's avatar
    ASoC: core: Update ALSA core to issue restart in underrun. · dec3f44a
    Santosh Mardi authored
    
    When compressed and pcm session is started the buffer pull will
    Be from the DSP, in mmap mode for the scenario Hardware pointer
    Is same as application pointer implies application has not filled the
    Buffer to be send to DSP, and platform driver has to break and restart
    The de queue process when the application has sufficient buffers.
    
    When hardware pointer is same as application pointer it is an under run
    Scenario where the ALSA framework has to trigger the under run and in HAL
    The session has to re-prepare and re-triggered. based on the stop
    Threshold, but in our system the stop threshold is INT_MAX which
    Indicates that under run is not triggered in practical cases.
    
    We have a brodcast usecase in which the mentioned under run case
    Is hit mulitple times, and every time re-prepare and re-trigger will be
    Expensive
    
    Update the ASoC core framework to restart de queue process stopped
    By platform Driver when the under run is hit, based on the available
    Buffer and render flag, so the System will recover from the hang state.
    
    To restart de queue process the ASoC core will be calling the restart
    Callback registered by platform driver and this callback will be running in
    Atomic context.
    
    Change-Id: Ic9ea05a0dc6246346e9913493232882e2f5447d1
    Signed-off-by: default avatarSantosh Mardi <gsantosh@codeaurora.org>
    dec3f44a
pcm_native.c 94.6 KB