From 36615e7b1708ca86ba95650425b36f1ff352b13d Mon Sep 17 00:00:00 2001 From: Xing Zheng Date: Wed, 4 Jul 2018 11:52:23 +0800 Subject: [PATCH] ASoC: rk3308_codec: add loopback handle delay property It may take different time for different PAs(AMPs) to open, so the delay we need in loopback needs to be flexible. Change-Id: I76c98b769e382cef08a6e897bb1d527783660f3b Signed-off-by: Xing Zheng --- sound/soc/codecs/rk3308_codec.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sound/soc/codecs/rk3308_codec.c b/sound/soc/codecs/rk3308_codec.c index 2ae3d2a91102..3154bbf6a62f 100644 --- a/sound/soc/codecs/rk3308_codec.c +++ b/sound/soc/codecs/rk3308_codec.c @@ -143,6 +143,7 @@ struct rk3308_codec_priv { u32 loopback_grp; u32 i2s_sdis[ADC_LR_GROUP_MAX]; u32 to_i2s_grps; + u32 delay_loopback_handle_ms; int which_i2s; int irq; int adc_grp0_using_linein; @@ -2765,7 +2766,7 @@ static int rk3308_pcm_trigger(struct snd_pcm_substream *substream, if (capture_str->substream_opened) queue_delayed_work(system_power_efficient_wq, &rk3308->loopback_work, - msecs_to_jiffies(LOOPBACK_HANDLE_MS)); + msecs_to_jiffies(rk3308->delay_loopback_handle_ms)); } else if (cmd == SNDRV_PCM_TRIGGER_STOP) { /* * Switch to dummy bist mode to kick the glitch during disable @@ -3674,6 +3675,10 @@ static int rk3308_platform_probe(struct platform_device *pdev) rk3308->no_deep_low_power = of_property_read_bool(np, "rockchip,no-deep-low-power"); + rk3308->delay_loopback_handle_ms = LOOPBACK_HANDLE_MS; + ret = of_property_read_u32(np, "rockchip,delay-loopback-handle-ms", + &rk3308->delay_loopback_handle_ms); + rk3308->loopback_grp = LOOPBACK_NO_USE; ret = of_property_read_u32(np, "rockchip,loopback-grp", &rk3308->loopback_grp);