24 Oct, 2016

1 commit


15 Aug, 2016

1 commit


09 Jun, 2016

1 commit

  • Add support for shared platform controllers by using
    devm_reset_control_get_shared_by_index instead of
    of_reset_control_get_by_index.

    Note we use the devm function because there is no
    of_reset_control_get_shared_by_index, this also leads
    to a nice cleanup of the cleanup code.

    This brings the ehci-platform reset handling code inline
    with ohci-platform.

    Signed-off-by: Hans de Goede
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

08 Jun, 2016

1 commit


25 Jan, 2016

1 commit


04 Oct, 2015

2 commits


06 Aug, 2015

1 commit

  • When using OF defined controllers the platform data struct is shared
    between all devices, so it can't be used for device specific settings.
    However it is currently used for the OF properties
    needs-reset-on-resume and has-transaction-translator.

    To fix this issue move setting hcd->has_tt to the probe and
    move pdata->reset_on_resume to the private data.

    Signed-off-by: Alban Bedel
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alban Bedel
     

03 Jun, 2015

1 commit


25 May, 2015

1 commit


12 May, 2015

1 commit


25 Jan, 2015

2 commits


10 Jan, 2015

2 commits

  • Instead rely on device tree information for ehci and ohci.

    This was suggested with
    http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=1401358203-60225-4-git-send-email-alex.smith%40imgtec.com

    "The device tree will *always* have correct ehci/ohci clock
    configuration, so use it. This allows us to remove a big chunk of
    platform configuration code from octeon-platform.c."

    More or less I rebased that patch on Alan's work to remove ehci-octeon
    and ohci-octeon drivers.

    Cc: David Daney
    Cc: Alex Smith
    Cc: Alan Stern
    Signed-off-by: Andreas Herrmann
    Acked-by: Ralf Baechle
    Tested-by: Aaro Koskinen
    Signed-off-by: Greg Kroah-Hartman

    Andreas Herrmann
     
  • The Rockchip rk3288 EHCI controller doesn't properly detect
    the case when a device is removed during suspend. Specifically,
    when usb resume from suspend, the EHCI controller maintaining
    the USB state (FLAG_CF is 1, Current Connect Status is 1),
    but a USB device (like a USB camera on rk3288) may have been
    disconnected actually.

    Let's add a quirk to force ehci to go into the
    usb_root_hub_lost_power() path and reset after resume.
    This should generally reset the whole controller and all
    ports and initialize everything cleanly again, and bring
    the devices back up.

    As part of this, rename the "hibernation" paramter of
    ehci_resume() to force_reset since hibernation is simply
    another case where we can't trust the autodetected status
    and need to force a reset of devices.

    Signed-off-by: Wu Liang feng
    Reviewed-by: Julius Werner
    Reviewed-by: Doug Anderson
    Reviewed-by: Tomasz Figa
    Reviewed-by: Pawel Osciak
    Reviewed-by: Sonny Rao
    Acked-by: Alan Stern
    Tested-by: Doug Anderson
    Signed-off-by: Greg Kroah-Hartman

    Wu Liang feng
     

15 Dec, 2014

1 commit

  • Pull driver core update from Greg KH:
    "Here's the set of driver core patches for 3.19-rc1.

    They are dominated by the removal of the .owner field in platform
    drivers. They touch a lot of files, but they are "simple" changes,
    just removing a line in a structure.

    Other than that, a few minor driver core and debugfs changes. There
    are some ath9k patches coming in through this tree that have been
    acked by the wireless maintainers as they relied on the debugfs
    changes.

    Everything has been in linux-next for a while"

    * tag 'driver-core-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (324 commits)
    Revert "ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries"
    fs: debugfs: add forward declaration for struct device type
    firmware class: Deletion of an unnecessary check before the function call "vunmap"
    firmware loader: fix hung task warning dump
    devcoredump: provide a one-way disable function
    device: Add dev__once variants
    ath: ath9k: use debugfs_create_devm_seqfile() helper for seq_file entries
    ath: use seq_file api for ath9k debugfs files
    debugfs: add helper function to create device related seq_file
    drivers/base: cacheinfo: remove noisy error boot message
    Revert "core: platform: add warning if driver has no owner"
    drivers: base: support cpu cache information interface to userspace via sysfs
    drivers: base: add cpu_device_create to support per-cpu devices
    topology: replace custom attribute macros with standard DEVICE_ATTR*
    cpumask: factor out show_cpumap into separate helper function
    driver core: Fix unbalanced device reference in drivers_probe
    driver core: fix race with userland in device_add()
    sysfs/kernfs: make read requests on pre-alloc files use the buffer.
    sysfs/kernfs: allow attributes to request write buffer be pre-allocated.
    fs: sysfs: return EGBIG on write if offset is larger than file size
    ...

    Linus Torvalds
     

08 Nov, 2014

1 commit


04 Nov, 2014

1 commit

  • ehci/ohci-platform just define .suspend/.resume functions for dev_pm_ops,
    but in order to support both STR(suspend-to-ram) and hibernation, other
    callbacks such as .freeze/.thaw are also required.

    Registering all required callbacks for both STR and hibernation can
    be done by SIMPLE_DEV_PM_OPS macro function.

    Signed-off-by: Wonhong Kwon
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Wonhong Kwon
     

20 Oct, 2014

1 commit


28 May, 2014

1 commit

  • On the Allwinner's A31 SoC the reset line connected to the EHCI IP has to
    be deasserted for the EHCI block to be usable.

    Add support for an optional reset controller that will be deasserted on
    power off and asserted on power on.

    Signed-off-by: Boris BREZILLON
    Signed-off-by: Maxime Ripard
    Reviewed-by: Hans de Goede
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Boris BREZILLON
     

17 Apr, 2014

1 commit

  • Patch 'b8efdaf USB: EHCI: add check for wakeup/suspend race'
    adds a check for possible race between suspend and wakeup interrupt,
    and thereby it returns -EBUSY as error code if there's a wakeup
    interrupt.
    So the platform host controller should not proceed further with
    its suspend callback, rather should return immediately to avoid
    powering down the essential things, like phy.

    Signed-off-by: Vivek Gautam
    Acked-by: Alan Stern
    Cc: Hauke Mehrtens
    Cc: Hans de Goede
    Signed-off-by: Greg Kroah-Hartman

    Vivek Gautam
     

12 Feb, 2014

2 commits

  • The ehci-platform driver checks for misconfigurations in cases where
    the Device Tree data specifies big-endian registers or descriptors but
    the corresponding driver config settings have not been enabled. As
    Jonas Gorski suggested, we may as well apply the same check to general
    platform data too.

    This requires moving the code that sets the big-endian quirk flags
    from the ehci_platform_reset() routine into ehci_platform_probe(), and
    moving the checks out of the DT-specific "if" statement clause.

    The patch also changes the text of the error messages in an attempt to
    make the nature of the error more clear.

    Signed-off-by: Alan Stern
    Reported-by: Jonas Gorski
    Acked-by: Hans de Goede
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • The initial versions of the devicetree enablement patches for ehci-platform
    used "ehci-platform" as compatible string. However this was disliked by various
    reviewers because the platform bus is a Linux invention and devicetree is
    supposed to be OS agnostic. After much discussion I gave up, added a:
    "depends on !PPC_OF" to Kconfig to avoid a known conflict with PPC-OF platforms
    and went with the generic usb-ehci as requested.

    In retro-spect I should have chosen something different, the dts files for many
    existing boards already claim to be compatible with "usb-ehci", ie they have:

    compatible = "ti,ehci-omap", "usb-ehci";

    In theory this should not be a problem since the "ti,ehci-omap" entry takes
    presedence, but in practice using a conflicting compatible string is an issue,
    because it makes which driver gets used depend on driver registration order.

    This patch changes the compatible string claimed by ehci-platform to
    "generic-ehci", avoiding the driver registration / module loading ordering
    problems, and removes the "depends on !PPC_OF" workaround.

    Signed-off-by: Hans de Goede
    Acked-by: Alan Stern
    Tested-by: Kevin Hilman
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

08 Feb, 2014

