From 01ed340aa44538d0b41b84b56ef6e32a7e64de50 Mon Sep 17 00:00:00 2001 From: Yongrong Wang Date: Wed, 3 Jul 2024 10:00:34 +0800 Subject: [PATCH] rpmsg_virtio.c: replace metal_cpu_yield to metal_sleep_usec according to OpenAMP upgrade, metal_cpu_yield() is define by NULL in nuttx/openamp/libmetal/lib/processor/generic/cpu.h, so use it will cause a busy loop Signed-off-by: Yongrong Wang --- lib/remoteproc/remoteproc_virtio.c | 3 ++- lib/rpmsg/rpmsg_virtio.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/remoteproc/remoteproc_virtio.c b/lib/remoteproc/remoteproc_virtio.c index ef39c49e..aae026c0 100644 --- a/lib/remoteproc/remoteproc_virtio.c +++ b/lib/remoteproc/remoteproc_virtio.c @@ -15,6 +15,7 @@ #include #include #include +#include static void rproc_virtio_delete_virtqueues(struct virtio_device *vdev) { @@ -412,6 +413,6 @@ void rproc_virtio_wait_remote_ready(struct virtio_device *vdev) status = rproc_virtio_get_status(vdev); if (status & VIRTIO_CONFIG_STATUS_DRIVER_OK) return; - metal_cpu_yield(); + metal_sleep_usec(1000); } } diff --git a/lib/rpmsg/rpmsg_virtio.c b/lib/rpmsg/rpmsg_virtio.c index 7baaedd5..d1508600 100644 --- a/lib/rpmsg/rpmsg_virtio.c +++ b/lib/rpmsg/rpmsg_virtio.c @@ -271,8 +271,8 @@ static int rpmsg_virtio_wait_remote_ready(struct rpmsg_virtio_device *rvdev) } else if (status & VIRTIO_CONFIG_STATUS_DRIVER_OK) { return 0; } - /* TODO: clarify metal_cpu_yield usage*/ - metal_cpu_yield(); + /* TODO: clarify metal_sleep_usec usage*/ + metal_sleep_usec(RPMSG_TICKS_PER_INTERVAL); } }