From: Praveen Talari <praveen.talari@oss.qualcomm.com>
To: Mukesh Savaliya <mukesh.savaliya@oss.qualcomm.com>,
konrad.dybcio@oss.qualcomm.com, Mark Brown <broonie@kernel.org>
Cc: linux-arm-msm@vger.kernel.org, linux-spi@vger.kernel.org,
linux-kernel@vger.kernel.org,
chandana.chiluveru@oss.qualcomm.com
Subject: Re: [PATCH v3 2/2] spi: qcom-geni: Add panic notifier to cancel and reset DMA during panic
Date: Fri, 21 Aug 2026 15:25:41 +0530 [thread overview]
Message-ID: <b117d9ad-7fa3-4130-80cf-d7cfbee20fba@oss.qualcomm.com> (raw)
In-Reply-To: <54e4fa7b-9a95-4871-94f9-65ac55688f7b@oss.qualcomm.com>
Hi Mukesh
On 20-08-2026 01:02, Mukesh Savaliya wrote:
>
>
> On 8/18/2026 6:58 PM, Praveen Talari wrote:
> [...]
>
>> +static int spi_geni_panic_notifier(struct notifier_block *nb,
>> + unsigned long action, void *data)
>> +{
>> + struct spi_geni_master *mas = container_of(nb, struct
>> spi_geni_master, panic_nb);
>> + struct spi_controller *spi = dev_get_drvdata(mas->dev);
>> + struct geni_se *se = &mas->se;
>> + u32 val;
>> +
>> + if (!pm_runtime_active(mas->dev))
>
> Not completely sure, but why not NOTIFY_DONE ? we haven't handled
> anything here.
My intention was to treat this as a successful no-op since no action is
required when the device is runtime suspended.
>
>> + return NOTIFY_OK;
>> +
>> + if (mas->cur_xfer_mode == GENI_GPI_DMA) {
>> + dmaengine_terminate_async(mas->tx);
>> + dmaengine_terminate_async(mas->rx);
>> + return NOTIFY_OK;
>> + }
>> +
>> + if (!(readl_relaxed(se->base + SE_GENI_STATUS) &
>> M_GENI_CMD_ACTIVE))
> Shouldn't this be under FIFO mode check ? As i can see SE DMA mode
> and GPI mode conditions present but not for FIFO.
This code path is shared between FIFO and SE_DMA modes. The DMA reset
sequence below is only required when the transfer is operating in DMA mode.
>
>> + return NOTIFY_OK;
>> +
>> + if (!spi->target) {
>> + geni_se_cancel_m_cmd(se);
>> + if (!readl_poll_timeout_atomic(se->base +
>> SE_GENI_M_IRQ_STATUS, val,
>> + val & M_CMD_CANCEL_EN, 10, 50000)) {
>> + writel_relaxed(M_CMD_CANCEL_EN, se->base +
>> SE_GENI_M_IRQ_CLEAR);
>> + return NOTIFY_OK;
>> + }
>> + }
>> +
>> + geni_se_abort_m_cmd(se);
>
> why abort is done directly for target device and not for master ?
> shouldn't be combined with cancel failure ?
The target doesn't support cancel.
>> + if (!readl_poll_timeout_atomic(se->base + SE_GENI_M_IRQ_STATUS,
>> val,
>> + val & M_CMD_ABORT_EN, 10, 50000))
>> + writel_relaxed(M_CMD_ABORT_EN, se->base + SE_GENI_M_IRQ_CLEAR);
>> +
>> + if (mas->cur_xfer_mode == GENI_SE_DMA) {
>> + writel_relaxed(1, se->base + SE_DMA_TX_FSM_RST);
>> + readl_poll_timeout_atomic(se->base + SE_DMA_TX_IRQ_STAT, val,
>> + val & TX_RESET_DONE, 10, 50000);
>> + writel_relaxed(val, se->base + SE_DMA_TX_IRQ_CLR);
>> +
>> + writel_relaxed(1, se->base + SE_DMA_RX_FSM_RST);
>> + readl_poll_timeout_atomic(se->base + SE_DMA_RX_IRQ_STAT, val,
>> + val & RX_RESET_DONE, 10, 50000);
> May be good to declar macro for 10usec and 50msec ? Multiple places
> it's being used.> + writel_relaxed(val, se->base +
> SE_DMA_RX_IRQ_CLR);
Let me review and update.
Thanks,
Praveen Talari
>> + }
>> +
>> + return NOTIFY_OK;
>> +}
>> +[...]
next prev parent reply other threads:[~2026-08-21 9:55 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-18 13:28 [PATCH v3 0/2] spi: qcom-geni: Add shutdown and panic notifier support Praveen Talari
2026-08-18 13:28 ` [PATCH v3 1/2] spi: qcom-geni: Add shutdown callback to quiesce hardware on reboot Praveen Talari
2026-08-19 18:46 ` Mukesh Savaliya
2026-08-21 10:29 ` Jyothi Kumar Seerapu
2026-08-21 15:56 ` Praveen Talari
2026-08-18 13:28 ` [PATCH v3 2/2] spi: qcom-geni: Add panic notifier to cancel and reset DMA during panic Praveen Talari
2026-08-19 19:32 ` Mukesh Savaliya
2026-08-21 9:55 ` Praveen Talari [this message]
2026-08-21 10:49 ` Jyothi Kumar Seerapu
2026-08-21 15:51 ` Praveen Talari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b117d9ad-7fa3-4130-80cf-d7cfbee20fba@oss.qualcomm.com \
--to=praveen.talari@oss.qualcomm.com \
--cc=broonie@kernel.org \
--cc=chandana.chiluveru@oss.qualcomm.com \
--cc=konrad.dybcio@oss.qualcomm.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=mukesh.savaliya@oss.qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.