2 commits

  • This uses the already documented devicetree booleans for this, see:
    Documentation/devicetree/bindings/usb/usb-ehci.txt

    Signed-off-by: Hans de Goede
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     
  • Currently ehci-platform is only used in combination with devicetree when used
    with some Via socs. By extending it to (optionally) get clks and a phy from
    devicetree, and enabling / disabling those on power_on / off, it can be used
    more generically. Specifically after this commit it can be used for the
    ehci controller on Allwinner sunxi SoCs.

    Since ehci-platform is intended to handle any generic enough non pci ehci
    device, add a "usb-ehci" compatibility string.

    There already is a usb-ehci device-tree bindings document, update this
    with clks and phy bindings info.

    Although actually quite generic so far the via,vt8500 compatibilty string
    had its own bindings document. Somehow we even ended up with 2 of them. Since
    these provide no extra information over the generic usb-ehci documentation,
    this patch removes them.

    The ehci-ppc-of.c driver also claims the usb-ehci compatibility string,
    even though it mostly is ibm,usb-ehci-440epx specific. ehci-platform.c is
    not needed on ppc platforms, so add a !PPC_OF dependency to it to avoid
    2 drivers claiming the same compatibility string getting build on ppc.

    Signed-off-by: Hans de Goede
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Hans de Goede
     

09 Dec, 2013

1 commit

  • Individual controller driver has different requirement for wakeup
    setting, so move it from core to itself. In order to align with
    current etting the default wakeup setting is enabled (except for
    chipidea host).

    Pass compile test with below commands:
    make O=outout/all allmodconfig
    make -j$CPU_NUM O=outout/all drivers/usb

    Signed-off-by: Peter Chen
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Peter Chen
     

31 Oct, 2013

2 commits


01 Aug, 2013

1 commit


03 Jul, 2013

1 commit

  • Pull ARM SoC specific changes from Arnd Bergmann:
    "These changes are all to SoC-specific code, a total of 33 branches on
    17 platforms were pulled into this. Like last time, Renesas sh-mobile
    is now the platform with the most changes, followed by OMAP and
    EXYNOS.

    Two new platforms, TI Keystone and Rockchips RK3xxx are added in this
    branch, both containing almost no platform specific code at all, since
    they are using generic subsystem interfaces for clocks, pinctrl,
    interrupts etc. The device drivers are getting merged through the
    respective subsystem maintainer trees.

    One more SoC (u300) is now multiplatform capable and several others
    (shmobile, exynos, msm, integrator, kirkwood, clps711x) are moving
    towards that goal with this series but need more work.

    Also noteworthy is the work on PCI here, which is traditionally part
    of the SoC specific code. With the changes done by Thomas Petazzoni,
    we can now more easily have PCI host controller drivers as loadable
    modules and keep them separate from the platform code in
    drivers/pci/host. This has already led to the discovery that three
    platforms (exynos, spear and imx) are actually using an identical PCIe
    host controller and will be able to share a driver once support for
    spear and imx is added."

    * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (480 commits)
    ARM: integrator: let pciv3 use mem/premem from device tree
    ARM: integrator: set local side PCI addresses right
    ARM: dts: Add pcie controller node for exynos5440-ssdk5440
    ARM: dts: Add pcie controller node for Samsung EXYNOS5440 SoC
    ARM: EXYNOS: Enable PCIe support for Exynos5440
    pci: Add PCIe driver for Samsung Exynos
    ARM: OMAP5: voltagedomain data: remove temporary OMAP4 voltage data
    ARM: keystone: Move CPU bringup code to dedicated asm file
    ARM: multiplatform: always pick one CPU type
    ARM: imx: select syscon for IMX6SL
    ARM: keystone: select ARM_ERRATA_798181 only for SMP
    ARM: imx: Synertronixx scb9328 needs to select SOC_IMX1
    ARM: OMAP2+: AM43x: resolve SMP related build error
    dmaengine: edma: enable build for AM33XX
    ARM: edma: Add EDMA crossbar event mux support
    ARM: edma: Add DT and runtime PM support to the private EDMA API
    dmaengine: edma: Add TI EDMA device tree binding
    arm: add basic support for Rockchip RK3066a boards
    arm: add debug uarts for rockchip rk29xx and rk3xxx series
    arm: Add basic clocks for Rockchip rk3066a SoCs
    ...

    Linus Torvalds
     

