diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-02-09 16:50:54 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-02-09 16:50:54 -0500 |
| commit | fe250923bbbbcbccc9aa7b84d05ee7a060450534 (patch) | |
| tree | ece7eb383ca568dd7480a50827ec6e65f4fbb562 | |
| parent | 690d137f448d4c4da9001871e6569d5636f116c7 (diff) | |
| parent | 90451e6973a5da155c6f315a409ca0a8d3ce6b76 (diff) | |
Merge tag 'usb-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
USB fixes for 3.3-rc3
Here are a few minor USB fixes and a bunch of device id updates for the
USB drivers.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* tag 'usb-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
USB: usbserial: add new PID number (0xa951) to the ftdi driver
usb: ch9.h: usb_endpoint_maxp() uses __le16_to_cpu()
usb: musb: fix a build error on mips
uwb & wusb & usb wireless controllers: fix kconfig error & build errors
usb: Skip PCI USB quirk handling for Netlogic XLP
powerpc/usb: fix issue of CPU halt when missing USB PHY clock
usb: otg: mv_otg: Add dependence
usb: host: Distinguish Kconfig text for Freescale controllers
USB: add new zte 3g-dongle's pid to option.c
usb: ch9.h: usb_endpoint_maxp() uses __le16_to_cpu()
USB: qcserial: don't enable autosuspend
USB: qcserial: add several new serial devices
usb: otg: mv_otg: Add dependence
usb: gadget: zero: fix bug in loopback autoresume handling
| -rw-r--r-- | drivers/usb/gadget/f_loopback.c | 2 | ||||
| -rw-r--r-- | drivers/usb/host/Kconfig | 8 | ||||
| -rw-r--r-- | drivers/usb/host/ehci-fsl.c | 11 | ||||
| -rw-r--r-- | drivers/usb/host/ehci-fsl.h | 1 | ||||
| -rw-r--r-- | drivers/usb/host/pci-quirks.c | 6 | ||||
| -rw-r--r-- | drivers/usb/musb/musb_io.h | 3 | ||||
| -rw-r--r-- | drivers/usb/otg/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 1 | ||||
| -rw-r--r-- | drivers/usb/serial/ftdi_sio_ids.h | 7 | ||||
| -rw-r--r-- | drivers/usb/serial/option.c | 129 | ||||
| -rw-r--r-- | drivers/usb/serial/qcserial.c | 16 | ||||
| -rw-r--r-- | include/linux/usb/ch9.h | 2 |
12 files changed, 175 insertions, 13 deletions
diff --git a/drivers/usb/gadget/f_loopback.c b/drivers/usb/gadget/f_loopback.c index 6d87f288df4e..2c0cd824c667 100644 --- a/drivers/usb/gadget/f_loopback.c +++ b/drivers/usb/gadget/f_loopback.c | |||
| @@ -418,7 +418,7 @@ int __init loopback_add(struct usb_composite_dev *cdev, bool autoresume) | |||
| 418 | 418 | ||
| 419 | /* support autoresume for remote wakeup testing */ | 419 | /* support autoresume for remote wakeup testing */ |
| 420 | if (autoresume) | 420 | if (autoresume) |
| 421 | sourcesink_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP; | 421 | loopback_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP; |
| 422 | 422 | ||
| 423 | /* support OTG systems */ | 423 | /* support OTG systems */ |
| 424 | if (gadget_is_otg(cdev->gadget)) { | 424 | if (gadget_is_otg(cdev->gadget)) { |
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index 91413cac97be..353cdd488b93 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig | |||
| @@ -130,7 +130,7 @@ config USB_FSL_MPH_DR_OF | |||
| 130 | tristate | 130 | tristate |
| 131 | 131 | ||
| 132 | config USB_EHCI_FSL | 132 | config USB_EHCI_FSL |
| 133 | bool "Support for Freescale on-chip EHCI USB controller" | 133 | bool "Support for Freescale PPC on-chip EHCI USB controller" |
| 134 | depends on USB_EHCI_HCD && FSL_SOC | 134 | depends on USB_EHCI_HCD && FSL_SOC |
| 135 | select USB_EHCI_ROOT_HUB_TT | 135 | select USB_EHCI_ROOT_HUB_TT |
| 136 | select USB_FSL_MPH_DR_OF if OF | 136 | select USB_FSL_MPH_DR_OF if OF |
| @@ -138,7 +138,7 @@ config USB_EHCI_FSL | |||
| 138 | Variation of ARC USB block used in some Freescale chips. | 138 | Variation of ARC USB block used in some Freescale chips. |
| 139 | 139 | ||
| 140 | config USB_EHCI_MXC | 140 | config USB_EHCI_MXC |
| 141 | bool "Support for Freescale on-chip EHCI USB controller" | 141 | bool "Support for Freescale i.MX on-chip EHCI USB controller" |
| 142 | depends on USB_EHCI_HCD && ARCH_MXC | 142 | depends on USB_EHCI_HCD && ARCH_MXC |
| 143 | select USB_EHCI_ROOT_HUB_TT | 143 | select USB_EHCI_ROOT_HUB_TT |
| 144 | ---help--- | 144 | ---help--- |
| @@ -546,7 +546,7 @@ config USB_RENESAS_USBHS_HCD | |||
| 546 | config USB_WHCI_HCD | 546 | config USB_WHCI_HCD |
| 547 | tristate "Wireless USB Host Controller Interface (WHCI) driver (EXPERIMENTAL)" | 547 | tristate "Wireless USB Host Controller Interface (WHCI) driver (EXPERIMENTAL)" |
| 548 | depends on EXPERIMENTAL | 548 | depends on EXPERIMENTAL |
| 549 | depends on PCI && USB | 549 | depends on PCI && USB && UWB |
| 550 | select USB_WUSB | 550 | select USB_WUSB |
| 551 | select UWB_WHCI | 551 | select UWB_WHCI |
| 552 | help | 552 | help |
| @@ -559,7 +559,7 @@ config USB_WHCI_HCD | |||
| 559 | config USB_HWA_HCD | 559 | config USB_HWA_HCD |
| 560 | tristate "Host Wire Adapter (HWA) driver (EXPERIMENTAL)" | 560 | tristate "Host Wire Adapter (HWA) driver (EXPERIMENTAL)" |
| 561 | depends on EXPERIMENTAL | 561 | depends on EXPERIMENTAL |
| 562 | depends on USB | 562 | depends on USB && UWB |
| 563 | select USB_WUSB | 563 | select USB_WUSB |
| 564 | select UWB_HWA | 564 | select UWB_HWA |
| 565 | help | 565 | help |
diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c index b556a72264d1..c26a82e83f6e 100644 --- a/drivers/usb/host/ehci-fsl.c +++ b/drivers/usb/host/ehci-fsl.c | |||
| @@ -239,7 +239,7 @@ static void ehci_fsl_setup_phy(struct ehci_hcd *ehci, | |||
| 239 | ehci_writel(ehci, portsc, &ehci->regs->port_status[port_offset]); | 239 | ehci_writel(ehci, portsc, &ehci->regs->port_status[port_offset]); |
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | static void ehci_fsl_usb_setup(struct ehci_hcd *ehci) | 242 | static int ehci_fsl_usb_setup(struct ehci_hcd *ehci) |
| 243 | { | 243 | { |
| 244 | struct usb_hcd *hcd = ehci_to_hcd(ehci); | 244 | struct usb_hcd *hcd = ehci_to_hcd(ehci); |
| 245 | struct fsl_usb2_platform_data *pdata; | 245 | struct fsl_usb2_platform_data *pdata; |
| @@ -299,12 +299,19 @@ static void ehci_fsl_usb_setup(struct ehci_hcd *ehci) | |||
| 299 | #endif | 299 | #endif |
| 300 | out_be32(non_ehci + FSL_SOC_USB_SICTRL, 0x00000001); | 300 | out_be32(non_ehci + FSL_SOC_USB_SICTRL, 0x00000001); |
| 301 | } | 301 | } |
| 302 | |||
| 303 | if (!(in_be32(non_ehci + FSL_SOC_USB_CTRL) & CTRL_PHY_CLK_VALID)) { | ||
| 304 | printk(KERN_WARNING "fsl-ehci: USB PHY clock invalid\n"); | ||
| 305 | return -ENODEV; | ||
| 306 | } | ||
| 307 | return 0; | ||
| 302 | } | 308 | } |
| 303 | 309 | ||
| 304 | /* called after powerup, by probe or system-pm "wakeup" */ | 310 | /* called after powerup, by probe or system-pm "wakeup" */ |
| 305 | static int ehci_fsl_reinit(struct ehci_hcd *ehci) | 311 | static int ehci_fsl_reinit(struct ehci_hcd *ehci) |
| 306 | { | 312 | { |
| 307 | ehci_fsl_usb_setup(ehci); | 313 | if (ehci_fsl_usb_setup(ehci)) |
| 314 | return -ENODEV; | ||
| 308 | ehci_port_power(ehci, 0); | 315 | ehci_port_power(ehci, 0); |
| 309 | 316 | ||
| 310 | return 0; | 317 | return 0; |
diff --git a/drivers/usb/host/ehci-fsl.h b/drivers/usb/host/ehci-fsl.h index 491806221165..bdf43e2adc51 100644 --- a/drivers/usb/host/ehci-fsl.h +++ b/drivers/usb/host/ehci-fsl.h | |||
| @@ -45,5 +45,6 @@ | |||
| 45 | #define FSL_SOC_USB_PRICTRL 0x40c /* NOTE: big-endian */ | 45 | #define FSL_SOC_USB_PRICTRL 0x40c /* NOTE: big-endian */ |
| 46 | #define FSL_SOC_USB_SICTRL 0x410 /* NOTE: big-endian */ | 46 | #define FSL_SOC_USB_SICTRL 0x410 /* NOTE: big-endian */ |
| 47 | #define FSL_SOC_USB_CTRL 0x500 /* NOTE: big-endian */ | 47 | #define FSL_SOC_USB_CTRL 0x500 /* NOTE: big-endian */ |
| 48 | #define CTRL_PHY_CLK_VALID (1 << 17) | ||
| 48 | #define SNOOP_SIZE_2GB 0x1e | 49 | #define SNOOP_SIZE_2GB 0x1e |
| 49 | #endif /* _EHCI_FSL_H */ | 50 | #endif /* _EHCI_FSL_H */ |
diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c index caf87428ca43..ac53a662a6a3 100644 --- a/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c | |||
| @@ -867,6 +867,12 @@ hc_init: | |||
| 867 | 867 | ||
| 868 | static void __devinit quirk_usb_early_handoff(struct pci_dev *pdev) | 868 | static void __devinit quirk_usb_early_handoff(struct pci_dev *pdev) |
| 869 | { | 869 | { |
| 870 | /* Skip Netlogic mips SoC's internal PCI USB controller. | ||
| 871 | * This device does not need/support EHCI/OHCI handoff | ||
| 872 | */ | ||
| 873 | if (pdev->vendor == 0x184e) /* vendor Netlogic */ | ||
| 874 | return; | ||
| 875 | |||
| 870 | if (pdev->class == PCI_CLASS_SERIAL_USB_UHCI) | 876 | if (pdev->class == PCI_CLASS_SERIAL_USB_UHCI) |
| 871 | quirk_usb_handoff_uhci(pdev); | 877 | quirk_usb_handoff_uhci(pdev); |
| 872 | else if (pdev->class == PCI_CLASS_SERIAL_USB_OHCI) | 878 | else if (pdev->class == PCI_CLASS_SERIAL_USB_OHCI) |
diff --git a/drivers/usb/musb/musb_io.h b/drivers/usb/musb/musb_io.h index e61aa95f2d2a..1d5eda26fbd1 100644 --- a/drivers/usb/musb/musb_io.h +++ b/drivers/usb/musb/musb_io.h | |||
| @@ -39,7 +39,8 @@ | |||
| 39 | 39 | ||
| 40 | #if !defined(CONFIG_ARM) && !defined(CONFIG_SUPERH) \ | 40 | #if !defined(CONFIG_ARM) && !defined(CONFIG_SUPERH) \ |
| 41 | && !defined(CONFIG_AVR32) && !defined(CONFIG_PPC32) \ | 41 | && !defined(CONFIG_AVR32) && !defined(CONFIG_PPC32) \ |
| 42 | && !defined(CONFIG_PPC64) && !defined(CONFIG_BLACKFIN) | 42 | && !defined(CONFIG_PPC64) && !defined(CONFIG_BLACKFIN) \ |
| 43 | && !defined(CONFIG_MIPS) | ||
| 43 | static inline void readsl(const void __iomem *addr, void *buf, int len) | 44 | static inline void readsl(const void __iomem *addr, void *buf, int len) |
| 44 | { insl((unsigned long)addr, buf, len); } | 45 | { insl((unsigned long)addr, buf, len); } |
| 45 | static inline void readsw(const void __iomem *addr, void *buf, int len) | 46 | static inline void readsw(const void __iomem *addr, void *buf, int len) |
diff --git a/drivers/usb/otg/Kconfig b/drivers/usb/otg/Kconfig index 76d629345418..735ef4c2339a 100644 --- a/drivers/usb/otg/Kconfig +++ b/drivers/usb/otg/Kconfig | |||
| @@ -118,7 +118,7 @@ config FSL_USB2_OTG | |||
| 118 | 118 | ||
| 119 | config USB_MV_OTG | 119 | config USB_MV_OTG |
| 120 | tristate "Marvell USB OTG support" | 120 | tristate "Marvell USB OTG support" |
| 121 | depends on USB_MV_UDC && USB_SUSPEND | 121 | depends on USB_EHCI_MV && USB_MV_UDC && USB_SUSPEND |
| 122 | select USB_OTG | 122 | select USB_OTG |
| 123 | select USB_OTG_UTILS | 123 | select USB_OTG_UTILS |
| 124 | help | 124 | help |
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index ad654f8208ef..f770415305f8 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
| @@ -839,6 +839,7 @@ static struct usb_device_id id_table_combined [] = { | |||
| 839 | { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LOGBOOKML_PID) }, | 839 | { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LOGBOOKML_PID) }, |
| 840 | { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LS_LOGBOOK_PID) }, | 840 | { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LS_LOGBOOK_PID) }, |
| 841 | { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_HS_LOGBOOK_PID) }, | 841 | { USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_HS_LOGBOOK_PID) }, |
| 842 | { USB_DEVICE(FTDI_VID, FTDI_CINTERION_MC55I_PID) }, | ||
| 842 | { USB_DEVICE(FTDI_VID, FTDI_DOTEC_PID) }, | 843 | { USB_DEVICE(FTDI_VID, FTDI_DOTEC_PID) }, |
| 843 | { USB_DEVICE(QIHARDWARE_VID, MILKYMISTONE_JTAGSERIAL_PID), | 844 | { USB_DEVICE(QIHARDWARE_VID, MILKYMISTONE_JTAGSERIAL_PID), |
| 844 | .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, | 845 | .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, |
