]> Git Repo - linux.git/commitdiff
Merge tag 'usb-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
authorLinus Torvalds <[email protected]>
Sun, 15 Feb 2015 18:24:55 +0000 (10:24 -0800)
committerLinus Torvalds <[email protected]>
Sun, 15 Feb 2015 18:24:55 +0000 (10:24 -0800)
Pull USB patches from Greg KH:
 "Here's the big pull request for the USB driver tree for 3.20-rc1.

  Nothing major happening here, just lots of gadget driver updates, new
  device ids, and a bunch of cleanups.

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'usb-3.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (299 commits)
  usb: musb: fix device hotplug behind hub
  usb: dwc2: Fix a bug in reading the endpoint directions from reg.
  staging: emxx_udc: fix the build error
  usb: Retry port status check on resume to work around RH bugs
  Revert "usb: Reset USB-3 devices on USB-3 link bounce"
  uhci-hub: use HUB_CHAR_*
  usb: kconfig: replace PPC_OF with PPC
  ehci-pci: disable for Intel MID platforms (update)
  usb: gadget: Kconfig: use bool instead of boolean
  usb: musb: blackfin: remove incorrect __exit_p()
  USB: fix use-after-free bug in usb_hcd_unlink_urb()
  ehci-pci: disable for Intel MID platforms
  usb: host: pci_quirks: joing string literals
  USB: add flag for HCDs that can't receive wakeup requests (isp1760-hcd)
  USB: usbfs: allow URBs to be reaped after disconnection
  cdc-acm: kill unnecessary messages
  cdc-acm: add sanity checks
  usb: phy: phy-generic: Fix USB PHY gpio reset
  usb: dwc2: fix USB core dependencies
  usb: renesas_usbhs: fix NULL pointer dereference in dma_release_channel()
  ...

1  2 
MAINTAINERS
drivers/phy/Kconfig
drivers/phy/Makefile
drivers/usb/core/hub.c
include/linux/mod_devicetable.h

diff --combined MAINTAINERS
index 1c7e321f77b8a7eed8a55e9f98baa73ba4192d6a,f25de35e3ad28b07256e6e99d3c74a4e8d759062..d854959aa519e018365c1b03e89ab005c6a72d90
@@@ -270,12 -270,12 +270,12 @@@ F:      drivers/acpi
  F:    drivers/pnp/pnpacpi/
  F:    include/linux/acpi.h
  F:    include/acpi/
 -F:    Documentation/acpi
 +F:    Documentation/acpi/
  F:    Documentation/ABI/testing/sysfs-bus-acpi
  F:    drivers/pci/*acpi*
  F:    drivers/pci/*/*acpi*
  F:    drivers/pci/*/*/*acpi*
 -F:    tools/power/acpi
 +F:    tools/power/acpi/
  
  ACPI COMPONENT ARCHITECTURE (ACPICA)
  M:    Robert Moore <[email protected]>
@@@ -563,12 -563,6 +563,12 @@@ S:       Odd Fixe
  L:    [email protected]
  F:    arch/alpha/
  
 +ALTERA MAILBOX DRIVER
 +M:    Ley Foon Tan <[email protected]>
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/mailbox/mailbox-altera.c
 +
  ALTERA TRIPLE SPEED ETHERNET DRIVER
  M:    Vince Bridgers <[email protected]>
  L:    [email protected]
@@@ -665,13 -659,6 +665,13 @@@ L:       [email protected]
  S:    Maintained
  F:    drivers/media/i2c/ad9389b*
  
 +ANALOG DEVICES INC ADV7180 DRIVER
 +M:    Lars-Peter Clausen <[email protected]>
 +L:    [email protected]
 +W:    http://ez.analog.com/community/linux-device-drivers
 +S:    Supported
 +F:    drivers/media/i2c/adv7180.c
 +
  ANALOG DEVICES INC ADV7511 DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -1173,7 -1160,6 +1173,7 @@@ M:      Sebastian Hesselbarth <sebastian.hes
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-mvebu/
 +F:    drivers/rtc/armada38x-rtc
  
  ARM/Marvell Berlin SoC support
  M:    Sebastian Hesselbarth <[email protected]>
