[alsa-devel] [sdr-widget] UAC2 sampling freq setting

Daniel Mack daniel at caiaq.de
Fri Jun 11 09:02:11 CEST 2010


(Moving this discussion from sdr-widget to alsa-devel. Can't Cc: the
 original mailing list as it forbids cross-posting)

On Thu, Jun 10, 2010 at 09:36:48PM -0700, Alex Lee wrote:
> I studied the driver source again and it becomes apparent that the
> driver only looks at the MIN value of the triplet (MIN, MAX, RES).  It
> does not take into consideration of the MAX and the RES in each
> triplet.

For samplerates it does that, yes.

> The driver calculates its own MIN and MAX values by going through all
> the triplets in the clock source.  In the present firmware, we only
> have ONE triplet in each clock source, with:
> 
> # of triplets = 1 (2 byte value)
> MIN  48000
> MAX 96000
> RES 48000

Ah, that's a corner case I didn't see. I'll fix this.

> in accordance with the UAC2 specs.  The present driver code expects:
> 
> # of triplets = 2  (2 byte value)
> triplet 1:
> 
> MIN  48000   MAX 48000 RES 00000
> 
> triplet 2:
> 
> MIN 96000 MAX 96000 RES 00000

Yes, that's right. All firmware code I've seen so far also has a triplet
for each discrete sample rate.

> Thus the present driver cannot decode the 1st case above correctly,
> and only get the 48khz value.
> 
> I will update the firmware to cater to the 2nd case above and we
> should have the 96khz back :-)

Ok, fair fix. I'll make sure future versions of the driver also support
the other approach.

Thanks,
Daniel


More information about the Alsa-devel mailing list