Commit graph zephyr/subsys/bluetooth
Author SHA1 Message Date
Emil Gydesen
a65c3fb171 Bluetooth: BAP: SD: Refactor use of mutex
This commit does the following 2 changes:
1) The return value of k_mutex_lock has been modified to
be treated as a fatal error instead of a simple runtime error.
The reason for this is to avoid having to handle those cases,
and to treat those cases a fatal errors. The timeout for the
mutex should be long enough for any operation within the lock,
and if it isn't, then that should be treated as something that
needs to be fixed, as it is likely a bug. This is also the reason
why the timeout was kept, instead of using K_FOREVER.

2) Ensure that all log statements are done while the log isn't
locked.

The implementation should be reconsidered in terms of application
callbacks, as the current state, where we need to unlock and relock
the mutex so many times does not only risk resolving in cases where
wrong values are set, but is also not very readable nor performant.
Changes to the API will be done in a followup commit, as that requires
more significant changes.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-02-10 15:11:09 +01:00
Emil Gydesen
4230213f1f Bluetooth: CAP: Clear params before handover continues
When an unicast initiator procedure or a commander broadcast
procedure is completed and we have handover enabled, the
parameters used need to be cleared before continueing.
This is due to the fact that the parameters are only cleared
on completion, rather than at initialization, and that the
initiator and commander parameters are in a union.
Not clearing the parameters could set some values to an
unknown/unexpected start value.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-02-10 15:10:38 +01:00
Emil Gydesen
5864564a46 Bluetooth: CCP: Add user_data to bt_ccp_call_control_client_cb
Add a user_data field to bt_ccp_call_control_client_cb. The
field is optional to enable via Kconfig. The field can be used
to provide additional context from the owner of the callback
structure, to the callbacks themselves.

This solves a memory use-after-free issue in the unit tests
where the values from the callback was accessed after they
were released, as the values were just stack allocated.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-02-10 10:51:43 +01:00
Emil Gydesen
e1ff7805de Bluetooth: VOCS: Client: Replace CHECKIF with if
The usage of CHECKIF has been replaced with a regular
if. The reason for this is that higher layer may depend
on some of the checks defined by the API, and the higher
layers cannot do that properly if the checks can be
removed via a Kconfig option.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-02-06 11:17:19 +01:00
Mark Wang
9062679c55 bluetooth: shell: a2dp: use 'err' instead of 'ret' for error code
Rename variable 'ret' to 'err' in cmd_send_media() to align with
Zephyr coding conventions for error return values.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2026-02-05 13:01:02 +00:00
Kai Cheng
b1adf4afbc Bluetooth: Shell: add inquiry scan parameters command
Add shell command for testing BR/EDR inquiry scan parameters update.
Supports default parameter set and custom parameters via interval/
window/type arguments for inquiry scan configuration.

Signed-off-by: Kai Cheng <chengkai@xiaomi.com>
2026-02-05 10:26:46 +00:00
Kai Cheng
1a8c5875e3 Bluetooth: Classic: add inquiry scan parameters update
Implement BR/EDR inquiry scan parameters update functionality with
new API bt_br_inquiry_scan_update_param(). Adds support for setting
inquiry scan interval, window and type via HCI commands. Includes
default parameter set for standard inquiry scanning.

Signed-off-by: Kai Cheng <chengkai@xiaomi.com>
2026-02-05 10:26:46 +00:00
Kai Cheng
6af1073d1b Bluetooth: Shell: add page scan parameters command
Add shell command for testing BR/EDR page scan parameters update.
Supports predefined parameter sets (R0, R1, R2 variants) and custom
parameters via interval/window/type arguments.

Signed-off-by: Kai Cheng <chengkai@xiaomi.com>
2026-02-05 10:26:46 +00:00
Kai Cheng
8fe282374b Bluetooth: Classic: add page scan parameters update
Implement BR/EDR page scan parameters update functionality with new
API bt_br_page_scan_update_param(). Adds support for setting page scan
interval, window and type (standard/interlaced) via HCI commands.
Includes predefined parameter sets for different Bluetooth versions
and use cases.

Signed-off-by: Kai Cheng <chengkai@xiaomi.com>
2026-02-05 10:26:46 +00:00
Kai Cheng
3e065836c4 Bluetooth: Shell: add COD set/get support test shell
This commit implements Class of Device (COD) test shell
functionality for Classic Bluetooth, supporting both
setting and retrieving COD from the controller.

Signed-off-by: Kai Cheng <chengkai@xiaomi.com>
2026-02-05 10:26:46 +00:00
Kai Cheng
14158c9d02 Bluetooth: Classic: add COD set/get feature
This commit implements Class of Device (COD) functionality for
Classic Bluetooth, supporting both setting and retrieving COD
from the controller by bt_br_write_cod and bt_br_read_cod.

Signed-off-by: Kai Cheng <chengkai@xiaomi.com>
2026-02-05 10:26:46 +00:00
Benjamin Cabé
0aa07f14c7 Bluetooth: use proper essential type in bool variables assignments
As per Zephyr coding guideline #59, "operands shall not be of an
inappropriate essential type". This makes sure boolean variables are
assigned true/false values, not 1/0.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-02-05 10:20:22 +00:00
Benjamin Cabé
14b5485d57 Bluetooth: use proper essential type for boolean variables
As per Zephyr coding guideline #59, "operands shall not be of an
inappropriate essential type". This makes sure boolean variables are
initialized and used with proper essential type (true/false).

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2026-02-04 13:52:38 +01:00
Lyle Zhu
6e003239e5 Bluetooth: Host: GOEP: force 16-bit FCS for L2CAP ERTM
Set the FCS option to BT_L2CAP_BR_FCS_16BIT for enhanced retransmission
mode in both L2CAP accept and connect paths to work around an
interoperability issue with iPhone devices.

The issue occurs when connecting to iPhone for PBAP or MAP profiles,
where the iPhone expects the 'No FCS' option to be applied but does
not include the 'No FCS' option in its L2CAP_CONFIGURATION_REQ packet.
Forcing 16-bit FCS ensures proper configuration negotiation.

Changes include:
- Set rx.fcs to BT_L2CAP_BR_FCS_16BIT in goep_l2cap_accept()
- Set rx.fcs to BT_L2CAP_BR_FCS_16BIT in
  bt_goep_transport_l2cap_connect()

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-02-03 13:03:09 +01:00
Lyle Zhu
fe68ab16d5 Bluetooth: Classic: HFP AG: skip callback if AG is disconnected
Move state retrieval before error handling to ensure it's always
available for subsequent checks. Add a check to prevent executing
the callback when the AG connection is in a disconnected state.

This prevents potential use-after-free or invalid state access when
the callback is invoked after the AG has been disconnected, improving
the robustness of the notification work handler.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-02-03 09:39:51 +01:00
Emil Gydesen
fc6b23cf2b Bluetooth: Conn: Only recycle ACL connections
Add check for ACL connection before submitting recycled.
Since ISO and SCO connections do not trigger the disconnected
callback, nor affects e.g. advertising, they should not
trigger the recycled callback.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-01-29 13:36:53 +01:00
Lu Jia
f6063973c4 avrcp: Fix registration notification failures in AVRCP CT.
Failure to clear ct->ct_notify[event_id] when avrcp_prepare_vendor_pdu
fails, leading to an error return if ct->ct_notify[event_id].cb != NULL
during the next notification registration.

Signed-off-by: Lu Jia <jialu@xiaomi.com>
2026-01-29 09:04:19 +01:00
Alberto Escolar Piedras
46289d27dc Bluetooth: Controller: nRF54L: Use same hal for simulated 54LM20
Use the same HAL header for the simulated 54LM20 as for the 54L15,
just like we do for real targets.

Note this ifdef is the last one, and therefore the real targets
have already been caught before.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2026-01-28 21:58:11 +01:00
Jamie McCrae
e3e173aa90 Bluetooth: Controller: ll_sw: nordic: Fix renamed Kconfig
Fixes a missed Kconfig rename in this file

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2026-01-28 14:42:08 +01:00
Vinayak Kariappa Chettimada
bd77884512 Bluetooth: Controller: nrf54lx: Fix address resolution wait
Fix address resolution wait to not be infinite loop and
instead exit with a reasonable count down value.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-28 14:40:05 +01:00
Zhijie Zhong
8c9f8bcdeb Bluetooth: Classic: L2CAP: fix NULL pointer crash in chan->ops->xx()
for example:
l2cap_br_encrypt_change() calls l2cap_br_conn_pend(chan, hci_status) first,
which may trigger l2cap_br_chan_cleanup(chan). This clears chan->conn and
makes the channel invalid. The subsequent callback to
chan->ops->encrypt_change(chan, hci_status) then dereferences a NULL conn
in rfcomm_encrypt_change, causing a crash.

Signed-off-by: Zhijie Zhong <zhongzhijie1@xiaomi.com>
2026-01-28 08:32:12 +01:00
Emil Gydesen
ab9ba7be03 Bluetooth: BAP: Broadcast: Add missing NULL check for meta
`meta` may be NULL if `meta_len == 0`, in which case we should not
call `memcpy`.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-01-27 08:39:40 -05:00
Lyle Zhu
4cfd1ce402 bluetooth: Classic: l2cap: accept peer MPS larger than TX MTU
Fix L2CAP configuration negotiation failure when peer device sends
MPS value larger than its own TX MTU in the configuration request.

