All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vinod Koul <vkoul@kernel.org>
To: Frank Li <Frank.li@nxp.com>
Cc: "Manivannan Sadhasivam" <mani@kernel.org>,
	"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Bjorn Helgaas" <bhelgaas@google.com>,
	"Christoph Hellwig" <hch@lst.de>,
	"Sagi Grimberg" <sagi@grimberg.me>,
	"Chaitanya Kulkarni" <kch@nvidia.com>,
	"Herbert Xu" <herbert@gondor.apana.org.au>,
	"David S. Miller" <davem@davemloft.net>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Claudiu Beznea" <claudiu.beznea@tuxon.dev>,
	"Koichiro Den" <den@valinux.co.jp>,
	"Niklas Cassel" <cassel@kernel.org>,
	dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org,
	mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org,
	linux-crypto@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev
Subject: Re: [PATCH 0/8] dmaengine: Add new API to combine onfiguration and descriptor preparation
Date: Tue, 16 Dec 2025 22:47:57 +0530	[thread overview]
Message-ID: <aUGURVuW33WSTuyI@vaman> (raw)
In-Reply-To: <aUGA7tmDYm1MhRXn@lizhi-Precision-Tower-5810>

On 16-12-25, 10:55, Frank Li wrote:
> On Tue, Dec 16, 2025 at 09:13:07PM +0530, Vinod Koul wrote:
> > On 16-12-25, 10:10, Frank Li wrote:
> > > On Tue, Dec 16, 2025 at 06:15:19PM +0530, Vinod Koul wrote:
> > > > On 08-12-25, 12:09, Frank Li wrote:
> > > >
> > > > Spell check on subject please :-)
> > > >
> > > > > Previously, configuration and preparation required two separate calls. This
> > > > > works well when configuration is done only once during initialization.
> > > > >
> > > > > However, in cases where the burst length or source/destination address must
> > > > > be adjusted for each transfer, calling two functions is verbose.
> > > > >
> > > > > 	if (dmaengine_slave_config(chan, &sconf)) {
> > > > > 		dev_err(dev, "DMA slave config fail\n");
> > > > > 		return -EIO;
> > > > > 	}
> > > > >
> > > > > 	tx = dmaengine_prep_slave_single(chan, dma_local, len, dir, flags);
> > > > >
> > > > > After new API added
> > > > >
> > > > > 	tx = dmaengine_prep_slave_single(chan, dma_local, len, dir, flags, &sconf);
> > > >
> > > > Nak, we cant change the API like this.
> > >
> > > Sorry, it is typo here. in patch
> > > 	dmaengine_prep_slave_single_config(chan, dma_local, len, dir, flags, &sconf);
> > >
> > > > I agree that you can add a new way to call dmaengine_slave_config() and
> > > > dmaengine_prep_slave_single() together.
> > > > maybe dmaengine_prep_config_perip_single() (yes we can go away with slave, but
> > > > cant drop it, as absence means something else entire).
> > >
> > > how about dmaengine_prep_peripheral_single() and dmaengine_prep_peripheral_sg()
> > > to align recent added "dmaengine_prep_peripheral_dma_vec()"
> >
> > It doesnt imply config has been done, how does it differ from usual
> > prep_ calls. I see confusions can be caused!
> 
> dmaengine_prep_peripheral_single(.., &sconf) and
> dmaengine_prep_peripheral_sg(..., &sconf).
> 
> The above two funcitions have pass down &sconf.
> 
> The usual prep_ call have not sconf argument, which need depend on previous
> config.
> 
> further, If passdown NULL for config, it means use previuos config.

I know it is bit longer but somehow I would feel better for the API to
imply config as well please

> 
> >
> > > I think "peripheral" also is reduntant. dmaengine_prep_single() and
> > > dmaengine_prep_sg() should be enough because
> >
> > Then you are missing the basic premises of dmaengine that we have memcpy
> > ops and peripheral dma ops (aka slave) Absence of peripheral always
> > implies that it is memcpy
> 
> Okay, it is not big deal. is dmaengine_prep_dma_cyclic() exception? which
> have not "peripheral" or "slave", but it is not for memcpy.

Cyclic by definition implies a cyclic dma over a peripheral

-- 
~Vinod

  reply	other threads:[~2025-12-16 17:18 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-08 17:09 [PATCH 0/8] dmaengine: Add new API to combine onfiguration and descriptor preparation Frank Li
2025-12-08 17:09 ` [PATCH 1/8] dmaengine: Add API to combine configuration and preparation (sg and single) Frank Li
2025-12-09  6:38   ` Christoph Hellwig
2025-12-09 15:47     ` Frank Li
2025-12-10 22:55   ` Bjorn Helgaas
2025-12-08 17:09 ` [PATCH 2/8] PCI: endpoint: pci-epf-test: use new DMA API to simple code Frank Li
2025-12-10 22:50   ` Bjorn Helgaas
2025-12-08 17:09 ` [PATCH 3/8] dmaengine: dw-edma: Use new .device_prep_slave_sg_config() callback Frank Li
2025-12-08 17:09 ` [PATCH 4/8] dmaengine: dw-edma: Pass dma_slave_config to dw_edma_device_transfer() Frank Li
2025-12-08 17:09 ` [PATCH 5/8] nvmet: pci-epf: Remove unnecessary dmaengine_terminate_sync() on each DMA transfer Frank Li
2025-12-09  6:52   ` Damien Le Moal
2025-12-09 15:44     ` Frank Li
2025-12-08 17:09 ` [PATCH 6/8] nvmet: pci-epf: Use dmaengine_prep_slave_single_config() API Frank Li
2025-12-09  6:38   ` Christoph Hellwig
2025-12-10 19:05   ` kernel test robot
2025-12-10 22:54   ` Bjorn Helgaas
2025-12-08 17:09 ` [PATCH 7/8] PCI: epf-mhi:Using new API dmaengine_prep_slave_single_config() to simple code Frank Li
2025-12-10 22:53   ` Bjorn Helgaas
2025-12-08 17:09 ` [PATCH 8/8] crypto: atmel: Use dmaengine_prep_slave_single_config() API Frank Li
2025-12-10 23:38   ` kernel test robot
2025-12-09  7:20 ` [PATCH 0/8] dmaengine: Add new API to combine onfiguration and descriptor preparation Niklas Cassel
2025-12-16 12:45 ` Vinod Koul
2025-12-16 15:10   ` Frank Li
2025-12-16 15:43     ` Vinod Koul
2025-12-16 15:55       ` Frank Li
2025-12-16 17:17         ` Vinod Koul [this message]
2025-12-16 17:28           ` Frank Li
2025-12-17  5:10             ` 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=aUGURVuW33WSTuyI@vaman \
    --to=vkoul@kernel.org \
    --cc=Frank.li@nxp.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=bhelgaas@google.com \
    --cc=cassel@kernel.org \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=davem@davemloft.net \
    --cc=den@valinux.co.jp \
    --cc=dmaengine@vger.kernel.org \
    --cc=hch@lst.de \
    --cc=herbert@gondor.apana.org.au \
    --cc=imx@lists.linux.dev \
    --cc=kch@nvidia.com \
    --cc=kishon@kernel.org \
    --cc=kwilczynski@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mani@kernel.org \
    --cc=mhi@lists.linux.dev \
    --cc=nicolas.ferre@microchip.com \
    --cc=sagi@grimberg.me \
    /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.