Hi Martin,

On 05/02/2016 11:33 AM, Martin Chaplet wrote:
  * Add driver's subsystem information (net, usb, tty, ...)
  * Improve interface number extraction by scanning also device and
  parent attributes

Signed-off-by: Martin Chaplet <[email protected]>

No signed-off-by please.  See HACKING, 'Submitting Patches' section.

---
  plugins/udevng.c | 18 +++++++++++++++++-
  1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/plugins/udevng.c b/plugins/udevng.c
index 9643b0a..8ca4471 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -55,6 +55,7 @@ struct device_info {
        char *number;
        char *label;
        char *sysattr;
+       char *subsystem;
  };

  static gboolean setup_isi(struct modem_info *modem)
@@ -939,6 +940,7 @@ static void destroy_modem(gpointer data)
                g_free(info->number);
                g_free(info->label);
                g_free(info->sysattr);
+               g_free(info->subsystem);
                g_free(info);

                list->data = NULL;
@@ -997,9 +999,10 @@ static void add_device(const char *syspath, const char 
*devname,
                        const char *model, struct udev_device *device)
  {
        struct udev_device *intf;
-       const char *devpath, *devnode, *interface, *number, *label, *sysattr;
+       const char *devpath, *devnode, *interface, *number, *label, *sysattr, 
*subsystem;
        struct modem_info *modem;
        struct device_info *info;
+       struct udev_device *parent;

        devpath = udev_device_get_syspath(device);
        if (devpath == NULL)
@@ -1037,7 +1040,19 @@ static void add_device(const char *syspath, const char 
*devname,
        interface = udev_device_get_property_value(intf, "INTERFACE");
        number = udev_device_get_property_value(device, "ID_USB_INTERFACE_NUM");

+       /* If environment variable is not set, get value from attributes (or 
parent's ones) */
+       if(number == NULL)
+       {

Not our style. oFono uses the Linux Kernel coding style, so the '{' should be on the same line as the if.

+               number = udev_device_get_sysattr_value(device, 
"bInterfaceNumber");
+               if(number == NULL)
+               {

as above

+                       parent = udev_device_get_parent(device);
+                       number = udev_device_get_sysattr_value(parent, 
"bInterfaceNumber");
+               }
+       }
+
        label = udev_device_get_property_value(device, "OFONO_LABEL");
+       subsystem = udev_device_get_subsystem(device);

        if (modem->sysattr != NULL)
                sysattr = udev_device_get_sysattr_value(device, modem->sysattr);
@@ -1059,6 +1074,7 @@ static void add_device(const char *syspath, const char 
*devname,
        info->number = g_strdup(number);
        info->label = g_strdup(label);
        info->sysattr = g_strdup(sysattr);
+       info->subsystem = g_strdup(subsystem);

        modem->devices = g_slist_insert_sorted(modem->devices, info,
                                                        compare_device);


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

Reply via email to