* [PATCH 1/1] media: m2m-deinterlace: replace direct ->device_prep*() calls with standard DMA engine API @ 2026-09-17 19:04 Frank.Li 2026-09-17 20:29 ` Laurent Pinchart 0 siblings, 1 reply; 5+ messages in thread From: Frank.Li @ 2026-09-17 19:04 UTC (permalink / raw) To: Mauro Carvalho Chehab, Hans Verkuil, Jacopo Mondi, Frank Li, Xu Rao, Kees Cook, Laurent Pinchart, open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB), open list Cc: imx, vkoul From: Frank Li <Frank.Li@nxp.com> DMA engine consumers must not call the channel's device_prep_*() function pointers directly. Use the standard dmaengine wrapper APIs instead. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- drivers/media/platform/m2m-deinterlace.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/m2m-deinterlace.c b/drivers/media/platform/m2m-deinterlace.c index 9dcc4bd6cbdd5..57a91ff2269f2 100644 --- a/drivers/media/platform/m2m-deinterlace.c +++ b/drivers/media/platform/m2m-deinterlace.c @@ -330,7 +330,7 @@ static void deinterlace_issue_dma(struct deinterlace_ctx *ctx, int op, ctx->xt->dst_sgl = true; flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT; - tx = dmadev->device_prep_interleaved_dma(chan, ctx->xt, flags); + tx = dmaengine_prep_interleaved_dma(chan, ctx->xt, flags); if (tx == NULL) { v4l2_warn(&pcdev->v4l2_dev, "DMA interleaved prep error\n"); return; -- 2.43.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/1] media: m2m-deinterlace: replace direct ->device_prep*() calls with standard DMA engine API 2026-09-17 19:04 [PATCH 1/1] media: m2m-deinterlace: replace direct ->device_prep*() calls with standard DMA engine API Frank.Li @ 2026-09-17 20:29 ` Laurent Pinchart 2026-09-17 20:33 ` Frank Li 0 siblings, 1 reply; 5+ messages in thread From: Laurent Pinchart @ 2026-09-17 20:29 UTC (permalink / raw) To: Frank.Li Cc: Mauro Carvalho Chehab, Hans Verkuil, Jacopo Mondi, Frank Li, Xu Rao, Kees Cook, open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB), open list, imx, vkoul On Thu, Sep 17, 2026 at 03:04:16PM -0400, Frank.Li@oss.nxp.com wrote: > From: Frank Li <Frank.Li@nxp.com> > > DMA engine consumers must not call the channel's device_prep_*() function > pointers directly. Use the standard dmaengine wrapper APIs instead. > > Signed-off-by: Frank Li <Frank.Li@nxp.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> I've checked the other DMA operations, and there are a few direct callers of .device_prep_dma_memcpy() and .device_prep_slave_sg(). The former should be easy to address, as the dmaengine_prep_dma_memcpy() wrapper is a drop-in replacement. The latter may be a bit more complicated. Any volunteer to send patches ? :-) > --- > drivers/media/platform/m2m-deinterlace.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/platform/m2m-deinterlace.c b/drivers/media/platform/m2m-deinterlace.c > index 9dcc4bd6cbdd5..57a91ff2269f2 100644 > --- a/drivers/media/platform/m2m-deinterlace.c > +++ b/drivers/media/platform/m2m-deinterlace.c > @@ -330,7 +330,7 @@ static void deinterlace_issue_dma(struct deinterlace_ctx *ctx, int op, > ctx->xt->dst_sgl = true; > flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT; > > - tx = dmadev->device_prep_interleaved_dma(chan, ctx->xt, flags); > + tx = dmaengine_prep_interleaved_dma(chan, ctx->xt, flags); > if (tx == NULL) { > v4l2_warn(&pcdev->v4l2_dev, "DMA interleaved prep error\n"); > return; -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/1] media: m2m-deinterlace: replace direct ->device_prep*() calls with standard DMA engine API 2026-09-17 20:29 ` Laurent Pinchart @ 2026-09-17 20:33 ` Frank Li 2026-09-17 20:37 ` Laurent Pinchart 0 siblings, 1 reply; 5+ messages in thread From: Frank Li @ 2026-09-17 20:33 UTC (permalink / raw) To: Laurent Pinchart Cc: Mauro Carvalho Chehab, Hans Verkuil, Jacopo Mondi, Frank Li, Xu Rao, Kees Cook, open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB), open list, imx, vkoul On Thu, Sep 17, 2026 at 11:29:31PM +0300, Laurent Pinchart wrote: > On Thu, Sep 17, 2026 at 03:04:16PM -0400, Frank.Li@oss.nxp.com wrote: > > From: Frank Li <Frank.Li@nxp.com> > > > > DMA engine consumers must not call the channel's device_prep_*() function > > pointers directly. Use the standard dmaengine wrapper APIs instead. > > > > Signed-off-by: Frank Li <Frank.Li@nxp.com> > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > I've checked the other DMA operations, and there are a few direct > callers of .device_prep_dma_memcpy() and .device_prep_slave_sg(). The > former should be easy to address, as the dmaengine_prep_dma_memcpy() > wrapper is a drop-in replacement. The latter may be a bit more > complicated. > > Any volunteer to send patches ? :-) I already sent out and try to cleanup all. Frank > > > --- > > drivers/media/platform/m2m-deinterlace.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/media/platform/m2m-deinterlace.c b/drivers/media/platform/m2m-deinterlace.c > > index 9dcc4bd6cbdd5..57a91ff2269f2 100644 > > --- a/drivers/media/platform/m2m-deinterlace.c > > +++ b/drivers/media/platform/m2m-deinterlace.c > > @@ -330,7 +330,7 @@ static void deinterlace_issue_dma(struct deinterlace_ctx *ctx, int op, > > ctx->xt->dst_sgl = true; > > flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT; > > > > - tx = dmadev->device_prep_interleaved_dma(chan, ctx->xt, flags); > > + tx = dmaengine_prep_interleaved_dma(chan, ctx->xt, flags); > > if (tx == NULL) { > > v4l2_warn(&pcdev->v4l2_dev, "DMA interleaved prep error\n"); > > return; > > -- > Regards, > > Laurent Pinchart ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/1] media: m2m-deinterlace: replace direct ->device_prep*() calls with standard DMA engine API 2026-09-17 20:33 ` Frank Li @ 2026-09-17 20:37 ` Laurent Pinchart 2026-09-17 21:19 ` Frank Li 0 siblings, 1 reply; 5+ messages in thread From: Laurent Pinchart @ 2026-09-17 20:37 UTC (permalink / raw) To: Frank Li Cc: Mauro Carvalho Chehab, Hans Verkuil, Jacopo Mondi, Frank Li, Xu Rao, Kees Cook, open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB), open list, imx, vkoul On Thu, Sep 17, 2026 at 03:33:57PM -0500, Frank Li wrote: > On Thu, Sep 17, 2026 at 11:29:31PM +0300, Laurent Pinchart wrote: > > On Thu, Sep 17, 2026 at 03:04:16PM -0400, Frank.Li@oss.nxp.com wrote: > > > From: Frank Li <Frank.Li@nxp.com> > > > > > > DMA engine consumers must not call the channel's device_prep_*() function > > > pointers directly. Use the standard dmaengine wrapper APIs instead. > > > > > > Signed-off-by: Frank Li <Frank.Li@nxp.com> > > > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > I've checked the other DMA operations, and there are a few direct > > callers of .device_prep_dma_memcpy() and .device_prep_slave_sg(). The > > former should be easy to address, as the dmaengine_prep_dma_memcpy() > > wrapper is a drop-in replacement. The latter may be a bit more > > complicated. > > > > Any volunteer to send patches ? :-) > > I already sent out and try to cleanup all. Thank you. A patch for checkpatch.pl to warn about new callers may also be interesting. > > > --- > > > drivers/media/platform/m2m-deinterlace.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/media/platform/m2m-deinterlace.c b/drivers/media/platform/m2m-deinterlace.c > > > index 9dcc4bd6cbdd5..57a91ff2269f2 100644 > > > --- a/drivers/media/platform/m2m-deinterlace.c > > > +++ b/drivers/media/platform/m2m-deinterlace.c > > > @@ -330,7 +330,7 @@ static void deinterlace_issue_dma(struct deinterlace_ctx *ctx, int op, > > > ctx->xt->dst_sgl = true; > > > flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT; > > > > > > - tx = dmadev->device_prep_interleaved_dma(chan, ctx->xt, flags); > > > + tx = dmaengine_prep_interleaved_dma(chan, ctx->xt, flags); > > > if (tx == NULL) { > > > v4l2_warn(&pcdev->v4l2_dev, "DMA interleaved prep error\n"); > > > return; -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/1] media: m2m-deinterlace: replace direct ->device_prep*() calls with standard DMA engine API 2026-09-17 20:37 ` Laurent Pinchart @ 2026-09-17 21:19 ` Frank Li 0 siblings, 0 replies; 5+ messages in thread From: Frank Li @ 2026-09-17 21:19 UTC (permalink / raw) To: Laurent Pinchart Cc: Mauro Carvalho Chehab, Hans Verkuil, Jacopo Mondi, Frank Li, Xu Rao, Kees Cook, open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB), open list, imx, vkoul On Thu, Sep 17, 2026 at 11:37:25PM +0300, Laurent Pinchart wrote: > On Thu, Sep 17, 2026 at 03:33:57PM -0500, Frank Li wrote: > > On Thu, Sep 17, 2026 at 11:29:31PM +0300, Laurent Pinchart wrote: > > > On Thu, Sep 17, 2026 at 03:04:16PM -0400, Frank.Li@oss.nxp.com wrote: > > > > From: Frank Li <Frank.Li@nxp.com> > > > > > > > > DMA engine consumers must not call the channel's device_prep_*() function > > > > pointers directly. Use the standard dmaengine wrapper APIs instead. > > > > > > > > Signed-off-by: Frank Li <Frank.Li@nxp.com> > > > > > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > > > I've checked the other DMA operations, and there are a few direct > > > callers of .device_prep_dma_memcpy() and .device_prep_slave_sg(). The > > > former should be easy to address, as the dmaengine_prep_dma_memcpy() > > > wrapper is a drop-in replacement. The latter may be a bit more > > > complicated. > > > > > > Any volunteer to send patches ? :-) > > > > I already sent out and try to cleanup all. > > Thank you. A patch for checkpatch.pl to warn about new callers may also > be interesting. Long term plan to move dmaengine callback to private header, build will failure if consumer try to access dmaengine device. Frank > > > > > --- > > > > drivers/media/platform/m2m-deinterlace.c | 2 +- > > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > > > diff --git a/drivers/media/platform/m2m-deinterlace.c b/drivers/media/platform/m2m-deinterlace.c > > > > index 9dcc4bd6cbdd5..57a91ff2269f2 100644 > > > > --- a/drivers/media/platform/m2m-deinterlace.c > > > > +++ b/drivers/media/platform/m2m-deinterlace.c > > > > @@ -330,7 +330,7 @@ static void deinterlace_issue_dma(struct deinterlace_ctx *ctx, int op, > > > > ctx->xt->dst_sgl = true; > > > > flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT; > > > > > > > > - tx = dmadev->device_prep_interleaved_dma(chan, ctx->xt, flags); > > > > + tx = dmaengine_prep_interleaved_dma(chan, ctx->xt, flags); > > > > if (tx == NULL) { > > > > v4l2_warn(&pcdev->v4l2_dev, "DMA interleaved prep error\n"); > > > > return; > > -- > Regards, > > Laurent Pinchart ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-17 21:19 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-09-17 19:04 [PATCH 1/1] media: m2m-deinterlace: replace direct ->device_prep*() calls with standard DMA engine API Frank.Li 2026-09-17 20:29 ` Laurent Pinchart 2026-09-17 20:33 ` Frank Li 2026-09-17 20:37 ` Laurent Pinchart 2026-09-17 21:19 ` Frank Li
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®