tas2783-sdw: firmware shipped for some boards cannot be requested by the driver

Ville Saarinen <[email protected]>
Newsgroups org.kernel.vger.linux-sound
Message-ID <[email protected]>
On the HP OmniBook X Flip 14-kc0xxx (subsystem 103c:8ea1, two TAS2783 on
SoundWire link 0, unique IDs 0x9 and 0xC) the calibration firmware never
loads: the name the driver requests does not exist, and the name that
exists cannot be generated by the driver.

tas_generate_fw_name() builds

  "%04X-%1X-%s%1X.bin"  subsystem_device, link_id, "0x" or "", unique_id

so it asks for 8EA1-0-0x9.bin, then 8EA1-0-9.bin via the fallback.
linux-firmware (20260622) ships neither.  For this board it ships

  ti/audio/tas2783/8EA1-0-0-0x9.bin.zst
  ti/audio/tas2783/8EA1-1-0-0x9.bin.zst   (and the 0xC pair)

four fields where the driver emits three.  The request fails, no
calibration is downloaded, and the speakers stay silent.

The extra field is not the link id: the two 8EA1 variants differ in DDC
name, HP_Kento_14_SDW_alpha10_Stereo_AAC_20251014 against
..._Stereo_FG_..., and both amps of this board are on link 0 regardless.

It is not confined to one board.  Of the 144 files in ti/audio/tas2783,
72 use the four-field form across roughly fifteen subsystem ids (1954,
1964, 1994, 1AC4, 1AD4, 1B04, 1B94, 8EA1, 8EA2, 8EA4 through 8EA8), 66
use the three-field form the driver generates, and 6 carry literal X
placeholders (8EXX-X-9.bin.zst, 8EF6-X-9.bin.zst) that no
request_firmware() call matches verbatim.  Both middle fields vary
independently within the four-field set - 1954-{0,1}-{0,1},
1AD4-{0..3}-2.  The container header is the same on three- and
four-field files alike.

As it stands every board whose firmware carries the four-field name is
unreachable from mainline.  Locally I get sound by symlinking the
requested name onto one of the two files, which picks a tuning by hand
and is not a fix.

For context, the ACP machine support for this board was merged for 7.3
(8393e0bf59, b48466e4be), so it now enumerates and this is what remains
between that and working speakers.

Measured on the hardware named above with linux-firmware 20260622;
written with AI assistance (Claude, claude-opus-5).

Ville
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.