Diff between 986c3d2b1ae181f02782d70b2b03da3b1139ce46 and 625fe7d94c020f5ce8684a702cabde63ee30688c

Changed Files

File Additions Deletions Status
src/adapter.c +1 -1 modified
src/device.c +6 -2 modified
src/device.h +1 -1 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index f5abfe3..b29ee40 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -4353,7 +4353,7 @@ static void update_found_devices(struct btd_adapter *adapter,
 	 */
 	if (bdaddr_type != BDADDR_BREDR && eir_data.flags &&
 					!(eir_data.flags & EIR_BREDR_UNSUP))
-		device_set_bredr_support(dev, true);
+		device_set_bredr_support(dev);
 
 	if (eir_data.name != NULL && eir_data.name_complete)
 		device_store_cached_name(dev, eir_data.name);
diff --git a/src/device.c b/src/device.c
index 41637b3..a5fcad7 100644
--- a/src/device.c
+++ b/src/device.c
@@ -2467,9 +2467,13 @@ void device_update_addr(struct btd_device *device, const bdaddr_t *bdaddr,
 						DEVICE_INTERFACE, "Address");
 }
 
-void device_set_bredr_support(struct btd_device *device, bool bredr)
+void device_set_bredr_support(struct btd_device *device)
 {
-	device->bredr = bredr;
+	if (device->bredr)
+		return;
+
+	device->bredr = true;
+	store_device_info(device);
 }
 
 void device_update_last_seen(struct btd_device *device, uint8_t bdaddr_type)
diff --git a/src/device.h b/src/device.h
index 8cb6980..9c5e4fd 100644
--- a/src/device.h
+++ b/src/device.h
@@ -40,7 +40,7 @@ bool device_name_known(struct btd_device *device);
 void device_set_class(struct btd_device *device, uint32_t class);
 void device_update_addr(struct btd_device *device, const bdaddr_t *bdaddr,
 							uint8_t bdaddr_type);
-void device_set_bredr_support(struct btd_device *device, bool bredr);
+void device_set_bredr_support(struct btd_device *device);
 void device_update_last_seen(struct btd_device *device, uint8_t bdaddr_type);
 void device_merge_duplicate(struct btd_device *dev, struct btd_device *dup);
 uint32_t btd_device_get_class(struct btd_device *device);