Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3919caa authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'rproc-v4.11' of git://github.com/andersson/remoteproc

Pull remoteproc updates from Bjorn Andersson:
 "This introduces support for booting the dedicated sensor core in the
  Qualcomm MSM8996, updates the Qualcomm ADSP and Hexagon drivers to
  utilize SMD subdevice helpers for properly handle shutdowns and
  restarts of the remoteproc, add virtio support to the ST remoteproc
  and refactor the Qualcomm Hexagon driver to handle variations between
  platforms.

  The support code for parsing, loading and authenticating Qualcomm
  firmware files (MDT) is refactored and move to drivers/soc/qcom, to
  allow for non-remoteproc drivers to utilize this.

  Finally it brings some cleanups to the remoteproc core"

* tag 'rproc-v4.11' of git://github.com/andersson/remoteproc: (27 commits)
  remoteproc: qcom: mdt_loader: Use signed type for offset
  remoteproc: st: add virtio communication support
  remoteproc: st: correct probe error management
  remoteproc: Modify the function names
  remoteproc: Reduce asynchronous request_firmware to auto-boot only
  remoteproc: Drop qcom_scm_pas_supported() from adsp_probe()
  MAINTAINERS: Add missing rpmsg include path
  remoteproc: qcom: Use common SMD edge handler
  remoteproc: qcom: wcnss: Make SMD handling common
  remoteproc: Move qcom_mdt_loader into drivers/soc/qcom
  remoteproc: qcom: mdt_loader: Refactor MDT loader
  remoteproc: qcom: mdt_loader: Don't overwrite firmware object
  remoteproc: qcom: Extract non-mdt related helper
  remoteproc: qcom: q6v5: Decouple driver from MDT loader
  remoteproc: qcom: q6v5: Remove mss supply from 8916
  remoteproc: qcom: fix initializers for qcom_mss_reg_res array
  remoteproc: Drop firmware_loading_complete
  remoteproc: Add RPROC_DELETED state
  remoteproc: Move rproc_delete_debug_dir() to rproc_del()
  remoteproc: qcom: Add SLPI rproc support to load and boot slpi proc.
  ...
parents 15192b02 01625cc5
Loading
Loading
Loading
Loading
+38 −3
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ on the Qualcomm ADSP Hexagon core.
	Definition: must be one of:
		    "qcom,msm8974-adsp-pil"
		    "qcom,msm8996-adsp-pil"
		    "qcom,msm8996-slpi-pil"

- interrupts-extended:
	Usage: required
@@ -24,13 +25,13 @@ on the Qualcomm ADSP Hexagon core.
- clocks:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: reference to the xo clock to be held on behalf of the
		    booting Hexagon core
	Definition: reference to the xo clock and optionally aggre2 clock to be
		    held on behalf of the booting Hexagon core

- clock-names:
	Usage: required
	Value type: <stringlist>
	Definition: must be "xo"
	Definition: must be "xo" and optionally include "aggre2"

- cx-supply:
	Usage: required
@@ -38,6 +39,12 @@ on the Qualcomm ADSP Hexagon core.
	Definition: reference to the regulator to be held on behalf of the
		    booting Hexagon core

- px-supply:
	Usage: required
	Value type: <phandle>
	Definition: reference to the px regulator to be held on behalf of the
		    booting Hexagon core

- memory-region:
	Usage: required
	Value type: <phandle>
@@ -96,3 +103,31 @@ ADSP, as it is found on MSM8974 boards.
			qcom,smd-edge = <1>;
		};
	};

The following example describes the resources needed to boot control the
SLPI, as it is found on MSM8996 boards.

	slpi {
		compatible = "qcom,msm8996-slpi-pil";
		interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "wdog",
				  "fatal",
				  "ready",
				  "handover",
				  "stop-ack";

		clocks = <&rpmcc MSM8996_RPM_SMD_XO_CLK_SRC>,
		         <&rpmcc MSM8996_RPM_SMD_AGGR2_NOC_CLK>;
		clock-names = "xo", "aggre2";

		cx-supply = <&pm8994_l26>;
		px-supply = <&pm8994_lvs2>;

		memory-region = <&slpi_region>;
		qcom,smem-states = <&slpi_smp2p_out 0>;
		qcom,smem-state-names = "stop";
        };
