Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Jan 2006 13:18:24 -0600
From:      Lonnie Mendez <lmendez19@austin.rr.com>
To:        freebsd-usb@freebsd.org
Subject:   ugen: question about receiving USBD_INTERRUPTED from usbd_bulk_transfer
Message-ID:  <43D52C00.60107@austin.rr.com>

next in thread | raw e-mail | index | archive | help

    Hello list.  I've been working on/off on a usb host backend for qemu 
and have run into a snag with ugen.  So far it is working well with 
devices that have interrupt endpoints like hid keypads/keyboards and a 
gps device.  I'm seeing no problems with control endpoint trasfers 
either.  The problem I'm encountering happens when attempting bulk IN 
transfers on two different mass storage devices.  The device is sent the 
first mass storage command which succeeds and is then followed by a bulk 
IN request.  Sometimes the first bulk IN request will return data, but 
then the second bulk IN request fails with EINTR.  I've tried this with 
FreeBSD 6.0 release and recently with 7.0 current.  I think the error 
returned is coming from the below code:


http://fxr.watson.org/fxr/source//dev/usb/usbdi_util.c#L459

    The patch for qemu I'm using is located here: (patch-bsdusb.patch)
http://gnome.dnsalias.net/patches/

    Both the qemu message output (transfer data log) and kernel messages 
with hw.usb.debug and hw.usb.ugen.debug enabled are here:
http://gnome.dnsalias.net/kernlog-659
http://gnome.dnsalias.net/qemulog-659

    Can someone more familiar with the kernel please take a look?  Or 
can someone explain what receiving USBD_INTERRUPTED from this function 
would imply?  Thanks.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43D52C00.60107>