ALSA: pcm: Skip ack callback without actual appl_ptr update
authorTakashi Iwai <tiwai@suse.de>
Tue, 13 Jun 2017 13:57:28 +0000 (15:57 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 14 Jun 2017 05:44:27 +0000 (07:44 +0200)
commitf8ff2f28ba49fa41a06215ac3187dede347bc9a7
tree7e6c9f57461f824acf91fe45b0f4b2166e9f8c0d
parent4e99151435cb2e88b6d0d49939bf836c35e555a3
ALSA: pcm: Skip ack callback without actual appl_ptr update

We call ack callback whenever appl_ptr gets updated via
pcm_lib_apply_appl_ptr().  There are various code paths to call this
function.  A part of them are for read/write/forward/rewind, where the
appl_ptr is always changed and thus the call of ack is mandatory.
OTOH, another part of code paths are from the explicit user call,
e.g. via SYNC_PTR ioctl.  There, we may receive the same appl_ptr
value, and in such a case, calling ack is obviously superfluous.

This patch adds the check of the given appl_ptr value, and returns
immediately if it's no real update.

Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/pcm_lib.c