[alsa-devel] [PATCH v2 4/4] ASoC: mt8183: fix audio playback slowly after playback during bootup
Yingjoe Chen
yingjoe.chen at mediatek.com
Sat Oct 5 08:07:31 CEST 2019
On Fri, 2019-09-27 at 18:31 +0800, Jiaxin Yu wrote:
> Before regmap_reinit_cache we must reset audio regs as default values.
> So we use reset controller unit(toprgu) to reset audio hw.
>
> Signed-off-by: Jiaxin Yu <jiaxin.yu at mediatek.com>
This one looks good to me. You could add this if you want
Reviewed-by: Yingjoe Chen <yingjoe.chen at mediatek.com>
Joe.C
> ---
> sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c b/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c
> index 4a31106d3471..721632386a50 100644
> --- a/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c
> +++ b/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c
> @@ -11,6 +11,7 @@
> #include <linux/of.h>
> #include <linux/of_address.h>
> #include <linux/pm_runtime.h>
> +#include <linux/reset.h>
>
> #include "mt8183-afe-common.h"
> #include "mt8183-afe-clk.h"
> @@ -1089,6 +1090,7 @@ static int mt8183_afe_pcm_dev_probe(struct platform_device *pdev)
> struct mtk_base_afe *afe;
> struct mt8183_afe_private *afe_priv;
> struct device *dev;
> + struct reset_control *rstc;
> int i, irq_id, ret;
>
> afe = devm_kzalloc(&pdev->dev, sizeof(*afe), GFP_KERNEL);
> @@ -1126,6 +1128,19 @@ static int mt8183_afe_pcm_dev_probe(struct platform_device *pdev)
> return ret;
> }
>
> + rstc = devm_reset_control_get(dev, "audiosys");
> + if (IS_ERR(rstc)) {
> + ret = PTR_ERR(rstc);
> + dev_err(dev, "could not get audiosys reset:%d\n", ret);
> + return ret;
> + }
> +
> + ret = reset_control_reset(rstc);
> + if (ret) {
> + dev_err(dev, "failed to trigger audio reset:%d\n", ret);
> + return ret;
> + }
> +
> /* enable clock for regcache get default value from hw */
> afe_priv->pm_runtime_bypass_reg_ctl = true;
> pm_runtime_get_sync(&pdev->dev);
More information about the Alsa-devel
mailing list