[wdmaudiodev] Asynchronous sink feedback question

  • From: Chris Fryer <chris@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 20 Apr 2021 15:09:19 +0100

My understanding of the USB 2.0 spec (section 5.12.4.2 Feedback) <http://sdpha2.ucsd.edu/Lab_Equip_Manuals/usb_20.pdf> for asynchronous sinks was that the sink in high speed mode should provide feedback of Ff formatted as a 16.16 number where Ff is the number of samples per _micro_ frame (125us period).

A 48kHz sink will then return values close to 6.0 (0x00060000 in 16.16 format).

We implemented this and tested some time ago on Windows 10 1903 (or similar). Testing with Windows 10 20 2H we're seeing audio glitches.

Event logs tell us that the driver is ignoring the feedback values because they're out of range:
[0]0004.01C4::04/20/2021-13:36:16.321 [USBAudio2]feedback value 0x00062000 is out of range [0x002f0000,0x00310000], ignoring value
[0]0004.01C4::04/20/2021-13:36:16.321 [USBAudio2]feedback value 0x0005e000 is out of range [0x002f0000,0x00310000], ignoring value
[0]0004.01C4::04/20/2021-13:36:16.321 [USBAudio2]feedback value 0x00062000 is out of range [0x002f0000,0x00310000], ignoring value
[0]0004.01C4::04/20/2021-13:36:16.321 [USBAudio2]feedback value 0x00062000 is out of range [0x002f0000,0x00310000], ignoring value

It appears the driver wants a value close to 48.0 which would be samples per frame instead of samples per micro frame.

Have I misinterpreted the spec?

I didn't investigate to this detail on the previous release of Windows. I can see this is a new release of usbaudio2.sys. Is this a new check?

I have tried reporting samples per frame and the glitches stop on Windows 10 but MacOS then glitches.

Any hints gratefully received!

Regards
Chris

Other related posts: