Automatic merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/

+72 -31
+34
drivers/usb/core/sysfs.c
··· 286 286 } 287 287 static DEVICE_ATTR(interface, S_IRUGO, show_interface_string, NULL); 288 288 289 + static ssize_t show_modalias(struct device *dev, char *buf) 290 + { 291 + struct usb_interface *intf; 292 + struct usb_device *udev; 293 + 294 + intf = to_usb_interface(dev); 295 + udev = interface_to_usbdev(intf); 296 + if (udev->descriptor.bDeviceClass == 0) { 297 + struct usb_host_interface *alt = intf->cur_altsetting; 298 + 299 + return sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02X\n", 300 + le16_to_cpu(udev->descriptor.idVendor), 301 + le16_to_cpu(udev->descriptor.idProduct), 302 + le16_to_cpu(udev->descriptor.bcdDevice), 303 + udev->descriptor.bDeviceClass, 304 + udev->descriptor.bDeviceSubClass, 305 + udev->descriptor.bDeviceProtocol, 306 + alt->desc.bInterfaceClass, 307 + alt->desc.bInterfaceSubClass, 308 + alt->desc.bInterfaceProtocol); 309 + } else { 310 + return sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic*isc*ip*\n", 311 + le16_to_cpu(udev->descriptor.idVendor), 312 + le16_to_cpu(udev->descriptor.idProduct), 313 + le16_to_cpu(udev->descriptor.bcdDevice), 314 + udev->descriptor.bDeviceClass, 315 + udev->descriptor.bDeviceSubClass, 316 + udev->descriptor.bDeviceProtocol); 317 + } 318 + 319 + } 320 + static DEVICE_ATTR(modalias, S_IRUGO, show_modalias, NULL); 321 + 289 322 static struct attribute *intf_attrs[] = { 290 323 &dev_attr_bInterfaceNumber.attr, 291 324 &dev_attr_bAlternateSetting.attr, ··· 326 293 &dev_attr_bInterfaceClass.attr, 327 294 &dev_attr_bInterfaceSubClass.attr, 328 295 &dev_attr_bInterfaceProtocol.attr, 296 + &dev_attr_modalias.attr, 329 297 NULL, 330 298 }; 331 299 static struct attribute_group intf_attr_grp = {
+1
drivers/usb/host/ehci-hub.c
··· 72 72 } 73 73 74 74 /* turn off now-idle HC */ 75 + del_timer_sync (&ehci->watchdog); 75 76 ehci_halt (ehci); 76 77 hcd->state = HC_STATE_SUSPENDED; 77 78
+8 -4
drivers/usb/net/Kconfig
··· 219 219 by some sample firmware from Epson. 220 220 221 221 config USB_ZAURUS 222 - boolean "Sharp Zaurus (stock ROMs)" 222 + boolean "Sharp Zaurus (stock ROMs) and compatible" 223 223 depends on USB_USBNET 224 224 select CRC32 225 225 default y 226 226 help 227 227 Choose this option to support the usb networking links used by 228 228 Zaurus models like the SL-5000D, SL-5500, SL-5600, A-300, B-500. 229 + This also supports some related device firmware, as used in some 230 + PDAs from Olympus and some cell phones from Motorola. 229 231 230 - If you install an alternate ROM image, you may no longer need 231 - to support this protocol. Only the "eth-fd" driver really needs 232 - this non-conformant variant of CDC Ethernet protocol. 232 + If you install an alternate ROM image, such as the Linux 2.6 based 233 + versions of OpenZaurus, you should no longer need to support this 234 + protocol. Only the "eth-fd" or "net_fd" drivers in these devices 235 + really need this non-conformant variant of CDC Ethernet (or in 236 + some cases CDC MDLM) protocol, not "g_ether". 233 237 234 238 config USB_CDCETHER 235 239 boolean "CDC Ethernet support (smart devices such as cable modems)"
+26 -27
drivers/usb/net/usbnet.c
··· 1517 1517 } 1518 1518 } 1519 1519 1520 + #endif /* NEED_GENERIC_CDC */ 1521 + 1522 + 1523 + #ifdef CONFIG_USB_CDCETHER 1524 + #define HAVE_HARDWARE 1525 + 1526 + /*------------------------------------------------------------------------- 1527 + * 1528 + * Communications Device Class, Ethernet Control model 1529 + * 1530 + * Takes two interfaces. The DATA interface is inactive till an altsetting 1531 + * is selected. Configuration data includes class descriptors. 1532 + * 1533 + * This should interop with whatever the 2.4 "CDCEther.c" driver 1534 + * (by Brad Hards) talked with. 1535 + * 1536 + *-------------------------------------------------------------------------*/ 1537 + 1538 + #include <linux/ctype.h> 1539 + 1520 1540 1521 1541 static void dumpspeed (struct usbnet *dev, __le32 *speeds) 1522 1542 { ··· 1586 1566 break; 1587 1567 } 1588 1568 } 1589 - 1590 - #endif /* NEED_GENERIC_CDC */ 1591 - 1592 - 1593 - #ifdef CONFIG_USB_CDCETHER 1594 - #define HAVE_HARDWARE 1595 - 1596 - /*------------------------------------------------------------------------- 1597 - * 1598 - * Communications Device Class, Ethernet Control model 1599 - * 1600 - * Takes two interfaces. The DATA interface is inactive till an altsetting 1601 - * is selected. Configuration data includes class descriptors. 1602 - * 1603 - * This should interop with whatever the 2.4 "CDCEther.c" driver 1604 - * (by Brad Hards) talked with. 1605 - * 1606 - *-------------------------------------------------------------------------*/ 1607 - 1608 - #include <linux/ctype.h> 1609 1569 1610 1570 static u8 nibble (unsigned char c) 1611 1571 { ··· 2765 2765 } 2766 2766 /* expect bcdVersion 1.0, ignore */ 2767 2767 if (memcmp(&desc->bGUID, blan_guid, 16) 2768 - || memcmp(&desc->bGUID, blan_guid, 16) ) { 2768 + && memcmp(&desc->bGUID, blan_guid, 16) ) { 2769 2769 /* hey, this one might _really_ be MDLM! */ 2770 2770 dev_dbg (&intf->dev, "MDLM guid\n"); 2771 2771 goto bad_desc; ··· 2797 2797 * - bPad (ignored, for PADAFTER -- BLAN-only) 2798 2798 * bits are: 2799 2799 * - 0x01 -- Zaurus framing (add CRC) 2800 - * - 0x02 -- PADBEFORE 2801 - * - 0x04 -- PADAFTER 2800 + * - 0x02 -- PADBEFORE (CRC includes some padding) 2801 + * - 0x04 -- PADAFTER (some padding after CRC) 2802 2802 * - 0x08 -- "fermat" packet mangling (for hw bugs) 2803 + * the PADBEFORE appears not to matter; we interop 2804 + * with devices that use it and those that don't. 2803 2805 */ 2804 - if (detail->bDetailData[1] != 0x01) { 2806 + if ((detail->bDetailData[1] & ~02) != 0x01) { 2805 2807 /* bmDataCapabilites == 0 would be fine too, 2806 2808 * but framing is minidriver-coupled for now. 2807 2809 */ ··· 4072 4070 }, { 4073 4071 USB_DEVICE (0x8086, 0x07d3), // "blob" bootloader 4074 4072 .driver_info = (unsigned long) &blob_info, 4075 - }, { 4076 - USB_DEVICE (0x22b8, 0x600c), // USBNET Motorola E680 4077 - .driver_info = (unsigned long) &linuxdev_info, 4078 4073 }, { 4079 4074 // Linux Ethernet/RNDIS gadget on pxa210/25x/26x 4080 4075 // e.g. Gumstix, current OpenZaurus, ...
+2
drivers/usb/serial/cypress_m8.c
··· 89 89 90 90 static struct usb_device_id id_table_earthmate [] = { 91 91 { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB) }, 92 + { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) }, 92 93 { } /* Terminating entry */ 93 94 }; 94 95 ··· 100 99 101 100 static struct usb_device_id id_table_combined [] = { 102 101 { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB) }, 102 + { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) }, 103 103 { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) }, 104 104 { } /* Terminating entry */ 105 105 };
+1
drivers/usb/serial/cypress_m8.h
··· 13 13 /* DeLorme Earthmate USB - a GPS device */ 14 14 #define VENDOR_ID_DELORME 0x1163 15 15 #define PRODUCT_ID_EARTHMATEUSB 0x0100 16 + #define PRODUCT_ID_EARTHMATEUSB_LT20 0x0200 16 17 17 18 /* Cypress HID->COM RS232 Adapter */ 18 19 #define VENDOR_ID_CYPRESS 0x04b4