• Vinod Koul's avatar
    ALSA: compress: fix drain calls blocking other compress functions · 917f4b5c
    Vinod Koul authored
    The drain and drain_notify callback were blocked by low level driver untill the
    draining was complete. Due to this being invoked with big fat mutex held, others
    ops like reading timestamp, calling pause, drop were blocked.
    So to fix this we add a new snd_compr_drain_notify() API. This would be required
    to be invoked by low level driver when drain or partial drain has been completed
    by the DSP. Thus we make the drain and partial_drain callback as non blocking
    and driver returns immediately after notifying DSP.
    The waiting is done while relasing the lock so that other ops can go ahead.
    Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
    CC: stable@vger.kernel.org
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
compress_offload.c 25.7 KB