Audioengine D1 sampling rate get issue

From: Arvind Sankar
Date: Sun Oct 20 2019 - 17:20:55 EST


Hi, there seems to be a bug in my Audioengine D1's (0x2912:0x30c8) firmware.

When setting sampling rate, the kernel produces these warning messages:
[168840.944226] usb 3-2.2: current rate 4500480 is different from the runtime rate 44100
[168854.930414] usb 3-2.2: current rate 8436480 is different from the runtime rate 48000
[168905.185825] usb 3-2.1.2: current rate 30465 is different from the runtime rate 96000

This comes from set_sample_rate_v1 in sound/usb/clock.c, which reads out
the rate after setting it to check if it worked.

This device appears to return the sampling rate in big-endian format
instead of the USB spec's little-endian.

i.e.,
44100 == 0x00ac44, 4500480 == 0x44ac00
48000 == 0x00bb80, 8436480 == 0x80bb00
96000 == 0x017700, 30465 == 0x007701

It doesn't seem to cause any actual issues, but the messages are
annoying, and I'm wondering if others have seen this, or is it's
specific to my device's revision or something, and if it should be added
to snd_usb_get_sample_rate_quirk.