I have a device based on an EZUSB-FX2 part.  It sends data with ISO
packets.  My code uses the usbdevice_fs calls.  It works on several
systems with 1.1 USB ports, but not on a 2.0 system.  The call to 

        ioctl (device_fd, USBDEVFS_SUBMITURB, urb) 

gets an error return -EINVAL.  I have tracked this into the usb code as
far as the call to usb_submit_urb() in proc_submiturb() (in devio.c).
I have not yet figured out where in the ehci* stuff this goes.

The code is:

    ...
    #define NUM_PKTS 1
    #define NUM_URBS 2
    struct usbdevfs_urb *urbs[NUM_URBS];
    #define VIDEO_BUF_SIZE 1022
    unsigned char video_buf[VIDEO_BUF_SIZE][NUM_URBS];
    int ep_video = 2 | USB_DIR_IN;
    ...
    for (i=0; i<NUM_URBS; i++) {
        struct usbdevfs_urb *urb;
        urbs[i] = (struct usbdevfs_urb *)malloc(sizeof(struct usbdevfs_urb) +
                NUM_PKTS * sizeof(struct usbdevfs_iso_packet_desc));
        urb = urbs[i];

        urb->type = USBDEVFS_URB_TYPE_ISO;
        urb->endpoint = ep_video;
        urb->status = 0;    // ????
        urb->flags = USBDEVFS_URB_ISO_ASAP;
        urb->buffer = &video_buf[0][i];
        urb->buffer_length = VIDEO_BUF_SIZE;
        // urb->actual_length
        urb->start_frame = 0;
        urb->error_count = 0;   // ????
        urb->signr = 0;     // no signal
        urb->usercontext = NULL;
        urb->number_of_packets = NUM_PKTS;
        for (j=0; j<NUM_PKTS; j++) {
            urb->iso_frame_desc[j].length = VIDEO_BUF_SIZE;
            }
        result = ioctl (device_fd, USBDEVFS_SUBMITURB, urb);
        ...

This error occurs on the first call.

I am using 2.4.23.  I tried a 2.6.2 system and got the same error (but I
have other applications that don't work under 2.6 yet).

Log message excerpts below.  I'm using alternative setting 2.

-- 
Don Reid

-------------------------------------------
Feb 11 15:14:01 cvlx11 kernel: ehci_hcd 00:1d.7: USB 2.0 enabled, EHCI 1.00, driver 
2003-Jun-19/2.4
Feb 11 15:14:01 cvlx11 kernel: Manufacturer: Linux 2.4.23 ehci_hcd
Feb 11 15:14:01 cvlx11 kernel: Product: Intel Corp. 82801DB USB2
Feb 11 15:14:01 cvlx11 kernel: SerialNumber: 00:1d.7
Feb 11 15:14:01 cvlx11 kernel: hub.c: USB hub found
Feb 11 15:14:01 cvlx11 kernel: hub.c: 6 ports detected

-------------------------------------------
Feb 11 15:14:43 cvlx11 kernel: hub.c: new USB device 00:1d.7-2.4, assigned address 5
Feb 11 15:14:43 cvlx11 kernel: Manufacturer: Agilent Technologies
Feb 11 15:14:43 cvlx11 kernel: Product: Camera Module Evaluation Board v2.0
Feb 11 15:14:43 cvlx11 kernel: usb.c: USB device 5 (vend/prod 0x957/0x199) is not 
claimed by any active driver.
Feb 11 15:14:43 cvlx11 kernel:   Length              = 18
Feb 11 15:14:43 cvlx11 kernel:   DescriptorType      = 01
Feb 11 15:14:43 cvlx11 kernel:   USB version         = 2.00
Feb 11 15:14:43 cvlx11 kernel:   Vendor:Product      = 0957:0199
Feb 11 15:14:43 cvlx11 kernel:   MaxPacketSize0      = 64
Feb 11 15:14:43 cvlx11 kernel:   NumConfigurations   = 1
Feb 11 15:14:43 cvlx11 kernel:   Device version      = 2.00
Feb 11 15:14:43 cvlx11 kernel:   Device Class:SubClass:Protocol = 00:00:00
Feb 11 15:14:43 cvlx11 kernel:     Per-interface classes
Feb 11 15:14:43 cvlx11 kernel: Configuration:
Feb 11 15:14:43 cvlx11 kernel:   bLength             =    9
Feb 11 15:14:43 cvlx11 kernel:   bDescriptorType     =   02
Feb 11 15:14:43 cvlx11 kernel:   wTotalLength        = 004e
Feb 11 15:14:43 cvlx11 kernel:   bNumInterfaces      =   01
Feb 11 15:14:43 cvlx11 kernel:   bConfigurationValue =   01
Feb 11 15:14:43 cvlx11 kernel:   iConfiguration      =   00
Feb 11 15:14:43 cvlx11 kernel:   bmAttributes        =   80
Feb 11 15:14:43 cvlx11 kernel:   MaxPower            =  500mA
Feb 11 15:14:43 cvlx11 kernel:
Feb 11 15:14:43 cvlx11 kernel:   Interface: 0
Feb 11 15:14:43 cvlx11 kernel:   Alternate Setting:  0
Feb 11 15:14:43 cvlx11 kernel:     bLength             =    9
Feb 11 15:14:43 cvlx11 kernel:     bDescriptorType     =   04
Feb 11 15:14:43 cvlx11 kernel:     bInterfaceNumber    =   00
Feb 11 15:14:43 cvlx11 kernel:     bAlternateSetting   =   00
Feb 11 15:14:43 cvlx11 kernel:     bNumEndpoints       =   02
Feb 11 15:14:43 cvlx11 kernel:     bInterface Class:SubClass:Protocol = 00:00:00
Feb 11 15:14:43 cvlx11 kernel:     iInterface          =   00
Feb 11 15:14:43 cvlx11 kernel:     Endpoint:
Feb 11 15:14:43 cvlx11 kernel:       bLength             =    7
Feb 11 15:14:43 cvlx11 kernel:       bDescriptorType     =   05
Feb 11 15:14:43 cvlx11 kernel:       bEndpointAddress    =   81 (in)
Feb 11 15:14:43 cvlx11 kernel:       bmAttributes        =   03 (Interrupt)
Feb 11 15:14:43 cvlx11 kernel:       wMaxPacketSize      = 0000
Feb 11 15:14:43 cvlx11 kernel:       bInterval           =   00
Feb 11 15:14:43 cvlx11 kernel:     Endpoint:
Feb 11 15:14:43 cvlx11 kernel:       bLength             =    7
Feb 11 15:14:43 cvlx11 kernel:       bDescriptorType     =   05
Feb 11 15:14:43 cvlx11 kernel:       bEndpointAddress    =   82 (in)
Feb 11 15:14:43 cvlx11 kernel:       bmAttributes        =   01 (Isochronous)
Feb 11 15:14:43 cvlx11 kernel:       wMaxPacketSize      = 0000
Feb 11 15:14:43 cvlx11 kernel:       bInterval           =   01
Feb 11 15:14:43 cvlx11 kernel:   Alternate Setting:  1
Feb 11 15:14:43 cvlx11 kernel:     bLength             =    9
Feb 11 15:14:43 cvlx11 kernel:     bDescriptorType     =   04
Feb 11 15:14:43 cvlx11 kernel:     bInterfaceNumber    =   00
Feb 11 15:14:43 cvlx11 kernel:     bAlternateSetting   =   01
Feb 11 15:14:43 cvlx11 kernel:     bNumEndpoints       =   02
Feb 11 15:14:43 cvlx11 kernel:     bInterface Class:SubClass:Protocol = 00:00:00
Feb 11 15:14:43 cvlx11 kernel:     iInterface          =   00
Feb 11 15:14:43 cvlx11 kernel:     Endpoint:
Feb 11 15:14:43 cvlx11 kernel:       bLength             =    7
Feb 11 15:14:43 cvlx11 kernel:       bDescriptorType     =   05
Feb 11 15:14:43 cvlx11 kernel:       bEndpointAddress    =   81 (in)
Feb 11 15:14:43 cvlx11 kernel:       bmAttributes        =   03 (Interrupt)
Feb 11 15:14:43 cvlx11 kernel:       wMaxPacketSize      = 0000
Feb 11 15:14:43 cvlx11 kernel:       bInterval           =   00
Feb 11 15:14:43 cvlx11 kernel:     Endpoint:
Feb 11 15:14:43 cvlx11 kernel:       bLength             =    7
Feb 11 15:14:43 cvlx11 kernel:       bDescriptorType     =   05
Feb 11 15:14:43 cvlx11 kernel:       bEndpointAddress    =   02 (out)
Feb 11 15:14:43 cvlx11 kernel:       bmAttributes        =   02 (Bulk)
Feb 11 15:14:43 cvlx11 kernel:       wMaxPacketSize      = 0200
Feb 11 15:14:43 cvlx11 kernel:       bInterval           =   00
Feb 11 15:14:43 cvlx11 kernel:   Alternate Setting:  2
Feb 11 15:14:43 cvlx11 kernel:     bLength             =    9
Feb 11 15:14:43 cvlx11 kernel:     bDescriptorType     =   04
Feb 11 15:14:43 cvlx11 kernel:     bInterfaceNumber    =   00
Feb 11 15:14:43 cvlx11 kernel:     bAlternateSetting   =   02
Feb 11 15:14:43 cvlx11 kernel:     bNumEndpoints       =   02
Feb 11 15:14:43 cvlx11 kernel:     bInterface Class:SubClass:Protocol = 00:00:00
Feb 11 15:14:43 cvlx11 kernel:     iInterface          =   00
Feb 11 15:14:43 cvlx11 kernel:     Endpoint:
Feb 11 15:14:43 cvlx11 kernel:       bLength             =    7
Feb 11 15:14:43 cvlx11 kernel:       bDescriptorType     =   05
Feb 11 15:14:43 cvlx11 kernel:       bEndpointAddress    =   81 (in)
Feb 11 15:14:43 cvlx11 kernel:       bmAttributes        =   03 (Interrupt)
Feb 11 15:14:43 cvlx11 kernel:       wMaxPacketSize      = 0010
Feb 11 15:14:43 cvlx11 kernel:       bInterval           =   14
Feb 11 15:14:43 cvlx11 kernel:     Endpoint:
Feb 11 15:14:43 cvlx11 kernel:       bLength             =    7
Feb 11 15:14:43 cvlx11 kernel:       bDescriptorType     =   05
Feb 11 15:14:43 cvlx11 kernel:       bEndpointAddress    =   82 (in)
Feb 11 15:14:43 cvlx11 kernel:       bmAttributes        =   01 (Isochronous)
Feb 11 15:14:43 cvlx11 kernel:       wMaxPacketSize      = 0400
Feb 11 15:14:43 cvlx11 kernel:       bInterval           =   01

-------------------------------------------


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to