Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
USB: Fix cut-and-paste error in rtl8150.c
USB: ehci: stop vt6212 bus hogging
USB: sierra: add another device id
USB: sierra: dma fixes
USB: add support for Motorola ROKR Z6 cellphone in mass storage mode
USB: isd200: fix memory leak in isd200_get_inquiry_data
USB: pl2303: another product ID
USB: new quirk flag to avoid Set-Interface
USB: fix gadgetfs class request delegation

+60 -10
+1 -1
drivers/net/usb/rtl8150.c
··· 376 376 return 0; 377 377 } 378 378 dev->ctrl_urb = usb_alloc_urb(0, GFP_KERNEL); 379 - if (!dev->intr_urb) { 379 + if (!dev->ctrl_urb) { 380 380 usb_free_urb(dev->rx_urb); 381 381 usb_free_urb(dev->tx_urb); 382 382 usb_free_urb(dev->intr_urb);
+4 -1
drivers/usb/core/message.c
··· 1206 1206 return -EINVAL; 1207 1207 } 1208 1208 1209 - ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), 1209 + if (dev->quirks & USB_QUIRK_NO_SET_INTF) 1210 + ret = -EPIPE; 1211 + else 1212 + ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), 1210 1213 USB_REQ_SET_INTERFACE, USB_RECIP_INTERFACE, 1211 1214 alternate, interface, NULL, 0, 5000); 1212 1215
+3
drivers/usb/core/quirks.c
··· 50 50 /* M-Systems Flash Disk Pioneers */ 51 51 { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, 52 52 53 + /* X-Rite/Gretag-Macbeth Eye-One Pro display colorimeter */ 54 + { USB_DEVICE(0x0971, 0x2000), .driver_info = USB_QUIRK_NO_SET_INTF }, 55 + 53 56 /* Action Semiconductor flash disk */ 54 57 { USB_DEVICE(0x10d6, 0x2200), .driver_info = 55 58 USB_QUIRK_STRING_FETCH_255 },
+2 -2
drivers/usb/gadget/inode.c
··· 1458 1458 /* currently one config, two speeds */ 1459 1459 case USB_REQ_SET_CONFIGURATION: 1460 1460 if (ctrl->bRequestType != 0) 1461 - break; 1461 + goto unrecognized; 1462 1462 if (0 == (u8) w_value) { 1463 1463 value = 0; 1464 1464 dev->current_config = 0; ··· 1505 1505 /* PXA automagically handles this request too */ 1506 1506 case USB_REQ_GET_CONFIGURATION: 1507 1507 if (ctrl->bRequestType != 0x80) 1508 - break; 1508 + goto unrecognized; 1509 1509 *(u8 *)req->buf = dev->current_config; 1510 1510 value = min (w_length, (u16) 1); 1511 1511 break;
+14
drivers/usb/host/ehci-pci.c
··· 152 152 break; 153 153 } 154 154 break; 155 + case PCI_VENDOR_ID_VIA: 156 + if (pdev->device == 0x3104 && (pdev->revision & 0xf0) == 0x60) { 157 + u8 tmp; 158 + 159 + /* The VT6212 defaults to a 1 usec EHCI sleep time which 160 + * hogs the PCI bus *badly*. Setting bit 5 of 0x4B makes 161 + * that sleep time use the conventional 10 usec. 162 + */ 163 + pci_read_config_byte(pdev, 0x4b, &tmp); 164 + if (tmp & 0x20) 165 + break; 166 + pci_write_config_byte(pdev, 0x4b, tmp | 0x20); 167 + } 168 + break; 155 169 } 156 170 157 171 ehci_reset(ehci);
+1
drivers/usb/serial/pl2303.c
··· 55 55 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_DCU11) }, 56 56 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_RSAQ3) }, 57 57 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_PHAROS) }, 58 + { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_ALDIGA) }, 58 59 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, 59 60 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) }, 60 61 { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) },
+1
drivers/usb/serial/pl2303.h
··· 13 13 #define PL2303_PRODUCT_ID_DCU11 0x1234 14 14 #define PL2303_PRODUCT_ID_PHAROS 0xaaa0 15 15 #define PL2303_PRODUCT_ID_RSAQ3 0xaaa2 16 + #define PL2303_PRODUCT_ID_ALDIGA 0x0611 16 17 17 18 #define ATEN_VENDOR_ID 0x0557 18 19 #define ATEN_VENDOR_ID2 0x0547
+14 -4
drivers/usb/serial/sierra.c
··· 14 14 Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org> 15 15 */ 16 16 17 - #define DRIVER_VERSION "v.1.2.7" 17 + #define DRIVER_VERSION "v.1.2.8" 18 18 #define DRIVER_AUTHOR "Kevin Lloyd <linux@sierrawireless.com>" 19 19 #define DRIVER_DESC "USB Driver for Sierra Wireless USB modems" 20 20 ··· 163 163 { USB_DEVICE(0x1199, 0x6803) }, /* Sierra Wireless MC8765 */ 164 164 { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 & AC 875U */ 165 165 { USB_DEVICE(0x1199, 0x6813) }, /* Sierra Wireless MC8775 (Thinkpad internal) */ 166 + { USB_DEVICE(0x1199, 0x6815) }, /* Sierra Wireless MC8775 */ 166 167 { USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */ 167 168 { USB_DEVICE(0x1199, 0x6832) }, /* Sierra Wireless MC8780*/ 168 169 { USB_DEVICE(0x1199, 0x6833) }, /* Sierra Wireless MC8781*/ ··· 197 196 spinlock_t lock; /* lock the structure */ 198 197 int outstanding_urbs; /* number of out urbs in flight */ 199 198 200 - /* Input endpoints and buffer for this port */ 199 + /* Input endpoints and buffers for this port */ 201 200 struct urb *in_urbs[N_IN_URB]; 202 - char in_buffer[N_IN_URB][IN_BUFLEN]; 201 + char *in_buffer[N_IN_URB]; 203 202 204 203 /* Settings for the port */ 205 204 int rts_state; /* Handshaking pins (outputs) */ ··· 639 638 return -ENOMEM; 640 639 } 641 640 spin_lock_init(&portdata->lock); 641 + for (j = 0; j < N_IN_URB; j++) { 642 + portdata->in_buffer[j] = kmalloc(IN_BUFLEN, GFP_KERNEL); 643 + if (!portdata->in_buffer[j]) { 644 + for (--j; j >= 0; j--) 645 + kfree(portdata->in_buffer[j]); 646 + kfree(portdata); 647 + return -ENOMEM; 648 + } 649 + } 642 650 643 651 usb_set_serial_port_data(port, portdata); 644 652 ··· 691 681 for (j = 0; j < N_IN_URB; j++) { 692 682 usb_kill_urb(portdata->in_urbs[j]); 693 683 usb_free_urb(portdata->in_urbs[j]); 694 - portdata->in_urbs[j] = NULL; 684 + kfree(portdata->in_buffer[j]); 695 685 } 696 686 kfree(portdata); 697 687 usb_set_serial_port_data(port, NULL);
+1
drivers/usb/storage/isd200.c
··· 1230 1230 1231 1231 /* Free driver structure */ 1232 1232 us->extra_destructor(info); 1233 + kfree(info); 1233 1234 us->extra = NULL; 1234 1235 us->extra_destructor = NULL; 1235 1236 }
+2 -1
drivers/usb/storage/transport.c
··· 1009 1009 US_DEBUGP("Bulk Status S 0x%x T 0x%x R %u Stat 0x%x\n", 1010 1010 le32_to_cpu(bcs->Signature), bcs->Tag, 1011 1011 residue, bcs->Status); 1012 - if (bcs->Tag != us->tag || bcs->Status > US_BULK_STAT_PHASE) { 1012 + if (!(bcs->Tag == us->tag || (us->flags & US_FL_BULK_IGNORE_TAG)) || 1013 + bcs->Status > US_BULK_STAT_PHASE) { 1013 1014 US_DEBUGP("Bulk logical error\n"); 1014 1015 return USB_STOR_TRANSPORT_ERROR; 1015 1016 }
+11
drivers/usb/storage/unusual_devs.h
··· 1589 1589 US_SC_DEVICE, US_PR_DEVICE, NULL, 1590 1590 US_FL_FIX_CAPACITY), 1591 1591 1592 + /* 1593 + * Patch by Constantin Baranov <const@tltsu.ru> 1594 + * Report by Andreas Koenecke. 1595 + * Motorola ROKR Z6. 1596 + */ 1597 + UNUSUAL_DEV( 0x22b8, 0x6426, 0x0101, 0x0101, 1598 + "Motorola", 1599 + "MSnc.", 1600 + US_SC_DEVICE, US_PR_DEVICE, NULL, 1601 + US_FL_FIX_INQUIRY | US_FL_FIX_CAPACITY | US_FL_BULK_IGNORE_TAG), 1602 + 1592 1603 /* Reported by Radovan Garabik <garabik@kassiopeia.juls.savba.sk> */ 1593 1604 UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999, 1594 1605 "MPIO",
+3
include/linux/usb/quirks.h
··· 9 9 10 10 /* device can't resume correctly so reset it instead */ 11 11 #define USB_QUIRK_RESET_RESUME 0x00000002 12 + 13 + /* device can't handle Set-Interface requests */ 14 + #define USB_QUIRK_NO_SET_INTF 0x00000004
+3 -1
include/linux/usb_usual.h
··· 50 50 US_FLAG(CAPACITY_HEURISTICS, 0x00001000) \ 51 51 /* sometimes sizes is too big */ \ 52 52 US_FLAG(MAX_SECTORS_MIN,0x00002000) \ 53 - /* Sets max_sectors to arch min */ 53 + /* Sets max_sectors to arch min */ \ 54 + US_FLAG(BULK_IGNORE_TAG,0x00004000) \ 55 + /* Ignore tag mismatch in bulk operations */ 54 56 55 57 56 58 #define US_FLAG(name, value) US_FL_##name = value ,