aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/qcom-soc/77-mm-qcom-soc.rules
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qcom-soc/77-mm-qcom-soc.rules')
-rw-r--r--src/plugins/qcom-soc/77-mm-qcom-soc.rules40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/plugins/qcom-soc/77-mm-qcom-soc.rules b/src/plugins/qcom-soc/77-mm-qcom-soc.rules
new file mode 100644
index 00000000..9719f96f
--- /dev/null
+++ b/src/plugins/qcom-soc/77-mm-qcom-soc.rules
@@ -0,0 +1,40 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION!="add|change|move|bind", GOTO="mm_qcom_soc_end"
+
+# Process only known wwan, net and rpmsg ports
+SUBSYSTEM=="net", DRIVERS=="bam-dmux", GOTO="mm_qcom_soc_process"
+SUBSYSTEM=="net", DRIVERS=="ipa", GOTO="mm_qcom_soc_process"
+SUBSYSTEM=="wwan", DRIVERS=="qcom-q6v5-mss", GOTO="mm_qcom_soc_process"
+SUBSYSTEM=="rpmsg", DRIVERS=="qcom-q6v5-mss", GOTO="mm_qcom_soc_process"
+GOTO="mm_qcom_soc_end"
+
+LABEL="mm_qcom_soc_process"
+
+# Flag the port as being part of the SoC
+ENV{ID_MM_QCOM_SOC}="1"
+
+#
+# Add a common physdev UID to all ports in the Qualcomm SoC, so that they
+# are all bound together to the same modem object.
+#
+# The MSM8916, MSM8974, .... Qualcomm SoCs use the combination of RPMSG/WWAN
+# based control ports plus BAM-DMUX based network ports.
+#
+ENV{ID_MM_PHYSDEV_UID}="qcom-soc"
+
+# port type hints for the rpmsgexport-ed ports
+SUBSYSTEM=="rpmsg", ATTR{name}=="DATA*", ATTR{name}=="*_CNTL", ENV{ID_MM_PORT_TYPE_QMI}="1"
+SUBSYSTEM=="rpmsg", ATTR{name}=="DATA*", ATTR{name}!="*_CNTL", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
+
+# ignore every other port without explicit hints
+SUBSYSTEM=="rpmsg", ENV{ID_MM_PORT_TYPE_QMI}!="1", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}!="1", ENV{ID_MM_PORT_IGNORE}="1"
+
+# explicitly ignore ports intended for USB tethering (DATA40, DATA40_CNTL)
+SUBSYSTEM=="rpmsg", ATTR{name}=="DATA40*", ENV{ID_MM_PORT_IGNORE}="1"
+KERNEL=="rmnet_usb*", ENV{ID_MM_PORT_IGNORE}="1"
+
+# flag all rpmsg ports under this plugin as candidate
+KERNEL=="rpmsg*", SUBSYSTEM=="rpmsg", ENV{ID_MM_CANDIDATE}="1"
+
+LABEL="mm_qcom_soc_end"