ASoC: SOF: Intel: avoid partial SDW machine matches on ACE 2.0+#5728
ASoC: SOF: Intel: avoid partial SDW machine matches on ACE 2.0+#5728bardliao wants to merge 1 commit intothesofproject:topic/sof-devfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Adjusts Intel SOF HDA SoundWire machine selection to prevent partially matched SDW machine/topology selection on ACE 2.0+ platforms, allowing the driver to fall back to the generated default SDW machine description when no exact predefined match exists.
Changes:
- Fetch chip info earlier so ACE 2.0+ matching rules can be applied during alt-machine iteration.
- Require exact
link_maskmatches on ACE 2.0+ (while keeping subset-based matching for pre-ACE 2.0).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
On ACE 2.0+ platforms, if no predefined SoundWire machine matches, the driver can build a default SDW machine description and select function topologies from the ACPI-reported peripherals. Keep the existing subset-based matching for pre-ACE 2.0 platforms, but avoid selecting a partially matched machine on ACE 2.0+ systems. A partial match may pick a subset topology, which can leave some endpoints unavailable or break audio completely. Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (~hdev->info.link_mask & mach->link_mask) | ||
| if (~hdev->info.link_mask & mach->link_mask || | ||
| (hdev->info.link_mask != mach->link_mask && | ||
| chip->hw_ip_version >= SOF_INTEL_ACE_2_0)) |
There was a problem hiding this comment.
chip->hw_ip_version >= SOF_INTEL_ACE_2_0 because UpX is cAVS?
What we will do if a ACE3 hardware have all links enabled and only subset of that is used ?
There was a problem hiding this comment.
chip->hw_ip_version >= SOF_INTEL_ACE_2_0 because UpX is cAVS?
No, it is because we will generate a machine match table for ACE 2.0+ platforms at line 1393 and below if no machine is selected.
What we will do if a ACE3 hardware have all links enabled and only subset of that is used ?
It will use the default SDW machine driver with function topology.
The PR is for #5721 where a subset topology is selected. Instead of removing all of the subsets or adding a new machine match table, I think don't match the subset makes more sense.
On ACE 2.0+ platforms, if no predefined SoundWire machine matches, the driver can build a default SDW machine description and select function topologies from the ACPI-reported peripherals.
Keep the existing subset-based matching for pre-ACE 2.0 platforms, but avoid selecting a partially matched machine on ACE 2.0+ systems. A partial match may pick a subset topology, which can leave some endpoints unavailable or break audio completely.