VirtQueue: Poll for VDEV status in VirtQueue_startup() to sync rpmsg on boot.
authorG Anthony <a0783926@ti.com>
Thu, 25 Jul 2013 23:43:45 +0000 (16:43 -0700)
committerRamsey Harris <ramsey@ti.com>
Tue, 6 Aug 2013 18:02:18 +0000 (11:02 -0700)
commitea706693ed1b7d867035180add233bb6ca0174ef
tree6dc85c485ab3d725c01067a755b32e2a32304ef8
parent00e4eb78b8f7ba73c4514115d5ddc78c851eef30
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>
packages/ti/ipc/family/vayu/VirtQueue.c