diff options
| author | Haavard Skinnemoen <haavard.skinnemoen@atmel.com> | 2009-03-27 11:14:38 -0400 |
|---|---|---|
| committer | Haavard Skinnemoen <haavard.skinnemoen@atmel.com> | 2009-03-27 11:14:38 -0400 |
| commit | b92efa9abffc4a634cd2e7a0f81f8aa6310d67c9 (patch) | |
| tree | 9847508d9b8d4e585f90db4a453bfbc3700c997e /drivers/usb/class | |
| parent | a16fffdd8eb95ebab7dc22414896fe6493951e0e (diff) | |
| parent | be0ea69674ed95e1e98cb3687a241badc756d228 (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into avr32-arch
Diffstat (limited to 'drivers/usb/class')
| -rw-r--r-- | drivers/usb/class/cdc-acm.c | 15 | ||||
| -rw-r--r-- | drivers/usb/class/usblp.c | 12 | ||||
| -rw-r--r-- | drivers/usb/class/usbtmc.c | 4 |
3 files changed, 26 insertions, 5 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 00b47ea24f86..b3d5a23ab56f 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c | |||
| @@ -1349,6 +1349,9 @@ static struct usb_device_id acm_ids[] = { | |||
| 1349 | { USB_DEVICE(0x0e8d, 0x0003), /* FIREFLY, MediaTek Inc; andrey.arapov@gmail.com */ | 1349 | { USB_DEVICE(0x0e8d, 0x0003), /* FIREFLY, MediaTek Inc; andrey.arapov@gmail.com */ |
| 1350 | .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ | 1350 | .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ |
| 1351 | }, | 1351 | }, |
| 1352 | { USB_DEVICE(0x0e8d, 0x3329), /* MediaTek Inc GPS */ | ||
| 1353 | .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ | ||
| 1354 | }, | ||
| 1352 | { USB_DEVICE(0x0482, 0x0203), /* KYOCERA AH-K3001V */ | 1355 | { USB_DEVICE(0x0482, 0x0203), /* KYOCERA AH-K3001V */ |
| 1353 | .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ | 1356 | .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ |
| 1354 | }, | 1357 | }, |
| @@ -1370,6 +1373,18 @@ static struct usb_device_id acm_ids[] = { | |||
| 1370 | { USB_DEVICE(0x0572, 0x1321), /* Conexant USB MODEM CX93010 */ | 1373 | { USB_DEVICE(0x0572, 0x1321), /* Conexant USB MODEM CX93010 */ |
| 1371 | .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ | 1374 | .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ |
| 1372 | }, | 1375 | }, |
| 1376 | { USB_DEVICE(0x0572, 0x1324), /* Conexant USB MODEM RD02-D400 */ | ||
| 1377 | .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ | ||
| 1378 | }, | ||
| 1379 | { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */ | ||
| 1380 | }, | ||
| 1381 | { USB_DEVICE(0x0572, 0x1329), /* Hummingbird huc56s (Conexant) */ | ||
| 1382 | .driver_info = NO_UNION_NORMAL, /* union descriptor misplaced on | ||
| 1383 | data interface instead of | ||
| 1384 | communications interface. | ||
| 1385 | Maybe we should define a new | ||
| 1386 | quirk for this. */ | ||
| 1387 | }, | ||
| 1373 | 1388 | ||
| 1374 | /* control interfaces with various AT-command sets */ | 1389 | /* control interfaces with various AT-command sets */ |
| 1375 | { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, | 1390 | { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, |
diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c index b5775af3ba26..d2747a49b974 100644 --- a/drivers/usb/class/usblp.c +++ b/drivers/usb/class/usblp.c | |||
| @@ -226,6 +226,7 @@ static const struct quirk_printer_struct quirk_printers[] = { | |||
| 226 | { 0x0409, 0xf0be, USBLP_QUIRK_BIDIR }, /* NEC Picty920 (HP OEM) */ | 226 | { 0x0409, 0xf0be, USBLP_QUIRK_BIDIR }, /* NEC Picty920 (HP OEM) */ |
| 227 | { 0x0409, 0xf1be, USBLP_QUIRK_BIDIR }, /* NEC Picty800 (HP OEM) */ | 227 | { 0x0409, 0xf1be, USBLP_QUIRK_BIDIR }, /* NEC Picty800 (HP OEM) */ |
| 228 | { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */ | 228 | { 0x0482, 0x0010, USBLP_QUIRK_BIDIR }, /* Kyocera Mita FS 820, by zut <kernel@zut.de> */ |
| 229 | { 0x04f9, 0x000d, USBLP_QUIRK_BIDIR }, /* Brother Industries, Ltd HL-1440 Laser Printer */ | ||
| 229 | { 0x04b8, 0x0202, USBLP_QUIRK_BAD_CLASS }, /* Seiko Epson Receipt Printer M129C */ | 230 | { 0x04b8, 0x0202, USBLP_QUIRK_BAD_CLASS }, /* Seiko Epson Receipt Printer M129C */ |
| 230 | { 0, 0 } | 231 | { 0, 0 } |
| 231 | }; | 232 | }; |
| @@ -879,16 +880,19 @@ static int usblp_wwait(struct usblp *usblp, int nonblock) | |||
| 879 | if (rc <= 0) | 880 | if (rc <= 0) |
| 880 | break; | 881 | break; |
| 881 | 882 | ||
| 882 | if (usblp->flags & LP_ABORT) { | 883 | if (schedule_timeout(msecs_to_jiffies(1500)) == 0) { |
| 883 | if (schedule_timeout(msecs_to_jiffies(5000)) == 0) { | 884 | if (usblp->flags & LP_ABORT) { |
| 884 | err = usblp_check_status(usblp, err); | 885 | err = usblp_check_status(usblp, err); |
| 885 | if (err == 1) { /* Paper out */ | 886 | if (err == 1) { /* Paper out */ |
| 886 | rc = -ENOSPC; | 887 | rc = -ENOSPC; |
| 887 | break; | 888 | break; |
| 888 | } | 889 | } |
| 890 | } else { | ||
| 891 | /* Prod the printer, Gentoo#251237. */ | ||
| 892 | mutex_lock(&usblp->mut); | ||
| 893 | usblp_read_status(usblp, usblp->statusbuf); | ||
| 894 | mutex_unlock(&usblp->mut); | ||
| 889 | } | 895 | } |
| 890 | } else { | ||
| 891 | schedule(); | ||
| 892 | } | 896 | } |
| 893 | } | 897 | } |
| 894 | set_current_state(TASK_RUNNING); | 898 | set_current_state(TASK_RUNNING); |
diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c index 0f5c05f6f9df..c40a9b284cc9 100644 --- a/drivers/usb/class/usbtmc.c +++ b/drivers/usb/class/usbtmc.c | |||
| @@ -50,6 +50,7 @@ | |||
| 50 | 50 | ||
| 51 | static struct usb_device_id usbtmc_devices[] = { | 51 | static struct usb_device_id usbtmc_devices[] = { |
| 52 | { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 0), }, | 52 | { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 0), }, |
| 53 | { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 1), }, | ||
| 53 | { 0, } /* terminating entry */ | 54 | { 0, } /* terminating entry */ |
| 54 | }; | 55 | }; |
| 55 | MODULE_DEVICE_TABLE(usb, usbtmc_devices); | 56 | MODULE_DEVICE_TABLE(usb, usbtmc_devices); |
| @@ -106,12 +107,13 @@ static int usbtmc_open(struct inode *inode, struct file *filp) | |||
| 106 | { | 107 | { |
| 107 | struct usb_interface *intf; | 108 | struct usb_interface *intf; |
| 108 | struct usbtmc_device_data *data; | 109 | struct usbtmc_device_data *data; |
| 109 | int retval = -ENODEV; | 110 | int retval = 0; |
| 110 | 111 | ||
| 111 | intf = usb_find_interface(&usbtmc_driver, iminor(inode)); | 112 | intf = usb_find_interface(&usbtmc_driver, iminor(inode)); |
| 112 | if (!intf) { | 113 | if (!intf) { |
| 113 | printk(KERN_ERR KBUILD_MODNAME | 114 | printk(KERN_ERR KBUILD_MODNAME |
| 114 | ": can not find device for minor %d", iminor(inode)); | 115 | ": can not find device for minor %d", iminor(inode)); |
| 116 | retval = -ENODEV; | ||
| 115 | goto exit; | 117 | goto exit; |
| 116 | } | 118 | } |
| 117 | 119 | ||
