The ipc_service_get_tx_buffer() has a timeout parameter that can be used to wait a certain amount of time for a TX buffer to be available. Unfortunately, for the static vrings backend, an asymmetry between remote and host exists that makes the usage of this parameter confusing when the user requests a buffer when no buffers are available at that time. When the remote endpoints requests a TX buffer specifying a certain size and there are no TX buffers available, the function ignores the parameter and ipc_service_get_tx_buffer() immediately returns -ENOMEM. The same case on the host endpoint works correctly only when the specified timeout is <= 15 seconds. All timeouts > 15 seconds simply returns -EIO after 15 seconds. This patch is reworking the timeout management trying to behave correctly in all the cases. Signed-off-by: Carlo Caione <ccaione@baylibre.com> |
||
---|---|---|
.. | ||
ipc_service | ||
rpmsg_service | ||
CMakeLists.txt | ||
Kconfig |