cascardo/linux.git
7 years agoMerge tag 'tegra-for-4.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra...
Olof Johansson [Thu, 7 Jul 2016 05:34:19 +0000 (22:34 -0700)]
Merge tag 'tegra-for-4.8-soc' of git://git./linux/kernel/git/tegra/linux into next/drivers

soc/tegra: Changes for v4.8-rc1

Contains fixes and cleanups to the PMC driver, as well as some fixes for
the generic PM domain support and some prep work to support PCIe on 64-
bit ARM.

* tag 'tegra-for-4.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  soc/tegra: Stub out PCIe IRQ workaround on 64-bit ARM
  soc/tegra: pmc: Enable XUSB partitions on boot
  soc/tegra: pmc: Initialise power partitions early
  soc/tegra: pmc: Add specific error messages
  soc/tegra: pmc: Use whitespace more consistently
  soc/tegra: pmc: Don't probe PMC if early initialisation fails
  soc/tegra: pmc: Add missing of_node_put()
  soc/tegra: pmc: Ensure mutex is always initialised
  soc/tegra: pmc: Don't populate SoC data until register space is mapped
  soc/tegra: pmc: Fix early initialisation of PMC
  soc/tegra: pmc: Ensure powergate is available when powering on
  soc/tegra: pmc: Initialise resets associated with a power partition
  soc/tegra: pmc: Use register definitions instead of magic values

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'tegra-for-4.8-memory' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Thu, 7 Jul 2016 05:33:47 +0000 (22:33 -0700)]
Merge tag 'tegra-for-4.8-memory' of git://git./linux/kernel/git/tegra/linux into next/drivers

memory: tegra: Changes for v4.8-rc1

Contains three reference count fixes from coccinelle.

* tag 'tegra-for-4.8-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  memory: tegra: mc: Add missing of_node_put()
  memory: tegra: Delete unneeded of_node_put()
  memory: tegra: tegra124-emc: Add missing of_node_put()

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'tegra-for-4.8-bus' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra...
Olof Johansson [Thu, 7 Jul 2016 05:32:11 +0000 (22:32 -0700)]
Merge tag 'tegra-for-4.8-bus' of git://git./linux/kernel/git/tegra/linux into next/drivers

bus: NVIDIA Tegra ACONNECT support

Adds support for the Tegra ACONNECT bus that's used to access the APE
(audio processing engine) on Tegra X1.

* tag 'tegra-for-4.8-bus' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  bus: Add support for Tegra ACONNECT
  dt-bindings: bus: Add documentation for Tegra210 ACONNECT

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'renesas-rcar-sysc2-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel...
Olof Johansson [Thu, 7 Jul 2016 05:12:04 +0000 (22:12 -0700)]
Merge tag 'renesas-rcar-sysc2-for-v4.8' of git://git./linux/kernel/git/horms/renesas into next/drivers

Second Round of Renesas ARM Based SoC R-Car SYSC Updates for v4.8

* Prepare for handling SYSC interrupt configuration purely
  from DT in the rcar-sysc driver for new SoCs, while preserving
  backward compatibility with old DTBs for R-Car H1, H2, and M2-W
* Add R8A7792 support

* tag 'renesas-rcar-sysc2-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  soc: renesas: rcar-sysc: Improve SYSC interrupt config in legacy wrapper
  soc: renesas: rcar-sysc: Move SYSC interrupt config to rcar-sysc driver
  soc: renesas: rcar-sysc: Make rcar_sysc_init() init the PM domains
  soc: renesas: rcar-sysc: Fix uninitialized error code in rcar_sysc_pd_init()
  soc: renesas: rcar-sysc: add R8A7792 support

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agovideo: clps711x-fb: Changing the compatibility string to match with the smallest...
Alexander Shiyan [Sat, 4 Jun 2016 07:10:02 +0000 (10:10 +0300)]
video: clps711x-fb: Changing the compatibility string to match with the smallest supported chip

This patch changes the compatibility string to match with the smallest
supported chip (EP7209). Since the DT-support for this CPU is not yet
announced, this change is safe.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
7 years agoinput: clps711x-keypad: Changing the compatibility string to match with the smallest...
Alexander Shiyan [Sat, 4 Jun 2016 07:10:01 +0000 (10:10 +0300)]
input: clps711x-keypad: Changing the compatibility string to match with the smallest supported chip

This patch changes the compatibility string to match with the smallest
supported chip (EP7209). Since the DT-support for this CPU is not yet
announced, this change is safe.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
7 years agopwm: clps711x: Changing the compatibility string to match with the smallest supported...
Alexander Shiyan [Sat, 4 Jun 2016 07:09:58 +0000 (10:09 +0300)]
pwm: clps711x: Changing the compatibility string to match with the smallest supported chip

This patch changes the compatibility string to match with the smallest
supported chip (EP7209). Since the DT-support for this CPU is not yet
announced, this change is safe.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
7 years agoserial: clps711x: Changing the compatibility string to match with the smallest suppor...
Alexander Shiyan [Sat, 4 Jun 2016 07:09:57 +0000 (10:09 +0300)]
serial: clps711x: Changing the compatibility string to match with the smallest supported chip

This patch changes the compatibility string to match with the smallest
supported chip (EP7209). Since the DT-support for this CPU is not yet
announced, this change is safe.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
7 years agoirqchip: clps711x: Changing the compatibility string to match with the smallest suppo...
Alexander Shiyan [Sat, 4 Jun 2016 07:09:56 +0000 (10:09 +0300)]
irqchip: clps711x: Changing the compatibility string to match with the smallest supported chip

This patch changes the compatibility string to match with the smallest
supported chip (EP7209). Since the DT-support for this CPU is not yet
announced, this change is safe.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
7 years agoclocksource: clps711x: Changing the compatibility string to match with the smallest...
Alexander Shiyan [Sat, 4 Jun 2016 07:09:55 +0000 (10:09 +0300)]
clocksource: clps711x: Changing the compatibility string to match with the smallest supported chip

This patch changes the compatibility string to match with the smallest
supported chip (EP7209). Since the DT-support for this CPU is not yet
announced, this change is safe.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
7 years agoclk: clps711x: Changing the compatibility string to match with the smallest supported...
Alexander Shiyan [Sat, 4 Jun 2016 07:09:54 +0000 (10:09 +0300)]
clk: clps711x: Changing the compatibility string to match with the smallest supported chip

This patch changes the compatibility string to match with the smallest
supported chip (EP7209). Since the DT-support for this CPU is not yet
announced, this change is safe.

Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
7 years agoMerge tag 'samsung-drivers-4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Wed, 6 Jul 2016 05:43:41 +0000 (22:43 -0700)]
Merge tag 'samsung-drivers-4.8-2' of git://git./linux/kernel/git/krzk/linux into next/drivers

Samsung drivers/soc update for v4.8, part 2:
1. Endian-friendly fixes.
2. Make SROMC driver explicitly non-module.

* tag 'samsung-drivers-4.8-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  cpufreq: s5pv210: use relaxed IO accesors
  memory: samsung: exynos-srom: make it explicitly non-modular
  memory: samsung: endian fixes for IO

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'qcom-drivers-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Tue, 5 Jul 2016 05:30:11 +0000 (22:30 -0700)]
Merge tag 'qcom-drivers-for-4.8' of git://git./linux/kernel/git/agross/linux into next/drivers

Qualcomm ARM Based Driver Updates for v4.8

* Rework of SCM driver
* Add file patterns for Qualcomm Maintainers entry
* Add worker for wcnss_ctrl signaling
* Fixes for smp2p
* Update smem_state properties to match documentation
* Add SCM Peripheral Authentication service
* Expose SCM PAS command 10 as a reset controller

* tag 'qcom-drivers-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
  firmware: qcom: scm: Expose PAS command 10 as reset-controller
  firmware: qcom: scm: Peripheral Authentication Service
  soc: qcom: Update properties for smem state referencing
  soc: qcom: smp2p: Drop io-accessors
  soc: qcom: smp2p: Correct addressing of outgoing value
  soc: qcom: wcnss_ctrl: Make wcnss_ctrl parent the other components
  firmware: qcom: scm: Add support for ARM64 SoCs
  firmware: qcom: scm: Convert to streaming DMA APIS
  firmware: qcom: scm: Generalize shared error map
  firmware: qcom: scm: Use atomic SCM for cold boot
  firmware: qcom: scm: Convert SCM to platform driver
  MAINTAINERS: Add file patterns for qcom device tree bindings

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'gpmc-omap-for-v4.8' of https://github.com/rogerq/linux into next/drivers
Olof Johansson [Tue, 5 Jul 2016 05:20:25 +0000 (22:20 -0700)]
Merge tag 'gpmc-omap-for-v4.8' of https://github.com/rogerq/linux into next/drivers

OMAP-GPMC: driver updates for v4.8

* Make GPMC driver non modular as it is going to
be built-in only till arch/arm/mach-omap2 users
are removed.

* Fix build if CONFIG_OF is not defined.

* tag 'gpmc-omap-for-v4.8' of https://github.com/rogerq/linux:
  memory: omap-gpmc: Move gpio functions out of #ifdef CONFIG_OF
  memory: omap-gpmc: make it explicitly non-modular

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'scpi-updates-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep...
Olof Johansson [Tue, 5 Jul 2016 04:32:07 +0000 (21:32 -0700)]
Merge tag 'scpi-updates-4.8' of git://git./linux/kernel/git/sudeep.holla/linux into next/drivers

SCPI updates and fixes for v4.8

1. Adds support for device power state management using generic power
   domains and runtime PM

2. Other minor/miscellaneous fixes to the driver

* tag 'scpi-updates-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  firmware: scpi: add device power domain support using genpd
  Documentation: add DT bindings for ARM SCPI power domains
  firmware: arm_scpi: add support for device power state management
  firmware: arm_scpi: make it depend on MAILBOX instead of ARM_MHU
  firmware: arm_scpi: mark scpi_get_sensor_value as static
  firmware: arm_scpi: remove dvfs_get packed structure

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'at91-ab-4.8-drivers2' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Tue, 5 Jul 2016 03:59:31 +0000 (20:59 -0700)]
Merge tag 'at91-ab-4.8-drivers2' of git://git./linux/kernel/git/abelloni/linux into next/drivers

Drivers for 4.8 #2:
 - Make memory drivers explicitly non-modular

* tag 'at91-ab-4.8-drivers2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  memory: atmel-ebi: make it explicitly non-modular
  memory: atmel-sdramc: make it explicitly non-modular

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agobus: Add support for Tegra ACONNECT
Jon Hunter [Fri, 17 Jun 2016 12:40:32 +0000 (13:40 +0100)]
bus: Add support for Tegra ACONNECT

Add a bus driver for the Tegra ACONNECT which is used to interface to
various devices within the Audio Processing Engine (APE). The purpose
of the bus driver is to register child devices that are accessed via
the ACONNECT bus and through the device parent child relationship,
ensure that the appropriate power domain and clocks are enabled for
the ACONNECT when any of the child devices are active. Hence, the
ACONNECT driver simply enables runtime-pm for the ACONNECT device
so that when a child device is resumed, it will enable the power-domain
and clocks associated with the ACONNECT.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agodt-bindings: bus: Add documentation for Tegra210 ACONNECT
Jon Hunter [Fri, 17 Jun 2016 12:40:31 +0000 (13:40 +0100)]
dt-bindings: bus: Add documentation for Tegra210 ACONNECT

Add binding documentation for the Tegra ACONNECT bus that is part of the
Audio Processing Engine (APE) on Tegra210. The ACONNECT bus is used to
access devices within the APE subsystem. The APE is located in a
separate power domain and so accesses made to the ACONNECT require the
power domain to be enabled as well as some platform specific clocks.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: Stub out PCIe IRQ workaround on 64-bit ARM
Thierry Reding [Wed, 29 Jun 2016 14:11:32 +0000 (16:11 +0200)]
soc/tegra: Stub out PCIe IRQ workaround on 64-bit ARM

The PCIe host controller found on Tegra20 has a hardware bug that causes
PCIe interrupts to get lost when LP2 is enabled. Stub out the workaround
on 64-bit ARM because none of the more recent Tegra SoC generations seem
to have this bug anymore.

Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Enable XUSB partitions on boot
Jon Hunter [Thu, 30 Jun 2016 10:56:26 +0000 (11:56 +0100)]
soc/tegra: pmc: Enable XUSB partitions on boot

The Tegra XHCI driver does not currently manage the Tegra XUSB power
partitions and so it these partitions have not been enabled by the
bootloader then the system will crash when probing the XHCI device.

While proper support for managing the power partitions is being
developed to the XHCI driver for Tegra, for now power on all the XUSB
partitions for USB host and super-speed on boot if the XHCI driver is
enabled.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Initialise power partitions early
Jon Hunter [Thu, 30 Jun 2016 10:56:25 +0000 (11:56 +0100)]
soc/tegra: pmc: Initialise power partitions early

If CONFIG_PM_GENERIC_DOMAINS is not enabled, then power partitions
associated with a device will not be enabled automatically by the PM
core when the device is in use. To avoid situations where a device in
a power partition is to be used but the partition is not enabled,
initialise the power partitions for Tegra early in the boot process and
if CONFIG_PM_GENERIC_DOMAINS is not enabled, then power on all
partitions defined in the device-tree blob.

Note that if CONFIG_PM_GENERIC_DOMAINS is not enabled, after the
partitions are turned on, the clocks and resets used as part of the
sequence for turning on the partition are released again as they are no
longer needed by the PMC driver. Another benefit of this is that this
avoids any issues of sharing resets between the PMC driver and other
device drivers that may wish to independently control a particular
reset.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Add specific error messages
Jon Hunter [Thu, 30 Jun 2016 10:56:24 +0000 (11:56 +0100)]
soc/tegra: pmc: Add specific error messages

When initialising a powergate, only a single error message is shown if
the initialisation fails. Add more error messages to give specific
details of what failed if the initialisation failed and remove the
generic failure message.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Use whitespace more consistently
Thierry Reding [Thu, 30 Jun 2016 10:12:55 +0000 (12:12 +0200)]
soc/tegra: pmc: Use whitespace more consistently

Use blank lines after blocks and before labels for consistency with the
existing code in the file.

Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Don't probe PMC if early initialisation fails
Jon Hunter [Tue, 28 Jun 2016 10:38:28 +0000 (11:38 +0100)]
soc/tegra: pmc: Don't probe PMC if early initialisation fails

Commit 0259f522e04f ('soc/tegra: pmc: Restore base address on probe
failure') fixes an issue where the PMC base address pointer is not
restored on probe failure. However, this fix creates another problem
where if early initialisation of the PMC driver fails and an initial
mapping for the PMC address space is not created, then when the PMC
device is probed, the PMC base address pointer will not be valid and
this will cause a crash when tegra_pmc_init() is called and attempts
to access a register.

Although the PMC address space is mapped a 2nd time during the probe
and so this could be fixed by populating the base address pointer
earlier during the probe, this adds more complexity to the code.
Moreover, the PMC probe also assumes the the soc data pointer is also
initialised when the device is probed and if not will also lead to a
crash when calling tegra_pmc_init_tsense_reset(). Given that if the
early initialisation does fail then something bad has happen, it seems
acceptable to allow the PMC device probe to fail as well. Therefore, if
the PMC base address pointer or soc data pointer are not valid when
probing the PMC device, WARN and return an error.

Fixes: 0259f522e04f ('soc/tegra: pmc: Restore base address on probe failure')
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Add missing of_node_put()
Jon Hunter [Tue, 28 Jun 2016 10:38:27 +0000 (11:38 +0100)]
soc/tegra: pmc: Add missing of_node_put()

Add missing of_node_put() in PMC early initialisation function to avoid
leaking the device nodes.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
[treding@nvidia.com: squash in a couple more of_node_put() calls]
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Ensure mutex is always initialised
Jon Hunter [Tue, 28 Jun 2016 10:38:26 +0000 (11:38 +0100)]
soc/tegra: pmc: Ensure mutex is always initialised

The mutex used by the PMC driver may not be initialised if early
initialisation of the driver fails. If this does happen, then it could
be possible for callers of the public PMC functions to still attempt to
acquire the mutex. Fix this by initialising the mutex as soon as
possible to ensure it will always be initialised.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Don't populate SoC data until register space is mapped
Jon Hunter [Tue, 28 Jun 2016 10:38:25 +0000 (11:38 +0100)]
soc/tegra: pmc: Don't populate SoC data until register space is mapped

The public functions exported by the PMC driver use the presence of the
SoC data pointer to determine if the PMC device is configured and the
registers can be accessed. However, the SoC data is populated before the
PMC register space is mapped and this opens a window where the SoC data
pointer is valid but the register space has not yet been mapped which
could lead to a crash. Furthermore, if the mapping of the PMC register
space fails, then the SoC data pointer is not cleared and so would
expose a larger window where a crash could occur.

Fix this by initialising the SoC data pointer after the PMC register
space has been mapped.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Fix early initialisation of PMC
Jon Hunter [Tue, 28 Jun 2016 10:38:24 +0000 (11:38 +0100)]
soc/tegra: pmc: Fix early initialisation of PMC

During early initialisation, the available power partitions for a given
device is configured as well as the polarity of the PMC interrupt. Both
of which should only be configured if there is a valid device node for
the PMC device. This is because the soc data used for configuring the
power partitions is only available if a device node for the PMC is found
and the code to configure the interrupt polarity uses the device node
pointer directly.

Some early device-tree images may not have this device node and so fix
this by ensuring the device node pointer is valid when configuring these
items.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Ensure powergate is available when powering on
Jon Hunter [Tue, 28 Jun 2016 10:38:23 +0000 (11:38 +0100)]
soc/tegra: pmc: Ensure powergate is available when powering on

The function tegra_power_sequence_power_up() is a public function used
to power on a partition. When this function is called, we do not check
to see if the partition being powered up is valid/available. Fix this
by checking to see that the partition is valid/available.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc/tegra: pmc: Initialise resets associated with a power partition
Jon Hunter [Wed, 29 Jun 2016 09:17:47 +0000 (10:17 +0100)]
soc/tegra: pmc: Initialise resets associated with a power partition

When registering the Tegra power partitions with the generic PM domain
framework, the current state of the each partition is checked and used
as the default state for the partition. However, the state of each reset
associated with the partition is not initialised and so it is possible
that the state of the resets are not in the expected state. For example,
if a partition is on, then the resets should be de-asserted and if the
partition is off, the resets should be asserted.

There have been cases where the bootloader has powered on a partition
and only de-asserted some of the resets to some of the devices in the
partition. This can cause accesses to these devices to hang the system
when the kernel boots and attempts to probe these devices.

Ideally, the driver for the device should ensure the reset has been
de-asserted when probing, but the resets cannot be shared between the
PMC driver (that needs to de-assert/assert the reset when turning the
partition on or off) and another driver because we cannot ensure the
reset is in the correct state.

To ensure the resets are in the correct state, when using the generic
PM domain framework, put each reset associated with the partition in
the correct state (based upon the partition's current state) when
obtaining the resets for a partition.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc: renesas: rcar-sysc: Improve SYSC interrupt config in legacy wrapper
Geert Uytterhoeven [Tue, 28 Jun 2016 14:10:34 +0000 (16:10 +0200)]
soc: renesas: rcar-sysc: Improve SYSC interrupt config in legacy wrapper

Align SYSC interrupt configuration in the legacy wrapper with the DT
version:
  - Mask SYSC interrupt sources before enabling them (doesn't matter
    much as they're disabled at the GIC level anyway),
  - Make sure not to clear reserved SYSCIMR bits that were set before.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
7 years agosoc: renesas: rcar-sysc: Move SYSC interrupt config to rcar-sysc driver
Geert Uytterhoeven [Tue, 28 Jun 2016 14:10:33 +0000 (16:10 +0200)]
soc: renesas: rcar-sysc: Move SYSC interrupt config to rcar-sysc driver

On R-Car H1 and Gen2, the SYSC interrupt registers are always configured
using hardcoded values in platform code. For R-Car Gen2, values are
provided for H2 and M2-W only, other SoCs are not yet supported, and
never will be.

Move this configuration from SoC-specific platform code to the
rcar_sysc_init() wrapper, so it can be skipped if the SYSC is configured
from DT. This would be the case not only for H1, H2, and M2-W using a
modern DTS, but also for other R-Car Gen2 SoCs not supported by the
platform code, relying purely on DT.

There is no longer a need to return the mapped register block, hence
make the function return void.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
7 years agosoc: renesas: rcar-sysc: Make rcar_sysc_init() init the PM domains
Geert Uytterhoeven [Tue, 28 Jun 2016 14:10:32 +0000 (16:10 +0200)]
soc: renesas: rcar-sysc: Make rcar_sysc_init() init the PM domains

Let rcar_sysc_init() trigger initialization of the SYSC PM domains from
DT if called before the early_initcall.
On failure, it falls back to mapping the passed register block, as
before.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
7 years agosoc: renesas: rcar-sysc: Fix uninitialized error code in rcar_sysc_pd_init()
Geert Uytterhoeven [Tue, 28 Jun 2016 14:10:31 +0000 (16:10 +0200)]
soc: renesas: rcar-sysc: Fix uninitialized error code in rcar_sysc_pd_init()

On success, rcar_sysc_pd_init() returns an uninitialized error code.
Use the return value of of_genpd_add_provider_onecell() to fix this.

This went unnoticed, as early_initcall() doesn't care about the return
value.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
7 years agofirmware: qcom: scm: Expose PAS command 10 as reset-controller
Bjorn Andersson [Fri, 17 Jun 2016 17:40:43 +0000 (10:40 -0700)]
firmware: qcom: scm: Expose PAS command 10 as reset-controller

PAS command 10 is used to assert and deassert the MSS reset via
TrustZone, expose this as a reset-controller to mimic the direct
access case.

Cc: Stephen Boyd <sboyd@codeaurora.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Acked-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
7 years agofirmware: qcom: scm: Peripheral Authentication Service
Bjorn Andersson [Wed, 23 Sep 2015 19:56:12 +0000 (12:56 -0700)]
firmware: qcom: scm: Peripheral Authentication Service

This adds the Peripheral Authentication Service (PAS) interface to the
Qualcomm SCM interface. The API is used to authenticate and boot a range
of external processors in various Qualcomm platforms.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
7 years agosoc: qcom: Update properties for smem state referencing
Bjorn Andersson [Fri, 10 Jun 2016 04:11:22 +0000 (21:11 -0700)]
soc: qcom: Update properties for smem state referencing

Update the property names to match device tree bindings, the correct
values should be qcom,smem-states and qcom,smem-state-names.

Also update the #qcom,smem-state-cells for consistency, before we merge
any users of these properties.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
7 years agosoc: qcom: smp2p: Drop io-accessors
Bjorn Andersson [Fri, 10 Jun 2016 00:22:57 +0000 (17:22 -0700)]
soc: qcom: smp2p: Drop io-accessors

SMEM is now mapped write-combine and we can use memcpy to access the
name of the entires.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
7 years agosoc: qcom: smp2p: Correct addressing of outgoing value
Bjorn Andersson [Fri, 10 Jun 2016 00:22:56 +0000 (17:22 -0700)]
soc: qcom: smp2p: Correct addressing of outgoing value

The valid_entries index should not be incremented until after we have
acquired the pointer to the value, or we will read and write data one
item off.

Fixes: 50e99641413e ("soc: qcom: smp2p: Qualcomm Shared Memory Point to Point")
Cc: stable@vger.kernel.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
7 years agosoc: qcom: wcnss_ctrl: Make wcnss_ctrl parent the other components
Bjorn Andersson [Mon, 6 Jun 2016 23:58:20 +0000 (16:58 -0700)]
soc: qcom: wcnss_ctrl: Make wcnss_ctrl parent the other components

We need the signal from wcnss_ctrl indicating that the firmware is up
and running before we can communicate with the other components of the
chip. So make these other components children of the wcnss_ctrl device,
so they can be probed in order.

The process seems to take between 1/2-5 seconds, so this is done in a
worker, instead of holding up the probe.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
7 years agofirmware: qcom: scm: Add support for ARM64 SoCs
Kumar Gala [Fri, 3 Jun 2016 23:25:26 +0000 (18:25 -0500)]
firmware: qcom: scm: Add support for ARM64 SoCs

Add an implementation of the SCM interface that works on ARM64 SoCs.  This
is used by things like determine if we have HDCP support or not on the
system.

Signed-off-by: Kumar Gala <galak@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
7 years agofirmware: qcom: scm: Convert to streaming DMA APIS
Andy Gross [Fri, 3 Jun 2016 23:25:25 +0000 (18:25 -0500)]
firmware: qcom: scm: Convert to streaming DMA APIS

This patch converts the Qualcomm SCM driver to use the streaming DMA APIs
for communication buffers.  This is being done so that the
secure_flush_area call can be removed.  Using the DMA APIs will also make
the SCM32 symmetric to the coming SCM64 code.

Signed-off-by: Andy Gross <andy.gross@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
7 years agofirmware: qcom: scm: Generalize shared error map
Andy Gross [Fri, 3 Jun 2016 23:25:24 +0000 (18:25 -0500)]
firmware: qcom: scm: Generalize shared error map

This patch moves the qcom_scm_remap_error function to the include file
where can be used by both the 32 and 64 bit versions of the code.

Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <agross@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
7 years agofirmware: qcom: scm: Use atomic SCM for cold boot
Andy Gross [Fri, 3 Jun 2016 23:25:23 +0000 (18:25 -0500)]
firmware: qcom: scm: Use atomic SCM for cold boot

This patch changes the cold_set_boot_addr function to use atomic SCM
calls.  cold_set_boot_addr required adding qcom_scm_call_atomic2 to
support the two arguments going to the smc call.  Using atomic removes
the need for memory allocation and instead places all arguments in
registers.

Signed-off-by: Andy Gross <andy.gross@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
7 years agofirmware: qcom: scm: Convert SCM to platform driver
Andy Gross [Fri, 3 Jun 2016 23:25:22 +0000 (18:25 -0500)]
firmware: qcom: scm: Convert SCM to platform driver

This patch converts the Qualcomm SCM firmware driver into a platform
driver.  It also adds clock management for firmware calls which require
clocks to be enabled during the duration of their execution.  Rate
setting of the core clock is also in place for higher performance.

Signed-off-by: Andy Gross <andy.gross@linaro.org>
Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
7 years agoMAINTAINERS: Add file patterns for qcom device tree bindings
Geert Uytterhoeven [Sun, 22 May 2016 09:05:41 +0000 (11:05 +0200)]
MAINTAINERS: Add file patterns for qcom device tree bindings

Submitters of device tree binding documentation may forget to CC
the subsystem maintainer if this is missing.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Andy Gross <andy.gross@linaro.org>
Cc: David Brown <david.brown@linaro.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-soc@vger.kernel.org
Signed-off-by: Andy Gross <andy.gross@linaro.org>
7 years agocpufreq: s5pv210: use relaxed IO accesors
Ben Dooks [Wed, 22 Jun 2016 09:36:37 +0000 (10:36 +0100)]
cpufreq: s5pv210: use relaxed IO accesors

The use of __raw IO accesors is not endian safe and should be used
sparingly. The relaxed variants should be as lightweight and also
are endian safe.

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
7 years agomemory: atmel-ebi: make it explicitly non-modular
Paul Gortmaker [Fri, 17 Jun 2016 00:37:48 +0000 (20:37 -0400)]
memory: atmel-ebi: make it explicitly non-modular

The Kconfig currently controlling compilation of this code is:

drivers/memory/Kconfig:config ATMEL_EBI
drivers/memory/Kconfig: bool "Atmel EBI driver"

...meaning that it currently is not being built as a module by anyone.

Lets remove the few remaining modular references, so that when reading
the driver there is no doubt it is builtin-only.

Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.

Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.

We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
7 years agomemory: atmel-sdramc: make it explicitly non-modular
Paul Gortmaker [Fri, 17 Jun 2016 00:37:43 +0000 (20:37 -0400)]
memory: atmel-sdramc: make it explicitly non-modular

The Kconfig for this option is currently:

config ATMEL_SDRAMC
        bool "Atmel (Multi-port DDR-)SDRAM Controller"

...meaning that it currently is not being built as a module by anyone.
Lets remove the couple traces of modularity, so that when reading the
driver there is no doubt it is builtin-only.

Since module_init translates to device_initcall in the non-modular
case, the init ordering remains unchanged with this commit.  An
alternate init level might be worth considering at a later date.

Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.

We also delete the MODULE_LICENSE tag etc. since all that information
was (or is now) contained at the top of the file in the comments.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
7 years agofirmware: scpi: add device power domain support using genpd
Sudeep Holla [Thu, 2 Jun 2016 15:34:03 +0000 (16:34 +0100)]
firmware: scpi: add device power domain support using genpd

This patch hooks up the support for device power domain provided by
SCPI using the Linux generic power domain infrastructure.

Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Tested-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Tested-by: Jon Medhurst <tixy@linaro.org>
Reviewed-by: Jon Medhurst <tixy@linaro.org>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
7 years agoDocumentation: add DT bindings for ARM SCPI power domains
Sudeep Holla [Sun, 5 Jun 2016 17:50:50 +0000 (18:50 +0100)]
Documentation: add DT bindings for ARM SCPI power domains

The System Control Processor (SCP) provides peripheral devices with
power domains that can be enabled and disabled viathe System Control
and Power Interface (SCPI) Message Protocol. Add bindings to allow
probing of these device power domians.

Cc: Rob Herring <robh+dt@kernel.org>
Tested-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Tested-by: Jon Medhurst <tixy@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Jon Medhurst <tixy@linaro.org>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
7 years agofirmware: arm_scpi: add support for device power state management
Sudeep Holla [Wed, 20 Apr 2016 13:05:14 +0000 (14:05 +0100)]
firmware: arm_scpi: add support for device power state management

SCPI protocol supports device power state management. This deals with
power states of various peripheral devices in the system other than the
core compute subsystem.

This patch adds support for the power state management of those
peripheral devices.

Tested-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Tested-by: Jon Medhurst <tixy@linaro.org>
Reviewed-by: Jon Medhurst <tixy@linaro.org>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
7 years agomemory: samsung: exynos-srom: make it explicitly non-modular
Paul Gortmaker [Fri, 17 Jun 2016 00:37:47 +0000 (20:37 -0400)]
memory: samsung: exynos-srom: make it explicitly non-modular

The Kconfig currently controlling compilation of this code is:

memory/samsung/Kconfig:config EXYNOS_SROM
memory/samsung/Kconfig: bool "Exynos SROM controller driver" if COMPILE_TEST

...meaning that it currently is not being built as a module by anyone.

Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.

We explicitly disallow a driver unbind, since that doesn't have a
sensible use case anyway, and it allows us to drop the ".remove"
code for non-modular drivers.

Since module_platform_driver() uses the same init level priority as
builtin_platform_driver() the init ordering remains unchanged with
this commit.

Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.

We also delete the MODULE_LICENSE tag etc. since all that information
is already contained at the top of the file in the comments.

Cc: Pankaj Dubey <pankaj.dubey@samsung.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
7 years agomemory: samsung: endian fixes for IO
Ben Dooks [Fri, 17 Jun 2016 17:08:10 +0000 (18:08 +0100)]
memory: samsung: endian fixes for IO

Use the relaxed versions of the IO accessors to avoid any issues
if running in big endian.

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
7 years agoMerge tag 'arm-soc/for-4.8/drivers' of http://github.com/Broadcom/stblinux into next...
Olof Johansson [Mon, 20 Jun 2016 05:55:16 +0000 (22:55 -0700)]
Merge tag 'arm-soc/for-4.8/drivers' of github.com/Broadcom/stblinux into next/drivers

This pull request contains drivers related changes for Broadcom SoCs:

- Florian moves drivers/soc/brcmstb to drivers/soc/bcm/brcmstb to be consistent with
  how other SoCs are doing it

- Chris provides a reset driver which is common to the BCM21664 and BCM23550 SoCs

- Ben fixes a warning by providing the appropriate include file

* tag 'arm-soc/for-4.8/drivers' of http://github.com/Broadcom/stblinux:
  soc: brcmstb: fix warning from missing include
  power: Introduce Broadcom kona reset driver
  soc: Move brcmstb to bcm/brcmstb

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'samsung-drivers-exynos-mfc-4.8' of git://git.kernel.org/pub/scm/linux...
Olof Johansson [Mon, 20 Jun 2016 05:39:15 +0000 (22:39 -0700)]
Merge tag 'samsung-drivers-exynos-mfc-4.8' of git://git./linux/kernel/git/krzk/linux into next/drivers

Topic branch for Exynos MFC changes for v4.8:
Pull s5p-mfc changes from media tree so the arm/mach-exynos code
could be removed. The bindings are converted to generic reserved memory
bindings.

* tag 'samsung-drivers-exynos-mfc-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: dts: exynos: Enable MFC device on Exynos4412 Odroid boards
  ARM: dts: exynos: Convert MFC device to generic reserved memory bindings
  ARM: EXYNOS: Remove code for MFC custom reserved memory handling
  media: s5p-mfc: add iommu support
  media: s5p-mfc: replace custom reserved memory handling code with generic one
  media: s5p-mfc: use generic reserved memory bindings
  of: reserved_mem: add support for using more than one region for given device
  media: set proper max seg size for devices on Exynos SoCs
  media: vb2-dma-contig: add helper for setting dma max seg size
  s5p-mfc: Fix race between s5p_mfc_probe() and s5p_mfc_open()
  s5p-mfc: Add release callback for memory region devs
  s5p-mfc: Set device name for reserved memory region devs

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agomemory: omap-gpmc: Move gpio functions out of #ifdef CONFIG_OF
Roger Quadros [Fri, 17 Jun 2016 07:16:50 +0000 (10:16 +0300)]
memory: omap-gpmc: Move gpio functions out of #ifdef CONFIG_OF

The gpio related functions were mistakenly built only if CONFIG_OF
is defined. They are needed even otherwise and will cause build
failures if CONFIG_OF is not defined. Move the gpio functions
outside #ifdef CONFIG_OF.

Fixes: d2d00862dfbb ("memory: omap-gpmc: Support general purpose input for WAITPINs")

Signed-off-by: Roger Quadros <rogerq@ti.com>
7 years agomemory: omap-gpmc: make it explicitly non-modular
Paul Gortmaker [Fri, 17 Jun 2016 00:37:45 +0000 (20:37 -0400)]
memory: omap-gpmc: make it explicitly non-modular

The Kconfig currently controlling compilation of this code is:

drivers/memory/Kconfig:config OMAP_GPMC
drivers/memory/Kconfig:  bool

...meaning that it currently is not being built as a module by anyone.

Lets remove the modular code that is essentially orphaned, so that
when reading the driver there is no doubt it is builtin-only.

Since module_init was not in use by this code, the init ordering
remains unchanged with this commit.

Also note that MODULE_DEVICE_TABLE is a no-op for non-modular code.

We don't replace module.h with init.h since the file already has that.

Cc: Roger Quadros <rogerq@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: linux-omap@vger.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
7 years agosoc: renesas: rcar-sysc: add R8A7792 support
Sergei Shtylyov [Sun, 12 Jun 2016 20:56:50 +0000 (23:56 +0300)]
soc: renesas: rcar-sysc: add R8A7792 support

Add support for R-Car V2H (R8A7792) SoC power areas to the SYSC driver.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
7 years agoMerge tag 'reset-for-4.8-2' of git://git.pengutronix.de/git/pza/linux into next/drivers
Olof Johansson [Tue, 14 Jun 2016 17:30:46 +0000 (10:30 -0700)]
Merge tag 'reset-for-4.8-2' of git://git.pengutronix.de/git/pza/linux into next/drivers

Reset controller changes for v4.8, part 2

- add Amlogic Meson SoC Reset Controller driver

* tag 'reset-for-4.8-2' of git://git.pengutronix.de/git/pza/linux:
  dt-bindings: reset: Add bindings for the Meson SoC Reset Controller
  reset: Add support for the Amlogic Meson SoC Reset Controller

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'at91-ab-4.8-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Tue, 14 Jun 2016 17:18:54 +0000 (10:18 -0700)]
Merge tag 'at91-ab-4.8-drivers' of git://git./linux/kernel/git/abelloni/linux into next/drivers

Drivers for 4.8:
 - Add a driver for the EBI

* tag 'at91-ab-4.8-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  memory: atmel-ebi: add DT bindings documentation
  memory: add Atmel EBI (External Bus Interface) driver

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agomemory: tegra: mc: Add missing of_node_put()
Amitoj Kaur Chawla [Mon, 25 Jan 2016 17:23:07 +0000 (22:53 +0530)]
memory: tegra: mc: Add missing of_node_put()

for_each_child_of_node() performs an of_node_get() on each iteration, so
to break out of the loop an of_node_put() is required.

Found using Coccinelle. The semantic patch used for this is as follows:

// <smpl>
@@
expression e;
local idexpression n;
@@

 for_each_child_of_node(..., n) {
   ... when != of_node_put(n)
       when != e = n
(
   return n;
|
+  of_node_put(n);
?  return ...;
)
   ...
 }
// </smpl>

Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agomemory: tegra: Delete unneeded of_node_put()
Julia Lawall [Fri, 9 Oct 2015 17:47:40 +0000 (19:47 +0200)]
memory: tegra: Delete unneeded of_node_put()

for_each_child_of_node() performs an of_node_put() on each iteration, so
putting an of_node_put() before a continue results in a double put.

The semantic match that finds this problem is as follows
(http://coccinelle.lip6.fr):

// <smpl>
@@
expression root,e;
local idexpression child;
iterator name for_each_child_of_node;
@@

 for_each_child_of_node(root, child) {
   ... when != of_node_get(child)
*  of_node_put(child);
   ...
*  continue;
}
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agomemory: tegra: tegra124-emc: Add missing of_node_put()
Amitoj Kaur Chawla [Mon, 25 Jan 2016 17:27:48 +0000 (22:57 +0530)]
memory: tegra: tegra124-emc: Add missing of_node_put()

for_each_child_of_node() performs an of_node_get() on each iteration, so
to break out of the loop an of_node_put() is required.

Found using Coccinelle. The semantic patch used for this is as follows:

// <smpl>
@@
expression e;
local idexpression n;
@@

 for_each_child_of_node(..., n) {
   ... when != of_node_put(n)
       when != e = n
(
   return n;
|
+  of_node_put(n);
?  return ...;
)
   ...
 }
// </smpl>

Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agoMerge tag 'renesas-rcar-sysc-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel...
Olof Johansson [Mon, 13 Jun 2016 22:39:46 +0000 (15:39 -0700)]
Merge tag 'renesas-rcar-sysc-for-v4.8' of git://git./linux/kernel/git/horms/renesas into next/drivers

Renesas ARM Based SoC R-Car SYSC Updates for v4.8

e0c98b9171ee soc: renesas: rcar-sysc: Add support for R-Car M3-W power areas
74699228b99d soc: renesas: Add r8a7796 SYSC PM Domain Binding Definitions
2ff1bf77e4d4 soc: renesas: rcar-sysc: Document r8a7796 support

* tag 'renesas-rcar-sysc-for-v4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  soc: renesas: rcar-sysc: Add support for R-Car M3-W power areas
  soc: renesas: Add r8a7796 SYSC PM Domain Binding Definitions
  soc: renesas: rcar-sysc: Document r8a7796 support

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agoMerge tag 'samsung-drivers-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git...
Olof Johansson [Mon, 13 Jun 2016 21:28:37 +0000 (14:28 -0700)]
Merge tag 'samsung-drivers-4.8' of git://git./linux/kernel/git/krzk/linux into next/drivers

Samsung drivers/soc update for v4.8:
1. Move the power domain driver from arm/mach-exynos and prepare
   for supporting ARMv8.
2. Add COMPILE_TEST.

* tag 'samsung-drivers-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  soc: samsung: pm_domains: Enable COMPILE_TEST for build coverage
  soc: samsung: pm_domains: Prepare for supporting ARMv8 Exynos
  ARM: EXYNOS: Move pm_domains driver to drivers/soc/samsung

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agofirmware: arm_scpi: make it depend on MAILBOX instead of ARM_MHU
Sudeep Holla [Sun, 5 Jun 2016 17:23:21 +0000 (18:23 +0100)]
firmware: arm_scpi: make it depend on MAILBOX instead of ARM_MHU

ARM_SCPI_PROTOCOL can be used with any mailbox and not just ARM MHU
mailbox controller. This patch drops it's dependency on ARM_MHU and
make it depend on just mailbox framework.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
7 years agofirmware: arm_scpi: mark scpi_get_sensor_value as static
Sudeep Holla [Tue, 23 Feb 2016 16:21:16 +0000 (16:21 +0000)]
firmware: arm_scpi: mark scpi_get_sensor_value as static

scpi_get_sensor_value like other scpi operations needs to be static.
This patch marks it as static to be consistent with others.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
7 years agofirmware: arm_scpi: remove dvfs_get packed structure
Sudeep Holla [Wed, 20 Apr 2016 12:25:01 +0000 (13:25 +0100)]
firmware: arm_scpi: remove dvfs_get packed structure

dvfs_get packed structure is used to read the DVFS/OPP index from the
firmware. It just contains a single byte that needs no packing making
the whole structure defination unnecessary.

This patch replaces the unnecessary dvfs_get packed structure with an
unsigned byte.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
7 years agosoc/tegra: pmc: Use register definitions instead of magic values
Thierry Reding [Wed, 30 Dec 2015 16:13:29 +0000 (17:13 +0100)]
soc/tegra: pmc: Use register definitions instead of magic values

Use register definitions for the main SoC reset operation instead of
hard-coding magic values. Note that the PMC_RST_STATUS register isn't
actually accessed, but since it is mentioned in a comment the
definitions are added for completeness.

Acked-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
7 years agosoc: brcmstb: fix warning from missing include
Ben Dooks [Tue, 7 Jun 2016 17:54:54 +0000 (18:54 +0100)]
soc: brcmstb: fix warning from missing include

The brcmstb_biuctrl_init() is defined in the soc specific header
file, but wasn't included in the driver file. Fix the following
warning by including <linux/soc/brcmstb/brcmstb.h> in the driver:

drivers/soc/brcmstb/biuctrl.c:101:13: warning: symbol 'brcmstb_biuctrl_init' was not declared. Should it be static?

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
7 years agopower: Introduce Broadcom kona reset driver
Chris Brand [Wed, 11 May 2016 21:36:17 +0000 (14:36 -0700)]
power: Introduce Broadcom kona reset driver

This driver supports reset on both BCM21664 and BCM23550.
Code is being moved from arch/arm/mach-bcm/board_bcm21664.c

Signed-off-by: Chris Brand <chris.brand@broadcom.com>
Acked-By: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
7 years agoARM: dts: exynos: Enable MFC device on Exynos4412 Odroid boards
Marek Szyprowski [Tue, 24 May 2016 13:31:30 +0000 (15:31 +0200)]
ARM: dts: exynos: Enable MFC device on Exynos4412 Odroid boards

Enable support for Multimedia Codec (MFC) device for all Exynos4412-based
Odroid boards.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
7 years agoARM: dts: exynos: Convert MFC device to generic reserved memory bindings
Marek Szyprowski [Tue, 24 May 2016 13:31:29 +0000 (15:31 +0200)]
ARM: dts: exynos: Convert MFC device to generic reserved memory bindings

This patch replaces custom properties for defining reserved memory
regions with generic reserved memory bindings for MFC video codec
device.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Tested-by: Javier Martinez Canillas <javier@osg.samsung.com>
[k.kozlowski: Add Samsung copyrights]
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
7 years agoARM: EXYNOS: Remove code for MFC custom reserved memory handling
Marek Szyprowski [Tue, 24 May 2016 13:31:28 +0000 (15:31 +0200)]
ARM: EXYNOS: Remove code for MFC custom reserved memory handling

Once MFC driver has been converted to generic reserved memory bindings,
there is no need for custom memory reservation code.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
7 years agoMerge branch 'for-v4.8/media/exynos-mfc' of git://linuxtv.org/snawrocki/samsung into...
Krzysztof Kozlowski [Mon, 6 Jun 2016 07:21:09 +0000 (09:21 +0200)]
Merge branch 'for-v4.8/media/exynos-mfc' of git://linuxtv.org/snawrocki/samsung into for-v4.8/exynos-mfc

The Exynos MFC driver was converted to use a generic reserved memory
regions and IOMMU. Pull these changes before removal of mach-specific
code from mach-exynos and before changing DT bindings.

7 years agosoc: renesas: rcar-sysc: Add support for R-Car M3-W power areas
Geert Uytterhoeven [Mon, 30 May 2016 17:05:11 +0000 (19:05 +0200)]
soc: renesas: rcar-sysc: Add support for R-Car M3-W power areas

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
7 years agosoc: renesas: Add r8a7796 SYSC PM Domain Binding Definitions
Geert Uytterhoeven [Mon, 30 May 2016 17:05:10 +0000 (19:05 +0200)]
soc: renesas: Add r8a7796 SYSC PM Domain Binding Definitions

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
7 years agosoc: renesas: rcar-sysc: Document r8a7796 support
Geert Uytterhoeven [Mon, 30 May 2016 17:05:09 +0000 (19:05 +0200)]
soc: renesas: rcar-sysc: Document r8a7796 support

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
7 years agoMerge tag 'reset-for-4.8' of git://git.pengutronix.de/git/pza/linux into next/drivers
Olof Johansson [Fri, 3 Jun 2016 19:18:58 +0000 (12:18 -0700)]
Merge tag 'reset-for-4.8' of git://git.pengutronix.de/git/pza/linux into next/drivers

Reset controller changes for v4.8

- add devm_reset_controller_register API to get rid of a good
  amount of boilerplate across reset drivers.
- move reset controller Kconfig options into a sub-menu
- fix inconsistent return values, let all reset_control_get
  stubs return -ENOTSUPP

* tag 'reset-for-4.8' of git://git.pengutronix.de/git/pza/linux:
  reset: Return -ENOTSUPP when not configured
  reset: oxnas: Use devm register API and get rid of platform remove
  reset: fix Kconfig menu to include reset drivers in sub-menu
  reset: zynq: use devm_reset_controller_register()
  reset: socfpga: use devm_reset_controller_register()
  reset: sunxi: use devm_reset_controller_register()
  reset: pistachio: use devm_reset_controller_register()
  reset: ath79: use devm_reset_controller_register()
  reset: add devm_reset_controller_register API

Signed-off-by: Olof Johansson <olof@lixom.net>
7 years agomedia: s5p-mfc: add iommu support
Marek Szyprowski [Tue, 24 May 2016 13:31:27 +0000 (15:31 +0200)]
media: s5p-mfc: add iommu support

This patch adds support for IOMMU to s5p-mfc device driver. MFC firmware
is limited and it cannot use the default configuration. If IOMMU is
available, the patch disables the default DMA address space
configuration and creates a new address space of size limited to 256M
and base address set to 0x20000000.

For now the same address space is shared by both 'left' and 'right'
memory channels, because the DMA/IOMMU frameworks do not support
configuring them separately. This is not optimal, but besides limiting
total address space available has no other drawbacks (MFC firmware
supports 256M of address space per each channel).

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Tested-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agomedia: s5p-mfc: replace custom reserved memory handling code with generic one
Marek Szyprowski [Tue, 24 May 2016 13:31:26 +0000 (15:31 +0200)]
media: s5p-mfc: replace custom reserved memory handling code with generic one

This patch removes custom code for initialization and handling of
reserved memory regions in s5p-mfc driver and replaces it with generic
reserved memory regions api.

s5p-mfc driver now handles two reserved memory regions defined by
generic reserved memory bindings. Support for non-dt platform has been
removed, because all supported platforms have been already converted to
device tree.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Tested-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agomedia: s5p-mfc: use generic reserved memory bindings
Marek Szyprowski [Tue, 24 May 2016 13:31:25 +0000 (15:31 +0200)]
media: s5p-mfc: use generic reserved memory bindings

Use generic reserved memory bindings and mark old, custom properties
as obsoleted.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agoof: reserved_mem: add support for using more than one region for given device
Marek Szyprowski [Tue, 24 May 2016 13:31:24 +0000 (15:31 +0200)]
of: reserved_mem: add support for using more than one region for given device

This patch allows device drivers to initialize more than one reserved
memory region assigned to given device. When driver needs to use more
than one reserved memory region, it should allocate child devices and
initialize regions by index for each of its child devices.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agomedia: set proper max seg size for devices on Exynos SoCs
Marek Szyprowski [Tue, 24 May 2016 07:16:07 +0000 (09:16 +0200)]
media: set proper max seg size for devices on Exynos SoCs

All multimedia devices found on Exynos SoCs support only contiguous
buffers, so set DMA max segment size to DMA_BIT_MASK(32) to let memory
allocator to correctly create contiguous memory mappings.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agomedia: vb2-dma-contig: add helper for setting dma max seg size
Marek Szyprowski [Tue, 24 May 2016 07:16:06 +0000 (09:16 +0200)]
media: vb2-dma-contig: add helper for setting dma max seg size

Add a helper function for device drivers to set DMA's max_seg_size.
Setting it to largest possible value lets DMA-mapping API always create
contiguous mappings in DMA address space. This is essential for all
devices, which use dma-contig videobuf2 memory allocator and shared
buffers.

Till now, the only case when vb2-dma-contig really 'worked' was a case
where userspace provided USERPTR buffer, which was in fact mmaped
contiguous buffer from the other v4l2/drm device. Also DMABUF made of
contiguous buffer worked only when its exporter did not split it into
several chunks in the scatter-list. Any other buffer failed, regardless
of the arch/platform used and the presence of the IOMMU of the device bus.

This patch provides interface to fix this issue.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agos5p-mfc: Fix race between s5p_mfc_probe() and s5p_mfc_open()
Javier Martinez Canillas [Tue, 3 May 2016 20:27:18 +0000 (16:27 -0400)]
s5p-mfc: Fix race between s5p_mfc_probe() and s5p_mfc_open()

The s5p_mfc_probe() function registers the video devices before all the
resources needed by s5p_mfc_open() are correctly initalized.

So if s5p_mfc_open() function is called before s5p_mfc_probe() finishes
(since the video dev is already registered), a NULL pointer dereference
will happen due s5p_mfc_open() accessing uninitialized vars such as the
struct s5p_mfc_dev .watchdog_timer and .mfc_ops fields.

An example is following BUG caused by add_timer() getting a NULL pointer:

[   45.765374] kernel BUG at kernel/time/timer.c:790!
[   45.765381] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
...
[   45.766149] [<c016fdf4>] (mod_timer) from [<bf181d18>] (s5p_mfc_open+0x274/0x4d4 [s5p_mfc])
[   45.766416] [<bf181d18>] (s5p_mfc_open [s5p_mfc]) from [<bf0214a0>] (v4l2_open+0x9c/0x100 [videodev])
[   45.766547] [<bf0214a0>] (v4l2_open [videodev]) from [<c01e355c>] (chrdev_open+0x9c/0x178)
[   45.766575] [<c01e355c>] (chrdev_open) from [<c01dceb4>] (do_dentry_open+0x1e0/0x300)
[   45.766595] [<c01dceb4>] (do_dentry_open) from [<c01ec2f0>] (path_openat+0x800/0x10d4)
[   45.766610] [<c01ec2f0>] (path_openat) from [<c01ed8b8>] (do_filp_open+0x5c/0xc0)
[   45.766624] [<c01ed8b8>] (do_filp_open) from [<c01de218>] (do_sys_open+0x10c/0x1bc)
[   45.766642] [<c01de218>] (do_sys_open) from [<c01078c0>] (ret_fast_syscall+0x0/0x3c)
[   45.766655] Code: eaffffe3 e3a00001 e28dd008 e8bd81f0 (e7f001f2)

Fix it by registering the video devs as the last step in s5p_mfc_probe().

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agos5p-mfc: Add release callback for memory region devs
Javier Martinez Canillas [Tue, 3 May 2016 20:27:17 +0000 (16:27 -0400)]
s5p-mfc: Add release callback for memory region devs

When s5p_mfc_remove() calls put_device() for the reserved memory region
devs, the driver core warns that the dev doesn't have a release callback:

WARNING: CPU: 0 PID: 591 at drivers/base/core.c:251 device_release+0x8c/0x90
Device 's5p-mfc-l' does not have a release() function, it is broken and must be fixed.

Also, the declared DMA memory using dma_declare_coherent_memory() isn't
relased so add a dev .release that calls dma_release_declared_memory().

Cc: <stable@vger.kernel.org>
Fixes: 6e83e6e25eb4 ("[media] s5p-mfc: Fix kernel warning on memory init")
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agos5p-mfc: Set device name for reserved memory region devs
Javier Martinez Canillas [Tue, 3 May 2016 20:27:16 +0000 (16:27 -0400)]
s5p-mfc: Set device name for reserved memory region devs

The devices don't have a name set, so makes dev_name() returns NULL which
makes harder to identify the devices that are causing issues, for example:

WARNING: CPU: 2 PID: 616 at drivers/base/core.c:251 device_release+0x8c/0x90
Device '(null)' does not have a release() function, it is broken and must be fixed.

And after setting the device name:

WARNING: CPU: 0 PID: 591 at drivers/base/core.c:251 device_release+0x8c/0x90
Device 's5p-mfc-l' does not have a release() function, it is broken and must be fixed.

Cc: <stable@vger.kernel.org>
Fixes: 6e83e6e25eb4 ("[media] s5p-mfc: Fix kernel warning on memory init")
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agomemory: atmel-ebi: add DT bindings documentation
Boris Brezillon [Mon, 23 May 2016 07:44:55 +0000 (09:44 +0200)]
memory: atmel-ebi: add DT bindings documentation

The EBI (External Bus Interface) is used to access external peripherals
(NOR, SRAM, NAND, and other specific devices like ethernet controllers).
Each device is assigned a CS line and an address range and can have its
own configuration (timings, access mode, bus width, ...).
This driver provides a generic DT binding to configure a device according
to its requirements.
For specific device controllers (like the NAND one) the SMC timings
should be configured by the controller driver through the matrix and smc
syscon regmaps.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
7 years agomemory: add Atmel EBI (External Bus Interface) driver
Boris Brezillon [Mon, 23 May 2016 07:44:54 +0000 (09:44 +0200)]
memory: add Atmel EBI (External Bus Interface) driver

The EBI (External Bus Interface) is used to access external peripherals
(NOR, SRAM, NAND, and other specific devices like ethernet controllers).
Each device is assigned a CS line and an address range and can have its
own configuration (timings, access mode, bus width, ...).
This driver provides a generic DT binding to configure a device according
to its requirements.
For specific device controllers (like the NAND one) the SMC timings
should be configured by the controller driver through the matrix and
smc syscon regmaps.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
7 years agodt-bindings: reset: Add bindings for the Meson SoC Reset Controller
Neil Armstrong [Mon, 30 May 2016 13:27:16 +0000 (15:27 +0200)]
dt-bindings: reset: Add bindings for the Meson SoC Reset Controller

Add DT bindings for the Meson SoC Reset Controller documentation and the
associated include file.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
7 years agoreset: Add support for the Amlogic Meson SoC Reset Controller
Neil Armstrong [Mon, 30 May 2016 13:27:15 +0000 (15:27 +0200)]
reset: Add support for the Amlogic Meson SoC Reset Controller

This patch adds the platform driver for the Amlogic Meson SoC Reset
Controller.

The Meson8b and GXBB SoCs are supported.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
7 years agoreset: Return -ENOTSUPP when not configured
John Youn [Tue, 31 May 2016 23:55:01 +0000 (16:55 -0700)]
reset: Return -ENOTSUPP when not configured

Prior to commit 6c96f05c8bb8 ("reset: Make [of_]reset_control_get[_foo]
functions wrappers"), the "optional" functions returned -ENOTSUPP when
CONFIG_RESET_CONTROLLER was not set.

Revert back to the old behavior by changing the new
__devm_reset_control_get() and __of_reset_control_get() functions to
return ERR_PTR(-ENOTSUPP) when compiled without CONFIG_RESET_CONTROLLER.

Otherwise they will return -EINVAL causing users to think that an error
occurred when CONFIG_RESET_CONTROLLER is not set.

Fixes: 6c96f05c8bb8 ("reset: Make [of_]reset_control_get[_foo] functions wrappers")
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
7 years agosoc: Move brcmstb to bcm/brcmstb
Florian Fainelli [Fri, 20 May 2016 18:35:57 +0000 (11:35 -0700)]
soc: Move brcmstb to bcm/brcmstb

Unify the different Broadcom SoCs directory and have everybody live
under drivers/soc/bcm/*.

Acked-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
7 years agoreset: oxnas: Use devm register API and get rid of platform remove
Neil Armstrong [Fri, 20 May 2016 12:21:37 +0000 (14:21 +0200)]
reset: oxnas: Use devm register API and get rid of platform remove

Use the brand new devm_reset_controller_register() API to get rid of
the platform driver remove callback.

Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
7 years agoreset: fix Kconfig menu to include reset drivers in sub-menu
Masahiro Yamada [Tue, 3 May 2016 06:29:52 +0000 (15:29 +0900)]
reset: fix Kconfig menu to include reset drivers in sub-menu

In "make menuconfig", reset drivers are currently lined up together
with the reset sub-system menu, like this:

    -*- Reset Controller Support  ----
    < > Hi6220 Reset Driver

(It also means, the menu "Reset Controller Support" is always empty.)

"Hi6220 Reset Driver" should go into the sub-menu of the
"Reset Controller Support".

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
7 years agoreset: zynq: use devm_reset_controller_register()
Masahiro Yamada [Sun, 1 May 2016 10:37:03 +0000 (19:37 +0900)]
reset: zynq: use devm_reset_controller_register()

Use devm_reset_controller_register() for the reset controller
registration and drop the .remove callback.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
7 years agoreset: socfpga: use devm_reset_controller_register()
Masahiro Yamada [Sun, 1 May 2016 10:37:02 +0000 (19:37 +0900)]
reset: socfpga: use devm_reset_controller_register()

Use devm_reset_controller_register() for the reset controller
registration and drop the .remove callback.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
7 years agoreset: sunxi: use devm_reset_controller_register()
Masahiro Yamada [Sun, 1 May 2016 10:37:01 +0000 (19:37 +0900)]
reset: sunxi: use devm_reset_controller_register()

Use devm_reset_controller_register() for the reset controller
registration and drop the .remove callback.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>