From 8af5bbc7a631bd63e9f3c3d0f702c1cfe6a27196 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Thu, 23 Jul 2009 16:25:27 +0200 Subject: [PATCH] Call usb_set_configuration() on Windows only Hello, working with interface 0 of the FT2232(H) on Linux, I get zillions of kernel-log messages like: kernel: usb 6-3: usbfs: interface 1 claimed by ftdi_sio while 'a.out' sets config #1 I understand as follows: ftdi_usb_open_dev() first detaches the driver for interface 0 Now usb_set_configuration() is called, but interface 1 is still attached to the kernel driver. This results in above kernel log. Do we really need to set the configuaration? Does any device have a alternative configuration at all? I propose appended patch, tested on Linux with and without ftdi_sio.ko loaded. No other change seen, beside no more kernel log messages like above. Bye -- Uwe Bonnes bon@elektron.ikp.physik.tu-darmstadt.de Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt --------- Tel. 06151 162516 -------- Fax. 06151 164321 ---------- >From fcb2609f0dae14c5616c34242177959cf226a5f2 Mon Sep 17 00:00:00 2001 From: Uwe Bonnes Date: Thu, 23 Jul 2009 16:21:08 +0200 Subject: usb_set_configuration() not needed on Linux --- src/ftdi.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/src/ftdi.c b/src/ftdi.c index 5fce9a6..9f12c41 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -415,6 +415,7 @@ int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct usb_device *dev) detach_errno = errno; #endif +#ifdef __WIN32__ // set configuration (needed especially for windows) // tolerate EBUSY: one device with one configuration, but two interfaces // and libftdi sessions to both interfaces (e.g. FT2232) @@ -432,6 +433,7 @@ int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct usb_device *dev) ftdi_error_return(-3, "unable to set usb configuration. Make sure ftdi_sio is unloaded!"); } } +#endif if (usb_claim_interface(ftdi->usb_dev, ftdi->interface) != 0) { -- 1.7.1