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

Commit 36d642bd authored by Kyle Yan's avatar Kyle Yan Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ADSPRPC: Add snapshot of RPC driver" into msm-4.8

parents 11a4004d 69e1ab03
Loading
Loading
Loading
Loading
+77 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. FastRPC Driver

The MSM FastRPC driver implements an IPC (Inter-Processor Communication)
mechanism that allows for clients to transparently make remote method
invocations across DSP and APPS boundaries. This enables developers
to offload tasks to the DSP and free up the application processor for
other tasks.

Required properties:
- compatible :	Must be one of "qcom,msm-fastrpc-adsp" or
		"qcom,msm-fastrpc-compute"

Optional properties:
- qcom,fastrpc-glink:	Flag to use glink instead of smd for IPC

Optional subnodes:
- qcom,msm_fastrpc_compute_cb :	Child nodes representing the compute context
				banks
Subnode Required properties:
- compatible :		Must be "qcom,msm-fastrpc-compute-cb"
- label:		Label describing the channel this context bank belongs to
- iommus : 		A list of phandle and IOMMU specifier pairs that describe the
			IOMMU master interfaces of the device

Example:
	qcom,msm_fastrpc {
		compatible = "qcom,msm-fastrpc-adsp";
		qcom,fastrpc-glink;

		qcom,msm_fastrpc_compute_cb_1 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 8>,
		};
		qcom,msm_fastrpc_compute_cb_2 {
			compatible = "qcom,msm-fastrpc-compute-cb";
			label = "adsprpc-smd";
			iommus = <&lpass_q6_smmu 9>,
		};
	};

Legacy SMMU v1/v2:

Required properties:
- compatible : Must be "qcom,msm-fastprc-legacy-compute-cb"

Required subnode:
- qcom,msm_fastrpc_compute_cb : Child nodes representing the compute context
                                banks

Required subnode properties:
- qcom,adsp-shared-phandle: phandle that describe the context bank handle
- qcom,adsp-shared-sids : A list of SID associated with the context bank
- qcom,virtual-addr-pool : Virtual address range that the context bank
                           will be using

Example:
        qcom,adsprpc_domains {
                compatible = "qcom,msm-fastrpc-legacy-compute-cb";
                qcom,msm_fastrpc_compute_cb {
                       qcom,adsp-shared-phandle = <&adsp_shared>;
                       qcom,adsp-shared-sids = <0x8 0x9>;
                       qcom,virtual-addr-pool = <0x80000000 0x7FFFFFFF>;
                };
        };

Remote Heap:

Required properties:
- compatible : Must be "qcom,msm-adsprpc-mem-region"
- memory-region : CMA region which is owned by this device

Example:
       qcom,adsprpc-mem {
               compatible = "qcom,msm-adsprpc-mem-region";
               memory-region = <&adsp_mem>;
       };
+9 −0
Original line number Diff line number Diff line
@@ -592,5 +592,14 @@ config TILE_SROM

source "drivers/char/xillybus/Kconfig"

config MSM_ADSPRPC
        tristate "QTI ADSP RPC driver"
        depends on MSM_GLINK
        help
          Provides a communication mechanism that allows for clients to
          make remote method invocations across processor boundary to
          applications DSP processor. Say M if you want to enable this
          module.

endmenu
+4 −0
Original line number Diff line number Diff line
@@ -61,3 +61,7 @@ obj-$(CONFIG_TILE_SROM) += tile-srom.o
obj-$(CONFIG_DIAG_CHAR)		+= diag/
obj-$(CONFIG_XILLYBUS)		+= xillybus/
obj-$(CONFIG_POWERNV_OP_PANEL)	+= powernv-op-panel.o
obj-$(CONFIG_MSM_ADSPRPC)       += adsprpc.o
ifdef CONFIG_COMPAT
obj-$(CONFIG_MSM_ADSPRPC)       += adsprpc_compat.o
endif
Loading