lkml.org 
[lkml]   [2017]   [Mar]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[RFC LINUX PATCH 17/19] remoteproc: virtio: kick in reset virtio
Date
From: Wendy Liang <wendy.liang@xilinx.com>

Kick the remote in virtio reset.
In order to be backward compatible, only set the vdev
status to NEEDS_RESET and kick the remote if the remote is
RUNNING_INDEPENDENT, that is only if the remote is already
running.

Signed-off-by: Wendy Liang <jliang@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
drivers/remoteproc/remoteproc_virtio.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/remoteproc/remoteproc_virtio.c b/drivers/remoteproc/remoteproc_virtio.c
index d43e15b..bf3be6f1 100644
--- a/drivers/remoteproc/remoteproc_virtio.c
+++ b/drivers/remoteproc/remoteproc_virtio.c
@@ -231,8 +231,19 @@ static void rproc_virtio_reset(struct virtio_device *vdev)

rsc = (void *)rvdev->rproc->table_ptr + rvdev->rsc_offset;

- rsc->status = 0;
dev_dbg(&vdev->dev, "reset !\n");
+ if (rvdev->rproc->state == RPROC_RUNNING_INDEPENDENT) {
+ rsc->status = VIRTIO_CONFIG_S_NEEDS_RESET;
+ virtio_mb(false);
+ rproc_virtio_notify(rvdev);
+ while (rsc->status) {
+ if (!wait_for_completion_timeout(
+ &rvdev->config_wait_complete, HZ))
+ break;
+ }
+ } else {
+ rsc->status = 0;
+ }
}

/* provide the vdev features as retrieved from the firmware */
--
1.9.1
\
 
 \ /
  Last update: 2017-03-24 20:32    [W:1.117 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site