File 0007-rate-dynamic-update-avail_min-on-slave.patch of Package alsa.openSUSE_Leap_42.2_Update
From ff1f669df4b05da3c44dc4a79ce00233fe9de9b7 Mon Sep 17 00:00:00 2001
From: Andreas Pape <apape@de.adit-jv.com>
Date: Mon, 19 Dec 2016 12:37:51 +0900
Subject: [PATCH 07/43] rate: dynamic update avail_min on slave
Signed-off-by: Andreas Pape <apape@de.adit-jv.com>
Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
src/pcm/pcm_plugin.c | 4 ++--
src/pcm/pcm_plugin.h | 3 +++
src/pcm/pcm_rate.c | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
--- a/src/pcm/pcm_plugin.c
+++ b/src/pcm/pcm_plugin.c
@@ -535,8 +535,8 @@ static int snd_pcm_plugin_status(snd_pcm
return 0;
}
-static int snd_pcm_plugin_may_wait_for_avail_min(snd_pcm_t *pcm,
- snd_pcm_uframes_t avail)
+int snd_pcm_plugin_may_wait_for_avail_min(snd_pcm_t *pcm,
+ snd_pcm_uframes_t avail)
{
if (pcm->stream == SND_PCM_STREAM_CAPTURE &&
pcm->access != SND_PCM_ACCESS_RW_INTERLEAVED &&
--- a/src/pcm/pcm_plugin.h
+++ b/src/pcm/pcm_plugin.h
@@ -50,6 +50,8 @@ typedef struct {
/* make local functions really local */
#define snd_pcm_plugin_init \
snd1_pcm_plugin_init
+#define snd_pcm_plugin_may_wait_for_avail_min \
+ snd1_pcm_plugin_may_wait_for_avail_min
#define snd_pcm_plugin_fast_ops \
snd1_pcm_plugin_fast_ops
#define snd_pcm_plugin_undo_read_generic \
@@ -64,6 +66,7 @@ typedef struct {
void snd_pcm_plugin_init(snd_pcm_plugin_t *plugin);
snd_pcm_sframes_t snd_pcm_plugin_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t frames);
snd_pcm_sframes_t snd_pcm_plugin_forward(snd_pcm_t *pcm, snd_pcm_uframes_t frames);
+int snd_pcm_plugin_may_wait_for_avail_min(snd_pcm_t *pcm, snd_pcm_uframes_t avail);
extern const snd_pcm_fast_ops_t snd_pcm_plugin_fast_ops;
--- a/src/pcm/pcm_rate.c
+++ b/src/pcm/pcm_rate.c
@@ -1213,7 +1213,7 @@ static const snd_pcm_fast_ops_t snd_pcm_
.poll_descriptors_count = snd_pcm_generic_poll_descriptors_count,
.poll_descriptors = snd_pcm_generic_poll_descriptors,
.poll_revents = snd_pcm_rate_poll_revents,
- .may_wait_for_avail_min = snd_pcm_generic_may_wait_for_avail_min,
+ .may_wait_for_avail_min = snd_pcm_plugin_may_wait_for_avail_min,
};
static const snd_pcm_ops_t snd_pcm_rate_ops = {