greybus: move id-matching back to core
authorJohan Hovold <johan@hovoldconsulting.com>
Sat, 21 Nov 2015 09:52:03 +0000 (10:52 +0100)
committerGreg Kroah-Hartman <gregkh@google.com>
Sun, 22 Nov 2015 01:15:35 +0000 (17:15 -0800)
Move id-matching back to core and the bus code where it belongs.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/bundle.c
drivers/staging/greybus/core.c

index fbc0439..4d04f09 100644 (file)
@@ -68,41 +68,6 @@ struct device_type greybus_bundle_type = {
        .release =      gb_bundle_release,
 };
 
-static int gb_bundle_match_one_id(struct gb_bundle *bundle,
-                                    const struct greybus_bundle_id *id)
-{
-       if ((id->match_flags & GREYBUS_ID_MATCH_VENDOR) &&
-           (id->vendor != bundle->intf->vendor))
-               return 0;
-
-       if ((id->match_flags & GREYBUS_ID_MATCH_PRODUCT) &&
-           (id->product != bundle->intf->product))
-               return 0;
-
-       if ((id->match_flags & GREYBUS_ID_MATCH_CLASS) &&
-           (id->class != bundle->class))
-               return 0;
-
-       return 1;
-}
-
-const struct greybus_bundle_id *
-gb_bundle_match_id(struct gb_bundle *bundle,
-                  const struct greybus_bundle_id *id)
-{
-       if (id == NULL)
-               return NULL;
-
-       for (; id->vendor || id->product || id->class || id->driver_info;
-                                                                       id++) {
-               if (gb_bundle_match_one_id(bundle, id))
-                       return id;
-       }
-
-       return NULL;
-}
-
-
 /* XXX This could be per-host device or per-module */
 static DEFINE_SPINLOCK(gb_bundles_lock);
 
index 4396f90..56250fa 100644 (file)
@@ -29,13 +29,46 @@ int greybus_disabled(void)
 }
 EXPORT_SYMBOL_GPL(greybus_disabled);
 
+static int greybus_match_one_id(struct gb_bundle *bundle,
+                                    const struct greybus_bundle_id *id)
+{
+       if ((id->match_flags & GREYBUS_ID_MATCH_VENDOR) &&
+           (id->vendor != bundle->intf->vendor))
+               return 0;
+
+       if ((id->match_flags & GREYBUS_ID_MATCH_PRODUCT) &&
+           (id->product != bundle->intf->product))
+               return 0;
+
+       if ((id->match_flags & GREYBUS_ID_MATCH_CLASS) &&
+           (id->class != bundle->class))
+               return 0;
+
+       return 1;
+}
+
+static const struct greybus_bundle_id *
+greybus_match_id(struct gb_bundle *bundle, const struct greybus_bundle_id *id)
+{
+       if (id == NULL)
+               return NULL;
+
+       for (; id->vendor || id->product || id->class || id->driver_info;
+                                                                       id++) {
+               if (greybus_match_one_id(bundle, id))
+                       return id;
+       }
+
+       return NULL;
+}
+
 static int greybus_module_match(struct device *dev, struct device_driver *drv)
 {
        struct greybus_driver *driver = to_greybus_driver(drv);
        struct gb_bundle *bundle = to_gb_bundle(dev);
        const struct greybus_bundle_id *id;
 
-       id = gb_bundle_match_id(bundle, driver->id_table);
+       id = greybus_match_id(bundle, driver->id_table);
        if (id)
                return 1;
        /* FIXME - Dynamic ids? */
@@ -97,7 +130,7 @@ static int greybus_probe(struct device *dev)
        int retval;
 
        /* match id */
-       id = gb_bundle_match_id(bundle, driver->id_table);
+       id = greybus_match_id(bundle, driver->id_table);
        if (!id)
                return -ENODEV;