move the allocation of iommu-sec page table into msm_iommu_dev
in order to use properly initialised struct device.
The dma_alloc_attrs would fail to allocate memory with the fake
struct device which was the case before this change.
Nicolas Dechesne [Wed, 29 Jul 2015 13:03:15 +0000 (15:03 +0200)]
kernel: configs: improve distro.config, mostly for systemd
* add missing options required/optional for systemd
http://cgit.freedesktop.org/systemd/systemd/tree/README
Some options were enabled by default in arch/arm64/defconfig, but not in
arch/arm/multi_v7_defconfig..
* rework/move the options to separate out systemd configs
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
linaro: add defconfig fragment with basic linaro config
In order to ease kernel configuration, we are now using kernel config
fragments. In the folder linaro/configs, we will add fragments as needed with
all configurations that are required when using the Linaro kernel releases.
Users are expected to run the following command to properly configure their
kernel tree prior to the build:
Bjorn Andersson [Tue, 20 Oct 2015 02:48:21 +0000 (10:48 +0800)]
Bluetooth: btqcomsmd: Qualcomm WCNSS HCI driver
The Qualcomm WCNSS chip provides two SMD channels to the BT core; one
for command and one for event packets. This driver exposes the two
channels as a hci device.
Andy Green [Mon, 12 Jan 2015 15:01:26 +0000 (23:01 +0800)]
wcn36xx: handle new hal response format
wcn3620 has a new message structure for the reply to some hal
commands. This patch adds the struct and helper routine that
uses it if the chip is wcn3620, or falls back to the old
helper routine.
We don't know what to do with the candidate list he sends back,
but we can at least accept and ignore it nicely instead of dying.
Kumar Gala [Wed, 11 Mar 2015 21:28:10 +0000 (16:28 -0500)]
firmware: qcom: scm: Split out 32-bit specific SCM code
Split out the 32-bit SCM implementation into its own file to prep for
supporting a 64-bit/ARM64 implementation as well. We create a simple shim
to ensure both versions conform to the same interface.
Bjorn Andersson [Tue, 30 Jun 2015 19:46:19 +0000 (12:46 -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.
Georgi Djakov [Fri, 11 Sep 2015 13:26:31 +0000 (16:26 +0300)]
power: avs: cpr: Fix Duplicate OPPs warning
Change the sequence to get the regulators first
and then add OPPs as regulators can defer probe
in the middle and leave us with only partially
added OPPs.
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
Stephen Boyd [Tue, 2 Jun 2015 01:47:59 +0000 (18:47 -0700)]
power: avs: Add support for CPR (Core Power Reduction)
RBCPR (RapidBridge Core Power Reduction) is a technology to reduce
core power on a CPU or other device. It reads voltage settings in
efuse from product test process as initial settings and populates OPPs
for the device being "monitored". Each OPP corresponds to a "corner"
that has a range of valid voltages for a particular frequency. While
the device is running at a particular frequency, CPR monitors dynamic
factors such as temperature, etc. and adjusts the voltage for that
frequency accordingly to save power and meet silicon characteristic
requirements.
This driver is based on work by others on codeaurora.org[1].
Stephen Boyd [Tue, 2 Jun 2015 01:47:58 +0000 (18:47 -0700)]
cpufreq-dt: Handle OPP voltage adjust events
On some SoCs the Adaptive Voltage Scaling (AVS) technique is
employed to optimize the operating voltage of a device. At a
given frequency, the hardware monitors dynamic factors and either
makes a suggestion for how much to adjust a voltage for the
current frequency, or it automatically adjusts the voltage
without software intervention.
In the former case, an AVS driver will call
dev_pm_opp_modify_voltage() and update the voltage for the
particular OPP the CPUs are using. Add an OPP notifier to
cpufreq-dt so that we can adjust the voltage of the CPU when AVS
updates the OPP.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Stephen Boyd [Tue, 2 Jun 2015 01:47:57 +0000 (18:47 -0700)]
OPP: Allow notifiers to call dev_pm_opp_get_{voltage, freq} RCU-free
We pass the dev_pm_opp structure to OPP notifiers but the users
of the notifier need to surround calls to dev_pm_opp_get_*() with
RCU read locks to avoid lockdep warnings. The notifier is already
called with the dev_opp's srcu lock held, so it should be safe to
assume the devm_pm_opp structure is already protected inside the
notifier. Update the lockdep check for this.
Cc: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Stephen Boyd [Tue, 2 Jun 2015 01:47:56 +0000 (18:47 -0700)]
PM / OPP: Support adjusting OPP voltages at runtime
On some SoCs the Adaptive Voltage Scaling (AVS) technique is
employed to optimize the operating voltage of a device. At a
given frequency, the hardware monitors dynamic factors and either
makes a suggestion for how much to adjust a voltage for the
current frequency, or it automatically adjusts the voltage
without software intervention. Add an API to the OPP library for
the former case, so that AVS type devices can update the voltages
for an OPP when the hardware determines the voltage should
change. The assumption is that drivers like CPUfreq or devfreq
will register for the OPP notifiers and adjust the voltage
according to suggestions that AVS makes.
Bjorn Andersson [Wed, 10 Dec 2014 19:27:51 +0000 (11:27 -0800)]
soc: qcom: Stub IPCRTR client driver
The IPCRTR channel needs to come up for the pronto block to be happy and
continue communication, so this driver does just that (and dumps
incoming data in the log).
Bjorn Andersson [Tue, 20 Oct 2015 02:46:15 +0000 (10:46 +0800)]
soc: qcom: smd: Support opening additional channels
With the qcom_smd_open_channel() API we allow SMD devices to open
additional SMD channels, to allow implementation of multi-channel SMD
devices - like Bluetooth.
Channels are opened from the same edge as the calling SMD device is tied
to.
Bjorn Andersson [Tue, 20 Oct 2015 02:43:44 +0000 (10:43 +0800)]
soc: qcom: smd: Split discovery and state change work
Split the two steps of channel discovery and state change handling into
two different workers. This allows for new channels to be found while
we're are probing, which is required as we introduce multi-channel
support.
If built as module would throw up with
drivers/regulator/qcom_smd-regulator.c:67:5: error: redefinition of 'qcom_rpm_set_floor'
drivers/regulator/qcom_smd-regulator.c:89:5: error: redefinition of 'qcom_rpm_set_corner'
Courtney Cavin [Mon, 5 Jan 2015 18:07:57 +0000 (10:07 -0800)]
remoteproc: Support loading firmware from lately mounted fs (HACK)
If the firmware isn't available during boot then table_ptr will be NULL
and subsequent attempts to load the firmware will fail. Move things
around and reattempt the load upon trying to boot the rproc.
Bjorn Andersson [Wed, 10 Dec 2014 19:42:18 +0000 (11:42 -0800)]
remoteproc: qcom-tz: Finish shutdown on timeout
When the remote processor have hit an fatal error, it will not perform
the stop-ack handshake. So we have to finish the shutdown process to not
leave the remote processor in a dangling state (stopping us from
bringing it up again).
Bjorn Andersson [Wed, 10 Dec 2014 19:41:12 +0000 (11:41 -0800)]
remoteproc: qcom-tz: Inform SMD about crashing remotes
When a remote processor crashes there is no indication in SMD, so we
need to inform the SMD driver that it should reset all open channels
associated with the remote processor.