
The udev rules expect matches based on shell globbing pattern, not based on regex. This means that "[0-9]*" doesn't mean "zero or more digits", it actually means "one digit and zero or more other characters". So, avoid the regex like match, even if it worked for us, because it didn't mean what we thought it meant, plus, it breaks our custom udev rules processing logic, in which we convert the input patterns into real regex expressions. See https://bbs.archlinux.org/viewtopic.php?pid=1415916#p1415916 While at it, also make sure that the wildcard matching is done exclusively for prefix and suffix matches, never in the middle of a string, or our custom rules parser would not match correctly.
41 lines
1.6 KiB
Plaintext
41 lines
1.6 KiB
Plaintext
# 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"
|