On 10/14/21 9:53 AM, Takashi Iwai wrote:
Both snd_pcm_delay() and snd_pcm_hwsync() do the almost same thing. The only difference is that the former calculate the delay, so unify them as a code cleanup, and treat NULL delay argument only for hwsync operation.
Also, the patch does a slight code refactoring in snd_pcm_delay(). The initialization of the delay value is done in the caller side now.
I would have done the opposite change, i.e. keep snd_pcm_hwsync() but add an optional delay argument/calculation.
'snd_pcm_delay' doesn't really hint at any hwsync operation.
Just a naming difference really.
Signed-off-by: Takashi Iwai tiwai@suse.de
sound/core/pcm_native.c | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-)
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 46c643db18eb..627b201b6084 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -2932,32 +2932,24 @@ static snd_pcm_sframes_t snd_pcm_forward(struct snd_pcm_substream *substream, return ret; }
-static int snd_pcm_hwsync(struct snd_pcm_substream *substream) -{
- int err;
- snd_pcm_stream_lock_irq(substream);
- err = do_pcm_hwsync(substream);
- snd_pcm_stream_unlock_irq(substream);
- return err;
-}
static int snd_pcm_delay(struct snd_pcm_substream *substream, snd_pcm_sframes_t *delay) { int err;
snd_pcm_sframes_t n = 0;
snd_pcm_stream_lock_irq(substream); err = do_pcm_hwsync(substream);
if (!err)
n = snd_pcm_calc_delay(substream);
- if (delay && !err)
snd_pcm_stream_unlock_irq(substream);*delay = snd_pcm_calc_delay(substream);
- if (!err)
return err;*delay = n;
} +static inline int snd_pcm_hwsync(struct snd_pcm_substream *substream) +{
- return snd_pcm_delay(substream, NULL);
+}
static int snd_pcm_sync_ptr(struct snd_pcm_substream *substream, struct snd_pcm_sync_ptr __user *_sync_ptr) { @@ -3275,7 +3267,7 @@ static int snd_pcm_common_ioctl(struct file *file, return snd_pcm_hwsync(substream); case SNDRV_PCM_IOCTL_DELAY: {
snd_pcm_sframes_t delay;
snd_pcm_sframes_t __user *res = arg; int err;snd_pcm_sframes_t delay = 0;