@@@ -1600,14 -1586,12 +1600,14 @@@ N:   xilin
  F:    drivers/clocksource/cadence_ttc_timer.c
  F:    drivers/i2c/busses/i2c-cadence.c
  F:    drivers/mmc/host/sdhci-of-arasan.c
 +F:    drivers/edac/synopsys_edac.c
  
  ARM SMMU DRIVER
  M:    Will Deacon <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/iommu/arm-smmu.c
 +F:    drivers/iommu/io-pgtable-arm.c
  
  ARM64 PORT (AARCH64 ARCHITECTURE)
  M:    Catalin Marinas <[email protected]>
@@@ -1676,6 -1660,7 +1676,6 @@@ M:      Jiri Slaby <[email protected]
  M:    Nick Kossifidis <[email protected]>
  M:    "Luis R. Rodriguez" <[email protected]>
  L:    [email protected]
 -L:    [email protected]
  W:    http://wireless.kernel.org/en/users/Drivers/ath5k
  S:    Maintained
  F:    drivers/net/wireless/ath/ath5k/
@@@ -3048,7 -3033,7 +3048,7 @@@ S:      Maintaine
  F:    drivers/platform/x86/dell-wmi.c
  
  DESIGNWARE USB2 DRD IP DRIVER
- M:    Paul Zimmerman <paulz@synopsys.com>
+ M:    John Youn <johnyoun@synopsys.com>
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git
  S:    Maintained
@@@ -3228,7 -3213,6 +3228,7 @@@ F:      Documentation
  X:    Documentation/ABI/
  X:    Documentation/devicetree/
  X:    Documentation/[a-z][a-z]_[A-Z][A-Z]/
 +T:    git git://git.lwn.net/linux-2.6.git docs-next
  
  DOUBLETALK DRIVER
  M:    "James R. Van Zandt" <[email protected]>
@@@ -3488,14 -3472,6 +3488,14 @@@ M:    "Maciej W. Rozycki" <macro@linux-mip
  S:    Maintained
  F:    drivers/tty/serial/dz.*
  
 +E3X0 POWER BUTTON DRIVER
 +M:    Moritz Fischer <[email protected]>
 +L:    [email protected]
 +W:    http://www.ettus.com
 +S:    Supported
 +F:    drivers/input/misc/e3x0-button.c
 +F:    Documentation/devicetree/bindings/input/e3x0-button.txt
 +
  E4000 MEDIA DRIVER
  M:    Antti Palosaari <[email protected]>
  L:    [email protected]
@@@ -3537,8 -3513,6 +3537,8 @@@ M:      Borislav Petkov <[email protected]
  M:    Mauro Carvalho Chehab <[email protected]>
  L:    [email protected]
  W:    bluesmoke.sourceforge.net
 +T:    git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git#for-next
 +T:    git://git.kernel.org/pub/linux/kernel/git/mchehab/linux-edac.git#linux_next
  S:    Supported
  F:    Documentation/edac.txt
  F:    drivers/edac/
@@@ -4434,7 -4408,6 +4434,7 @@@ F:      include/linux/hwmon*.
  HARDWARE RANDOM NUMBER GENERATOR CORE
  M:    Matt Mackall <[email protected]>
  M:    Herbert Xu <[email protected]>
 +L:    [email protected]
  S:    Odd fixes
  F:    Documentation/hw_random.txt
  F:    drivers/char/hw_random/
@@@ -4920,7 -4893,7 +4920,7 @@@ F:      drivers/ipack
  
  INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
  M:    Mimi Zohar <[email protected]>
 -M:    Dmitry Kasatkin <d.kasatkin@samsung.com>
 +M:    Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
  L:    [email protected]
  L:    [email protected]
  L:    [email protected]
