Quantcast

LIBUSB_ERROR_IO

classic Classic list List threaded Threaded
19 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

LIBUSB_ERROR_IO

mark205
Hi there,
I'm developing on an old machine and using the openkinect driver (isochronous transfers).
When I try a transfer: 
.....
strm->xfers[i] = libusb_alloc_transfer(pkts);
libusb_fill_iso_transfer(strm->xfers[i], dev->dev, ep, bufp, pkts * len, pkts, iso_callback, strm, 0);
libusb_set_iso_packet_lengths(strm->xfers[i], len);
ret = libusb_submit_transfer(strm->xfers[i]);
...
in ret I get -1 and I have discovered that means: LIBUSB_ERROR_IO
Can you give me more information about this error?
Cheers

----
Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP autenticato? GRATIS solo con Email.it

Sponsor:
Apri Conto Corrente Arancio entro il 28 febbraio 2011 e ricevi 100 euro da spendere su Media World compra online. Aprilo adesso!
Clicca qui


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Tim Roberts
[hidden email] wrote:

> Hi there,
> I'm developing on an old machine and using the openkinect driver
> (isochronous transfers).
> When I try a transfer:
> .....
> strm->xfers[i] = libusb_alloc_transfer(pkts);
> libusb_fill_iso_transfer(strm->xfers[i], dev->dev, ep, bufp, pkts *
> len, pkts, iso_callback, strm, 0);
> libusb_set_iso_packet_lengths(strm->xfers[i], len);
> ret = libusb_submit_transfer(strm->xfers[i]);
> ...
> in ret I get -1 and I have discovered that means: LIBUSB_ERROR_IO
> Can you give me more information about this error?

It generally means libusb received an error when it went to submit the
ioctl.  You might print "errno" and see if it has anything interesting.

Perhaps you should post more of the code.  What endpoint number did you
use, exactly?  What are the values of pkts and len?  What is the maximum
packet size of your isochronous pipe?

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Tim Roberts
[hidden email] wrote:
>
> Thank you for the interest.
>
> The code works on new machines with the x86 architecture but with
> different machines it doesn't ( 700 800 Mhz and usb 2.0 ports).
> I'm new with libusb so I don't know how to get the maximum packet size
> of the isochronous pipe.

Well, that's something you need to KNOW.  In fact, before you can use an
isochronous pipe, you have to choose the correct "alternate setting" for
your interface that has the bandwidth you need, and you select that
based on the packet size.  Perhaps you should check lsusb to find out.


> Anyway, I call this function:
>
> res = fnusb_start_iso(&dev->usb_cam, &dev->depth_isoc, depth_process,
> 0x82,
> NUM_XFERS, PKTS_PER_XFER, DEPTH_PKTBUF);
>
> with
>
> #define PKTS_PER_XFER 16
> #define NUM_XFERS 16
> #define DEPTH_PKTBUF 1920

That would seem to imply a packet size of 1,920 bytes, which would have
to be done as multiple transfers.  Maybe 2 transfers of 960?

Did you try printing "errno" to see if it was helpful?

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Tim Roberts
[hidden email] wrote:
> Il 08/02/2011 21:00, Tim Roberts ha scritto:
>> to be done as multiple transfers.  Maybe 2 transfers of 960?
>>
>> Did you try printing "errno" to see if it was helpful?
> I tried to print the standard error ( ./test 2>error.log ) but there
> was no output from libusb. I have just seen the  libusb_set_debug()
> <http://libusb.sourceforge.net/api-1.0/group__lib.html#ga5f8376b7a863a5a8d5b8824feb8a427a>
> function so I'll try it later.

What I meant was adding something in your code no more complicated than
this:
    printf( "%d\n", errno );

What do you get from "lsusb -v"?

> About the isochronous pipe, there should be something in the code
> (because it works on new computers..) so I'll try to find out it.
>
> The usb controller can transmit about 30 MB/s (it's possible to use
> also 15 MB/s in theory). Even if I was thinking that is a lot for that
> cpu, I was hoping to get at least one frame but I didn't.

An isochronous pipe is limited to 24MB/s, but you're not using the
maximum bandwidth setup.  Assuming the 1920 is correct, your pipe is
limited to 15MB/s.  There are some really bad host controllers in older
computers that would have trouble even at that rate; it's possible you
have one of those.

Is this a non-standard web camera?  There are standard drivers that will
handle a USB Video Class camera.

> This error occurs during the initialization so maybe there is
> something else wrong.

Right.

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Tim Roberts
[hidden email] wrote:
>
> I'm using the kinect. I tried the ./test 2>error.log this afternoon but
> now i can't access to it, I'll do it tomorrow morning.
> Even if the pipe is limited to 15MB/s the initialization phase should
> produce at least some output and not the I/O error.
> Do you think that is possible to get at least 5-10 frames per second
> with that cpu?

I'll be honest.  There weren't very many machines in the sub-1GHz class
that had USB 2.0 support at all, in part because of the CPU demands.  A
USB 2.0 host controller fires as many as 8,000 interrupts per second.
That's a heavy load on a machine of that class, and we aren't even
talking about memory copies yet.

Also remember that USB is a timed protocol bus.  It can't just slow down
when it is overloaded.  If the CPU can't keep up, the protocol collapses.

Is the USB 2 controller on the motherboard, or is it an add-in card?

Are you checking for errors in all of your calls?  Is it possible one of
the earlier calls failed?

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Tim Roberts
[hidden email] wrote:
>
> The controller is on the motherboard. I tried also to modify the number
> of buffers and of packets but I had the same errors..
> I checked the other calls and they were fine.. So are you saying that
> the hopes to make it work are not a lot right (due to the HW limits)?

I'm dubious, but at this point we should be clear that we don't know WHY
the isoch transfer failed.  As I have suggested at least three times,
you really need to add this immediately after the failing call:
    printf( "%d\n", errno );
or even
    perror( "libusb_submit_transfer" );

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

mark205
Yep i'll do it tomorrow morning as soon as I can use it,

Cheers

Il 09/02/2011 00:36, Tim Roberts ha scritto:

> [hidden email] wrote:
>> The controller is on the motherboard. I tried also to modify the number
>> of buffers and of packets but I had the same errors..
>> I checked the other calls and they were fine.. So are you saying that
>> the hopes to make it work are not a lot right (due to the HW limits)?
> I'm dubious, but at this point we should be clear that we don't know WHY
> the isoch transfer failed.  As I have suggested at least three times,
> you really need to add this immediately after the failing call:
>      printf( "%d\n", errno );
> or even
>      perror( "libusb_submit_transfer" );
>

 
 
 --
 Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP autenticato? GRATIS solo con Email.it http://www.email.it/f
 
 Sponsor:
 Apri Conto Corrente Arancio entro il 28 febbraio 2011 e ricevi 100 euro da spendere su Media World compra online. Aprilo adesso!
 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=11254&d=9-2

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

mark205
In reply to this post by mark205
I tried the things that you suggested:
In the errno there is the error number 28
The lsusb -v output  instead is this: http://pastebin.com/b4r2aSk4

----
Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP autenticato? GRATIS solo con Email.it

Sponsor:
Stampa le tue foto su tela e crea i tuoi quadri personalizzati. In promozione esclusiva da soli euro 15.90!
Clicca qui


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Tim Roberts
In reply to this post by mark205
[hidden email] wrote:
> I tried the things that you suggest:
> The errno output is 28

28 is ENOSPC.  That means there is not enough free bandwidth available
to schedule your isochronous packets.

The camera has two high-bandwidth isochronous endpoints, each of which
does two 960-byte packets per microframe.  The audio device has two bulk
endpoints and two low-bandwidth interrupt endpoints.  Two high-bandwidth
endpoints would stress even a modern system.  My guess is that this
particular host controller has reserved part of the bandwidth for itself
for safety, and that doesn't leave enough for the camera.

There is no solution for this.  The camera doesn't have any fallback
settings, so it's all or nothing.  If it can't reserve the entire
bandwidth it needs, it won't operate at all.

It's interesting that the camera device violates the USB specification.
A device with isochronous packets is supposed to have its default
setting with no bandwidth required.  They have both of their
high-bandwidth endpoints running in their default setting.

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Alan Stern
On Wed, 9 Feb 2011, Tim Roberts wrote:

> [hidden email] wrote:
> > I tried the things that you suggest:
> > The errno output is 28
>
> 28 is ENOSPC.  That means there is not enough free bandwidth available
> to schedule your isochronous packets.
>
> The camera has two high-bandwidth isochronous endpoints, each of which
> does two 960-byte packets per microframe.  The audio device has two bulk
> endpoints and two low-bandwidth interrupt endpoints.  Two high-bandwidth
> endpoints would stress even a modern system.  My guess is that this
> particular host controller has reserved part of the bandwidth for itself
> for safety, and that doesn't leave enough for the camera.

I don't think there's any reserved bandwidth.

The total number of periodic bytes per microframe adds up to 4440,
which is tight but doable (a high-speed bus is limited to about 5100
periodic bytes/microframe).

A hint of the real problem can be found from this comment in the MUSB
host controller driver:

        /* Bits 11 & 12 of wMaxPacketSize encode high bandwidth multiplier.
         * Some musb cores don't support high bandwidth ISO transfers; and
         * we don't (yet!) support high bandwidth interrupt transfers.
         */

Apparently this particular core is one of those not supporting
high-bandwidth isochronous transfers.  The device would probably work
okay on a PC.

Alan Stern


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Tim Roberts
In reply to this post by mark205
[hidden email] wrote:
> Maybe I can use only one stream, the depth one.. it's the important
> thing for me..

I don't think so, because Microsoft has configured things stupidly.
Both endpoints are part of one interface.  If all of the endpoints can't
be satisfied, then the interface cannot be used at all.

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Alan Stern
In reply to this post by mark205
On Wed, 9 Feb 2011, [hidden email]  wrote:

> Hi guys,
>
> They seems very bad news.. yes I agree with you,  I think the problem is
> the MUSB host controller driver. In other computers it works well.
> Is there really no solution? even if I need just one frame?

I don't think so.  You can try asking the MUSB developers on the
linux-usb mailing list.

Alan Stern


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

mark205
Il 09/02/2011 22:12, Alan Stern ha scritto:

> On Wed, 9 Feb 2011, [hidden email]  wrote:
>
>> Hi guys,
>>
>> They seems very bad news.. yes I agree with you,  I think the problem is
>> the MUSB host controller driver. In other computers it works well.
>> Is there really no solution? even if I need just one frame?
> I don't think so.  You can try asking the MUSB developers on the
> linux-usb mailing list.
>
> Alan Stern
>
>

I understand. Ok, thank you for the help.

If by chance any of you has some idea, I'm here :)



------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

mark205
I was thinking.. what if I oveclock the processor?
Do you think that the device musb will be still a problem?

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Alan Stern
On Thu, 10 Feb 2011, [hidden email]  wrote:

> I was thinking.. what if I oveclock the processor?
> Do you think that the device musb will be still a problem?

Yes.  The musb driver refuses to use high-bandwidth isochronous
endpoints at all if the hardware doesn't support them.  It doesn't
matter what bandwidth you actually ask for or how fast the CPU runs,
the driver will still give you an error.

You can change the musb driver if you want, by editing the source code.  
In drivers/usb/musb/musb_host.c, in the musb_urb_enqueue() routine, get
rid of these lines:

                if (!ok) {
                        ret = -EMSGSIZE;
                        goto done;
                }

But even if you do this, it still might not work.

Alan Stern


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

