2023-03-29 21:22:24

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ 1/2] bap: Mark devices to auto-connect

From: Luiz Augusto von Dentz <[email protected]>

This makes devices with BAP support to auto-connect once they start
advertising.
---
profiles/audio/bap.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/profiles/audio/bap.c b/profiles/audio/bap.c
index cfe6854663fa..464f365a93bc 100644
--- a/profiles/audio/bap.c
+++ b/profiles/audio/bap.c
@@ -1352,6 +1352,7 @@ static struct btd_profile bap_profile = {
.device_remove = bap_remove,
.accept = bap_accept,
.disconnect = bap_disconnect,
+ .auto_connect = true,
};

static unsigned int bap_id = 0;
--
2.39.2


2023-03-29 21:22:24

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: [PATCH BlueZ 2/2] device: Fix not setting initiator flag when auto-connecting

From: Luiz Augusto von Dentz <[email protected]>

If the device is marked as auto-connect the kernel may initiate the
connection spontaneously causing new connections to not have set the
state->initiator flag properly.
---
src/device.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/device.c b/src/device.c
index f31f2a097e07..c538742b683f 100644
--- a/src/device.c
+++ b/src/device.c
@@ -312,9 +312,16 @@ static struct bearer_state *get_state(struct btd_device *dev,

bool btd_device_is_initiator(struct btd_device *dev)
{
- if (dev->le_state.connected)
+ if (dev->le_state.connected) {
+ /* Mark as initiator if not set yet and auto-connect flag is
+ * set and LTK key is for a peripheral.
+ */
+ if (!dev->le_state.initiator && dev->auto_connect &&
+ dev->ltk && !dev->ltk->central)
+ dev->le_state.initiator = true;
+
return dev->le_state.initiator;
- if (dev->bredr_state.connected)
+ } if (dev->bredr_state.connected)
return dev->bredr_state.initiator;

return dev->att_io ? true : false;
--
2.39.2

2023-03-29 22:50:17

by bluez.test.bot

[permalink] [raw]
Subject: RE: [BlueZ,1/2] bap: Mark devices to auto-connect

This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=735159

---Test result---

Test Summary:
CheckPatch FAIL 1.04 seconds
GitLint PASS 0.51 seconds
BuildEll PASS 27.02 seconds
BluezMake PASS 797.04 seconds
MakeCheck PASS 10.89 seconds
MakeDistcheck PASS 152.52 seconds
CheckValgrind PASS 245.03 seconds
CheckSmatch PASS 324.41 seconds
bluezmakeextell PASS 98.30 seconds
IncrementalBuild PASS 1258.25 seconds
ScanBuild PASS 989.37 seconds

Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script
Output:
[BlueZ,2/2] device: Fix not setting initiator flag when auto-connecting
ERROR:TRAILING_STATEMENTS: trailing statements should be on next line (or did you mean 'else if'?)
#111: FILE: src/device.c:324:
+ } if (dev->bredr_state.connected)

/github/workspace/src/src/13193225.patch total: 1 errors, 0 warnings, 18 lines checked

NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.

/github/workspace/src/src/13193225.patch has style problems, please review.

NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO

NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.




---
Regards,
Linux Bluetooth