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

Commit fa6135ec authored by Chris Lew's avatar Chris Lew
Browse files

soc: qcom: Add snapshot of G-Link driver



This is a snapshot of the G-Link driver taken as of msm-4.4
commit <aaf356abef2> (Merge "scsi: ufs: add 2 lane support").

In addition, fix coding style issues, refactor usage
of waitqueue_active and remove BUG_ON() calls.

CRs-Fixed: 1059650
Change-Id: Ia1f888b19fa6102ac3fa0c9d0c8bb2447d3d4346
Signed-off-by: default avatarChris Lew <clew@codeaurora.org>
parent 7e4fa652
Loading
Loading
Loading
Loading
+1239 −0

File added.

Preview size limit exceeded, changes collapsed.

+22 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. G-link QoS Configuration

Required properties:
-compatible : should be "qcom,glink-qos-config"
-qcom,flow-info : A table of MTU transmission time specific for a power state.
		The total number of entries in the table should be equal to the
		number of supported flows.
-qcom,mtu-size : The MTU size for which the qos elements are configured.
-qcom,tput-stats-cycle: The number of allowable cycles for a packet to be
			transmitted without its priority being re-evaluated.

Example:

	qcom,glink-qos-config-adsp {
		compatible = "qcom,glink-qos-config";
		qcom,flow-info = <0x80 0x0>,
				 <0x70 0x1>,
				 <0x60 0x2>,
				 <0x50 0x3>;
		qcom,mtu-size = <0x800>;
		qcom,tput-stats-cycle = <0xa>;
	};
+35 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. G-link Mailbox Transport

Required properties:
-compatible : should be "qcom,glink-mailbox-xprt"
-reg : the mailbox register to store the location of the fifo
	the mailbox register to store the size of the fifo
	the irq register base address for triggering interrupts
	the register to enable sending interrupts
	the register to reset the rx irq line
-reg-names : "mbox-loc-addr" - string to identify the mailbox location reg
		"mbox-loc-size" - string to identify the mailbox size reg
		"irq-reg-base" - string to identify the irq register region
		"irq-rx-reset" - string to identify the rx irq reset register
-qcom,irq-mask : the bitmask to trigger an interrupt
-interrupts : the receiving interrupt line
-label : the name of the subsystem this link connects to
-qcom,tx-ring-size: size of the transmit ring buffer in bytes
-qcom,rx-ring-size: size of the receive ring buffer in bytes

Example:

	qcom,glink-mailbox-xprt-spss@1d05008 {
		compatible = "qcom,glink-mailbox-xprt";
		reg = <0x1d05008 0x8>,
			<0x1d05010 0x4>,
			<0x1d06004 0x4>,
			<0x1d06020 0x4>;
		reg-names = "mbox-loc-addr", "mbox-loc-size", "irq-reg-base",
			"irq-rx-reset";
		qcom,irq-mask = <0x1000>;
		interrupts = <0 25 4>;
		label = "spss";
		qcom,tx-ring-size = <0x400>;
		qcom,rx-ring-size = <0x400>;
	};
+21 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. G-link RPM Native Transport

Required properties:
-compatible : should be "qcom,glink-rpm-native-xprt"
-reg : the location and size of RPM message RAM
	the irq register base address for triggering interrupts
-reg-names : "msgram" - string to identify the RPM message RAM region
		"irq-reg-base" - string to identify the irq register region
-qcom,irq-mask : the bitmark to trigger an interrupt
-interrupts : the receiving interrupt line

Example:

	qcom,glink-rpm-native-xprt@68000 {
		compatible = "qcom,glink-rpm-native-xprt";
		reg = <0x68000 0x8000>,
			<0xfa006008 0x4>;
		reg-names = "msgram", "irq-reg-base";
		qcom,irq-mask = <0x1000>;
		interrupts = <0 25 1>;
	};
+54 −0
Original line number Diff line number Diff line
Qualcomm Technologies, Inc. G-link SMEM Native Transport

Required properties:
-compatible : should be "qcom,glink-smem-native-xprt"
-reg : the location and size of shared memory
	the irq register base address for triggering interrupts
-reg-names : "smem" - string to identify the shared memory region
		"irq-reg-base" - string to identify the irq register region
-qcom,irq-mask : the bitmark to trigger an interrupt
-interrupts : the receiving interrupt line
-label : the name of the subsystem this link connects to

Optional properties:
-qcom,qos-config: Reference to the qos configuration elements.It depends on
		ramp-time.
-qcom,ramp-time: Worst case time in microseconds to transition to this power
		state. Power states are numbered by array index position.

Example:

	qcom,glink-smem-native-xprt-modem@fa00000 {
		compatible = "qcom,glink-smem-native-xprt";
		reg = <0xfa00000 0x200000>,
			<0xfa006008 0x4>;
		reg-names = "smem", "irq-reg-base";
		qcom,irq-mask = <0x1000>;
		interrupts = <0 25 1>;
		label = "mpss";
	};

	qcom,glink-smem-native-xprt-adsp@fa00000 {
		compatible = "qcom,glink-smem-native-xprt";
		reg = <0xfa00000 0x200000>,
			<0xfa006008 0x4>;
		reg-names = "smem", "irq-reg-base";
		qcom,irq-mask = <0x1000>;
		interrupts = <0 25 1>;
		label = "lpass";
		qcom,qos-config = <&glink_qos_adsp>;
		qcom,ramp-time = <0x10>,
				     <0x20>,
				     <0x30>,
				     <0x40>;
	};

	glink_qos_adsp: qcom,glink-qos-config-adsp {
		compatible = "qcom,glink-qos-config";
		qcom,flow-info = <0x80 0x0>,
				 <0x70 0x1>,
				 <0x60 0x2>,
				 <0x50 0x3>;
		qcom,mtu-size = <0x800>;
		qcom,tput-stats-cycle = <0xa>;
	};
Loading