The Bluetooth data buffer API currently lacks a mechanism to notify when
a buffer is freed in the RX pool. This limitation forces HCI drivers to
adopt inefficient workarounds to manage buffer allocation.
HCI drivers face two suboptimal options:
- Blocking calls: Use bt_buf_get_rx with K_FOREVER, which blocks the
execution context until a buffer becomes available.
- Polling: Repeatedly call bt_buf_get_rx with K_NO_WAIT, which increases
CPU load and reduces efficiency.
This commit introduces a callback mechanism that is triggered each time
a buffer is freed in the RX pool. With this feature, HCI drivers can:
- Call bt_buf_get_rx with K_NO_WAIT.
- Wait for the callback notification if a NULL buffer is returned,
avoiding unnecessary polling.
The new callback improves efficiency by enabling event-driven behavior
for buffer management, reducing CPU overhead while maintaining
responsiveness.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
The asserts were not proper here, replace those by runtime
checks as the functions can be called from applications and
asserts are not meant for error checking.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
Add "bandwidth" parameter to "wifi ap enable" command.
Add "ht_capab" and "vht_capab" parameters to "wifi ap config" command.
Signed-off-by: Gang Li <gang.li_1@nxp.com>
On the stm32U5 serie the MCO prescaler is a value
set in the CFGR1 register to divide the MCO output clock.
See the RefMan for accepted values for this stm32U5 serie
Signed-off-by: Francois Ramu <francois.ramu@st.com>
The tcpc_get_status_register function was using int32_t for the status
parameter, while the other related functions used uint32_t. This change
unifies the data type across all related functions to uint32_t for
consistency and clarity.
Signed-off-by: Jianxiong Gu <jianxiong.gu@outlook.com>
Extends the MIPI DBI SPI driver class for operating mode C4, SPI 4-wire,
with 16 write clocks to send one or multiple byte for commands. Generic
data (e.g. GRAM) aligned to 16-bit are passed through and stuffed with
bytes if required.
Signed-off-by: Stephan Linz <linz@li-pro.net>
In the Doxygen comments, the amount of SPI clocks now match the
number of data bits shown. The clock was shown half the speed.
Signed-off-by: Stephan Linz <linz@li-pro.net>
Update events to use uptime ticks, which is a monotonic clock which
in the same res as kernel ticks. This makes comparisons simple and
removes the complexity of dealing with wrapping counter values.
The wrapping is particularly problematic for events since this makes
it quite complex to track if an event has occured in the past, or
will occur in the future. This info is needed to know if an event
has actually been handled or not.
Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
Add the POLLPRI constant defined by POSIX and test for it.
Signed-off-by: Jakub Michalski <jmichalski@antmicro.com>
Signed-off-by: Maciej Sobkowski <msobkowski@antmicro.com>
Add the nfds_t type defined by POSIX and test for it.
Signed-off-by: Jakub Michalski <jmichalski@antmicro.com>
Signed-off-by: Maciej Sobkowski <msobkowski@antmicro.com>
Add port and endpoint DT macros to retrieve the node id of the interested
port/endpoint from its id. Also, add helpers to retrieve the peer remote
device node from its local endpoint interface.
Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
Co-developed-by: Josuah Demangeon <me@josuah.net>
If CONFIG_SPI_STATS is enabled, the device state for all SPI controller
drivers must contain the SPI stats. This space is allocated by calling
Z_SPI_INIT_FN as part of the device definition; this is done automatically
when using SPI_DEVICE_DT_DEFINE instead of DEVICE_DT_DEFINE. If space for
statistics is not properly allocated but CONFIG_SPI_STATS is enabled, an
unexpected write to memory outside of the stats region may occur on a SPI
transfer. This commit uses SPI_DEVICE_DT_DEFINE or
SPI_DEVICE_DT_INST_DEFINE for all in-tree SPI controller drivers.
Signed-off-by: Dane Wagner <dane.wagner@gmail.com>
Following the binding rename to "nxp,sysmpu", update the Kconfig
option to align with the binding name and to better reflect the
option's purpose.
Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
These callbacks are trigger for changes that affect the entire
broadcast sink, such as the BIG synced and terminated events.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
These callbacks are trigger for changes that affect the entire
broadcast source, such as the BIG started and terminated events.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
These callbacks are trigger for changes that affect the entire
broadcast source, such as the BIG started and terminated events.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add callbacks that is called for the entire BIG.
The BIG state is from an HCI perspective a single state change
that we previously only propagated as a state change for each
channel.
However it may be simpler for applications and higher layers
to use BIG changes to trigger their behavior.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Extend the function `bt_sdp_discover` to support service search
transaction and service attribute transaction.
Improve the `session->rec_buf`. If the net buffer cannot be allocated
from the channel, disconnect the SDP session.
Set the `MaximumAttributeByteCount` of the request
`SDP_SERVICE_SEARCH_ATTR_REQ` with the tail room of `session->rec_buf`.
Set the `MaximumAttributeByteCount` of the request `SDP_SERVICE_ATTR_REQ`
with the tail room of `session->rec_buf`.
Set the `MaximumServiceRecordCount` of the request
`SDP_SERVICE_SEARCH_REQ` according to the tail room of
`session->rec_buf`.
Handle the response code `SDP_SERVICE_SEARCH_RSP`, and
`SDP_SERVICE_ATTR_RSP`.
Handle the error `SDP_ERROR_RSP`. Start the next SDP discovery if the
error received.
If there no more request, disconnect the session.
If the request cannot be sent, start the next SDP discovery.
Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
Commit 132fa83ed4 ("arch: riscv: make arch_current_thread_set()
safer") created some unintended code generation changes. Reorder the
assignments to preserve original results.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
Introduce a video_get_format_index() utility to help finding a caps
entry out of a given format. Introduce several utilities to seek and
apply frame intervals.
Signed-off-by: Josuah Demangeon <me@josuah.net>
Depending on the stm32 serie the MCO1/2 prescaler is a value
set in the CFGR register to divide the MCO output clock.
Use the same model based on the RefMan for other stm32 series
than stm32C0/F4/F7/H5/H7, once the MCO is in the DTS.
Signed-off-by: Francois Ramu <francois.ramu@st.com>
The stm32F4 serie has HSI and HSE clock possible clock sources
The stm32F1 also has an external HSE possible clock source
Signed-off-by: Francois Ramu <francois.ramu@st.com>
Add type check to avoid comparing unsigned values with 0 which is always
true or false and can cause coverity issue.
Signed-off-by: Trung Hieu Le <trunghieu.le@nxp.com>
Add `zephyr,memory-region-flags` for supporting memory region flags
setting.
For example, when the below node is in the devicetree,
```
test_sram: sram@20010000 {
compatible = "zephyr,memory-region", "mmio-sram";
reg = < 0x20010000 0x1000 >;
zephyr,memory-region = "FOOBAR";
zephyr,memory-region-flags = "rw";
};
```
We get the following line in MEMORY section of linker script.
```
FOOBAR (rw) : ORIGIN = (0x20010000), LENGTH = (0x1000)
```
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
Rename rpi_pico_common.dtsi to rp2040_reset.h . This is more consistent
with the wider Zephyr source tree, and is foundation work ahead of
introducing the RP2350 SoC.
Add missing include guard. This shouldn't be required, but it is
consistent with other header files in the same directory.
Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
ARC architecture has some additional .arcextmap debug sections used by
debuggers to understand extension-specific instructions. These sections
could safely be ignored, but doing this causes warnings at least with
ARC MWDT toolchain.
Signed-off-by: Ilya Tagunov <Ilya.Tagunov@synopsys.com>
Add support for GPIO controller feature of AW9523B.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
Co-authored-by: Benjamin Cabé <kartben@gmail.com>
Add sensor driver for npm2100 pmic.
This pmic performs measurements of battery voltage, regulator voltage
and die temperature.
Configurable pmic attributes are also organized under this driver.
Signed-off-by: Audun Korneliussen <audun.korneliussen@nordicsemi.no>
Add regulator driver for npm2100 pmic.
This pmic has one boost and one ldo regulator.
Signed-off-by: Audun Korneliussen <audun.korneliussen@nordicsemi.no>
Add mfd driver for the npm2100 pmic device.
The driver contains basic initialization routines,
and functionality not covered by other device driver APIs.
Signed-off-by: Audun Korneliussen <audun.korneliussen@nordicsemi.no>
The original idea of the syscall helpers is to workaround
an issue where the compiler could not correctly model register
usage with inline functions. It was supposed to be only used
when there are more then 3 arguments to syscalls. However,
during the original MMU code development, the helper got
expanded to cover "less then 2 arguments syscalls" as a way
for debugging syscall handling code and was never removed.
So fix that now by limiting the helper for syscalls with
more than 3 arguments.
Moreover, instead of using one helper with 6 arguments, now
we have separate implementations for both 4 and 5 arguments
syscall helpers. Now the compiler does not have to generate
code to always handle 6 arguments which saves a few code bytes
as there is no need to pass extra zeroes as arguments.
This has been verified to work with xt-clang RI-2022.10.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
The nrf wifi drivers include code related to qspi/spi bus. This work
moves bus related files to a new nrf70 bus library which is now
independent of the core driver and facilitlates building applications
directly using the bus APIs, agnostic to enabling wifi configs.
Signed-off-by: Bansidhar P.M <bansidhar.mangalwedhekar@nordicsemi.no>
Concurrent HTTP POST requests on different HTTP2 concurrent streams
require that the client's header_capture_context is re-used to capture
headers on a second stream before all of the body data has been received
(and sent to the application) on the first stream.
As a result, any captured headers must be sent to the application
callback before any headers can be received on a different stream. In
practice this means that for HTTP2 the application callback is called
for the first time on receiving a headers frame, before any data frames
are received. All subsequent application callbacks will not include the
request header data.
While this mechanism is not necessary for HTTP1, it is also updated to
only send headers in the first application callback for consistency.
Fixes#82273
Signed-off-by: Matt Rodgers <mrodgers@witekio.com>
To correctly handle concurrent HTTP POST requests via different http2
streams on the same client context, it is necessary to store the
resource detail at an HTTP2 stream level rather than at an HTTP client
level, otherwise only one resource detail can be stored.
Signed-off-by: Matt Rodgers <mrodgers@witekio.com>
If GPIO tracing is enabled, then the system will track
various GPIO pin events.
Signed-off-by: Alexander Lay <alexanderlay@tenstorrent.com>
Signed-off-by: Yang Xu <yangxu@tenstorrent.com>
Add missing closing brace and semicolon to code comment
Signed-off-by: Alexander Lay <alexanderlay@tenstorrent.com>
Signed-off-by: Yang Xu <yangxu@tenstorrent.com>
Add the DT_DMAS_CELL_BY_NAME_OR macro. It is almost the same as
DT_DMAS_CELL_BY_NAME, but it uses DT_PHA_BY_NAME_OR instead of
DT_PHA_BY_NAME.
Signed-off-by: Dawid Niedzwiecki <dawidn@google.com>
toolchain/xcc.h includes toolchain/gcc.h in some configurations
and this will lead to build errors as __in_section_unique_named()
and friends are defined multiple times.
Add ifdef guards to main definitions in gcc.h.
Fixes: 7e32b2069d ("toolchain: xcc: Avoid undefs")
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
The deprecated CONFIG_NET_SOCKETS_POSIX_NAMES option is removed.
If one wishes to use POSIX API socket calls, then CONFIG_POSIX_API
option needs to be enabled.
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>