aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/Makefile.am4
-rw-r--r--plugins/linktop/77-mm-linktop-port-types.rules16
-rw-r--r--plugins/meson.build13
-rw-r--r--plugins/tests/test-udev-rules.c11
4 files changed, 40 insertions, 4 deletions
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index d5e34428..53d09f35 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -1002,6 +1002,10 @@ libmm_plugin_linktop_la_CPPFLAGS = \
libmm_plugin_linktop_la_LDFLAGS = $(PLUGIN_COMMON_LINKER_FLAGS)
libmm_plugin_linktop_la_LIBADD = $(builddir)/libhelpers-linktop.la
+dist_udevrules_DATA += linktop/77-mm-linktop-port-types.rules
+
+AM_CFLAGS += -DTESTUDEVRULESDIR_LINKTOP=\"${srcdir}/linktop\"
+
endif
################################################################################
diff --git a/plugins/linktop/77-mm-linktop-port-types.rules b/plugins/linktop/77-mm-linktop-port-types.rules
new file mode 100644
index 00000000..dc2ef0d6
--- /dev/null
+++ b/plugins/linktop/77-mm-linktop-port-types.rules
@@ -0,0 +1,16 @@
+# do not edit this file, it will be overwritten on update
+
+ACTION!="add|change|move|bind", GOTO="mm_linktop_end"
+SUBSYSTEMS=="usb", ATTRS{idVendor}=="230d", GOTO="mm_linktop_generic"
+GOTO="mm_linktop_end"
+
+LABEL="mm_linktop_generic"
+SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
+
+# Linktop HSPADataCard
+# ttyACM0 (if #1): Data port
+# ttyACM1 (if #3): Primary AT port
+ATTRS{idVendor}=="230d", ATTRS{idProduct}=="0001", ENV{.MM_USBIFNUM}=="01", SUBSYSTEM=="tty", ENV{ID_MM_PORT_TYPE_AT_PPP}="1"
+ATTRS{idVendor}=="230d", ATTRS{idProduct}=="0001", ENV{.MM_USBIFNUM}=="03", SUBSYSTEM=="tty", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1"
+
+LABEL="mm_linktop_end"
diff --git a/plugins/meson.build b/plugins/meson.build
index d19ec08d..ef231d30 100644
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -511,19 +511,24 @@ endif
# plugin: linktop
if plugins_options['linktop']
- common_c_args = '-DMM_MODULE_NAME="linktop"'
-
sources = files(
'linktop/mm-plugin-linktop.c',
'linktop/mm-broadband-modem-linktop.c',
)
+ c_args = [
+ '-DMM_MODULE_NAME="linktop"',
+ '-DTESTUDEVRULESDIR_LINKTOP="@0@"'.format(plugins_dir / 'linktop'),
+ ]
+
plugins += {'plugin-linktop': {
'plugin': true,
- 'helper': {'sources': files('linktop/mm-modem-helpers-linktop.c'), 'include_directories': plugins_incs, 'c_args': common_c_args},
- 'module': {'sources': sources, 'include_directories': plugins_incs, 'c_args': common_c_args},
+ 'helper': {'sources': files('linktop/mm-modem-helpers-linktop.c'), 'include_directories': plugins_incs, 'c_args': c_args},
+ 'module': {'sources': sources, 'include_directories': plugins_incs, 'c_args': c_args},
'test': {'sources': files('linktop/tests/test-modem-helpers-linktop.c'), 'include_directories': include_directories('linktop'), 'dependencies': libhelpers_dep},
}}
+
+ plugins_udev_rules += files('linktop/77-mm-linktop-port-types.rules')
endif
# plugin: longcheer (and rebranded dongles)
diff --git a/plugins/tests/test-udev-rules.c b/plugins/tests/test-udev-rules.c
index b7f06d35..fe11c783 100644
--- a/plugins/tests/test-udev-rules.c
+++ b/plugins/tests/test-udev-rules.c
@@ -184,6 +184,14 @@ test_qcom_soc (void)
}
#endif
+#if defined ENABLE_PLUGIN_LINKTOP
+static void
+test_linktop (void)
+{
+ common_test (TESTUDEVRULESDIR_LINKTOP);
+}
+#endif
+
/************************************************************/
int main (int argc, char **argv)
@@ -241,6 +249,9 @@ int main (int argc, char **argv)
#if defined ENABLE_PLUGIN_QCOM_SOC && defined WITH_QMI
g_test_add_func ("/MM/test-udev-rules/qcom-soc", test_qcom_soc);
#endif
+#if defined ENABLE_PLUGIN_LINKTOP
+ g_test_add_func ("/MM/test-udev-rules/linktop", test_linktop);
+#endif
return g_test_run ();
}