@@@ -4980,16 -4953,6 +4980,16 @@@ F:    Documentation/input/multi-touch-prot
  F:    drivers/input/input-mt.c
  K:    \b(ABS|SYN)_MT_
  
 +INTEL ASoC BDW/HSW DRIVERS
 +M:    Jie Yang <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    sound/soc/intel/sst-haswell*
 +F:    sound/soc/intel/sst-dsp*
 +F:    sound/soc/intel/sst-firmware.c
 +F:    sound/soc/intel/broadwell.c
 +F:    sound/soc/intel/haswell.c
 +
  INTEL C600 SERIES SAS CONTROLLER DRIVER
  M:    Intel SCU Linux support <[email protected]>
  M:    Artur Paszkiewicz <[email protected]>
@@@ -5877,21 -5840,6 +5877,21 @@@ F:    Documentation/misc-devices/lis3lv02
  F:    drivers/misc/lis3lv02d/
  F:    drivers/platform/x86/hp_accel.c
  
 +LIVE PATCHING
 +M:    Josh Poimboeuf <[email protected]>
 +M:    Seth Jennings <[email protected]>
 +M:    Jiri Kosina <[email protected]>
 +M:    Vojtech Pavlik <[email protected]>
 +S:    Maintained
 +F:    kernel/livepatch/
 +F:    include/linux/livepatch.h
 +F:    arch/x86/include/asm/livepatch.h
 +F:    arch/x86/kernel/livepatch.c
 +F:    Documentation/ABI/testing/sysfs-kernel-livepatch
 +F:    samples/livepatch/
 +L:    [email protected]
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching.git
 +
  LLC (802.2)
  M:    Arnaldo Carvalho de Melo <[email protected]>
  S:    Maintained
@@@ -6190,13 -6138,6 +6190,13 @@@ F:    Documentation/devicetree/bindings/i2
  F:    drivers/hwmon/max6697.c
  F:    include/linux/platform_data/max6697.h
  
 +MAXIM MUIC CHARGER DRIVERS FOR EXYNOS BASED BOARDS
 +M:    Krzysztof Kozlowski <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/power/max14577_charger.c
 +F:    drivers/power/max77693_charger.c
 +
  MAXIRADIO FM RADIO RECEIVER DRIVER
  M:    Hans Verkuil <[email protected]>
  L:    [email protected]
@@@ -6227,6 -6168,14 +6227,6 @@@ F:     include/uapi/linux/meye.
  F:    include/uapi/linux/ivtv*
  F:    include/uapi/linux/uvcvideo.h
  
 -MEDIAVISION PRO MOVIE STUDIO DRIVER
 -M:    Hans Verkuil <[email protected]>
 -L:    [email protected]
 -T:    git git://linuxtv.org/media_tree.git
 -W:    http://linuxtv.org
 -S:    Odd Fixes
 -F:    drivers/media/parport/pms*
 -
  MEGARAID SCSI/SAS DRIVERS
  M:    Kashyap Desai <[email protected]>
  M:    Sumit Saxena <[email protected]>
@@@ -6644,10 -6593,9 +6644,10 @@@ F:    include/uapi/linux/netrom.
  F:    net/netrom/
  
  NETWORK BLOCK DEVICE (NBD)
 -M:    Paul Clements <[email protected]>
 +M:    Markus Pargmann <[email protected]>
  S:    Maintained
  L:    [email protected]
 +T:    git git://git.pengutronix.de/git/mpa/linux-nbd.git
  F:    Documentation/blockdev/nbd.txt
  F:    drivers/block/nbd.c
  F:    include/linux/nbd.h
@@@ -6676,7 -6624,6 +6676,7 @@@ F:      include/linux/netdevice.
  F:    include/uapi/linux/in.h
  F:    include/uapi/linux/net.h
  F:    include/uapi/linux/netdevice.h
 +F:    include/uapi/linux/net_namespace.h
  F:    tools/net/
  F:    tools/testing/selftests/net/
  F:    lib/random32.c
@@@ -6781,7 -6728,6 +6781,7 @@@ F:      Documentation/devicetree/bindings/ne
  
  NFS, SUNRPC, AND LOCKD CLIENTS
  M:    Trond Myklebust <[email protected]>
 +M:    Anna Schumaker <[email protected]>
  L:    [email protected]
  W:    http://client.linux-nfs.org
  T:    git git://git.linux-nfs.org/projects/trondmy/linux-nfs.git
@@@ -7116,12 -7062,11 +7116,12 @@@ F:   arch/openrisc
  
  OPENVSWITCH
  M:    Pravin Shelar <[email protected]>
 +L:    [email protected]
  L:    [email protected]
  W:    http://openvswitch.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pshelar/openvswitch.git
  S:    Maintained
  F:    net/openvswitch/
 +F:    include/uapi/linux/openvswitch.h
  
  OPL4 DRIVER
  M:    Clemens Ladisch <[email protected]>
@@@ -7319,14 -7264,6 +7319,14 @@@ F:    include/linux/pci
  F:    arch/x86/pci/
  F:    arch/x86/kernel/quirks.c
  
 +PCI DRIVER FOR ARM VERSATILE PLATFORM
 +M:    Rob Herring <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/versatile.txt
 +F:    drivers/pci/host/pci-versatile.c
 +
  PCI DRIVER FOR APPLIEDMICRO XGENE
  M:    Tanmay Inamdar <[email protected]>
  L:    [email protected]
