[BRLTTY] New release coming soon.
Dave Mielke
dave at mielke.cc
Fri Dec 13 20:15:09 EST 2013
Thanks for the log. I can see in it exactly what you're reporting.
Unfortunately, there isn't enough information in it for me to spot (at least
yet) what went wrong. I've attached a patch (usb1.patch) to this message. Are
you familiar with how to apply it and then generate a new log? Also, when
generating the new log, please add async to the -l keyword list.
--
Dave Mielke | 2213 Fox Crescent | The Bible is the very Word of God.
Phone: 1-613-726-0014 | Ottawa, Ontario | http://Mielke.cc/bible/
EMail: dave at mielke.cc | Canada K2A 1H7 | http://FamilyRadio.com/
-------------- next part --------------
Index: Programs/usb_linux.c
===================================================================
--- Programs/usb_linux.c (revision 8228)
+++ Programs/usb_linux.c (working copy)
@@ -587,22 +587,26 @@
UsbDevice *device = endpoint->device;
UsbDeviceExtension *devx = device->extension;
- usbLogURB(urb, "submit");
+ usbLogURB(urb, "submitting");
if ((urb->endpoint & UsbEndpointDirection_Mask) == UsbEndpointDirection_Output) {
logBytes(LOG_CATEGORY(USB_IO), "URB output", urb->buffer, urb->buffer_length);
}
while (1) {
- if (ioctl(devx->usbfsFile, USBDEVFS_SUBMITURB, urb) != -1) return 1;
+ if (ioctl(devx->usbfsFile, USBDEVFS_SUBMITURB, urb) != -1) {
+ usbLogURB(urb, "submitted");
+ return 1;
+ }
if ((errno == EINVAL) &&
(USB_ENDPOINT_TRANSFER(descriptor) == UsbEndpointTransfer_Interrupt) &&
(urb->type == USBDEVFS_URB_TYPE_BULK)) {
+ logMessage(LOG_CATEGORY(USB_IO), "changing URB type from bulk to interrupt");
urb->type = USBDEVFS_URB_TYPE_INTERRUPT;
continue;
}
/* UHCI support returns ENXIO if a URB is already submitted. */
- if (errno != ENXIO) logSystemError("USB URB submit");
+ logSystemError("USB URB submit");
return 0;
}
}
@@ -966,6 +970,7 @@
}
} else {
usbLogInputProblem(endpoint, "input data not available");
+ errno = response.error;
}
if (written) {
@@ -986,6 +991,7 @@
eptx->monitor.urb = NULL;
} else {
usbLogInputProblem(endpoint, "unexpected input URB");
+ errno = EIO;
}
free(request);
More information about the BRLTTY
mailing list