11 Jun, 2013

1 commit

  • Sometimes there is a need to initialize some non-standard registers mapped to
    the EHCI region before accessing the standard EHCI registers. Add pre_setup()
    method with 'struct usb_hcd *' parameter to be called just before ehci_setup()
    to the 'ehci-platform' driver's platform data for this purpose...

    While at it, add the missing incomplete declaration of 'struct platform_device'
    to ...

    The patch has been tested on the Marzen and BOCK-W boards.

    Suggested-by: Alan Stern
    Signed-off-by: Sergei Shtylyov
    Acked-by: Kuninori Morimoto
    Acked-by: Alan Stern
    Signed-off-by: Simon Horman

    Sergei Shtylyov
     

22 May, 2013

1 commit


17 May, 2013

1 commit

  • The driver core clears the driver data to NULL after device_release
    or on probe failure, since commit 0998d0631001288a5974afc0b2a5f568bcdecb4d
    (device-core: Ensure drvdata = NULL when no driver is bound).
    Thus, it is not needed to manually clear the device driver data to NULL.

    Signed-off-by: Jingoo Han
    Signed-off-by: Greg Kroah-Hartman

    Jingoo Han
     

24 Apr, 2013

1 commit


29 Mar, 2013

1 commit

  • This lets us use the ehci-platform driver on platforms without special
    requirements for their ehci controllers. In particular, this is true
    for the vt8500/wm8x50 platforms, which currently have a separate
    driver that causes problems with multiplatform configurations.

    Tested-by: Tony Prisk
    Tested-by: Peter Vasil
    Acked-by: Alan Stern
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     

23 Jan, 2013

1 commit

  • Convert all uses of devm_request_and_ioremap() to the newly introduced
    devm_ioremap_resource() which provides more consistent error handling.

    devm_ioremap_resource() provides its own error messages so all explicit
    error messages can be removed from the failure code paths.

    Signed-off-by: Thierry Reding
    Acked-by: Alan Stern
    Acked-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Thierry Reding
     

22 Nov, 2012

3 commits

  • CONFIG_HOTPLUG is going away as an option so __devexit is no
    longer needed.

    Signed-off-by: Bill Pemberton
    Cc: Peter Korsgaard
    Cc: Alexander Shishkin
    Acked-by: Felipe Balbi
    Cc: Li Yang
    Cc: Alan Stern
    Cc: Wan ZongShun
    Cc: Ben Dooks
    Cc: Kukjin Kim
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     
  • CONFIG_HOTPLUG is going away as an option so __devinit is no longer
    needed.

    Signed-off-by: Bill Pemberton
    Cc: Peter Korsgaard
    Cc: Alexander Shishkin
    Acked-by: Felipe Balbi
    Cc: Li Yang
    Acked-by: Alan Stern
    Cc: Geoff Levand
    Cc: Wan ZongShun
    Cc: Olav Kongas
    Cc: Lennert Buytenhek
    Cc: Ben Dooks
    Cc: Kukjin Kim
    Acked-by: Nicolas Ferre
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     
  • CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
    needed.

    Signed-off-by: Bill Pemberton
    Cc: Peter Korsgaard
    Cc: Alexander Shishkin
    Acked-by: Felipe Balbi
    Cc: Li Yang
    Cc: Alan Stern
    Cc: Wan ZongShun
    Cc: Ben Dooks
    Cc: Kukjin Kim
    Acked-by: Nicolas Ferre
    Acked-by: Peter Korsgaard
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     

12 Nov, 2012

1 commit

  • This patch (as1630) cleans up a few minor items resulting from the
    split-up of the ehci-hcd driver:

    Remove the product_desc string from the ehci_driver_overrides
    structure. All drivers will use the generic "EHCI Host
    Controller" string. (This was requested by Felipe Balbi.)

    Allow drivers to pass a NULL pointer to ehci_init_driver()
    if they don't have to override any settings.

    Remove a #define symbol that is no longer used from the
    ChipIdea host driver.

    Rename overrides to pci_overrides in ehci-pci.c, for
    consistency with ehci-platform.c.

    Mark the *_overrides structures as __initdata.

    Signed-off-by: Alan Stern
    Reviewed-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern