* [PATCH] ASoC: rt722: reset codec to fix abnormal sound
@ 2026-07-28 9:01 shumingf
2026-07-29 22:25 ` Mark Brown
2026-07-30 12:29 ` Mark Brown
0 siblings, 2 replies; 4+ messages in thread
From: shumingf @ 2026-07-28 9:01 UTC (permalink / raw)
To: broonie, lgirdwood
Cc: linux-sound, lars, flove, oder_chiou, jack.yu, derek.fang,
Shuming Fan
From: Shuming Fan <shumingf@realtek.com>
The audio output may become abnormal after a warm reboot from Windows.
Reset the codec once during hardware initialization to restore it to a known
state and prevent the issue.
BugLink: https://github.com/thesofproject/linux/issues/5845
Signed-off-by: Shuming Fan <shumingf@realtek.com>
---
sound/soc/codecs/rt722-sdca-sdw.c | 4 ++++
sound/soc/codecs/rt722-sdca.c | 14 ++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/sound/soc/codecs/rt722-sdca-sdw.c b/sound/soc/codecs/rt722-sdca-sdw.c
index 05e8e23f1f43..5bc9aed58d14 100644
--- a/sound/soc/codecs/rt722-sdca-sdw.c
+++ b/sound/soc/codecs/rt722-sdca-sdw.c
@@ -114,6 +114,7 @@ static int rt722_sdca_mbq_size(struct device *dev, unsigned int reg)
case 0x2000090 ... 0x2000094:
case 0x20000b1:
case 0x20000b4:
+ case 0x3010000:
case 0x3110000:
case 0x5300000 ... 0x5300300:
case 0x5400002:
@@ -197,15 +198,18 @@ static bool rt722_sdca_volatile_register(struct device *dev, unsigned int reg)
case 0x2000007:
case 0x200000d:
case 0x2000019:
+ case 0x200001a:
case 0x2000020:
case 0x2000030:
case 0x2000046:
case 0x2000067:
case 0x2000084:
case 0x2000086:
+ case 0x3010000:
case 0x3110000:
case 0x5800003:
case 0x5810000:
+ case 0x6100008:
case 0x44011000 ... 0x440115ff:
case 0x44012000:
case 0x44012021:
diff --git a/sound/soc/codecs/rt722-sdca.c b/sound/soc/codecs/rt722-sdca.c
index decf9407ab6d..a26253864d48 100644
--- a/sound/soc/codecs/rt722-sdca.c
+++ b/sound/soc/codecs/rt722-sdca.c
@@ -1851,6 +1851,17 @@ static void rt722_sdca_jack_preset(struct rt722_sdca_priv *rt722)
}
}
+static void rt722_sdca_reset(struct rt722_sdca_priv *rt722)
+{
+ rt722_sdca_index_update_bits(rt722, RT722_VENDOR_REG,
+ RT722_LDO1_CTL, RT722_HIDDEN_REG_SW_RESET,
+ RT722_HIDDEN_REG_SW_RESET);
+ rt722_sdca_index_update_bits(rt722, RT722_VENDOR_HDA_CTL,
+ RT722_HDA_LEGACY_RESET_CTL, 0x1, 0x1);
+ if (rt722->hw_vid == RT722_VA)
+ rt722_sdca_index_write(rt722, RT722_VENDOR_REG, RT722_LDO1_CTL, 0xb091);
+}
+
int rt722_sdca_io_init(struct device *dev, struct sdw_slave *slave)
{
struct rt722_sdca_priv *rt722 = dev_get_drvdata(dev);
@@ -1888,6 +1899,9 @@ int rt722_sdca_io_init(struct device *dev, struct sdw_slave *slave)
rt722->hw_vid = (val & 0x0f00) >> 8;
dev_dbg(&slave->dev, "%s hw_vid=0x%x\n", __func__, rt722->hw_vid);
+ if (!rt722->first_hw_init)
+ rt722_sdca_reset(rt722);
+
rt722_sdca_dmic_preset(rt722);
rt722_sdca_amp_preset(rt722);
rt722_sdca_jack_preset(rt722);
--
2.54.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] ASoC: rt722: reset codec to fix abnormal sound
2026-07-28 9:01 [PATCH] ASoC: rt722: reset codec to fix abnormal sound shumingf
@ 2026-07-29 22:25 ` Mark Brown
2026-07-30 2:47 ` Shuming [范書銘]
2026-07-30 12:29 ` Mark Brown
1 sibling, 1 reply; 4+ messages in thread
From: Mark Brown @ 2026-07-29 22:25 UTC (permalink / raw)
To: shumingf
Cc: lgirdwood, linux-sound, lars, flove, oder_chiou, jack.yu,
derek.fang
[-- Attachment #1: Type: text/plain, Size: 793 bytes --]
On Tue, Jul 28, 2026 at 05:01:11PM +0800, shumingf@realtek.com wrote:
> The audio output may become abnormal after a warm reboot from Windows.
> Reset the codec once during hardware initialization to restore it to a known
> state and prevent the issue.
> @@ -1888,6 +1899,9 @@ int rt722_sdca_io_init(struct device *dev, struct sdw_slave *slave)
> rt722->hw_vid = (val & 0x0f00) >> 8;
> dev_dbg(&slave->dev, "%s hw_vid=0x%x\n", __func__, rt722->hw_vid);
>
> + if (!rt722->first_hw_init)
> + rt722_sdca_reset(rt722);
> +
> rt722_sdca_dmic_preset(rt722);
> rt722_sdca_amp_preset(rt722);
> rt722_sdca_jack_preset(rt722);
Slirhgly separate issue but you probably need a _jack_init() after the
reset - your other devices do that, I think there's some races there.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH] ASoC: rt722: reset codec to fix abnormal sound
2026-07-29 22:25 ` Mark Brown
@ 2026-07-30 2:47 ` Shuming [范書銘]
0 siblings, 0 replies; 4+ messages in thread
From: Shuming [范書銘] @ 2026-07-30 2:47 UTC (permalink / raw)
To: Mark Brown
Cc: lgirdwood@gmail.com, linux-sound@vger.kernel.org, lars@metafoo.de,
Flove(HsinFu), Oder Chiou, Jack Yu,
Derek [方德義]
> > The audio output may become abnormal after a warm reboot from
> Windows.
> > Reset the codec once during hardware initialization to restore it to a
> > known state and prevent the issue.
>
> > @@ -1888,6 +1899,9 @@ int rt722_sdca_io_init(struct device *dev, struct
> sdw_slave *slave)
> > rt722->hw_vid = (val & 0x0f00) >> 8;
> > dev_dbg(&slave->dev, "%s hw_vid=0x%x\n", __func__, rt722->hw_vid);
> >
> > + if (!rt722->first_hw_init)
> > + rt722_sdca_reset(rt722);
> > +
> > rt722_sdca_dmic_preset(rt722);
> > rt722_sdca_amp_preset(rt722);
> > rt722_sdca_jack_preset(rt722);
>
> Slirhgly separate issue but you probably need a _jack_init() after the reset -
> your other devices do that, I think there's some races there.
Understood. I'll add _jack_init() after the reset to avoid its settings being reset by the reset.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] ASoC: rt722: reset codec to fix abnormal sound
2026-07-28 9:01 [PATCH] ASoC: rt722: reset codec to fix abnormal sound shumingf
2026-07-29 22:25 ` Mark Brown
@ 2026-07-30 12:29 ` Mark Brown
1 sibling, 0 replies; 4+ messages in thread
From: Mark Brown @ 2026-07-30 12:29 UTC (permalink / raw)
To: lgirdwood, shumingf
Cc: linux-sound, lars, flove, oder_chiou, jack.yu, derek.fang
On Tue, 28 Jul 2026 17:01:11 +0800, shumingf@realtek.com wrote:
> ASoC: rt722: reset codec to fix abnormal sound
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.2
Thanks!
[1/1] ASoC: rt722: reset codec to fix abnormal sound
https://git.kernel.org/broonie/sound/c/d0ecbedd6a70
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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-30 15:50 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-28 9:01 [PATCH] ASoC: rt722: reset codec to fix abnormal sound shumingf
2026-07-29 22:25 ` Mark Brown
2026-07-30 2:47 ` Shuming [范書銘]
2026-07-30 12:29 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox