author | G Anthony <a0783926@ti.com> | |
Thu, 25 Jul 2013 23:43:45 +0000 (16:43 -0700) | ||
committer | Ramsey Harris <ramsey@ti.com> | |
Tue, 6 Aug 2013 18:02:18 +0000 (11:02 -0700) | ||
commit | ea706693ed1b7d867035180add233bb6ca0174ef | |
tree | 6dc85c485ab3d725c01067a755b32e2a32304ef8 | tree | snapshot (tar.xz tar.gz zip) |
parent | 00e4eb78b8f7ba73c4514115d5ddc78c851eef30 | commit | diff |
VirtQueue: Poll for VDEV status in VirtQueue_startup() to sync rpmsg on boot.
Previously, various methods (or none) have been implemented to ensure that
the slave has buffers available in the vring to the host before sending its
first message.
VirtQueue_startup() now polls the status bit in the VDEV struct of the Resource
table for a completion status, written by the host after the VDEV is created
successfully.
This resolves a race condition where the first slave RPMSG send would block
in a non-task context on a Semaphore_pend(), when the slave loads faster than
than the host can prime the send buffers in the vring to the host.
This patch implements the solution for Vayu separately.
Signed-off-by: G Anthony <a0783926@ti.com>
Previously, various methods (or none) have been implemented to ensure that
the slave has buffers available in the vring to the host before sending its
first message.
VirtQueue_startup() now polls the status bit in the VDEV struct of the Resource
table for a completion status, written by the host after the VDEV is created
successfully.
This resolves a race condition where the first slave RPMSG send would block
in a non-task context on a Semaphore_pend(), when the slave loads faster than
than the host can prime the send buffers in the vring to the host.
This patch implements the solution for Vayu separately.
Signed-off-by: G Anthony <a0783926@ti.com>
packages/ti/ipc/family/vayu/VirtQueue.c | diff | blob | history |