aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2024-06-21 09:57:19 +0000
committerAleksander Morgado <aleksandermj@chromium.org>2024-06-21 09:57:19 +0000
commit06ccd09befe611cd184a2e1060bbe193453fe743 (patch)
treec0a64d35682ab83afff17f37bbb5722f10599dc9 /src
parentf7b351fc85f6cacb5d8b4483b052834be3aefe17 (diff)
fibocom: disable AT over MBIM in NL668
The AT over MBIM support is exposed as a supported service, but the underlying implementation is not good enough.
Diffstat (limited to 'src')
-rw-r--r--src/plugins/fibocom/77-mm-fibocom-port-types.rules3
-rw-r--r--src/plugins/fibocom/mm-port-mbim-fibocom.c4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/fibocom/77-mm-fibocom-port-types.rules b/src/plugins/fibocom/77-mm-fibocom-port-types.rules
index c8176452..dfc3dd03 100644
--- a/src/plugins/fibocom/77-mm-fibocom-port-types.rules
+++ b/src/plugins/fibocom/77-mm-fibocom-port-types.rules
@@ -22,6 +22,9 @@ ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a0", ENV{.MM_USBIFNUM}=="02", SUBS
ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a0", ENV{.MM_USBIFNUM}=="03", SUBSYSTEM=="tty", ENV{ID_MM_PORT_TYPE_AT_SECONDARY}="1"
ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a0", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_PORT_IGNORE}="1"
+# Fibocom NL668 doesn't support AT over MBIM properly
+ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a0", ENV{ID_MM_FIBOCOM_AT_OVER_MBIM_DISABLED}="1"
+
# Fibocom NL668 doesn't support multiplexing properly
ATTRS{idVendor}=="2cb7", ATTRS{idProduct}=="01a0", ENV{ID_MM_MAX_MULTIPLEXED_LINKS}="0"
diff --git a/src/plugins/fibocom/mm-port-mbim-fibocom.c b/src/plugins/fibocom/mm-port-mbim-fibocom.c
index 653a3a82..a5ec213b 100644
--- a/src/plugins/fibocom/mm-port-mbim-fibocom.c
+++ b/src/plugins/fibocom/mm-port-mbim-fibocom.c
@@ -64,6 +64,10 @@ iface_port_at_check_support (MMIfacePortAt *_self,
if (!mm_port_mbim_supports_command (MM_PORT_MBIM (self), MBIM_SERVICE_FIBOCOM, MBIM_CID_FIBOCOM_AT_COMMAND)) {
mm_obj_msg (self, "MBIM device is not AT capable");
self->priv->at_over_mbim = FEATURE_NOT_SUPPORTED;
+ } else if (mm_kernel_device_get_property_as_boolean (mm_port_peek_kernel_device (MM_PORT (self)),
+ "ID_MM_FIBOCOM_AT_OVER_MBIM_DISABLED")) {
+ mm_obj_msg (self, "MBIM device is AT capable but support is disabled");
+ self->priv->at_over_mbim = FEATURE_NOT_SUPPORTED;
} else {
mm_obj_msg (self, "MBIM device is AT capable");
self->priv->at_over_mbim = FEATURE_SUPPORTED;