Commit graph

24,075 commits

Author SHA1 Message Date
Pieter De Gendt
b317afd845 nvmem: Add support for BBRAM
Add a new NVMEM backend for Battery Backed RAM.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2026-02-11 10:39:41 +01:00
Aiden Hu
0b6930e66d usb: host: fix usbh_bus_thread name setting
Use correct thread data pointer when setting bus thread name.

Signed-off-by: Aiden Hu <weiwei.hu@nxp.com>
2026-02-11 07:59:17 +01:00
Sean Kyer
21fdd4f3dc cpu_freq: pressure: Add silent macro fix
Silently set the threshold weight to be the
lowest_thread_prio in case of being set too
high.

Signed-off-by: Sean Kyer <sean.actor@gmail.com>
2026-02-11 07:56:44 +01:00
Sean Kyer
ebf64aeb2d cpu_freq: on_demand: Fix wording of comment
Change comment from "increasing" order to "decreasing"
since the 0th indexed Pstate must have the highest
threshold.

Signed-off-by: Sean Kyer <sean.actor@gmail.com>
2026-02-11 07:56:44 +01:00
Emil Gydesen
4fe38bbaed Bluetooth: VOCS: 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-10 13:42:46 -06:00
Emil Gydesen
257e1eb2e3 Bluetooth: VCP: REND: 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-10 13:42:24 -06:00
Emil Gydesen
c5061b76ab Bluetooth: VCP: CTLR: 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-10 13:42:07 -06:00
Emil Gydesen
c6562e70d7 Bluetooth: TMAP: 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-10 13:41:49 -06:00
Emil Gydesen
8c29bb0b62 Bluetooth: TBS: 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-10 13:41:28 -06:00
Emil Gydesen
50d57b2cee Bluetooth: TBS: 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-10 13:41:06 -06:00
Emil Gydesen
8d63fa7eea Bluetooth: PBP: 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-10 13:40:43 -06:00
Emil Gydesen
ef0726fbc0 Bluetooth: PACS: 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-10 13:40:21 -06:00
Emil Gydesen
833e3cbbae Bluetooth: MICP: MIC: 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-10 13:40:03 -06:00
Emil Gydesen
a0eeb3400a Bluetooth: MICP: CTLR: 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-10 13:39:21 -06:00
Emil Gydesen
4766ca1576 Bluetooth: MCC: 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-10 13:38:56 -06:00
Emil Gydesen
66a7da33f7 Bluetooth: HAS: 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-10 13:38:38 -06:00
Emil Gydesen
b1d8341b07 Bluetooth: HAS: 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-10 13:38:08 -06:00
Emil Gydesen
29cd613a7b Bluetooth: GMAP: 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-10 13:37:44 -06:00
Emil Gydesen
48ec3217df Bluetooth: CSIP: Member: 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-10 13:37:14 -06:00
Emil Gydesen
38301cd1b0 Bluetooth: CSIP: Coordinator: 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-10 13:36:46 -06:00
Emil Gydesen
b0a78bb87c Bluetooth: Audio: Codec: 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-10 13:36:20 -06:00
Emil Gydesen
03868cc875 Bluetooth: CCP: Server: 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-10 13:35:35 -06:00
Emil Gydesen
9a80dd1bfc Bluetooth: CCP: 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-10 13:34:54 -06:00
Emil Gydesen
52b6138b03 Bluetooth: CAP: Stream: 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-10 13:33:51 -06:00
Emil Gydesen
55e671781d Bluetooth: CAP: Initiator: Fix bad return values in param checks
Some parameter check return paths returned -EINVAL for
a boolean function.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-02-10 13:32:35 -06:00
Emil Gydesen
527d969786 Bluetooth: CAP: Initiator: 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-10 13:32:35 -06:00
Emil Gydesen
05440203c1 Bluetooth: CAP: Commander: 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-10 13:31:41 -06:00
Emil Gydesen
cb6bd5b023 Bluetooth: CAP: Commander: Remove invalid check
start_param->subgroups is an array, so it is always
non-NULL.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-02-10 13:31:41 -06:00
Emil Gydesen
7f5c9892f1 Bluetooth: CAP: Acceptor: 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-10 13:31:03 -06:00
Emil Gydesen
f4ae52137e Bluetooth: BAP: US: 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-10 13:29:24 -06:00
Emil Gydesen
33a1b4fa62 Bluetooth: BAP: UC: 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-10 13:29:01 -06:00
Emil Gydesen
449b63ec3e Bluetooth: BAP: Stream: 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-10 13:28:38 -06:00
Emil Gydesen
0ee0fb838f Bluetooth: BAP: SD: 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-10 13:28:13 -06:00
Emil Gydesen
b2c19b3ae5 Bluetooth: BAP: Broadcast Source: 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-10 13:27:53 -06:00
Emil Gydesen
13e00454ff Bluetooth: BAP: Broadcast Sink: 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-10 13:27:27 -06:00
Emil Gydesen
7005ee0054 Bluetooth: BAP: BA: 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-10 13:27:04 -06:00
Emil Gydesen
0dc8f915f3 Bluetooth: BAP: BASE: 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-10 13:26:33 -06:00
Emil Gydesen
4a30f7f27c Bluetooth: ASCS: 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-10 13:26:12 -06:00
Emil Gydesen
654a2a2105 Bluetooth: Audio: 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-10 13:25:39 -06:00
Emil Gydesen
9778c5bcc9 Bluetooth: AICS: 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-10 13:25:23 -06:00
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
Josuah Demangeon
5c88168758 usb: host: shell: call usbh_device_set_address()
Instead of calling the low-level function from usbh_ch9.c, call the
higher level function from usbh_device.c to update the address,
making sure that the udev->address and udev->state are updated
appropriately.

Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
2026-02-10 13:02:10 +01:00
Josuah Demangeon
abdc1ff11d usb: host: add a usbh_device_set_address() function
To complement usbh_req_set_address(), add a matching function
usbh_device_set_address() that also takes care of updating the data
structures.

Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
2026-02-10 13:02:10 +01:00
Lingao Meng
c200ff1eb4 fs: nvs: handle power loss during ATE write at sector end
NVS writes an entry by first programming the data area and then writing
the corresponding ATE. If a power loss occurs after the data has been
written but while the ATE is being programmed, and the remaining space
in the sector is only large enough for a single ATE, the ATE may end up
partially written.

