aboutsummaryrefslogtreecommitdiff
path: root/plugins/mbm
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2016-09-18 15:43:30 +0200
committerAleksander Morgado <aleksander@aleksander.es>2016-09-18 15:43:30 +0200
commitc7d8ac622a56142325af1e9b51d0cce1f06eaa3d (patch)
tree6713acc93267b3e988c74f761496196c64234b98 /plugins/mbm
parentaa0e1081070b1062c696d31ed3c68e9511733ad1 (diff)
udev: fix tagging per interface number
Commit 7ff57f9808f35d434b638a67b84481271c67c90e introduced a change to try to use ATTRS{bInterfaceNumber} as a common way to match by interface number, but this logic is broken because all the rules that we use to match by interface number (attribute in the interface device) also require matching by idVendor and idProduct (attributes in the physdev device), and udev rules forbid matches from more than one parent device at a time. We could use ATTR{bInterfaceNumber} (instead of ATTRS) to tag the actual USB interface device, but that would require a change in all the plugins to look for the tag not in the TTY device, but in its parent. So, recover the original behavior, where a hidden property is created containing the first bInterfaceNumber found in the list of parent devices, and then run the matches against idVendor and idProduct only if the hidden property is found with the expected value.
Diffstat (limited to 'plugins/mbm')
-rw-r--r--plugins/mbm/77-mm-ericsson-mbm.rules40
1 files changed, 22 insertions, 18 deletions
diff --git a/plugins/mbm/77-mm-ericsson-mbm.rules b/plugins/mbm/77-mm-ericsson-mbm.rules
index cedd7d3c..63181fd3 100644
--- a/plugins/mbm/77-mm-ericsson-mbm.rules
+++ b/plugins/mbm/77-mm-ericsson-mbm.rules
@@ -9,19 +9,20 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="0930", GOTO="mm_mbm_toshiba_vendorcheck"
GOTO="mm_mbm_end"
LABEL="mm_mbm_ericsson_vendorcheck"
+SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
# Ericsson F3507g
-ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1900", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1900", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1900", ENV{ID_MM_ERICSSON_MBM}="1"
-ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1902", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1902", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1902", ENV{ID_MM_ERICSSON_MBM}="1"
# Ericsson F3607gw
-ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1904", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1904", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1904", ENV{ID_MM_ERICSSON_MBM}="1"
-ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1905", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1905", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1905", ENV{ID_MM_ERICSSON_MBM}="1"
-ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1906", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1906", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1906", ENV{ID_MM_ERICSSON_MBM}="1"
# Ericsson F3307
@@ -38,9 +39,9 @@ ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1049", ENV{ID_MM_ERICSSON_MBM}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="190b", ENV{ID_MM_ERICSSON_MBM}="1"
# Ericsson F5521gw
-ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="190d", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="190d", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="190d", ENV{ID_MM_ERICSSON_MBM}="1"
-ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1911", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1911", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1911", ENV{ID_MM_ERICSSON_MBM}="1"
# Ericsson H5321gw
@@ -62,9 +63,9 @@ ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="191f", ENV{ID_MM_ERICSSON_MBM}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1921", ENV{ID_MM_ERICSSON_MBM}="1"
# Ericsson H5321gw
-ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1926", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1926", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1926", ENV{ID_MM_ERICSSON_MBM}="1"
-ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1927", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1927", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0bdb", ATTRS{idProduct}=="1927", ENV{ID_MM_ERICSSON_MBM}="1"
# Ericsson C3304w
@@ -92,6 +93,7 @@ ATTRS{idVendor}=="0fce", ATTRS{idProduct}=="d103", ENV{ID_MM_ERICSSON_MBM}="1"
GOTO="mm_mbm_end"
LABEL="mm_mbm_dell_vendorcheck"
+SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
# Dell 5560
ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818e", ENV{ID_MM_ERICSSON_MBM}="1"
@@ -100,24 +102,25 @@ ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818e", ENV{ID_MM_ERICSSON_MBM}="1"
ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818d", ENV{ID_MM_ERICSSON_MBM}="1"
# Dell 5530 HSDPA
-ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8147", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8147", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8147", ENV{ID_MM_ERICSSON_MBM}="1"
# Dell F3607gw
-ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8183", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8183", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8183", ENV{ID_MM_ERICSSON_MBM}="1"
-ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8184", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8184", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="413c", ATTRS{idProduct}=="8184", ENV{ID_MM_ERICSSON_MBM}="1"
# Dell F3307
-ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818b", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818b", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818b", ENV{ID_MM_ERICSSON_MBM}="1"
-ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818c", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818c", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="413c", ATTRS{idProduct}=="818c", ENV{ID_MM_ERICSSON_MBM}="1"
GOTO="mm_mbm_end"
LABEL="mm_mbm_hp_vendorcheck"
+SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
# HP hs2330 Mobile Broadband Module
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="271d", ENV{ID_MM_ERICSSON_MBM}="1"
@@ -129,7 +132,7 @@ ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="261d", ENV{ID_MM_ERICSSON_MBM}="1"
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3a1d", ENV{ID_MM_ERICSSON_MBM}="1"
# HP hs2350 Mobile Broadband Module
-ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3d1d", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3d1d", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="3d1d", ENV{ID_MM_ERICSSON_MBM}="1"
# HP lc2000 Mobile Broadband Module
@@ -141,15 +144,16 @@ ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="2f1d", ENV{ID_MM_ERICSSON_MBM}="1"
GOTO="mm_mbm_end"
LABEL="mm_mbm_toshiba_vendorcheck"
+SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInterfaceNumber}"
# Toshiba
-ATTRS{idVendor}=="0930", ATTRS{idProduct}=="130b", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="130b", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0930", ATTRS{idProduct}=="130b", ENV{ID_MM_ERICSSON_MBM}="1"
# Toshiba F3607gw
-ATTRS{idVendor}=="0930", ATTRS{idProduct}=="130c", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="130c", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0930", ATTRS{idProduct}=="130c", ENV{ID_MM_ERICSSON_MBM}="1"
-ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1311", ATTRS{bInterfaceNumber}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
+ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1311", ENV{.MM_USBIFNUM}=="09", ENV{ID_MM_ERICSSON_MBM_GPS_PORT}="1"
ATTRS{idVendor}=="0930", ATTRS{idProduct}=="1311", ENV{ID_MM_ERICSSON_MBM}="1"
# Toshiba F3307