From e8abe94f07df124b92335747ff23dedef6f9721a Mon Sep 17 00:00:00 2001 From: Ross Owen Date: Wed, 18 Sep 2013 14:52:46 +0100 Subject: [PATCH] Audio 2 reports restricted sample freq list if running in fs --- module_usb_audio/endpoint0/audiorequests.xc | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/module_usb_audio/endpoint0/audiorequests.xc b/module_usb_audio/endpoint0/audiorequests.xc index 0ce5f2ac..9e1cda5a 100644 --- a/module_usb_audio/endpoint0/audiorequests.xc +++ b/module_usb_audio/endpoint0/audiorequests.xc @@ -792,9 +792,21 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c int i = 2; int currentFreq44 = 44100; int currentFreq48 = 48000; + unsigned maxFreq = MAX_FREQ; + +#if defined (FULL_SPEED_AUDIO_2) + unsigned usbSpeed; + asm("ldw %0, dp[g_curUsbSpeed]" : "=r" (usbSpeed) :); + + if (usbSpeed == XUD_SPEED_FS) + { + maxFreq = MAX_FREQ_A1; + } +#endif + while(1) { - if(currentFreq48 <= MAX_FREQ) + if(currentFreq48 <= maxFreq) { /* Note i passed byref here */ storeFreq(buffer, i, currentFreq48); @@ -804,7 +816,7 @@ int AudioClassRequests_2(XUD_ep ep0_out, XUD_ep ep0_in, USB_SetupPacket_t &sp, c num_freqs++; currentFreq44*=2; } - else if(currentFreq44 <= MAX_FREQ) + else if(currentFreq44 <= maxFreq) { storeFreq(buffer, i, currentFreq44); num_freqs++;