summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2009-07-24 14:14:56 -0700
committerXavier Ducrohet <xav@android.com>2009-07-24 14:42:27 -0700
commitde6f62a609120c3d9e4e53689c3b309842ec874b (patch)
tree5ec4e9b1b4d0db94111112c1bd9fb09cc8acaead
parentd52f54c4552d2f35b3c2c2ac60350ac83760222f (diff)
downloadsystem_core-de6f62a609120c3d9e4e53689c3b309842ec874b.zip
system_core-de6f62a609120c3d9e4e53689c3b309842ec874b.tar.gz
system_core-de6f62a609120c3d9e4e53689c3b309842ec874b.tar.bz2
Add support for Samsung and Motorola devices.
Also update the linux code. Some devices have more complex USB descriptors which can't be parsed with the simple assumption of just skipping the endpoint descriptors.
-rw-r--r--adb/usb_linux.c10
-rw-r--r--adb/usb_vendors.c6
2 files changed, 13 insertions, 3 deletions
diff --git a/adb/usb_linux.c b/adb/usb_linux.c
index 95c2ce6..537122d 100644
--- a/adb/usb_linux.c
+++ b/adb/usb_linux.c
@@ -318,9 +318,13 @@ static int find_usb_device(const char *base,
found_device = 1;
break;
} else {
- // skip to next interface
- bufptr += (interface->bNumEndpoints * USB_DT_ENDPOINT_SIZE);
- }
+ // seek next interface descriptor
+ if (i < interfaces - 1) {
+ while (bufptr[1] != USB_DT_INTERFACE) {
+ bufptr += bufptr[0];
+ }
+ }
+ }
} // end of for
adb_close(fd);
diff --git a/adb/usb_vendors.c b/adb/usb_vendors.c
index 9a15146..f8c54d7 100644
--- a/adb/usb_vendors.c
+++ b/adb/usb_vendors.c
@@ -39,11 +39,17 @@
#define VENDOR_ID_GOOGLE 0x18d1
// HTC's USB Vendor ID
#define VENDOR_ID_HTC 0x0bb4
+// Samsung's USB Vendor ID
+#define VENDOR_ID_SAMSUNG 0x04e8
+// Motorola's USB Vendor ID
+#define VENDOR_ID_MOTOROLA 0x22b8
/** built-in vendor list */
int builtInVendorIds[] = {
VENDOR_ID_GOOGLE,
VENDOR_ID_HTC,
+ VENDOR_ID_SAMSUNG,
+ VENDOR_ID_MOTOROLA,
};
#define BUILT_IN_VENDOR_COUNT (sizeof(builtInVendorIds)/sizeof(builtInVendorIds[0]))