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: (23 commits)
USB: revert recovery from transient errors
usb: unusual devs patch for Nokia 5310 Music Xpress
usb: ftdi_sio: add support for Domintell devices
USB: drivers/usb/musb/: disable it on SuperH
USB Serial: Sierra: Add MC8785 VID/PID
USB: serial: add ZTE CDMA Tech id to option driver
USB: ftdi_sio: Add 0x5050/0x0900 USB IDs (Papouch Quido USB 4/4)
usb serial: ti_usb_3410_5052 obviously broken by firmware changes
USB: fsl_usb2_udc: fix VDBG() format string
USB: unusual_devs addition for RockChip MP3 player
USB: SERIAL CP2101 add device IDs
usb-serial: Add Siemens EF81 to PL-2303 hack triggers
USB: fix EHCI periodic transfers
usb: musb: fix include path
USB: Fixing Nokia 3310c in storage mode
usb gadget: fix omap_udc DMA regression
USB: update of Documentation/usb/anchors.txt
USB: fix hcd interrupt disabling
USB: Correct Sierra Wireless USB EVDO Modem Device ID
USB: Fix the Nokia 6300 storage-mode.
...

+124 -85
+12
Documentation/usb/anchors.txt
··· 42 42 are called in the reverse temporal order they were submitted. 43 43 This way no data can be reordered. 44 44 45 + usb_unlink_anchored_urbs() 46 + -------------------------- 47 + 48 + This function unlinks all URBs associated with an anchor. The URBs 49 + are processed in the reverse temporal order they were submitted. 50 + This is similar to usb_kill_anchored_urbs(), but it will not sleep. 51 + Therefore no guarantee is made that the URBs have been unlinked when 52 + the call returns. They may be unlinked later but will be unlinked in 53 + finite time. 54 + 45 55 usb_wait_anchor_empty_timeout() 46 56 ------------------------------- 47 57 48 58 This function waits for all URBs associated with an anchor to finish 49 59 or a timeout, whichever comes first. Its return value will tell you 50 60 whether the timeout was reached. 61 + 62 +
+2 -1
drivers/usb/core/hcd.c
··· 1876 1876 * with IRQF_SHARED. As usb_hcd_irq() will always disable 1877 1877 * interrupts we can remove it here. 1878 1878 */ 1879 - irqflags &= ~IRQF_DISABLED; 1879 + if (irqflags & IRQF_SHARED) 1880 + irqflags &= ~IRQF_DISABLED; 1880 1881 1881 1882 snprintf(hcd->irq_descr, sizeof(hcd->irq_descr), "%s:usb%d", 1882 1883 hcd->driver->description, hcd->self.busnum);
+17 -22
drivers/usb/core/hub.c
··· 2683 2683 USB_PORT_STAT_C_ENABLE); 2684 2684 #endif 2685 2685 2686 - /* Try to use the debounce delay for protection against 2687 - * port-enable changes caused, for example, by EMI. 2688 - */ 2689 - if (portchange & (USB_PORT_STAT_C_CONNECTION | 2690 - USB_PORT_STAT_C_ENABLE)) { 2691 - status = hub_port_debounce(hub, port1); 2692 - if (status < 0) { 2693 - if (printk_ratelimit()) 2694 - dev_err (hub_dev, "connect-debounce failed, " 2695 - "port %d disabled\n", port1); 2696 - portstatus &= ~USB_PORT_STAT_CONNECTION; 2697 - } else { 2698 - portstatus = status; 2699 - } 2700 - } 2701 - 2702 2686 /* Try to resuscitate an existing device */ 2703 2687 udev = hdev->children[port1-1]; 2704 2688 if ((portstatus & USB_PORT_STAT_CONNECTION) && udev && 2705 2689 udev->state != USB_STATE_NOTATTACHED) { 2706 - 2707 2690 usb_lock_device(udev); 2708 2691 if (portstatus & USB_PORT_STAT_ENABLE) { 2709 2692 status = 0; /* Nothing to do */ 2710 - } else if (!udev->persist_enabled) { 2711 - status = -ENODEV; /* Mustn't resuscitate */ 2712 2693 2713 2694 #ifdef CONFIG_USB_SUSPEND 2714 - } else if (udev->state == USB_STATE_SUSPENDED) { 2695 + } else if (udev->state == USB_STATE_SUSPENDED && 2696 + udev->persist_enabled) { 2715 2697 /* For a suspended device, treat this as a 2716 2698 * remote wakeup event. 2717 2699 */ ··· 2708 2726 #endif 2709 2727 2710 2728 } else { 2711 - status = usb_reset_device(udev); 2729 + status = -ENODEV; /* Don't resuscitate */ 2712 2730 } 2713 2731 usb_unlock_device(udev); 2714 2732 ··· 2723 2741 usb_disconnect(&hdev->children[port1-1]); 2724 2742 clear_bit(port1, hub->change_bits); 2725 2743 2744 + if (portchange & (USB_PORT_STAT_C_CONNECTION | 2745 + USB_PORT_STAT_C_ENABLE)) { 2746 + status = hub_port_debounce(hub, port1); 2747 + if (status < 0) { 2748 + if (printk_ratelimit()) 2749 + dev_err(hub_dev, "connect-debounce failed, " 2750 + "port %d disabled\n", port1); 2751 + portstatus &= ~USB_PORT_STAT_CONNECTION; 2752 + } else { 2753 + portstatus = status; 2754 + } 2755 + } 2756 + 2726 2757 /* Return now if debouncing failed or nothing is connected */ 2727 2758 if (!(portstatus & USB_PORT_STAT_CONNECTION)) { 2728 2759 ··· 2743 2748 if ((wHubCharacteristics & HUB_CHAR_LPSM) < 2 2744 2749 && !(portstatus & (1 << USB_PORT_FEAT_POWER))) 2745 2750 set_port_feature(hdev, port1, USB_PORT_FEAT_POWER); 2746 - 2751 + 2747 2752 if (portstatus & USB_PORT_STAT_ENABLE) 2748 2753 goto done; 2749 2754 return;
+1 -1
drivers/usb/gadget/fsl_usb2_udc.c
··· 223 223 fsl_writel(tmp, &dr_regs->endpointlistaddr); 224 224 225 225 VDBG("vir[qh_base] is %p phy[qh_base] is 0x%8x reg is 0x%8x", 226 - (int)udc->ep_qh, (int)tmp, 226 + udc->ep_qh, (int)tmp, 227 227 fsl_readl(&dr_regs->endpointlistaddr)); 228 228 229 229 /* Config PHY interface */
+2 -2
drivers/usb/gadget/omap_udc.c
··· 787 787 omap_set_dma_dest_params(ep->lch, 788 788 OMAP_DMA_PORT_TIPB, 789 789 OMAP_DMA_AMODE_CONSTANT, 790 - (unsigned long) io_v2p(UDC_DATA_DMA), 790 + UDC_DATA_DMA, 791 791 0, 0); 792 792 } 793 793 } else { ··· 804 804 omap_set_dma_src_params(ep->lch, 805 805 OMAP_DMA_PORT_TIPB, 806 806 OMAP_DMA_AMODE_CONSTANT, 807 - (unsigned long) io_v2p(UDC_DATA_DMA), 807 + UDC_DATA_DMA, 808 808 0, 0); 809 809 /* EMIFF or SDRC */ 810 810 omap_set_dma_dest_burst_mode(ep->lch,
+16 -10
drivers/usb/host/ehci-hcd.c
··· 145 145 return -ETIMEDOUT; 146 146 } 147 147 148 - static int handshake_on_error_set_halt(struct ehci_hcd *ehci, void __iomem *ptr, 149 - u32 mask, u32 done, int usec) 150 - { 151 - int error = handshake(ehci, ptr, mask, done, usec); 152 - if (error) 153 - ehci_to_hcd(ehci)->state = HC_STATE_HALT; 154 - 155 - return error; 156 - } 157 - 158 148 /* force HC to halt state from unknown (EHCI spec section 2.3) */ 159 149 static int ehci_halt (struct ehci_hcd *ehci) 160 150 { ··· 161 171 ehci_writel(ehci, temp, &ehci->regs->command); 162 172 return handshake (ehci, &ehci->regs->status, 163 173 STS_HALT, STS_HALT, 16 * 125); 174 + } 175 + 176 + static int handshake_on_error_set_halt(struct ehci_hcd *ehci, void __iomem *ptr, 177 + u32 mask, u32 done, int usec) 178 + { 179 + int error; 180 + 181 + error = handshake(ehci, ptr, mask, done, usec); 182 + if (error) { 183 + ehci_halt(ehci); 184 + ehci_to_hcd(ehci)->state = HC_STATE_HALT; 185 + ehci_err(ehci, "force halt; handhake %p %08x %08x -> %d\n", 186 + ptr, mask, done, error); 187 + } 188 + 189 + return error; 164 190 } 165 191 166 192 /* put TDI/ARC silicon into EHCI mode */
+14 -18
drivers/usb/host/ehci-sched.c
··· 437 437 u32 cmd; 438 438 int status; 439 439 440 + if (ehci->periodic_sched++) 441 + return 0; 442 + 440 443 /* did clearing PSE did take effect yet? 441 444 * takes effect only at frame boundaries... 442 445 */ ··· 463 460 { 464 461 u32 cmd; 465 462 int status; 463 + 464 + if (--ehci->periodic_sched) 465 + return 0; 466 466 467 467 /* did setting PSE not take effect yet? 468 468 * takes effect only at frame boundaries... ··· 550 544 : (qh->usecs * 8); 551 545 552 546 /* maybe enable periodic schedule processing */ 553 - if (!ehci->periodic_sched++) 554 - return enable_periodic (ehci); 555 - 556 - return 0; 547 + return enable_periodic(ehci); 557 548 } 558 549 559 - static void qh_unlink_periodic (struct ehci_hcd *ehci, struct ehci_qh *qh) 550 + static int qh_unlink_periodic(struct ehci_hcd *ehci, struct ehci_qh *qh) 560 551 { 561 552 unsigned i; 562 553 unsigned period; ··· 589 586 qh_put (qh); 590 587 591 588 /* maybe turn off periodic schedule */ 592 - ehci->periodic_sched--; 593 - if (!ehci->periodic_sched) 594 - (void) disable_periodic (ehci); 589 + return disable_periodic(ehci); 595 590 } 596 591 597 592 static void intr_deschedule (struct ehci_hcd *ehci, struct ehci_qh *qh) ··· 1563 1562 urb->hcpriv = NULL; 1564 1563 1565 1564 timer_action (ehci, TIMER_IO_WATCHDOG); 1566 - if (unlikely (!ehci->periodic_sched++)) 1567 - return enable_periodic (ehci); 1568 - return 0; 1565 + return enable_periodic(ehci); 1569 1566 } 1570 1567 1571 1568 #define ISO_ERRS (EHCI_ISOC_BUF_ERR | EHCI_ISOC_BABBLE | EHCI_ISOC_XACTERR) ··· 1641 1642 ehci_urb_done(ehci, urb, 0); 1642 1643 retval = true; 1643 1644 urb = NULL; 1644 - ehci->periodic_sched--; 1645 + (void) disable_periodic(ehci); 1645 1646 ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; 1646 1647 1647 1648 if (unlikely (list_empty (&stream->td_list))) { ··· 1950 1951 urb->hcpriv = NULL; 1951 1952 1952 1953 timer_action (ehci, TIMER_IO_WATCHDOG); 1953 - if (!ehci->periodic_sched++) 1954 - return enable_periodic (ehci); 1955 - return 0; 1954 + return enable_periodic(ehci); 1956 1955 } 1957 1956 1958 1957 /*-------------------------------------------------------------------------*/ ··· 2016 2019 ehci_urb_done(ehci, urb, 0); 2017 2020 retval = true; 2018 2021 urb = NULL; 2019 - ehci->periodic_sched--; 2022 + (void) disable_periodic(ehci); 2020 2023 ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; 2021 2024 2022 2025 if (list_empty (&stream->td_list)) { ··· 2240 2243 if (unlikely (modified)) { 2241 2244 if (likely(ehci->periodic_sched > 0)) 2242 2245 goto restart; 2243 - /* maybe we can short-circuit this scan! */ 2244 - disable_periodic(ehci); 2246 + /* short-circuit this scan */ 2245 2247 now_uframe = clock; 2246 2248 break; 2247 2249 }
+1
drivers/usb/musb/Kconfig
··· 9 9 # (M)HDRC = (Multipoint) Highspeed Dual-Role Controller 10 10 config USB_MUSB_HDRC 11 11 depends on (USB || USB_GADGET) && HAVE_CLK 12 + depends on !SUPERH 12 13 select TWL4030_USB if MACH_OMAP_3430SDP 13 14 tristate 'Inventra Highspeed Dual Role Controller (TI, ...)' 14 15 help
+2 -2
drivers/usb/musb/musb_core.c
··· 100 100 #include <linux/io.h> 101 101 102 102 #ifdef CONFIG_ARM 103 - #include <asm/arch/hardware.h> 104 - #include <asm/arch/memory.h> 103 + #include <mach/hardware.h> 104 + #include <mach/memory.h> 105 105 #include <asm/mach-types.h> 106 106 #endif 107 107
+2 -2
drivers/usb/musb/omap2430.c
··· 35 35 #include <linux/io.h> 36 36 37 37 #include <asm/mach-types.h> 38 - #include <asm/arch/hardware.h> 39 - #include <asm/arch/mux.h> 38 + #include <mach/hardware.h> 39 + #include <mach/mux.h> 40 40 41 41 #include "musb_core.h" 42 42 #include "omap2430.h"
+2 -2
drivers/usb/musb/omap2430.h
··· 11 11 #define __MUSB_OMAP243X_H__ 12 12 13 13 #if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3430) 14 - #include <asm/arch/hardware.h> 15 - #include <asm/arch/usb.h> 14 + #include <mach/hardware.h> 15 + #include <mach/usb.h> 16 16 17 17 /* 18 18 * OMAP2430-specific definitions
+3
drivers/usb/serial/cp2101.c
··· 72 72 { USB_DEVICE(0x10C4, 0x80CA) }, /* Degree Controls Inc */ 73 73 { USB_DEVICE(0x10C4, 0x80DD) }, /* Tracient RFID */ 74 74 { USB_DEVICE(0x10C4, 0x80F6) }, /* Suunto sports instrument */ 75 + { USB_DEVICE(0x10C4, 0x8115) }, /* Arygon NFC/Mifare Reader */ 75 76 { USB_DEVICE(0x10C4, 0x813D) }, /* Burnside Telecom Deskmobile */ 76 77 { USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */ 77 78 { USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */ ··· 84 83 { USB_DEVICE(0x10C4, 0x81E7) }, /* Aerocomm Radio */ 85 84 { USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */ 86 85 { USB_DEVICE(0x10c4, 0x8293) }, /* Telegesys ETRX2USB */ 86 + { USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */ 87 87 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ 88 88 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ 89 89 { USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */ ··· 95 93 { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */ 96 94 { USB_DEVICE(0x166A, 0x0303) }, /* Clipsal 5500PCU C-Bus USB interface */ 97 95 { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */ 96 + { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */ 98 97 { } /* Terminating Entry */ 99 98 }; 100 99
+3
drivers/usb/serial/ftdi_sio.c
··· 654 654 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, 655 655 { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) }, 656 656 { USB_DEVICE(FTDI_VID, FTDI_REU_TINY_PID) }, 657 + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) }, 658 + { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) }, 659 + { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) }, 657 660 { }, /* Optional parameter entry */ 658 661 { } /* Terminating entry */ 659 662 };
+5
drivers/usb/serial/ftdi_sio.h
··· 750 750 751 751 #define PAPOUCH_VID 0x5050 /* Vendor ID */ 752 752 #define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ 753 + #define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ 753 754 754 755 /* 755 756 * ACG Identification Technologies GmbH products (http://www.acg.de/). ··· 838 837 839 838 /* Rig Expert Ukraine devices */ 840 839 #define FTDI_REU_TINY_PID 0xED22 /* RigExpert Tiny */ 840 + 841 + /* Domintell products http://www.domintell.com */ 842 + #define FTDI_DOMINTELL_DGQG_PID 0xEF50 /* Master */ 843 + #define FTDI_DOMINTELL_DUSB_PID 0xEF51 /* DUSB01 module */ 841 844 842 845 /* Commands */ 843 846 #define FTDI_SIO_RESET 0 /* Reset the port */
+2
drivers/usb/serial/option.c
··· 218 218 /* ZTE PRODUCTS */ 219 219 #define ZTE_VENDOR_ID 0x19d2 220 220 #define ZTE_PRODUCT_MF628 0x0015 221 + #define ZTE_PRODUCT_CDMA_TECH 0xfffe 221 222 222 223 static struct usb_device_id option_ids[] = { 223 224 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, ··· 348 347 { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */ 349 348 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, 350 349 { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, 350 + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, 351 351 { } /* Terminating entry */ 352 352 }; 353 353 MODULE_DEVICE_TABLE(usb, option_ids);
+7 -5
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.13a" 17 + #define DRIVER_VERSION "v.1.3.2" 18 18 #define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>" 19 19 #define DRIVER_DESC "USB Driver for Sierra Wireless USB modems" 20 20 ··· 30 30 31 31 #define SWIMS_USB_REQUEST_SetPower 0x00 32 32 #define SWIMS_USB_REQUEST_SetNmea 0x07 33 - #define SWIMS_USB_REQUEST_SetMode 0x0B 34 - #define SWIMS_USB_REQUEST_GetSwocInfo 0x0A 35 - #define SWIMS_SET_MODE_Modem 0x0001 36 33 37 34 /* per port private data */ 38 35 #define N_IN_URB 4 ··· 160 163 { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */ 161 164 { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */ 162 165 { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */ 163 - { USB_DEVICE(0x0f30, 0x1b1d) }, /* Sierra Wireless MC5720 */ 166 + { USB_DEVICE(0x03f0, 0x1b1d) }, /* HP ev2200 a.k.a MC5720 */ 164 167 { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */ 165 168 { USB_DEVICE(0x1199, 0x0024) }, /* Sierra Wireless MC5727 */ 166 169 { USB_DEVICE(0x1199, 0x0220) }, /* Sierra Wireless MC5725 */ ··· 172 175 /* Sierra Wireless Device */ 173 176 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x0025, 0xFF, 0xFF, 0xFF) }, 174 177 { USB_DEVICE(0x1199, 0x0026) }, /* Sierra Wireless Device */ 178 + { USB_DEVICE(0x1199, 0x0027) }, /* Sierra Wireless Device */ 179 + { USB_DEVICE(0x1199, 0x0028) }, /* Sierra Wireless Device */ 175 180 176 181 { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */ 177 182 { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */ ··· 186 187 { USB_DEVICE(0x1199, 0x6821) }, /* Sierra Wireless AirCard 875U */ 187 188 { USB_DEVICE(0x1199, 0x6832) }, /* Sierra Wireless MC8780 */ 188 189 { USB_DEVICE(0x1199, 0x6833) }, /* Sierra Wireless MC8781 */ 190 + { USB_DEVICE(0x1199, 0x683A) }, /* Sierra Wireless MC8785 */ 189 191 { USB_DEVICE(0x1199, 0x683B) }, /* Sierra Wireless MC8785 Composite */ 190 192 { USB_DEVICE(0x1199, 0x683C) }, /* Sierra Wireless MC8790 */ 191 193 { USB_DEVICE(0x1199, 0x683D) }, /* Sierra Wireless MC8790 */ ··· 203 203 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6880, 0xFF, 0xFF, 0xFF)}, 204 204 /* Sierra Wireless Device */ 205 205 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6890, 0xFF, 0xFF, 0xFF)}, 206 + /* Sierra Wireless Device */ 207 + { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6891, 0xFF, 0xFF, 0xFF)}, 206 208 /* Sierra Wireless Device */ 207 209 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6892, 0xFF, 0xFF, 0xFF)}, 208 210
+1 -1
drivers/usb/serial/ti_usb_3410_5052.c
··· 1744 1744 if (buffer) { 1745 1745 memcpy(buffer, fw_p->data, fw_p->size); 1746 1746 memset(buffer + fw_p->size, 0xff, buffer_size - fw_p->size); 1747 - ti_do_download(dev, pipe, buffer, fw_p->size); 1747 + status = ti_do_download(dev, pipe, buffer, fw_p->size); 1748 1748 kfree(buffer); 1749 1749 } 1750 1750 release_firmware(fw_p);
+3 -1
drivers/usb/serial/usb-serial.c
··· 733 733 ((le16_to_cpu(dev->descriptor.idVendor) == ATEN_VENDOR_ID) && 734 734 (le16_to_cpu(dev->descriptor.idProduct) == ATEN_PRODUCT_ID)) || 735 735 ((le16_to_cpu(dev->descriptor.idVendor) == ALCOR_VENDOR_ID) && 736 - (le16_to_cpu(dev->descriptor.idProduct) == ALCOR_PRODUCT_ID))) { 736 + (le16_to_cpu(dev->descriptor.idProduct) == ALCOR_PRODUCT_ID)) || 737 + ((le16_to_cpu(dev->descriptor.idVendor) == SIEMENS_VENDOR_ID) && 738 + (le16_to_cpu(dev->descriptor.idProduct) == SIEMENS_PRODUCT_ID_EF81))) { 737 739 if (interface != dev->actconfig->interface[0]) { 738 740 /* check out the endpoints of the other interface*/ 739 741 iface_desc = dev->actconfig->interface[0]->cur_altsetting;
-12
drivers/usb/storage/Kconfig
··· 146 146 on the resulting scsi device node returns the Karma to normal 147 147 operation. 148 148 149 - config USB_STORAGE_SIERRA 150 - bool "Sierra Wireless TRU-Install Feature Support" 151 - depends on USB_STORAGE 152 - help 153 - Say Y here to include additional code to support Sierra Wireless 154 - products with the TRU-Install feature (e.g., AC597E, AC881U). 155 - 156 - This code switches the Sierra Wireless device from being in 157 - Mass Storage mode to Modem mode. It also has the ability to 158 - support host software upgrades should full Linux support be added 159 - to TRU-Install. 160 - 161 149 config USB_STORAGE_CYPRESS_ATACB 162 150 bool "SAT emulation on Cypress USB/ATA Bridge with ATACB" 163 151 depends on USB_STORAGE
+1 -2
drivers/usb/storage/Makefile
··· 21 21 usb-storage-obj-$(CONFIG_USB_STORAGE_ALAUDA) += alauda.o 22 22 usb-storage-obj-$(CONFIG_USB_STORAGE_ONETOUCH) += onetouch.o 23 23 usb-storage-obj-$(CONFIG_USB_STORAGE_KARMA) += karma.o 24 - usb-storage-obj-$(CONFIG_USB_STORAGE_SIERRA) += sierra_ms.o 25 24 usb-storage-obj-$(CONFIG_USB_STORAGE_CYPRESS_ATACB) += cypress_atacb.o 26 25 27 26 usb-storage-objs := scsiglue.o protocol.o transport.o usb.o \ 28 - initializers.o $(usb-storage-obj-y) 27 + initializers.o sierra_ms.o $(usb-storage-obj-y) 29 28 30 29 ifneq ($(CONFIG_USB_LIBUSUAL),) 31 30 obj-$(CONFIG_USB) += libusual.o
+28 -2
drivers/usb/storage/unusual_devs.h
··· 160 160 US_SC_DEVICE, US_PR_DEVICE, NULL, 161 161 US_FL_MAX_SECTORS_64 ), 162 162 163 + /* Reported by Filip Joelsson <filip@blueturtle.nu> */ 164 + UNUSUAL_DEV( 0x0421, 0x005d, 0x0001, 0x0600, 165 + "Nokia", 166 + "Nokia 3110c", 167 + US_SC_DEVICE, US_PR_DEVICE, NULL, 168 + US_FL_FIX_CAPACITY ), 169 + 163 170 /* Reported by Mario Rettig <mariorettig@web.de> */ 164 171 UNUSUAL_DEV( 0x0421, 0x042e, 0x0100, 0x0100, 165 172 "Nokia", ··· 238 231 "5300", 239 232 US_SC_DEVICE, US_PR_DEVICE, NULL, 240 233 US_FL_FIX_CAPACITY ), 234 + 235 + /* Reported by Richard Nauber <RichardNauber@web.de> */ 236 + UNUSUAL_DEV( 0x0421, 0x04fa, 0x0601, 0x0601, 237 + "Nokia", 238 + "6300", 239 + US_SC_DEVICE, US_PR_DEVICE, NULL, 240 + US_FL_FIX_CAPACITY ), 241 + 242 + /* Patch for Nokia 5310 capacity */ 243 + UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0591, 244 + "Nokia", 245 + "5310", 246 + US_SC_DEVICE, US_PR_DEVICE, NULL, 247 + US_FL_FIX_CAPACITY ), 241 248 242 249 /* Reported by Olaf Hering <olh@suse.de> from novell bug #105878 */ 243 250 UNUSUAL_DEV( 0x0424, 0x0fdc, 0x0210, 0x0210, ··· 1008 987 US_SC_DEVICE, US_PR_DEVICE, NULL, 1009 988 US_FL_FIX_CAPACITY ), 1010 989 990 + /* Reported by Adrian Pilchowiec <adi1981@epf.pl> */ 991 + UNUSUAL_DEV( 0x071b, 0x3203, 0x0000, 0x0000, 992 + "RockChip", 993 + "MP3", 994 + US_SC_DEVICE, US_PR_DEVICE, NULL, 995 + US_FL_NO_WP_DETECT | US_FL_MAX_SECTORS_64), 996 + 1011 997 /* Reported by Massimiliano Ghilardi <massimiliano.ghilardi@gmail.com> 1012 998 * This USB MP3/AVI player device fails and disconnects if more than 128 1013 999 * sectors (64kB) are read/written in a single command, and may be present ··· 1604 1576 US_SC_DEVICE, US_PR_DEVICE, NULL, 1605 1577 0), 1606 1578 1607 - #ifdef CONFIG_USB_STORAGE_SIERRA 1608 1579 /* Reported by Kevin Lloyd <linux@sierrawireless.com> 1609 1580 * Entry is needed for the initializer function override, 1610 1581 * which instructs the device to load as a modem ··· 1614 1587 "USB MMC Storage", 1615 1588 US_SC_DEVICE, US_PR_DEVICE, sierra_ms_init, 1616 1589 0), 1617 - #endif 1618 1590 1619 1591 /* Reported by Jaco Kroon <jaco@kroon.co.za> 1620 1592 * The usb-storage module found on the Digitech GNX4 (and supposedly other
-2
drivers/usb/storage/usb.c
··· 102 102 #ifdef CONFIG_USB_STORAGE_CYPRESS_ATACB 103 103 #include "cypress_atacb.h" 104 104 #endif 105 - #ifdef CONFIG_USB_STORAGE_SIERRA 106 105 #include "sierra_ms.h" 107 - #endif 108 106 109 107 /* Some informational data */ 110 108 MODULE_AUTHOR("Matthew Dharm <mdharm-usb@one-eyed-alien.net>");