From: Antonio Ospite Date: Wed, 22 Apr 2015 10:48:51 +0000 (+0200) Subject: core: generalize comment about setting configurations with claimed interfaces X-Git-Tag: upstream/1.0.21~183 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=138d240858634fc14d379ac11f57020f9403185b;p=platform%2Fupstream%2Flibusb.git core: generalize comment about setting configurations with claimed interfaces The comment about libusb_set_configuration() failing when other programs or drivers have claimed interfaces is valid whether or not the desired configuration is _different_ from the current one, so generalize the statement. While at it also make it more explicit that in case of kernel drivers, those must be detached from _all_ interfaces before a configuration can be set. Finally, move the item as last as the new details also suggest a solution for when a lightweight reset is desired but kernel drivers have claimed other interfaces, like in the fingerprint reader example mentioned in the same section. Signed-off-by: Antonio Ospite Signed-off-by: Chris Dickens --- diff --git a/libusb/core.c b/libusb/core.c index e72afcb..be658b0 100644 --- a/libusb/core.c +++ b/libusb/core.c @@ -223,9 +223,6 @@ struct list_head active_contexts_list; * -# If the device is already in the desired configuration, calling * libusb_set_configuration() using the same configuration value will cause * a lightweight device reset. This may not be desirable behaviour. - * -# libusb will be unable to change configuration if the device is in - * another configuration and other programs or drivers have claimed - * interfaces under that configuration. * -# In the case where the desired configuration is already active, libusb * may not even be able to perform a lightweight device reset. For example, * take my USB keyboard with fingerprint reader: I'm interested in driving @@ -234,6 +231,10 @@ struct list_head active_contexts_list; * Because the kernel has claimed an interface, it is not even possible to * perform the lightweight device reset, so libusb_set_configuration() will * fail. (Luckily the device in question only has a single configuration.) + * -# libusb will be unable to set a configuration if other programs or + * drivers have claimed interfaces. In particular, this means that kernel + * drivers must be detached from all the interfaces before + * libusb_set_configuration() may succeed. * * One solution to some of the above problems is to consider the currently * active configuration. If the configuration we want is already active, then diff --git a/libusb/version_nano.h b/libusb/version_nano.h index 17c3fd4..1de23d4 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 10971 +#define LIBUSB_NANO 10972