+3 −1
Original line number Diff line number Diff line
@@ -7,7 +7,9 @@ on the Qualcomm Hexagon core.
	Usage: required
	Value type: <string>
	Definition: must be one of:
		    "qcom,q6v5-pil"
		    "qcom,q6v5-pil",
		    "qcom,msm8916-mss-pil",
		    "qcom,msm8974-mss-pil"

- reg:
	Usage: required
+1 −0
Original line number Diff line number Diff line
@@ -10548,6 +10548,7 @@ S: Maintained
F:	drivers/rpmsg/
F:	Documentation/rpmsg.txt
F:	include/linux/rpmsg.h
F:	include/linux/rpmsg/

RENESAS CLOCK DRIVERS
M:	Geert Uytterhoeven <geert+renesas@glider.be>
+14 −4
Original line number Diff line number Diff line
@@ -7,6 +7,9 @@ config REMOTEPROC
	select FW_LOADER
	select VIRTIO
	select VIRTUALIZATION
	help
	  Support for remote processors (such as DSP coprocessors). These
	  are mainly used on embedded systems.

if REMOTEPROC

@@ -25,11 +28,11 @@ config OMAP_REMOTEPROC

	  Currently only supported on OMAP4.

	  Usually you want to say y here, in order to enable multimedia
	  Usually you want to say Y here, in order to enable multimedia
	  use-cases to run on your platform (multimedia codecs are
	  offloaded to remote DSP processors using this framework).

	  It's safe to say n here if you're not interested in multimedia
	  It's safe to say N here if you're not interested in multimedia
	  offloading or just want a bare minimum kernel.

config WKUP_M3_RPROC
@@ -73,14 +76,16 @@ config QCOM_ADSP_PIL
	depends on OF && ARCH_QCOM
	depends on REMOTEPROC
	depends on QCOM_SMEM
	depends on QCOM_SMD || (COMPILE_TEST && QCOM_SMD=n)
	select MFD_SYSCON
	select QCOM_MDT_LOADER
	select QCOM_RPROC_COMMON
	select QCOM_SCM
	help
	  Say y here to support the TrustZone based Peripherial Image Loader
	  for the Qualcomm ADSP remote processors.

config QCOM_MDT_LOADER
config QCOM_RPROC_COMMON
	tristate

config QCOM_Q6V5_PIL
@@ -88,8 +93,9 @@ config QCOM_Q6V5_PIL
	depends on OF && ARCH_QCOM
	depends on QCOM_SMEM
	depends on REMOTEPROC
	depends on QCOM_SMD || (COMPILE_TEST && QCOM_SMD=n)
	select MFD_SYSCON
	select QCOM_MDT_LOADER
	select QCOM_RPROC_COMMON
	select QCOM_SCM
	help
	  Say y here to support the Qualcomm Peripherial Image Loader for the
@@ -102,6 +108,7 @@ config QCOM_WCNSS_PIL
	depends on QCOM_SMEM
	depends on REMOTEPROC
	select QCOM_MDT_LOADER
	select QCOM_RPROC_COMMON
	select QCOM_SCM
	help
	  Say y here to support the Peripheral Image Loader for the Qualcomm
@@ -111,6 +118,9 @@ config ST_REMOTEPROC
	tristate "ST remoteproc support"
	depends on ARCH_STI
	depends on REMOTEPROC
	select MAILBOX
	select STI_MBOX
	select RPMSG_VIRTIO
	help
	  Say y here to support ST's adjunct processors via the remote
	  processor framework.
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ obj-$(CONFIG_OMAP_REMOTEPROC) += omap_remoteproc.o
obj-$(CONFIG_WKUP_M3_RPROC)		+= wkup_m3_rproc.o
obj-$(CONFIG_DA8XX_REMOTEPROC)		+= da8xx_remoteproc.o
obj-$(CONFIG_QCOM_ADSP_PIL)		+= qcom_adsp_pil.o
obj-$(CONFIG_QCOM_MDT_LOADER)		+= qcom_mdt_loader.o
obj-$(CONFIG_QCOM_RPROC_COMMON)		+= qcom_common.o
obj-$(CONFIG_QCOM_Q6V5_PIL)		+= qcom_q6v5_pil.o
obj-$(CONFIG_QCOM_WCNSS_PIL)		+= qcom_wcnss_pil.o
qcom_wcnss_pil-y			+= qcom_wcnss.o
Loading