---
 plugins/ofono.hwdb | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 plugins/udevng.c   | 41 +++++------------------------------------
 2 files changed, 56 insertions(+), 36 deletions(-)

diff --git a/plugins/ofono.hwdb b/plugins/ofono.hwdb
index 1097b8c..66cc0a1 100644
--- a/plugins/ofono.hwdb
+++ b/plugins/ofono.hwdb
@@ -1,3 +1,54 @@
+# Huawei
+usb:v201E*
+usb:v12D1*
+ OFONO_DRIVER=huawei
+
+usb:v201E*icFFisc01ip01*
+usb:v201E*icFFisc02ip01*
+usb:v201E*icFFisc03ip01*
+usb:v201E*icFFisc01ip31*
+usb:v201E*icFFiscFFipFFin00
+usb:v12D1*icFFisc01ip01*
+usb:v12D1*icFFisc02ip01*
+usb:v12D1*icFFisc03ip01*
+usb:v12D1*icFFisc01ip31*
+usb:v12D1*icFFiscFFipFFin00
+ OFONO_LABEL=modem
+
+usb:v201E*icFFisc01ip02*
+usb:v201E*icFFisc02ip02*
+usb:v201E*icFFisc02ip12*
+usb:v201E*icFFisc03ip12*
+usb:v201E*icFFisc01ip32*
+usb:v201E*icFFiscFFipFFin0[1234]
+usb:v12D1*icFFisc01ip02*
+usb:v12D1*icFFisc02ip02*
+usb:v12D1*icFFisc02ip12*
+usb:v12D1*icFFisc03ip12*
+usb:v12D1*icFFisc01ip32*
+usb:v12D1*icFFiscFFipFFin0[1234]
+ OFONO_LABEL=pcui
+
+usb:v201E*icFFisc01ip03*
+usb:v201E*icFFisc02ip03*
+usb:v201E*icFFisc01ip33*
+usb:v12D1*icFFisc01ip03*
+usb:v12D1*icFFisc02ip03*
+usb:v12D1*icFFisc01ip33*
+ OFONO_LABEL=diag
+
+usb:v201E*icFFisc01ip08*
+usb:v201E*icFFisc01ip38*
+usb:v12D1*icFFisc01ip08*
+usb:v12D1*icFFisc01ip38*
+ OFONO_LABEL=net
+
+usb:v201E*icFFisc01ip09*
+usb:v201E*icFFisc01ip39*
+usb:v12D1*icFFisc01ip09*
+usb:v12D1*icFFisc01ip39*
+ OFONO_LABEL=qmi
+
 # Novatel
 usb:v1410*icFFiscFFipFF*
  OFONO_DRIVER=novatel
diff --git a/plugins/udevng.c b/plugins/udevng.c
index ff14869..d8f077a 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -336,42 +336,16 @@ static gboolean setup_huawei(struct modem_info *modem)
                DBG("%s %s %s %s", info->devnode, info->interface,
                                                info->number, info->label);
 
-               if (g_strcmp0(info->label, "modem") == 0 ||
-                               g_strcmp0(info->interface, "255/1/1") == 0 ||
-                               g_strcmp0(info->interface, "255/2/1") == 0 ||
-                               g_strcmp0(info->interface, "255/3/1") == 0 ||
-                               g_strcmp0(info->interface, "255/1/49") == 0) {
+               if (g_strcmp0(info->label, "modem") == 0)
                        mdm = info->devnode;
-               } else if (g_strcmp0(info->label, "pcui") == 0 ||
-                               g_strcmp0(info->interface, "255/1/2") == 0 ||
-                               g_strcmp0(info->interface, "255/2/2") == 0 ||
-                               g_strcmp0(info->interface, "255/2/18") == 0 ||
-                               g_strcmp0(info->interface, "255/3/18") == 0 ||
-                               g_strcmp0(info->interface, "255/1/50") == 0) {
+               else if (g_strcmp0(info->label, "pcui") == 0)
                        pcui = info->devnode;
-               } else if (g_strcmp0(info->label, "diag") == 0 ||
-                               g_strcmp0(info->interface, "255/1/3") == 0 ||
-                               g_strcmp0(info->interface, "255/2/3") == 0 ||
-                               g_strcmp0(info->interface, "255/1/51") == 0) {
+               else if (g_strcmp0(info->label, "diag") == 0)
                        diag = info->devnode;
-               } else if (g_strcmp0(info->interface, "255/1/8") == 0 ||
-                               g_strcmp0(info->interface, "255/1/56") == 0) {
+               else if (g_strcmp0(info->label, "net") == 0)
                        net = info->devnode;
-               } else if (g_strcmp0(info->interface, "255/1/9") == 0 ||
-                               g_strcmp0(info->interface, "255/1/57") == 0) {
+               else if (g_strcmp0(info->label, "qmi") == 0)
                        qmi = info->devnode;
-               } else if (g_strcmp0(info->interface, "255/255/255") == 0) {
-                       if (g_strcmp0(info->number, "00") == 0)
-                               mdm = info->devnode;
-                       else if (g_strcmp0(info->number, "01") == 0)
-                               pcui = info->devnode;
-                       else if (g_strcmp0(info->number, "02") == 0)
-                               pcui = info->devnode;
-                       else if (g_strcmp0(info->number, "03") == 0)
-                               pcui = info->devnode;
-                       else if (g_strcmp0(info->number, "04") == 0)
-                               pcui = info->devnode;
-               }
        }
 
        if (qmi != NULL && net != NULL) {
@@ -1410,11 +1384,6 @@ static struct {
        { "sierra",     "sierra"                        },
        { "sierra",     "sierra_net"                    },
        { "option",     "option",       "0af0"          },
-       { "huawei",     "option",       "201e"          },
-       { "huawei",     "cdc_wdm",      "12d1"          },
-       { "huawei",     "cdc_ether",    "12d1"          },
-       { "huawei",     "qmi_wwan",     "12d1"          },
-       { "huawei",     "option",       "12d1"          },
        { "speedupcdma","option",       "1c9e", "9e00"  },
        { "speedup",    "option",       "1c9e"          },
        { "speedup",    "option",       "2020"          },
-- 
2.9.3

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

Reply via email to