diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2016-09-18 15:43:30 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2016-09-18 15:43:30 +0200 |
commit | c7d8ac622a56142325af1e9b51d0cce1f06eaa3d (patch) | |
tree | 6713acc93267b3e988c74f761496196c64234b98 /plugins/mbm | |
parent | aa0e1081070b1062c696d31ed3c68e9511733ad1 (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.rules | 40 |
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 |