Diff between de6c0c77e55da5ddfd5c7aefbfecef68c4677853 and 7be40ec8438e4c220804bd900c152b42b843d10b

Changed Files

File Additions Deletions Status
src/adapter.c +16 -0 modified
src/shared/util.c +2 -0 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index 84bc5a1..12e4ff5 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -284,6 +284,7 @@ struct btd_adapter {
 	bool is_default;		/* true if adapter is default one */
 
 	bool le_simult_roles_supported;
+	bool quality_report_supported;
 };
 
 typedef enum {
@@ -9234,6 +9235,12 @@ static const uint8_t le_simult_central_peripheral_uuid[16] = {
 	0x96, 0x46, 0xc0, 0x42, 0xb5, 0x10, 0x1b, 0x67,
 };
 
+/* 330859bc-7506-492d-9370-9a6f0614037f */
+static const uint8_t quality_report_uuid[16] = {
+	0x7f, 0x03, 0x14, 0x06, 0x6f, 0x9a, 0x70, 0x93,
+	0x2d, 0x49, 0x06, 0x75, 0xbc, 0x59, 0x08, 0x33,
+};
+
 /* 15c0a148-c273-11ea-b3de-0242ac130004 */
 static const uint8_t rpa_resolution_uuid[16] = {
 	0x04, 0x00, 0x13, 0xac, 0x42, 0x02, 0xde, 0xb3,
@@ -9277,6 +9284,14 @@ static void le_simult_central_peripheral_func(struct btd_adapter *adapter,
 	adapter->le_simult_roles_supported = flags & 0x01;
 }
 
+static void quality_report_func(struct btd_adapter *adapter, uint32_t flags)
+{
+	adapter->quality_report_supported = le32_to_cpu(flags) & 0x01;
+
+	btd_info(adapter->dev_id, "quality_report_supported %d",
+			adapter->quality_report_supported);
+}
+
 static void set_rpa_resolution_complete(uint8_t status, uint16_t len,
 					const void *param, void *user_data)
 {
@@ -9315,6 +9330,7 @@ static const struct exp_feat {
 	EXP_FEAT(debug_uuid, exp_debug_func),
 	EXP_FEAT(le_simult_central_peripheral_uuid,
 		 le_simult_central_peripheral_func),
+	EXP_FEAT(quality_report_uuid, quality_report_func),
 	EXP_FEAT(rpa_resolution_uuid, rpa_resolution_func),
 };
 
diff --git a/src/shared/util.c b/src/shared/util.c
index 8c216f9..854b48d 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
@@ -1025,6 +1025,8 @@ static const struct {
 		"BlueZ Experimental Simultaneous Central and Peripheral" },
 	{ "15c0a148-c273-11ea-b3de-0242ac130004",
 		"BlueZ Experimental LL privacy" },
+	{ "330859bc-7506-492d-9370-9a6f0614037f",
+		"BlueZ Experimental Bluetooth Quality Report" },
 	{ }
 };