From f0ba01543a95bee0c5a3a5fe0eca8ffbaa49d9a6 Mon Sep 17 00:00:00 2001 From: Pekka Pessi Date: Mon, 4 Oct 2010 15:11:05 +0200 Subject: [PATCH] udev: refactor add_isi Gather OFONO_ISI_ADDRESS from same udev device node as OFONO_DRIVER. --- plugins/udev.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/plugins/udev.c b/plugins/udev.c index 7f6201a..737a637 100644 --- a/plugins/udev.c +++ b/plugins/udev.c @@ -423,19 +423,29 @@ static void add_nokia(struct ofono_modem *modem, static void add_isi(struct ofono_modem *modem, struct udev_device *udev_device) { - const char *ifname, *addr; + const char *ifname, *type, *addr; DBG("modem %p", modem); - ifname = udev_device_get_sysname(udev_device); - ofono_modem_set_string(modem, "Interface", ifname); - - DBG("interface %s", ifname); + if (ofono_modem_get_string(modem, "Interface")) + return; addr = get_property(udev_device, "OFONO_ISI_ADDRESS"); if (addr != NULL) ofono_modem_set_integer(modem, "Address", atoi(addr)); + if (g_strcmp0(udev_device_get_subsystem(udev_device), "net") != 0) + return; + + type = udev_device_get_sysattr_value(udev_device, "type"); + if (g_strcmp0(type, "820") != 0) + return; + + ifname = udev_device_get_sysname(udev_device); + ofono_modem_set_string(modem, "Interface", ifname); + + DBG("interface %s", ifname); + ofono_modem_register(modem); } -- 2.7.4