All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] USB/PHY driver changes for 4.15-rc1
@ 2017-11-13 16:19 Greg KH
  2017-11-14  5:29 ` Linus Torvalds
  0 siblings, 1 reply; 9+ messages in thread
From: Greg KH @ 2017-11-13 16:19 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-usb

The following changes since commit bb176f67090ca54869fc1262c913aa69d2ede070:

  Linux 4.14-rc6 (2017-10-23 06:49:47 -0400)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git/ tags/usb-4.15-rc1

for you to fetch changes up to cdafb6d8b8da7fde266f79b3287ac221aa841879:

  usb: gadget: f_fs: Fix use-after-free in ffs_free_inst (2017-11-09 13:12:23 +0100)

----------------------------------------------------------------
USB/PHY patches for 4.15-rc1

Here is the big set of USB and PHY driver updates for 4.15-rc1.

There is the usual amount of gadget and xhci driver updates, along with
phy and chipidea enhancements.  There's also a lot of SPDX tags and
license boilerplate cleanups as well, which provide some churn in the
diffstat.

Other major thing is the typec code that moved out of staging and into
the "real" part of the drivers/usb/ tree, which was nice to see happen.

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

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

----------------------------------------------------------------
Adam Wallis (1):
      xhci: allow TRACE to work with EVENT ring dequeue

Al Cooper (4):
      soc: brcmstb: Add Product ID and Family ID helper functions
      dt-bindings: Add Broadcom STB USB PHY binding document
      phy: usb: phy-brcm-usb: Add Broadcom STB USB phy driver
      phy: usb: phy-brcm-usb: Add ability to force DRD mode to host or device

Alan Stern (4):
      USB: dummy-hcd: bandwidth limits for non-bulk transfers
      USB: dummy-hcd: remove unsupported isochronous endpoints
      usb-storage: make use of srb local variable
      USB: usbfs: compute urb->actual_length for isochronous

Alex Elder (3):
      usb: host: remove ehci-msm.c
      usb: phy: remove phy-msm-usb.c
      usb: phy: remove phy-qcom-8x16-usb.c

Alexandre Bailon (1):
      usb: musb: da8xx: Remove duplicated defines

Alexey Khoroshilov (1):
      usb: phy: tahvo: fix error handling in tahvo_usb_probe()

Allen Pais (9):
      drivers: usb: hcd: use setup_timer() helper.
      drivers: usb: phy: omap: use setup_timer() helper.
      usb: gadget: udc: m66592: use setup_timer() helper.
      usb: gadget: udc: pxa25x_udc: use setup_timer() helper.
      drivers: usb: atm: cxacru: use setup_timer() helper.
      usb: gadget: udc: r8a66597: use setup_timer() helper.
      drivers: usb: speedtch: use setup_timer() helper.
      usb: gadget: udc: dummy_hcd: use setup_timer() helper.
      usb: gadget: udc: snps_udc_core: use setup_timer() helper.

Amelie Delaunay (2):
      dt-bindings: usb: Document the STM32F7xx DWC2 USB OTG HS core binding
      usb: dwc2: add support for STM32F7xx USB OTG HS

Andrew Gabbasov (1):
      usb: gadget: f_fs: Fix use-after-free in ffs_free_inst

Andrzej Pietrasiewicz (1):
      drivers: phy: add calibrate method

Anshuman Gupta (1):
      usb: xhci: reduce device initiated resume time variance.

Antoine Tenart (1):
      phy: mvebu-cp110-comphy: remove unused member in private struct

Arnd Bergmann (4):
      usb: xhci: tegra: use time64_t for printing timestamp
      usb: mtu3: fix dma_addr_t printk output again
      usbip: fix off-by-one frame number calculation
      usbip: use monotonic timestamps

Ben Hutchings (1):
      usbip: tools: Install all headers needed for libusbip development

Bernhard Rosenkraenzer (1):
      USB: Add delay-init quirk for Corsair K70 LUX keyboards

Bhumika Goyal (1):
      usb: gadget: f_uvc: make uvc_v4l2_fops const

Biju Das (2):
      usb: renesas_usbhs: Add compatible string for r8a7743/5
      phy: rcar-gen2: Add r8a7743/5 support

Bin Liu (1):
      usb: musb: dsps: remove the duplicated timer

Chanwoo Choi (1):
      extcon: Split out extcon header file for consumer and provider device

Chris Mayo (1):
      usb: Kconfig: clarify use of USB_PCI

Christoph Fritz (1):
      usb: chipidea: fix trivial typo in Kconfig

Christos Gkekas (1):
      usb: dwc3: ep0: Clean up unused variables

Chunfeng Yun (23):
      usb: mtu3: fix error return code in ssusb_gadget_init()
      usb: mtu3: support option to disable usb3 ports
      usb: mtu3: remove dummy wakeup debounce clocks
      usb: mtu3: add optional mcu and dma bus clocks
      usb: mtu3: support 36-bit DMA address
      usb: mtu3: use FORCE/RG_IDDIG to implement manual DRD switch
      usb: mtu3: add support for usb3.1 IP
      usb: mtu3: get optional vbus for host only mode
      usb: mtu3: set invalid dr_mode as dual-role mode
      usb: mtu3: set otg_sel for u2port only if works as dual-role mode
      dt-bindings: usb: mtu3: add a optional property to disable u3ports
      dt-bindings: usb: mtu3: remove dummy clocks and add optional ones
      dt-bindings: usb: mtu3: remove optional pinctrls
      phy: phy-mtk-tphy: add set_mode callback
      usb: xhci-mtk: use dma_set_mask_and_coherent() in probe function
      usb: xhci-mtk: use ports count from xhci in xhci_mtk_sch_init()
      usb: xhci-mtk: check clock stability of U3_MAC
      usb: xhci-mtk: support option to disable usb3 ports
      usb: xhci-mtk: remove dummy wakeup debounce clocks
      usb: xhci-mtk: add optional mcu and dma bus clocks
      usb: host: modify description for MTK xHCI config
      dt-bindings: usb: mtk-xhci: add a optional property to disable u3ports
      dt-bindings: usb: mtk-xhci: remove dummy clocks and add optional ones

Colin Ian King (7):
      usb: storage: make const arrays static, reduces object code size
      usb: typec: wcove: fix uninitialized usbc_irq1 and usbc_irq2
      extcon: make extcon_info static const, fixes warning
      USB: c67x00: remove redundant pointer urbp
      usb: gadget: udc: renesas_usb3: make const array max_packet_array static
      USB: adutux: remove redundant variable minor
      usb: host: isp1362-hcd: remove a couple of redundant assignments

Daniel Drake (1):
      USB: Force disconnect Huawei 4G modem during suspend

Dinh Nguyen (1):
      usb: dwc2: disable erroneous overcurrent condition

Douglas Anderson (2):
      phy: rockchip-typec: Avoid magic numbers + add delays in aux calib
      phy: rockchip-typec: Do the calibration more correctly

Douglas Fischer (1):
      USB: serial: qcserial: add pid/vid for Sierra Wireless EM7355 fw update

Felipe Balbi (10):
      usb: dwc3: gadget: check for lack of TRBs a bit earlier
      usb: dwc3: gadget: simplify __dwc3_gadget_ep_queue()
      usb: dwc3: gadget: cache frame number in struct dwc3_ep
      usb: dwc3: gadget: simplify __dwc3_gadget_kick_transfer() prototype
      usb: core: add Status Type definitions
      usb: core: rename usb_get_status() 'type' argument to 'recip'
      usb: core: introduce a new usb_get_std_status() helper
      usb: core: add a 'type' parameter to usb_get_status()
      usb: core: add a new usb_get_ptm_status() helper
      usb: core: message: remember to reset 'ret' to 0 when necessary

Florian Fainelli (3):
      dt-bindings: phy: Add RX equalizer properties for Broadcom SATA PHY
      phy: brcm-sata: Prepare for doing more tuning
      phy: brcm-sata: Allow RX equalizer tuning

Geert Uytterhoeven (3):
      usb: host: xhci-plat: Use of_device_get_match_data() helper
      usb: renesas_usbhs: Use of_device_get_match_data() helper
      usb: gadget: udc: renesas_usb3: Use of_device_get_match_data() helper

Greg Kroah-Hartman (49):
      Merge 4.14-rc4 into usb-next
      Merge 4.14-rc5 into usb-next
      Merge 4.14-rc6 into usb-next
      Merge tag 'usb-for-v4.15' of git://git.kernel.org/.../balbi/usb into usb-next
      Merge tag 'phy-for-4.15_v1' of git://git.kernel.org/.../kishon/linux-phy into usb-next
      Merge tag 'extcon-next-for-4.15' of git://git.kernel.org/.../chanwoo/extcon into usb-next
      Merge tag 'usb-ci-v4.15-rc1' of git://git.kernel.org/.../peter.chen/usb into usb-next
      Merge tag 'usb-serial-4.15-rc1' of git://git.kernel.org/.../johan/usb-serial into usb-next
      USB: core: move existing SPDX tags to top of the file
      USB: add SPDX identifiers to all remaining files in drivers/usb/
      USB: serial: Remove redundant license text
      USB: storage: Remove redundant license text
      USB: misc: Remove redundant license text
      USB: atm: Remove redundant license text
      USB: class: Remove redundant license text
      USB: image: Remove redundant license text
      USB: core: Remove redundant license text
      USB: usb-skeleton: Remove redundant license text
      USB: common: Remove redundant license text
      USB: wusbcore: Remove redundant license text
      USB: usbip: Remove redundant license text
      USB: renesas_usbhs: Remove redundant license text
      USB: phy: Remove redundant license text
      USB: typec: Remove redundant license text
      USB: musb: Remove redundant license text
      USB: mtu3: Remove redundant license text
      USB: isp1760: Remove redundant license text
      USB: chipidea: Remove redundant license text
      USB: dwc3: Remove redundant license text
      USB: dwc2: Remove redundant license text
      USB: c67x00: Remove redundant license text
      USB: early: Remove redundant license text
      USB: host: xhci: Remove redundant license text
      USB: host: whci: Remove redundant license text
      USB: host: ohci: Remove redundant license text
      USB: host: ehci: Remove redundant license text
      USB: host: fhci: Remove redundant license text
      USB: host: imx21: Remove redundant license text
      USB: host: Remove redundant license text
      USB: gadget: legacy: Remove redundant license text
      USB: gadget: udc: Remove redundant license text
      USB: gadget: function: Remove redundant license text
      USB: gadget: Remove redundant license text
      USB: add SPDX identifiers to all remaining Makefiles
      USB: host: xhci-debugfs: add SPDX lines
      USB: chipidea: ci_hdrc_tegra.c: add SPDX line
      USB: renesas_usbhs: rcar?.h: add SPDX tags
      USB: typec: add SPDX identifiers to some files
      USB: typec: Remove remaining redundant license text

Guenter Roeck (5):
      staging: typec: tcpm: Drop commented out code
      staging: typec: tcpm: Document data structures
      staging: typec: pd: Document struct pd_message
      typec: tcpm: Move out of staging
      usb: typec: fusb302: Move out of staging

Gustavo A. R. Silva (27):
      usb: gadget: goku_udc: mark expected switch fall-throughs
      usb: gadget: f_tcm: mark expected switch fall-through
      usb: phy: phy-msm-usb: mark expected switch fall-through
      usb: gadget: serial: mark expected switch fall-through
      usb: class: usbtmc: mark expected switch fall-through
      usb: atm: cxacru: mark expected switch fall-throughs
      usb: storage: sddr55: mark expected switch fall-through
      usb: musb_core: mark expected switch fall-through
      USB: serial: kobil_sct: mark expected switch fall-through
      usb: wusbcore: wa-xfer: mark expected switch fall-through
      usb: typec: tps6598x: mark expected switch fall-through
      usb: gadget: f_phonet: mark expected switch fall-throughs
      usb: gadget: composite: mark expected switch fall-throughs
      usb: gadget: udc: dummy_hcd: mark expected switch fall-throughs
      usb: host: isp116x-hcd: mark expected switch fall-throughs
      usb: storage: uas: mark expected switch fall-through
      usb: core: urb: mark expected switch fall-through
      usb: image: mdc800: mark expected switch fall-through
      usb: host: fotg210-hcd: mark expected switch fall-through
      usb: host: xhci: mark expected switch fall-through
      usb: host: xhci-mem: mark expected switch fall-through
      usb: host: ohci-hcd: mark expected switch fall-through
      usb: host: ehci-hcd: mark expected switch fall-through
      usb: host: oxu210hp-hcd: mark expected switch fall-through
      usb: host: xhci-hub: mark expected switch fall-through
      usb: host: pci-quirks: mark expected switch fall-through
      usb: host: isp1362-hcd: fix missing break in switch

Harsha Sharma (1):
      staging: typec: tcpm: Rewrite comparison to NULL pointer

Heikki Krogerus (3):
      usb: typec: wcove: start using tcpm for USB PD support
      usb: typec: driver for TI TPS6598x USB Power Delivery controllers
      usb: typec: tcpm: reset the port on removal

Himanshu Jha (1):
      usb: wusbcore: Use put_unaligned_le32

Icenowy Zheng (1):
      phy: sun4i-usb: enable PHY0 dual route for V3s SoC

Jack Pham (1):
      usb: remove msm_hsusb_hw.h

Jaejoong Kim (4):
      usb: gadget: udc: remove duplicate & operation
      usb: gadget: udc: gr: remove duplicate & operation
      usb: misc: usbtest: remove duplicate & operation
      usb: misc: usbtest: remove duplicate & operation

Ji-Ze Hong (Peter Hong) (2):
      USB: serial: f81534: fix hang-up on overrun
      USB: serial: f81534: implement break control

Johan Hovold (10):
      USB: serial: garmin_gps: fix I/O after failed probe and remove
      USB: serial: garmin_gps: fix memory leak on probe errors
      USB: serial: garmin_gps: drop unused timer initialisation
      USB: serial: garmin_gps: clean up init-session messages
      USB: serial: garmin_gps: simplify init-session logic
      USB: serial: metro-usb: stop I/O after failed open
      USB: serial: metro-usb: simplify endpoint check
      USB: serial: metro-usb: add missing interrupt-out endpoint check
      USB: serial: drop unused core USB driver
      USB: serial: fix module-license macros

John Stultz (3):
      usb: dwc2: Improve gadget state disconnection handling
      usb: dwc2: Error out of dwc2_hsotg_ep_disable() if we're in host mode
      usb: dwc2: Fix UDC state tracking

Jonathan Corbet (1):
      usb: gadget: Add kerneldoc for some neglected structure fields

Jules Maselbas (4):
      usb: max3421: Add devicetree support
      dt-bindings: max3421: Add bindings documentation
      usb: host: max3421-hcd: Remove pdata test in max3421_hub_control()
      dt-bindings: usb: max3421: Interrupt-parent is optional

Kazuya Mizuguchi (1):
      usb: gadget: udc: renesas_usb3: move pm_runtime_{en,dis}able()

Kees Cook (11):
      usb/phy-isp1301-omap: Remove .data assignment
      USB: serial: garmin_gps: convert timers to use timer_setup()
      usb: isp1301-omap: Convert timers to use timer_setup()
      xhci: Convert timers to use timer_setup()
      usb/gadget/snps_udc_core: Convert timers to use timer_setup()
      usb: phy: Convert timers to use timer_setup()
      usb: musb: Convert timers to use timer_setup()
      usb: usbip: Convert timers to use timer_setup()
      usb: isp1760: Convert timers to use timer_setup()
      usb: r8a66597-hcd: Convert timers to use timer_setup()
      usb: gadget: zero: Convert timers to use timer_setup()

Kishon Vijay Abraham I (3):
      Merge branch 'fixes' into next
      PCI: dra7xx: Create functional dependency between PCIe and PHY
      phy: ti-pipe3: Update pcie phy settings

Kuninori Morimoto (1):
      renesas_usbhs: use renesas_usbhs_get_info()

Li Jun (2):
      usb: chipidea: do charger detection in vbus session
      usb: phy: mxs: add usb charger type detection

Lu Baolu (10):
      usb: xhci: Add debugfs interface for xHCI driver
      usb: xhci: Disable slot even when virt-dev is null
      usb: xhci: Fix potential memory leak in xhci_disable_slot()
      usb: xhci: Fix memory leak when xhci_disable_slot() returns error
      usb: xhci: Return error when host is dead in xhci_disable_slot()
      usb: xhci: Remove xhci->mutex from xhci_alloc_dev()
      usb: xhci: Handle USB transaction error on address command
      usb: Apply hardware LPM attributes to 3.1 device
      USB: early: Use new USB product ID and strings for DbC device
      USB: serial: Change DbC debug device binding ID

Lucas Stach (1):
      usb: phy: phy-generic: propagate clk_get error if clock is required

Manu Gautam (3):
      usb: dwc3: Don't reinitialize core during host bus-suspend/resume
      usb: dwc3: pci: Runtime resume child device from wq
      usb: dwc3: core: Notify current USB mode to USB3 PHY as well

Marek Szyprowski (2):
      extcon: max77843: Add OTG power control to the MUIC driver
      extcon: max77843: Add support for SmartDock accessory

Markus Elfring (1):
      extcon: max14577: Delete an unnecessary variable initialisation in max14577_muic_set_path()

Masahiro Yamada (2):
      usb: ehci-platform: use reset array API
      usb: ohci-platform: use reset array API

Mathias Nyman (2):
      xhci: add port speed ID to portsc tracing
      xhci: trace slot context when calling xhci_configure_endpoint()

Maxime Ripard (1):
      phy: Return NULL if the phy is optional

Romain Izard (1):
      ehci-atmel: Power down during suspend is normal

Russell King (3):
      usb: ohci-sa1111: use sa1111_get_irq() to obtain IRQ resources
      usb: ohci-sa1111: convert shutdown method to native device_driver
      usb: ohci-sa1111: remove special sa1111 mmio accessors

Serge Semin (10):
      usb: usb251xb: Update usb251xb bindings
      usb: usb251xb: Add USB2517i specific struct and IDs
      usb: usb251xb: Add USB251x specific port count setting
      usb: usb251xb: Add 5,6,7 ports mapping def setting
      usb: usb251xb: Add 5,6,7 ports boost settings
      usb: usb251xb: Add battery enable setting flag
      usb: usb251xb: Add USB2517 LED settings
      usb: usb251xb: Fix property_u32 NULL pointer dereference
      usb: usb251xb: Add max power/current dts property support
      usb: usb251xb: Use GPIO descriptor consumer interface

Thang Q. Nguyen (1):
      usb: host: xhci support option to disable the xHCI USB2 HW LPM

Vivek Gautam (7):
      usb: dwc3: of-simple: Re-order resource handling in remove
      usb: dwc3: of-simple: Add support to get resets for the device
      dt-bindings: phy: Add PHY_TYPE_UFS definition
      phy: Add UFS PHY modes
      phy: qcom-ufs: Add support to set phy mode
      scsi/ufs: qcom: Set phy mode based on the controllers HS MODE
      ufs/phy: qcom: Refactor to use phy_init call

Yoshihiro Shimoda (8):
      usb: renesas_usbhs: unify Gen2/3 pipe_config setting
      usb: renesas_usbhs: add support for R-Car D3
      usb: gadget: udc: renesas_usb3: Add suspend/resume functions
      usb: gadget: udc: renesas_usb3: add support for generic phy
      phy: rcar-gen3-usb2: check dr_mode for otg mode
      phy: rcar-gen3-usb2: use enum phy_mode in the role_store()
      phy: rcar-gen3-usb2: add SoC-specific parameter for dedicated pins
      phy: rcar-gen3-usb2: add binding for r8a77995

kbuild test robot (1):
      usb: xhci-mtk: fix ptr_ret.cocci warnings

 .../bindings/phy/brcm,brcmstb-usb-phy.txt          |   43 +
 .../devicetree/bindings/phy/brcm-sata-phy.txt      |   11 +-
 .../devicetree/bindings/phy/rcar-gen2-phy.txt      |    7 +-
 .../devicetree/bindings/phy/rcar-gen3-phy-usb2.txt |    2 +
 Documentation/devicetree/bindings/usb/dwc2.txt     |    2 +
 .../devicetree/bindings/usb/maxim,max3421.txt      |   26 +
 .../devicetree/bindings/usb/mediatek,mtk-xhci.txt  |   20 +-
 .../devicetree/bindings/usb/mediatek,mtu3.txt      |   19 +-
 .../devicetree/bindings/usb/renesas_usb3.txt       |    4 +
 .../devicetree/bindings/usb/renesas_usbhs.txt      |    5 +-
 Documentation/devicetree/bindings/usb/usb-xhci.txt |    1 +
 Documentation/devicetree/bindings/usb/usb251xb.txt |   46 +-
 MAINTAINERS                                        |    7 +
 drivers/extcon/extcon-adc-jack.c                   |    2 +-
 drivers/extcon/extcon-arizona.c                    |    2 +-
 drivers/extcon/extcon-axp288.c                     |    2 +-
 drivers/extcon/extcon-gpio.c                       |    2 +-
 drivers/extcon/extcon-intel-cht-wc.c               |    2 +-
 drivers/extcon/extcon-intel-int3496.c              |    2 +-
 drivers/extcon/extcon-max14577.c                   |    4 +-
 drivers/extcon/extcon-max3355.c                    |    2 +-
 drivers/extcon/extcon-max77693.c                   |    2 +-
 drivers/extcon/extcon-max77843.c                   |   95 +-
 drivers/extcon/extcon-max8997.c                    |    2 +-
 drivers/extcon/extcon-qcom-spmi-misc.c             |    2 +-
 drivers/extcon/extcon-rt8973a.c                    |    2 +-
 drivers/extcon/extcon-sm5502.c                     |    2 +-
 drivers/extcon/extcon-usb-gpio.c                   |    2 +-
 drivers/extcon/extcon-usbc-cros-ec.c               |    2 +-
 drivers/extcon/extcon.c                            |    2 +-
 drivers/extcon/extcon.h                            |    2 +-
 drivers/pci/dwc/pci-dra7xx.c                       |   16 +
 drivers/phy/allwinner/phy-sun4i-usb.c              |    3 +-
 drivers/phy/broadcom/Kconfig                       |   13 +
 drivers/phy/broadcom/Makefile                      |    3 +
 drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c          |    2 +-
 drivers/phy/broadcom/phy-brcm-sata.c               |   74 +-
 drivers/phy/broadcom/phy-brcm-usb-init.c           | 1017 ++++++++++
 drivers/phy/broadcom/phy-brcm-usb-init.h           |   50 +
 drivers/phy/broadcom/phy-brcm-usb.c                |  459 +++++
 drivers/phy/marvell/phy-mvebu-cp110-comphy.c       |    1 -
 drivers/phy/mediatek/phy-mtk-tphy.c                |   39 +
 drivers/phy/phy-core.c                             |   15 +
 drivers/phy/qualcomm/phy-qcom-ufs-i.h              |    5 +-
 drivers/phy/qualcomm/phy-qcom-ufs-qmp-14nm.c       |   29 +-
 drivers/phy/qualcomm/phy-qcom-ufs-qmp-20nm.c       |   29 +-
 drivers/phy/qualcomm/phy-qcom-ufs.c                |   42 +-
 drivers/phy/renesas/phy-rcar-gen3-usb2.c           |   72 +-
 drivers/phy/rockchip/phy-rockchip-inno-usb2.c      |    2 +-
 drivers/phy/rockchip/phy-rockchip-typec.c          |  217 +-
 drivers/phy/ti/phy-ti-pipe3.c                      |  101 +-
 drivers/power/supply/qcom_smbb.c                   |    2 +-
 drivers/scsi/ufs/ufs-qcom.c                        |   39 +-
 drivers/soc/bcm/brcmstb/common.c                   |   12 +
 drivers/staging/typec/Kconfig                      |   10 -
 drivers/staging/typec/Makefile                     |    2 -
 drivers/staging/typec/TODO                         |   10 -
 drivers/staging/typec/fusb302/TODO                 |   10 -
 drivers/staging/typec/tcpci.c                      |    4 +-
 drivers/staging/wlan-ng/hfa384x_usb.c              |    4 +-
 drivers/usb/Kconfig                                |    9 +-
 drivers/usb/atm/cxacru.c                           |   22 +-
 drivers/usb/atm/speedtch.c                         |   27 +-
 drivers/usb/atm/ueagle-atm.c                       |    1 +
 drivers/usb/atm/usbatm.c                           |   16 +-
 drivers/usb/atm/usbatm.h                           |   16 +-
 drivers/usb/atm/xusbatm.c                          |   16 +-
 drivers/usb/c67x00/Makefile                        |    1 +
 drivers/usb/c67x00/c67x00-drv.c                    |   16 +-
 drivers/usb/c67x00/c67x00-hcd.c                    |   16 +-
 drivers/usb/c67x00/c67x00-hcd.h                    |   16 +-
 drivers/usb/c67x00/c67x00-ll-hpi.c                 |   16 +-
 drivers/usb/c67x00/c67x00-sched.c                  |   18 +-
 drivers/usb/c67x00/c67x00.h                        |   16 +-
 drivers/usb/chipidea/Kconfig                       |    2 +-
 drivers/usb/chipidea/bits.h                        |    5 +-
 drivers/usb/chipidea/ci.h                          |    5 +-
 drivers/usb/chipidea/ci_hdrc_imx.c                 |    8 +-
 drivers/usb/chipidea/ci_hdrc_imx.h                 |    8 +-
 drivers/usb/chipidea/ci_hdrc_msm.c                 |    8 +-
 drivers/usb/chipidea/ci_hdrc_pci.c                 |    5 +-
 drivers/usb/chipidea/ci_hdrc_tegra.c               |    5 +-
 drivers/usb/chipidea/ci_hdrc_usb2.c                |    5 +-
 drivers/usb/chipidea/ci_hdrc_zevio.c               |    6 +-
 drivers/usb/chipidea/core.c                        |    5 +-
 drivers/usb/chipidea/host.c                        |   14 +-
 drivers/usb/chipidea/otg.c                         |    5 +-
 drivers/usb/chipidea/otg.h                         |    5 +-
 drivers/usb/chipidea/otg_fsm.c                     |    5 +-
 drivers/usb/chipidea/otg_fsm.h                     |    5 +-
 drivers/usb/chipidea/udc.c                         |    9 +-
 drivers/usb/chipidea/udc.h                         |    5 +-
 drivers/usb/chipidea/ulpi.c                        |   10 +-
 drivers/usb/chipidea/usbmisc_imx.c                 |    8 +-
 drivers/usb/class/Makefile                         |    1 +
 drivers/usb/class/cdc-acm.c                        |   15 +-
 drivers/usb/class/cdc-wdm.c                        |    1 +
 drivers/usb/class/usblp.c                          |   17 +-
 drivers/usb/class/usbtmc.c                         |   15 +-
 drivers/usb/common/common.c                        |    5 +-
 drivers/usb/common/led.c                           |    6 +-
 drivers/usb/common/ulpi.c                          |    5 +-
 drivers/usb/common/usb-otg-fsm.c                   |   15 +-
 drivers/usb/core/buffer.c                          |    2 +-
 drivers/usb/core/config.c                          |    2 +-
 drivers/usb/core/devices.c                         |   15 +-
 drivers/usb/core/devio.c                           |   29 +-
 drivers/usb/core/driver.c                          |   16 +-
 drivers/usb/core/endpoint.c                        |    2 +-
 drivers/usb/core/file.c                            |    2 +-
 drivers/usb/core/generic.c                         |    2 +-
 drivers/usb/core/hcd-pci.c                         |   15 +-
 drivers/usb/core/hcd.c                             |   19 +-
 drivers/usb/core/hub.c                             |   23 +-
 drivers/usb/core/hub.h                             |   10 +-
 drivers/usb/core/ledtrig-usbport.c                 |    5 +-
 drivers/usb/core/message.c                         |   53 +-
 drivers/usb/core/notify.c                          |    2 +-
 drivers/usb/core/of.c                              |   13 +-
 drivers/usb/core/otg_whitelist.h                   |    6 +-
 drivers/usb/core/port.c                            |   11 +-
 drivers/usb/core/quirks.c                          |   16 +-
 drivers/usb/core/sysfs.c                           |    5 +-
 drivers/usb/core/urb.c                             |    3 +-
 drivers/usb/core/usb-acpi.c                        |    6 +-
 drivers/usb/core/usb.c                             |    2 +-
 drivers/usb/core/usb.h                             |    3 +-
 drivers/usb/dwc2/core.c                            |    1 +
 drivers/usb/dwc2/core.h                            |    5 +
 drivers/usb/dwc2/core_intr.c                       |    1 +
 drivers/usb/dwc2/debug.h                           |   10 +-
 drivers/usb/dwc2/debugfs.c                         |   10 +-
 drivers/usb/dwc2/gadget.c                          |   12 +-
 drivers/usb/dwc2/hcd.c                             |   13 +-
 drivers/usb/dwc2/hcd.h                             |    1 +
 drivers/usb/dwc2/hcd_ddma.c                        |    1 +
 drivers/usb/dwc2/hcd_intr.c                        |    1 +
 drivers/usb/dwc2/hcd_queue.c                       |    1 +
 drivers/usb/dwc2/hw.h                              |    1 +
 drivers/usb/dwc2/params.c                          |   15 +
 drivers/usb/dwc2/pci.c                             |    1 +
 drivers/usb/dwc2/platform.c                        |    1 +
 drivers/usb/dwc3/core.c                            |   74 +-
 drivers/usb/dwc3/core.h                            |   12 +-
 drivers/usb/dwc3/debug.h                           |   10 +-
 drivers/usb/dwc3/debugfs.c                         |   10 +-
 drivers/usb/dwc3/drd.c                             |   13 +-
 drivers/usb/dwc3/dwc3-exynos.c                     |   10 +-
 drivers/usb/dwc3/dwc3-keystone.c                   |   10 +-
 drivers/usb/dwc3/dwc3-of-simple.c                  |   39 +-
 drivers/usb/dwc3/dwc3-omap.c                       |   10 +-
 drivers/usb/dwc3/dwc3-pci.c                        |   39 +-
 drivers/usb/dwc3/dwc3-st.c                         |    6 +-
 drivers/usb/dwc3/ep0.c                             |   30 +-
 drivers/usb/dwc3/gadget.c                          |   72 +-
 drivers/usb/dwc3/gadget.h                          |   10 +-
 drivers/usb/dwc3/host.c                            |   10 +-
 drivers/usb/dwc3/io.h                              |   10 +-
 drivers/usb/dwc3/trace.c                           |   10 +-
 drivers/usb/dwc3/trace.h                           |   10 +-
 drivers/usb/dwc3/ulpi.c                            |    5 +-
 drivers/usb/early/Makefile                         |    1 +
 drivers/usb/early/ehci-dbgp.c                      |    1 +
 drivers/usb/early/xhci-dbc.c                       |    5 +-
 drivers/usb/early/xhci-dbc.h                       |   11 +-
 drivers/usb/gadget/composite.c                     |   13 +-
 drivers/usb/gadget/config.c                        |    6 +-
 drivers/usb/gadget/configfs.c                      |    1 +
 drivers/usb/gadget/epautoconf.c                    |    6 +-
 drivers/usb/gadget/function/f_acm.c                |    5 +-
 drivers/usb/gadget/function/f_ecm.c                |    6 +-
 drivers/usb/gadget/function/f_eem.c                |    6 +-
 drivers/usb/gadget/function/f_fs.c                 |    7 +-
 drivers/usb/gadget/function/f_hid.c                |    6 +-
 drivers/usb/gadget/function/f_loopback.c           |    6 +-
 drivers/usb/gadget/function/f_mass_storage.c       |    1 +
 drivers/usb/gadget/function/f_midi.c               |    3 +-
 drivers/usb/gadget/function/f_ncm.c                |    6 +-
 drivers/usb/gadget/function/f_obex.c               |    6 +-
 drivers/usb/gadget/function/f_phonet.c             |    7 +-
 drivers/usb/gadget/function/f_printer.c            |    6 +-
 drivers/usb/gadget/function/f_rndis.c              |    6 +-
 drivers/usb/gadget/function/f_serial.c             |    5 +-
 drivers/usb/gadget/function/f_sourcesink.c         |    6 +-
 drivers/usb/gadget/function/f_subset.c             |    6 +-
 drivers/usb/gadget/function/f_tcm.c                |    3 +-
 drivers/usb/gadget/function/f_uac1.c               |    6 +-
 drivers/usb/gadget/function/f_uac1_legacy.c        |    3 +-
 drivers/usb/gadget/function/f_uac2.c               |    6 +-
 drivers/usb/gadget/function/f_uvc.c                |    6 +-
 drivers/usb/gadget/function/f_uvc.h                |    6 +-
 drivers/usb/gadget/function/rndis.c                |    5 +-
 drivers/usb/gadget/function/rndis.h                |    5 +-
 drivers/usb/gadget/function/storage_common.c       |    6 +-
 drivers/usb/gadget/function/u_audio.c              |   11 +-
 drivers/usb/gadget/function/u_audio.h              |   12 +-
 drivers/usb/gadget/function/u_ecm.h                |    5 +-
 drivers/usb/gadget/function/u_eem.h                |    5 +-
 drivers/usb/gadget/function/u_ether.c              |    6 +-
 drivers/usb/gadget/function/u_ether.h              |    6 +-
 drivers/usb/gadget/function/u_ether_configfs.h     |    5 +-
 drivers/usb/gadget/function/u_fs.h                 |    5 +-
 drivers/usb/gadget/function/u_gether.h             |    5 +-
 drivers/usb/gadget/function/u_hid.h                |    5 +-
 drivers/usb/gadget/function/u_midi.h               |    5 +-
 drivers/usb/gadget/function/u_ncm.h                |    5 +-
 drivers/usb/gadget/function/u_phonet.h             |    5 +-
 drivers/usb/gadget/function/u_printer.h            |    5 +-
 drivers/usb/gadget/function/u_rndis.h              |    5 +-
 drivers/usb/gadget/function/u_serial.c             |    6 +-
 drivers/usb/gadget/function/u_serial.h             |    5 +-
 drivers/usb/gadget/function/u_tcm.h                |    5 +-
 drivers/usb/gadget/function/u_uac1.h               |    5 +-
 drivers/usb/gadget/function/u_uac1_legacy.c        |    3 +-
 drivers/usb/gadget/function/u_uac1_legacy.h        |    3 +-
 drivers/usb/gadget/function/u_uac2.h               |    5 +-
 drivers/usb/gadget/function/u_uvc.h                |    5 +-
 drivers/usb/gadget/function/uvc.h                  |    6 +-
 drivers/usb/gadget/function/uvc_configfs.c         |    5 +-
 drivers/usb/gadget/function/uvc_configfs.h         |    5 +-
 drivers/usb/gadget/function/uvc_queue.c            |    6 +-
 drivers/usb/gadget/function/uvc_v4l2.c             |    8 +-
 drivers/usb/gadget/function/uvc_v4l2.h             |    7 +-
 drivers/usb/gadget/function/uvc_video.c            |    6 +-
 drivers/usb/gadget/function/uvc_video.h            |    5 +-
 drivers/usb/gadget/functions.c                     |    1 +
 drivers/usb/gadget/legacy/acm_ms.c                 |    6 +-
 drivers/usb/gadget/legacy/audio.c                  |    3 +-
 drivers/usb/gadget/legacy/cdc2.c                   |    6 +-
 drivers/usb/gadget/legacy/dbgp.c                   |    1 +
 drivers/usb/gadget/legacy/ether.c                  |    6 +-
 drivers/usb/gadget/legacy/g_ffs.c                  |    6 +-
 drivers/usb/gadget/legacy/gmidi.c                  |    4 +-
 drivers/usb/gadget/legacy/hid.c                    |    6 +-
 drivers/usb/gadget/legacy/inode.c                  |    6 +-
 drivers/usb/gadget/legacy/mass_storage.c           |    6 +-
 drivers/usb/gadget/legacy/multi.c                  |    6 +-
 drivers/usb/gadget/legacy/ncm.c                    |    6 +-
 drivers/usb/gadget/legacy/nokia.c                  |    5 +-
 drivers/usb/gadget/legacy/printer.c                |    6 +-
 drivers/usb/gadget/legacy/serial.c                 |    5 +-
 drivers/usb/gadget/legacy/tcm_usb_gadget.c         |    2 +-
 drivers/usb/gadget/legacy/webcam.c                 |    6 +-
 drivers/usb/gadget/legacy/zero.c                   |   14 +-
 drivers/usb/gadget/u_f.c                           |    5 +-
 drivers/usb/gadget/u_f.h                           |    5 +-
 drivers/usb/gadget/u_os_desc.h                     |    5 +-
 drivers/usb/gadget/udc/amd5536udc.h                |    6 +-
 drivers/usb/gadget/udc/amd5536udc_pci.c            |    6 +-
 drivers/usb/gadget/udc/at91_udc.c                  |    6 +-
 drivers/usb/gadget/udc/at91_udc.h                  |    6 +-
 drivers/usb/gadget/udc/atmel_usba_udc.c            |    5 +-
 drivers/usb/gadget/udc/atmel_usba_udc.h            |    5 +-
 drivers/usb/gadget/udc/bcm63xx_udc.c               |    6 +-
 drivers/usb/gadget/udc/bdc/bdc.h                   |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_cmd.c               |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_cmd.h               |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_core.c              |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_dbg.c               |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_dbg.h               |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_ep.c                |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_ep.h                |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_pci.c               |    7 +-
 drivers/usb/gadget/udc/bdc/bdc_udc.c               |    7 +-
 drivers/usb/gadget/udc/core.c                      |   15 +-
 drivers/usb/gadget/udc/dummy_hcd.c                 |   82 +-
 drivers/usb/gadget/udc/fotg210-udc.c               |    5 +-
 drivers/usb/gadget/udc/fotg210.h                   |    6 +-
 drivers/usb/gadget/udc/fsl_mxc_udc.c               |    6 +-
 drivers/usb/gadget/udc/fsl_qe_udc.c                |    6 +-
 drivers/usb/gadget/udc/fsl_qe_udc.h                |    6 +-
 drivers/usb/gadget/udc/fsl_udc_core.c              |    6 +-
 drivers/usb/gadget/udc/fsl_usb2_udc.h              |    6 +-
 drivers/usb/gadget/udc/fusb300_udc.c               |    5 +-
 drivers/usb/gadget/udc/fusb300_udc.h               |    5 +-
 drivers/usb/gadget/udc/goku_udc.c                  |   19 +-
 drivers/usb/gadget/udc/goku_udc.h                  |    5 +-
 drivers/usb/gadget/udc/gr_udc.c                    |    8 +-
 drivers/usb/gadget/udc/gr_udc.h                    |    6 +-
 drivers/usb/gadget/udc/lpc32xx_udc.c               |   15 +-
 drivers/usb/gadget/udc/m66592-udc.c                |    9 +-
 drivers/usb/gadget/udc/m66592-udc.h                |    5 +-
 drivers/usb/gadget/udc/mv_u3d.h                    |    5 +-
 drivers/usb/gadget/udc/mv_u3d_core.c               |    5 +-
 drivers/usb/gadget/udc/mv_udc.h                    |    6 +-
 drivers/usb/gadget/udc/mv_udc_core.c               |    6 +-
 drivers/usb/gadget/udc/net2272.c                   |   15 +-
 drivers/usb/gadget/udc/net2272.h                   |   15 +-
 drivers/usb/gadget/udc/net2280.c                   |    6 +-
 drivers/usb/gadget/udc/net2280.h                   |    6 +-
 drivers/usb/gadget/udc/omap_udc.c                  |    6 +-
 drivers/usb/gadget/udc/pch_udc.c                   |    5 +-
 drivers/usb/gadget/udc/pxa25x_udc.c                |   10 +-
 drivers/usb/gadget/udc/pxa25x_udc.h                |    7 +-
 drivers/usb/gadget/udc/pxa27x_udc.c                |    6 +-
 drivers/usb/gadget/udc/pxa27x_udc.h                |    6 +-
 drivers/usb/gadget/udc/r8a66597-udc.c              |    9 +-
 drivers/usb/gadget/udc/r8a66597-udc.h              |    5 +-
 drivers/usb/gadget/udc/renesas_usb3.c              |   80 +-
 drivers/usb/gadget/udc/s3c-hsudc.c                 |    7 +-
 drivers/usb/gadget/udc/s3c2410_udc.c               |    6 +-
 drivers/usb/gadget/udc/s3c2410_udc.h               |    6 +-
 drivers/usb/gadget/udc/snps_udc_core.c             |   29 +-
 drivers/usb/gadget/udc/snps_udc_plat.c             |   10 +-
 drivers/usb/gadget/udc/trace.c                     |   10 +-
 drivers/usb/gadget/udc/trace.h                     |   13 +-
 drivers/usb/gadget/udc/udc-xilinx.c                |    7 +-
 drivers/usb/gadget/usbstring.c                     |    6 +-
 drivers/usb/host/Kconfig                           |   16 +-
 drivers/usb/host/Makefile                          |    5 +-
 drivers/usb/host/bcma-hcd.c                        |    3 +-
 drivers/usb/host/ehci-atmel.c                      |    8 +-
 drivers/usb/host/ehci-dbg.c                        |   12 +-
 drivers/usb/host/ehci-exynos.c                     |    7 +-
 drivers/usb/host/ehci-fsl.c                        |   15 +-
 drivers/usb/host/ehci-fsl.h                        |   15 +-
 drivers/usb/host/ehci-grlib.c                      |   15 +-
 drivers/usb/host/ehci-hcd.c                        |   17 +-
 drivers/usb/host/ehci-hub.c                        |   15 +-
 drivers/usb/host/ehci-mem.c                        |   15 +-
 drivers/usb/host/ehci-msm.c                        |  265 ---
 drivers/usb/host/ehci-mv.c                         |    6 +-
 drivers/usb/host/ehci-mxc.c                        |   15 +-
 drivers/usb/host/ehci-omap.c                       |   16 +-
 drivers/usb/host/ehci-orion.c                      |    5 +-
 drivers/usb/host/ehci-pci.c                        |   15 +-
 drivers/usb/host/ehci-platform.c                   |   38 +-
 drivers/usb/host/ehci-pmcmsp.c                     |    6 +-
 drivers/usb/host/ehci-ppc-of.c                     |    1 +
 drivers/usb/host/ehci-ps3.c                        |   14 +-
 drivers/usb/host/ehci-q.c                          |   15 +-
 drivers/usb/host/ehci-sched.c                      |   15 +-
 drivers/usb/host/ehci-sh.c                         |    5 +-
 drivers/usb/host/ehci-spear.c                      |    5 +-
 drivers/usb/host/ehci-st.c                         |    5 +-
 drivers/usb/host/ehci-sysfs.c                      |   15 +-
 drivers/usb/host/ehci-tegra.c                      |   12 +-
 drivers/usb/host/ehci-tilegx.c                     |   11 +-
 drivers/usb/host/ehci-timer.c                      |   11 +-
 drivers/usb/host/ehci-w90x900.c                    |    6 +-
 drivers/usb/host/ehci-xilinx-of.c                  |   16 +-
 drivers/usb/host/ehci.h                            |   15 +-
 drivers/usb/host/fhci-dbg.c                        |    6 +-
 drivers/usb/host/fhci-hcd.c                        |    6 +-
 drivers/usb/host/fhci-hub.c                        |    6 +-
 drivers/usb/host/fhci-mem.c                        |    6 +-
 drivers/usb/host/fhci-q.c                          |    6 +-
 drivers/usb/host/fhci-sched.c                      |    6 +-
 drivers/usb/host/fhci-tds.c                        |    6 +-
 drivers/usb/host/fhci.h                            |    6 +-
 drivers/usb/host/fotg210-hcd.c                     |   17 +-
 drivers/usb/host/fsl-mph-dr-of.c                   |    6 +-
 drivers/usb/host/hwa-hc.c                          |   16 +-
 drivers/usb/host/imx21-dbg.c                       |   15 +-
 drivers/usb/host/imx21-hcd.c                       |   15 +-
 drivers/usb/host/imx21-hcd.h                       |   15 +-
 drivers/usb/host/isp116x-hcd.c                     |    4 +
 drivers/usb/host/isp1362-hcd.c                     |    5 +-
 drivers/usb/host/max3421-hcd.c                     |   81 +-
 drivers/usb/host/ohci-at91.c                       |    1 +
 drivers/usb/host/ohci-da8xx.c                      |    5 +-
 drivers/usb/host/ohci-dbg.c                        |    1 +
 drivers/usb/host/ohci-exynos.c                     |    7 +-
 drivers/usb/host/ohci-hcd.c                        |    3 +-
 drivers/usb/host/ohci-hub.c                        |    1 +
 drivers/usb/host/ohci-mem.c                        |    1 +
 drivers/usb/host/ohci-nxp.c                        |    6 +-
 drivers/usb/host/ohci-omap.c                       |    1 +
 drivers/usb/host/ohci-pci.c                        |    1 +
 drivers/usb/host/ohci-platform.c                   |   40 +-
 drivers/usb/host/ohci-ppc-of.c                     |    1 +
 drivers/usb/host/ohci-ps3.c                        |   14 +-
 drivers/usb/host/ohci-pxa27x.c                     |    1 +
 drivers/usb/host/ohci-q.c                          |    1 +
 drivers/usb/host/ohci-s3c2410.c                    |    1 +
 drivers/usb/host/ohci-sa1111.c                     |   26 +-
 drivers/usb/host/ohci-sm501.c                      |    1 +
 drivers/usb/host/ohci-spear.c                      |    5 +-
 drivers/usb/host/ohci-st.c                         |    5 +-
 drivers/usb/host/ohci-tilegx.c                     |   11 +-
 drivers/usb/host/ohci-tmio.c                       |    5 +-
 drivers/usb/host/ohci.h                            |    1 +
 drivers/usb/host/oxu210hp-hcd.c                    |   17 +-
 drivers/usb/host/pci-quirks.c                      |    3 +-
 drivers/usb/host/r8a66597-hcd.c                    |   42 +-
 drivers/usb/host/r8a66597.h                        |   26 +-
 drivers/usb/host/sl811-hcd.c                       |    1 +
 drivers/usb/host/sl811_cs.c                        |    1 +
 drivers/usb/host/ssb-hcd.c                         |    3 +-
 drivers/usb/host/u132-hcd.c                        |    6 +-
 drivers/usb/host/uhci-hcd.c                        |    1 +
 drivers/usb/host/whci/asl.c                        |   13 +-
 drivers/usb/host/whci/debug.c                      |   13 +-
 drivers/usb/host/whci/hcd.c                        |   13 +-
 drivers/usb/host/whci/hw.c                         |   13 +-
 drivers/usb/host/whci/init.c                       |   13 +-
 drivers/usb/host/whci/int.c                        |   13 +-
 drivers/usb/host/whci/pzl.c                        |   13 +-
 drivers/usb/host/whci/qset.c                       |   13 +-
 drivers/usb/host/whci/whcd.h                       |   15 +-
 drivers/usb/host/whci/whci-hc.h                    |   15 +-
 drivers/usb/host/whci/wusb.c                       |   13 +-
 drivers/usb/host/xhci-dbg.c                        |   14 +-
 drivers/usb/host/xhci-debugfs.c                    |  523 +++++
 drivers/usb/host/xhci-debugfs.h                    |  134 ++
 drivers/usb/host/xhci-ext-caps.h                   |   14 +-
 drivers/usb/host/xhci-hub.c                        |   20 +-
 drivers/usb/host/xhci-mem.c                        |   24 +-
 drivers/usb/host/xhci-mtk-sch.c                    |   14 +-
 drivers/usb/host/xhci-mtk.c                        |  144 +-
 drivers/usb/host/xhci-mtk.h                        |   16 +-
 drivers/usb/host/xhci-mvebu.c                      |    5 +-
 drivers/usb/host/xhci-mvebu.h                      |    5 +-
 drivers/usb/host/xhci-pci.c                        |   14 +-
 drivers/usb/host/xhci-plat.c                       |   16 +-
 drivers/usb/host/xhci-plat.h                       |    5 +-
 drivers/usb/host/xhci-rcar.c                       |    5 +-
 drivers/usb/host/xhci-rcar.h                       |    5 +-
 drivers/usb/host/xhci-ring.c                       |   35 +-
 drivers/usb/host/xhci-tegra.c                      |    9 +-
 drivers/usb/host/xhci-trace.c                      |    5 +-
 drivers/usb/host/xhci-trace.h                      |   10 +-
 drivers/usb/host/xhci.c                            |  103 +-
 drivers/usb/host/xhci.h                            |   34 +-
 drivers/usb/image/Makefile                         |    1 +
 drivers/usb/image/mdc800.c                         |   16 +-
 drivers/usb/image/microtek.c                       |    1 +
 drivers/usb/isp1760/Makefile                       |    1 +
 drivers/usb/isp1760/isp1760-core.c                 |    5 +-
 drivers/usb/isp1760/isp1760-core.h                 |    5 +-
 drivers/usb/isp1760/isp1760-hcd.c                  |    8 +-
 drivers/usb/isp1760/isp1760-regs.h                 |    5 +-
 drivers/usb/isp1760/isp1760-udc.c                  |   12 +-
 drivers/usb/isp1760/isp1760-udc.h                  |    5 +-
 drivers/usb/misc/Kconfig                           |    4 +-
 drivers/usb/misc/adutux.c                          |    8 +-
 drivers/usb/misc/appledisplay.c                    |   15 +-
 drivers/usb/misc/chaoskey.c                        |   10 +-
 drivers/usb/misc/cypress_cy7c63.c                  |    5 +-
 drivers/usb/misc/cytherm.c                         |    6 +-
 drivers/usb/misc/ehset.c                           |   10 +-
 drivers/usb/misc/emi26.c                           |    5 +-
 drivers/usb/misc/emi62.c                           |    5 +-
 drivers/usb/misc/ezusb.c                           |    5 +-
 drivers/usb/misc/ftdi-elan.c                       |    6 +-
 drivers/usb/misc/idmouse.c                         |    6 +-
 drivers/usb/misc/iowarrior.c                       |    1 +
 drivers/usb/misc/isight_firmware.c                 |    5 +-
 drivers/usb/misc/ldusb.c                           |    6 +-
 drivers/usb/misc/legousbtower.c                    |    6 +-
 drivers/usb/misc/lvstest.c                         |    5 +-
 drivers/usb/misc/rio500.c                          |   15 +-
 drivers/usb/misc/rio500_usb.h                      |   19 +-
 drivers/usb/misc/sisusbvga/Makefile                |    1 +
 drivers/usb/misc/sisusbvga/sisusb.c                |    1 +
 drivers/usb/misc/sisusbvga/sisusb.h                |    1 +
 drivers/usb/misc/sisusbvga/sisusb_con.c            |    1 +
 drivers/usb/misc/sisusbvga/sisusb_init.c           |    1 +
 drivers/usb/misc/sisusbvga/sisusb_init.h           |    1 +
 drivers/usb/misc/sisusbvga/sisusb_struct.h         |    1 +
 drivers/usb/misc/trancevibrator.c                  |   15 +-
 drivers/usb/misc/usb251xb.c                        |  177 +-
 drivers/usb/misc/usb3503.c                         |   15 +-
 drivers/usb/misc/usb4604.c                         |   11 +-
 drivers/usb/misc/usb_u132.h                        |    6 +-
 drivers/usb/misc/usblcd.c                          |    1 +
 drivers/usb/misc/usbsevseg.c                       |    6 +-
 drivers/usb/misc/usbtest.c                         |   11 +-
 drivers/usb/misc/uss720.c                          |   15 +-
 drivers/usb/misc/yurex.c                           |    6 +-
 drivers/usb/mon/Makefile                           |    1 +
 drivers/usb/mon/mon_main.c                         |    1 +
 drivers/usb/mtu3/mtu3.h                            |   59 +-
 drivers/usb/mtu3/mtu3_core.c                       |   72 +-
 drivers/usb/mtu3/mtu3_dr.c                         |   72 +-
 drivers/usb/mtu3/mtu3_dr.h                         |   17 +-
 drivers/usb/mtu3/mtu3_gadget.c                     |   14 +-
 drivers/usb/mtu3/mtu3_gadget_ep0.c                 |   27 +-
 drivers/usb/mtu3/mtu3_host.c                       |   89 +-
 drivers/usb/mtu3/mtu3_hw_regs.h                    |   24 +-
 drivers/usb/mtu3/mtu3_plat.c                       |  176 +-
 drivers/usb/mtu3/mtu3_qmu.c                        |  113 +-
 drivers/usb/mtu3/mtu3_qmu.h                        |   11 +-
 drivers/usb/musb/am35x.c                           |   42 +-
 drivers/usb/musb/blackfin.c                        |   16 +-
 drivers/usb/musb/blackfin.h                        |    8 +-
 drivers/usb/musb/cppi_dma.c                        |    1 +
 drivers/usb/musb/da8xx.c                           |   47 +-
 drivers/usb/musb/davinci.c                         |   38 +-
 drivers/usb/musb/davinci.h                         |    6 +-
 drivers/usb/musb/jz4740.c                          |   10 +-
 drivers/usb/musb/musb_am335x.c                     |    1 +
 drivers/usb/musb/musb_core.c                       |   34 +-
 drivers/usb/musb/musb_core.h                       |   28 +-
 drivers/usb/musb/musb_cppi41.c                     |    1 +
 drivers/usb/musb/musb_debug.h                      |   27 +-
 drivers/usb/musb/musb_debugfs.c                    |   27 +-
 drivers/usb/musb/musb_dma.h                        |   27 +-
 drivers/usb/musb/musb_dsps.c                       |   35 +-
 drivers/usb/musb/musb_gadget.c                     |   27 +-
 drivers/usb/musb/musb_gadget.h                     |   27 +-
 drivers/usb/musb/musb_gadget_ep0.c                 |   27 +-
 drivers/usb/musb/musb_host.c                       |   27 +-
 drivers/usb/musb/musb_host.h                       |   27 +-
 drivers/usb/musb/musb_io.h                         |   27 +-
 drivers/usb/musb/musb_regs.h                       |   27 +-
 drivers/usb/musb/musb_trace.c                      |   10 +-
 drivers/usb/musb/musb_trace.h                      |   10 +-
 drivers/usb/musb/musb_virthub.c                    |   27 +-
 drivers/usb/musb/musbhsdma.c                       |   27 +-
 drivers/usb/musb/musbhsdma.h                       |   27 +-
 drivers/usb/musb/omap2430.c                        |   18 +-
 drivers/usb/musb/omap2430.h                        |    6 +-
 drivers/usb/musb/sunxi.c                           |   11 +-
 drivers/usb/musb/tusb6010.c                        |   25 +-
 drivers/usb/musb/tusb6010.h                        |    5 +-
 drivers/usb/musb/tusb6010_omap.c                   |    5 +-
 drivers/usb/musb/ux500.c                           |   15 +-
 drivers/usb/musb/ux500_dma.c                       |   14 +-
 drivers/usb/phy/Kconfig                            |   29 -
 drivers/usb/phy/Makefile                           |    2 -
 drivers/usb/phy/of.c                               |    6 +-
 drivers/usb/phy/phy-ab8500-usb.c                   |   16 +-
 drivers/usb/phy/phy-am335x-control.c               |    1 +
 drivers/usb/phy/phy-am335x.c                       |    1 +
 drivers/usb/phy/phy-fsl-usb.c                      |   15 +-
 drivers/usb/phy/phy-fsl-usb.h                      |   18 +-
 drivers/usb/phy/phy-generic.c                      |   20 +-
 drivers/usb/phy/phy-gpio-vbus-usb.c                |    5 +-
 drivers/usb/phy/phy-isp1301-omap.c                 |   26 +-
 drivers/usb/phy/phy-isp1301.c                      |    5 +-
 drivers/usb/phy/phy-keystone.c                     |   11 +-
 drivers/usb/phy/phy-msm-usb.c                      | 2085 --------------------
 drivers/usb/phy/phy-mv-usb.c                       |   23 +-
 drivers/usb/phy/phy-mv-usb.h                       |    6 +-
 drivers/usb/phy/phy-mxs-usb.c                      |  162 +-
 drivers/usb/phy/phy-omap-otg.c                     |   10 +-
 drivers/usb/phy/phy-qcom-8x16-usb.c                |  366 ----
 drivers/usb/phy/phy-tahvo.c                        |   15 +-
 drivers/usb/phy/phy-tegra-usb.c                    |   11 +-
 drivers/usb/phy/phy-twl6030-usb.c                  |   15 +-
 drivers/usb/phy/phy-ulpi-viewport.c                |   11 +-
 drivers/usb/phy/phy-ulpi.c                         |   15 +-
 drivers/usb/phy/phy.c                              |    6 +-
 drivers/usb/renesas_usbhs/common.c                 |   39 +-
 drivers/usb/renesas_usbhs/common.h                 |   11 +-
 drivers/usb/renesas_usbhs/fifo.c                   |   11 +-
 drivers/usb/renesas_usbhs/fifo.h                   |   11 +-
 drivers/usb/renesas_usbhs/mod.c                    |   11 +-
 drivers/usb/renesas_usbhs/mod.h                    |   11 +-
 drivers/usb/renesas_usbhs/mod_gadget.c             |   11 +-
 drivers/usb/renesas_usbhs/mod_host.c               |   11 +-
 drivers/usb/renesas_usbhs/pipe.c                   |   11 +-
 drivers/usb/renesas_usbhs/pipe.h                   |   11 +-
 drivers/usb/renesas_usbhs/rcar2.c                  |    7 +-
 drivers/usb/renesas_usbhs/rcar2.h                  |    1 +
 drivers/usb/renesas_usbhs/rcar3.c                  |   54 +-
 drivers/usb/renesas_usbhs/rcar3.h                  |    2 +
 drivers/usb/serial/Makefile-keyspan_pda_fw         |    1 +
 drivers/usb/serial/aircable.c                      |    7 +-
 drivers/usb/serial/ark3116.c                       |    6 +-
 drivers/usb/serial/belkin_sa.c                     |    6 +-
 drivers/usb/serial/belkin_sa.h                     |    6 +-
 drivers/usb/serial/bus.c                           |    5 +-
 drivers/usb/serial/ch341.c                         |    7 +-
 drivers/usb/serial/console.c                       |    5 +-
 drivers/usb/serial/cp210x.c                        |    7 +-
 drivers/usb/serial/cyberjack.c                     |    6 +-
 drivers/usb/serial/cypress_m8.c                    |    6 +-
 drivers/usb/serial/digi_acceleport.c               |    6 +-
 drivers/usb/serial/empeg.c                         |    7 +-
 drivers/usb/serial/f81232.c                        |    6 +-
 drivers/usb/serial/f81534.c                        |   96 +-
 drivers/usb/serial/ftdi_sio.c                      |    6 +-
 drivers/usb/serial/garmin_gps.c                    |   82 +-
 drivers/usb/serial/generic.c                       |    5 +-
 drivers/usb/serial/io_16654.h                      |    5 +-
 drivers/usb/serial/io_edgeport.c                   |    6 +-
 drivers/usb/serial/io_edgeport.h                   |    7 +-
 drivers/usb/serial/io_ionsp.h                      |    6 +-
 drivers/usb/serial/io_ti.c                         |    6 +-
 drivers/usb/serial/io_ti.h                         |    7 +-
 drivers/usb/serial/io_usbvend.h                    |    5 +-
 drivers/usb/serial/ipaq.c                          |    6 +-
 drivers/usb/serial/ipw.c                           |    6 +-
 drivers/usb/serial/ir-usb.c                        |    6 +-
 drivers/usb/serial/iuu_phoenix.c                   |    7 +-
 drivers/usb/serial/iuu_phoenix.h                   |    7 +-
 drivers/usb/serial/keyspan.c                       |    6 +-
 drivers/usb/serial/keyspan_pda.c                   |    6 +-
 drivers/usb/serial/kl5kusb105.c                    |    6 +-
 drivers/usb/serial/kobil_sct.c                     |    7 +-
 drivers/usb/serial/mct_u232.c                      |    6 +-
 drivers/usb/serial/mct_u232.h                      |    6 +-
 drivers/usb/serial/metro-usb.c                     |   44 +-
 drivers/usb/serial/mos7720.c                       |    7 +-
 drivers/usb/serial/mos7840.c                       |   15 +-
 drivers/usb/serial/mxuport.c                       |    6 +-
 drivers/usb/serial/navman.c                        |    7 +-
 drivers/usb/serial/omninet.c                       |    7 +-
 drivers/usb/serial/opticon.c                       |    7 +-
 drivers/usb/serial/option.c                        |    7 +-
 drivers/usb/serial/oti6858.c                       |    7 +-
 drivers/usb/serial/oti6858.h                       |    6 +-
 drivers/usb/serial/pl2303.c                        |    7 +-
 drivers/usb/serial/pl2303.h                        |    7 +-
 drivers/usb/serial/qcaux.c                         |    7 +-
 drivers/usb/serial/qcserial.c                      |    7 +-
 drivers/usb/serial/quatech2.c                      |    8 +-
 drivers/usb/serial/safe_serial.c                   |    6 +-
 drivers/usb/serial/sierra.c                        |    7 +-
 drivers/usb/serial/spcp8x5.c                       |    6 +-
 drivers/usb/serial/ssu100.c                        |    3 +-
 drivers/usb/serial/symbolserial.c                  |    7 +-
 drivers/usb/serial/ti_usb_3410_5052.c              |    6 +-
 drivers/usb/serial/upd78f0730.c                    |    5 +-
 drivers/usb/serial/usb-serial-simple.c             |    7 +-
 drivers/usb/serial/usb-serial.c                    |   29 +-
 drivers/usb/serial/usb_debug.c                     |   11 +-
 drivers/usb/serial/usb_wwan.c                      |    7 +-
 drivers/usb/serial/visor.c                         |    7 +-
 drivers/usb/serial/visor.h                         |    6 +-
 drivers/usb/serial/whiteheat.c                     |    6 +-
 drivers/usb/serial/whiteheat.h                     |    6 +-
 drivers/usb/serial/wishbone-serial.c               |    6 +-
 drivers/usb/serial/xsens_mt.c                      |    7 +-
 drivers/usb/storage/alauda.c                       |   15 +-
 drivers/usb/storage/cypress_atacb.c                |   15 +-
 drivers/usb/storage/datafab.c                      |   15 +-
 drivers/usb/storage/debug.c                        |   15 +-
 drivers/usb/storage/debug.h                        |   15 +-
 drivers/usb/storage/ene_ub6250.c                   |   17 +-
 drivers/usb/storage/freecom.c                      |   15 +-
 drivers/usb/storage/initializers.c                 |   15 +-
 drivers/usb/storage/initializers.h                 |   15 +-
 drivers/usb/storage/isd200.c                       |   15 +-
 drivers/usb/storage/jumpshot.c                     |   15 +-
 drivers/usb/storage/karma.c                        |   15 +-
 drivers/usb/storage/onetouch.c                     |   19 +-
 drivers/usb/storage/option_ms.c                    |   19 +-
 drivers/usb/storage/protocol.c                     |   15 +-
 drivers/usb/storage/protocol.h                     |   15 +-
 drivers/usb/storage/realtek_cr.c                   |   14 +-
 drivers/usb/storage/scsiglue.c                     |   15 +-
 drivers/usb/storage/scsiglue.h                     |   15 +-
 drivers/usb/storage/sddr09.c                       |   15 +-
 drivers/usb/storage/sddr55.c                       |   16 +-
 drivers/usb/storage/shuttle_usbat.c                |   15 +-
 drivers/usb/storage/transport.c                    |   15 +-
 drivers/usb/storage/transport.h                    |   15 +-
 drivers/usb/storage/uas.c                          |    4 +-
 drivers/usb/storage/unusual_alauda.h               |   15 +-
 drivers/usb/storage/unusual_cypress.h              |   15 +-
 drivers/usb/storage/unusual_datafab.h              |   15 +-
 drivers/usb/storage/unusual_devs.h                 |   15 +-
 drivers/usb/storage/unusual_ene_ub6250.h           |   18 +-
 drivers/usb/storage/unusual_freecom.h              |   15 +-
 drivers/usb/storage/unusual_isd200.h               |   15 +-
 drivers/usb/storage/unusual_jumpshot.h             |   15 +-
 drivers/usb/storage/unusual_karma.h                |   15 +-
 drivers/usb/storage/unusual_onetouch.h             |   15 +-
 drivers/usb/storage/unusual_realtek.h              |   14 +-
 drivers/usb/storage/unusual_sddr09.h               |   15 +-
 drivers/usb/storage/unusual_sddr55.h               |   15 +-
 drivers/usb/storage/unusual_uas.h                  |   15 +-
 drivers/usb/storage/unusual_usbat.h                |   15 +-
 drivers/usb/storage/usb.c                          |   49 +-
 drivers/usb/storage/usb.h                          |   15 +-
 drivers/usb/storage/usual-tables.c                 |   15 +-
 drivers/usb/typec/Kconfig                          |   25 +
 drivers/usb/typec/Makefile                         |    4 +
 drivers/{staging => usb}/typec/fusb302/Kconfig     |    0
 drivers/{staging => usb}/typec/fusb302/Makefile    |    1 +
 drivers/{staging => usb}/typec/fusb302/fusb302.c   |   15 +-
 .../{staging => usb}/typec/fusb302/fusb302_reg.h   |   11 +-
 drivers/{staging => usb}/typec/tcpm.c              |   60 +-
 drivers/usb/typec/tps6598x.c                       |  473 +++++
 drivers/usb/typec/typec.c                          |    5 +-
 drivers/usb/typec/typec_wcove.c                    |  599 ++++--
 drivers/usb/typec/ucsi/trace.c                     |    1 +
 drivers/usb/typec/ucsi/ucsi.c                      |    5 +-
 drivers/usb/typec/ucsi/ucsi_acpi.c                 |    5 +-
 drivers/usb/usb-skeleton.c                         |    6 +-
 drivers/usb/usbip/stub.h                           |   16 +-
 drivers/usb/usbip/stub_dev.c                       |   16 +-
 drivers/usb/usbip/stub_main.c                      |   16 +-
 drivers/usb/usbip/stub_rx.c                        |   16 +-
 drivers/usb/usbip/stub_tx.c                        |   16 +-
 drivers/usb/usbip/usbip_common.c                   |   16 +-
 drivers/usb/usbip/usbip_common.h                   |   16 +-
 drivers/usb/usbip/usbip_event.c                    |   16 +-
 drivers/usb/usbip/vhci.h                           |    7 +-
 drivers/usb/usbip/vhci_hcd.c                       |   16 +-
 drivers/usb/usbip/vhci_rx.c                        |   16 +-
 drivers/usb/usbip/vhci_sysfs.c                     |   16 +-
 drivers/usb/usbip/vhci_tx.c                        |   16 +-
 drivers/usb/usbip/vudc.h                           |   16 +-
 drivers/usb/usbip/vudc_dev.c                       |   23 +-
 drivers/usb/usbip/vudc_main.c                      |   14 +-
 drivers/usb/usbip/vudc_rx.c                        |   14 +-
 drivers/usb/usbip/vudc_sysfs.c                     |   16 +-
 drivers/usb/usbip/vudc_transfer.c                  |   20 +-
 drivers/usb/usbip/vudc_tx.c                        |   14 +-
 drivers/usb/wusbcore/cbaf.c                        |   16 +-
 drivers/usb/wusbcore/crypto.c                      |   16 +-
 drivers/usb/wusbcore/dev-sysfs.c                   |   16 +-
 drivers/usb/wusbcore/devconnect.c                  |   16 +-
 drivers/usb/wusbcore/mmc.c                         |   16 +-
 drivers/usb/wusbcore/pal.c                         |   13 +-
 drivers/usb/wusbcore/reservation.c                 |   13 +-
 drivers/usb/wusbcore/rh.c                          |   16 +-
 drivers/usb/wusbcore/security.c                    |   25 +-
 drivers/usb/wusbcore/wa-hc.c                       |   16 +-
 drivers/usb/wusbcore/wa-hc.h                       |   16 +-
 drivers/usb/wusbcore/wa-nep.c                      |   16 +-
 drivers/usb/wusbcore/wa-rpipe.c                    |   16 +-
 drivers/usb/wusbcore/wa-xfer.c                     |   17 +-
 drivers/usb/wusbcore/wusbhc.c                      |   16 +-
 drivers/usb/wusbcore/wusbhc.h                      |   16 +-
 include/dt-bindings/phy/phy.h                      |    1 +
 include/linux/extcon-provider.h                    |  142 ++
 include/linux/extcon.h                             |  109 +-
 include/linux/mfd/max77843-private.h               |    5 +
 include/linux/mfd/palmas.h                         |    2 +-
 include/linux/phy/phy-qcom-ufs.h                   |    3 -
 include/linux/phy/phy.h                            |   14 +-
 include/linux/soc/brcmstb/brcmstb.h                |   17 +
 include/linux/usb.h                                |   16 +-
 include/linux/usb/association.h                    |    1 +
 include/linux/usb/audio-v2.h                       |    1 +
 include/linux/usb/audio.h                          |    1 +
 include/linux/usb/c67x00.h                         |    1 +
 include/linux/usb/cdc-wdm.h                        |    1 +
 include/linux/usb/cdc.h                            |    1 +
 include/linux/usb/cdc_ncm.h                        |    1 +
 include/linux/usb/composite.h                      |    1 +
 include/linux/usb/ehci_def.h                       |    1 +
 include/linux/usb/ehci_pdriver.h                   |    1 +
 include/linux/usb/g_hid.h                          |    1 +
 include/linux/usb/gadget.h                         |    6 +
 include/linux/usb/gpio_vbus.h                      |    1 +
 include/linux/usb/hcd.h                            |    1 +
 include/linux/usb/input.h                          |    1 +
 include/linux/usb/isp1301.h                        |    1 +
 include/linux/usb/m66592.h                         |    1 +
 include/linux/usb/msm_hsusb_hw.h                   |   77 -
 include/linux/usb/musb-ux500.h                     |    1 +
 include/linux/usb/net2280.h                        |    1 +
 include/linux/usb/of.h                             |    1 +
 include/linux/usb/ohci_pdriver.h                   |    1 +
 include/linux/usb/otg-fsm.h                        |    1 +
 {drivers/staging/typec => include/linux/usb}/pd.h  |    5 +
 .../staging/typec => include/linux/usb}/pd_bdo.h   |    0
 .../staging/typec => include/linux/usb}/pd_vdo.h   |    0
 include/linux/usb/phy_companion.h                  |    1 +
 include/linux/usb/quirks.h                         |    6 +
 include/linux/usb/r8a66597.h                       |    1 +
 include/linux/usb/renesas_usbhs.h                  |    6 +-
 include/linux/usb/rndis_host.h                     |    1 +
 include/linux/usb/samsung_usb_phy.h                |    1 +
 include/linux/usb/serial.h                         |    1 +
 include/linux/usb/storage.h                        |    1 +
 .../staging/typec => include/linux/usb}/tcpm.h     |   57 +-
 include/linux/usb/tegra_usb_phy.h                  |    1 +
 include/linux/usb/tilegx.h                         |    1 +
 include/linux/usb/ulpi.h                           |    1 +
 include/linux/usb/usb338x.h                        |    1 +
 include/linux/usb/usbnet.h                         |    1 +
 include/linux/usb/wusb-wa.h                        |    1 +
 include/linux/usb/wusb.h                           |    1 +
 include/linux/usb/xhci-dbgp.h                      |    1 +
 include/linux/usbdevice_fs.h                       |    1 +
 include/uapi/linux/usb/ch9.h                       |    4 +
 tools/usb/usbip/Makefile.am                        |    3 +-
 774 files changed, 6687 insertions(+), 9165 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/phy/brcm,brcmstb-usb-phy.txt
 create mode 100644 Documentation/devicetree/bindings/usb/maxim,max3421.txt
 create mode 100644 drivers/phy/broadcom/phy-brcm-usb-init.c
 create mode 100644 drivers/phy/broadcom/phy-brcm-usb-init.h
 create mode 100644 drivers/phy/broadcom/phy-brcm-usb.c
 delete mode 100644 drivers/staging/typec/fusb302/TODO
 delete mode 100644 drivers/usb/host/ehci-msm.c
 create mode 100644 drivers/usb/host/xhci-debugfs.c
 create mode 100644 drivers/usb/host/xhci-debugfs.h
 delete mode 100644 drivers/usb/phy/phy-msm-usb.c
 delete mode 100644 drivers/usb/phy/phy-qcom-8x16-usb.c
 rename drivers/{staging => usb}/typec/fusb302/Kconfig (100%)
 rename drivers/{staging => usb}/typec/fusb302/Makefile (53%)
 rename drivers/{staging => usb}/typec/fusb302/fusb302.c (98%)
 rename drivers/{staging => usb}/typec/fusb302/fusb302_reg.h (93%)
 rename drivers/{staging => usb}/typec/tcpm.c (98%)
 create mode 100644 drivers/usb/typec/tps6598x.c
 create mode 100644 include/linux/extcon-provider.h
 delete mode 100644 include/linux/usb/msm_hsusb_hw.h
 rename {drivers/staging/typec => include/linux/usb}/pd.h (98%)
 rename {drivers/staging/typec => include/linux/usb}/pd_bdo.h (100%)
 rename {drivers/staging/typec => include/linux/usb}/pd_vdo.h (100%)
 rename {drivers/staging/typec => include/linux/usb}/tcpm.h (68%)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] USB/PHY driver changes for 4.15-rc1
  2017-11-13 16:19 [GIT PULL] USB/PHY driver changes for 4.15-rc1 Greg KH
@ 2017-11-14  5:29 ` Linus Torvalds
  2017-11-14 13:17   ` Greg KH
  2017-11-14 13:23   ` Heikki Krogerus
  0 siblings, 2 replies; 9+ messages in thread