This issue occurs when connecting to certain devices (e.g., iPhone)
using enhanced retransmission mode with MAP or PBAP profiles. The
peer may send an MPS that exceeds the TX MTU specified in the same
L2CAP_CONFIGURATION_REQ packet.

Instead of rejecting the configuration, adjust the MPS to match the
peer's TX MTU and include the corrected value in the
L2CAP_CONFIGURATION_RSP packet. This allows the connection to proceed
while ensuring MPS stays within valid bounds.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-01-27 10:52:25 +00:00
Zhijie Zhong
1c432582bb Bluetooth: Core: add Mode Change event in event mask
Since we have already supported sniff mode,
the corresponding link mode change event should be received.

Signed-off-by: Zhijie Zhong <zhongzhijie1@xiaomi.com>
2026-01-27 08:08:56 +01:00
Lyle Zhu
cfc5fe01a3 bluetooth: Classic: l2cap_br: fix pdu_len parameter type issue
Change the `pdu_len` parameter type from `uint8_t` to `uint16_t` in
function `bt_l2cap_br_pack_i_frame_header()`.

This fixes a potential overflow issue as PDU length can exceed 255
bytes, which is the maximum value that can be stored in a uint8_t.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-01-26 10:12:34 -06:00
Lyle Zhu
352c6760ed bluetooth: shell: add commands to test connection request callback
Add shell commands to test the BR/EDR connection request callback
functionality introduced in the previous commit.

Add a `br_conn_req_cb()` callback function that demonstrates how
applications can handle incoming connection requests. The callback
supports:
- Accepting connections with a specified role (central/peripheral)
- Rejecting connections when auto-reject is enabled

Update the `pscan` (connectable) command to accept an optional
"central/peripheral" parameter. When provided, the connection request
callback is registered and configured to accept incoming connections
as the central/peripheral role. Without the parameter, the default
behavior is used.

Add `auto_reject_conn` shell command to enable/disable automatic
rejection of incoming connection requests for testing purposes.
This setting only takes effect if the `connectable` command has the
optional parameter `central/peripheral` set.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-01-26 12:01:22 +01:00
Lyle Zhu
0d73d29962 bluetooth: classic: add callback for incoming connection requests
Add a callback mechanism to allow applications to handle incoming
BR/EDR connection requests and decide whether to accept or reject
them, as well as specify the desired role (central/peripheral).

Update bt_br_set_connectable() to accept an optional callback function
parameter. When provided, callback is invoked on incoming connection
requests, allowing the application to inspect the remote device address
and Class of Device before accepting or rejecting the connection.

If no callback is provided, the connection request is accepted
internally with the default behavior based on the
`CONFIG_BT_ACCEPT_CONN_AS_CENTRAL` configuration option.

The accept_conn() function is updated to:
- Call the registered callback if available
- Pass the remote device address and Class of Device to the callback
- Accept the connection if the callback returns BT_BR_CONN_REQ_ACCEPT_*
- If the returned value is BT_BR_CONN_REQ_ACCEPT_CENTRAL, the role
  switch will be requested.
- Reject the connection if the callback returns BT_BR_CONN_REQ_REJECT_*
- Add error handling and logging for failed connection acceptance

Update all existing callers of bt_br_set_connectable() to pass NULL
for the callback parameter to maintain backward compatibility.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-01-26 12:01:22 +01:00
Lyle Zhu
2c4d6c69e8 bluetooth: host: classic: add option to accept connection as central
Add a new Kconfig option BT_ACCEPT_CONN_AS_CENTRAL to allow accepting
incoming ACL connection requests as the central role instead of the
default peripheral role.

When enabled, the accept_conn() function sets the role to central in
the HCI accept connection request command when handling the connection
request event.

The actual role will be updated in Role Change event.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-01-26 12:01:22 +01:00
Lyle Zhu
cc18a23ec9 bluetooth: classic: GOEP: fix L2CAP MTU calculation
Correct the minimum MTU calculation for GOEP over L2CAP to account
for the L2CAP I-frame overhead.

- Update BT_BUF_ACL_RX_SIZE default from 264 to 265 bytes for GOEP
- Update BT_GOEP_L2CAP_MTU minimum range from 259 to 265 bytes
- Add detailed comment explaining L2CAP I-frame field length (6 bytes):
  * 4 bytes for extended control field
  * 2 bytes for FCS field

