remoteproc: qcom: q6v5: Do not stop glink subdevices on recovery disable

When recovery is disabled, all the subdevices of remoteproc gets
stopped so that they can collect data in their ssr notifiers
but it also stops glink subdevice at the end, which cleans up
the data which is useful to debug issue related to glink
communication with the remote.

Let's put a check in glink stop about remoteproc recovery status
and if it is a crash and not a graceful shutdown.

Change-Id: I659b74e3318075200e2956f88b6c19d9afebb774
Signed-off-by: Amrit Anand <quic_amrianan@quicinc.com>
Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
This commit is contained in:
Amrit Anand 2024-04-25 10:13:11 +05:30
parent 8edf885ad0
commit 3c986e7ce1

View File

@ -5,7 +5,7 @@
* Copyright (C) 2016 Linaro Ltd
* Copyright (C) 2015 Sony Mobile Communications Inc
* Copyright (c) 2012-2013, 2020-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include <linux/firmware.h>
@ -422,9 +422,10 @@ static int glink_subdev_start(struct rproc_subdev *subdev)
static void glink_subdev_stop(struct rproc_subdev *subdev, bool crashed)
{
struct qcom_rproc_glink *glink = to_glink_subdev(subdev);
struct rproc *rproc = container_of(glink->dev, struct rproc, dev);
int ret;
if (!glink->edge)
if (!glink->edge || (crashed && rproc->recovery_disabled))
return;
trace_rproc_qcom_event(dev_name(glink->dev->parent), GLINK_SUBDEV_NAME,
crashed ? "crash stop" : "stop");