lkml.org 
[lkml]   [2022]   [Jul]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[V3 5/7] remoteproc: q6v5: Set q6 state to offline on receiving wdog irq
    Date
    From: Siddharth Gupta <sidgup@codeaurora.org>

    Due to firmware bugs on the Q6 the hardware watchdog irq can be triggered
    multiple times. As the remoteproc framework schedules work items for the
    recovery process, if the other threads do not get a chance to run before
    recovery is completed the proceeding threads will see the state of the
    remoteproc as running and kill the remoteproc while it is running. This
    can result in various SMMU and NOC errors. This change sets the state of
    the remoteproc to offline whenever a watchdog irq is received.

    Signed-off-by: Siddharth Gupta <sidgup@codeaurora.org>
    Signed-off-by: Sibi Sankar <quic_sibis@quicinc.com>
    ---
    drivers/remoteproc/qcom_q6v5.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/drivers/remoteproc/qcom_q6v5.c b/drivers/remoteproc/qcom_q6v5.c
    index 5280ec9b5449..497acfb33f8f 100644
    --- a/drivers/remoteproc/qcom_q6v5.c
    +++ b/drivers/remoteproc/qcom_q6v5.c
    @@ -112,6 +112,7 @@ static irqreturn_t q6v5_wdog_interrupt(int irq, void *data)
    else
    dev_err(q6v5->dev, "watchdog without message\n");

    + q6v5->running = false;
    rproc_report_crash(q6v5->rproc, RPROC_WATCHDOG);

    return IRQ_HANDLED;
    @@ -123,6 +124,9 @@ static irqreturn_t q6v5_fatal_interrupt(int irq, void *data)
    size_t len;
    char *msg;

    + if (!q6v5->running)
    + return IRQ_HANDLED;
    +
    msg = qcom_smem_get(QCOM_SMEM_HOST_ANY, q6v5->crash_reason, &len);
    if (!IS_ERR(msg) && len > 0 && msg[0])
    dev_err(q6v5->dev, "fatal error received: %s\n", msg);
    --
    2.7.4
    \
     
     \ /
      Last update: 2022-07-05 14:21    [W:4.757 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site