[PATCH 1/2] main: Use the config descriptor value, not the index
Tormod Volden
lists.tormod at gmail.com
Thu Feb 3 23:12:35 CET 2011
From: Tormod Volden <debian.tormod at gmail.com>
Many libusb functions give or use the bConfigurationValue and
not the index of a configuration. Make sure we consistently
use the former, also as what we store in dif->configuration.
---
This patch is against the libusb-1.0 branch!
Cheers,
Tormod
src/main.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/main.c b/src/main.c
index e4839ce..74d00b3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -130,7 +130,8 @@ static int find_dfu_if(libusb_device *dev, int (*handler)(struct dfu_if *, void
desc.idVendor;
dfu_if->product =
desc.idProduct;
- dfu_if->configuration = cfg_idx;
+ dfu_if->configuration = cfg->
+ bConfigurationValue;
dfu_if->interface =
intf->bInterfaceNumber;
dfu_if->altsetting =
@@ -167,7 +168,7 @@ static int print_dfu_if(struct dfu_if *dfu_if, void *v)
int if_name_str_idx;
unsigned char name[MAX_STR_LEN+1] = "UNDEFINED";
- libusb_get_config_descriptor(dev, dfu_if->configuration, &cfg);
+ libusb_get_config_descriptor_by_value(dev, dfu_if->configuration, &cfg);
if_name_str_idx = cfg->interface[dfu_if->interface]
.altsetting[dfu_if->altsetting].iInterface;
@@ -198,7 +199,7 @@ static int alt_by_name(struct dfu_if *dfu_if, void *v)
int if_name_str_idx;
unsigned char name[MAX_STR_LEN+1] = "UNDEFINED";
- libusb_get_config_descriptor(dev, dfu_if->configuration, &cfg);
+ libusb_get_config_descriptor_by_value(dev, dfu_if->configuration, &cfg);
if_name_str_idx = cfg->interface[dfu_if->interface]
.altsetting[dfu_if->altsetting].iInterface;
@@ -795,7 +796,7 @@ dfustate:
#if 0
printf("Setting Configuration %u...\n", dif->configuration);
- if (usb_set_configuration(dif->dev_handle, dif->configuration) < 0) {
+ if (libusb_set_configuration(dif->dev_handle, dif->configuration) < 0) {
fprintf(stderr, "Cannot set configuration\n");
exit(1);
}
--
1.7.0.4
More information about the devel
mailing list