diff options
-rw-r--r-- | plugins/Makefile.am | 4 | ||||
-rw-r--r-- | plugins/linktop/77-mm-linktop-port-types.rules | 16 | ||||
-rw-r--r-- | plugins/meson.build | 13 | ||||
-rw-r--r-- | plugins/tests/test-udev-rules.c | 11 |
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 (); } |