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]
