All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: Digidesign Mbox2 - usb support
@ 2009-08-16  8:27 Damien Zammit
  0 siblings, 0 replies; 4+ messages in thread
From: Damien Zammit @ 2009-08-16  8:27 UTC (permalink / raw)
  To: alsa-devel

Hi,

I wrote an addition to usbquirks.h to provide support for "Digidesign
Mbox 2" but I need someone to point me in the right direction as to
which interfaces to use.  I'm not sure if the MIDI interface is a
standard device, and I'm not sure which interfaces to ignore.
I am about to compile a new alsa + kernel with my changes to
usbquirks.h to test the device.

Here is my usbquirks.h addition:

/* DIGIDESIGN MBOX 2 addition to usbquirks.h */

{
	/* Damien Zammit <damien.zammit@gmail.com>
	 * 16 August 2009
	 *
	 * Interface topology of Digidesign Mbox 2, it has 7 interfaces:
	 * 	0 - Proprietary firmware updates
	 * 	1 - Audio control device
	 * 	2 - Double endpoint IN-OUT PCM
	 * 	3 - Double endpoint OUT-IN PCM
	 * 	4 - Single endpoint IEC1937 AC3	/ PCM (selectable by altsetting)
	 * 	5 - Single endpoint PCM (supports full 24bit 48000Hz)
	 * 	6 - Triple endpoint MIDI (Interrupt + 1 IN + 1 OUT)
	 *
	 * As I am unsure which interfaces to try, I have provided _all_ the settings
	 * I can in this file to hand to the usb-audio developers.
	 * I have no idea what .altset_idx does or where to find it, so I set
it to 1 in all cases.
	 *
	 * I am currently testing with just interfaces 5 and 6 (not sure if
it will work)
	 */
	
	USB_DEVICE(0x0dba, 0x3000),
	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
		.vendor_name = "Digidesign",
		.product_name = "Mbox 2",
		.ifnum = QUIRK_ANY_INTERFACE,
		.type = QUIRK_COMPOSITE,
		.data = (const struct snd_usb_audio_quirk[]) {
			/* Proprietary firmware updater interface - ignore for now */
			{
				.ifnum = 0,
				.type = QUIRK_IGNORE_INTERFACE
			},

			/* Audio control interface - altsetting = 0 not sure what to do with this */
			{
				.ifnum = 1,
				.type = QUIRK_IGNORE_INTERFACE
			},
			{
				.ifnum = 2,
				.type = QUIRK_AUDIO_FIXED_ENDPOINT,
				.data = & (const struct audioformat) {
					.format = SNDDRV_PCM_FORMAT_S24_3LE,
					.channels = 2,
					.iface = 2,
					.altsetting = 3, /* 0 is also available but has no endpoints */
					.altset_idx = 1,
					.endpoint = 0x03, /* IN or 0x83 OUT */
					.ep_attr = 0x05,
					.rates = SNDRV_PCM_RATE_CONTINUOUS,
					.rate_min = 8000,
					.rate_max = 48000
				}
			},
			{
                                .ifnum = 3,
                                .type = QUIRK_AUDIO_FIXED_ENDPOINT,
                                .data = & (const struct audioformat) {
                                        .format = SNDDRV_PCM_FORMAT_S24_3LE,
                                        .channels = 2,
                                        .iface = 3,
                                        .altsetting = 3, /* 0 is also
available, but has no endpoints */
                                        .altset_idx = 1,
                                        .endpoint = 0x04, /* OUT or 0x84 IN */
                                        .ep_attr = 0x05,
                                        .rates = SNDRV_PCM_RATE_CONTINUOUS,
                                        .rate_min = 8000,
                                        .rate_max = 48000
                                }
                        },
			{
                                .ifnum = 4,
                                .type = QUIRK_AUDIO_FIXED_ENDPOINT,
                                .data = & (const struct audioformat) {
                                        .format = <<<<< Type III -
IEC1937_AC3 (16 bit) >>>>>
                                        .channels = 2,
                                        .iface = 3,
                                        .altsetting = 6,
                                        .altset_idx = 1,
					.endpoint = 0x04,
                                        .ep_attr = 0x05,
                                        .rates = SNDRV_PCM_RATE_CONTINUOUS,
                                        .rate_min = 8000,
                                        .rate_max = 48000
                                }
                        },
			{
                                .ifnum = 5,
                                .type = QUIRK_AUDIO_FIXED_ENDPOINT,
                                .data = & (const struct audioformat) {
                                        .format = SNDDRV_PCM_FORMAT_S24_3LE,
                                        .channels = 2,
                                        .iface = 5,
                                        .altsetting = 3,
                                        .altset_idx = 1,
                                        .endpoint = 0x86, /* Single
endpoint only */
                                        .ep_attr = 0x0D,
                                        .rates = SNDRV_PCM_RATE_CONTINUOUS,
                                        .rate_min = 8000,
                                        .rate_max = 48000
                                }
                        },

			{

/* MIDI INTERFACE DESCRIPTION
 * Is this a standard USB MIDI device?
 * It has 2 Interface descriptors for the same altsetting...

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        6
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay              0 Undefined

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        6
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               0
*/

				.ifnum = 6,
				.type = QUIRK_MIDI_FIXED_ENDPOINT,
				.data = & (const struct snd_usb_midi_endpoint_info) {
					/* I am not certain of the "cables" flags or how
					 * to find out what they are.
					 */
					.out_ep = 2,
					.out_interval = 0x00,
					.in_ep = 2,
					.in_interval = 0x00,
					.out_cables = 0x0001,
					.in_cables = 0x0001
				}

			},
			{
				.ifnum = -1
			}
		}
	}
},

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Digidesign Mbox2 - usb support
@ 2009-08-17  6:46 Damien Zammit
  0 siblings, 0 replies; 4+ messages in thread
From: Damien Zammit @ 2009-08-17  6:46 UTC (permalink / raw)
  To: alsa-devel

I compiled the latest stable ALSA and kernel, and all the utilities.

!!################################
!!ALSA Information Script v 0.4.57
!!################################

!!Script ran on: Mon Aug 17 06:39:10 UTC 2009


!!Linux Distribution
!!------------------

