Skip to content

SDW Amp feedback not working on 6.14-rc3 or sof/linux - bus clashes #5334

@rfvirgil

Description

@rfvirgil

On 6.14-rc3 I am seeing that using the SDW amp feeback causes lots of bus clashes. I get the same on current HEAD of sof/linux.
I have determined that the problem is this patch:

"soundwire: generic_bandwidth_allocation: count the bandwidth of active streams only"

If I revert that patch the amp feedback works.
I have attached kernel logs that include extra debug around the peripheral port setup code. These show the bad case using 6.14-rc3 and the working case with that patch reverted.

614-rc3-port-prep-bad.txt
614-rc3-patch-reverted-good.txt

This is the patch for the extra logging:
0001-Debugging-for-SDW-port-enable.patch.txt

The test case is to do loopback testing (simultaneous play to amps and capture from amps) with various different settings for which channel each amplifier is looping back (including not looping back anything), Here is the file listing the settings for each loopback test case, to give an idea of what the test cases are:
loopback2_cs35l56_sofsoundwire.yaml.txt
(The actual test is part of a larger test harness so not something that can easily be attached to a ticket and installed on another system)

It's difficult to match up what is happening in the good and bad cases, because the order of some of the actions seems to get shuffled around. But it looks like with that suspect patch:

  • It is missing some writes to clear the enabled channels on an amp by writing 0 to the channel enable register
  • There are extra writes to enable channels on an amp, which are not enabled in the good (reverted) case

Test hardware:

  • UpXtreme MTL
  • Cirrus Logic CDB35L56-EIGHT-C
  • All 8 amps in use.
  • DP1 is playback, DP3 is feedback.
  • There are four feedback channels per bus, but only one DP3 channel is enabled on each amp, a different channel on each amp.

Metadata

Metadata

Assignees

Labels

SDWApplies to SoundWire bus for codec connectionbugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions