[haiku-development] Re: Haiku USB: actual_length returned from send_request() is differ than amount of transferred data.

  • From: "Michael Lotz" <mmlr@xxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Sat, 19 Jul 2008 18:04:57 +0200

On Fri, 18 Jul 2008 22:51:05 +0200, Siarzhuk Zharski wrote
> Hi!
> 
> During work on some USB2Ethernet BeOS/Haiku driver I have observed 
> that send_request call behaves a bit differently on Haiku than on 
>
> ...
> 
> The "write register value" call on Haiku returns 10 as actual_length 
> of transferred data. On R5 this code returns only 2. I have quickly 
> browse through Haiku USB implementation and found that  this 
> parameter is set by corresponding transfer callback to size of _all_ 
> data transferred during this send_request call. I thought that usual 
> user want only transferred data size here. Am I right? :-)

Yes, that's right, fixed in r26508. It should have happened only for the
outgoing requests, not for the incoming ones, as another codepath is taken 
there.

> By the way, the driver code is currently available at 
> http://sis4be.cvs.sourceforge.net/sis4be/usb_asix/. It inherits 
> skeleton functionality from Haiku's usb_ecm one and support ASIX 
> AX88172/AX88772/AX88178-based USB2Ethernet adapters. It is also 
> known as "if_axe" on FreeBSD and as "asix" on Linux. May it be 
> useful to beautify Haiku's Tree too? ;-)

Nice work! I would say there's no reason not to include it, so from my
perspective feel free to add it.

Regards
Michael

Other related posts: