03 Sep, 2019

1 commit

  • Felipe writes:

    USB: Changes for v5.4 merge window

    With only 45 non-merge commits, we have a small merge window from the
    Gadget perspective.

    The biggest change here is the addition of the Cadence USB3 DRD
    Driver. All other changes are small, non-critical fixes or smaller new
    features like the improvement to BESL handling in dwc3.

    Signed-off-by: Felipe Balbi

    * tag 'usb-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb: (45 commits)
    usb: gadget: net2280: Add workaround for AB chip Errata 11
    usb: gadget: net2280: Move all "ll" registers in one structure
    usb: dwc3: gadget: Workaround Mirosoft's BESL check
    usb:cdns3 Fix for stuck packets in on-chip OUT buffer.
    usb: cdns3: Add Cadence USB3 DRD Driver
    usb: common: Simplify usb_decode_get_set_descriptor function.
    usb: common: Patch simplify usb_decode_set_clear_feature function.
    usb: common: Separated decoding functions from dwc3 driver.
    dt-bindings: add binding for USBSS-DRD controller.
    usb: gadget: composite: Set recommended BESL values
    usb: dwc3: gadget: Set BESL config parameter
    usb: dwc3: Separate field holding multiple properties
    usb: gadget: Export recommended BESL values
    usb: phy: phy-fsl-usb: Make structure fsl_otg_initdata constant
    usb: udc: lpc32xx: silence fall-through warning
    usb: dwc3: meson-g12a: fix suspend resume regulator unbalanced disables
    usb: udc: lpc32xx: remove set but not used 3 variables
    usb: gadget: udc: core: Fix segfault if udc_bind_to_driver() for pending driver fails
    usb: dwc3: st: Add of_dev_put() in probe function
    usb: dwc3: st: Add of_node_put() before return in probe function
    ...

    Greg Kroah-Hartman
     

29 Aug, 2019

1 commit

  • This patch introduce new Cadence USBSS DRD driver to Linux kernel.

    The Cadence USBSS DRD Controller is a highly configurable IP Core which
    can be instantiated as Dual-Role Device (DRD), Peripheral Only and
    Host Only (XHCI)configurations.

    The current driver has been validated with FPGA platform. We have
    support for PCIe bus, which is used on FPGA prototyping.

    The host side of USBSS-DRD controller is compliant with XHCI
    specification, so it works with standard XHCI Linux driver.

    Signed-off-by: Pawel Laszczak
    Signed-off-by: Felipe Balbi

    Pawel Laszczak
     

08 Aug, 2019

1 commit


04 Jul, 2019

1 commit


03 Jul, 2019

1 commit

  • This patch introduce new Cadence USBSS DRD driver to Linux kernel.

    The Cadence USBSS DRD Controller is a highly configurable IP Core which
    can be instantiated as Dual-Role Device (DRD), Peripheral Only and
    Host Only (XHCI)configurations.

    The current driver has been validated with FPGA platform. We have
    support for PCIe bus, which is used on FPGA prototyping.

    The host side of USBSS-DRD controller is compliant with XHCI
    specification, so it works with standard XHCI Linux driver.

    Signed-off-by: Pawel Laszczak
    Signed-off-by: Felipe Balbi

    Pawel Laszczak
     

06 Jun, 2019

1 commit

  • The USB gadget subsystem wants to use the USB debugfs root directory, so
    move it to the common "core" USB code so that it is properly initialized
    and removed as needed.

    In order to properly do this, we need to load the common code before the
    usb core code, when everything is linked into the kernel, so reorder the
    link order of the code.

    Also as the usb common code has the possibility of the led trigger logic
    to be merged into it, handle the build option properly by only having
    one module init/exit function and have the common code initialize the
    led trigger if needed.

    Reported-by: Chunfeng Yun
    Cc: Felipe Balbi
    Tested-by: Chunfeng Yun
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

22 Mar, 2018

1 commit

  • Various Intel SoCs (Cherry Trail, Broxton and others) have an internal USB
    role switch for swiching the OTG USB data lines between the xHCI host
    controller and the dwc3 gadget controller.

    Note on some Cherry Trail systems there is ACPI/AML code listening to
    edge interrupts on the id-pin (through an _AIE ACPI method) and switching
    the role between ROLE_HOST and ROLE_NONE based on the id-pin. Note it does
    not set the role to ROLE_DEVICE, because device-mode is usually not used
    under Windows.

    The presence of AML code which modifies the cfg0 reg (on some systems)
    means that our read/write/modify of cfg0 may race with the AML code
    doing the same to avoid this we take the global ACPI lock while doing
    the read/write/modify.

    Signed-off-by: Hans de Goede
    Reviewed-by: Andy Shevchenko
    Signed-off-by: Heikki Krogerus
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

05 May, 2017

1 commit

  • Pull USB updates from Greg KH:
    "Here is the big USB patchset for 4.12-rc1.

    Lots of good stuff here, after many many many attempts, the kernel
    finally has a working typeC interface, many thanks to Heikki and
    Guenter and others who have taken the time to get this merged. It
    wasn't an easy path for them at all.

    There's also a staging driver that uses this new api, which is why
    it's coming in through this tree.

    Along with that, there's the usual huge number of changes for gadget
    drivers, xhci, and other stuff. Johan also finally refactored pretty
    much every driver that was looking at USB endpoints to do it in a
    common way, which will help prevent any "badly-formed" devices from
    causing problems in drivers. That too wasn't a simple task.

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

    * tag 'usb-4.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (263 commits)
    staging: typec: Fairchild FUSB302 Type-c chip driver
    staging: typec: Type-C Port Controller Interface driver (tcpci)
    staging: typec: USB Type-C Port Manager (tcpm)
    usb: host: xhci: remove #ifdef around PM functions
    usb: musb: don't mark of_dev_auxdata as initdata
    usb: misc: legousbtower: Fix buffers on stack
    USB: Revert "cdc-wdm: fix "out-of-sync" due to missing notifications"
    usb: Make sure usb/phy/of gets built-in
    USB: storage: e-mail update in drivers/usb/storage/unusual_devs.h
    usb: host: xhci: print correct command ring address
    usb: host: xhci: delete sp_dma_buffers for scratchpad
    usb: host: xhci: using correct specification chapter reference for DCBAAP
    xhci: switch to pci_alloc_irq_vectors
    usb: host: xhci-plat: set resume_quirk() for R-Car controllers
    usb: host: xhci-plat: add resume_quirk()
    usb: host: xhci-plat: enable clk in resume timing
    usb: host: plat: Enable xHCI plat runtime PM
    USB: serial: ftdi_sio: add device ID for Microsemi/Arrow SF2PLUS Dev Kit
    USB: serial: constify static arrays
    usb: fix some references for /proc/bus/usb
    ...

    Linus Torvalds
     

23 Mar, 2017

1 commit

  • The purpose of USB Type-C connector class is to provide
    unified interface for the user space to get the status and
    basic information about USB Type-C connectors on a system,
    control over data role swapping, and when the port supports
    USB Power Delivery, also control over power role swapping
    and Alternate Modes.

    Signed-off-by: Heikki Krogerus
    Reviewed-by: Mika Westerberg
    Reviewed-and-Tested-by: Felipe Balbi
    Tested-by: Guenter Roeck
    Signed-off-by: Greg Kroah-Hartman

    Heikki Krogerus
     

21 Mar, 2017

1 commit

  • XHCI debug capability (DbC) is an optional but standalone
    functionality provided by an xHCI host controller. Software
    learns this capability by walking through the extended
    capability list of the host. XHCI specification describes
    DbC in section 7.6.

    This patch introduces the code to probe and initialize the
    debug capability hardware during early boot. With hardware
    initialized, the debug target (system on which this code is
    running) will present a debug device through the debug port
    (normally the first USB3 port). The debug device is fully
    compliant with the USB framework and provides the equivalent
    of a very high performance (USB3) full-duplex serial link
    between the debug host and target. The DbC functionality is
    independent of the xHCI host. There isn't any precondition
    from the xHCI host side for the DbC to work.

    One use for this feature is kernel debugging, for example
    when your machine crashes very early before the regular
    console code is initialized. Other uses include simpler,
    lockless logging instead of a full-blown printk console
    driver and klogd.

    Signed-off-by: Lu Baolu
    Acked-by: Thomas Gleixner
    Cc: Greg Kroah-Hartman
    Cc: Linus Torvalds
    Cc: Mathias Nyman
    Cc: Peter Zijlstra
    Cc: linux-usb@vger.kernel.org
    Link: http://lkml.kernel.org/r/1490083293-3792-3-git-send-email-baolu.lu@linux.intel.com
    [ Small fix to the Kconfig help text. ]
    Signed-off-by: Ingo Molnar

    Lu Baolu
     

17 Mar, 2017

1 commit


27 Oct, 2016

1 commit

  • This patch adds support for the MediaTek USB3 controller
    integrated into MT8173. It currently supports High-Speed
    Peripheral Only mode.

    Super-Speed Peripheral, Dual-Role Device and Host Only (xHCI)
    modes will be added in the next patchs.

    Signed-off-by: Chunfeng Yun
    Signed-off-by: Greg Kroah-Hartman

    Chunfeng Yun
     

04 Mar, 2016

1 commit

  • The USB_FSL_MPH_DR_OF symbol is used to ensure the code that interprets
    the DR device node is built whenever one of the two drivers (EHCI or
    UDC) for the platform is enabled. However, if CONFIG_USB is disabled
    and we only support gadget mode, this causes a Kconfig warning:

    warning: (USB_FSL_USB2) selects USB_FSL_MPH_DR_OF which has unmet direct dependencies (USB_SUPPORT && USB)

    We can avoid this warning by simply no longer using the symbol,
    and making sure we enter the drivers/usb/host/ directory when
    the UDC driver is enabled that needs the file, and then we use
    Makefile syntax to ensure the file is built-in if needed.

    There is currently a dependency on CONFIG_OF, but this is redundant,
    as we already know that this is set unconditionally for the platforms
    that use this driver.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Felipe Balbi

    Arnd Bergmann
     

17 Oct, 2015

1 commit

  • fusbh200 and fotg210 are very similar. The initial idea was to consolidate
    both drivers but I'm afraid fusbh200 is not being used.

    This patch remove the fusbh200 source code, update Kconfig and two
    Makefiles.

    Signed-off-by: Peter Senna Tschudin
    Acked-by: John Chiang
    Signed-off-by: Greg Kroah-Hartman

    Peter Senna Tschudin
     

19 Mar, 2015

1 commit

  • USB PHY works proper is the base for the coming USB controller operation.
    With this patch, it can avoid the controller drivers which are linked
    earlier than USB PHY always being probed deferral.
    Look at drivers/Makefile, it links phy first with the similar method.

    Signed-off-by: Zhangfei Gao
    Acked-by: Peter Chen
    Signed-off-by: Greg Kroah-Hartman

    Zhangfei Gao
     

27 Jan, 2015

1 commit


26 Aug, 2014

1 commit


28 May, 2014

2 commits


14 Jan, 2014

1 commit

  • The DWC2 driver should now be in good enough shape to move out of
    staging. I have stress tested it overnight on RPI running mass
    storage and Ethernet transfers in parallel, and for several days
    on our proprietary PCI-based platform.

    Signed-off-by: Paul Zimmerman
    Cc: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Paul Zimmerman
     

14 Aug, 2013

1 commit

  • Felipe writes:

    usb: patches for v3.12 merge window

    All patches here have been pending on linux-usb
    and sitting in linux-next for a while now.

    The biggest things in this tag are:

    DWC3 learned proper usage of threaded IRQ
    handlers and now we spend very little time
    in hardirq context.

    MUSB now has proper support for BeagleBone and
    Beaglebone Black.

    Tegra's USB support also got quite a bit of love
    and is learning to use PHY layer and generic DT
    attributes.

    Other than that, the usual pack of cleanups and
    non-critical fixes follow.

    Signed-of-by: Felipe Balbi

    Conflicts:
    drivers/usb/gadget/udc-core.c
    drivers/usb/host/ehci-tegra.c
    drivers/usb/musb/omap2430.c
    drivers/usb/musb/tusb6010.c

    Greg Kroah-Hartman
     

30 Jul, 2013

1 commit

  • FOTG210 is an OTG controller which can be configured as an
    USB2.0 host. FOTG210 host is an ehci-like controller with
    some differences. First, register layout of FOTG210 is
    incompatible with EHCI. Furthermore, FOTG210 is lack of
    siTDs which means iTDs are used for both HS and FS ISO
    transfer.

    Signed-off-by: Feng-Hsin Chiang
    Signed-off-by: Greg Kroah-Hartman

    Feng-Hsin Chiang
     

29 Jul, 2013

1 commit

  • Convert PHY Drivers from menuconfig to menu so that the PHY drivers
    can be explicitely selected by the controller drivers.

    USB_PHY is no longer a user visible option. It is upto to the PHY
    drivers to select it if needed. This patch does so for the existing
    PHY drivers that use the USB_PHY library.

    Doing so moves the USB_PHY and PHY driver selection problem from the
    end user to the PHY and controller driver developer.

    e.g.

    Earlier, a controller driver (e.g. EHCI_OMAP) that needs to select
    a PHY driver (e.g. NOP_PHY) couldn't do so because the PHY driver
    depended on USB_PHY. Making the controller driver depend on USB_PHY
    has a negative effect i.e. it becomes invisible to the user till
    USB_PHY is enabled. Most end users will not familiar with this.

    With this patch, the end user just needs to select the controller driver
    needed for his/her platform without worrying about which PHY driver to
    select.

    Also update USB_EHCI_MSM, USB_LPC32XX and USB_OMAP to not depend
    on USB_PHY any more. They can safely select the necessary PHY drivers.

    [ balbi@ti.com : refreshed on top of my next branch. Changed bool
    followed by default n into def_bool n ]

    CC: Pavankumar Kondeti
    Acked-by: Roland Stigge
    Signed-off-by: Roger Quadros
    Signed-off-by: Felipe Balbi

    Roger Quadros
     

25 Jul, 2013

2 commits

  • This reverts commit 1dd3d123239179fad5de5dc00a6e0014a1918fde.

    The email address for the developer now bounces, which means they have
    moved on, so remove the driver until someone else from the company steps
    up to maintain it.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • FOTG210 is an OTG controller which can be configured as an
    USB2.0 host. FOTG210 host is an ehci-like controller with
    some differences. First, register layout of FOTG210 is
    incompatible with EHCI. Furthermore, FOTG210 is lack of
    siTDs which means iTDs are used for both HS and FS ISO
    transfer.

    Signed-off-by: Yuan-Hsin Chen
    Signed-off-by: Greg Kroah-Hartman

    Yuan-Hsin Chen
     

18 May, 2013

1 commit

  • FUSBH200-HCD is an USB2.0 hcd for Faraday FUSBH200.
    FUSBH200 is an ehci-like controller with some differences.
    First, register layout of FUSBH200 is incompatible with EHCI.
    Furthermore, FUSBH200 is lack of siTDs which means iTDs
    are used for both HS and FS ISO transfer.

    Signed-off-by: Yuan-Hsin Chen
    Signed-off-by: Greg Kroah-Hartman

    Yuan-Hsin Chen
     

18 Mar, 2013

2 commits


07 Mar, 2013

1 commit

  • drivers/usb/phy/ should be compiled everytime
    we have CONFIG_USB_OTG_UTILS enabled.

    phy/ should've been part of the build process based
    on CONFIG_USB_OTG_UTILS, don't know where I had my head
    when I allowed CONFIG_USB_COMMON there.

    In fact commit c6156328dec52a55f90688cbfad21c83f8711d84
    tried to fix a previous issue but it made things even
    worse.

    The real solution is to compile phy/ based on
    CONFIG_USB_OTG_UTILS which gets selected by all PHY
    drivers.

    I only triggered the error recently after accepting a
    patch which moved a bunch of code from otg/otg.c to
    phy/phy.c and running 100 randconfig cycles.

    Signed-off-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Felipe Balbi
     

27 Jun, 2012

1 commit


12 May, 2012

1 commit

  • Since chipidea is a dual role controller, it makes sense to move it
    to its own directory, where we can also have host, otg and platform
    code related to this controller. It also makes sense to break out
    the driver into several compilation units like udc, host, debugging
    code, etc.

    Firstly, let's move the udc and platform code to drivers/usb/chipidea.

    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

02 May, 2012

1 commit

  • This new driver registers the NXP ISP1301 chip via the I2C subsystem. The chip
    is the USB transceiver shared by ohci-nxp, lpc32xx_udc (gadget) and
    isp1301_omap.

    ISP1301 is a very low-level driver that primarily separates out the I2C client
    registration of the ISP1301 chip (including instantiation via DT), used by
    other drivers, and declares the chip's registers. It's only a helper driver for
    some OHCI and USB device drivers. The driver can be considered as a register
    set extension of ohci-nxp, lpc32xx-udc and isp1301_omap, which in turn know
    best what to do with the low level functionality (individual ISP1301 registers
    and timing, see the different initialization strategies in those drivers).
    Those drivers previously internally duplicated ISP1301 register definitions
    which is solved by this new isp1301 driver. The ISP1301 registers exposed via
    isp1301.h can be accessed by other drivers using it with standard i2c_smbus_*()
    accesses.

    Following patches let the respective USB host and gadget drivers use this
    driver, instead of duplicating ISP1301 handling.

    Signed-off-by: Roland Stigge
    Acked-by: Arnd Bergmann
    Signed-off-by: Greg Kroah-Hartman

    Roland Stigge
     

27 Nov, 2011

1 commit

  • For OTG controller, the host driver will call function
    otg_get_transceiver to get the otg transceiver, so we need to init the
    OTG driver before HOST.

    Signed-off-by: Neil Zhang
    Acked-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Neil Zhang
     

18 Sep, 2011

1 commit

  • In a few places in the kernel, the code prints
    a human-readable USB device speed (eg. "high speed").
    This involves a switch statement sometimes wrapped
    around in ({ ... }) block leading to code repetition.

    To mitigate this issue, this commit introduces
    usb_speed_string() function, which returns
    a human-readable name of provided speed.

    It also changes a few places switch was used to use
    this new function. This changes a bit the way the
    speed is printed in few instances at the same time
    standardising it.

    Signed-off-by: Michal Nazarewicz
    Signed-off-by: Greg Kroah-Hartman

    Michal Nazarewicz
     

23 Aug, 2011

1 commit

  • The DesignWare USB3 is a highly
    configurable IP Core which can be
    instantiated as Dual-Role Device (DRD),
    Peripheral Only and Host Only (XHCI)
    configurations.

    Several other parameters can be configured
    like amount of FIFO space, amount of TX and
    RX endpoints, amount of Host Interrupters,
    etc.

    The current driver has been validated with
    a virtual model of version 1.73a of that core
    and with an FPGA burned with version 1.83a
    of the DRD core. We have support for PCIe
    bus, which is used on FPGA prototyping, and
    for the OMAP5, more adaptation (or glue)
    layers can be easily added and the driver
    is half prepared to handle any possible
    configuration the HW engineer has chosen
    considering we have the information on
    one of the GHWPARAMS registers to do
    runtime checking of certain features.

    More runtime checks can, and should, be added
    in order to make this driver even more flexible
    with regards to number of endpoints, FIFO sizes,
    transfer types, etc.

    While this supports only the device side, for
    now, we will add support for Host side (xHCI -
    see the updated series Sebastian has sent [1])
    and OTG after we have it all stabilized.

    [1] http://marc.info/?l=linux-usb&m=131341992020339&w=2

    Signed-off-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Felipe Balbi
     

03 May, 2011

1 commit

  • When only FSL USB gadget driver is selected in the kernel
    configuration the MPH DR OF driver for creation of FSL
    USB platform devices from device tree won't be built.
    As a result no USB platform devices for MPH DR USB controller
    will be created at run time and no probing will be done in
    the fsl_udc_core driver.

    Add an entry to the Makefile to build the MPH DR OF
    platform driver if CONFIG_USB_FSL_MPH_DR_OF is defined.

    Signed-off-by: Anatolij Gustschin
    Signed-off-by: Greg Kroah-Hartman

    Anatolij Gustschin
     

14 Apr, 2011

1 commit


11 Aug, 2010

1 commit


03 Mar, 2010

1 commit