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:Update mailing list information in documentation
USB: fix ehci unlink regressions
USB: new ftdi_sio device id
USB: Remove __KERNEL__ check from non-exported gadget.h.
USB: g_printer.h does not need to be "unifdef"ed.
USB: fsl_usb2_udc: fix broken Kconfig
USB: option: add novatel device ids
USB: usbaudio: handle kcalloc failure
USB: cypress_m8: add UPS Powercom (0d9f:0002)
USB: drivers/usb/storage/sddr55.c: fix uninitialized var warnings
USB: fix usb-serial generic recursive lock

+132 -45
+3 -5
Documentation/usb/usb-help.txt
··· 1 usb-help.txt 2 - 2000-July-12 3 4 For USB help other than the readme files that are located in 5 Documentation/usb/*, see the following: ··· 10 Linux USB Guide: http://linux-usb.sourceforge.net 11 Linux-USB device overview (working devices and drivers): 12 http://www.qbik.ch/usb/devices/ 13 - 14 - The Linux-USB mailing lists are: 15 - linux-usb-users@lists.sourceforge.net for general user help 16 - linux-usb-devel@lists.sourceforge.net for developer discussions 17 18 ###
··· 1 usb-help.txt 2 + 2008-Mar-7 3 4 For USB help other than the readme files that are located in 5 Documentation/usb/*, see the following: ··· 10 Linux USB Guide: http://linux-usb.sourceforge.net 11 Linux-USB device overview (working devices and drivers): 12 http://www.qbik.ch/usb/devices/ 13 + 14 + The Linux-USB mailing list is at linux-usb@vger.kernel.org 15 16 ###
+1 -1
drivers/usb/gadget/Kconfig
··· 131 132 config USB_GADGET_FSL_USB2 133 boolean "Freescale Highspeed USB DR Peripheral Controller" 134 - depends on MPC834x || PPC_MPC831x 135 select USB_GADGET_DUALSPEED 136 help 137 Some of Freescale PowerPC processors have a High Speed
··· 131 132 config USB_GADGET_FSL_USB2 133 boolean "Freescale Highspeed USB DR Peripheral Controller" 134 + depends on FSL_SOC 135 select USB_GADGET_DUALSPEED 136 help 137 Some of Freescale PowerPC processors have a High Speed
+45 -15
drivers/usb/host/ehci-hcd.c
··· 281 { 282 struct ehci_hcd *ehci = (struct ehci_hcd *) param; 283 unsigned long flags; 284 - u32 status, cmd; 285 286 spin_lock_irqsave (&ehci->lock, flags); 287 - WARN_ON(!ehci->reclaim); 288 289 - status = ehci_readl(ehci, &ehci->regs->status); 290 - cmd = ehci_readl(ehci, &ehci->regs->command); 291 - ehci_dbg(ehci, "IAA watchdog: status %x cmd %x\n", status, cmd); 292 293 - /* lost IAA irqs wedge things badly; seen first with a vt8235 */ 294 - if (ehci->reclaim) { 295 - if (status & STS_IAA) { 296 - ehci_vdbg (ehci, "lost IAA\n"); 297 COUNT (ehci->stats.lost_iaa); 298 ehci_writel(ehci, STS_IAA, &ehci->regs->status); 299 } 300 - ehci_writel(ehci, cmd & ~CMD_IAAD, &ehci->regs->command); 301 end_unlink_async(ehci); 302 } 303 ··· 652 static irqreturn_t ehci_irq (struct usb_hcd *hcd) 653 { 654 struct ehci_hcd *ehci = hcd_to_ehci (hcd); 655 - u32 status, pcd_status = 0; 656 int bh; 657 658 spin_lock (&ehci->lock); ··· 673 674 /* clear (just) interrupts */ 675 ehci_writel(ehci, status, &ehci->regs->status); 676 - ehci_readl(ehci, &ehci->regs->command); /* unblock posted write */ 677 bh = 0; 678 679 #ifdef EHCI_VERBOSE_DEBUG ··· 694 695 /* complete the unlinking of some qh [4.15.2.3] */ 696 if (status & STS_IAA) { 697 - COUNT (ehci->stats.reclaim); 698 - end_unlink_async(ehci); 699 } 700 701 /* remote wakeup [4.3.1] */ ··· 811 static void unlink_async (struct ehci_hcd *ehci, struct ehci_qh *qh) 812 { 813 /* failfast */ 814 - if (!HC_IS_RUNNING(ehci_to_hcd(ehci)->state)) 815 end_unlink_async(ehci); 816 817 /* if it's not linked then there's nothing to do */
··· 281 { 282 struct ehci_hcd *ehci = (struct ehci_hcd *) param; 283 unsigned long flags; 284 285 spin_lock_irqsave (&ehci->lock, flags); 286 287 + /* Lost IAA irqs wedge things badly; seen first with a vt8235. 288 + * So we need this watchdog, but must protect it against both 289 + * (a) SMP races against real IAA firing and retriggering, and 290 + * (b) clean HC shutdown, when IAA watchdog was pending. 291 + */ 292 + if (ehci->reclaim 293 + && !timer_pending(&ehci->iaa_watchdog) 294 + && HC_IS_RUNNING(ehci_to_hcd(ehci)->state)) { 295 + u32 cmd, status; 296 297 + /* If we get here, IAA is *REALLY* late. It's barely 298 + * conceivable that the system is so busy that CMD_IAAD 299 + * is still legitimately set, so let's be sure it's 300 + * clear before we read STS_IAA. (The HC should clear 301 + * CMD_IAAD when it sets STS_IAA.) 302 + */ 303 + cmd = ehci_readl(ehci, &ehci->regs->command); 304 + if (cmd & CMD_IAAD) 305 + ehci_writel(ehci, cmd & ~CMD_IAAD, 306 + &ehci->regs->command); 307 + 308 + /* If IAA is set here it either legitimately triggered 309 + * before we cleared IAAD above (but _way_ late, so we'll 310 + * still count it as lost) ... or a silicon erratum: 311 + * - VIA seems to set IAA without triggering the IRQ; 312 + * - IAAD potentially cleared without setting IAA. 313 + */ 314 + status = ehci_readl(ehci, &ehci->regs->status); 315 + if ((status & STS_IAA) || !(cmd & CMD_IAAD)) { 316 COUNT (ehci->stats.lost_iaa); 317 ehci_writel(ehci, STS_IAA, &ehci->regs->status); 318 } 319 + 320 + ehci_vdbg(ehci, "IAA watchdog: status %x cmd %x\n", 321 + status, cmd); 322 end_unlink_async(ehci); 323 } 324 ··· 631 static irqreturn_t ehci_irq (struct usb_hcd *hcd) 632 { 633 struct ehci_hcd *ehci = hcd_to_ehci (hcd); 634 + u32 status, pcd_status = 0, cmd; 635 int bh; 636 637 spin_lock (&ehci->lock); ··· 652 653 /* clear (just) interrupts */ 654 ehci_writel(ehci, status, &ehci->regs->status); 655 + cmd = ehci_readl(ehci, &ehci->regs->command); 656 bh = 0; 657 658 #ifdef EHCI_VERBOSE_DEBUG ··· 673 674 /* complete the unlinking of some qh [4.15.2.3] */ 675 if (status & STS_IAA) { 676 + /* guard against (alleged) silicon errata */ 677 + if (cmd & CMD_IAAD) { 678 + ehci_writel(ehci, cmd & ~CMD_IAAD, 679 + &ehci->regs->command); 680 + ehci_dbg(ehci, "IAA with IAAD still set?\n"); 681 + } 682 + if (ehci->reclaim) { 683 + COUNT(ehci->stats.reclaim); 684 + end_unlink_async(ehci); 685 + } else 686 + ehci_dbg(ehci, "IAA with nothing to reclaim?\n"); 687 } 688 689 /* remote wakeup [4.3.1] */ ··· 781 static void unlink_async (struct ehci_hcd *ehci, struct ehci_qh *qh) 782 { 783 /* failfast */ 784 + if (!HC_IS_RUNNING(ehci_to_hcd(ehci)->state) && ehci->reclaim) 785 end_unlink_async(ehci); 786 787 /* if it's not linked then there's nothing to do */
+2
drivers/usb/serial/cypress_m8.c
··· 94 95 static struct usb_device_id id_table_cyphidcomrs232 [] = { 96 { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) }, 97 { } /* Terminating entry */ 98 }; 99 ··· 107 { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB) }, 108 { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) }, 109 { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) }, 110 { USB_DEVICE(VENDOR_ID_DAZZLE, PRODUCT_ID_CA42) }, 111 { } /* Terminating entry */ 112 };
··· 94 95 static struct usb_device_id id_table_cyphidcomrs232 [] = { 96 { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) }, 97 + { USB_DEVICE(VENDOR_ID_POWERCOM, PRODUCT_ID_UPS) }, 98 { } /* Terminating entry */ 99 }; 100 ··· 106 { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB) }, 107 { USB_DEVICE(VENDOR_ID_DELORME, PRODUCT_ID_EARTHMATEUSB_LT20) }, 108 { USB_DEVICE(VENDOR_ID_CYPRESS, PRODUCT_ID_CYPHIDCOM) }, 109 + { USB_DEVICE(VENDOR_ID_POWERCOM, PRODUCT_ID_UPS) }, 110 { USB_DEVICE(VENDOR_ID_DAZZLE, PRODUCT_ID_CA42) }, 111 { } /* Terminating entry */ 112 };
+4
drivers/usb/serial/cypress_m8.h
··· 19 #define VENDOR_ID_CYPRESS 0x04b4 20 #define PRODUCT_ID_CYPHIDCOM 0x5500 21 22 /* Nokia CA-42 USB to serial cable */ 23 #define VENDOR_ID_DAZZLE 0x07d0 24 #define PRODUCT_ID_CA42 0x4101
··· 19 #define VENDOR_ID_CYPRESS 0x04b4 20 #define PRODUCT_ID_CYPHIDCOM 0x5500 21 22 + /* Powercom UPS, chip CY7C63723 */ 23 + #define VENDOR_ID_POWERCOM 0x0d9f 24 + #define PRODUCT_ID_UPS 0x0002 25 + 26 /* Nokia CA-42 USB to serial cable */ 27 #define VENDOR_ID_DAZZLE 0x07d0 28 #define PRODUCT_ID_CA42 0x4101
+1
drivers/usb/serial/ftdi_sio.c
··· 359 { USB_DEVICE(FTDI_VID, FTDI_MAXSTREAM_PID) }, 360 { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) }, 361 { USB_DEVICE(FTDI_VID, FTDI_ELSTER_UNICOM_PID) }, 362 { USB_DEVICE(OLIMEX_VID, OLIMEX_ARM_USB_OCD_PID), 363 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, 364 { USB_DEVICE(FIC_VID, FIC_NEO1973_DEBUG_PID),
··· 359 { USB_DEVICE(FTDI_VID, FTDI_MAXSTREAM_PID) }, 360 { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) }, 361 { USB_DEVICE(FTDI_VID, FTDI_ELSTER_UNICOM_PID) }, 362 + { USB_DEVICE(FTDI_VID, FTDI_PROPOX_JTAGCABLEII_PID) }, 363 { USB_DEVICE(OLIMEX_VID, OLIMEX_ARM_USB_OCD_PID), 364 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, 365 { USB_DEVICE(FIC_VID, FIC_NEO1973_DEBUG_PID),
+3
drivers/usb/serial/ftdi_sio.h
··· 557 #define TML_VID 0x1B91 /* Vendor ID */ 558 #define TML_USB_SERIAL_PID 0x0064 /* USB - Serial Converter */ 559 560 /* Commands */ 561 #define FTDI_SIO_RESET 0 /* Reset the port */ 562 #define FTDI_SIO_MODEM_CTRL 1 /* Set the modem control register */
··· 557 #define TML_VID 0x1B91 /* Vendor ID */ 558 #define TML_USB_SERIAL_PID 0x0064 /* USB - Serial Converter */ 559 560 + /* Propox devices */ 561 + #define FTDI_PROPOX_JTAGCABLEII_PID 0xD738 562 + 563 /* Commands */ 564 #define FTDI_SIO_RESET 0 /* Reset the port */ 565 #define FTDI_SIO_MODEM_CTRL 1 /* Set the modem control register */
+6 -4
drivers/usb/serial/generic.c
··· 323 room = tty_buffer_request_room(tty, urb->actual_length); 324 if (room) { 325 tty_insert_flip_string(tty, urb->transfer_buffer, room); 326 - tty_flip_buffer_push(tty); /* is this allowed from an URB callback ? */ 327 } 328 } 329 ··· 349 350 /* Throttle the device if requested by tty */ 351 spin_lock_irqsave(&port->lock, flags); 352 - if (!(port->throttled = port->throttle_req)) 353 - /* Handle data and continue reading from device */ 354 flush_and_resubmit_read_urb(port); 355 - spin_unlock_irqrestore(&port->lock, flags); 356 } 357 EXPORT_SYMBOL_GPL(usb_serial_generic_read_bulk_callback); 358
··· 323 room = tty_buffer_request_room(tty, urb->actual_length); 324 if (room) { 325 tty_insert_flip_string(tty, urb->transfer_buffer, room); 326 + tty_flip_buffer_push(tty); 327 } 328 } 329 ··· 349 350 /* Throttle the device if requested by tty */ 351 spin_lock_irqsave(&port->lock, flags); 352 + if (!(port->throttled = port->throttle_req)) { 353 + spin_unlock_irqrestore(&port->lock, flags); 354 flush_and_resubmit_read_urb(port); 355 + } else { 356 + spin_unlock_irqrestore(&port->lock, flags); 357 + } 358 } 359 EXPORT_SYMBOL_GPL(usb_serial_generic_read_bulk_callback); 360
+62 -13
drivers/usb/serial/option.c
··· 111 #define HUAWEI_PRODUCT_E220BIS 0x1004 112 113 #define NOVATELWIRELESS_VENDOR_ID 0x1410 114 #define DELL_VENDOR_ID 0x413C 115 116 #define KYOCERA_VENDOR_ID 0x0c88 ··· 204 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, 205 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, 206 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, 207 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1100) }, /* Novatel Merlin XS620/S640 */ 208 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1110) }, /* Novatel Merlin S620 */ 209 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1120) }, /* Novatel Merlin EX720 */ 210 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1130) }, /* Novatel Merlin S720 */ 211 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1400) }, /* Novatel U730 */ 212 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1410) }, /* Novatel U740 */ 213 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1420) }, /* Novatel EU870 */ 214 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1430) }, /* Novatel Merlin XU870 HSDPA/3G */ 215 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2100) }, /* Novatel EV620 CDMA/EV-DO */ 216 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2110) }, /* Novatel Merlin ES620 / Merlin ES720 / Ovation U720 */ 217 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2130) }, /* Novatel Merlin ES620 SM Bus */ 218 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2410) }, /* Novatel EU740 */ 219 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x4100) }, /* Novatel U727 */ 220 - { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x4400) }, /* Novatel MC950 */ 221 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x5010) }, /* Novatel U727 */ 222 { USB_DEVICE(DELL_VENDOR_ID, 0x8114) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */ 223 { USB_DEVICE(DELL_VENDOR_ID, 0x8115) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ 224 { USB_DEVICE(DELL_VENDOR_ID, 0x8116) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
··· 111 #define HUAWEI_PRODUCT_E220BIS 0x1004 112 113 #define NOVATELWIRELESS_VENDOR_ID 0x1410 114 + 115 + /* MERLIN EVDO PRODUCTS */ 116 + #define NOVATELWIRELESS_PRODUCT_V640 0x1100 117 + #define NOVATELWIRELESS_PRODUCT_V620 0x1110 118 + #define NOVATELWIRELESS_PRODUCT_V740 0x1120 119 + #define NOVATELWIRELESS_PRODUCT_V720 0x1130 120 + 121 + /* MERLIN HSDPA/HSPA PRODUCTS */ 122 + #define NOVATELWIRELESS_PRODUCT_U730 0x1400 123 + #define NOVATELWIRELESS_PRODUCT_U740 0x1410 124 + #define NOVATELWIRELESS_PRODUCT_U870 0x1420 125 + #define NOVATELWIRELESS_PRODUCT_XU870 0x1430 126 + #define NOVATELWIRELESS_PRODUCT_X950D 0x1450 127 + 128 + /* EXPEDITE PRODUCTS */ 129 + #define NOVATELWIRELESS_PRODUCT_EV620 0x2100 130 + #define NOVATELWIRELESS_PRODUCT_ES720 0x2110 131 + #define NOVATELWIRELESS_PRODUCT_E725 0x2120 132 + #define NOVATELWIRELESS_PRODUCT_EU730 0x2400 133 + #define NOVATELWIRELESS_PRODUCT_EU740 0x2410 134 + #define NOVATELWIRELESS_PRODUCT_EU870D 0x2420 135 + 136 + /* OVATION PRODUCTS */ 137 + #define NOVATELWIRELESS_PRODUCT_MC727 0x4100 138 + #define NOVATELWIRELESS_PRODUCT_MC950D 0x4400 139 + 140 + /* FUTURE NOVATEL PRODUCTS */ 141 + #define NOVATELWIRELESS_PRODUCT_EVDO_1 0x6000 142 + #define NOVATELWIRELESS_PRODUCT_HSPA_1 0x7000 143 + #define NOVATELWIRELESS_PRODUCT_EMBEDDED_1 0x8000 144 + #define NOVATELWIRELESS_PRODUCT_GLOBAL_1 0x9000 145 + #define NOVATELWIRELESS_PRODUCT_EVDO_2 0x6001 146 + #define NOVATELWIRELESS_PRODUCT_HSPA_2 0x7001 147 + #define NOVATELWIRELESS_PRODUCT_EMBEDDED_2 0x8001 148 + #define NOVATELWIRELESS_PRODUCT_GLOBAL_2 0x9001 149 + 150 #define DELL_VENDOR_ID 0x413C 151 152 #define KYOCERA_VENDOR_ID 0x0c88 ··· 168 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, 169 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, 170 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, 171 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ 172 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */ 173 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V740) }, /* Novatel Merlin EX720/V740/X720 */ 174 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V720) }, /* Novatel Merlin V720/S720/PC720 */ 175 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U730) }, /* Novatel U730/U740 (VF version) */ 176 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U740) }, /* Novatel U740 */ 177 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U870) }, /* Novatel U870 */ 178 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_XU870) }, /* Novatel Merlin XU870 HSDPA/3G */ 179 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_X950D) }, /* Novatel X950D */ 180 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EV620) }, /* Novatel EV620/ES620 CDMA/EV-DO */ 181 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES720) }, /* Novatel ES620/ES720/U720/USB720 */ 182 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E725) }, /* Novatel E725/E726 */ 183 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2130) }, /* Novatel Merlin ES620 SM Bus */ 184 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU730) }, /* Novatel EU730 and Vodafone EU740 */ 185 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU740) }, /* Novatel non-Vodafone EU740 */ 186 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU870D) }, /* Novatel EU850D/EU860D/EU870D */ 187 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) }, /* Novatel MC930D/MC950D */ 188 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) }, /* Novatel MC727/U727/USB727 */ 189 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x5010) }, /* Novatel U727 */ 190 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_1) }, /* Novatel EVDO product */ 191 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_1) }, /* Novatel HSPA product */ 192 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_1) }, /* Novatel Embedded product */ 193 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL_1) }, /* Novatel Global product */ 194 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_2) }, /* Novatel EVDO product */ 195 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_2) }, /* Novatel HSPA product */ 196 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_2) }, /* Novatel Embedded product */ 197 + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL_2) }, /* Novatel Global product */ 198 + 199 { USB_DEVICE(DELL_VENDOR_ID, 0x8114) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */ 200 { USB_DEVICE(DELL_VENDOR_ID, 0x8115) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ 201 { USB_DEVICE(DELL_VENDOR_ID, 0x8116) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
+2 -2
drivers/usb/storage/sddr55.c
··· 522 523 static unsigned long sddr55_get_capacity(struct us_data *us) { 524 525 - unsigned char manufacturerID; 526 - unsigned char deviceID; 527 int result; 528 struct sddr55_card_info *info = (struct sddr55_card_info *)us->extra; 529
··· 522 523 static unsigned long sddr55_get_capacity(struct us_data *us) { 524 525 + unsigned char uninitialized_var(manufacturerID); 526 + unsigned char uninitialized_var(deviceID); 527 int result; 528 struct sddr55_card_info *info = (struct sddr55_card_info *)us->extra; 529
+1 -1
include/linux/usb/Kbuild
··· 3 header-y += ch9.h 4 header-y += gadgetfs.h 5 header-y += midi.h 6 - unifdef-y += g_printer.h 7
··· 3 header-y += ch9.h 4 header-y += gadgetfs.h 5 header-y += midi.h 6 + header-y += g_printer.h 7
-4
include/linux/usb/gadget.h
··· 15 #ifndef __LINUX_USB_GADGET_H 16 #define __LINUX_USB_GADGET_H 17 18 - #ifdef __KERNEL__ 19 - 20 struct usb_ep; 21 22 /** ··· 845 struct usb_endpoint_descriptor *) __devinit; 846 847 extern void usb_ep_autoconfig_reset(struct usb_gadget *) __devinit; 848 - 849 - #endif /* __KERNEL__ */ 850 851 #endif /* __LINUX_USB_GADGET_H */
··· 15 #ifndef __LINUX_USB_GADGET_H 16 #define __LINUX_USB_GADGET_H 17 18 struct usb_ep; 19 20 /** ··· 847 struct usb_endpoint_descriptor *) __devinit; 848 849 extern void usb_ep_autoconfig_reset(struct usb_gadget *) __devinit; 850 851 #endif /* __LINUX_USB_GADGET_H */
+2
sound/usb/usbaudio.c
··· 1762 1763 channels = kcalloc(MAX_MASK, sizeof(u32), GFP_KERNEL); 1764 rates = kcalloc(MAX_MASK, sizeof(u32), GFP_KERNEL); 1765 1766 list_for_each(p, &subs->fmt_list) { 1767 struct audioformat *f;
··· 1762 1763 channels = kcalloc(MAX_MASK, sizeof(u32), GFP_KERNEL); 1764 rates = kcalloc(MAX_MASK, sizeof(u32), GFP_KERNEL); 1765 + if (!channels || !rates) 1766 + goto __out; 1767 1768 list_for_each(p, &subs->fmt_list) { 1769 struct audioformat *f;