1) Power loss while writing the last data ATE, leaving only space for
   a delete ATE but no space for additional data entries:

       [ data ][ data ][ erase ][ ATE ][ ATE ][ erase ] (sector end)
                                  ^^^
In this cases, nvs_startup() scans the sector and fails to find any
erased space usable for data writes, causing failed to mount.

       [ data ][ data ][ erase ][ ATE (Invalid) ][ ATE ][ erase ]
               ^       ^
                    ate_wra
            data_wra

The sector is logically exhausted andshould be closed and garbage
collected.

Detect this condition during startup. If no erased space exists after
the last ATE write, explicitly close the sector and trigger garbage
collection to restore a writable sector.

This completes the missing recovery path for power-loss scenarios
where a sector becomes effectively full due to ATE writes.

Signed-off-by: Lingao Meng <menglingao@xiaomi.com>
2026-02-10 13:01:50 +01:00
Pieter De Gendt
15b86499ce shell: devmem_service: Unmap virtual memory
WHen running the shell devmem dump command and CONFIG_MMU is enabled, the
virtual memory wasn't unmapped.

Call the device_unmap function to cleanup virtual memory resources.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2026-02-10 10:53:32 +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
Jay Beavers
03a86f89a1 usb: device_next: fix bInterfaceSubClass for CDC ECM data interface
According to the USB CDC 1.2 specification, section 4.6, the value of
bInterfaceSubClass for the data interface should be 0.

Signed-off-by: Jay Beavers <jay@tolttechnologies.com>
2026-02-10 08:23:40 +01:00
Jay Beavers
4d5477d0f3 bindesc: fix compile error when CONFIG_BINDESC_READ_FLASH disabled
Origin: Original
Fixes: zephyrproject-rtos/zephyr#103444

The get_entry() function uses IS_ENABLED(CONFIG_BINDESC_READ_FLASH) in
an if statement to guard code that accesses struct members (flash_device,
buffer) which are only defined when CONFIG_BINDESC_READ_FLASH is enabled.

While IS_ENABLED() correctly evaluates to 0 when the config is disabled,
the C compiler still performs type-checking on all code paths before
optimization can eliminate the dead branch. This causes a compile error:

  error: 'struct bindesc_handle' has no member named 'flash_device'
  error: 'struct bindesc_handle' has no member named 'buffer'

Fix by using preprocessor #if directive instead of runtime if statement.
This ensures the flash-specific code is excluded during preprocessing
when CONFIG_BINDESC_READ_FLASH is not enabled.

Signed-off-by: Jay Beavers <jay@tolttechnologies.com>
2026-02-10 08:23:22 +01:00
Fabio Baltieri
89e778d5b2 usb: device_next: usbd_cdc_{ecm,ncm}: support promisc mode
Flag the ECM and NCM interfaces as supporting promisc mode. There's no
filtering really so enabling promisc is a noop but pretending to have
support is needed to allow these to be added to a bridge.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2026-02-10 08:22:46 +01:00