From: Wendy Liang <wendy.liang@xxxxxxxxxx> 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@xxxxxxxxxx> Signed-off-by: Michal Simek <michal.simek@xxxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe linux-remoteproc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html