Hello Bernhard,

I have compared your configuration descriptor with that which I created for our 
products.  There is nothing obviously wrong with your descriptor.  However, I 
have found that setting "bInterval" to 1 for the feedback endpoint does not 
work in Mac OS X: there are no IN transactions from that endpoint.  The problem 
does not seem to exist on Windows.

For my devices, bInterval is set to 4 meaning that the endpoint requests 
polling every 8 micro-frames - i.e. every 1mS.  This works for both Mac OS X 
and Windows, but whereas Windows polls the endpoint every 1mS, OS X polls it 
every 8mS!

Try changing bInterval to 4 in your feedback endpoint descriptor to see if this 
works for you.

Hope this helps.

Kind regards,
Chris

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Ing. 
Bernhard Schauer
Sent: 06 February 2015 14:18
To: [email protected]
Cc: [email protected]
Subject: Re: USB Audio Device Class v2: explicit feedback supported?

Hello Gordon,

thank you for your reply.  I've now dumped all my config descriptor and double 
checked with the spec. As far as I've seen, everything should be ok. Could you 
please be so kind and have a short look too at it? Maybe I just looked over it. 
I'm just curious, as the device works under Windows and Linux without issues .

     Configuration Descriptor
         Length (and contents):   152
             Raw Descriptor (hex)    0000: 09 02 98 00 02 01 00 80 70 08 
0B 00 02 01 00 20
             Raw Descriptor (hex)    0010: 00 09 04 00 00 00 01 01 20 00 
09 24 01 00 02 0A
             Raw Descriptor (hex)    0020: 40 00 00 08 24 0A 01 03 07 03 
00 11 24 02 02 01
             Raw Descriptor (hex)    0030: 01 00 01 02 03 00 00 00 00 00 
00 00 12 24 06 04
             Raw Descriptor (hex)    0040: 02 0F 00 00 00 0F 00 00 00 0F 
00 00 00 00 0C 24
             Raw Descriptor (hex)    0050: 03 03 01 03 00 04 01 00 00 00 
09 04 01 00 00 01
             Raw Descriptor (hex)    0060: 02 20 00 09 04 01 01 02 01 02 
20 00 10 24 01 02
             Raw Descriptor (hex)    0070: 00 01 01 00 00 00 02 03 00 00 
00 00 06 24 02 01
             Raw Descriptor (hex)    0080: 04 18 07 05 01 05 D0 00 01 08 
25 01 00 00 01 00
             Raw Descriptor (hex)    0090: 01 07 05 81 11 04 00 01
         Number of Interfaces:   2
         Configuration Value:   1
         Attributes:   0x80 (bus-powered)
         MaxPower:   224 mA
         Interface Association   Audio/Unknown
             First Interface   0
             Interface Count   2
             Function Class   1   (Audio)
             Function Subclass   0   (Unknown)
             Interface Protocol   32
             Function String   0 (none)
         Interface #0 - Audio/Control
             Alternate Setting   0
             Number of Endpoints   0
             Interface Class:   1   (Audio)
             Interface Subclass;   1   (Control)
             Interface Protocol:   32
             Audio Control Class Specific Header
                 Descriptor Version Number:   02.00
                 Category:   10
                 Class Specific Size:   64
                 bmControls:   0
                 Dump Contents (hex):   09 24 01 00 02 0A 40 00 00
             Audio Class Specific Clock Source
                 Clock ID:   1
                 Attributes:   Internal Programmable Clock
                 Controls:   7
                 Associated Terminal:   3
                 Clock Source Name String Index:   0 [NONE]
                 Dump Contents (hex):   08 24 0A 01 03 07 03 00
             Audio Class Specific Input Terminal
                 Terminal ID:   2
                 Input Terminal Type:   0x101 (USB streaming)
                 OutTerminal ID:   0 [NONE]
                 Number of Channels:   2
                 Spatial config of channels:   0000000000000011
                                   ^.  Left Front
                                  ^..  Right Front
                 String index for first logical channel:   0
                 Terminal Name String Index:   0 [NONE]
                 Dump Contents (hex):   11 24 02 02 01 01 00 01 02 03 00 
00 00 00 00 00
                 Dump Contents (hex):   00
             Audio Class Specific Feature
                 Unit ID:   4
                 Source ID:   2
                 Number of Channels (ch):   2
                     Master Channel:......................... ( Mute:RW 
Volume:RW  )
                     Channel 1:............................. ( Mute:RW 
Volume:RW  )
                     Channel 2:............................. ( Mute:RW 
Volume:RW  )
                 Feature Unit Name String Index:   0
                 Dump Contents (hex):   12 24 06 04 02 0F 00 00 00 0F 00 
00 00 0F 00 00
                 Dump Contents (hex):   00 00
             Audio Class Specific Output Terminal
                 Terminal ID:   3
                 Output Terminal Type:   0x301 (Speaker)
                 InTerminal ID:   0 [NONE]
                 Source ID:   4
                 Terminal Name String Index:   0 [NONE]
                 Dump Contents (hex):   0C 24 03 03 01 03 00 04 01 00 00 00
         Interface #1 - Audio/Streaming
             Alternate Setting   0
             Number of Endpoints   0
             Interface Class:   1   (Audio)
             Interface Subclass;   2   (Streaming)
             Interface Protocol:   32
         Interface #1 - Audio/Streaming (#1)
             Alternate Setting   1
             Number of Endpoints   2
             Interface Class:   1   (Audio)
             Interface Subclass;   2   (Streaming)
             Interface Protocol:   32
             Audio Control Class Specific Header
                 Audio Stream General
                     Endpoint Terminal ID:   2
                     Format Type:   1
                     Formats   PCM
                     Number of Channels   2
                     Channel Configuration   3
                     Dump Contents (hex):   10 24 01 02 00 01 01 00 00 
00 02 03 00 00 00 00
             Audio Class Specific Audio Data Format
                 Audio Stream Format Type Desc.
                     Format Type:   1
                     Slot Size:   4
                     Bit Resolution:   24
                     Dump Contents (hex):   06 24 02 01 04 18
             Endpoint 0x01 - Isochronous Output
                 Address:   0x01  (OUT)
                 Attributes:   0x05  (Isochronous asynchronous data 
endpoint)
                 Max Packet Size:   0x00d0  (208 x 1  transactions 
opportunities per microframe)
                 Polling Interval:   1 (1 microframe (125 microsecs) )
             Class-Specific AS Audio EndPoint
                 Attributes:   0x00
                 bmControls:   0x00
                 bLockDelayUnits:   0x01  (Milliseconds)
                 wLockDelay:   256 ms
             Endpoint 0x81 - Isochronous Input
                 Address:   0x81  (IN)
                 Attributes:   0x11  (Isochronous no synchronization 
feedback endpoint)
                 Max Packet Size:   0x0004  (4 x 1  transactions 
opportunities per microframe)
                 Polling Interval:   1 (1 microframe (125 microsecs) )

Thank you,

Bernhard

On 2015-02-05 21:47, Gordon Rankin wrote:
> Bernard,
>
> On 2/5/15 3:00 PM, [email protected] wrote:
>> As it seems the feedback is never queried by OS X and so there are 
>> clicks in the final audio stream.
> If you do not see "IN's" for your feedback pipe then your descriptor 
> tables have not correctly linked the output and feedback pipes 
> according to spec.
>
> You can get copies of USBProber from the dev kit and dump you tables 
> to see were the problem is.
>
> Thanks,
> Gordon
>

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/usb/cmcerlean%40bwgroup.com

This email sent to [email protected]

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/usb/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to