]> git.alsa-project.org Git - alsa-lib.git/commitdiff
pcm: hw: minor refactoring for initialization of control data
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Fri, 30 Jun 2017 11:00:26 +0000 (20:00 +0900)
committerTakashi Iwai <tiwai@suse.de>
Fri, 30 Jun 2017 14:34:45 +0000 (16:34 +0200)
At failure of control data mapping, alsa-lib goes to fallback mode. In
this mode, a buffer is kept in user space and executes ioctl(2) with
SNDRV_PCM_IOCTL_SYNC_PTR for the buffer to synchronize the control data.

In current implementation, no helper function is used for initialize
the control data. This commit use an proper helper function instead of
a direct call of ioctl(2).

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
src/pcm/pcm_hw.c

index e0931577088f70be18170b1e780bafddc01e72a4..f03bc589e60e27873b6a8b463391c4b44ec5fc56 100644 (file)
@@ -957,11 +957,9 @@ static int map_status_and_control_data(snd_pcm_t *pcm, bool force_fallback)
        snd_pcm_set_appl_ptr(pcm, &hw->mmap_control->appl_ptr, hw->fd,
                             SNDRV_PCM_MMAP_OFFSET_CONTROL);
        if (hw->mmap_control_fallbacked) {
-               if (ioctl(hw->fd, SNDRV_PCM_IOCTL_SYNC_PTR, hw->sync_ptr) < 0) {
-                       err = -errno;
-                       SYSMSG("SNDRV_PCM_IOCTL_SYNC_PTR failed (%i)", err);
+               err = sync_ptr1(hw, 0);
+               if (err < 0)
                        return err;
-               }
        }
 
        return 0;