Ubuntu 8.04 \n \l DISTRIB_ID=Ubuntu DISTRIB_DESCRIPTION="Ubuntu 8.04"


!!DMI Information
!!---------------

Manufacturer:      Dell Computer Corporation
Product Name:      Latitude D600


!!Kernel Information
!!------------------

Kernel release:    2.6.30.4
Operating System:  GNU/Linux
Architecture:      i686
Processor:         unknown
SMP Enabled:       Yes


!!ALSA Version
!!------------

Driver version:     1.0.20
Library version:    1.0.20
Utilities version:  1.0.20


!!Loaded ALSA modules
!!-------------------

snd_usb_audio


!!Sound Servers on this system
!!----------------------------

ESound Daemon:
       Installed - Yes (/usr/bin/esd)
       Running - No

aRts:
       Installed - Yes (/usr/bin/artsd)
       Running - No

Jack:
       Installed - Yes (/usr/bin/jackd)
       Running - No


!!Soundcards recognised by ALSA
!!-----------------------------

  1 [M2             ]: USB-Audio - Mbox 2
                       Digidesign Mbox 2 at usb-0000:00:1d.1-1, full speed


!!PCI Soundcards installed in the system
!!--------------------------------------

00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM 
(ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)


!!Advanced information - PCI Vendor/Device/Susbsystem ID's
!!--------------------------------------------------------

00:1f.5 0401: 8086:24c5 (rev 01)
	Subsystem: 1028:011d


!!Modprobe options (Sound related)
!!--------------------------------

snd-bt87x: index=-2
snd-atiixp-modem: index=-2
snd-intel8x0m: index=-2
snd-via82xx-modem: index=-2
snd-usb-audio: index=1
snd-bt87x: index=-2
snd-atiixp-modem: index=-2
snd-intel8x0m: index=-2
snd-via82xx-modem: index=-2


!!Loaded sound module options
!!--------------------------

!!Module: snd_usb_audio
	async_unlink : Y
	device_setup : 0,0,0,0,0,0,0,0
	enable : Y,Y,Y,Y,Y,Y,Y,Y
	id : <NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>,<NULL>
	ignore_ctl_error : N
	index : 1,-1,-1,-1,-1,-1,-1,-1
	nrpacks : 8
	pid : -1,-1,-1,-1,-1,-1,-1,-1
	vid : -1,-1,-1,-1,-1,-1,-1,-1


!!ALSA Device nodes
!!-----------------

crw-rw----+ 1 root audio 116, 32 Aug 17 15:08 /dev/snd/controlC1
crw-rw----+ 1 root audio 116, 40 Aug 17 15:08 /dev/snd/midiC1D0
crw-rw----+ 1 root audio 116, 56 Aug 17 16:36 /dev/snd/pcmC1D0c
crw-rw----+ 1 root audio 116, 48 Aug 17 16:36 /dev/snd/pcmC1D0p
crw-rw----+ 1 root audio 116,  1 Aug 17 14:50 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Aug 17 14:50 /dev/snd/timer


!!ALSA configuration files
!!------------------------

!!User specific config file (~/.asoundrc)

# ALSA library configuration file

# Include settings that are under the control of asoundconf(1).
# (To disable these settings, comment out this line.)
</home/dczammit/.asoundrc.asoundconf>



!!asoundconf-generated config file

# ALSA library configuration file managed by asoundconf(1).
#
# MANUAL CHANGES TO THIS FILE WILL BE OVERWRITTEN!
#
# Manual changes to the ALSA library configuration should be implemented
# by editing the ~/.asoundrc file, not by editing this file.
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0
defaults.namehint.showall off
defaults.namehint.basic on
defaults.namehint.extended off


!!Aplay/Arecord output
!!------------

APLAY

**** List of PLAYBACK Hardware Devices ****
card 1: M2 [Mbox 2], device 0: USB Audio [USB Audio]
   Subdevices: 1/1
   Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 1: M2 [Mbox 2], device 0: USB Audio [USB Audio]
   Subdevices: 1/1
   Subdevice #0: subdevice #0

!!Amixer output
!!-------------

!!-------Mixer controls for card 1 [M2]

Card hw:1 'M2'/'Digidesign Mbox 2 at usb-0000:00:1d.1-1, full speed'
   Mixer name	: ''
   Components	: 'USB0dba:3000'
   Controls      : 0
   Simple ctrls  : 0


!!Alsactl output
!!-------------

--startcollapse--
state.M2 {
	control {
	}
}
--endcollapse--




