Skip to content

[BUG] Razer Blade 16 2026 (RZ09-0581, PTL): RT1320 woofers pop instead of playing after BIOS 3.01→4.01; amp resumes with FUNCTION_HAS_BEEN_RESET (0x41) so VC preset is skipped #5956

Description

@mediawaffle

Hardware / software

  • Razer Blade 16 (2026) RZ09-0581, SKU RZ09-05819EN9, Panther Lake. SSID 1A58:3010
  • BIOS 4.01 (08/20/2026), EC 1.4
  • SoundWire link 3: RT721-SDCA (sdw:0:3:025d:0721:01) + RT1320 (sdw:0:3:025d:1320:01, dev_id 0x6981, version_id 2 = VC)
  • Kernel 7.3.0-rc4 (CachyOS), same symptom on 7.2.6/7.2.7/7.2.8
  • SOF 2.15.0.1 (also reproduced on 2.14.1.1), sof-firmware 2026.09, linux-firmware 20260916
  • Machine driver: No SoundWire machine driver found for the ACPI-reported configuration → default machine driver with function topologies (sof-sdca-jack-id0, sof-sdca-1amp-id2, sof-ptl-dmic-2ch-id3, sof-hdmi-pcm5-id5)

Symptom

With BIOS 3.01 the built-in speakers sounded normal on Linux. After updating to BIOS 4.01 (the only change; same kernel, SOF, and topology, and the audio init logs match), the RT1320-driven woofers produce pops/crackle and no music. The RT721-driven pair plays normally, so the sound is thin. Muting rt1320-1 OT23 L/R stops the popping. Windows sounds correct on 4.01; Razer's 4.01 release reportedly fixed intermittent "muffled" audio on Windows. Wired headphones are fine.

What was ruled out

  • Bus data path. During playback, RT1320 DP1 and RT721 DP3 are programmed identically: ChannelEn 0x3, word length 24, SampleCtrl 0xC7 (200-bit interval), Offset1 1, HCtrl 0x33, same in both banks. Bus runs mclk 19.2 MHz, curr_freq 4.8 MHz, 50×4 frame. The working amp and the failing amp receive the same bits.
  • ACPI codec description. The RT1320 _DSD lives in a Razer SSDT (St11Ssdt, OEM rev 0x20250612) that is unchanged across the update. Of 62 ACPI tables, only the DSDT changed (0x37678 → 0x375D6). The DSDT's SNDW _INI fills the link properties (intel-quirk-mask, intel-autonomous-clock-stop, clock and frame fields) from NVS (SWQ3, ACS3, SSF3, …).
  • BIOS setup defaults. PchSetup is byte-identical between the 3.01 and 4.01 images. The only defaults change is one SaSetup byte.
  • EC/ME were not updated (BIOS region only).

Findings

  1. On runtime resume the amp reports it was reset, but not that it needs initialization.
    rt1320_io_init amp func_status=0x41     # DEVICE_NEWLY_ATTACHED | FUNCTION_HAS_BEEN_RESET
    rt1320_io_init version_id=2, dev_id=0x6981
    rt1320_io_init hw_init complete          # ~0.7 ms after start
    
    rt1320_io_init() re-runs rt1320_vc_preset() (including the MCU patch load and the KR0_INT_READY wait) only when FUNCTION_NEEDS_INITIALIZATION (BIT 5) is set. With 0x41 it skips straight to the regcache replay. Hypothesis: after BIOS 4.01 the amp is actually reset across link power-down (via platform power, or a clock-stop or quirk change through the DSDT/NVS link properties) without asserting NEEDS_INITIALIZATION. A cache replay without the ordered preset, delays, and MCU patch then leaves the amp half-initialized. Not yet confirmed by an A/B listening test (see open items).
  2. No DSP firmware and no ACPI calibration. None of realtek,temperature_{l,r}_calib, realtek,r0_{l,r}_calib, or realtek,dspfw-name is present in the ACPI tables (same as [BUG] Lenovo Yoga 7 2-in-1 16IPH11 (83TE, Panther Lake): no SoundWire machine driver match for rt721 + rt1320 on link 3, no UCM, rt1320 without DSP FW / calibration #5943). 0x3fc2bfc4 = 0x00 during playback. The DMI-named file realtek/rt1320/rt1320_Razer_Blade_RZ09-05819EN9.dat does not exist. The Windows driver package (RtkSdcaXuRazer.inf, 10.0.361.1) ships RTKDAT_1A58.dat / RTKDAT_GENERAL.dat in a different (obfuscated) format. This was also true on BIOS 3.01 when audio was fine, so it is probably not the regression itself. The woofers are nevertheless running without Razer tuning or protection.
  3. Slow controller runtime resume. A cold open of the speaker PCM spends ~5.8 s with 0000:00:1f.3 in resuming (from D3hot). The SoundWire master and both codecs become active in the same 10 ms tick after it.

Questions for Realtek / Intel

  • Should rt1320_io_init() also re-run the preset on FUNCTION_HAS_BEEN_RESET (BIT 6), not only on FUNCTION_NEEDS_INITIALIZATION?
  • Is a Razer RT1320 DSP firmware / tuning file (rt1320_Razer_Blade_RZ09-05819EN9.dat) available for linux-firmware?
  • Does this platform need a machine-driver / quirk entry (SSID 1A58:3010) instead of the generic function-topology fallback?

Open items

  • A/B test not run yet: keep 0000:00:1f.3 runtime-active from boot (no suspend/reset cycle) and check whether the woofers play correctly. I've held off because the popping may damage the woofers. I'll run it at low volume if you think it's the right discriminator. The woofers are currently muted via OT23 L/R. Note that the register capture was taken with them muted, so PDE23 shows PS3 (DAPM path off), and the amp-side status there reflects an idle amp.

Related

#5943 (Lenovo Yoga 7 16IPH11, same RT721 + RT1320 link-3 layout, same missing DSP FW/calibration)

Attachments

Evidence gist: https://gist.github.com/mediawaffle/98f47acfa6786229362b26ecb9473da8. It contains: kernel dyndbg log (soundwire_*, snd_soc_rt1320_sdw, snd_soc_sof_sdw) for one runtime-resume and playback cycle; SCP/DPn register dumps for both codecs; Cadence/Intel link registers; RT1320 SDCA reads; DAPM; amixer; SSDT31 (codec _DSD); and the DSDT SNDW excerpt (BIOS 4.01).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions