Re: strange usb behavior

Petko Manolov (petkan@spct.net)
Thu, 16 Dec 1999 17:04:20 +0000


"Dunlap, Randy" wrote:
>
> This says that you did a control msg read/INput,
> requesting 4 bytes, and 0 bytes were actually read
> from the device (i.e., the device sent 0 bytes, not 4).

I can guess this, but is not true because registers i
modify changed their values.

> I don't see how this would have anything to do with
> the registers being modified. Wouldn't that usually
> be done with a control pipe write/OUTput message?

I use vendor specific call that to change MII and
device specific registers. So the change succeed,
the values are set correctly (the read show so), but
warning appears.

> usb_bulk_msg() is a synchronous I/O function. It
> waits until I/O complete (or timeout) to return to
> your driver. usb_request_bulk() is an async I/O
> request. Your driver will continue execution
> immediately after the I/O to your device has been
> setup. For any decent performance, I expect that
> you would want to use usb_request_bulk().

Hm, that looks ok, but kernel oopses bad blaming me
that do request_bulk in interrupt. Actually i use
request_bulk() from my start_xmit() routine. Speaking
of which i have always thought that start_xmit() is
the top half of the driver and executes in process
context. Is that true?

> BTW, linux-usb has a web site (www.linux-usb.org) and
> a mailing list (linux-usb@suse.com).

;-)) Thanks, this simplifies my job very much.

Best regards,
Petkan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/