--- libgphoto2-2.4.0/libgphoto2_port/usb/libusb.c.fixcanon 2007-07-27 02:36:15.000000000 +0200 +++ libgphoto2-2.4.0/libgphoto2_port/usb/libusb.c 2007-11-20 10:59:52.000000000 +0100 @@ -290,6 +290,8 @@ gp_port_usb_close (GPPort *port) return (GP_ERROR_IO); } +#if 0 + /* This confuses the EOS 5d camera and possible other EOSs. *sigh* */ /* This is only for our very special Canon cameras which need a good * whack after close, otherwise they get timeouts on reconnect. */ @@ -299,6 +301,7 @@ gp_port_usb_close (GPPort *port) return (GP_ERROR_IO); } } +#endif if (usb_close (port->pl->dh) < 0) { gp_port_set_error (port, _("Could not close USB port (%m).")); --- libgphoto2-2.4.0/camlibs/canon/usb.c.fixcanon 2007-11-20 11:12:04.000000000 +0100 +++ libgphoto2-2.4.0/camlibs/canon/usb.c 2007-11-20 11:12:21.000000000 +0100 @@ -72,7 +72,7 @@ /* CANON_FAST_TIMEOUT: how long (in milliseconds) we should wait for * an URB to come back on an interrupt endpoint */ -#define CANON_FAST_TIMEOUT 75 +#define CANON_FAST_TIMEOUT 175 /* WARNING: This destroys reentrancy of the code. Better to put this * in the camera descriptor somewhere. */