From: Shengjiu Wang Date: Wed, 19 May 2021 10:26:14 +0000 (+0800) Subject: LF-3794: ASoC: fsl_xcvr: Fix hang issue after suspend with RX recording X-Git-Tag: rel_imx_5.10.35_2.0.0-somdevices.0~69 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=691d502714ccbaaf92eaf490aadf1f1d74267ad5;p=linux.git LF-3794: ASoC: fsl_xcvr: Fix hang issue after suspend with RX recording There is a unhandled interrupt after suspend, which cause endless interrupt when system resume, so system will hang. Disable all interrupt in runtime suspend callback. Signed-off-by: Shengjiu Wang Reviewed-by: Viorel Suman Acked-by: Jason Liu --- diff --git a/sound/soc/fsl/fsl_xcvr.c b/sound/soc/fsl/fsl_xcvr.c index 8331113ae2d8..4fbd40aa3f29 100644 --- a/sound/soc/fsl/fsl_xcvr.c +++ b/sound/soc/fsl/fsl_xcvr.c @@ -1272,6 +1272,11 @@ static __maybe_unused int fsl_xcvr_runtime_suspend(struct device *dev) struct fsl_xcvr *xcvr = dev_get_drvdata(dev); int ret; + ret = regmap_update_bits(xcvr->regmap, FSL_XCVR_EXT_IER0, + FSL_XCVR_IRQ_EARC_ALL, 0); + if (ret < 0) + dev_err(dev, "Failed to clear IER0: %d\n", ret); + /* Assert M0+ reset */ ret = regmap_update_bits(xcvr->regmap, FSL_XCVR_EXT_CTRL, FSL_XCVR_EXT_CTRL_CORE_RESET,