Loading drivers/usb/core/sysfs.c +34 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,39 @@ static ssize_t show_interface_string(struct device *dev, char *buf) } static DEVICE_ATTR(interface, S_IRUGO, show_interface_string, NULL); static ssize_t show_modalias(struct device *dev, char *buf) { struct usb_interface *intf; struct usb_device *udev; intf = to_usb_interface(dev); udev = interface_to_usbdev(intf); if (udev->descriptor.bDeviceClass == 0) { struct usb_host_interface *alt = intf->cur_altsetting; return sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02X\n", le16_to_cpu(udev->descriptor.idVendor), le16_to_cpu(udev->descriptor.idProduct), le16_to_cpu(udev->descriptor.bcdDevice), udev->descriptor.bDeviceClass, udev->descriptor.bDeviceSubClass, udev->descriptor.bDeviceProtocol, alt->desc.bInterfaceClass, alt->desc.bInterfaceSubClass, alt->desc.bInterfaceProtocol); } else { return sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic*isc*ip*\n", le16_to_cpu(udev->descriptor.idVendor), le16_to_cpu(udev->descriptor.idProduct), le16_to_cpu(udev->descriptor.bcdDevice), udev->descriptor.bDeviceClass, udev->descriptor.bDeviceSubClass, udev->descriptor.bDeviceProtocol); } } static DEVICE_ATTR(modalias, S_IRUGO, show_modalias, NULL); static struct attribute *intf_attrs[] = { &dev_attr_bInterfaceNumber.attr, &dev_attr_bAlternateSetting.attr, Loading @@ -293,6 +326,7 @@ static struct attribute *intf_attrs[] = { &dev_attr_bInterfaceClass.attr, &dev_attr_bInterfaceSubClass.attr, &dev_attr_bInterfaceProtocol.attr, &dev_attr_modalias.attr, NULL, }; static struct attribute_group intf_attr_grp = { Loading drivers/usb/host/ehci-hub.c +1 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ static int ehci_hub_suspend (struct usb_hcd *hcd) } /* turn off now-idle HC */ del_timer_sync (&ehci->watchdog); ehci_halt (ehci); hcd->state = HC_STATE_SUSPENDED; Loading drivers/usb/net/Kconfig +9 −5 Original line number Diff line number Diff line Loading @@ -219,17 +219,21 @@ config USB_EPSON2888 by some sample firmware from Epson. config USB_ZAURUS boolean "Sharp Zaurus (stock ROMs)" boolean "Sharp Zaurus (stock ROMs) and compatible" depends on USB_USBNET select CRC32 default y help Choose this option to support the usb networking links used by Zaurus models like the SL-5000D, SL-5500, SL-5600, A-300, B-500. If you install an alternate ROM image, you may no longer need to support this protocol. Only the "eth-fd" driver really needs this non-conformant variant of CDC Ethernet protocol. This also supports some related device firmware, as used in some PDAs from Olympus and some cell phones from Motorola. If you install an alternate ROM image, such as the Linux 2.6 based versions of OpenZaurus, you should no longer need to support this protocol. Only the "eth-fd" or "net_fd" drivers in these devices really need this non-conformant variant of CDC Ethernet (or in some cases CDC MDLM) protocol, not "g_ether". config USB_CDCETHER boolean "CDC Ethernet support (smart devices such as cable modems)" Loading drivers/usb/net/usbnet.c +26 −27 Original line number Diff line number Diff line Loading @@ -1517,6 +1517,26 @@ static void cdc_unbind (struct usbnet *dev, struct usb_interface *intf) } } #endif /* NEED_GENERIC_CDC */ #ifdef CONFIG_USB_CDCETHER #define HAVE_HARDWARE /*------------------------------------------------------------------------- * * Communications Device Class, Ethernet Control model * * Takes two interfaces. The DATA interface is inactive till an altsetting * is selected. Configuration data includes class descriptors. * * This should interop with whatever the 2.4 "CDCEther.c" driver * (by Brad Hards) talked with. * *-------------------------------------------------------------------------*/ #include <linux/ctype.h> static void dumpspeed (struct usbnet *dev, __le32 *speeds) { Loading Loading @@ -1567,26 +1587,6 @@ static void cdc_status (struct usbnet *dev, struct urb *urb) } } #endif /* NEED_GENERIC_CDC */ #ifdef CONFIG_USB_CDCETHER #define HAVE_HARDWARE /*------------------------------------------------------------------------- * * Communications Device Class, Ethernet Control model * * Takes two interfaces. The DATA interface is inactive till an altsetting * is selected. Configuration data includes class descriptors. * * This should interop with whatever the 2.4 "CDCEther.c" driver * (by Brad Hards) talked with. * *-------------------------------------------------------------------------*/ #include <linux/ctype.h> static u8 nibble (unsigned char c) { if (likely (isdigit (c))) Loading Loading @@ -2765,7 +2765,7 @@ static int blan_mdlm_bind (struct usbnet *dev, struct usb_interface *intf) } /* expect bcdVersion 1.0, ignore */ if (memcmp(&desc->bGUID, blan_guid, 16) || memcmp(&desc->bGUID, blan_guid, 16) ) { && memcmp(&desc->bGUID, blan_guid, 16) ) { /* hey, this one might _really_ be MDLM! */ dev_dbg (&intf->dev, "MDLM guid\n"); goto bad_desc; Loading Loading @@ -2797,11 +2797,13 @@ static int blan_mdlm_bind (struct usbnet *dev, struct usb_interface *intf) * - bPad (ignored, for PADAFTER -- BLAN-only) * bits are: * - 0x01 -- Zaurus framing (add CRC) * - 0x02 -- PADBEFORE * - 0x04 -- PADAFTER * - 0x02 -- PADBEFORE (CRC includes some padding) * - 0x04 -- PADAFTER (some padding after CRC) * - 0x08 -- "fermat" packet mangling (for hw bugs) * the PADBEFORE appears not to matter; we interop * with devices that use it and those that don't. */ if (detail->bDetailData[1] != 0x01) { if ((detail->bDetailData[1] & ~02) != 0x01) { /* bmDataCapabilites == 0 would be fine too, * but framing is minidriver-coupled for now. */ Loading Loading @@ -4070,9 +4072,6 @@ static const struct usb_device_id products [] = { }, { USB_DEVICE (0x8086, 0x07d3), // "blob" bootloader .driver_info = (unsigned long) &blob_info, }, { USB_DEVICE (0x22b8, 0x600c), // USBNET Motorola E680 .driver_info = (unsigned long) &linuxdev_info, }, { // Linux Ethernet/RNDIS gadget on pxa210/25x/26x // e.g. Gumstix, current OpenZaurus, ... Loading drivers/usb/serial/cypress_m8.c +2 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ static int interval; static struct usb_device_id id_table_earthmate [] = { { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB) }, { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) }, { } /* Terminating entry */ }; Loading @@ -99,6 +100,7 @@ static struct usb_device_id id_table_cyphidcomrs232 [] = { static struct usb_device_id id_table_combined [] = { { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB) }, { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) }, { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) }, { } /* Terminating entry */ }; Loading Loading
drivers/usb/core/sysfs.c +34 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,39 @@ static ssize_t show_interface_string(struct device *dev, char *buf) } static DEVICE_ATTR(interface, S_IRUGO, show_interface_string, NULL); static ssize_t show_modalias(struct device *dev, char *buf) { struct usb_interface *intf; struct usb_device *udev; intf = to_usb_interface(dev); udev = interface_to_usbdev(intf); if (udev->descriptor.bDeviceClass == 0) { struct usb_host_interface *alt = intf->cur_altsetting; return sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02X\n", le16_to_cpu(udev->descriptor.idVendor), le16_to_cpu(udev->descriptor.idProduct), le16_to_cpu(udev->descriptor.bcdDevice), udev->descriptor.bDeviceClass, udev->descriptor.bDeviceSubClass, udev->descriptor.bDeviceProtocol, alt->desc.bInterfaceClass, alt->desc.bInterfaceSubClass, alt->desc.bInterfaceProtocol); } else { return sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic*isc*ip*\n", le16_to_cpu(udev->descriptor.idVendor), le16_to_cpu(udev->descriptor.idProduct), le16_to_cpu(udev->descriptor.bcdDevice), udev->descriptor.bDeviceClass, udev->descriptor.bDeviceSubClass, udev->descriptor.bDeviceProtocol); } } static DEVICE_ATTR(modalias, S_IRUGO, show_modalias, NULL); static struct attribute *intf_attrs[] = { &dev_attr_bInterfaceNumber.attr, &dev_attr_bAlternateSetting.attr, Loading @@ -293,6 +326,7 @@ static struct attribute *intf_attrs[] = { &dev_attr_bInterfaceClass.attr, &dev_attr_bInterfaceSubClass.attr, &dev_attr_bInterfaceProtocol.attr, &dev_attr_modalias.attr, NULL, }; static struct attribute_group intf_attr_grp = { Loading
drivers/usb/host/ehci-hub.c +1 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ static int ehci_hub_suspend (struct usb_hcd *hcd) } /* turn off now-idle HC */ del_timer_sync (&ehci->watchdog); ehci_halt (ehci); hcd->state = HC_STATE_SUSPENDED; Loading
drivers/usb/net/Kconfig +9 −5 Original line number Diff line number Diff line Loading @@ -219,17 +219,21 @@ config USB_EPSON2888 by some sample firmware from Epson. config USB_ZAURUS boolean "Sharp Zaurus (stock ROMs)" boolean "Sharp Zaurus (stock ROMs) and compatible" depends on USB_USBNET select CRC32 default y help Choose this option to support the usb networking links used by Zaurus models like the SL-5000D, SL-5500, SL-5600, A-300, B-500. If you install an alternate ROM image, you may no longer need to support this protocol. Only the "eth-fd" driver really needs this non-conformant variant of CDC Ethernet protocol. This also supports some related device firmware, as used in some PDAs from Olympus and some cell phones from Motorola. If you install an alternate ROM image, such as the Linux 2.6 based versions of OpenZaurus, you should no longer need to support this protocol. Only the "eth-fd" or "net_fd" drivers in these devices really need this non-conformant variant of CDC Ethernet (or in some cases CDC MDLM) protocol, not "g_ether". config USB_CDCETHER boolean "CDC Ethernet support (smart devices such as cable modems)" Loading
drivers/usb/net/usbnet.c +26 −27 Original line number Diff line number Diff line Loading @@ -1517,6 +1517,26 @@ static void cdc_unbind (struct usbnet *dev, struct usb_interface *intf) } } #endif /* NEED_GENERIC_CDC */ #ifdef CONFIG_USB_CDCETHER #define HAVE_HARDWARE /*------------------------------------------------------------------------- * * Communications Device Class, Ethernet Control model * * Takes two interfaces. The DATA interface is inactive till an altsetting * is selected. Configuration data includes class descriptors. * * This should interop with whatever the 2.4 "CDCEther.c" driver * (by Brad Hards) talked with. * *-------------------------------------------------------------------------*/ #include <linux/ctype.h> static void dumpspeed (struct usbnet *dev, __le32 *speeds) { Loading Loading @@ -1567,26 +1587,6 @@ static void cdc_status (struct usbnet *dev, struct urb *urb) } } #endif /* NEED_GENERIC_CDC */ #ifdef CONFIG_USB_CDCETHER #define HAVE_HARDWARE /*------------------------------------------------------------------------- * * Communications Device Class, Ethernet Control model * * Takes two interfaces. The DATA interface is inactive till an altsetting * is selected. Configuration data includes class descriptors. * * This should interop with whatever the 2.4 "CDCEther.c" driver * (by Brad Hards) talked with. * *-------------------------------------------------------------------------*/ #include <linux/ctype.h> static u8 nibble (unsigned char c) { if (likely (isdigit (c))) Loading Loading @@ -2765,7 +2765,7 @@ static int blan_mdlm_bind (struct usbnet *dev, struct usb_interface *intf) } /* expect bcdVersion 1.0, ignore */ if (memcmp(&desc->bGUID, blan_guid, 16) || memcmp(&desc->bGUID, blan_guid, 16) ) { && memcmp(&desc->bGUID, blan_guid, 16) ) { /* hey, this one might _really_ be MDLM! */ dev_dbg (&intf->dev, "MDLM guid\n"); goto bad_desc; Loading Loading @@ -2797,11 +2797,13 @@ static int blan_mdlm_bind (struct usbnet *dev, struct usb_interface *intf) * - bPad (ignored, for PADAFTER -- BLAN-only) * bits are: * - 0x01 -- Zaurus framing (add CRC) * - 0x02 -- PADBEFORE * - 0x04 -- PADAFTER * - 0x02 -- PADBEFORE (CRC includes some padding) * - 0x04 -- PADAFTER (some padding after CRC) * - 0x08 -- "fermat" packet mangling (for hw bugs) * the PADBEFORE appears not to matter; we interop * with devices that use it and those that don't. */ if (detail->bDetailData[1] != 0x01) { if ((detail->bDetailData[1] & ~02) != 0x01) { /* bmDataCapabilites == 0 would be fine too, * but framing is minidriver-coupled for now. */ Loading Loading @@ -4070,9 +4072,6 @@ static const struct usb_device_id products [] = { }, { USB_DEVICE (0x8086, 0x07d3), // "blob" bootloader .driver_info = (unsigned long) &blob_info, }, { USB_DEVICE (0x22b8, 0x600c), // USBNET Motorola E680 .driver_info = (unsigned long) &linuxdev_info, }, { // Linux Ethernet/RNDIS gadget on pxa210/25x/26x // e.g. Gumstix, current OpenZaurus, ... Loading
drivers/usb/serial/cypress_m8.c +2 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ static int interval; static struct usb_device_id id_table_earthmate [] = { { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB) }, { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) }, { } /* Terminating entry */ }; Loading @@ -99,6 +100,7 @@ static struct usb_device_id id_table_cyphidcomrs232 [] = { static struct usb_device_id id_table_combined [] = { { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB) }, { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) }, { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) }, { } /* Terminating entry */ }; Loading