Skip to content

Commit 50d6f70

Browse files
author
kas User
committed
modemmanager: Enable QRTR and qcom-soc plugin
1 parent 0362862 commit 50d6f70

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
From: Mrigank Dembla <mdembla@qti.qualcomm.com>
2+
Subject: [PATCH] modemmanager: enable MHI support
3+
4+
This patch enables MHI support over ModemManager.
5+
6+
Upstream-Status: Pending
7+
Signed-off-by: Mrigank Dembla <mdembla@qti.qualcomm.com>
8+
9+
10+
diff --git a/src/80-mm-candidate.rules b/src/80-mm-candidate.rules
11+
index a9c5a6ea..d551307a 100644
12+
--- a/src/80-mm-candidate.rules
13+
+++ b/src/80-mm-candidate.rules
14+
@@ -28,6 +28,20 @@ KERNEL=="cdc-wdm*", SUBSYSTEM=="usbmisc", ENV{ID_MM_CANDIDATE}="1"
15+
# the "wwan_dev" device type (full device, not just one port)
16+
SUBSYSTEMS=="usb", GOTO="mm_candidate_end"
17+
SUBSYSTEM=="wwan", ENV{DEVTYPE}=="wwan_dev", GOTO="mm_candidate_end"
18+
-SUBSYSTEM=="wwan", ENV{ID_MM_CANDIDATE}="1"
19+
+SUBSYSTEM=="wwan", ENV{ID_MM_CANDIDATE}="0", GOTO="mm_candidate_end"
20+
+
21+
+SUBSYSTEM=="wwan", ATTR{type}=="AT", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1"
22+
+SUBSYSTEM=="wwan", ATTR{type}=="MBIM", ENV{ID_MM_PORT_TYPE_MBIM}="1"
23+
+SUBSYSTEM=="wwan", ATTR{type}=="QMI", ENV{ID_MM_PORT_TYPE_QMI}="1"
24+
+SUBSYSTEM=="wwan", ATTR{type}=="QCDM", ENV{ID_MM_PORT_TYPE_QCDM}="1"
25+
+SUBSYSTEM=="wwan", ATTR{type}=="FIREHOSE", ENV{ID_MM_PORT_IGNORE}="1"
26+
+
27+
+# Linux 5.13 does not have "type" attribute yet, match kernel name instead
28+
+SUBSYSTEM=="wwan", KERNEL=="*MBIM", ENV{ID_MM_PORT_TYPE_MBIM}="1"
29+
+SUBSYSTEM=="wwan", KERNEL=="*QMI", ENV{ID_MM_PORT_TYPE_QMI}="1"
30+
+SUBSYSTEM=="wwan", KERNEL=="*AT", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1"
31+
+SUBSYSTEM=="wwan", KERNEL=="*QCDM", ENV{ID_MM_PORT_TYPE_QCDM}="1"
32+
+SUBSYSTEM=="wwan", KERNEL=="*FIREHOSE", ENV{ID_MM_PORT_IGNORE}="1"
33+
+
34+
35+
LABEL="mm_candidate_end"
36+
diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c
37+
index cf6c1fcf..85ed7185 100644
38+
--- a/src/mm-bearer-qmi.c
39+
+++ b/src/mm-bearer-qmi.c
40+
@@ -2442,8 +2442,9 @@ load_settings_from_bearer (MMBearerQmi *self,
41+
if (ctx->multiplex == MM_BEARER_MULTIPLEX_SUPPORT_UNKNOWN) {
42+
if (mm_context_get_test_multiplex_requested ())
43+
ctx->multiplex = MM_BEARER_MULTIPLEX_SUPPORT_REQUESTED;
44+
- else if (!g_strcmp0 (data_port_driver, "ipa"))
45+
- ctx->multiplex = MM_BEARER_MULTIPLEX_SUPPORT_REQUIRED;
46+
+ else if (!g_strcmp0 (data_port_driver, "ipa") ||
47+
+ !g_strcmp0 (data_port_driver, "mhi_net"))
48+
+ ctx->multiplex = MM_BEARER_MULTIPLEX_SUPPORT_REQUIRED;
49+
else
50+
ctx->multiplex = MM_BEARER_MULTIPLEX_SUPPORT_NONE;
51+
}
52+
diff --git a/src/plugins/qcom-soc/77-mm-qcom-soc.rules b/src/plugins/qcom-soc/77-mm-qcom-soc.rules
53+
index 9719f96f..d4e50be8 100644
54+
--- a/src/plugins/qcom-soc/77-mm-qcom-soc.rules
55+
+++ b/src/plugins/qcom-soc/77-mm-qcom-soc.rules
56+
@@ -5,6 +5,7 @@ ACTION!="add|change|move|bind", GOTO="mm_qcom_soc_end"
57+
# Process only known wwan, net and rpmsg ports
58+
SUBSYSTEM=="net", DRIVERS=="bam-dmux", GOTO="mm_qcom_soc_process"
59+
SUBSYSTEM=="net", DRIVERS=="ipa", GOTO="mm_qcom_soc_process"
60+
+SUBSYSTEM=="net", DRIVERS=="mhi_net", GOTO="mm_qcom_soc_process"
61+
SUBSYSTEM=="wwan", DRIVERS=="qcom-q6v5-mss", GOTO="mm_qcom_soc_process"
62+
SUBSYSTEM=="rpmsg", DRIVERS=="qcom-q6v5-mss", GOTO="mm_qcom_soc_process"
63+
GOTO="mm_qcom_soc_end"
64+
diff --git a/src/plugins/qcom-soc/mm-broadband-modem-qmi-qcom-soc.c b/src/plugins/qcom-soc/mm-broadband-modem-qmi-qcom-soc.c
65+
index fa19bd4d..8da9176e 100644
66+
--- a/src/plugins/qcom-soc/mm-broadband-modem-qmi-qcom-soc.c
67+
+++ b/src/plugins/qcom-soc/mm-broadband-modem-qmi-qcom-soc.c
68+
@@ -125,7 +125,8 @@ peek_port_qmi_for_data (MMBroadbandModemQmi *self,
69+
net_port = mm_port_peek_kernel_device (data);
70+
net_port_driver = mm_kernel_device_get_driver (net_port);
71+
72+
- if (g_strcmp0 (net_port_driver, "ipa") == 0)
73+
+ if (g_strcmp0 (net_port_driver, "ipa") == 0 ||
74+
+ g_strcmp0 (net_port_driver, "mhi_net" == 0)
75+
return peek_port_qmi_for_data_ipa (self, data, out_endpoint, error);
76+
77+
if (g_strcmp0 (net_port_driver, "bam-dmux") == 0)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
2+
3+
# --- Enable QRTR support, disable MBIM ---
4+
PACKAGECONFIG:remove = "mbim"
5+
PACKAGECONFIG:append = " qrtr"
6+
7+
# --- Allow QRTR to be enabled by meson ---
8+
EXTRA_OEMESON:remove = "-Dqrtr=false"
9+
10+
# --- Enable Qualcomm SoC plugin (required for QRTR/MM on QCOM) ---
11+
EXTRA_OECONF:append = " --enable-plugin-qcom-soc"
12+
13+
SRC_URI += "file://0001-enable-mhi-support.patch"

0 commit comments

Comments
 (0)