All of lore.kernel.org
 help / color / mirror / Atom feed
From: Frank Li <Frank.li@oss.nxp.com>
To: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
Cc: Vinod Koul <vkoul@kernel.org>, Frank Li <Frank.Li@kernel.org>,
	Andy Gross <agross@codeaurora.org>,
	linux-arm-msm@vger.kernel.org, dmaengine@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
Subject: Re: [PATCH RESEND] dmaengine: qcom: bam_dma: Defer IRQ trigger type to device tree
Date: Mon, 28 Sep 2026 11:27:22 -0500	[thread overview]
Message-ID: <arqVap3Ky6vJEhRt@SMW015318> (raw)
In-Reply-To: <b60b699e-7921-4a5c-b110-50448e660f44@oss.qualcomm.com>

On Mon, Sep 28, 2026 at 02:38:14PM +0530, Vishnu Santhosh wrote:
> Hi Frank,
>
> On 16-09-2026 08:30 pm, Vishnu Santhosh wrote:
> >
> > On 15-09-2026 07:36 pm, Frank Li wrote:
> > > On Fri, Jul 17, 2026 at 10:30:28AM +0530, Vishnu Santhosh wrote:
> > > > The driver hardcodes IRQF_TRIGGER_HIGH when registering the BAM
> > > > interrupt, which overrides the trigger type specified in the device
> > > > tree. On Qualcomm Shikra SoC, the A2 BAM signals an edge interrupt
> > > > to the apps processor; registering it as level-high causes the
> > > > interrupt to not fire, resulting in missed DMA completions.
> > > >
> > > > Use IRQF_TRIGGER_NONE instead, which causes the kernel to use the
> > > > trigger type already configured by platform_get_irq() when it parsed
> > > > the device tree interrupts property. This makes the driver
> > > > platform-agnostic.
> > > where show this? can you point me doc or code?
> > >
> > > Frank
> >
> > Hi Frank,
> >
> > The BAM driver obtains the IRQ through platform_get_irq():
> >
> > bdev->irq = platform_get_irq(pdev, 0);
> >
> > in https://elixir.bootlin.com/linux/v7.3-rc3/source/drivers/dma/qcom/bam_dma.c#L1270
> >
> > It then registers the same IRQ with:
> >
> > ret = devm_request_irq(bdev->dev, bdev->irq, bam_dma_irq,
> >                          IRQF_TRIGGER_HIGH, "bam_dma", bdev);
> >
> > in https://elixir.bootlin.com/linux/v7.3-rc3/source/drivers/dma/qcom/bam_dma.c#L1335
> >
> > The comment above IRQF_TRIGGER_NONE in include/linux/interrupt.h
> > states that when no trigger flag is specified, the interrupt uses the
> > trigger type already
> > configured by the machine or firmware.
> >
> > https://elixir.bootlin.com/linux/v7.3-rc3/source/include/linux/interrupt.h#L25

Thank you provide it. Kernel doc or comments may miss match actually code
Do you know where exactly handle IRQF_TRIGGER_NONE as what doc said?

Frank

> >
> >
> > Therefore, IRQF_TRIGGER_HIGH overrides the trigger type associated with
> > the IRQ during
> > DT/IRQ-domain mapping, while IRQF_TRIGGER_NONE preserves it.
> >
> > The Shikra DTS which is still under review describes the BAM interrupt
> > as edge-triggered:
> >
> > interrupts = <GIC_SPI 74 IRQ_TYPE_EDGE_RISING 0>;
> >
> > This driver change is needed so that the DT-specified trigger type
> > remains effective once
> > the Shikra DTS change is accepted.
> >
> >
> > Thanks,
> > Vishnu
> >
> Gentle ping on this patch. Please let me know if any other information to be shared
> from my side.
>
>
> Thanks,
> Vishnu
>
> >
> > >
> > > > Fixes: e7c0fe2a5c84 ("dmaengine: add Qualcomm BAM dma driver")
> > > > Co-developed-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
> > > > Signed-off-by: Deepak Kumar Singh <deepak.singh@oss.qualcomm.com>
> > > > Signed-off-by: Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
> > > > ---
> > > >   drivers/dma/qcom/bam_dma.c | 2 +-
> > > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c
> > > > index 19116295f8325767a0d97a7848077885b118241c..6c3e2ca8a572fd04c925de0adbd5cc0616b361ef
> > > > 100644
> > > > --- a/drivers/dma/qcom/bam_dma.c
> > > > +++ b/drivers/dma/qcom/bam_dma.c
> > > > @@ -1303,7 +1303,7 @@ static int bam_dma_probe(struct
> > > > platform_device *pdev)
> > > >           bam_channel_init(bdev, &bdev->channels[i], i);
> > > >
> > > >       ret = devm_request_irq(bdev->dev, bdev->irq, bam_dma_irq,
> > > > -            IRQF_TRIGGER_HIGH, "bam_dma", bdev);
> > > > +            IRQF_TRIGGER_NONE, "bam_dma", bdev);
> > > >       if (ret)
> > > >           goto err_bam_channel_exit;
> > > >
> > > >
> > > > ---
> > > > base-commit: e43ffb69e0438cddd72aaa30898b4dc446f664f8
> > > > change-id: 20260601-qcom-bam-dma-irq-trigger-0366e7e86f17
> > > >
> > > > Best regards,
> > > > --
> > > > Vishnu Santhosh <vishnu.santhosh@oss.qualcomm.com>
> > > >

  reply	other threads:[~2026-09-28 16:27 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-17  5:00 [PATCH RESEND] dmaengine: qcom: bam_dma: Defer IRQ trigger type to device tree Vishnu Santhosh
2026-07-17  5:11 ` sashiko-bot
2026-09-15 10:33 ` Vishnu Santhosh
2026-09-15 14:06 ` Frank Li
2026-09-16 15:00   ` Vishnu Santhosh
2026-09-28  9:08     ` Vishnu Santhosh
2026-09-28 16:27       ` Frank Li [this message]
2026-09-29 14:47         ` Vishnu Santhosh
2026-09-30 16:48 ` Frank Li
2026-10-05 15:42 ` Vinod Koul

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=arqVap3Ky6vJEhRt@SMW015318 \
    --to=frank.li@oss.nxp.com \
    --cc=Frank.Li@kernel.org \
    --cc=agross@codeaurora.org \
    --cc=deepak.singh@oss.qualcomm.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vishnu.santhosh@oss.qualcomm.com \
    --cc=vkoul@kernel.org \
    /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.