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>