summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-06-18 15:58:32 +0000
committerMarcel Holtmann <marcel@holtmann.org>2008-06-18 15:58:32 +0000
commitdde6ea8284f922181318ee84fd58144e06ee39b2 (patch)
treeff908546fd76fb68f38d43bd24d56a6e4a787881
parent407a723fbd995760217d837d6bca7d6049d1fdbf (diff)
Fix driver comparison
-rw-r--r--hcid/device.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/hcid/device.c b/hcid/device.c
index 7049a223..6736bb54 100644
--- a/hcid/device.c
+++ b/hcid/device.c
@@ -1252,6 +1252,13 @@ gint device_address_cmp(struct device *device, const gchar *address)
return strcasecmp(device->address, address);
}
+static int cmp_by_name(const void *data, const void *user_data)
+{
+ const struct btd_device_driver *dev_driver = data, *driver = user_data;
+
+ return (strcmp(dev_driver->name, driver->name));
+}
+
void device_probe_drivers(struct device *device)
{
GSList *list;
@@ -1274,7 +1281,8 @@ void device_probe_drivers(struct device *device)
}
if (do_probe == TRUE && !g_slist_find_custom(device->drivers,
- driver, (GCompareFunc) strcmp)) {
+ driver, (GCompareFunc) cmp_by_name)) {
+
err = driver->probe(&device->dev);
if (err < 0) {
error("probe failed for driver %s",