Open kkarask opened 3 years ago
@plbossart is this intended ? I assume a shared clock or similar ?
Sorry, unable to comment without more details: a) I have no idea if the loopback is done at the bus level (as we do with the mockup) or internally in the SoundWire IP. b) I have no idea what the screenshots represent.
One point though: SoundWire streams are unidirectional. They have a life of their own.
@kkarask are you able to check the diagnostic driver code and answer a) and b) above. Thanks !
We don't use codec in that test. We use internal loopback just before output. When pipeline is playing it writes to a certain place in the frame and reads from exactly the same place from that frame. Both Data Port A and Data Port B indicates the same place. It is located before physical bus.
Screenshots represent pause and resume stream. In that test we perform 5x pause/resume actions on playback stream in 1 second intervals. During that operation stream was unexpectedly ended.
@kkarask thanks, btw are you using the Linux soundwire drivers as part of this test or does the slim driver wholly program all host DSP and soundwire IP ?
Sorry, I don't understand how this works. We've only used bus-level feedback in our tests. the loopback 'before physical bus' isn't a capability I am familiar with.
And I don't understand what exactly the scenario is: SoundWire does not have the concept of pause. Do you perform a bank switch to enable/disable channels for the pause on playback, while leaving the capture stream as is?
on sh-tglu-sku0a3e-sdw-01 , I tried to aplay with Jack Out pipeline , pause resume during aplay while Dhw:0,1 Jack in arecording. No errors happened. on sh-tglu-rvp-sdw-01, I tried to aplay with jack out pipeline , pause resume during aplay while Jack in arecording . No errors happened either.
Environment Kernel Branch: topic/sof-dev Kernel Commit: bed17efc SOF Branch: main SOF Commit: 8fa5ff579351
@XiaoyunWu6666 Thanks. @kkarask @bkokoszx test in Linux shows that for 2 independent soundwire streams, pausing the playback stream will not impact the capture stream.
@mengdonglin @XiaoyunWu6666 you need to use the Jack Out and Jack In devices (hw:0,0 for playback and hw:0,1 for capture) Your other experiments use different devices on different links, that's not quite what the firmware team are testing.
@plbossart @mengdonglin @keqiaozhang thanks for reminding . I used the Jack Out t and Jack In devices instead , pausing the playback stream did not impact the capture stream. Test result above was updated
@lgirdwood Slim driver is just a "proxy" which passes information on. All logic about configuration is in python tests.
@plbossart FW doesn't have knowledge about SDW and doesn't pause SoundWire. Only DMA is paused by FW. Loopback is on ALH side and is configured internally by the test.
Reproduced on TGL 5594ad3512830feaa478677718036ffabf51a454
Describe the bug While pipelines connected to SdW interface are working pause and resume operation are done on playback stream. Capture is interrupted during stream operation.
Topology
To Reproduce Run test 16_07_TestSdwAlhLoopbackStreamOperations16000Hz24b32b4ch with Diagnostic Driver with option: --playback-iterations=75
Reproduction Rate Sporadic, 1/75
Environment 1) Firmware branch name and commit
2) Name of the platform(s) on which the bug is observed.
Screenshots or console output
Logs: TGL_16_07.zip