From: Linus Torvalds @ 2017-11-14  5:29 UTC (permalink / raw)
  To: Greg KH; +Cc: Andrew Morton, Linux Kernel Mailing List, USB list

On Mon, Nov 13, 2017 at 8:19 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
>
> Other major thing is the typec code that moved out of staging and into
> the "real" part of the drivers/usb/ tree, which was nice to see happen.

Hmm. So now it asks me about Type-C Port Controller Manager. Fair
enough. I say "N", because I have none. But then it still asks me
about that TI TPS6598x driver...

So I do see the _technical_ logic in there - the "TYPEC" config option
is a hidden internal option, and it's selected by the things that need
it.

But from a user perspective, this configuration model is really strange.

Why is TYPEC_TCPM something you ask the user, but not "do you want
Type-C support"?  And if you single out the PCM side to ask about, why
don't you single out the power delivery side?

Wouldn't it make more sense to at least ask whether I want Type-C
power delivery chips before it then starts asking about individual PD
drivers, the same way you asked about the port controller before you
started asking ab out individual port controller drivers?

Or is it just me who finds this a bit odd?

               Linus

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] USB/PHY driver changes for 4.15-rc1
  2017-11-14  5:29 ` Linus Torvalds
@ 2017-11-14 13:17   ` Greg KH
  2017-11-14 14:48     ` Guenter Roeck
  2017-11-14 13:23   ` Heikki Krogerus
  1 sibling, 1 reply; 9+ messages in thread
From: Greg KH @ 2017-11-14 13:17 UTC (permalink / raw)
  To: Linus Torvalds, Guenter Roeck
  Cc: Andrew Morton, Linux Kernel Mailing List, USB list

On Mon, Nov 13, 2017 at 09:29:36PM -0800, Linus Torvalds wrote:
> On Mon, Nov 13, 2017 at 8:19 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
> >
> > Other major thing is the typec code that moved out of staging and into
> > the "real" part of the drivers/usb/ tree, which was nice to see happen.
> 
> Hmm. So now it asks me about Type-C Port Controller Manager. Fair
> enough. I say "N", because I have none. But then it still asks me
> about that TI TPS6598x driver...
> 
> So I do see the _technical_ logic in there - the "TYPEC" config option
> is a hidden internal option, and it's selected by the things that need
> it.
> 
> But from a user perspective, this configuration model is really strange.
> 
> Why is TYPEC_TCPM something you ask the user, but not "do you want
> Type-C support"?  And if you single out the PCM side to ask about, why
> don't you single out the power delivery side?
> 
> Wouldn't it make more sense to at least ask whether I want Type-C
> power delivery chips before it then starts asking about individual PD
> drivers, the same way you asked about the port controller before you
> started asking ab out individual port controller drivers?
> 
> Or is it just me who finds this a bit odd?

Yes, it is odd, but then again, so is typec :(

I think this is an artifact of the code living in two different
directories for a while (drivers/staging/ and drivers/usb) and now
coming together.

Guenter, can you make up a patch to fix up the Kconfig entries in
drivers/usb/typec/Kconfig to make a bit more sense now that things are
all living in the same place in the tree?

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] USB/PHY driver changes for 4.15-rc1
  2017-11-14  5:29 ` Linus Torvalds
  2017-11-14 13:17   ` Greg KH
@ 2017-11-14 13:23   ` Heikki Krogerus
  2017-11-14 16:25     ` Greg KH
  1 sibling, 1 reply; 9+ messages in thread
From: Heikki Krogerus @ 2017-11-14 13:23 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Greg KH, Andrew Morton, Linux Kernel Mailing List, USB list

[-- Attachment #1: Type: text/plain, Size: 1495 bytes --]

On Mon, Nov 13, 2017 at 09:29:36PM -0800, Linus Torvalds wrote:
> On Mon, Nov 13, 2017 at 8:19 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
> >
> > Other major thing is the typec code that moved out of staging and into
> > the "real" part of the drivers/usb/ tree, which was nice to see happen.
> 
> Hmm. So now it asks me about Type-C Port Controller Manager. Fair
> enough. I say "N", because I have none. But then it still asks me
> about that TI TPS6598x driver...
> 
> So I do see the _technical_ logic in there - the "TYPEC" config option
> is a hidden internal option, and it's selected by the things that need
> it.
> 
> But from a user perspective, this configuration model is really strange.
> 
> Why is TYPEC_TCPM something you ask the user, but not "do you want
> Type-C support"?  And if you single out the PCM side to ask about, why
> don't you single out the power delivery side?
> 
> Wouldn't it make more sense to at least ask whether I want Type-C
> power delivery chips before it then starts asking about individual PD
> drivers, the same way you asked about the port controller before you
> started asking ab out individual port controller drivers?

True. The options were made originally the way they are as the
assumption was that the OS will always handle the USB Type-C and PD
state machines, meaning we would always depend on the Type-C Port
Controller Manager, which of course is not the case any more.

Would the attached patch be sufficient?


Thanks,

-- 
heikki

[-- Attachment #2: 0001-usb-add-user-selectable-option-for-the-whole-USB-Typ.patch --]
[-- Type: text/plain, Size: 5108 bytes --]

>From 3bbd624a67df91c23db996db5f2f931fde77fcc1 Mon Sep 17 00:00:00 2001
From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Date: Tue, 14 Nov 2017 14:45:27 +0300
Subject: [PATCH] usb: add user selectable option for the whole USB Type-C
 Support

It is more clear from user perspective to wrap the whole USB
Type-C support under a single option that the user can
select, then it is to always ask the user for every USB
Type-C and USB Power Delivery driver separately.

Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
---
 drivers/usb/typec/Kconfig      | 54 +++++++++++++++++++++++++++++++++++-------
 drivers/usb/typec/ucsi/Kconfig |  1 -
 2 files changed, 46 insertions(+), 9 deletions(-)

diff --git a/drivers/usb/typec/Kconfig b/drivers/usb/typec/Kconfig
index 465d7da849c3..bcb2744c5977 100644
--- a/drivers/usb/typec/Kconfig
+++ b/drivers/usb/typec/Kconfig
@@ -1,13 +1,53 @@
 
-menu "USB Power Delivery and Type-C drivers"
+menuconfig TYPEC
+	tristate "USB Type-C Support"
+	help
+	  USB Type-C Specification defines a cable and connector for USB where
+	  only one type of plug is supported on both ends, i.e. there will not
+	  be Type-A plug on one end of the cable and Type-B plug on the other.
+	  Determination of the host-to-device relationship happens through a
+	  specific Configuration Channel (CC) which goes through the USB Type-C
+	  cable. The Configuration Channel may also be used to detect optional
+	  Accessory Modes - Analog Audio and Debug - and if USB Power Delivery
+	  is supported, the Alternate Modes, where the connector is used for
+	  something else then USB communication.
+
+	  USB Power Delivery Specification defines a protocol that can be used
+	  to negotiate the voltage and current levels with the connected
+	  partners. USB Power Delivery allows higher voltages then the normal
+	  5V, up to 20V, and current up to 5A over the cable. The USB Power
+	  Delivery protocol is also used to negotiate the optional Alternate
+	  Modes when they are supported. USB Power Delivery does not depend on
+	  USB Type-C connector, however it is mostly used together with USB
+	  Type-C connectors.
+
+	  USB Type-C and USB Power Delivery Specifications define a set of state
+	  machines that need to be implemented in either software or firmware.
+	  Simple USB Type-C PHYs, for example USB Type-C Port Controller
+	  Interface Specification compliant "Port Controllers" need the state
+	  machines to be handled in the OS, but stand-alone USB Type-C and Power
+	  Delivery controllers handle the state machines inside their firmware.
+	  The USB Type-C and Power Delivery controllers usually function
+	  autonomously, and do not necessarily require drivers.
+
+	  Enable this configurations option if you have USB Type-C connectors on
+	  your system and 1) you know your USB Type-C hardware requires OS
+	  control (a driver) to function, or 2) if you need to be able to read
+	  the status of the USB Type-C ports in your system, or 3) if you need
+	  to be able to swap the power role (decide are you supplying or
+	  consuming power over the cable) or data role (host or device) when
+	  both roles are supported.
+
+	  For more information, see the kernel documentation for USB Type-C
+	  Connector Class API (Documentation/driver-api/usb/typec.rst)
+	  <https://www.kernel.org/doc/html/latest/driver-api/usb/typec.html>
+	  and ABI (Documentation/ABI/testing/sysfs-class-typec).
 
-config TYPEC
-	tristate
+if TYPEC
 
 config TYPEC_TCPM
 	tristate "USB Type-C Port Controller Manager"
 	depends on USB
-	select TYPEC
 	help
 	  The Type-C Port Controller Manager provides a USB PD and USB Type-C
 	  state machine for use with Type-C Port Controllers.
@@ -22,7 +62,6 @@ config TYPEC_WCOVE
 	depends on INTEL_SOC_PMIC
 	depends on INTEL_PMC_IPC
 	depends on BXT_WC_PMIC_OPREGION
-	select TYPEC
 	help
 	  This driver adds support for USB Type-C detection on Intel Broxton
 	  platforms that have Intel Whiskey Cove PMIC. The driver can detect the
@@ -31,14 +70,13 @@ config TYPEC_WCOVE
 	  To compile this driver as module, choose M here: the module will be
 	  called typec_wcove
 
-endif
+endif # TYPEC_TCPM
 
 source "drivers/usb/typec/ucsi/Kconfig"
 
 config TYPEC_TPS6598X
 	tristate "TI TPS6598x USB Power Delivery controller driver"
 	depends on I2C
-	select TYPEC
 	help
 	  Say Y or M here if your system has TI TPS65982 or TPS65983 USB Power
 	  Delivery controller.
@@ -46,4 +84,4 @@ config TYPEC_TPS6598X
 	  If you choose to build this driver as a dynamically linked module, the
 	  module will be called tps6598x.ko.
 
-endmenu
+endif # TYPEC
diff --git a/drivers/usb/typec/ucsi/Kconfig b/drivers/usb/typec/ucsi/Kconfig
index d0c31cee4720..e36d6c73c4a4 100644
--- a/drivers/usb/typec/ucsi/Kconfig
+++ b/drivers/usb/typec/ucsi/Kconfig
@@ -1,7 +1,6 @@
 config TYPEC_UCSI
 	tristate "USB Type-C Connector System Software Interface driver"
 	depends on !CPU_BIG_ENDIAN
-	select TYPEC
 	help
 	  USB Type-C Connector System Software Interface (UCSI) is a
 	  specification for an interface that allows the operating system to
-- 
2.15.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] USB/PHY driver changes for 4.15-rc1
  2017-11-14 13:17   ` Greg KH
@ 2017-11-14 14:48     ` Guenter Roeck
  2017-11-14 15:02       ` Heikki Krogerus
  0 siblings, 1 reply; 9+ messages in thread
From: Guenter Roeck @ 2017-11-14 14:48 UTC (permalink / raw)
  To: Greg KH, Linus Torvalds
  Cc: Andrew Morton, Linux Kernel Mailing List, USB list

On 11/14/2017 05:17 AM, Greg KH wrote:
> On Mon, Nov 13, 2017 at 09:29:36PM -0800, Linus Torvalds wrote:
>> On Mon, Nov 13, 2017 at 8:19 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
>>>
>>> Other major thing is the typec code that moved out of staging and into
>>> the "real" part of the drivers/usb/ tree, which was nice to see happen.
>>
>> Hmm. So now it asks me about Type-C Port Controller Manager. Fair
>> enough. I say "N", because I have none. But then it still asks me
>> about that TI TPS6598x driver...
>>
>> So I do see the _technical_ logic in there - the "TYPEC" config option
>> is a hidden internal option, and it's selected by the things that need
>> it.
>>
>> But from a user perspective, this configuration model is really strange.
>>
>> Why is TYPEC_TCPM something you ask the user, but not "do you want
>> Type-C support"?  And if you single out the PCM side to ask about, why
>> don't you single out the power delivery side?
>>
>> Wouldn't it make more sense to at least ask whether I want Type-C
>> power delivery chips before it then starts asking about individual PD
>> drivers, the same way you asked about the port controller before you
>> started asking ab out individual port controller drivers?
>>
>> Or is it just me who finds this a bit odd?
> 
> Yes, it is odd, but then again, so is typec :(
> 
> I think this is an artifact of the code living in two different
> directories for a while (drivers/staging/ and drivers/usb) and now
> coming together.
> 
> Guenter, can you make up a patch to fix up the Kconfig entries in
> drivers/usb/typec/Kconfig to make a bit more sense now that things are
> all living in the same place in the tree?
> 

I'll give it a try. Wonder if we should make TYPEC_TCPM implicit (selected)
instead of having a dependency on it. After all, its use depends on the
selected chip. Any thoughts ?

Guenter

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] USB/PHY driver changes for 4.15-rc1
  2017-11-14 14:48     ` Guenter Roeck
@ 2017-11-14 15:02       ` Heikki Krogerus
  2017-11-14 16:10         ` Guenter Roeck
  0 siblings, 1 reply; 9+ messages in thread
From: Heikki Krogerus @ 2017-11-14 15:02 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Greg KH, Linus Torvalds, Andrew Morton,
	Linux Kernel Mailing List, USB list

Hi Guenter,

On Tue, Nov 14, 2017 at 06:48:21AM -0800, Guenter Roeck wrote:
> On 11/14/2017 05:17 AM, Greg KH wrote:
> > On Mon, Nov 13, 2017 at 09:29:36PM -0800, Linus Torvalds wrote:
> > > On Mon, Nov 13, 2017 at 8:19 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
> > > > 
> > > > Other major thing is the typec code that moved out of staging and into
> > > > the "real" part of the drivers/usb/ tree, which was nice to see happen.
> > > 
> > > Hmm. So now it asks me about Type-C Port Controller Manager. Fair
> > > enough. I say "N", because I have none. But then it still asks me
> > > about that TI TPS6598x driver...
> > > 
> > > So I do see the _technical_ logic in there - the "TYPEC" config option
> > > is a hidden internal option, and it's selected by the things that need
> > > it.
> > > 
> > > But from a user perspective, this configuration model is really strange.
> > > 
> > > Why is TYPEC_TCPM something you ask the user, but not "do you want
> > > Type-C support"?  And if you single out the PCM side to ask about, why
> > > don't you single out the power delivery side?
> > > 
> > > Wouldn't it make more sense to at least ask whether I want Type-C
> > > power delivery chips before it then starts asking about individual PD
> > > drivers, the same way you asked about the port controller before you
> > > started asking ab out individual port controller drivers?
> > > 
> > > Or is it just me who finds this a bit odd?
> > 
> > Yes, it is odd, but then again, so is typec :(
> > 
> > I think this is an artifact of the code living in two different
> > directories for a while (drivers/staging/ and drivers/usb) and now
> > coming together.
> > 
> > Guenter, can you make up a patch to fix up the Kconfig entries in
> > drivers/usb/typec/Kconfig to make a bit more sense now that things are
> > all living in the same place in the tree?
> > 
> 
> I'll give it a try. Wonder if we should make TYPEC_TCPM implicit (selected)
> instead of having a dependency on it. After all, its use depends on the
> selected chip. Any thoughts ?

Sorry, I had not noticed Greg's answer.

My proposal was kinda the opposite. To make the TYPEC user selectable:
https://lkml.org/lkml/2017/11/14/281

But making TYPEC_TCPM implicit works for me too. It just means the
user is asked about every Type-C and Power Delivery driver always.


Thanks,

-- 
heikki

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] USB/PHY driver changes for 4.15-rc1
  2017-11-14 15:02       ` Heikki Krogerus
@ 2017-11-14 16:10         ` Guenter Roeck
  2017-11-14 16:25           ` Greg KH
  0 siblings, 1 reply; 9+ messages in thread
From: Guenter Roeck @ 2017-11-14 16:10 UTC (permalink / raw)
  To: Heikki Krogerus
  Cc: Greg KH, Linus Torvalds, Andrew Morton,
	Linux Kernel Mailing List, USB list

On Tue, Nov 14, 2017 at 05:02:53PM +0200, Heikki Krogerus wrote:
> Hi Guenter,
> 
> On Tue, Nov 14, 2017 at 06:48:21AM -0800, Guenter Roeck wrote:
> > On 11/14/2017 05:17 AM, Greg KH wrote:
> > > On Mon, Nov 13, 2017 at 09:29:36PM -0800, Linus Torvalds wrote:
> > > > On Mon, Nov 13, 2017 at 8:19 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
> > > > > 
> > > > > Other major thing is the typec code that moved out of staging and into
> > > > > the "real" part of the drivers/usb/ tree, which was nice to see happen.
> > > > 
> > > > Hmm. So now it asks me about Type-C Port Controller Manager. Fair
> > > > enough. I say "N", because I have none. But then it still asks me
> > > > about that TI TPS6598x driver...
> > > > 
> > > > So I do see the _technical_ logic in there - the "TYPEC" config option
> > > > is a hidden internal option, and it's selected by the things that need
> > > > it.
> > > > 
> > > > But from a user perspective, this configuration model is really strange.
> > > > 
> > > > Why is TYPEC_TCPM something you ask the user, but not "do you want
> > > > Type-C support"?  And if you single out the PCM side to ask about, why
> > > > don't you single out the power delivery side?
> > > > 
> > > > Wouldn't it make more sense to at least ask whether I want Type-C
> > > > power delivery chips before it then starts asking about individual PD
> > > > drivers, the same way you asked about the port controller before you
> > > > started asking ab out individual port controller drivers?
> > > > 
> > > > Or is it just me who finds this a bit odd?
> > > 
> > > Yes, it is odd, but then again, so is typec :(
> > > 
> > > I think this is an artifact of the code living in two different
> > > directories for a while (drivers/staging/ and drivers/usb) and now
> > > coming together.
> > > 
> > > Guenter, can you make up a patch to fix up the Kconfig entries in
> > > drivers/usb/typec/Kconfig to make a bit more sense now that things are
> > > all living in the same place in the tree?
> > > 
> > 
> > I'll give it a try. Wonder if we should make TYPEC_TCPM implicit (selected)
> > instead of having a dependency on it. After all, its use depends on the
> > selected chip. Any thoughts ?
> 
> Sorry, I had not noticed Greg's answer.
> 
> My proposal was kinda the opposite. To make the TYPEC user selectable:
> https://lkml.org/lkml/2017/11/14/281
> 
> But making TYPEC_TCPM implicit works for me too. It just means the
> user is asked about every Type-C and Power Delivery driver always.
> 
I had planned to introduce a configurable TYPEC_PD for "Type-C Power
Delivery support". Just not sure if UCSI would fit into that. But we
can also make TYPEC configurable; I am not religious about that.
Lets go with your patch, since you sent it out already and spent a
lot of time writing up a description.

Guenter

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] USB/PHY driver changes for 4.15-rc1
  2017-11-14 13:23   ` Heikki Krogerus
@ 2017-11-14 16:25     ` Greg KH
  0 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2017-11-14 16:25 UTC (permalink / raw)
  To: Heikki Krogerus
  Cc: Linus Torvalds, Andrew Morton, Linux Kernel Mailing List, USB list

On Tue, Nov 14, 2017 at 03:23:33PM +0200, Heikki Krogerus wrote:
> On Mon, Nov 13, 2017 at 09:29:36PM -0800, Linus Torvalds wrote:
> > On Mon, Nov 13, 2017 at 8:19 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
> > >
> > > Other major thing is the typec code that moved out of staging and into
> > > the "real" part of the drivers/usb/ tree, which was nice to see happen.
> > 
> > Hmm. So now it asks me about Type-C Port Controller Manager. Fair
> > enough. I say "N", because I have none. But then it still asks me
> > about that TI TPS6598x driver...
> > 
> > So I do see the _technical_ logic in there - the "TYPEC" config option
> > is a hidden internal option, and it's selected by the things that need
> > it.
> > 
> > But from a user perspective, this configuration model is really strange.
> > 
> > Why is TYPEC_TCPM something you ask the user, but not "do you want
> > Type-C support"?  And if you single out the PCM side to ask about, why
> > don't you single out the power delivery side?
> > 
> > Wouldn't it make more sense to at least ask whether I want Type-C
> > power delivery chips before it then starts asking about individual PD
> > drivers, the same way you asked about the port controller before you
> > started asking ab out individual port controller drivers?
> 
> True. The options were made originally the way they are as the
> assumption was that the OS will always handle the USB Type-C and PD
> state machines, meaning we would always depend on the Type-C Port
> Controller Manager, which of course is not the case any more.
> 
> Would the attached patch be sufficient?
> 
> 
> Thanks,
> 
> -- 
> heikki

> >From 3bbd624a67df91c23db996db5f2f931fde77fcc1 Mon Sep 17 00:00:00 2001
> From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> Date: Tue, 14 Nov 2017 14:45:27 +0300
> Subject: [PATCH] usb: add user selectable option for the whole USB Type-C
>  Support
> 
> It is more clear from user perspective to wrap the whole USB
> Type-C support under a single option that the user can
> select, then it is to always ask the user for every USB
> Type-C and USB Power Delivery driver separately.
> 
> Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
>  drivers/usb/typec/Kconfig      | 54 +++++++++++++++++++++++++++++++++++-------
>  drivers/usb/typec/ucsi/Kconfig |  1 -
>  2 files changed, 46 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/usb/typec/Kconfig b/drivers/usb/typec/Kconfig
> index 465d7da849c3..bcb2744c5977 100644
> --- a/drivers/usb/typec/Kconfig
> +++ b/drivers/usb/typec/Kconfig
> @@ -1,13 +1,53 @@
>  
> -menu "USB Power Delivery and Type-C drivers"
> +menuconfig TYPEC
> +	tristate "USB Type-C Support"
> +	help
> +	  USB Type-C Specification defines a cable and connector for USB where
> +	  only one type of plug is supported on both ends, i.e. there will not
> +	  be Type-A plug on one end of the cable and Type-B plug on the other.
> +	  Determination of the host-to-device relationship happens through a
> +	  specific Configuration Channel (CC) which goes through the USB Type-C
> +	  cable. The Configuration Channel may also be used to detect optional
> +	  Accessory Modes - Analog Audio and Debug - and if USB Power Delivery
> +	  is supported, the Alternate Modes, where the connector is used for
> +	  something else then USB communication.
> +
> +	  USB Power Delivery Specification defines a protocol that can be used
> +	  to negotiate the voltage and current levels with the connected
> +	  partners. USB Power Delivery allows higher voltages then the normal
> +	  5V, up to 20V, and current up to 5A over the cable. The USB Power
> +	  Delivery protocol is also used to negotiate the optional Alternate
> +	  Modes when they are supported. USB Power Delivery does not depend on
> +	  USB Type-C connector, however it is mostly used together with USB
> +	  Type-C connectors.
> +
> +	  USB Type-C and USB Power Delivery Specifications define a set of state
> +	  machines that need to be implemented in either software or firmware.
> +	  Simple USB Type-C PHYs, for example USB Type-C Port Controller
> +	  Interface Specification compliant "Port Controllers" need the state
> +	  machines to be handled in the OS, but stand-alone USB Type-C and Power
> +	  Delivery controllers handle the state machines inside their firmware.
> +	  The USB Type-C and Power Delivery controllers usually function
> +	  autonomously, and do not necessarily require drivers.
> +
> +	  Enable this configurations option if you have USB Type-C connectors on
> +	  your system and 1) you know your USB Type-C hardware requires OS
> +	  control (a driver) to function, or 2) if you need to be able to read
> +	  the status of the USB Type-C ports in your system, or 3) if you need
> +	  to be able to swap the power role (decide are you supplying or
> +	  consuming power over the cable) or data role (host or device) when
> +	  both roles are supported.
> +
> +	  For more information, see the kernel documentation for USB Type-C
> +	  Connector Class API (Documentation/driver-api/usb/typec.rst)
> +	  <https://www.kernel.org/doc/html/latest/driver-api/usb/typec.html>
> +	  and ABI (Documentation/ABI/testing/sysfs-class-typec).
>  
> -config TYPEC
> -	tristate
> +if TYPEC
>  
>  config TYPEC_TCPM
>  	tristate "USB Type-C Port Controller Manager"
>  	depends on USB
> -	select TYPEC
>  	help
>  	  The Type-C Port Controller Manager provides a USB PD and USB Type-C
>  	  state machine for use with Type-C Port Controllers.
> @@ -22,7 +62,6 @@ config TYPEC_WCOVE
>  	depends on INTEL_SOC_PMIC
>  	depends on INTEL_PMC_IPC
>  	depends on BXT_WC_PMIC_OPREGION
> -	select TYPEC
>  	help
>  	  This driver adds support for USB Type-C detection on Intel Broxton
>  	  platforms that have Intel Whiskey Cove PMIC. The driver can detect the
> @@ -31,14 +70,13 @@ config TYPEC_WCOVE
>  	  To compile this driver as module, choose M here: the module will be
>  	  called typec_wcove
>  
> -endif
> +endif # TYPEC_TCPM
>  
>  source "drivers/usb/typec/ucsi/Kconfig"
>  
>  config TYPEC_TPS6598X
>  	tristate "TI TPS6598x USB Power Delivery controller driver"
>  	depends on I2C
> -	select TYPEC
>  	help
>  	  Say Y or M here if your system has TI TPS65982 or TPS65983 USB Power
>  	  Delivery controller.
> @@ -46,4 +84,4 @@ config TYPEC_TPS6598X
>  	  If you choose to build this driver as a dynamically linked module, the
>  	  module will be called tps6598x.ko.
>  
> -endmenu
> +endif # TYPEC
> diff --git a/drivers/usb/typec/ucsi/Kconfig b/drivers/usb/typec/ucsi/Kconfig
> index d0c31cee4720..e36d6c73c4a4 100644
> --- a/drivers/usb/typec/ucsi/Kconfig
> +++ b/drivers/usb/typec/ucsi/Kconfig
> @@ -1,7 +1,6 @@
>  config TYPEC_UCSI
>  	tristate "USB Type-C Connector System Software Interface driver"
>  	depends on !CPU_BIG_ENDIAN
> -	select TYPEC
>  	help
>  	  USB Type-C Connector System Software Interface (UCSI) is a
>  	  specification for an interface that allows the operating system to

This looks great to me, I'll queue it up for later this week with a few
other USB fixes.

thanks for doing this,

greg k-h

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [GIT PULL] USB/PHY driver changes for 4.15-rc1
  2017-11-14 16:10         ` Guenter Roeck
@ 2017-11-14 16:25           ` Greg KH
  0 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2017-11-14 16:25 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Heikki Krogerus, Linus Torvalds, Andrew Morton,
	Linux Kernel Mailing List, USB list

On Tue, Nov 14, 2017 at 08:10:10AM -0800, Guenter Roeck wrote:
> On Tue, Nov 14, 2017 at 05:02:53PM +0200, Heikki Krogerus wrote:
> > Hi Guenter,
> > 
> > On Tue, Nov 14, 2017 at 06:48:21AM -0800, Guenter Roeck wrote:
> > > On 11/14/2017 05:17 AM, Greg KH wrote:
> > > > On Mon, Nov 13, 2017 at 09:29:36PM -0800, Linus Torvalds wrote:
> > > > > On Mon, Nov 13, 2017 at 8:19 AM, Greg KH <gregkh@linuxfoundation.org> wrote:
> > > > > > 
> > > > > > Other major thing is the typec code that moved out of staging and into
> > > > > > the "real" part of the drivers/usb/ tree, which was nice to see happen.
> > > > > 
> > > > > Hmm. So now it asks me about Type-C Port Controller Manager. Fair
> > > > > enough. I say "N", because I have none. But then it still asks me
> > > > > about that TI TPS6598x driver...
> > > > > 
> > > > > So I do see the _technical_ logic in there - the "TYPEC" config option
> > > > > is a hidden internal option, and it's selected by the things that need
> > > > > it.
> > > > > 
> > > > > But from a user perspective, this configuration model is really strange.
> > > > > 
> > > > > Why is TYPEC_TCPM something you ask the user, but not "do you want
> > > > > Type-C support"?  And if you single out the PCM side to ask about, why
> > > > > don't you single out the power delivery side?
> > > > > 
> > > > > Wouldn't it make more sense to at least ask whether I want Type-C
> > > > > power delivery chips before it then starts asking about individual PD
> > > > > drivers, the same way you asked about the port controller before you
> > > > > started asking ab out individual port controller drivers?
> > > > > 
> > > > > Or is it just me who finds this a bit odd?
> > > > 
> > > > Yes, it is odd, but then again, so is typec :(
> > > > 
> > > > I think this is an artifact of the code living in two different
> > > > directories for a while (drivers/staging/ and drivers/usb) and now
> > > > coming together.
> > > > 
> > > > Guenter, can you make up a patch to fix up the Kconfig entries in
> > > > drivers/usb/typec/Kconfig to make a bit more sense now that things are
> > > > all living in the same place in the tree?
> > > > 
> > > 
> > > I'll give it a try. Wonder if we should make TYPEC_TCPM implicit (selected)
> > > instead of having a dependency on it. After all, its use depends on the
> > > selected chip. Any thoughts ?
> > 
> > Sorry, I had not noticed Greg's answer.
> > 
> > My proposal was kinda the opposite. To make the TYPEC user selectable:
> > https://lkml.org/lkml/2017/11/14/281
> > 
> > But making TYPEC_TCPM implicit works for me too. It just means the
> > user is asked about every Type-C and Power Delivery driver always.
> > 
> I had planned to introduce a configurable TYPEC_PD for "Type-C Power
> Delivery support". Just not sure if UCSI would fit into that. But we
> can also make TYPEC configurable; I am not religious about that.
> Lets go with your patch, since you sent it out already and spent a
> lot of time writing up a description.

Looks good to me as well,

greg k-h

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-11-14 16:25 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-13 16:19 [GIT PULL] USB/PHY driver changes for 4.15-rc1 Greg KH
2017-11-14  5:29 ` Linus Torvalds
2017-11-14 13:17   ` Greg KH
2017-11-14 14:48     ` Guenter Roeck
2017-11-14 15:02       ` Heikki Krogerus
2017-11-14 16:10         ` Guenter Roeck
2017-11-14 16:25           ` Greg KH
2017-11-14 13:23   ` Heikki Krogerus
2017-11-14 16:25     ` Greg KH

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.