Tim Roberts
In reply to this post by mark205
[hidden email] wrote:
> I was thinking.. what if I oveclock the processor?
> Do you think that the device musb will be still a problem?

It isn't going to make a bit of difference.  The problem is NOT that the
system tried to use the device but ran out of horsepower and gave up.
It's a configuration problem.  The system determined that the
configuration could not be supported, and failed before it ever tried
anything.  It's going to come to that conclusion regardless of what you
tweak in the hardware.

There is no magic spell here.  You can't expect to use 2010 peripherals
on a 1993 computer.

--
Tim Roberts, [hidden email]
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

mark205
In reply to this post by Alan Stern
Il 10/02/2011 15:18, Alan Stern ha scritto:

> On Thu, 10 Feb 2011, [hidden email]  wrote:
>
>> I was thinking.. what if I oveclock the processor?
>> Do you think that the device musb will be still a problem?
> Yes.  The musb driver refuses to use high-bandwidth isochronous
> endpoints at all if the hardware doesn't support them.  It doesn't
> matter what bandwidth you actually ask for or how fast the CPU runs,
> the driver will still give you an error.
>
> You can change the musb driver if you want, by editing the source code.
> In drivers/usb/musb/musb_host.c, in the musb_urb_enqueue() routine, get
> rid of these lines:
>
> if (!ok) {
> ret = -EMSGSIZE;
> goto done;
> }
>
> But even if you do this, it still might not work.
>
> Alan Stern
>
>

It makes sense yes.

Ok so I have to recompile the kernel. I hope it works..

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

mark205
In reply to this post by Tim Roberts
Il 10/02/2011 17:55, Tim Roberts ha scritto:

> [hidden email] wrote:
>> I was thinking.. what if I oveclock the processor?
>> Do you think that the device musb will be still a problem?
> It isn't going to make a bit of difference.  The problem is NOT that the
> system tried to use the device but ran out of horsepower and gave up.
> It's a configuration problem.  The system determined that the
> configuration could not be supported, and failed before it ever tried
> anything.  It's going to come to that conclusion regardless of what you
> tweak in the hardware.
>
> There is no magic spell here.  You can't expect to use 2010 peripherals
> on a 1993 computer.
>

Hi Tom,

I know, you're right but I want to try all the possible solutions
because if I don't succeed it's like loosing some months of work..
I was told that the Kinect has worked (at least the initialization
phase) with a 200 MHz linux router so maybe I can do it in some way.

The problem is the USB controller because about the CPU, I can decide
also to overclock it..

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: LIBUSB_ERROR_IO

mark205
In reply to this post by Alan Stern
Il 10/02/2011 15:18, Alan Stern ha scritto:
On Thu, 10 Feb 2011, [hidden email]  wrote:

I was thinking.. what if I oveclock the processor?
Do you think that the device musb will be still a problem?
Yes.  The musb driver refuses to use high-bandwidth isochronous
endpoints at all if the hardware doesn't support them.  It doesn't
matter what bandwidth you actually ask for or how fast the CPU runs,
the driver will still give you an error.

You can change the musb driver if you want, by editing the source code.  
In drivers/usb/musb/musb_host.c, in the musb_urb_enqueue() routine, get 
rid of these lines:

		if (!ok) {
			ret = -EMSGSIZE;
			goto done;
		}

But even if you do this, it still might not work.

Alan Stern



Hi,

My kernel uses different patches so there wasn't that code :(

The patched drivers/usb/musb/musb_host.c is on: http://pastebin.com/24Dgxr7V

There is written:
  1. INTERUPPT and ISOCHRONOUS transfers are scheduled to the other endpoints.
  2.  * So far that scheduling is both dumb and optimistic:  the endpoint will be
  3.  * "claimed" until its software queue is no longer refilled.  No multiplexing
  4.  * of transfers between endpoints, or anything clever.
It doesn't seem very good..

------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Libusb-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/libusb-devel
Loading...