Oopenvela-robotdrivers/rpmsg: init pm_wakelock before rpmsg_queue_work
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
rpmsg: Remove rpmsg_lite transport support will be replaced by rptun lite Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com> | 2 个月前 | |
rpmsgdev.c: use shmem buf to replace local variables because user buffer maybe operate in other thread, when enable the stack MPU pretection, it will cause a crash Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com> | 2 个月前 | |
rpmsg: Remove rpmsg_lite transport support will be replaced by rptun lite Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com> | 2 个月前 | |
drivers/rpmsg/dump: optimize the dump log to save log buffer To avoid the carsh log is too large to casue part of the crash log is missed when flush the rpmsg syslog buffer. Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com> | 2 个月前 | |
rpmsg.c: support config the rpmsg work queue priority Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com> Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com> | 2 个月前 | |
drivers/rpmsg_char: fix the rpmsg char poll bug Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com> | 2 个月前 | |
rpmsg/rpmsg_char: add rpmsg char support User can use ioctl to create the rpmsg char device in the VFS and use read/write/poll to communicate with remote core by using rpmsg. Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com> | 2 个月前 | |
drivers/rpmsg_ping: add remote core name in ping info Signed-off-by: wangshaoxin <wangshaoxin@xiaomi.com> | 2 个月前 | |
rpmsg/rpmsg_ping: remove the nuttx/rpmsg/rpmsg_ping.h header All the rpmsg ioctl parameters struct should be at rpmsg.h and move the private struct to private header 1. move the struct rpmsg_ping_dev_s to private header; 2. move the struct rpmsg_ping_s to rpmsg.h; Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com> | 2 个月前 | |
nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com> | 2 个月前 | |
rpmsg_port.c: add log to identify the startup process Signed-off-by: liaoao <liaoao@xiaomi.com> | 2 个月前 | |
nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com> | 2 个月前 | |
nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr Signed-off-by: zhangyu117 <zhangyu117@xiaomi.com> | 2 个月前 | |
rpsmg_port_uart.c: fix complier warning Signed-off-by: chenzihan1 <chenzihan1@xiaomi.com> | 2 个月前 | |
drivers/rpmsg: Modify global variable/list for BMP Signed-off-by: yintao <yintao@xiaomi.com> | 2 个月前 | |
note->trace:Change the name of the rpmsg note to rpmsg trace Signed-off-by: mazhuang <mazhuang@xiaomi.com> | 2 个月前 | |
rpmsg: move the api only for rpmsg transport to drivers/rpmsg/rpmsg.h Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com> | 2 个月前 | |
drivers/rpmsg: remove metal_xx API Signed-off-by: yintao <yintao@xiaomi.com> | 2 个月前 | |
drivers/rpmsg: peer_ept should decref when hub_unbind If ept decref here (virtio thread), when peer_ept also executes unbind at port thread, it will cause use after free due to competition Signed-off-by: yintao <yintao@xiaomi.com> | 2 个月前 | |
rpmsg API:add rpmsg API test suite Signed-off-by: wangshaoxin <wangshaoxin@xiaomi.com> | 2 个月前 | |
rpmsg:add rpmsg_test to test rpmsg hold/release rx buffer rpmsg_test is a rpmsg api test service inside the kernel, and user can use ioctl to start this test. Signed-off-by: mazhuang <mazhuang@xiaomi.com> Signed-off-by: Bowen Wang <wangbowen6@xiaomi.com> Signed-off-by: wangshaoxin <wangshaoxin@xiaomi.com> | 2 个月前 | |
drivers/rpmsg: Modify global variable/list for BMP Signed-off-by: yintao <yintao@xiaomi.com> | 2 个月前 | |
note->trace:Change the name of the rpmsg note to rpmsg trace Signed-off-by: mazhuang <mazhuang@xiaomi.com> | 2 个月前 | |
drivers/rpmsg: init pm_wakelock before rpmsg_queue_work Problem: The pm_wakelock_init() was called after rpmsg_queue_work() in rpmsg_virtio_probe(), which creates a race condition. The worker thread (rpmsg_virtio_start_worker) may start executing and access priv->wakelock through rpmsg_virtio_pm_action() before the wakelock is properly initialized. This race leads to anomalous wakelock behavior where: - The wakelock count becomes inconsistent (e.g., count=0 when it should be non-zero) - The wakelock node remains in the PM domain queue (dq) even when count=0, violating the invariant that count=0 implies removal from the queue Root Cause: Call chain when worker starts before wakelock init: rpmsg_virtio_start_worker() -> rpmsg_init_vdev_with_config() -> rpmsg_virtio_rx_dispatch() -> rpmsg_virtio_tx_notify() (via callback) -> rpmsg_virtio_pm_action() -> pm_wakelock_stay(&priv->wakelock) // UNINITIALIZED! Solution: Move pm_wakelock_init() before rpmsg_queue_work() to ensure the wakelock is fully initialized before the worker thread can access it. Impact: Fixes PM wakelock corruption that prevented proper power management state transitions and could lead to system staying awake unnecessarily or entering low-power states prematurely. Signed-off-by: guanyi3 <guanyi3@xiaomi.com> | 2 个月前 | |
rpmsg-wakelock: Remove wakelock if count decreased to zero Signed-off-by: zhangbo56 <zhangbo56@xiaomi.com> | 2 个月前 | |
rpmsg-wakelock: Add rpmsg-wakelock driver Signed-off-by: zhangbo56 <zhangbo56@xiaomi.com> | 2 个月前 |