---
 plugins/ofono.rules | 11 +++++++++++
 plugins/udevng.c    | 32 ++++++++++++--------------------
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/plugins/ofono.rules b/plugins/ofono.rules
index f783aab..34ff9ce 100644
--- a/plugins/ofono.rules
+++ b/plugins/ofono.rules
@@ -51,6 +51,17 @@ 
DRIVER=="qmi_wwan",ENV{OFONO_DRIVER}="gobi",ENV{OFONO_LABEL}="qmi"
 # in order to keep the below rules as minimal as possible.  The below
 # should be considered only as a fallback.
 
+DRIVER=="qcserial",ATTRS{idVendor}="1199",ENV{OFONO_DRIVER}="sierra"
+DRIVER=="sierra",ENV{OFONO_DRIVER}="sierra"
+DRIVER=="sierra_net",ENV{OFONO_DRIVER}="sierra
+ENV{OFONO_DRIVER}!="sierra",GOTO="sierra_end"
+ENV{INTERFACE}!="255/255/255",GOTO="sierra_end"
+ATTR{bInterfaceNumber}=="01",ENV{OFONO_LABEL}="diag"
+ATTR{bInterfaceNumber}=="03",ENV{OFONO_LABEL}="modem"
+ATTR{bInterfaceNumber}=="04",ENV{OFONO_LABEL}="app"
+ATTR{bInterfaceNumber}=="07",ENV{OFONO_LABEL}="net"
+LABEL="sierra_end"
+
 DRIVER=="qcserial",ENV{OFONO_DRIVER}="gobi"
 ENV{OFONO_DRIVER}!="gobi",GOTO="gobi_end"
 ENV{INTERFACE}!="255/255/255",GOTO="gobi_end"
diff --git a/plugins/udevng.c b/plugins/udevng.c
index b5c5c86..c4eb9fd 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -246,23 +246,19 @@ static gboolean setup_sierra(struct modem_info *modem)
                DBG("%s %s %s %s %s", info->devnode, info->interface,
                                info->number, info->label, info->subsystem);
 
-               if (g_strcmp0(info->interface, "255/255/255") == 0) {
-                       if (g_strcmp0(info->number, "01") == 0)
-                               diag = info->devnode;
-                       if (g_strcmp0(info->number, "03") == 0)
-                               mdm = info->devnode;
-                       else if (g_strcmp0(info->number, "04") == 0)
-                               app = info->devnode;
-                       else if (g_strcmp0(info->number, "07") == 0)
+               if (g_strcmp0(info->label, "qmi") == 0) {
+                       if (g_strcmp0(info->subsystem, "net") == 0)
                                net = info->devnode;
-                       else if (g_strcmp0(info->number, "0a") == 0) {
-                               if (g_strcmp0(info->subsystem, "net") == 0)
-                                       net = info->devnode;
-                               else if (g_strcmp0(info->subsystem,
-                                                               "usbmisc") == 0)
-                                       qmi = info->devnode;
-                       }
-               }
+                       else if (g_strcmp0(info->subsystem, "usbmisc") == 0)
+                               qmi = info->devnode;
+               } else if (g_strcmp0(info->label, "net") == 0)
+                       net = info->devnode;
+               else if (g_strcmp0(info->label, "modem") == 0)
+                       mdm = info->devnode;
+               else if (g_strcmp0(info->label, "diag") == 0)
+                       diag = info->devnode;
+               else if (g_strcmp0(info->label, "app") == 0)
+                       app = info->devnode;
        }
 
        if (qmi != NULL && net != NULL) {
@@ -1326,10 +1322,6 @@ static struct {
        { "mbm",        "cdc_acm",      "0930"          },
        { "mbm",        "cdc_ether",    "0930"          },
        { "mbm",        "cdc_ncm",      "0930"          },
-       { "sierra",     "qmi_wwan",     "1199"          },
-       { "sierra",     "qcserial",     "1199"          },
-       { "sierra",     "sierra"                        },
-       { "sierra",     "sierra_net"                    },
        { "telit",      "usbserial",    "1bc7"          },
        { "telit",      "option",       "1bc7"          },
        { "telit",      "cdc_acm",      "1bc7", "0021"  },
-- 
2.9.3

_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono

Reply via email to