[linux-audio-dev] USB: Is a CLASS_INTERFACE request a kind of control transfer ?

Jan Holst Jensen jhje00 at yahoo.com
Tue Aug 30 21:07:42 UTC 2005

Dear wise members of the list.

I am (still) trying to implement a control panel
feature for the U2A USB sound card. I (finally!) have
the alsa patch from Clemens Ladisch up and running -
at least I can compile a small program that when run
squirts of a small control transfer URB to the sound
card without complaints.

Now, half of the URBs sent to the device are
CONTROL_TRANSFER blocks, but the other half are marked
as CLASS_INTERFACE in the SnoopyPro logs. See a
typical example below.

I have googled the net and searched the USB specs
without getting much wiser as to what a
CLASS_INTERFACE request is and does. Can I send it
using CONTROL_TRANSFER URBs or is yet another
extension of the alsa driver necessary ?

-- Jan Holst

277     out down        n/a     710.461
URB Header (length: 80)
SequenceNumber: 277
Function: 001b (CLASS_INTERFACE)
PipeHandle: 00000001

0000: 00 01 00 01 00 04 ea 87
bmRequestType: 00
  DIR: Host-To-Device
  TYPE: Standard
bRequest: 01

TransferBuffer: 0x00000001 (1) length
0000: 01
277     out up  n/a     710.471 CONTROL_TRANSFER      
 -       0x00000000
URB Header (length: 80)
SequenceNumber: 277
Function: 0008 (CONTROL_TRANSFER)
PipeHandle: 860fee14

0000: 21 01 00 01 00 04 01 00
bmRequestType: 21
  DIR: Host-To-Device
  TYPE: Class
  RECIPIENT: Interface
bRequest: 01

No TransferBuffer

Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 

More information about the Linux-audio-dev mailing list