@@@ -7928,6 -7865,14 +7928,6 @@@ T:     git git://github.com/KrasnikovEugene
  S:    Supported
  F:    drivers/net/wireless/ath/wcn36xx/
  
 -QUICKCAM PARALLEL PORT WEBCAMS
 -M:    Hans Verkuil <[email protected]>
 -L:    [email protected]
 -T:    git git://linuxtv.org/media_tree.git
 -W:    http://linuxtv.org
 -S:    Odd Fixes
 -F:    drivers/media/parport/*-qcam*
 -
  RADOS BLOCK DEVICE (RBD)
  M:    Yehuda Sadeh <[email protected]>
  M:    Sage Weil <[email protected]>
@@@ -8116,13 -8061,6 +8116,13 @@@ S:    Maintaine
  F:    Documentation/rfkill.txt
  F:    net/rfkill/
  
 +RHASHTABLE
 +M:    Thomas Graf <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    lib/rhashtable.c
 +F:    include/linux/rhashtable.h
 +
  RICOH SMARTMEDIA/XD DRIVER
  M:    Maxim Levitsky <[email protected]>
  S:    Maintained
@@@ -8465,6 -8403,12 +8465,6 @@@ F:     kernel/time/clocksource.
  F:    kernel/time/time*.c
  F:    kernel/time/ntp.c
  
 -TLG2300 VIDEO4LINUX-2 DRIVER
 -M:    Huang Shijie <[email protected]>
 -M:    Hans Verkuil <[email protected]>
 -S:    Odd Fixes
 -F:    drivers/media/usb/tlg2300/
 -
  SC1200 WDT DRIVER
  M:    Zwane Mwaikambo <[email protected]>
  S:    Maintained
@@@ -8830,15 -8774,6 +8830,15 @@@ S:    Maintaine
  F:    drivers/media/platform/davinci/
  F:    include/media/davinci/
  
 +TI AM437X VPFE DRIVER
 +M:    Lad, Prabhakar <[email protected]>
 +L:    [email protected]
 +W:    http://linuxtv.org/
 +Q:    http://patchwork.linuxtv.org/project/linux-media/list/
 +T:    git git://linuxtv.org/mhadli/v4l-dvb-davinci_devices.git
 +S:    Maintained
 +F:    drivers/media/platform/am437x/
 +
  SIS 190 ETHERNET DRIVER
  M:    Francois Romieu <[email protected]>
  L:    [email protected]
@@@ -8920,8 -8855,6 +8920,8 @@@ F:      drivers/media/i2c/smiapp
  F:    include/media/smiapp.h
  F:    drivers/media/i2c/smiapp-pll.c
  F:    drivers/media/i2c/smiapp-pll.h
 +F:    include/uapi/linux/smiapp.h
 +F:    Documentation/devicetree/bindings/media/i2c/nokia,smia.txt
  
  SMM665 HARDWARE MONITOR DRIVER
  M:    Guenter Roeck <[email protected]>
@@@ -8988,7 -8921,6 +8988,7 @@@ SOFTLOGIC 6x10 MPEG CODE
  M:    Bluecherry Maintainers <[email protected]>
  M:    Andrey Utkin <[email protected]>
  M:    Andrey Utkin <[email protected]>
 +M:    Ismael Luceno <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    drivers/media/pci/solo6x10/
@@@ -9301,13 -9233,6 +9301,13 @@@ F:    arch/m68k/sun3*
  F:    arch/m68k/include/asm/sun3*
  F:    drivers/net/ethernet/i825xx/sun3*
  
 +SUN4I LOW RES ADC ATTACHED TABLET KEYS DRIVER
 +M:    Hans de Goede <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/input/sun4i-lradc-keys.txt
 +F:    drivers/input/keyboard/sun4i-lradc-keys.c
 +
  SUNDANCE NETWORK DRIVER
  M:    Denis Kirjanov <[email protected]>
  L:    [email protected]
@@@ -9316,6 -9241,7 +9316,6 @@@ F:      drivers/net/ethernet/dlink/sundance.
  
  SUPERH
  L:    [email protected]
 -W:    http://www.linux-sh.org
  Q:    http://patchwork.kernel.org/project/linux-sh/list/
  S:    Orphan
  F:    Documentation/sh/
@@@ -9694,13 -9620,6 +9694,13 @@@ F:    drivers/power/lp8788-charger.
  F:    drivers/regulator/lp8788-*.c
  F:    include/linux/mfd/lp8788*.h
  
 +TI NETCP ETHERNET DRIVER
 +M:    Wingman Kwok <[email protected]>
 +M:    Murali Karicheri <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/ethernet/ti/netcp*
 +
  TI TWL4030 SERIES SOC CODEC DRIVER
  M:    Peter Ujfalusi <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
@@@ -9728,7 -9647,7 +9728,7 @@@ F:      net/tipc
  
  TILE ARCHITECTURE
  M:    Chris Metcalf <[email protected]>
 -W:    http://www.tilera.com/scm/
 +W:    http://www.ezchip.com/scm/
  S:    Supported
  F:    arch/tile/
  F:    drivers/char/tile-srom.c
@@@ -9821,21 -9740,13 +9821,21 @@@ F:   drivers/media/pci/tw68
  
  TPM DEVICE DRIVER
  M:    Peter Huewe <[email protected]>
 -M:    Ashley Lai <[email protected]>
  M:    Marcel Selhorst <[email protected]>
  W:    http://tpmdd.sourceforge.net
  L:    [email protected] (moderated for non-subscribers)
 +Q:    git git://github.com/PeterHuewe/linux-tpmdd.git
 +T:    https://github.com/PeterHuewe/linux-tpmdd
  S:    Maintained
  F:    drivers/char/tpm/
  
 +TPM IBM_VTPM DEVICE DRIVER
 +M:    Ashley Lai <[email protected]>
 +W:    http://tpmdd.sourceforge.net
 +L:    [email protected] (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/char/tpm/tpm_ibmvtpm*
 +
  TRACING
  M:    Steven Rostedt <[email protected]>
  M:    Ingo Molnar <[email protected]>
@@@ -9990,15 -9901,20 +9990,15 @@@ F:   drivers/scsi/ufs
  
  UNSORTED BLOCK IMAGES (UBI)
  M:    Artem Bityutskiy <[email protected]>
 +M:    Richard Weinberger <[email protected]>
  W:    http://www.linux-mtd.infradead.org/
  L:    [email protected]
  T:    git git://git.infradead.org/ubifs-2.6.git
 -S:    Maintained
 +S:    Supported
  F:    drivers/mtd/ubi/
  F:    include/linux/mtd/ubi.h
  F:    include/uapi/mtd/ubi-user.h
  
 -UNSORTED BLOCK IMAGES (UBI) Fastmap
 -M:    Richard Weinberger <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    drivers/mtd/ubi/fastmap.c
 -
  USB ACM DRIVER
  M:    Oliver Neukum <[email protected]>
  L:    [email protected]
@@@ -10688,7 -10604,6 +10688,7 @@@ F:   drivers/pci/*xen
  
  XEN BLOCK SUBSYSTEM
  M:    Konrad Rzeszutek Wilk <[email protected]>
 +M:    Roger Pau MonnĂ© <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    drivers/block/xen-blkback/*
@@@ -10744,7 -10659,6 +10744,7 @@@ M:   Max Filippov <[email protected]
  L:    [email protected]
  S:    Maintained
  F:    drivers/spi/spi-xtensa-xtfpga.c
 +F:    sound/soc/xtensa/xtfpga-i2s.c
  
  YAM DRIVER FOR AX.25
  M:    Jean-Paul Roubelat <[email protected]>
diff --combined drivers/phy/Kconfig
index 26a7623e551e75906c214e1c32bca17ffd2c7ee9,b24500afba257d7ba9f67f995613b0c43f8e9bfe..2962de205ba7247bd06eeb5d89f752b30d39e9dc
@@@ -239,6 -239,13 +239,13 @@@ config PHY_QCOM_IPQ806X_SAT
        depends on OF
        select GENERIC_PHY
  
+ config PHY_ROCKCHIP_USB
+       tristate "Rockchip USB2 PHY Driver"
+       depends on ARCH_ROCKCHIP && OF
+       select GENERIC_PHY
+       help
+         Enable this to support the Rockchip USB 2.0 PHY.
  config PHY_ST_SPEAR1310_MIPHY
        tristate "ST SPEAR1310-MIPHY driver"
        select GENERIC_PHY
@@@ -277,11 -284,4 +284,11 @@@ config PHY_STIH41X_US
          Enable this to support the USB transceiver that is part of
          STMicroelectronics STiH41x SoC series.
  
 +config PHY_QCOM_UFS
 +      tristate "Qualcomm UFS PHY driver"
 +      depends on OF && ARCH_MSM
 +      select GENERIC_PHY
 +      help
 +        Support for UFS PHY on QCOM chipsets.
 +
  endmenu
diff --combined drivers/phy/Makefile
index cfbb72064516573e337c2f286755f47dea56e8a5,48bf5a15f1618ee24aa1fd4f548c5e027f7477ab..f080e1bb2a74dc528757d01fbbaf917a8a962445
@@@ -28,12 -28,10 +28,13 @@@ phy-exynos-usb2-$(CONFIG_PHY_EXYNOS5250
  phy-exynos-usb2-$(CONFIG_PHY_S5PV210_USB2)    += phy-s5pv210-usb2.o
  obj-$(CONFIG_PHY_EXYNOS5_USBDRD)      += phy-exynos5-usbdrd.o
  obj-$(CONFIG_PHY_QCOM_APQ8064_SATA)   += phy-qcom-apq8064-sata.o
+ obj-$(CONFIG_PHY_ROCKCHIP_USB) += phy-rockchip-usb.o
  obj-$(CONFIG_PHY_QCOM_IPQ806X_SATA)   += phy-qcom-ipq806x-sata.o
  obj-$(CONFIG_PHY_ST_SPEAR1310_MIPHY)  += phy-spear1310-miphy.o
  obj-$(CONFIG_PHY_ST_SPEAR1340_MIPHY)  += phy-spear1340-miphy.o
  obj-$(CONFIG_PHY_XGENE)                       += phy-xgene.o
  obj-$(CONFIG_PHY_STIH407_USB)         += phy-stih407-usb.o
  obj-$(CONFIG_PHY_STIH41X_USB)         += phy-stih41x-usb.o
 +obj-$(CONFIG_PHY_QCOM_UFS)    += phy-qcom-ufs.o
 +obj-$(CONFIG_PHY_QCOM_UFS)    += phy-qcom-ufs-qmp-20nm.o
 +obj-$(CONFIG_PHY_QCOM_UFS)    += phy-qcom-ufs-qmp-14nm.o
diff --combined drivers/usb/core/hub.c
index eaffb0248de1a6791c18bd3d43410d84015ad889,58d2cde0ebe287bb26022e8dfb928e5e81ceaa18..d7c3d5a35946a63a905dc2501ec72beae0c5fe42
@@@ -2896,10 -2896,12 +2896,12 @@@ static int port_is_suspended(struct usb
   */
  static int check_port_resume_type(struct usb_device *udev,
                struct usb_hub *hub, int port1,
-               int status, unsigned portchange, unsigned portstatus)
+               int status, u16 portchange, u16 portstatus)
  {
        struct usb_port *port_dev = hub->ports[port1 - 1];
+       int retries = 3;
  
+  retry:
        /* Is a warm reset needed to recover the connection? */
        if (status == 0 && udev->reset_resume
                && hub_port_warm_reset_required(hub, port1, portstatus)) {
        }
        /* Is the device still present? */
        else if (status || port_is_suspended(hub, portstatus) ||
-                       !port_is_power_on(hub, portstatus) ||
-                       !(portstatus & USB_PORT_STAT_CONNECTION)) {
+                       !port_is_power_on(hub, portstatus)) {
                if (status >= 0)
                        status = -ENODEV;
+       } else if (!(portstatus & USB_PORT_STAT_CONNECTION)) {
+               if (retries--) {
+                       usleep_range(200, 300);
+                       status = hub_port_status(hub, port1, &portstatus,
+                                                            &portchange);
+                       goto retry;
+               }
+               status = -ENODEV;
        }
  
        /* Can't do a normal resume if the port isn't enabled,
@@@ -3452,6 -3461,8 +3461,6 @@@ int usb_port_resume(struct usb_device *
        return status;
  }
  
 -#ifdef        CONFIG_PM
 -
  int usb_remote_wakeup(struct usb_device *udev)
  {
        int     status = 0;
@@@ -3510,6 -3521,16 +3519,6 @@@ static int hub_handle_remote_wakeup(str
        return connect_change;
  }
  
 -#else
 -
 -static int hub_handle_remote_wakeup(struct usb_hub *hub, unsigned int port,
 -              u16 portstatus, u16 portchange)
 -{
 -      return 0;
 -}
 -
 -#endif
 -
  static int check_ports_changed(struct usb_hub *hub)
  {
        int port1;
@@@ -4643,9 -4664,13 +4652,13 @@@ static void hub_port_connect(struct usb
        if (!(portstatus & USB_PORT_STAT_CONNECTION) ||
                        test_bit(port1, hub->removed_bits)) {
  
-               /* maybe switch power back on (e.g. root hub was reset) */
+               /*
+                * maybe switch power back on (e.g. root hub was reset)
+                * but only if the port isn't owned by someone else.
+                */
                if (hub_is_port_power_switchable(hub)
-                               && !port_is_power_on(hub, portstatus))
+                               && !port_is_power_on(hub, portstatus)
+                               && !port_dev->port_owner)
                        set_port_feature(hdev, port1, USB_PORT_FEAT_POWER);
  
                if (portstatus & USB_PORT_STAT_ENABLE)
