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

Commit 9f1af0b6 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge changes I2b415042,I36bbc36b,I2c28dadf into msm-4.14

* changes:
  ARM: dts: msm: Add qsee_ipc_irq_bridge nodes for SM8150
  soc: qcom: Add snapshot of qsee_ipc_irq_bridge driver
  soc: qcom: glink_pkt: Remove incorrect mutex_unlock
parents 61faa783 020f4b68
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. Secure Execution Environment IPC Interrupt Bridge

[Root level node]
Required properties:
-compatible : should be "qcom,qsee-ipc-irq-bridge";

[Second level nodes]
qcom,qsee-ipc-irq-subsystem
Required properties:
-qcom,dev-name: the bridge device name
-interrupt: IPC interrupt line from remote subsystem to QSEE
-label : The name of this subsystem.

Required properties if interrupt type is IRQ_TYPE_LEVEL_HIGH[4]:
-qcom,rx-irq-clr : the register to clear the level triggered rx interrupt
-qcom,rx-irq-clr-mask : the bitmask to clear the rx interrupt

Example:

	qcom,qsee_ipc_irq_bridge {
		compatible = "qcom,qsee-ipc-irq-bridge";

		qcom,qsee-ipc-irq-spss {
			qcom,rx-irq-clr = <0x1d08008 0x4>;
			qcom,rx-irq-clr-mask = <0x2>;
			qcom,dev-name = "qsee_ipc_irq_spss";
			interrupts = <0 349 4>;
			label = "spss";
		};
	};
+11 −0
Original line number Diff line number Diff line
@@ -2279,6 +2279,17 @@
		#interrupt-cells = <3>;
	};

	qcom,qsee_irq_bridge {
		compatible = "qcom,qsee-ipc-irq-bridge";

		qcom,qsee-ipc-irq-spss {
			qcom,dev-name = "qsee_ipc_irq_spss";
			label = "spss";
			interrupt-parent = <&intsp>;
			interrupts = <1 0 IRQ_TYPE_EDGE_RISING>;
		};
	};

	qcom,glink {
		compatible = "qcom,glink";
		#address-cells = <1>;
+10 −0
Original line number Diff line number Diff line
@@ -453,6 +453,16 @@ config QSEE_IPC_IRQ
	  Clients can use this driver to avoid adding common interrupt handling
	  code.

config QSEE_IPC_IRQ_BRIDGE
	tristate "QSEE IPC Interrupt Bridge"
	select QSEE_IPC_IRQ
	help
	  This module enables bridging an Inter-Processor Communication(IPC)
	  interrupt from a remote subsystem directed towards Qualcomm
	  Technologies, Inc. Secure Execution Environment(QSEE) to userspace.
	  The interrupt will be propagated through a character device that
	  userspace clients can poll on.

config QCOM_GLINK
	tristate "GLINK Probe Helper"
	depends on RPMSG_QCOM_GLINK_SMEM
+1 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ ifdef CONFIG_MSM_SUBSYSTEM_RESTART
endif
obj-$(CONFIG_QCOM_EUD) += eud.o
obj-$(CONFIG_QSEE_IPC_IRQ) += qsee_ipc_irq.o
obj-$(CONFIG_QSEE_IPC_IRQ_BRIDGE) += qsee_ipc_irq_bridge.o
obj-$(CONFIG_QCOM_GLINK) += glink_probe.o
obj-$(CONFIG_QCOM_GLINK_PKT) += glink_pkt.o
obj-$(CONFIG_QCOM_QDSS_BRIDGE) += qdss_bridge.o
+0 −2
Original line number Diff line number Diff line
@@ -352,9 +352,7 @@ ssize_t glink_pkt_read(struct file *file, char __user *buf,

	if (!completion_done(&gpdev->ch_open)) {
		GLINK_PKT_ERR("%s channel in reset\n", gpdev->ch_name);
		mutex_unlock(&gpdev->lock);
		return -ENETRESET;

	}

	GLINK_PKT_INFO("begin for %s by %s:%ld ref_cnt[%d]\n",
Loading