Migrate the Hexagon V5 PAS (ADSP) driver to using the newly extracted
helper functions. The use of the handover callback does introduce latent
disabling of proxy resources. But apart from this there should be no
change in functionality.
Reviewed-by: Rohit kumar <rohitkr@codeaurora.org>
Reviewed-by: Sricharan R <sricharan@codeaurora.org>
Tested-by: Rohit kumar <rohitkr@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
The sysmon client communicates either via a dedicated SMD/GLINK channel
or via QMI encoded messages over IPCROUTER with remote processors in
order to perform graceful shutdown and inform about other remote
processors shutting down.
Acked-By: Chris Lew <clew@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Register MDT segments with the remoteproc core dump functionality in
order to include them in a core dump, in case of a recovery of the remote
processor.
Signed-off-by: Sarangdhar Joshi <spjoshi@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
In order to implement support for grabbing core dumps in remoteproc it's
necessary to know the relocated base of the image, as the offsets from
the virtual memory base might not be based on the physical address.
Return the adjusted physical base address to the caller.
Acked-by: Andy Gross <andy.gross@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
remoteproc is writing '\0' in the shared mem region. This
region is shared among multiple clients that are also trying
to read. Hence they miss first character.
Remove this null character write, as this mem area is
supposed to be Read only.
Further during every subsystem reboot, this region is
initialized with default, hence no need to write this
region.
Signed-off-by: Jitendra Sharma <shajit@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
As the core now deals with the lack of a resource table, remove the
dangling custom dummy implementations of find_rsc_table from drivers.
Reviewed-By: Loic Pallardy <loic.pallardy@st.com>
Tested-By: Loic Pallardy <loic.pallardy@st.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
There are currently a few different schemes used for overriding fw_ops
or parts of fw_ops. Merge fw_ops into rproc_ops and expose the default
ELF-loader symbols so that they can be assigned by the drivers.
To keep backwards compatibility with the "default" case, a driver not
specifying the "load" operation is assumed to want the full ELF-loader
suit of functions.
Reviewed-By: Loic Pallardy <loic.pallardy@st.com>
Tested-By: Loic Pallardy <loic.pallardy@st.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This extends the Qualcomm GLINK implementation to support the additional
features used for communicating with modem and DSP coprocessors in modern
Qualcomm platforms.
In addition to this there's support for placing virtio RPMSG buffers in
non-System RAM.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJZswd9AAoJEAsfOT8Nma3FSigQALyq2wNtf60tkTKW0f2K8cM6
JpnEKAKqO1t5ZkokEevT05PLT4rqXuidrDVOBJ3VQ7LtSqJOiTjGyN9YM8t+WBVG
ts0Yg69+wUxBATg9iM2JiUsKn8gH8swUAtf16dmkL/Ca8BJKOHGYTUjADfwuFrEg
EAGcLZnlwz736xdo9qZu/Ke9rItz6CDOD3AphbpJbcv7Wj2F/mEuqMZjfLk+1Mo8
C3wXx9jIzW1siNtT0OY9raUNV5gLaGS2zZ+DYwrwjND7Eh0TqeLxyJ1OS7f2kOZ5
P6zcrYw02WbDVW7LUzVegj5PejZm/wdFZ5hSvishEfZZVT+wGHBK34mfObe0moJZ
Wp8jFSXKqECIEU3x/2DtPAHi+mittDpQ3FCkElWKJRD6B3HTySHjvM0lOor+zYKB
gRX4QUR6jwkSRAbV6GP24Z8SL9kU6TXOSoOQvuzuKhB30JzADJPuQnGZR0SftYiH
YJG/RT9FklbljWP9hIgey3QPNHPoL3IzNBU2iyEjdraabmNaFEb++wpLdpCZdnGf
1HMLrMfUmd3QKRtXvT+5Q6CjnfzwFk1ii1naN3Ky9rar3WRtij5bzo8eveR8i9ag
DtWA88N9mnpSUao14o5vKN830q3/fkwW6HyT0nCd59Wq94cMNfiMdFPVXvO0xVAF
mjP4JXHbqNhdJySWR4Du
=PVGN
-----END PGP SIGNATURE-----
Merge tag 'rpmsg-v4.14' of git://github.com/andersson/remoteproc
Pull rpmsg updates from Bjorn Andersson:
"This extends the Qualcomm GLINK implementation to support the
additional features used for communicating with modem and DSP
coprocessors in modern Qualcomm platforms.
In addition to this there's support for placing virtio RPMSG buffers
in non-System RAM"
* tag 'rpmsg-v4.14' of git://github.com/andersson/remoteproc: (29 commits)
rpmsg: glink: initialize ret to zero to ensure error status check is correct
rpmsg: glink: fix null pointer dereference on a null intent
dt-bindings: soc: qcom: Extend GLINK to cover SMEM
remoteproc: qcom: adsp: Allow defining GLINK edge
rpmsg: glink: Export symbols from common code
rpmsg: glink: Release idr lock before returning on error
rpmsg: glink: Handle remote rx done command
rpmsg: glink: Request for intents when unavailable
rpmsg: glink: Use the intents passed by remote
rpmsg: glink: Receive and store the remote intent buffers
rpmsg: glink: Add announce_create ops and preallocate intents
rpmsg: glink: Add rx done command
rpmsg: glink: Make RX FIFO peak accessor to take an offset
rpmsg: glink: Use the local intents when receiving data
rpmsg: glink: Add support for TX intents
rpmsg: glink: Fix idr_lock from mutex to spinlock
rpmsg: glink: Add support for transport version negotiation
rpmsg: glink: Introduce glink smem based transport
rpmsg: glink: Do a mbox_free_channel in remove
rpmsg: glink: Return -EAGAIN when there is no FIFO space
...
Introduce the GLINK subdev, which allows the definition of a GLINK edge
as child of a remoteproc.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR
Signed-off-by: Himanshu Jha <himanshujha199640@gmail.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This adds the remoteproc part of subsystem restart, which is responsible
for emitting notifications to other processors in the system about a
dying remoteproc instance.
These notifications are propagated to the various communication systems
in the various remote processors to shut down communication links that
was left in a dangling state as the remoteproc was stopped (or crashed).
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
SCM call to check whether Peripheral Authentication Service (PAS) is
supported returns false for ADSP on MSM8996. Drop this call from the
driver so that the probe() function succeeds for ADSP PIL device.
Signed-off-by: Sarangdhar Joshi <spjoshi@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Call the common SMD edge handler to instantiate subdevices to bring
associated SMD edges up and down as the remoteproc is started and
stopped.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
With the remoteproc parts cleaned out of the MDT loader we can move it
to drivers/soc/qcom.
Acked-by: Andy Gross <andy.gross@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Pushing the SCM calls into the MDT loader reduces duplication in the
callers and allows for non-remoteproc clients to use the helper for
parsing and loading MDT files.
Cc: Andy Gross <andy.gross@linaro.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
In preparation for moving the mdt loader out of remoteproc let's move
the somewhat unrelated resource table dummy helper to a Qualcomm
"common" file.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This patch add additional clock and regulator resource which are
initialized based on compatible and has no impact on existing driver
working. This resourse addition enable the existing driver to handle.
low pass sensor processor device also.
Signed-off-by: Avaneesh Kumar Dwivedi <akdwived@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This patch initialize certain driver related data based on compatible
string. This enable driver to handle more than one similar device in
by differentiating in probe their private data.
Signed-off-by: Avaneesh Kumar Dwivedi <akdwived@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
The transition from rproc_put to rproc_free raced with the review of the
Qualcomm ADSP and ST SLIMproc drivers and these where not updated
accordingly.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Add xo clock support required to boot up Qualcomm ADSP processor.
The ADSP remoteproc driver keeps xo clock enabled until the
driver receives "handover" irq, in order to allow ADSP processor
to vote for xo clock with rpm.
Signed-off-by: Sarangdhar Joshi <spjoshi@codeaurora.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
The Qualcomm ADSP Peripheral Image Loader is used on a variety of
different Qualcomm platforms for loading firmware into and controlling
the Hexagon based ADSP.
Signed-off-by: Bjorn Andersson <bjorn.andersson@sonymobile.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>