@@@ -4870,7 -4895,7 +4883,7 @@@ static void hub_port_connect_change(str
  static void port_event(struct usb_hub *hub, int port1)
                __must_hold(&port_dev->status_lock)
  {
-       int connect_change, reset_device = 0;
+       int connect_change;
        struct usb_port *port_dev = hub->ports[port1 - 1];
        struct usb_device *udev = port_dev->child;
        struct usb_device *hdev = hub->hdev;
                        if (hub_port_reset(hub, port1, NULL,
                                        HUB_BH_RESET_TIME, true) < 0)
                                hub_port_disable(hub, port1, 1);
-               } else
-                       reset_device = 1;
-       }
-       /*
-        * On disconnect USB3 protocol ports transit from U0 to
-        * SS.Inactive to Rx.Detect. If this happens a warm-
-        * reset is not needed, but a (re)connect may happen
-        * before hub_wq runs and sees the disconnect, and the
-        * device may be an unknown state.
-        *
-        * If the port went through SS.Inactive without hub_wq
-        * seeing it the C_LINK_STATE change flag will be set,
-        * and we reset the dev to put it in a known state.
-        */
-       if (reset_device || (udev && hub_is_superspeed(hub->hdev)
-                               && (portchange & USB_PORT_STAT_C_LINK_STATE)
-                               && (portstatus & USB_PORT_STAT_CONNECTION))) {
-               usb_unlock_port(port_dev);
-               usb_lock_device(udev);
-               usb_reset_device(udev);
-               usb_unlock_device(udev);
-               usb_lock_port(port_dev);
-               connect_change = 0;
+               } else {
+                       usb_unlock_port(port_dev);
+                       usb_lock_device(udev);
+                       usb_reset_device(udev);
+                       usb_unlock_device(udev);
+                       usb_lock_port(port_dev);
+                       connect_change = 0;
+               }
        }
  
        if (connect_change)
@@@ -5577,26 -5586,19 +5574,19 @@@ EXPORT_SYMBOL_GPL(usb_reset_device)
   *   possible; depending on how the driver attached to each interface
   *   handles ->pre_reset(), the second reset might happen or not.
   *
-  * - If a driver is unbound and it had a pending reset, the reset will
-  *   be cancelled.
-  *
-  * - This function can be called during .probe() or .disconnect()
-  *   times. On return from .disconnect(), any pending resets will be
-  *   cancelled.
-  *
-  * There is no no need to lock/unlock the @reset_ws as schedule_work()
-  * does its own.
+  * - If the reset is delayed so long that the interface is unbound from
+  *   its driver, the reset will be skipped.
   *
-  * NOTE: We don't do any reference count tracking because it is not
-  *     needed. The lifecycle of the work_struct is tied to the
-  *     usb_interface. Before destroying the interface we cancel the
-  *     work_struct, so the fact that work_struct is queued and or
-  *     running means the interface (and thus, the device) exist and
-  *     are referenced.
+  * - This function can be called during .probe().  It can also be called
+  *   during .disconnect(), but doing so is pointless because the reset
+  *   will not occur.  If you really want to reset the device during
+  *   .disconnect(), call usb_reset_device() directly -- but watch out
+  *   for nested unbinding issues!
   */
  void usb_queue_reset_device(struct usb_interface *iface)
  {
-       schedule_work(&iface->reset_ws);
+       if (schedule_work(&iface->reset_ws))
+               usb_get_intf(iface);
  }
  EXPORT_SYMBOL_GPL(usb_queue_reset_device);
  
index bbf85d612be5ac25276ad67b4ac86ab8a933be5a,470a240f66a12fd463dc3edc1896efc867751974..2e75ab00dbf2b981f7b7dc22d19f926a8e8e6a9e
@@@ -53,9 -53,9 +53,9 @@@ struct ieee1394_device_id 
  
  /**
   * struct usb_device_id - identifies USB devices for probing and hotplugging
-  * @match_flags: Bit mask controlling of the other fields are used to match
-  *    against new devices.  Any field except for driver_info may be used,
-  *    although some only make sense in conjunction with other fields.
+  * @match_flags: Bit mask controlling which of the other fields are used to
+  *    match against new devices. Any field except for driver_info may be
+  *    used, although some only make sense in conjunction with other fields.
   *    This is usually set by a USB_DEVICE_*() macro, which sets all
   *    other fields in this structure except for driver_info.
   * @idVendor: USB vendor ID for a device; numbers are assigned
@@@ -220,7 -220,8 +220,7 @@@ struct serio_device_id 
  /*
   * Struct used for matching a device
   */
 -struct of_device_id
 -{
 +struct of_device_id {
        char    name[32];
        char    type[32];
        char    compatible[128];
This page took 0.157236 seconds and 4 git commands to generate.