diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2016-09-18 14:08:20 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2016-09-18 14:08:20 +0200 |
commit | aa0e1081070b1062c696d31ed3c68e9511733ad1 (patch) | |
tree | b30826dc7c9bd5ae2b807bda98f480890b25074d | |
parent | 546d33db6c8faa9a6ab48ae3e00a0c8339a576a8 (diff) |
udev: fix SUBSYSTEMS and ATTRS{idVendor} checks
Rules with a single condition where a parent property is checked with != don't
work properly. E.g.:
SUBSYSTEMS!="usb", GOTO="end"
or:
ATTRS{idVendor}!="abcd", GOTO="end"
Instead, we can mix both those previous parent rules and match them:
SUBSYSTEMS=="usb",ATTRS{idVendor}=="abcd", GOTO="next"
GOTO="end"
LABEL="next"
# Apply rules here
LABEL="end"
In this case both SUBSYSTEMS and ATTRS conditions apply to the parent usb_device
(idVendor attribute is only available in the usb_device), so they apply to all
ports of the same device.
-rw-r--r-- | plugins/cinterion/77-mm-cinterion-port-types.rules | 7 | ||||
-rw-r--r-- | plugins/haier/77-mm-haier-port-types.rules | 7 | ||||
-rw-r--r-- | plugins/huawei/77-mm-huawei-net-port-types.rules | 6 | ||||
-rw-r--r-- | plugins/longcheer/77-mm-longcheer-port-types.rules | 8 | ||||
-rw-r--r-- | plugins/mbm/77-mm-ericsson-mbm.rules | 12 | ||||
-rw-r--r-- | plugins/mtk/77-mm-mtk-port-types.rules | 8 | ||||
-rw-r--r-- | plugins/nokia/77-mm-nokia-port-types.rules | 7 | ||||
-rw-r--r-- | plugins/simtech/77-mm-simtech-port-types.rules | 7 | ||||
-rw-r--r-- | plugins/telit/77-mm-telit-port-types.rules | 7 | ||||
-rw-r--r-- | plugins/x22x/77-mm-x22x-port-types.rules | 7 | ||||
-rw-r--r-- | plugins/zte/77-mm-zte-port-types.rules | 6 |
11 files changed, 40 insertions, 42 deletions
diff --git a/plugins/cinterion/77-mm-cinterion-port-types.rules b/plugins/cinterion/77-mm-cinterion-port-types.rules index 7afe9c7e..d92e19e5 100644 --- a/plugins/cinterion/77-mm-cinterion-port-types.rules +++ b/plugins/cinterion/77-mm-cinterion-port-types.rules @@ -1,9 +1,10 @@ # do not edit this file, it will be overwritten on update ACTION!="add|change|move", GOTO="mm_cinterion_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_cinterion_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_cinterion_port_types_end" -ATTRS{idVendor}!="1e2d", GOTO="mm_cinterion_port_types_end" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1e2d", GOTO="mm_cinterion_port_types" +GOTO="mm_cinterion_port_types_end" + +LABEL="mm_cinterion_port_types" ATTRS{idVendor}=="1e2d", ATTRS{idProduct}=="0053", ATTRS{bInterfaceNumber}=="01", ENV{ID_MM_CINTERION_PORT_TYPE_GPS}="1" diff --git a/plugins/haier/77-mm-haier-port-types.rules b/plugins/haier/77-mm-haier-port-types.rules index 41db317a..878bfc91 100644 --- a/plugins/haier/77-mm-haier-port-types.rules +++ b/plugins/haier/77-mm-haier-port-types.rules @@ -1,9 +1,10 @@ # do not edit this file, it will be overwritten on update ACTION!="add|change|move", GOTO="mm_haier_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_haier_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_haier_port_types_end" -ATTRS{idVendor}!="201e", GOTO="mm_haier_port_types_end" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="201e", GOTO="mm_haier_port_types" +GOTO="mm_haier_port_types_end" + +LABEL="mm_haier_port_types" # Haier CE81B ATTRS{idVendor}=="201e", ATTRS{idProduct}=="10f8", ATTRS{bInterfaceNumber}=="03", ENV{ID_MM_HAIER_PORT_TYPE_MODEM}="1" diff --git a/plugins/huawei/77-mm-huawei-net-port-types.rules b/plugins/huawei/77-mm-huawei-net-port-types.rules index 12cb9f97..84fafb41 100644 --- a/plugins/huawei/77-mm-huawei-net-port-types.rules +++ b/plugins/huawei/77-mm-huawei-net-port-types.rules @@ -1,7 +1,9 @@ # do not edit this file, it will be overwritten on update ACTION!="add|change|move", GOTO="mm_huawei_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_huawei_port_types_end" -ATTRS{idVendor}!="12d1", GOTO="mm_huawei_port_types_end" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="12d1", GOTO="mm_huawei_port_types" +GOTO="mm_huawei_port_types_end" + +LABEL="mm_huawei_port_types" # MU609 does not support getportmode (crashes modem with default firmware) ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1573", ENV{ID_MM_HUAWEI_DISABLE_GETPORTMODE}="1" diff --git a/plugins/longcheer/77-mm-longcheer-port-types.rules b/plugins/longcheer/77-mm-longcheer-port-types.rules index 895096b9..256c8f17 100644 --- a/plugins/longcheer/77-mm-longcheer-port-types.rules +++ b/plugins/longcheer/77-mm-longcheer-port-types.rules @@ -12,13 +12,9 @@ # cmser.inf lists the aux ports that may be either AT-capable or not but # cannot be used for PPP. - ACTION!="add|change|move", GOTO="mm_longcheer_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_longcheer_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_longcheer_port_types_end" - -ATTRS{idVendor}=="1c9e", GOTO="mm_longcheer_vendorcheck" -ATTRS{idVendor}=="1bbb", GOTO="mm_tamobile_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c9e", GOTO="mm_longcheer_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bbb", GOTO="mm_tamobile_vendorcheck" GOTO="mm_longcheer_port_types_end" LABEL="mm_longcheer_vendorcheck" diff --git a/plugins/mbm/77-mm-ericsson-mbm.rules b/plugins/mbm/77-mm-ericsson-mbm.rules index c195a86b..cedd7d3c 100644 --- a/plugins/mbm/77-mm-ericsson-mbm.rules +++ b/plugins/mbm/77-mm-ericsson-mbm.rules @@ -1,13 +1,11 @@ # do not edit this file, it will be overwritten on update ACTION!="add|change|move", GOTO="mm_mbm_end" -SUBSYSTEMS!="usb", GOTO="mm_mbm_end" - -ATTRS{idVendor}=="0bdb", GOTO="mm_mbm_ericsson_vendorcheck" -ATTRS{idVendor}=="0fce", GOTO="mm_mbm_sony_vendorcheck" -ATTRS{idVendor}=="413c", GOTO="mm_mbm_dell_vendorcheck" -ATTRS{idVendor}=="03f0", GOTO="mm_mbm_hp_vendorcheck" -ATTRS{idVendor}=="0930", GOTO="mm_mbm_toshiba_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bdb", GOTO="mm_mbm_ericsson_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0fce", GOTO="mm_mbm_sony_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="413c", GOTO="mm_mbm_dell_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03f0", GOTO="mm_mbm_hp_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0930", GOTO="mm_mbm_toshiba_vendorcheck" GOTO="mm_mbm_end" LABEL="mm_mbm_ericsson_vendorcheck" diff --git a/plugins/mtk/77-mm-mtk-port-types.rules b/plugins/mtk/77-mm-mtk-port-types.rules index ed9795ad..4353c669 100644 --- a/plugins/mtk/77-mm-mtk-port-types.rules +++ b/plugins/mtk/77-mm-mtk-port-types.rules @@ -1,11 +1,9 @@ # do not edit this file, it will be overwritten on update ACTION!="add|change|move", GOTO="mm_mtk_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_mtk_port_types_end" - -ATTRS{idVendor}=="0e8d", GOTO="mm_mtk_port_types_vendorcheck" -ATTRS{idVendor}=="2001", GOTO="mm_dlink_port_types_vendorcheck" -ATTRS{idVendor}=="07d1", GOTO="mm_dlink_port_types_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0e8d", GOTO="mm_mtk_port_types_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2001", GOTO="mm_dlink_port_types_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="07d1", GOTO="mm_dlink_port_types_vendorcheck" GOTO="mm_mtk_port_types_end" # MediaTek devices --------------------------- diff --git a/plugins/nokia/77-mm-nokia-port-types.rules b/plugins/nokia/77-mm-nokia-port-types.rules index e9b594f6..fdb40095 100644 --- a/plugins/nokia/77-mm-nokia-port-types.rules +++ b/plugins/nokia/77-mm-nokia-port-types.rules @@ -1,9 +1,10 @@ # do not edit this file, it will be overwritten on update ACTION!="add|change|move", GOTO="mm_nokia_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_nokia_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_nokia_port_types_end" -ATTRS{idVendor}!="0421", GOTO="mm_nokia_port_types_end" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0421", GOTO="mm_nokia_port_types" +GOTO="mm_nokia_port_types_end" + +LABEL="mm_nokia_port_types" # For Nokia Internet Sticks (CS-xx) the modem/PPP port appears to always be USB interface 1 diff --git a/plugins/simtech/77-mm-simtech-port-types.rules b/plugins/simtech/77-mm-simtech-port-types.rules index a13d2c18..f91b270c 100644 --- a/plugins/simtech/77-mm-simtech-port-types.rules +++ b/plugins/simtech/77-mm-simtech-port-types.rules @@ -11,9 +11,10 @@ ACTION!="add|change|move", GOTO="mm_simtech_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_simtech_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_simtech_port_types_end" -ATTRS{idVendor}!="1e0e", GOTO="mm_simtech_port_types_end" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1e0e", GOTO="mm_simtech_port_types" +GOTO="mm_simtech_port_types_end" + +LABEL="mm_simtech_port_types" # A-LINK 3GU ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="cefe", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_SIMTECH_PORT_TYPE_MODEM}="1" diff --git a/plugins/telit/77-mm-telit-port-types.rules b/plugins/telit/77-mm-telit-port-types.rules index 695246c2..5e667c3e 100644 --- a/plugins/telit/77-mm-telit-port-types.rules +++ b/plugins/telit/77-mm-telit-port-types.rules @@ -1,9 +1,10 @@ # do not edit this file, it will be overwritten on update ACTION!="add|change|move", GOTO="mm_telit_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_telit_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_telit_port_types_end" -ATTRS{idVendor}!="1bc7", GOTO="mm_telit_port_types_end" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bc7", GOTO="mm_telit_port_types" +GOTO="mm_telit_port_types_end" + +LABEL="mm_telit_port_types" # UC864-E, UC864-E-AUTO, UC864-K, UC864-WD, UC864-WDU ATTRS{idVendor}=="1bc7", ATTRS{idProduct}=="1003", ATTRS{bInterfaceNumber}=="00", ENV{ID_MM_TELIT_PORT_TYPE_MODEM}="1" diff --git a/plugins/x22x/77-mm-x22x-port-types.rules b/plugins/x22x/77-mm-x22x-port-types.rules index 12370283..34ba3a45 100644 --- a/plugins/x22x/77-mm-x22x-port-types.rules +++ b/plugins/x22x/77-mm-x22x-port-types.rules @@ -9,11 +9,8 @@ ACTION!="add|change|move", GOTO="mm_x22x_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_x22x_port_types_end" -SUBSYSTEM!="tty", GOTO="mm_x22x_port_types_end" - -ATTRS{idVendor}=="1bbb", GOTO="mm_x22x_generic_vendorcheck" -ATTRS{idVendor}=="0b3c", GOTO="mm_x22x_olivetti_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bbb", GOTO="mm_x22x_generic_vendorcheck" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0b3c", GOTO="mm_x22x_olivetti_vendorcheck" GOTO="mm_x22x_port_types_end" # Generic JRD devices --------------------------- diff --git a/plugins/zte/77-mm-zte-port-types.rules b/plugins/zte/77-mm-zte-port-types.rules index cae3caea..6c1dd356 100644 --- a/plugins/zte/77-mm-zte-port-types.rules +++ b/plugins/zte/77-mm-zte-port-types.rules @@ -1,8 +1,10 @@ # do not edit this file, it will be overwritten on update ACTION!="add|change|move", GOTO="mm_zte_port_types_end" -SUBSYSTEMS!="usb", GOTO="mm_zte_port_types_end" -ATTRS{idVendor}!="19d2", GOTO="mm_zte_port_types_end" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", GOTO="mm_zte_port_types" +GOTO="mm_zte_port_types_end" + +LABEL="mm_zte_port_types" ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0001", ATTRS{bInterfaceNumber}=="00", ENV{ID_MM_ZTE_PORT_TYPE_MODEM}="1" ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0001", ATTRS{bInterfaceNumber}=="02", ENV{ID_MM_ZTE_PORT_TYPE_AUX}="1" |