summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-02-14 18:10:29 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-02-14 18:10:29 +0100
commita92010b5122b8e261c284da313810bf231f068f2 (patch)
treee2a1d75c72a7b5ee80c276d5917c118416049880 /src
parenta721957f20ec79b1a19537e5c43d3a12e4286c6c (diff)
Only storage class of device if it changed
Diffstat (limited to 'src')
-rw-r--r--src/adapter.c5
-rw-r--r--src/dbus-hci.c5
2 files changed, 7 insertions, 3 deletions
diff --git a/src/adapter.c b/src/adapter.c
index cfe134ea..93db68bd 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -2306,8 +2306,13 @@ int adapter_set_class(struct btd_adapter *adapter, uint8_t *cls)
{
struct hci_dev *dev = &adapter->dev;
+ if (memcmp(dev->class, cls, 3) == 0)
+ return 0;
+
memcpy(dev->class, cls, 3);
+ write_local_class(&adapter->bdaddr, cls);
+
return 0;
}
diff --git a/src/dbus-hci.c b/src/dbus-hci.c
index d75ee2fc..dcd31493 100644
--- a/src/dbus-hci.c
+++ b/src/dbus-hci.c
@@ -1158,10 +1158,9 @@ void hcid_dbus_write_class_complete(bdaddr_t *local)
return;
}
- adapter_set_class(adapter, cls);
- write_local_class(local, cls);
-
hci_close_dev(dd);
+
+ adapter_set_class(adapter, cls);
}
void hcid_dbus_write_simple_pairing_mode_complete(bdaddr_t *local)