On Thu, 8 Dec 2005, Paul Bonser wrote:

> Hello,
> 
> I am working on a linux driver for the Mixman dm2 (
> http://mixman.com/products/dm2.html ), and I'm having a bit of an
> issue.
> The device has a bunch of buttons and doo-dads (including some LEDs),
> and communicates with the computer via an interrupt (for the status of
> all the buttons and doo-dads) and a bulk transfer (for setting the
> LEDs).
> The interrupt works fine on the two computers I've tried it on, and
> the driver happily writes the data out to the proc file that I've set
> up. The bulk transfer, on the other hand, doesn't work on my main
> computer, returning a -EINVAL (-22) error somewhere in the
> submit_bulk_urb function. The callback is never called, so it is
> failing somewhere before the urb is submitted.

Actually it's failing as part of the submission.

> My motherboard is an asus K8V-Deluxe SE (
> http://usa.asus.com/products4.aspx?modelmenu=2&model=790&l1=3&l2=14&l3=67
> ), and has a VIA  K8T800 chipset, VT82xxxxx UHCI.
> Anyway, setting the LEDs worked on the default Ubuntu 2.6.13 kernel on
> my tablet computer, but in my desktop, running Gentoo with my
> self-built 2.6.14 kernel, it doesn't work. The device works under
> Windows on my computer (with the provided drivers), and doesn't work
> on my 32-bit Gentoo install, so I'm guessing it has something to do
> with either my driver, the way Linux works with my hardware, or a bug
> in the device that is worked around in the Windows driver (which is
> pretty much still "the way Linux works with my hardware").
> The one thing about the device that I also think might cause the
> problem is that it uses a bulk transfer, even though it is a low-speed
> device (which according to the USB spec, is not supposed to use bulk
> transfers).

Well, that would certainly do it.  The Linux USB drivers do not accept
bulk URBs for low-speed devices.  (The UHCI driver doesn't -- I'm not sure
about the OHCI driver.  This could explain the difference in behavior
between your two computers.)

> So long story medium-length, I was hoping somebody could help me
> figure out what's going wrong, whether it's in my code or in uhci-hcd
> or my code, or neither somehow.

If what you said is correct then the problem is in your device.  It
shouldn't have a bulk endpoint if it runs at low speed; that's in
violation of the USB specification.  Can you post the entry in
/proc/bus/usb/devices for the device?

Alan Stern



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&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