Message ID | 20240405090050.1477187-1-frederic.danis@collabora.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 98bed16d254c3f1b2075290c69e74749d08c39b4 |
Headers | show |
Series | [BlueZ] device: Fix airpods pairing | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
tedd_an/CheckPatch | success | CheckPatch PASS |
tedd_an/GitLint | success | Gitlint PASS |
tedd_an/BuildEll | success | Build ELL PASS |
tedd_an/BluezMake | success | Bluez Make PASS |
tedd_an/MakeCheck | success | Bluez Make Check PASS |
tedd_an/MakeDistcheck | success | Make Distcheck PASS |
tedd_an/CheckValgrind | success | Check Valgrind PASS |
tedd_an/CheckSmatch | success | CheckSparse PASS |
tedd_an/bluezmakeextell | success | Make External ELL PASS |
tedd_an/IncrementalBuild | success | Incremental Build PASS |
tedd_an/ScanBuild | success | Scan Build PASS |
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=841718 ---Test result--- Test Summary: CheckPatch PASS 1.48 seconds GitLint PASS 0.31 seconds BuildEll PASS 24.53 seconds BluezMake PASS 1617.20 seconds MakeCheck PASS 12.91 seconds MakeDistcheck PASS 176.72 seconds CheckValgrind PASS 245.82 seconds CheckSmatch PASS 349.97 seconds bluezmakeextell PASS 119.24 seconds IncrementalBuild PASS 1390.81 seconds ScanBuild PASS 990.97 seconds --- Regards, Linux Bluetooth
Hello: This patch was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Fri, 5 Apr 2024 11:00:50 +0200 you wrote: > Apple Airpods are discoverable and pairable in BREDR mode, but also > advertise in unconnectable mode in LE with the same Public address, at the > same time. As the pairing process uses the latest seen address, sometimes > it uses the LE Public address to pair, which fails. > > This commit introduces the connectable state when selecting the bearer to > use for a connection. The last_seen value is used only for connectable > devices. > > [...] Here is the summary with links: - [BlueZ] device: Fix airpods pairing https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=98bed16d254c You are awesome, thank you!
diff --git a/src/device.c b/src/device.c index ac0b0e003..1d4b8ab36 100644 --- a/src/device.c +++ b/src/device.c @@ -2537,13 +2537,13 @@ static uint8_t select_conn_bearer(struct btd_device *dev) if (dev->bdaddr_type == BDADDR_LE_RANDOM) return dev->bdaddr_type; - if (dev->bredr_state.last_seen) { + if (dev->bredr_state.connectable && dev->bredr_state.last_seen) { bredr_last = current - dev->bredr_state.last_seen; if (bredr_last > SEEN_TRESHHOLD) bredr_last = NVAL_TIME; } - if (dev->le_state.last_seen) { + if (dev->le_state.connectable && dev->le_state.last_seen) { le_last = current - dev->le_state.last_seen; if (le_last > SEEN_TRESHHOLD) le_last = NVAL_TIME;