soc: qcom: smem: Ensure ordering of the allocated entry

The remote cpus might not use locking when looking for smem entries, so
it's important that the header is fully prepared before we mark it as
allocated.

Also, we can drop the wmb() right before we unlock the hwspinlock as
this contains a memory barrier.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Merge branch 'drivers/qcom-smem'
soc: qcom: Add device tree binding for SMD

Add device tree binding documentation for the Qualcomm Shared Memory
Device.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
soc: qcom: Add Shared Memory Driver

This adds the Qualcomm Shared Memory Driver (SMD) providing
communication channels to remote processors, ontop of SMEM.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
soc: qcom: smd: Expose functions needed to reset an edge

When a remote processor goes down the remoteproc driver needs a way to
tell the smd driver that the edge fell (as there is no explicit
indication of this in smd). So expose a function that can be called on
an edge pointer to close all open channels on that edge.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Merge branch 'drivers/qcom-smem'
Merge branch 'drivers/qcom-smd'
Merge branch 'drivers/msm_rpm'
mfd: devicetree: bindings: Add Qualcomm SMD based RPM DT binding

Add binding documentation for the Qualcomm Resource Power Manager (RPM)
using shared memory (Qualcomm SMD) as transport mechanism. This is found
in 8974 and newer based devices.

The binding currently describes the rpm itself and the regulator
subnodes.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
mfd: qcom-smd-rpm: Driver for the Qualcomm RPM over SMD

Driver for the Resource Power Manager (RPM) found in Qualcomm 8974 based
devices.
The driver exposes resources that child drivers can operate on; to
implementing regulator, clock and bus frequency drivers.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
regulator: qcom-smd-rpm: Regulator driver for the Qualcomm RPM

Driver for regulators exposed by the Resource Power Manager (RPM) found
in Qualcomm 8974 based devices.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Merge branch 'drivers/qcom-smem'
Merge branch 'drivers/qcom-smd'
Merge branch 'drivers/msm_rpm'
Merge branch 'drivers/qcom-smd-rpm'
gpio: qcom-smsm: Add driver for Qualcomm SMSM

This driver exposed the Qualcomm Shared Memory State Machine bits as
GPIOs to the system.

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
gpio: qcom-smsm: Use 'reg' property to address states

Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>