Automatic merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/
This commit is contained in:
commit
ff96b3d4b8
6 changed files with 72 additions and 31 deletions
|
@ -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,
|
||||
|
@ -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 = {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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.
|
||||
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, you may no longer need
|
||||
to support this protocol. Only the "eth-fd" driver really needs
|
||||
this non-conformant variant of CDC Ethernet protocol.
|
||||
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)"
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
@ -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)))
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
*/
|
||||
|
@ -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, ...
|
||||
|
|
|
@ -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 */
|
||||
};
|
||||
|
||||
|
@ -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 */
|
||||
};
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
/* DeLorme Earthmate USB - a GPS device */
|
||||
#define VENDOR_ID_DELORME 0x1163
|
||||
#define PRODUCT_ID_EARTHMATEUSB 0x0100
|
||||
#define PRODUCT_ID_EARTHMATEUSB_LT20 0x0200
|
||||
|
||||
/* Cypress HID->COM RS232 Adapter */
|
||||
#define VENDOR_ID_CYPRESS 0x04b4
|
||||
|
|
Reference in a new issue