From: Shuming Fan shumingf@realtek.com
[ Upstream commit f48d7a1b0bf11d16d8c9f77a5b9c80a82272f625 ]
This patch fixed the random cycle mute issue that occurs during long-time playback.
Signed-off-by: Shuming Fan shumingf@realtek.com Link: https://patch.msgid.link/20250807092432.997989-1-shumingf@realtek.com Signed-off-by: Mark Brown broonie@kernel.org Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
Based on my analysis of the commit and the surrounding code context, here is my assessment:
**Backport Status: YES**
## Extensive Explanation:
This commit should be backported to stable kernel trees for the following reasons:
### 1. **Clear Bug Fix for User-Impacting Issue** The commit explicitly fixes a "random cycle mute issue that occurs during long-time playback." This is a real bug that affects users during normal audio playback operations. Audio randomly muting during playback is a significant quality issue that degrades user experience.
### 2. **Minimal and Contained Changes** The code changes are extremely minimal and low-risk: - In `rt1320_blind_write[]`: Adds one new register write `{ 0xd478, 0xff }` - In `rt1320_vc_blind_write[]`: Changes existing register value from `0x64` to `0xff` for register `0xd478`
These are simple register value modifications in initialization sequences ("blind writes") that are executed during device setup. The changes only affect register `0xd478` with a value change to `0xff`.
### 3. **Hardware-Specific Fix with No Architectural Changes** This is a hardware-specific fix for the Realtek RT1320 audio codec. The changes are confined to: - Hardware initialization sequences - Only affects RT1320 hardware users - No changes to core kernel subsystems or APIs - No structural changes to the driver itself
### 4. **Low Risk of Regression** The changes pose minimal regression risk because: - They only modify initialization register values for specific hardware - The register `0xd478` appears to be related to audio path configuration - Setting it to `0xff` (all bits set) likely enables or properly configures audio paths to prevent muting - These "blind write" sequences are vendor-provided initialization values
### 5. **Recent Driver with Active Bug Fixes** Looking at the commit history, the RT1320 driver is relatively new (added in 2024) and has had several bug fixes: - "fix speaker noise when volume bar is 100%" - "fix the range of patch code address" - This mute issue fix
This indicates the driver is still stabilizing, and important fixes like this should be backported to ensure stable kernel users get a properly functioning driver.
### 6. **Clear Problem Description** The commit message clearly describes the problem (random cycle mute during long playback) and the solution is straightforward (adjust register initialization values). This makes it easy for stable maintainers to understand the fix's purpose and validate its correctness.
The commit meets all the stable kernel criteria: it fixes a real bug, is small and contained, has minimal risk, and improves hardware functionality without introducing new features or architectural changes.
sound/soc/codecs/rt1320-sdw.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/codecs/rt1320-sdw.c b/sound/soc/codecs/rt1320-sdw.c index 015cc710e6dc..d6d54168cccd 100644 --- a/sound/soc/codecs/rt1320-sdw.c +++ b/sound/soc/codecs/rt1320-sdw.c @@ -109,6 +109,7 @@ static const struct reg_sequence rt1320_blind_write[] = { { 0x0000d540, 0x01 }, { 0xd172, 0x2a }, { 0xc5d6, 0x01 }, + { 0xd478, 0xff }, };
static const struct reg_sequence rt1320_vc_blind_write[] = { @@ -159,7 +160,7 @@ static const struct reg_sequence rt1320_vc_blind_write[] = { { 0xd471, 0x3a }, { 0xd474, 0x11 }, { 0xd475, 0x32 }, - { 0xd478, 0x64 }, + { 0xd478, 0xff }, { 0xd479, 0x20 }, { 0xd47a, 0x10 }, { 0xd47c, 0xff },