patch-2.4.0-test5 linux/drivers/usb/dabusb.c
Next file: linux/drivers/usb/devices.c
Previous file: linux/drivers/usb/Config.in
Back to the patch index
Back to the overall index
- Lines: 68
- Date:
Mon Jul 24 19:03:57 2000
- Orig file:
v2.4.0-test4/linux/drivers/usb/dabusb.c
- Orig date:
Fri Jul 14 12:12:13 2000
diff -u --recursive --new-file v2.4.0-test4/linux/drivers/usb/dabusb.c linux/drivers/usb/dabusb.c
@@ -21,7 +21,7 @@
*
*
*
- * $Id: dabusb.c,v 1.45 2000/01/31 10:23:44 fliegl Exp $
+ * $Id: dabusb.c,v 1.54 2000/07/24 21:39:39 deti Exp $
*
*/
@@ -272,16 +272,22 @@
else
pipe = usb_sndbulkpipe (s->usbdev, 2);
- ret=usb_bulk_msg(s->usbdev, pipe, pb->data, pb->size, &actual_length, 1000);
+ ret=usb_bulk_msg(s->usbdev, pipe, pb->data, pb->size, &actual_length, 100);
if(ret<0) {
err("dabusb: usb_bulk_msg failed(%d)",ret);
+
+ if (usb_set_interface (s->usbdev, _DABUSB_IF, 1) < 0) {
+ err("set_interface failed");
+ return -EINVAL;
+ }
+
}
if( ret == -EPIPE ) {
warn("CLEAR_FEATURE request to remove STALL condition.");
if(usb_clear_halt(s->usbdev, usb_pipeendpoint(pipe)))
err("request failed");
- }
+ }
pb->size = actual_length;
return ret;
@@ -667,8 +673,9 @@
break;
}
- dabusb_bulk (s, pbulk);
- ret = copy_to_user ((void *) arg, pbulk, sizeof (bulk_transfer_t));
+ ret=dabusb_bulk (s, pbulk);
+ if(ret==0)
+ ret = copy_to_user ((void *) arg, pbulk, sizeof (bulk_transfer_t));
kfree (pbulk);
break;
@@ -799,10 +806,6 @@
{
unsigned u;
- /* register misc device */
- if (usb_register(&dabusb_driver))
- return -1;
-
/* initialize struct */
for (u = 0; u < NRDABUSB; u++) {
pdabusb_t s = &dabusb[u];
@@ -816,6 +819,10 @@
INIT_LIST_HEAD (&s->free_buff_list);
INIT_LIST_HEAD (&s->rec_buff_list);
}
+
+ /* register misc device */
+ if (usb_register(&dabusb_driver))
+ return -1;
dbg("dabusb_init: driver registered");
return 0;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)