RE: [PATCH 2/3] ASoC: sdw_utils: skip endpoints of a peripheral that is not on the bus

"Liao, Bard" <[email protected]> Wed, 5 Aug 2026 13:28:14 +0000
Newsgroups org.kernel.vger.linux-sound,org.kernel.vger.linux-kernel
Message-ID <SJ2PR11MB8424F459A22A44CAFA9C9EBBFFD32@SJ2PR11MB8424.namprd11.prod.outlook.com>

> -----Original Message-----
> From: Pierre-Louis Bossart <[email protected]>
> Sent: Wednesday, August 5, 2026 4:23 PM
> To: Liao, Bard <[email protected]>; Sergey Lebedev <[email protected]>; Mark
> Brown <[email protected]>; Liam Girdwood <[email protected]>;
> Jaroslav Kysela <[email protected]>; Takashi Iwai <[email protected]>; Oder Chiou
> <[email protected]>; Bard Liao <[email protected]>;
> Peter Ujfalusi <[email protected]>; Kai Vehmanen
> <[email protected]>; Ranjani Sridharan
> <[email protected]>; Daniel Baluta <[email protected]>;
> Vijendar Mukunda <[email protected]>
> Cc: [email protected]; [email protected];
> [email protected]
> Subject: Re: [PATCH 2/3] ASoC: sdw_utils: skip endpoints of a peripheral that
> is not on the bus
> 
> 
> >> asoc_sdw_parse_sdw_endpoints() builds DAI links for every endpoint of
> >> every _ADR entry the firmware declares. If a declared peripheral never
> >> enumerates, its links are still created and later fail to prepare, which
> >> takes the whole link down rather than degrading it:
> >>
> >>   sof_sdw sof_sdw: ASoC: error at snd_soc_link_startup on
> >>     SDW0-Playback-SmartAmp: -61
> >>
> >> The Microsoft Surface Pro 11 (Intel) declares one physical RT1320 twice,
> >> as two _ADR entries on link 0 differing only in SDCA class id:
> >>
> >>   SWRA  _ADR 0x000030025D132000   class 0
> >>   SWRB  _ADR 0x000030025D132001   class 1
> >>
> >> Same link, same manufacturer, part and version, same unique id 0. The
> >> part reports class 1, so only SWRB enumerates. SWRA is a phantom and
> >> stays UNATTACHED across every boot and every firmware version tested,
> >> including the November 2025 bundle.
> >
> > Why not just remove SWRA from the BIOS?
> 
> Or add a quirk in drivers/soundwire/dmi-quirks.c to skip this SWRA
> device entirely, this has been the direction so far to ignore 'ghost'
> devices.

Not sure if it is the case, but it is possible that the SKU has different
rt1320 versions depending on when was the device manufactured.
Hope they use different SKU values with different rt1320 versions.

> 
> It's much safer IMHO than trying to detect if a device is physically
> present or not.