The previous calculation only accounted for the L2CAP header (4 bytes)
but missed the 6-byte L2CAP I-frame overhead (extended control field
and FCS), resulting in an incorrect minimum of 264 bytes instead
of the correct 265 bytes. And it causes the minimum MTU of L2CAP
to be incorrectly set to 254. The MTU cannot meet the minimum
requirement of GOEP MOPL.

The correct calculation for GOEP over L2CAP is:
255 bytes (GOEP minimum MTU) + 4 bytes (L2CAP header) + 6 bytes
(L2CAP I-frame) = 265 bytes total.

Set the default value of CONFIG_BT_BUF_ACL_RX_SIZE to 265 if GOEP is
enabled.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-01-23 10:41:38 +01:00
Vinayak Kariappa Chettimada
43dede5acc Bluetooth: Host: settings: Add early len check without strncpy/cmp use
Add early len check, remove use of strcpy, strncpy and
strncmp.

Co-authored-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-22 13:01:07 -05:00
Vinayak Kariappa Chettimada
230453b6ea Bluetooth: Host: settings: Fix truncation detection after strncpy
Fix truncation detection after strncpy, as strlen cannot be
used if the src was truncated due to insufficient size of
dst.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-22 13:01:07 -05:00
Vinayak Kariappa Chettimada
d98c2cf0d8 Bluetooth: Host: Rework settings without snprintk to return error
Rework settings implementation for not reusing the OS
snprintk implementation with CONFIG_PRINTK=n and to return
error if path buffer is insufficient.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-22 13:01:07 -05:00
Vinayak Kariappa Chettimada
d8f3e43b20 Bluetooth: Host: Rework settings without snprintk use
Rework settings implementation for not reusing the OS
snprintk implementation with CONFIG_PRINTK=n.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-22 13:01:07 -05:00
Vinayak Kariappa Chettimada
2db3f7978f Bluetooth: Host: settings without snprintk use
Update settings implementation for not reusing the OS
snprintk implementation with CONFIG_PRINTK=n.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-22 13:01:07 -05:00
Vinayak Kariappa Chettimada
4a914bf281 Bluetooth: Host: ATT: Do not use bt_addr_le_to_str when CONFIG_LOG=n
Do not use bt_addr_le_to_str() when CONFIG_LOG=n.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-22 13:01:07 -05:00
Vinayak Kariappa Chettimada
73c182509c Bluetooth: Controller: LLL prepare at margin Kconfig
Introduce Kconfig option to enfore LLL prepare at margin
irrespective of whether there is an overlapping state/role.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-22 14:09:11 +00:00
Vinayak Kariappa Chettimada
5fe53aaa84 Bluetooth: Controller: Use PPI/DPPI to start s/w switch timer
Use PPI/DPPI to start s/w switch timer to reduce current
consumption.

Explicitly starting the s/w switch timer at prepare meant
current being consumed in the prepare margin duration. Use
of PPI/DPPI ensure s/w switch timer is start when event
timer is started after the prepare margin.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-22 14:09:11 +00:00
Vinayak Kariappa Chettimada
0b1b099196 Bluetooth: Controller: Fix PAST sync_offset_us calculation
Fix the missing use of remainder value in the sync_offset_us
calculations. Also, Periodic Sync reception is relative to
Peripheral event hence ticks_anchor does not require the
ticker margin and event jitter to be subtracted.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2026-01-22 14:09:11 +00:00
Mark Wang
f66ce9c251 bluetooth: shell: a2dp: include error code in failure messages
Add error code parameter to all A2DP shell error messages to provide
more detailed diagnostic information when operations fail. This applies
to configure, establish, release, start, suspend, delay report, and
abort response handlers.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2026-01-22 08:37:41 +00:00
Mark Wang
d8eb0ce5f4 bluetooth: shell: a2dp: use bt_shell_error for error messages
Replace bt_shell_print() calls with bt_shell_error() for all error
conditions and failure cases in the A2DP shell implementation to
properly distinguish error messages from informational output.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2026-01-22 08:37:41 +00:00
Mark Wang
313478b026 bluetooth: shell: a2dp: use bt_shell_xxx instead of shell_xxx
Replace all shell_print() and shell_error() calls with bt_shell_print()
and bt_shell_error() respectively to use the common Bluetooth shell
printing functions throughout the A2DP shell implementation.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2026-01-22 08:37:41 +00:00
Mark Wang
36ab1ba154 Bluetooth: shell: a2dp: Update a2dp sdp profile version
The newest a2dp spec set the profile version as 1.4.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2026-01-22 08:37:41 +00:00
Mark Wang
6f0b31c709 bluetooth: shell: a2dp: improve a2dp shell cmds
add abort req and rsp callbacks, improve register_ep cmd to support delay
report, check buf tailroom for sending media, add get_conn cmd to test
bt_a2dp_get_conn.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2026-01-22 08:37:41 +00:00
Mark Wang
c92d617855 bluetooth: shell: a2dp: use common function to check a2dp initialization
Before every cmd, call one common function to check whether a2dp is
initialized.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2026-01-22 08:37:41 +00:00
Evgenii Kosenko
7deab5e334 Bluetooth: Shell: Add per-bearer pool for GATT operations
The original implementation used a single global parameter structure for
GATT operations, preventing concurrent operations on different bearers. By
introducing a per-bearer context pool, each bearer can maintain its own
operation state, enabling simultaneous GATT operations.

