* [PATCH 0/4] bluez5: backport fixes from master to wrynose
@ 2026-06-26 6:42 Wei Deng
2026-06-26 6:42 ` [PATCH 1/4] bluez5: fix set volume failure Wei Deng
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Wei Deng @ 2026-06-26 6:42 UTC (permalink / raw)
To: openembedded-core
Cc: yoann.congal, cheng.jiang, shuai.zhang, mengshi.wu, jinwang.li,
xiuzhuo.shang
These four patches are backports of fixes already merged in OE-core master
that are missing from wrynose. The first three patches (fixes from Jinwang,
Xiuzhuo and Mengshi) shift the SRC_URI context in bluez5.inc such that the
fourth patch (OBEX IMTU fix) cannot be cherry-picked cleanly onto wrynose
without them.
Please add to the wrynose review series.
Jinwang Li (1):
bluez5: fix set volume failure
Mengshi Wu (1):
bluez5: fix gatt cache sync issue
Wei Deng (1):
bluez5: set L2CAP IMTU for OBEX profile listeners
xiuzhuo.shang@oss.qualcomm.com (1):
bluez5: Fix sending extra bytes with MGMT_OP_ADD_EXT_ADV_DATA
meta/recipes-connectivity/bluez5/bluez5.inc | 4 +
...sending-extra-bytes-with-MGMT_OP_ADD.patch | 33 +++++
...2CAP-IMTU-for-OBEX-profile-listeners.patch | 118 ++++++++++++++++++
...x-stored-gatt-cache-DB-Hash-value-no.patch | 84 +++++++++++++
...t-volume-failure-with-invalid-device.patch | 46 +++++++
5 files changed, 285 insertions(+)
create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-advertising-Fix-sending-extra-bytes-with-MGMT_OP_ADD.patch
create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-profile-Set-L2CAP-IMTU-for-OBEX-profile-listeners.patch
create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-src-device-Fix-stored-gatt-cache-DB-Hash-value-no.patch
create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-transport-Fix-set-volume-failure-with-invalid-device.patch
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] bluez5: fix set volume failure
2026-06-26 6:42 [PATCH 0/4] bluez5: backport fixes from master to wrynose Wei Deng
@ 2026-06-26 6:42 ` Wei Deng
2026-06-26 6:42 ` [PATCH 2/4] bluez5: Fix sending extra bytes with MGMT_OP_ADD_EXT_ADV_DATA Wei Deng
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Wei Deng @ 2026-06-26 6:42 UTC (permalink / raw)
To: openembedded-core
Cc: yoann.congal, cheng.jiang, shuai.zhang, mengshi.wu, jinwang.li,
xiuzhuo.shang
From: Jinwang Li <jinwang.li@oss.qualcomm.com>
Backport upstream fix for AVRCP volume initialization failure when
AVRCP connects before AVDTP.
Upstream-Status: Backport [bluez/bluez@121e5ca]
Signed-off-by: Jinwang Li <jinwang.li@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
---
meta/recipes-connectivity/bluez5/bluez5.inc | 1 +
...t-volume-failure-with-invalid-device.patch | 46 +++++++++++++++++++
2 files changed, 47 insertions(+)
create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-transport-Fix-set-volume-failure-with-invalid-device.patch
diff --git a/meta/recipes-connectivity/bluez5/bluez5.inc b/meta/recipes-connectivity/bluez5/bluez5.inc
index c792cc9c66c..c09a759244e 100644
--- a/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -71,6 +71,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
file://0001-Revert-shared-shell-Don-t-init-input-for-non-interac.patch \
file://0001-tools-Work-around-broken-stdin-handling-in-home-made.patch \
file://0001-gatt-client-Fix-use-after-free-caused-by-reentrant-c.patch \
+ file://0001-transport-Fix-set-volume-failure-with-invalid-device.patch \
"
S = "${UNPACKDIR}/bluez-${PV}"
diff --git a/meta/recipes-connectivity/bluez5/bluez5/0001-transport-Fix-set-volume-failure-with-invalid-device.patch b/meta/recipes-connectivity/bluez5/bluez5/0001-transport-Fix-set-volume-failure-with-invalid-device.patch
new file mode 100644
index 00000000000..b5846dec47f
--- /dev/null
+++ b/meta/recipes-connectivity/bluez5/bluez5/0001-transport-Fix-set-volume-failure-with-invalid-device.patch
@@ -0,0 +1,46 @@
+From 8a80f70c23ca5f93b1db7e3956cc7ee28c1fa767 Mon Sep 17 00:00:00 2001
+From: Jinwang Li <jinwang.li@oss.qualcomm.com>
+Date: Mon, 9 Mar 2026 19:18:26 +0800
+Subject: [PATCH] transport: Fix set volume failure with invalid device volume
+
+When AVRCP is connected before AVDTP, an invalid device volume causes
+the target to reject registration for the EVENT_VOLUME_CHANGED
+notification, which breaks subsequent volume updates.
+
+Fix this by initializing the volume to the maximum value in the AVRCP
+target init path when it is invalid, allowing the controller to
+subscribe to AVRCP_EVENT_VOLUME_CHANGED.
+
+Fixes: fa7828bddd21 ("transport: Fix not being able to initialize volume properly")
+Suggested-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Signed-off-by: Jinwang Li <jinwang.li@oss.qualcomm.com>
+Upstream-Status: Backport [https://github.com/bluez/bluez/commit/121e5ca79be559c5374f8a54c6fb6e233e383379]
+---
+ profiles/audio/avrcp.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/profiles/audio/avrcp.c b/profiles/audio/avrcp.c
+index 724b46c59..326dfdab7 100644
+--- a/profiles/audio/avrcp.c
++++ b/profiles/audio/avrcp.c
+@@ -4296,9 +4296,16 @@ static void target_init(struct avrcp *session)
+ if (target->version < 0x0104)
+ return;
+
+- if (avrcp_volume_supported(target))
++ if (avrcp_volume_supported(target)) {
+ session->supported_events |=
+ (1 << AVRCP_EVENT_VOLUME_CHANGED);
++ /* Check if transport volume hasn't been initialized then set it
++ * to max so it works properly if the controller attempts to
++ * subscribe to AVRCP_EVENT_VOLUME_CHANGED.
++ */
++ if (media_transport_get_a2dp_volume(session->dev) < 0)
++ media_transport_set_a2dp_volume(session->dev, 127);
++ }
+
+ session->supported_events |=
+ (1 << AVRCP_EVENT_ADDRESSED_PLAYER_CHANGED) |
+--
+2.34.1
+
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] bluez5: Fix sending extra bytes with MGMT_OP_ADD_EXT_ADV_DATA
2026-06-26 6:42 [PATCH 0/4] bluez5: backport fixes from master to wrynose Wei Deng
2026-06-26 6:42 ` [PATCH 1/4] bluez5: fix set volume failure Wei Deng
@ 2026-06-26 6:42 ` Wei Deng
2026-06-26 6:42 ` [PATCH 3/4] bluez5: fix gatt cache sync issue Wei Deng
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Wei Deng @ 2026-06-26 6:42 UTC (permalink / raw)
To: openembedded-core
Cc: yoann.congal, cheng.jiang, shuai.zhang, mengshi.wu, jinwang.li,
xiuzhuo.shang
From: "xiuzhuo.shang@oss.qualcomm.com" <xiuzhuo.shang@oss.qualcomm.com>
MGMT_OP_ADD_EXT_ADV_DATA expects the command to be of struct mgmt_cp_add_ext_adv_data not mgmt_cp_add_advertising.
Signed-off-by: Xiuzhuo Shang <xiuzhuo.shang@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
meta/recipes-connectivity/bluez5/bluez5.inc | 1 +
| 33 +++++++++++++++++++
2 files changed, 34 insertions(+)
create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-advertising-Fix-sending-extra-bytes-with-MGMT_OP_ADD.patch
diff --git a/meta/recipes-connectivity/bluez5/bluez5.inc b/meta/recipes-connectivity/bluez5/bluez5.inc
index c09a759244e..1600107b878 100644
--- a/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -72,6 +72,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
file://0001-tools-Work-around-broken-stdin-handling-in-home-made.patch \
file://0001-gatt-client-Fix-use-after-free-caused-by-reentrant-c.patch \
file://0001-transport-Fix-set-volume-failure-with-invalid-device.patch \
+ file://0001-advertising-Fix-sending-extra-bytes-with-MGMT_OP_ADD.patch \
"
S = "${UNPACKDIR}/bluez-${PV}"
--git a/meta/recipes-connectivity/bluez5/bluez5/0001-advertising-Fix-sending-extra-bytes-with-MGMT_OP_ADD.patch b/meta/recipes-connectivity/bluez5/bluez5/0001-advertising-Fix-sending-extra-bytes-with-MGMT_OP_ADD.patch
new file mode 100644
index 00000000000..0a737413679
--- /dev/null
+++ b/meta/recipes-connectivity/bluez5/bluez5/0001-advertising-Fix-sending-extra-bytes-with-MGMT_OP_ADD.patch
@@ -0,0 +1,33 @@
+From b16441fbb7a24325f7c7d0c5ecedc88b46ddd439 Mon Sep 17 00:00:00 2001
+From: Xiuzhuo Shang <xiuzhuo.shang@oss.qualcomm.com>
+Date: Thu, 4 Jun 2026 17:32:27 +0800
+Subject: [PATCH] advertising: Fix sending extra bytes with
+ MGMT_OP_ADD_EXT_ADV_DATA
+
+MGMT_OP_ADD_EXT_ADV_DATA expects the command to be of size of
+struct mgmt_cp_add_ext_adv_data not mgmt_cp_add_advertising.
+
+Upstream-Status: Backport [2a6968b40378dca5650e18e03ad0407738c47be5]
+Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Signed-off-by: Xiuzhuo Shang <xiuzhuo.shang@oss.qualcomm.com>
+---
+ src/advertising.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/advertising.c b/src/advertising.c
+index 8970e65f7..0cb37d4ae 100644
+--- a/src/advertising.c
++++ b/src/advertising.c
+@@ -1487,8 +1487,7 @@ static void add_adv_params_callback(uint8_t status, uint16_t length,
+ }
+ }
+
+- param_len = sizeof(struct mgmt_cp_add_advertising) + adv_data_len +
+- scan_rsp_len;
++ param_len = sizeof(*cp) + adv_data_len + scan_rsp_len;
+
+ cp = malloc0(param_len);
+ if (!cp) {
+--
+2.43.0
+
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] bluez5: fix gatt cache sync issue
2026-06-26 6:42 [PATCH 0/4] bluez5: backport fixes from master to wrynose Wei Deng
2026-06-26 6:42 ` [PATCH 1/4] bluez5: fix set volume failure Wei Deng
2026-06-26 6:42 ` [PATCH 2/4] bluez5: Fix sending extra bytes with MGMT_OP_ADD_EXT_ADV_DATA Wei Deng
@ 2026-06-26 6:42 ` Wei Deng
2026-06-26 6:42 ` [PATCH 4/4] bluez5: set L2CAP IMTU for OBEX profile listeners Wei Deng
2026-06-26 8:18 ` [PATCH 0/4] bluez5: backport fixes from master to wrynose Yoann Congal
4 siblings, 0 replies; 6+ messages in thread
From: Wei Deng @ 2026-06-26 6:42 UTC (permalink / raw)
To: openembedded-core
Cc: yoann.congal, cheng.jiang, shuai.zhang, mengshi.wu, jinwang.li,
xiuzhuo.shang
From: Mengshi Wu <mengshi.wu@oss.qualcomm.com>
There is a timing issue to update DB Hash value.
The gatt_client_service_changed() callback in src/device.c
is called from service_changed_complete() in gatt-client.c,
which is invoked after db_hash_read_cb() has already updated
the hash. Adding store_gatt_db(device) here guarantees the
db is persisted with the correct, up-to-date hash for both
the addition and removal cases.
Upstream-Status: Backport [bluez/bluez@0fd01e9]
Signed-off-by: Mengshi Wu <mengshi.wu@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
meta/recipes-connectivity/bluez5/bluez5.inc | 1 +
...x-stored-gatt-cache-DB-Hash-value-no.patch | 84 +++++++++++++++++++
2 files changed, 85 insertions(+)
create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-src-device-Fix-stored-gatt-cache-DB-Hash-value-no.patch
diff --git a/meta/recipes-connectivity/bluez5/bluez5.inc b/meta/recipes-connectivity/bluez5/bluez5.inc
index 1600107b878..4e51cc9a213 100644
--- a/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -73,6 +73,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
file://0001-gatt-client-Fix-use-after-free-caused-by-reentrant-c.patch \
file://0001-transport-Fix-set-volume-failure-with-invalid-device.patch \
file://0001-advertising-Fix-sending-extra-bytes-with-MGMT_OP_ADD.patch \
+ file://0001-src-device-Fix-stored-gatt-cache-DB-Hash-value-no.patch \
"
S = "${UNPACKDIR}/bluez-${PV}"
diff --git a/meta/recipes-connectivity/bluez5/bluez5/0001-src-device-Fix-stored-gatt-cache-DB-Hash-value-no.patch b/meta/recipes-connectivity/bluez5/bluez5/0001-src-device-Fix-stored-gatt-cache-DB-Hash-value-no.patch
new file mode 100644
index 00000000000..69323bdc5ee
--- /dev/null
+++ b/meta/recipes-connectivity/bluez5/bluez5/0001-src-device-Fix-stored-gatt-cache-DB-Hash-value-no.patch
@@ -0,0 +1,84 @@
+From 9ec8cad56e47c0555a056e928e6568d543b3ae0c Mon Sep 17 00:00:00 2001
+From: Mengshi Wu <mengshi.wu@oss.qualcomm.com>
+Date: Wed, 1 Apr 2026 19:30:04 +0800
+Subject: [PATCH v1] src/device: Fix stored gatt cache DB Hash value not update
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+There is an asymmetry in behavior: when services are added during
+the same connection (via Service Changed indication), the persistent
+storage (disk) is not updated with the new DB hash, but when services
+are removed, it is updated.
+
+During the same connection, We check DB hash value stored at
+/var/lib/bluetooth/<adaptor addr>/cache/<remote addr>.
+When established connection, the stored DB Hash value is A.Then we
+add new services, the stored DB Hash value is still A which should
+change to B. However, if we remove the existing services, the stored
+DB Hash value changed to C.
+
+When performing addition, it goes like this:
+
+discover_primary_cb()
+ └─> gatt_db_insert_service() ← NEW service inserted into db
+ └─> gatt_service_added() ← callback fires immediately
+ └─> store_gatt_db() ← SAVED TO DISK (hash still OLD)
+ ...
+ └─> discovery_op_complete(success=true)
+ └─> read_db_hash(op) ← sends ATT Read By Type
+ └─> [ATT response arrives]
+ └─> db_hash_read_cb()
+ ├─> gatt_db_attribute_write(op->hash, ...)
+ │ └─> hash UPDATED IN MEMORY
+ └─> discovery_op_complete(true, 0)
+ ├─> [no services to remove, no
+ │ store_gatt_db called]
+ └─> service_changed_complete()
+
+Whereas removal perform like this:
+discovery_op_complete(success=true) [1st call]
+ └─> read_db_hash(op)
+ └─> op->hash is NULL → sends ATT request → early return
+...
+[ATT response arrives]
+db_hash_read_cb()
+ └─> gatt_db_attribute_write(op->hash, ) ← hash UPDATED IN MEMORY
+ └─> discovery_op_complete(true, 0) [2nd call]
+ └─> read_db_hash(op) → op->hash already set → returns false
+ └─> gatt_db_remove_service()
+ └─> gatt_service_removed()
+ └─> store_gatt_db() ← SAVED TO DISK (hash is NEW)
+
+There is a timing issue to update DB Hash value.
+
+The gatt_client_service_changed() callback in src/device.c is called
+from service_changed_complete() in gatt-client.c, which is invoked
+after db_hash_read_cb() has already updated the hash. Adding
+store_gatt_db(device) here guarantees the db is persisted with the
+correct, up-to-date hash for both the addition and removal cases.
+
+Upstream-Status: Backport [https://github.com/bluez/bluez/commit/0fd01e98cf94616a5c1c39749314cdd4a1654687]
+Signed-off-by: Mengshi Wu <mengshi.wu@oss.qualcomm.com>
+---
+ src/device.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/device.c b/src/device.c
+index 3ea683667..cfbde307b 100644
+--- a/src/device.c
++++ b/src/device.c
+@@ -6267,7 +6267,11 @@ static void gatt_client_service_changed(uint16_t start_handle,
+ uint16_t end_handle,
+ void *user_data)
+ {
++ struct btd_device *device = user_data;
++
+ DBG("start 0x%04x, end: 0x%04x", start_handle, end_handle);
++
++ store_gatt_db(device);
+ }
+
+ static void gatt_debug(const char *str, void *user_data)
+--
+2.34.1
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] bluez5: set L2CAP IMTU for OBEX profile listeners
2026-06-26 6:42 [PATCH 0/4] bluez5: backport fixes from master to wrynose Wei Deng
` (2 preceding siblings ...)
2026-06-26 6:42 ` [PATCH 3/4] bluez5: fix gatt cache sync issue Wei Deng
@ 2026-06-26 6:42 ` Wei Deng
2026-06-26 8:18 ` [PATCH 0/4] bluez5: backport fixes from master to wrynose Yoann Congal
4 siblings, 0 replies; 6+ messages in thread
From: Wei Deng @ 2026-06-26 6:42 UTC (permalink / raw)
To: openembedded-core
Cc: yoann.congal, cheng.jiang, shuai.zhang, mengshi.wu, jinwang.li,
xiuzhuo.shang
Backport upstream fix that adds an imtu field to default_settings for
OBEX profiles (OPP, FTP, PBAP, MAS, MNS) and applies it to the L2CAP
listening socket via bt_io_set(). Without this, the listening socket
advertises the L2CAP minimum of 672 bytes in L2CAP_CONFIGURATION_RSP,
limiting the peer's outgoing PDU size and degrading Rx throughput.
Upstream-Status: Backport [bluez/bluez@646014a]
Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com>
---
meta/recipes-connectivity/bluez5/bluez5.inc | 1 +
...2CAP-IMTU-for-OBEX-profile-listeners.patch | 118 ++++++++++++++++++
2 files changed, 119 insertions(+)
create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-profile-Set-L2CAP-IMTU-for-OBEX-profile-listeners.patch
diff --git a/meta/recipes-connectivity/bluez5/bluez5.inc b/meta/recipes-connectivity/bluez5/bluez5.inc
index 4e51cc9a213..ad07e0d3c4f 100644
--- a/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -74,6 +74,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/bluez-${PV}.tar.xz \
file://0001-transport-Fix-set-volume-failure-with-invalid-device.patch \
file://0001-advertising-Fix-sending-extra-bytes-with-MGMT_OP_ADD.patch \
file://0001-src-device-Fix-stored-gatt-cache-DB-Hash-value-no.patch \
+ file://0001-profile-Set-L2CAP-IMTU-for-OBEX-profile-listeners.patch \
"
S = "${UNPACKDIR}/bluez-${PV}"
diff --git a/meta/recipes-connectivity/bluez5/bluez5/0001-profile-Set-L2CAP-IMTU-for-OBEX-profile-listeners.patch b/meta/recipes-connectivity/bluez5/bluez5/0001-profile-Set-L2CAP-IMTU-for-OBEX-profile-listeners.patch
new file mode 100644
index 00000000000..332b11464eb
--- /dev/null
+++ b/meta/recipes-connectivity/bluez5/bluez5/0001-profile-Set-L2CAP-IMTU-for-OBEX-profile-listeners.patch
@@ -0,0 +1,118 @@
+From 646014a6a246fe99df27da12d2de7bcd2e04d0df Mon Sep 17 00:00:00 2001
+From: Wei Deng <wei.deng@oss.qualcomm.com>
+Date: Thu, 4 Jun 2026 15:00:24 +0530
+Subject: [PATCH] profile: Set L2CAP IMTU for OBEX profile listeners
+
+The default_settings entries for OBEX profiles (OPP, FTP, PBAP, MAS,
+MNS) have no imtu field, so ext_start_servers() creates the L2CAP
+listening socket without an explicit IMTU. This causes the socket to
+advertise the L2CAP minimum of 672 bytes in L2CAP_CONFIGURATION_RSP,
+limiting the peer's outgoing PDU size and degrading Rx throughput.
+
+Add an imtu field to default_settings and set it to 32767 for all
+OBEX profiles that use L2CAP. Copy the value in ext_set_defaults()
+and apply it to the listening socket via bt_io_set() after
+bt_io_listen() succeeds.
+
+Signed-off-by: Wei Deng <wei.deng@oss.qualcomm.com>
+Upstream-Status: Backport [https://github.com/bluez/bluez/commit/646014a6a246fe99df27da12d2de7bcd2e04d0df]
+---
+ src/profile.c | 19 +++++++++++++++++--
+ 1 file changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/src/profile.c b/src/profile.c
+index dfc5f7161..65df0f7a0 100644
+--- a/src/profile.c
++++ b/src/profile.c
+@@ -55,6 +55,8 @@
+ #define MAS_DEFAULT_CHANNEL 16
+ #define MNS_DEFAULT_CHANNEL 17
+
++#define BT_RX_MTU 32767
++
+ #define BTD_PROFILE_PSM_AUTO -1
+ #define BTD_PROFILE_CHAN_AUTO -1
+
+@@ -678,6 +680,7 @@ struct ext_profile {
+
+ uint16_t version;
+ uint16_t features;
++ uint16_t imtu;
+
+ GSList *records;
+ GSList *servers;
+@@ -1423,6 +1426,9 @@ static uint32_t ext_start_servers(struct ext_profile *ext,
+ if (psm == 0)
+ bt_io_get(io, NULL, BT_IO_OPT_PSM, &psm,
+ BT_IO_OPT_INVALID);
++ if (ext->imtu)
++ bt_io_set(io, NULL, BT_IO_OPT_IMTU, ext->imtu,
++ BT_IO_OPT_INVALID);
+ l2cap->io = io;
+ l2cap->proto = BTPROTO_L2CAP;
+ l2cap->psm = psm;
+@@ -2075,6 +2081,7 @@ static struct default_settings {
+ struct ext_io *rfcomm);
+ uint16_t version;
+ uint16_t features;
++ uint16_t imtu;
+ } defaults[] = {
+ {
+ .uuid = SPP_UUID,
+@@ -2142,6 +2149,7 @@ static struct default_settings {
+ .authorize = false,
+ .get_record = get_opp_record,
+ .version = 0x0102,
++ .imtu = BT_RX_MTU,
+ }, {
+ .uuid = OBEX_FTP_UUID,
+ .name = "File Transfer",
+@@ -2151,6 +2159,7 @@ static struct default_settings {
+ .authorize = true,
+ .get_record = get_ftp_record,
+ .version = 0x0103,
++ .imtu = BT_RX_MTU,
+ }, {
+ .uuid = OBEX_SYNC_UUID,
+ .name = "Synchronization",
+@@ -2167,6 +2176,7 @@ static struct default_settings {
+ .authorize = true,
+ .get_record = get_pse_record,
+ .version = 0x0101,
++ .imtu = BT_RX_MTU,
+ }, {
+ .uuid = OBEX_PCE_UUID,
+ .name = "Phone Book Access Client",
+@@ -2182,7 +2192,8 @@ static struct default_settings {
+ .mode = BT_IO_MODE_ERTM,
+ .authorize = true,
+ .get_record = get_mas_record,
+- .version = 0x0100
++ .version = 0x0100,
++ .imtu = BT_RX_MTU,
+ }, {
+ .uuid = OBEX_MNS_UUID,
+ .name = "Message Notification",
+@@ -2191,7 +2202,8 @@ static struct default_settings {
+ .mode = BT_IO_MODE_ERTM,
+ .authorize = true,
+ .get_record = get_mns_record,
+- .version = 0x0104
++ .version = 0x0104,
++ .imtu = BT_RX_MTU,
+ },
+ };
+
+@@ -2249,6 +2261,9 @@ static void ext_set_defaults(struct ext_profile *ext)
+ if (settings->features)
+ ext->features = settings->features;
+
++ if (settings->imtu)
++ ext->imtu = settings->imtu;
++
+ if (settings->name)
+ ext->name = g_strdup(settings->name);
+ }
+--
+2.34.1
+
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/4] bluez5: backport fixes from master to wrynose
2026-06-26 6:42 [PATCH 0/4] bluez5: backport fixes from master to wrynose Wei Deng
` (3 preceding siblings ...)
2026-06-26 6:42 ` [PATCH 4/4] bluez5: set L2CAP IMTU for OBEX profile listeners Wei Deng
@ 2026-06-26 8:18 ` Yoann Congal
4 siblings, 0 replies; 6+ messages in thread
From: Yoann Congal @ 2026-06-26 8:18 UTC (permalink / raw)
To: Wei Deng, openembedded-core
Cc: cheng.jiang, shuai.zhang, mengshi.wu, jinwang.li, xiuzhuo.shang
On Fri Jun 26, 2026 at 8:42 AM CEST, Wei Deng wrote:
> These four patches are backports of fixes already merged in OE-core master
> that are missing from wrynose. The first three patches (fixes from Jinwang,
> Xiuzhuo and Mengshi) shift the SRC_URI context in bluez5.inc such that the
> fourth patch (OBEX IMTU fix) cannot be cherry-picked cleanly onto wrynose
> without them.
> Please add to the wrynose review series.
Hello,
Since this series is for wrynose, could you resend it with [wrynose] in
the patch titles?
Something like (adapted from the README suggestion):
git send-email -M -4 --to openembedded-core@lists.openembedded.org --subject-prefix='wrynose][PATCH'
This helps a lot to avoid losing track of patches.
Thanks!
>
> Jinwang Li (1):
> bluez5: fix set volume failure
>
> Mengshi Wu (1):
> bluez5: fix gatt cache sync issue
>
> Wei Deng (1):
> bluez5: set L2CAP IMTU for OBEX profile listeners
>
> xiuzhuo.shang@oss.qualcomm.com (1):
> bluez5: Fix sending extra bytes with MGMT_OP_ADD_EXT_ADV_DATA
>
> meta/recipes-connectivity/bluez5/bluez5.inc | 4 +
> ...sending-extra-bytes-with-MGMT_OP_ADD.patch | 33 +++++
> ...2CAP-IMTU-for-OBEX-profile-listeners.patch | 118 ++++++++++++++++++
> ...x-stored-gatt-cache-DB-Hash-value-no.patch | 84 +++++++++++++
> ...t-volume-failure-with-invalid-device.patch | 46 +++++++
> 5 files changed, 285 insertions(+)
> create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-advertising-Fix-sending-extra-bytes-with-MGMT_OP_ADD.patch
> create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-profile-Set-L2CAP-IMTU-for-OBEX-profile-listeners.patch
> create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-src-device-Fix-stored-gatt-cache-DB-Hash-value-no.patch
> create mode 100644 meta/recipes-connectivity/bluez5/bluez5/0001-transport-Fix-set-volume-failure-with-invalid-device.patch
--
Yoann Congal
Smile ECS
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-06-26 8:18 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-26 6:42 [PATCH 0/4] bluez5: backport fixes from master to wrynose Wei Deng
2026-06-26 6:42 ` [PATCH 1/4] bluez5: fix set volume failure Wei Deng
2026-06-26 6:42 ` [PATCH 2/4] bluez5: Fix sending extra bytes with MGMT_OP_ADD_EXT_ADV_DATA Wei Deng
2026-06-26 6:42 ` [PATCH 3/4] bluez5: fix gatt cache sync issue Wei Deng
2026-06-26 6:42 ` [PATCH 4/4] bluez5: set L2CAP IMTU for OBEX profile listeners Wei Deng
2026-06-26 8:18 ` [PATCH 0/4] bluez5: backport fixes from master to wrynose Yoann Congal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox