Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: USB: new Novatel device ids for option driver USB: berry_charge: correct dbg string for second magic command usblp: quirk flag and device entry for Seiko Epson M129C printer airprime: USB ID for Novatel EV620 mini PCI-E card USB: necessary update for mos7720 driver USB: RAZR v3i unusual_devs USB: two more device ids for dm9601 usbnet driver USB: fix usb-serial regression
This commit is contained in:
commit
a9cf7cd0d7
|
@ -202,6 +202,7 @@ struct quirk_printer_struct {
|
|||
|
||||
#define USBLP_QUIRK_BIDIR 0x1 /* reports bidir but requires unidirectional mode (no INs/reads) */
|
||||
#define USBLP_QUIRK_USB_INIT 0x2 /* needs vendor USB init string */
|
||||
#define USBLP_QUIRK_BAD_CLASS 0x4 /* descriptor uses vendor-specific Class or SubClass */
|
||||
|
||||
static const struct quirk_printer_struct quirk_printers[] = {
|
||||
{ 0x03f0, 0x0004, USBLP_QUIRK_BIDIR }, /* HP DeskJet 895C */
|
||||
|
@ -218,6 +219,7 @@ static const struct quirk_printer_struct quirk_printers[] = {
|
|||
{ 0x0409, 0xf0be, USBLP_QUIRK_BIDIR }, /* NEC Picty920 (HP OEM) */
|
||||
{ 0x0409, 0xf1be, USBLP_QUIRK_BIDIR }, /* NEC Picty800 (HP OEM) */
|
||||
{ 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */
|
||||
{ 0x04b8, 0x0202, USBLP_QUIRK_BAD_CLASS }, /* Seiko Epson Receipt Printer M129C */
|
||||
{ 0, 0 }
|
||||
};
|
||||
|
||||
|
@ -1048,7 +1050,8 @@ static int usblp_select_alts(struct usblp *usblp)
|
|||
ifd = &if_alt->altsetting[i];
|
||||
|
||||
if (ifd->desc.bInterfaceClass != 7 || ifd->desc.bInterfaceSubClass != 1)
|
||||
continue;
|
||||
if (!(usblp->quirks & USBLP_QUIRK_BAD_CLASS))
|
||||
continue;
|
||||
|
||||
if (ifd->desc.bInterfaceProtocol < USBLP_FIRST_PROTOCOL ||
|
||||
ifd->desc.bInterfaceProtocol > USBLP_LAST_PROTOCOL)
|
||||
|
@ -1232,6 +1235,7 @@ static struct usb_device_id usblp_ids [] = {
|
|||
{ USB_INTERFACE_INFO(7, 1, 1) },
|
||||
{ USB_INTERFACE_INFO(7, 1, 2) },
|
||||
{ USB_INTERFACE_INFO(7, 1, 3) },
|
||||
{ USB_DEVICE(0x04b8, 0x0202) }, /* Seiko Epson Receipt Printer M129C */
|
||||
{ } /* Terminating entry */
|
||||
};
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ static int magic_charge(struct usb_device *udev)
|
|||
return retval;
|
||||
}
|
||||
|
||||
dbg(&udev->dev, "Sending first magic command\n");
|
||||
dbg(&udev->dev, "Sending second magic command\n");
|
||||
retval = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
|
||||
0xa2, 0x40, 0, 1, dummy_buffer, 0, 100);
|
||||
if (retval != 0) {
|
||||
|
|
|
@ -578,6 +578,14 @@ static const struct usb_device_id products[] = {
|
|||
USB_DEVICE(0x0a46, 0x9601), /* Davicom USB-100 */
|
||||
.driver_info = (unsigned long)&dm9601_info,
|
||||
},
|
||||
{
|
||||
USB_DEVICE(0x0a46, 0x6688), /* ZT6688 USB NIC */
|
||||
.driver_info = (unsigned long)&dm9601_info,
|
||||
},
|
||||
{
|
||||
USB_DEVICE(0x0a46, 0x0268), /* ShanTou ST268 USB NIC */
|
||||
.driver_info = (unsigned long)&dm9601_info,
|
||||
},
|
||||
{}, // END
|
||||
};
|
||||
|
||||
|
|
|
@ -18,10 +18,6 @@
|
|||
|
||||
static struct usb_device_id id_table [] = {
|
||||
{ USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */
|
||||
{ USB_DEVICE(0x1410, 0x1110) }, /* Novatel Wireless Merlin CDMA */
|
||||
{ USB_DEVICE(0x1410, 0x1130) }, /* Novatel Wireless S720 CDMA/EV-DO */
|
||||
{ USB_DEVICE(0x1410, 0x2110) }, /* Novatel Wireless U720 CDMA/EV-DO */
|
||||
{ USB_DEVICE(0x1410, 0x1430) }, /* Novatel Merlin XU870 HSDPA/3G */
|
||||
{ USB_DEVICE(0x1410, 0x1100) }, /* ExpressCard34 Qualcomm 3G CDMA */
|
||||
{ USB_DEVICE(0x413c, 0x8115) }, /* Dell Wireless HSDPA 5500 */
|
||||
{ },
|
||||
|
|
|
@ -1628,6 +1628,7 @@ static struct usb_serial_driver moschip7720_2port_driver = {
|
|||
.chars_in_buffer = mos7720_chars_in_buffer,
|
||||
.break_ctl = mos7720_break,
|
||||
.read_bulk_callback = mos7720_bulk_in_callback,
|
||||
.read_int_callback = mos7720_interrupt_callback,
|
||||
};
|
||||
|
||||
static int __init moschip7720_init(void)
|
||||
|
|
|
@ -109,7 +109,6 @@ static int option_send_setup(struct usb_serial_port *port);
|
|||
#define HUAWEI_PRODUCT_E220 0x1003
|
||||
|
||||
#define NOVATELWIRELESS_VENDOR_ID 0x1410
|
||||
#define NOVATELWIRELESS_PRODUCT_U740 0x1400
|
||||
|
||||
#define ANYDATA_VENDOR_ID 0x16d5
|
||||
#define ANYDATA_PRODUCT_ID 0x6501
|
||||
|
@ -152,7 +151,19 @@ static struct usb_device_id option_ids[] = {
|
|||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_NETWORK) },
|
||||
{ USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) },
|
||||
{ USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220) },
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID,NOVATELWIRELESS_PRODUCT_U740) },
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1100) }, /* Novatel Merlin XS620/S640 */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1110) }, /* Novatel Merlin S620 */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1120) }, /* Novatel Merlin EX720 */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1130) }, /* Novatel Merlin S720 */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1400) }, /* Novatel U730 */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1410) }, /* Novatel U740 */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1420) }, /* Novatel EU870 */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1430) }, /* Novatel Merlin XU870 HSDPA/3G */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1430) }, /* Novatel XU870 */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2100) }, /* Novatel EV620 CDMA/EV-DO */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2110) }, /* Novatel Merlin ES620 / Merlin ES720 / Ovation U720 */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2130) }, /* Novatel Merlin ES620 SM Bus */
|
||||
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2410) }, /* Novatel EU740 */
|
||||
{ USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ID) },
|
||||
{ } /* Terminating entry */
|
||||
};
|
||||
|
|
|
@ -138,6 +138,11 @@ static void destroy_serial(struct kref *kref)
|
|||
|
||||
dbg("%s - %s", __FUNCTION__, serial->type->description);
|
||||
|
||||
serial->type->shutdown(serial);
|
||||
|
||||
/* return the minor range that this device had */
|
||||
return_serial(serial);
|
||||
|
||||
for (i = 0; i < serial->num_ports; ++i)
|
||||
serial->port[i]->open_count = 0;
|
||||
|
||||
|
@ -148,12 +153,6 @@ static void destroy_serial(struct kref *kref)
|
|||
serial->port[i] = NULL;
|
||||
}
|
||||
|
||||
if (serial->type->shutdown)
|
||||
serial->type->shutdown(serial);
|
||||
|
||||
/* return the minor range that this device had */
|
||||
return_serial(serial);
|
||||
|
||||
/* If this is a "fake" port, we have to clean it up here, as it will
|
||||
* not get cleaned up in port_release() as it was never registered with
|
||||
* the driver core */
|
||||
|
|
|
@ -1411,6 +1411,16 @@ UNUSUAL_DEV( 0x22b8, 0x3010, 0x0001, 0x0001,
|
|||
US_SC_DEVICE, US_PR_DEVICE, NULL,
|
||||
US_FL_FIX_CAPACITY | US_FL_IGNORE_RESIDUE ),
|
||||
|
||||
/*
|
||||
* Patch by Pete Zaitcev <zaitcev@redhat.com>
|
||||
* Report by Mark Patton. Red Hat bz#208928.
|
||||
*/
|
||||
UNUSUAL_DEV( 0x22b8, 0x4810, 0x0001, 0x0001,
|
||||
"Motorola",
|
||||
"RAZR V3i",
|
||||
US_SC_DEVICE, US_PR_DEVICE, NULL,
|
||||
US_FL_FIX_CAPACITY),
|
||||
|
||||
/* Reported by Radovan Garabik <garabik@kassiopeia.juls.savba.sk> */
|
||||
UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999,
|
||||
"MPIO",
|
||||
|
|
Loading…
Reference in New Issue