Signed-off-by: Evgenii Kosenko <Evgenii.Kosenko@silabs.com>
2026-01-21 13:01:42 +00:00
Tom Hughes
8ea64b7b33 bluetooth: audio: Fix redundant initialization
When building the bluetooth.general.tester_le_audio test with clang and
-Winitializer-overrides, it warns:

subsys/bluetooth/audio/mpl.c:318:2: error: initializer overrides prior
initialization of this subobject [-Werror,-Winitializer-overrides]
  318 |         .add_group = NULL,
      |         ^~~~~~~~~~~~~~~~~
subsys/bluetooth/audio/mpl.c:317:15: note: previous initialization is here
  317 |         .add_track = NULL,
      |                      ^~~~

Remove redundant initializer for add_group which overlaps with add_track
in an anonymous union.

Signed-off-by: Tom Hughes <tomhughes@chromium.org>
2026-01-20 20:09:06 -05:00
Emil Gydesen
a25598eab9 Bluetooth: CSIP: Fix set member register issue
Fix issue with re-registering CSIS where it relied on
a stack allocated value during the service unregistering
and reset. To fix this properly, and to allow for further
optimization, the register function was refactored to dynamically
create the service, rather than relying on a static allocation
and dynamically remove unwanted characteristics.

Additionally this new approach also allow us to rely on
IS_ENABLED and remove some #if defined, as well as reducing
both ROM and RAM memory usage.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-01-20 13:23:28 +00:00
Lyle Zhu
ef7b132bfd Bluetooth: Classic: Fix initialization to support re-initialization
In current implementation, the Classic L2CAP server list will be
cleared when the function `bt_enable()` called. It causes the
registered Classic L2CAP servers are unregistered. However, the
higher-ups were completely unaware of this behavior. It causes the
Classic L2CAP server cannot work after executing the sequence
`bt_enable()`, `bt_disable()`, and `bt_enable()`. Also this behavior
is inconsistent with LE L2CAP server.

Remove the initialization of Classic L2CAP server list from function
`bt_l2cap_br_init()` to fix the issue.

Make Bluetooth Classic profile initialization functions idempotent
by adding static initialized flags to prevent re-initialization.
Change return type from int to void since errors are now logged
but not propagated.

Changes include:
- Add initialized flag to prevent multiple initialization
- Change return type to void for init functions
- Mark err variables as __maybe_unused where appropriate
- Improve error logging with error codes
- Handle -EEXIST and -EALREADY errors for re-registration
- Initialize connection pools before checking initialized flag
  in AVRCP to support re-initialization scenarios
- Remove unnecessary sys_slist_init in bt_l2cap_br_init

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-01-20 13:23:14 +00:00
Lyle Zhu
4146c053d2 bluetooth: shell: Fix error code formatting in BR/EDR shell
Fix incorrect error code formatting in Bluetooth BR/EDR shell commands.
Error codes are already negative values, so remove the redundant negation
when printing error messages. Also update PSM registration message to
print the PSM value in hexadecimal format for consistency.

Changes:
- Remove negation of error codes in shell_error() calls
- Change PSM format specifier from %u to %04x for hex display
- Affects l2cap_disconnect, l2cap_send, l2cap_credits, l2cap_echo_reg,
  l2cap_echo_unreg, l2cap_echo_req, and l2cap_echo_rsp commands

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-01-20 13:23:03 +00:00
Håvard Reierstad
f5f7bb4461 Bluetooth: Host: Add bt_keys config flag
Adds a flag `cfg_flags` to the `bt_keys` struct  and a version field
`cfg_version` in order to be able to detect configuration changes
between firmware updates. This is needed because the `bt_keys` struct
has fields which are compiled in depending on which Kconfig options are
enabled, enabling the possibility of stored data being intepreted
wrongly if the struct changes.

Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
2026-01-20 13:22:05 +00:00