Message ID | 20211001074113.2223-1-derek.fang@realtek.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 04a8374c321db55834d5a9f3a9ceecb04b3cfbf5 |
Headers | show |
Series | [1/2] ASoC: rt5682s: Enable ASRC auto-disable to fix pop during jack plug-in while playback | expand |
On Fri, 1 Oct 2021 15:41:12 +0800, derek.fang@realtek.com wrote: > From: Derek Fang <derek.fang@realtek.com> > > When codec's ASRC was enabled, the DA and AD filters use > the reference clk which tracks the I2S clks. > And if the I2S clks' timing of open and close are not expected, > this patch allows the filters to switch to use sysclk if > ASRC's ref clks disappeared and could fix the below possible issues: > 1. Avoid DA filter to keep surplus samples. > 2. Avoid that AD filter works failed during dapm's power on. > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [1/2] ASoC: rt5682s: Enable ASRC auto-disable to fix pop during jack plug-in while playback commit: 04a8374c321db55834d5a9f3a9ceecb04b3cfbf5 [2/2] ASoC: rt5682s: Fix HP noise caused by SAR mode switch when the system resumes commit: 0b26ca1725fa16a2d28a86f89173f9df2a3fe8d7 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark
diff --git a/sound/soc/codecs/rt5682s.c b/sound/soc/codecs/rt5682s.c index 122adeb7beb1..5ae54a51ff9e 100644 --- a/sound/soc/codecs/rt5682s.c +++ b/sound/soc/codecs/rt5682s.c @@ -1061,6 +1061,9 @@ int rt5682s_sel_asrc_clk_src(struct snd_soc_component *component, RT5682S_FILTER_CLK_SEL_MASK, clk_src << RT5682S_FILTER_CLK_SEL_SFT); } + snd_soc_component_update_bits(component, RT5682S_PLL_TRACK_11, + RT5682S_ASRCIN_AUTO_CLKOUT_MASK, RT5682S_ASRCIN_AUTO_CLKOUT_EN); + return 0; } EXPORT_SYMBOL_GPL(rt5682s_sel_asrc_clk_src); diff --git a/sound/soc/codecs/rt5682s.h b/sound/soc/codecs/rt5682s.h index 55f1febb81e9..59ba4ea3b062 100644 --- a/sound/soc/codecs/rt5682s.h +++ b/sound/soc/codecs/rt5682s.h @@ -994,6 +994,19 @@ #define RT5682S_ASRCIN_FTK_M2_MASK (0x7 << 4) #define RT5682S_ASRCIN_FTK_M2_SFT 4 +/* ASRC Control 11 (0x008c) */ +#define RT5682S_ASRCIN_AUTO_CLKOUT_MASK (0x1 << 5) +#define RT5682S_ASRCIN_AUTO_CLKOUT_EN (0x1 << 5) +#define RT5682S_ASRCIN_AUTO_CLKOUT_DIS (0x0 << 5) +#define RT5682S_ASRCIN_AUTO_RST_MASK (0x1 << 4) +#define RT5682S_ASRCIN_AUTO_RST_EN (0x1 << 4) +#define RT5682S_ASRCIN_AUTO_RST_DIS (0x0 << 4) +#define RT5682S_SEL_LRCK_DET_MASK (0x3) +#define RT5682S_SEL_LRCK_DET_DIV8 (0x3) +#define RT5682S_SEL_LRCK_DET_DIV4 (0x2) +#define RT5682S_SEL_LRCK_DET_DIV2 (0x1) +#define RT5682S_SEL_LRCK_DET_DIV1 (0x0) + /* Depop Mode Control 1 (0x008e) */ #define RT5682S_OUT_HP_L_EN (0x1 << 6) #define RT5682S_OUT_HP_R_EN (0x1 << 5)