From 89f229947527ffe4848ed9f6f8b39f0e8bfb5de8 Mon Sep 17 00:00:00 2001 From: William Wu Date: Wed, 13 Nov 2019 12:56:20 +0800 Subject: [PATCH] usb: gadget: f_uac1_legacy: set period size and buffer size The default period size is only 64 frames, this will cause usb audio playback with noise via internal audio codec. This patch sets the period size to (snd->rate / 10), and also sets the buffer size to snd->rate. Change-Id: I4a4eb1b4dd79aec65f5c44eacd8a2fa101dfbd1b Signed-off-by: William Wu Signed-off-by: Frank Wang --- drivers/usb/gadget/function/u_uac1_legacy.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/usb/gadget/function/u_uac1_legacy.c b/drivers/usb/gadget/function/u_uac1_legacy.c index 60ae8b2d3f6a..2f149853a91b 100644 --- a/drivers/usb/gadget/function/u_uac1_legacy.c +++ b/drivers/usb/gadget/function/u_uac1_legacy.c @@ -119,6 +119,10 @@ static int playback_default_hw_params(struct gaudio_snd_dev *snd) snd->channels, 0); _snd_pcm_hw_param_set(params, SNDRV_PCM_HW_PARAM_RATE, snd->rate, 0); + _snd_pcm_hw_param_set(params, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, + snd->rate / 10, 0); + _snd_pcm_hw_param_set(params, SNDRV_PCM_HW_PARAM_BUFFER_SIZE, + snd->rate, 0); snd_pcm_kernel_ioctl(substream, SNDRV_PCM_IOCTL_DROP, NULL); snd_pcm_kernel_ioctl(substream, SNDRV_PCM_IOCTL_HW_PARAMS, params);