jackd 0.116.2
Copyright 2001-2005 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK compiled with System V SHM support.
loading driver ..
apparent rate = 48000
creating alsa driver ... hw:1|hw:1|256|2|48000|2|2|nomon|swmeter|-|32bit
control device hw:1
configuring for 48000Hz, period = 256 frames (5.3 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 24bit little-endian
ALSA: use 2 periods for capture
ALSA: cannot set hardware parameters for capture
ALSA: cannot configure capture channel
cannot load driver module alsa


[ 6387.449014] WARNING: at sound/usb/usbaudio.c:1314 
snd_usb_hw_params+0xbc8/0xc10 [snd_usb_audio]()
[ 6387.449056] Hardware name: Latitude D600
[ 6387.449059] Modules linked in: snd_usb_audio snd_pcm snd_page_alloc 
snd_usb_lib snd_hwdep binfmt_misc radeon drm i2c_core rfcomm l2cap 
bluetooth ppdev sbs sbshc container acpi_cpufreq cpufreq_userspace 
cpufreq_stats cpufreq_powersave cpufreq_ondemand freq_table 
cpufreq_conservative ipv6 dm_crypt snd_seq_midi snd_rawmidi 
snd_seq_midi_event snd_seq snd_timer snd_seq_device snd soundcore lp 
af_packet joydev pcmcia yenta_socket rsrc_nonstatic video output 
pcmcia_core parport_pc parport psmouse serio_raw button battery ac 
processor pcspkr intel_agp shpchp agpgart pci_hotplug iTCO_wdt 
iTCO_vendor_support dcdbas evdev sr_mod sg cdrom sd_mod usbhid hid 
ata_piix pata_acpi ata_generic tg3 firmware_class libphy libata uhci_hcd 
ehci_hcd usbcore scsi_mod raid10 raid456 raid6_pq async_xor async_memcpy 
async_tx xor raid1 raid0 multipath linear md_mod dm_mirror 
dm_region_hash dm_log dm_snapshot dm_mod thermal fan thermal_sys fuse
[ 6387.449148] Pid: 25866, comm: jackd Tainted: G        W  2.6.30.4 #1
[ 6387.449151] Call Trace:
[ 6387.449165]  [<f81121d8>] ? snd_usb_hw_params+0xbc8/0xc10 [snd_usb_audio]
[ 6387.449175]  [<f81121d8>] ? snd_usb_hw_params+0xbc8/0xc10 [snd_usb_audio]
[ 6387.449191]  [<c012c03f>] ? warn_slowpath_common+0x7f/0xb0
[ 6387.449201]  [<f81121d8>] ? snd_usb_hw_params+0xbc8/0xc10 [snd_usb_audio]
[ 6387.449206]  [<c012c083>] ? warn_slowpath_null+0x13/0x20
[ 6387.449216]  [<f81121d8>] ? snd_usb_hw_params+0xbc8/0xc10 [snd_usb_audio]
[ 6387.449237]  [<f80eae90>] ? snd_pcm_hw_params_choose+0x30/0xa0 [snd_pcm]
[ 6387.449248]  [<f80e6fd0>] ? snd_pcm_hw_params+0xe0/0x320 [snd_pcm]
[ 6387.449254]  [<c0271dce>] ? copy_from_user+0x2e/0x70
[ 6387.449265]  [<f80e7346>] ? snd_pcm_hw_params_user+0x36/0x80 [snd_pcm]
[ 6387.449276]  [<f80e7c06>] ? snd_pcm_common_ioctl1+0x7f6/0x1140 [snd_pcm]
[ 6387.449281]  [<c0129385>] ? check_preempt_wakeup+0xd5/0x160
[ 6387.449286]  [<c01242e9>] ? try_to_wake_up+0xa9/0x200
[ 6387.449292]  [<c01b80b5>] ? pollwake+0x45/0x50
[ 6387.449296]  [<c0124440>] ? default_wake_function+0x0/0x10
[ 6387.449306]  [<c011f0fb>] ? __wake_up_common+0x4b/0x80
[ 6387.449310]  [<c01201f5>] ? __wake_up_sync_key+0x45/0x80
[ 6387.449314]  [<c01bf8cd>] ? mnt_drop_write+0x1d/0xe0
[ 6387.449319]  [<c01bbebb>] ? file_update_time+0x7b/0xc0
[ 6387.449325]  [<c01b06ee>] ? pipe_write+0x32e/0x450
[ 6387.449337]  [<f80e85de>] ? snd_pcm_capture_ioctl1+0x8e/0x400 [snd_pcm]
[ 6387.449348]  [<f80e8993>] ? snd_pcm_capture_ioctl+0x43/0x50 [snd_pcm]
[ 6387.449359]  [<f80e8950>] ? snd_pcm_capture_ioctl+0x0/0x50 [snd_pcm]
[ 6387.449364]  [<c01b629b>] ? vfs_ioctl+0x2b/0x90
[ 6387.449367]  [<c01b65d0>] ? do_vfs_ioctl+0x2d0/0x510
[ 6387.449374]  [<c0399075>] ? __schedule+0x235/0x730
[ 6387.449378]  [<c01a9b0d>] ? vfs_write+0xfd/0x160
[ 6387.449382]  [<c01b6866>] ? sys_ioctl+0x56/0x70
[ 6387.449387]  [<c0102dd4>] ? sysenter_do_call+0x12/0x28
[ 6387.449391] ---[ end trace 8fe22d9a0585e3c1 ]---

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Digidesign Mbox2 - usb support
@ 2009-08-16 16:44 Damien Zammit
  0 siblings, 0 replies; 4+ messages in thread
From: Damien Zammit @ 2009-08-16 16:44 UTC (permalink / raw)
  To: alsa-devel mailing list

Using the following patch to usbquirks.h, I was able to get MIDI in
and out working on the Digidesign Mbox2!!
The capture/playback PCMs are also configured with alsa, but the
status on these are "closed".
I am guessing I need to snoop the commands on interface 1 (control
device) to enable them.
Also, there is some "magic" needed to initialise the device which I
have captured.
It seems that the device needs to be loaded with altsettings = 0 on
interfaces 1-5 first,
then some setup codes are transmitted, and finally the following
altsettings are used.

dczammit@flop:/proc/asound$ ls
card0  cards  devices  hwdep  M2  modules  pcm  seq  timers  version

dczammit@flop:/proc/asound$ cat cards
 0 [M2             ]: USB-Audio - Mbox 2
                      Digidesign Mbox 2 at usb-0000:00:1d.1-1, full speed

dczammit@flop:/proc/asound$ cat devices
  0: [ 0]   : control
  1:        : sequencer
  8: [ 0- 0]: raw midi
 16: [ 0- 0]: digital audio playback
 24: [ 0- 0]: digital audio capture
 33:        : timer

dczammit@flop:/proc/asound$ cat pcm
00-00: USB Audio : USB Audio : playback 1 : capture 1

dczammit@flop:/proc/asound$ cat timers
G0: system timer : 1000.000us (10000000 ticks)
G1: RTC timer : 976.562us (100000000 ticks)
P0-0-0: PCM playback 0-0-0 : SLAVE
P0-0-1: PCM capture 0-0-1 : SLAVE

dczammit@flop:/proc/asound/M2$ ls
id  midi0  pcm0c  pcm0p  stream0  usbbus  usbid

dczammit@flop:/proc/asound/M2$ cat midi0
Mbox 2

Output 0
  Tx bytes     : 212
Input 0
  Rx bytes     : 314

dczammit@flop:/proc/asound/M2$ cat stream0
Digidesign Mbox 2 at usb-0000:00:1d.1-1, full speed : USB Audio

Playback:
  Status: Stop
  Interface 3
    Altset 3
    Format: 0x20
    Channels: 2
    Endpoint: 4 OUT (ASYNC)
    Rates: 8000 - 48000 (continuous)

Capture:
  Status: Stop
  Interface 5
    Altset 3
    Format: 0x20
    Channels: 2
    Endpoint: 6 IN (SYNC)
    Rates: 8000 - 48000 (continuous)

dczammit@flop:/proc/asound/seq$  aplay -Ddefault:CARD=M2 -f S16_LE
~/Desktop/tunes/dzjam.wav
Playing WAVE '/home/dczammit/Desktop/tunes/dzjam.wav' : Signed 16 bit
Little Endian, Rate 44100 Hz, Stereo
Segmentation fault


Please find the quirk below and the magic init codes.

##################################
{
	USB_DEVICE(0x0dba, 0x3000),
	.driver_info = (unsigned long) & (const struct snd_usb_audio_quirk) {
		.vendor_name = "Digidesign",
		.product_name = "Mbox 2",
		.ifnum = QUIRK_ANY_INTERFACE,
		.type = QUIRK_COMPOSITE,
		.data = (const struct snd_usb_audio_quirk[]) {
			{
				.ifnum = 0,
				.type = QUIRK_IGNORE_INTERFACE
			},
			{ /* Audio control interface - sets the sampling rate? - no idea
how this works
                             Possibly also enables the
capture/playback using a command? */
				.ifnum = 1,
				.type = QUIRK_IGNORE_INTERFACE
			},
			{
				.ifnum = 2,
				.type = QUIRK_IGNORE_INTERFACE
			},
			{
                                .ifnum = 3,
                                .type = QUIRK_AUDIO_FIXED_ENDPOINT,
                                .data = & (const struct audioformat) {
                                        .format = SNDRV_PCM_FORMAT_S24_3LE,
                                        .channels = 2,
                                        .iface = 3,
                                        .altsetting = 3, /* 0 is also
available, but has no endpoints */
                                        .altset_idx = 1,
                                        .endpoint = 0x04, /* OUT or
0x84 IN (attr 1) */
                                        .ep_attr = 0x05,
                                        .rates = SNDRV_PCM_RATE_CONTINUOUS,
                                        .rate_min = 8000,
                                        .rate_max = 48000
                                }
                        },
			{
                                .ifnum = 4,
                        	.type = QUIRK_IGNORE_INTERFACE
			},
			{
                                .ifnum = 5,
                                .type = QUIRK_AUDIO_FIXED_ENDPOINT,
                                .data = & (const struct audioformat) {
                                        .format = SNDRV_PCM_FORMAT_S24_3LE,
                                        .channels = 2,
                                        .iface = 5,
                                        .altsetting = 3,
                                        .altset_idx = 1,
                                        .endpoint = 0x86, /* IN */
                                        .ep_attr = 0x0D,
                                        .rates = SNDRV_PCM_RATE_CONTINUOUS,
                                        .rate_min = 8000,
                                        .rate_max = 48000
                                }
                        },
			{
				.ifnum = 6,
				.type = QUIRK_MIDI_FIXED_ENDPOINT,
				.data = & (const struct snd_usb_midi_endpoint_info) {
					.out_ep = 2,
					.out_interval = 0x00,
					.in_ep = 2,
					.in_interval = 0x00,
					.out_cables = 0x0001,
					.in_cables = 0x0001
				}

			},
			{
				.ifnum = -1
			}
		}
	}
},
##################################

Audio driver magic:

[0 ms] UsbSnoop compiled on Jan 18 2003 22:41:32 loading
[0 ms] UsbSnoop - DriverEntry(baca2c40) : Windows NT WDM version 1.32
[101 ms] UsbSnoop - AddDevice(baca2f50) : DriverObject 83499768, pdo 83338c10
[102 ms] UsbSnoop - MyDispatchPNP(baca2ee0) : IRP_MJ_PNP
(IRP_MN_QUERY_INTERFACE)
[102 ms] UsbSnoop - MyDispatchPNP(baca2ee0) : IRP_MJ_PNP (0x00000018)
[127 ms] UsbSnoop - MyDispatchPNP(baca2ee0) : IRP_MJ_PNP
(IRP_MN_QUERY_RESOURCE_REQUIREMENTS)
[127 ms] UsbSnoop - MyDispatchPNP(baca2ee0) : IRP_MJ_PNP
(IRP_MN_FILTER_RESOURCE_REQUIREMENTS)
[128 ms] UsbSnoop - MyDispatchPNP(baca2ee0) : IRP_MJ_PNP (IRP_MN_START_DEVICE)
[128 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=832c7530, IRQL=0
[128 ms]  >>>  URB 1 going down  >>>
-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
  TransferBufferLength = 00000012
  TransferBuffer       = bacef95c
  TransferBufferMDL    = 00000000
  Index                = 00000001
  DescriptorType       = 00000001 (USB_DEVICE_DESCRIPTOR_TYPE)
  LanguageId           = 00000000
[128 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=832c7530, Context=832ff2e8, IRQL=0
[128 ms]  <<<  URB 1 coming back  <<<
-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
  TransferBufferLength = 00000012
  TransferBuffer       = bacef95c
  TransferBufferMDL    = 00000000
    00000000: 12 01 00 01 00 00 00 08 ba 0d 00 30 38 01 01 02
    00000010: 00 01
  Index                = 00000001
  DescriptorType       = 00000001 (USB_DEVICE_DESCRIPTOR_TYPE)
  LanguageId           = 00000000
[128 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=832c7530, IRQL=0
[128 ms]  >>>  URB 2 going down  >>>
-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
  TransferBufferLength = 00000009
  TransferBuffer       = bacef9d0
  TransferBufferMDL    = 00000000
  Index                = 00000001
  DescriptorType       = 00000002 (USB_CONFIGURATION_DESCRIPTOR_TYPE)
  LanguageId           = 00000000
[128 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=832c7530, Context=833e2438, IRQL=0
[128 ms]  <<<  URB 2 coming back  <<<
-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
  TransferBufferLength = 00000009
  TransferBuffer       = bacef9d0
  TransferBufferMDL    = 00000000
    00000000: 09 02 58 02 05 01 00 80 fa
  Index                = 00000001
  DescriptorType       = 00000002 (USB_CONFIGURATION_DESCRIPTOR_TYPE)
  LanguageId           = 00000000
[128 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=832c7530, IRQL=0
[128 ms]  >>>  URB 3 going down  >>>
-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
  TransferBufferLength = 00000258
  TransferBuffer       = 83369540
  TransferBufferMDL    = 00000000
  Index                = 00000001
  DescriptorType       = 00000002 (USB_CONFIGURATION_DESCRIPTOR_TYPE)
  LanguageId           = 00000000
[128 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=832c7530, Context=83455a90, IRQL=0
[128 ms]  <<<  URB 3 coming back  <<<
-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
  TransferBufferLength = 00000258
  TransferBuffer       = 83369540
  TransferBufferMDL    = 00000000
    00000000: 09 02 58 02 05 01 00 80 fa 09 04 01 00 00 01 01
    00000010: 00 02 0c 24 01 00 01 60 00 04 02 03 04 05 0c 24
    00000020: 02 05 01 01 00 02 03 00 00 00 09 24 03 06 01 06
    00000030: 00 05 00 0c 24 02 07 01 01 00 02 03 00 00 00 09
    00000040: 24 03 08 01 06 00 07 00 0c 24 02 01 01 06 00 02
    00000050: 03 00 00 00 09 24 03 02 01 01 00 01 00 0c 24 02
    00000060: 03 01 06 00 02 03 00 00 00 09 24 03 04 01 01 00
    00000070: 03 00 09 04 02 00 00 01 02 00 00 09 04 02 02 02
    00000080: 01 02 00 00 07 24 01 05 01 01 00 0e 24 02 01 02
    00000090: 03 18 00 40 1f 00 80 bb 00 09 05 03 05 28 01 01
    000000a0: 00 83 07 25 01 00 00 00 00 09 05 83 01 03 00 01
    000000b0: 02 00 09 04 02 03 02 01 02 00 00 07 24 01 05 01
    000000c0: 01 00 0e 24 02 01 02 03 18 00 40 1f 00 80 bb 00
    000000d0: 09 05 03 05 28 01 01 00 83 07 25 01 00 00 00 00
    000000e0: 09 05 83 01 03 00 01 02 00 09 04 03 00 00 01 02
    000000f0: 00 00 09 04 03 02 02 01 02 00 00 07 24 01 07 01
    00000100: 01 00 0e 24 02 01 02 03 18 00 40 1f 00 80 bb 00
    00000110: 09 05 04 05 28 01 01 00 84 07 25 01 00 00 00 00
    00000120: 09 05 84 01 03 00 01 02 00 09 04 03 03 02 01 02
    00000130: 00 00 07 24 01 07 01 01 00 0e 24 02 01 02 03 18
    00000140: 00 40 1f 00 80 bb 00 09 05 04 05 28 01 01 00 84
    00000150: 07 25 01 00 00 00 00 09 05 84 01 03 00 01 02 00
    00000160: 09 04 03 06 01 01 02 00 00 07 24 01 07 01 01 20
    00000170: 0e 24 02 03 02 02 10 00 40 1f 00 80 bb 00 09 05
    00000180: 04 0d c0 00 01 00 00 07 25 01 01 00 00 00 09 04
    00000190: 04 00 00 01 02 00 00 09 04 04 02 01 01 02 00 00
    000001a0: 07 24 01 02 01 01 00 0e 24 02 01 02 03 18 00 40
    000001b0: 1f 00 80 bb 00 09 05 85 05 28 01 01 00 00 07 25
    000001c0: 01 00 00 00 00 09 04 04 03 01 01 02 00 00 07 24
    000001d0: 01 02 01 01 00 0e 24 02 01 02 03 18 00 40 1f 00
    000001e0: 80 bb 00 09 05 85 0d 28 01 01 00 00 07 25 01 01
    000001f0: 00 00 00 09 04 05 00 00 01 02 00 00 09 04 05 02
    00000200: 01 01 02 00 00 07 24 01 04 01 01 00 0e 24 02 01
    00000210: 02 03 18 00 40 1f 00 80 bb 00 09 05 86 05 28 01
    00000220: 01 00 00 07 25 01 00 00 00 00 09 04 05 03 01 01
    00000230: 02 00 00 07 24 01 04 01 01 00 0e 24 02 01 02 03
    00000240: 18 00 40 1f 00 80 bb 00 09 05 86 0d 28 01 01 00
    00000250: 00 07 25 01 01 00 00 00
  Index                = 00000001
  DescriptorType       = 00000002 (USB_CONFIGURATION_DESCRIPTOR_TYPE)
  LanguageId           = 00000000
[128 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=832c7530, IRQL=0
[128 ms]  >>>  URB 4 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[133 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=832c7530, Context=833573c0, IRQL=2
[133 ms]  <<<  URB 4 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 83623978
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[433 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=83436508, IRQL=0
[433 ms]  >>>  URB 5 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[437 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=83436508, Context=83429560, IRQL=2
[437 ms]  <<<  URB 5 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 834a08e8
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[733 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=83436508, IRQL=0
[733 ms]  >>>  URB 6 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[738 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=83436508, Context=83625f08, IRQL=2
[738 ms]  <<<  URB 6 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 834a08e8
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[1034 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=834a1398, IRQL=0
[1034 ms]  >>>  URB 7 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[1038 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=834a1398, Context=832ff2e8, IRQL=2
[1038 ms]  <<<  URB 7 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 834a08e8
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[1334 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[1334 ms]  >>>  URB 8 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[1339 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=833573c0, IRQL=2
[1339 ms]  <<<  URB 8 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 83621768
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[1635 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[1635 ms]  >>>  URB 9 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[1639 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=832ff2e8, IRQL=2
[1639 ms]  <<<  URB 9 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 83621768
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[1935 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[1935 ms]  >>>  URB 10 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[1940 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=833573c0, IRQL=2
[1940 ms]  <<<  URB 10 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 83621768
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[2236 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[2236 ms]  >>>  URB 11 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[2240 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=832ff2e8, IRQL=2
[2240 ms]  <<<  URB 11 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 83621768
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[2536 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[2536 ms]  >>>  URB 12 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[2541 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=833573c0, IRQL=2
[2541 ms]  <<<  URB 12 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 83621768
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[2837 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[2837 ms]  >>>  URB 13 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[2841 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=832ff2e8, IRQL=2
[2841 ms]  <<<  URB 13 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 83621768
    00000000: 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[3137 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[3137 ms]  >>>  URB 14 going down  >>>
-- URB_FUNCTION_VENDOR_DEVICE:
  TransferFlags          = 00000001 (USBD_TRANSFER_DIRECTION_IN,
~USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 00000000
  UrbLink                 = 00000000
  RequestTypeReservedBits = 00000000
  Request                 = 00000085
  Value                   = 00000001
  Index                   = 00000000
[3142 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=833573c0, IRQL=2
[3142 ms]  <<<  URB 14 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 83323ac0
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = bacef8e7
  TransferBufferMDL    = 83621768
    00000000: 02
  UrbLink              = 00000000
  SetupPacket          =
    00000000: c0 85 01 00 00 00 12 00
[3142 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[3142 ms]  >>>  URB 15 going down  >>>
-- URB_FUNCTION_SELECT_CONFIGURATION:
  ConfigurationDescriptor = 0x83369540 (configure)
  ConfigurationDescriptor : bLength             = 9
  ConfigurationDescriptor : bDescriptorType     = 0x00000002
  ConfigurationDescriptor : wTotalLength        = 0x00000258
  ConfigurationDescriptor : bNumInterfaces      = 0x00000005
  ConfigurationDescriptor : bConfigurationValue = 0x00000001
  ConfigurationDescriptor : iConfiguration      = 0x00000000
  ConfigurationDescriptor : bmAttributes        = 0x00000080
  ConfigurationDescriptor : MaxPower            = 0x000000fa
  ConfigurationHandle     = 0x00000000
  Interface[0]: Length            = 16
  Interface[0]: InterfaceNumber   = 1
  Interface[0]: AlternateSetting  = 0
  Interface[1]: Length            = 16
  Interface[1]: InterfaceNumber   = 2
  Interface[1]: AlternateSetting  = 0
  Interface[2]: Length            = 16
  Interface[2]: InterfaceNumber   = 3
  Interface[2]: AlternateSetting  = 0
  Interface[3]: Length            = 16
  Interface[3]: InterfaceNumber   = 4
  Interface[3]: AlternateSetting  = 0
  Interface[4]: Length            = 16
  Interface[4]: InterfaceNumber   = 5
  Interface[4]: AlternateSetting  = 0
[3142 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=83429560, IRQL=0
[3142 ms]  <<<  URB 15 coming back  <<<
-- URB_FUNCTION_SELECT_CONFIGURATION:
  ConfigurationDescriptor = 0x83369540 (configure)
  ConfigurationDescriptor : bLength             = 9
  ConfigurationDescriptor : bDescriptorType     = 0x00000002
  ConfigurationDescriptor : wTotalLength        = 0x00000258
  ConfigurationDescriptor : bNumInterfaces      = 0x00000005
  ConfigurationDescriptor : bConfigurationValue = 0x00000001
  ConfigurationDescriptor : iConfiguration      = 0x00000000
  ConfigurationDescriptor : bmAttributes        = 0x00000080
  ConfigurationDescriptor : MaxPower            = 0x000000fa
  ConfigurationHandle     = 0x835a8978
  Interface[0]: Length            = 16
  Interface[0]: InterfaceNumber   = 1
  Interface[0]: AlternateSetting  = 0
  Interface[0]: Class             = 0x00000001
  Interface[0]: SubClass          = 0x00000001
  Interface[0]: Protocol          = 0x00000000
  Interface[0]: InterfaceHandle   = 0x8336b868
  Interface[0]: NumberOfPipes     = 0
  Interface[1]: Length            = 16
  Interface[1]: InterfaceNumber   = 2
  Interface[1]: AlternateSetting  = 0
  Interface[1]: Class             = 0x00000000
  Interface[1]: SubClass          = 0x00000000
  Interface[1]: Protocol          = 0x00000000
  Interface[1]: InterfaceHandle   = 0x00000000
  Interface[1]: NumberOfPipes     = 0
  Interface[2]: Length            = 16
  Interface[2]: InterfaceNumber   = 3
  Interface[2]: AlternateSetting  = 0
  Interface[2]: Class             = 0x00000000
  Interface[2]: SubClass          = 0x00000000
  Interface[2]: Protocol          = 0x00000000
  Interface[2]: InterfaceHandle   = 0x00000000
  Interface[2]: NumberOfPipes     = 0
  Interface[3]: Length            = 16
  Interface[3]: InterfaceNumber   = 4
  Interface[3]: AlternateSetting  = 0
  Interface[3]: Class             = 0x00000000
  Interface[3]: SubClass          = 0x00000000
  Interface[3]: Protocol          = 0x00000000
  Interface[3]: InterfaceHandle   = 0x00000000
  Interface[3]: NumberOfPipes     = 0
  Interface[4]: Length            = 16
  Interface[4]: InterfaceNumber   = 5
  Interface[4]: AlternateSetting  = 0
  Interface[4]: Class             = 0x00000000
  Interface[4]: SubClass          = 0x00000000
  Interface[4]: Protocol          = 0x00000000
  Interface[4]: InterfaceHandle   = 0x00000000
  Interface[4]: NumberOfPipes     = 0
[3142 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[3142 ms]  >>>  URB 16 going down  >>>
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 56
  Interface: InterfaceNumber   = 2
  Interface: AlternateSetting  = 0
  Interface: Class             = 0x00000000
  Interface: SubClass          = 0x00000000
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 00000000
  Interface: NumberOfPipes     = 0
[3145 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=832f0090, IRQL=0
[3145 ms]  <<<  URB 16 coming back  <<<
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 16
  Interface: InterfaceNumber   = 2
  Interface: AlternateSetting  = 0
  Interface: Class             = 0x00000001
  Interface: SubClass          = 0x00000002
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 83621580
  Interface: NumberOfPipes     = 0
[3145 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[3145 ms]  >>>  URB 17 going down  >>>
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 56
  Interface: InterfaceNumber   = 2
  Interface: AlternateSetting  = 3
  Interface: Class             = 0x00000000
  Interface: SubClass          = 0x00000000
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 00000000
  Interface: NumberOfPipes     = 0
[3187 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=83539d80, IRQL=0
[3187 ms]  <<<  URB 17 coming back  <<<
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 56
  Interface: InterfaceNumber   = 2
  Interface: AlternateSetting  = 3
  Interface: Class             = 0x00000001
  Interface: SubClass          = 0x00000002
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 833b9d68
  Interface: NumberOfPipes     = 2
  Interface: Pipes[0] : MaximumPacketSize = 0x00000128
  Interface: Pipes[0] : EndpointAddress   = 0x00000003
  Interface: Pipes[0] : Interval          = 0x00000001
  Interface: Pipes[0] : PipeType          = 0x00000001 (UsbdPipeTypeIsochronous)
  Interface: Pipes[0] : PipeHandle        = 0x833b9d84
  Interface: Pipes[0] : MaxTransferSize   = 0x00000000
  Interface: Pipes[0] : PipeFlags         = 0x00000000
  Interface: Pipes[1] : MaximumPacketSize = 0x00000003
  Interface: Pipes[1] : EndpointAddress   = 0x00000083
  Interface: Pipes[1] : Interval          = 0x00000001
  Interface: Pipes[1] : PipeType          = 0x00000001 (UsbdPipeTypeIsochronous)
  Interface: Pipes[1] : PipeHandle        = 0x833b9da4
  Interface: Pipes[1] : MaxTransferSize   = 0x00000000
  Interface: Pipes[1] : PipeFlags         = 0x00000000
[3187 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[3187 ms]  >>>  URB 18 going down  >>>
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 76
  Interface: InterfaceNumber   = 4
  Interface: AlternateSetting  = 0
  Interface: Class             = 0x00000000
  Interface: SubClass          = 0x00000000
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 00000000
  Interface: NumberOfPipes     = 0
[3190 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=835fced8, IRQL=0
[3190 ms]  <<<  URB 18 coming back  <<<
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 16
  Interface: InterfaceNumber   = 4
  Interface: AlternateSetting  = 0
  Interface: Class             = 0x00000001
  Interface: SubClass          = 0x00000002
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 83621580
  Interface: NumberOfPipes     = 0
[3190 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[3190 ms]  >>>  URB 19 going down  >>>
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 76
  Interface: InterfaceNumber   = 4
  Interface: AlternateSetting  = 3
  Interface: Class             = 0x00000000
  Interface: SubClass          = 0x00000000
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 00000000
  Interface: NumberOfPipes     = 0
[3207 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=832f0090, IRQL=0
[3207 ms]  <<<  URB 19 coming back  <<<
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 36
  Interface: InterfaceNumber   = 4
  Interface: AlternateSetting  = 3
  Interface: Class             = 0x00000001
  Interface: SubClass          = 0x00000002
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 834a36c8
  Interface: NumberOfPipes     = 1
  Interface: Pipes[0] : MaximumPacketSize = 0x00000128
  Interface: Pipes[0] : EndpointAddress   = 0x00000085
  Interface: Pipes[0] : Interval          = 0x00000001
  Interface: Pipes[0] : PipeType          = 0x00000001 (UsbdPipeTypeIsochronous)
  Interface: Pipes[0] : PipeHandle        = 0x834a36e4
  Interface: Pipes[0] : MaxTransferSize   = 0x00000000
  Interface: Pipes[0] : PipeFlags         = 0x00000000
[3207 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[3207 ms]  >>>  URB 20 going down  >>>
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 76
  Interface: InterfaceNumber   = 5
  Interface: AlternateSetting  = 0
  Interface: Class             = 0x00000000
  Interface: SubClass          = 0x00000000
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 00000000
  Interface: NumberOfPipes     = 0
[3210 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=83539d80, IRQL=0
[3210 ms]  <<<  URB 20 coming back  <<<
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 16
  Interface: InterfaceNumber   = 5
  Interface: AlternateSetting  = 0
  Interface: Class             = 0x00000001
  Interface: SubClass          = 0x00000002
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 83621580
  Interface: NumberOfPipes     = 0
[3210 ms] UsbSnoop - MyDispatchInternalIOCTL(baca1e80) : fdo=83338c10,
Irp=8348a7c0, IRQL=0
[3210 ms]  >>>  URB 21 going down  >>>
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 76
  Interface: InterfaceNumber   = 5
  Interface: AlternateSetting  = 3
  Interface: Class             = 0x00000000
  Interface: SubClass          = 0x00000000
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 00000000
  Interface: NumberOfPipes     = 0
[3227 ms] UsbSnoop - MyInternalIOCTLCompletion(baca1db0) :
fido=00000000, Irp=8348a7c0, Context=835fced8, IRQL=0
[3227 ms]  <<<  URB 21 coming back  <<<
-- URB_FUNCTION_SELECT_INTERFACE:
  ConfigurationHandle     = 0x835a8978
  Interface: Length            = 36
  Interface: InterfaceNumber   = 5
  Interface: AlternateSetting  = 3
  Interface: Class             = 0x00000001
  Interface: SubClass          = 0x00000002
  Interface: Protocol          = 0x00000000
  Interface: InterfaceHandle   = 83631b58
  Interface: NumberOfPipes     = 1
  Interface: Pipes[0] : MaximumPacketSize = 0x00000128
  Interface: Pipes[0] : EndpointAddress   = 0x00000086
  Interface: Pipes[0] : Interval          = 0x00000001
  Interface: Pipes[0] : PipeType          = 0x00000001 (UsbdPipeTypeIsochronous)
  Interface: Pipes[0] : PipeHandle        = 0x83631b74
  Interface: Pipes[0] : MaxTransferSize   = 0x00000000
  Interface: Pipes[0] : PipeFlags         = 0x00000000
[3228 ms] UsbSnoop - MyDispatchPNP(baca2ee0) : IRP_MJ_PNP
(IRP_MN_QUERY_CAPABILITIES)
[3228 ms] UsbSnoop - MyDispatchPNP(baca2ee0) : IRP_MJ_PNP
(IRP_MN_QUERY_PNP_DEVICE_STATE)
[3228 ms] UsbSnoop - MyDispatchPNP(baca2ee0) : IRP_MJ_PNP
(IRP_MN_QUERY_DEVICE_RELATIONS)
[3288 ms] UsbSnoop - MyDispatchPNP(baca2ee0) : IRP_MJ_PNP
(IRP_MN_QUERY_DEVICE_RELATIONS)


Audio driver "magic" successful response:

usb_get_driver_np returned -61
1 get descriptor returned 18, bytes: 12 01 00 01 00 00 00 08 ba 0d 00
30 38 01 01 02 00 01 "...........08....."
2 get descriptor returned 9, bytes: 09 02 86 02 07 01 00 80 fa "........."
3 get descriptor returned 600, bytes: 09 02 86 02 07 01 00 80 fa 09 04
00 00 00 fe 01 00 00 07 21 05 ff ff 08 00 09 04 01 00 00 01 01 00 02
0c 24 01 00 01 60 00 04 02 03 04 05 0c 24 02 05 01 01 00 02 03 00 00
00 09 24 03 06 01 06 00 05 00 0c 24 02 07 01 01 00 02 03 00 00 00 09
24 03 08 01 06 00 07 00 0c 24 02 01 01 06 00 02 03 00 00 00 09 24 03
02 01 01 00 01 00 0c 24 02 03 01 06 00 02 03 00 00 00 09 24 03 04 01
01 00 03 00 09 04 02 00 00 01 02 00 00 09 04 02 02 02 01 02 00 00 07
24 01 05 01 01 00 0e 24 02 01 02 03 18 00 40 1f 00 80 bb 00 09 05 03
05 28 01 01 00 83 07 25 01 00 00 00 00 09 05 83 01 03 00 01 02 00 09
04 02 03 02 01 02 00 00 07 24 01 05 01 01 00 0e 24 02 01 02 03 18 00
40 1f 00 80 bb 00 09 05 03 05 28 01 01 00 83 07 25 01 00 00 00 00 09
05 83 01 03 00 01 02 00 09 04 03 00 00 01 02 00 00 09 04 03 02 02 01
02 00 00 07 24 01 07 01 01 00 0e 24 02 01 02 03 18 00 40 1f 00 80 bb
00 09 05 04 05 28 01 01 00 84 07 25 01 00 00 00 00 09 05 84 01 03 00
01 02 00 09 04 03 03 02 01 02 00 00 07 24 01 07 01 01 00 0e 24 02 01
02 03 18 00 40 1f 00 80 bb 00 09 05 04 05 28 01 01 00 84 07 25 01 00
00 00 00 09 05 84 01 03 00 01 02 00 09 04 03 06 01 01 02 00 00 07 24
01 07 01 01 20 0e 24 02 03 02 02 10 00 40 1f 00 80 bb 00 09 05 04 0d
c0 00 01 00 00 07 25 01 01 00 00 00 09 04 04 00 00 01 02 00 00 09 04
04 02 01 01 02 00 00 07 24 01 02 01 01 00 0e 24 02 01 02 03 18 00 40
1f 00 80 bb 00 09 05 85 05 28 01 01 00 00 07 25 01 00 00 00 00 09 04
04 03 01 01 02 00 00 07 24 01 02 01 01 00 0e 24 02 01 02 03 18 00 40
1f 00 80 bb 00 09 05 85 0d 28 01 01 00 00 07 25 01 01 00 00 00 09 04
05 00 00 01 02 00 00 09 04 05 02 01 01 02 00 00 07 24 01 04 01 01 00
0e 24 02 01 02 03 18 00 40 1f 00 80 bb 00 09 05 86 05 28 01 01 00 00
07 25 01 00 00 00 00 09 04 05 03 01 01 02 00 00 07 24 01 04 01 01 00
0e 24 02 01 02 03 18 00 40 1f 00 80 bb 00
"...................!...............$...`.......$...........$........$...........$........$...........$........$...........$..........................$......$......@.........(.....%........................$......$......@.........(.....%.................................$......$......@.........(.....%........................$......$......@.........(.....%........................$....
.$......@...............%........................$......$......@.........(.....%...............$......$......@.........(.....%........................$......$......@.........(.....%...............$......$......@....."
4 control msg returned 1, bytes: 01 "."
5 control msg returned 1, bytes: 01 "."
6 control msg returned 1, bytes: 01 "."
7 control msg returned 1, bytes: 01 "."
8 control msg returned 1, bytes: 01 "."
9 control msg returned 1, bytes: 01 "."
10 control msg returned 1, bytes: 01 "."
11 control msg returned 1, bytes: 01 "."
12 control msg returned 1, bytes: 01 "."
13 control msg returned 1, bytes: 01 "."
14 control msg returned 1, bytes: 02 "."
15 set configuration returned 0
15 set alternate setting returned 0
16 set alternate setting returned 0
17 set alternate setting returned -22
18 set alternate setting returned 0
19 set alternate setting returned -22
20 set alternate setting returned 0
21 set alternate setting returned -22

I need help! How can I enable the capture/playback?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Digidesign Mbox2 - usb support
@ 2009-08-15 14:59 Damien Zammit
  0 siblings, 0 replies; 4+ messages in thread
From: Damien Zammit @ 2009-08-15 14:59 UTC (permalink / raw)
  To: alsa-devel

I have a Digidesign Mbox2 and I am trying to write an open source alsa
driver for it.
It is a usb self powered device, and I used usbsnoop on the Windows XP
drivers to capture the initialisation of the device.
It doesn't seem to require any firmware, as I was able to playback the
init code to the device over libusb
and all the lights turned on (which hopefully means it's awaiting
further instructions to play/record).

I have written some C code which sends the init codes to the device
using raw URB, but I really need someone
who is familiar with snd-usb-audio to take a look at my lsusb output
in case it is a standard device before I waste any more time on it.

Please find the debugging output for my experimental initialisation driver here:

http://cytdesign.com/mbox2/mbox2.tar.bz2

Note: After running my init codes, all the lights appeared on the device just
as it does when you boot windows.

Please contact me at damien.zammit [at] gmail.com if you are able to
help.  I'm not up to speed with mailing lists, I would prefer an email
to my account
if you are replying to me.

Thanks,
Damien Zammit

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-08-17  6:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-16  8:27 Digidesign Mbox2 - usb support Damien Zammit
  -- strict thread matches above, loose matches on Subject: below --
2009-08-17  6:46 Damien Zammit
2009-08-16 16:44 Damien Zammit
2009-08-15 14:59 Damien Zammit

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.