* [PATCH v2 1/3] media: omap3isp: hist: use dmaengine_submit() instead of ->tx_submit() @ 2026-11-02 19:46 Frank.Li 2026-11-02 19:46 ` [PATCH v2 2/3] media: use dmaengine_desc_set_callback() Frank.Li 2026-11-02 19:46 ` [PATCH v2 3/3] media: pxa_camera: use cookie returned by dmaengine_submit() for logging Frank.Li 0 siblings, 2 replies; 4+ messages in thread From: Frank.Li @ 2026-11-02 19:46 UTC (permalink / raw) To: Mauro Carvalho Chehab, Frank Li, open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB), open list Cc: imx, vkoul From: Frank Li <Frank.Li@nxp.com> Replace direct dma_async_tx_descriptor->tx_submit() call with the proper dmaengine_submit() API wrapper. Assisted-by: LLM Signed-off-by: Frank Li <Frank.Li@nxp.com> --- change in v2 - rebase to v7.4-rc1 - add more fix at following patches --- drivers/media/platform/ti/omap3isp/isphist.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/ti/omap3isp/isphist.c b/drivers/media/platform/ti/omap3isp/isphist.c index fbfdcbfdb050a..dc02f240ee89a 100644 --- a/drivers/media/platform/ti/omap3isp/isphist.c +++ b/drivers/media/platform/ti/omap3isp/isphist.c @@ -211,7 +211,7 @@ static int hist_buf_dma(struct ispstat *hist) tx->callback = hist_dma_cb; tx->callback_param = hist; - cookie = tx->tx_submit(tx); + cookie = dmaengine_submit(tx); if (dma_submit_error(cookie)) { dev_dbg(hist->isp->dev, "hist: DMA submission failed\n"); goto error; -- 2.43.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 2/3] media: use dmaengine_desc_set_callback() 2026-11-02 19:46 [PATCH v2 1/3] media: omap3isp: hist: use dmaengine_submit() instead of ->tx_submit() Frank.Li @ 2026-11-02 19:46 ` Frank.Li 2026-11-02 20:24 ` Nicolas Dufresne 2026-11-02 19:46 ` [PATCH v2 3/3] media: pxa_camera: use cookie returned by dmaengine_submit() for logging Frank.Li 1 sibling, 1 reply; 4+ messages in thread From: Frank.Li @ 2026-11-02 19:46 UTC (permalink / raw) To: Martin Tuma, Mauro Carvalho Chehab, Fabrizio Castro, Geert Uytterhoeven, Magnus Damm, Jai Luthra, Laurent Pinchart, Michal Simek, Frank Li, Sakari Ailus, Hans Verkuil, Nicolas Dufresne, Jacopo Mondi, Vinod Koul, Xu Rao, open list:DIGITEQ AUTOMOTIVE MGB4 V4L2 DRIVER, open list, open list:MEDIA DRIVERS FOR RENESAS - DRIF, moderated list:ARM/ZYNQ ARCHITECTURE Cc: imx From: Frank Li <Frank.Li@nxp.com> Replace open-coded assignments to callback and callback_param fields of struct dma_async_tx_descriptor with calls to the dmaengine_desc_set_callback() helper across media drivers. No functional change intended. Prepare to make struct dma_async_tx_descriptor private to the DMA engine. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- drivers/media/pci/mgb4/mgb4_dma.c | 3 +-- drivers/media/platform/intel/pxa_camera.c | 10 ++++++---- drivers/media/platform/m2m-deinterlace.c | 3 +-- drivers/media/platform/renesas/rcar_drif.c | 3 +-- drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c | 6 ++---- drivers/media/platform/ti/omap/omap_vout_vrfb.c | 3 +-- drivers/media/platform/ti/omap3isp/isphist.c | 3 +-- drivers/media/platform/xilinx/xilinx-dma.c | 3 +-- 8 files changed, 14 insertions(+), 20 deletions(-) diff --git a/drivers/media/pci/mgb4/mgb4_dma.c b/drivers/media/pci/mgb4/mgb4_dma.c index cae888e6504b0..c9a15c625be65 100644 --- a/drivers/media/pci/mgb4/mgb4_dma.c +++ b/drivers/media/pci/mgb4/mgb4_dma.c @@ -55,8 +55,7 @@ int mgb4_dma_transfer(struct mgb4_dev *mgbdev, u32 channel, bool write, return -EIO; } - tx->callback = chan_irq; - tx->callback_param = chan; + dmaengine_desc_set_callback(tx, chan_irq, NULL, chan); ret = dma_submit_error(dmaengine_submit(tx)); if (ret) { diff --git a/drivers/media/platform/intel/pxa_camera.c b/drivers/media/platform/intel/pxa_camera.c index 9e1fdd963b559..c9d57e4245181 100644 --- a/drivers/media/platform/intel/pxa_camera.c +++ b/drivers/media/platform/intel/pxa_camera.c @@ -832,16 +832,18 @@ static int pxa_init_dma_channel(struct pxa_camera_dev *pcdev, goto fail; } - tx->callback_param = pcdev; switch (channel) { case 0: - tx->callback = pxa_camera_dma_irq_y; + dmaengine_desc_set_callback(tx, pxa_camera_dma_irq_y, NULL, + pcdev); break; case 1: - tx->callback = pxa_camera_dma_irq_u; + dmaengine_desc_set_callback(tx, pxa_camera_dma_irq_u, NULL, + pcdev); break; case 2: - tx->callback = pxa_camera_dma_irq_v; + dmaengine_desc_set_callback(tx, pxa_camera_dma_irq_v, NULL, + pcdev); break; } diff --git a/drivers/media/platform/m2m-deinterlace.c b/drivers/media/platform/m2m-deinterlace.c index 6b07018614894..142b69eab47fe 100644 --- a/drivers/media/platform/m2m-deinterlace.c +++ b/drivers/media/platform/m2m-deinterlace.c @@ -336,8 +336,7 @@ static void deinterlace_issue_dma(struct deinterlace_ctx *ctx, int op, } if (do_callback) { - tx->callback = dma_callback; - tx->callback_param = ctx; + dmaengine_desc_set_callback(tx, dma_callback, NULL, ctx); } ctx->cookie = dmaengine_submit(tx); diff --git a/drivers/media/platform/renesas/rcar_drif.c b/drivers/media/platform/renesas/rcar_drif.c index bd67e8e16f537..1e8cf71b52cae 100644 --- a/drivers/media/platform/renesas/rcar_drif.c +++ b/drivers/media/platform/renesas/rcar_drif.c @@ -610,8 +610,7 @@ static int rcar_drif_qbuf(struct rcar_drif *ch) } /* Submit descriptor */ - rxd->callback = rcar_drif_dma_complete; - rxd->callback_param = ch; + dmaengine_desc_set_callback(rxd, rcar_drif_dma_complete, NULL, ch); cookie = dmaengine_submit(rxd); if (dma_submit_error(cookie)) { rdrif_err(sdr, "ch%u: dma submit failed\n", ch->num); diff --git a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c b/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c index 022ea3d616c9e..998423fa2f330 100644 --- a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c +++ b/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c @@ -692,8 +692,7 @@ static int ti_csi2rx_drain_dma(struct ti_csi2rx_ctx *ctx) goto out; } - desc->callback = ti_csi2rx_drain_callback; - desc->callback_param = ctx; + dmaengine_desc_set_callback(desc, ti_csi2rx_drain_callback, NULL, ctx); cookie = dmaengine_submit(desc); ret = dma_submit_error(cookie); @@ -782,8 +781,7 @@ static int ti_csi2rx_start_dma(struct ti_csi2rx_ctx *ctx, if (!desc) return -EIO; - desc->callback = ti_csi2rx_dma_callback; - desc->callback_param = buf; + dmaengine_desc_set_callback(desc, ti_csi2rx_dma_callback, NULL, buf); cookie = dmaengine_submit(desc); ret = dma_submit_error(cookie); diff --git a/drivers/media/platform/ti/omap/omap_vout_vrfb.c b/drivers/media/platform/ti/omap/omap_vout_vrfb.c index 0cfa0169875f0..006a4ae45a232 100644 --- a/drivers/media/platform/ti/omap/omap_vout_vrfb.c +++ b/drivers/media/platform/ti/omap/omap_vout_vrfb.c @@ -273,8 +273,7 @@ int omap_vout_prepare_vrfb(struct omap_vout_device *vout, return -EINVAL; } - tx->callback = omap_vout_vrfb_dma_tx_callback; - tx->callback_param = &vout->vrfb_dma_tx; + dmaengine_desc_set_callback(tx, omap_vout_vrfb_dma_tx_callback, NULL, &vout->vrfb_dma_tx); cookie = dmaengine_submit(tx); if (dma_submit_error(cookie)) { diff --git a/drivers/media/platform/ti/omap3isp/isphist.c b/drivers/media/platform/ti/omap3isp/isphist.c index dc02f240ee89a..281bd0e3748e9 100644 --- a/drivers/media/platform/ti/omap3isp/isphist.c +++ b/drivers/media/platform/ti/omap3isp/isphist.c @@ -209,8 +209,7 @@ static int hist_buf_dma(struct ispstat *hist) goto error; } - tx->callback = hist_dma_cb; - tx->callback_param = hist; + dmaengine_desc_set_callback(tx, hist_dma_cb, NULL, hist); cookie = dmaengine_submit(tx); if (dma_submit_error(cookie)) { dev_dbg(hist->isp->dev, "hist: DMA submission failed\n"); diff --git a/drivers/media/platform/xilinx/xilinx-dma.c b/drivers/media/platform/xilinx/xilinx-dma.c index fcfe0883aba5f..ece2116639fc0 100644 --- a/drivers/media/platform/xilinx/xilinx-dma.c +++ b/drivers/media/platform/xilinx/xilinx-dma.c @@ -358,8 +358,7 @@ static void xvip_dma_buffer_queue(struct vb2_buffer *vb) vb2_buffer_done(&buf->buf.vb2_buf, VB2_BUF_STATE_ERROR); return; } - desc->callback = xvip_dma_complete; - desc->callback_param = buf; + dmaengine_desc_set_callback(desc, xvip_dma_complete, NULL, buf); spin_lock_irq(&dma->queued_lock); list_add_tail(&buf->queue, &dma->queued_bufs); -- 2.43.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 2/3] media: use dmaengine_desc_set_callback() 2026-11-02 19:46 ` [PATCH v2 2/3] media: use dmaengine_desc_set_callback() Frank.Li @ 2026-11-02 20:24 ` Nicolas Dufresne 0 siblings, 0 replies; 4+ messages in thread From: Nicolas Dufresne @ 2026-11-02 20:24 UTC (permalink / raw) To: Frank.Li, Martin Tuma, Mauro Carvalho Chehab, Fabrizio Castro, Geert Uytterhoeven, Magnus Damm, Jai Luthra, Laurent Pinchart, Michal Simek, Frank Li, Sakari Ailus, Hans Verkuil, Jacopo Mondi, Vinod Koul, Xu Rao, open list:DIGITEQ AUTOMOTIVE MGB4 V4L2 DRIVER, open list, open list:MEDIA DRIVERS FOR RENESAS - DRIF, moderated list:ARM/ZYNQ ARCHITECTURE Cc: imx [-- Attachment #1: Type: text/plain, Size: 6820 bytes --] Hi Frank, Le lundi 02 novembre 2026 à 14:46 -0500, Frank.Li@oss.nxp.com a écrit : > From: Frank Li <Frank.Li@nxp.com> > > Replace open-coded assignments to callback and callback_param fields > of struct dma_async_tx_descriptor with calls to the > dmaengine_desc_set_callback() helper across media drivers. > > No functional change intended. Prepare to make struct > dma_async_tx_descriptor private to the DMA engine. > > Signed-off-by: Frank Li <Frank.Li@nxp.com> > --- > drivers/media/pci/mgb4/mgb4_dma.c | 3 +-- > drivers/media/platform/intel/pxa_camera.c | 10 ++++++---- > drivers/media/platform/m2m-deinterlace.c | 3 +-- > drivers/media/platform/renesas/rcar_drif.c | 3 +-- > drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c | 6 ++---- > drivers/media/platform/ti/omap/omap_vout_vrfb.c | 3 +-- > drivers/media/platform/ti/omap3isp/isphist.c | 3 +-- > drivers/media/platform/xilinx/xilinx-dma.c | 3 +-- Sorry for the inconvenience here, but there is no single maintainer that can provide an Rb here, you have to split these. Nicolas > 8 files changed, 14 insertions(+), 20 deletions(-) > > diff --git a/drivers/media/pci/mgb4/mgb4_dma.c b/drivers/media/pci/mgb4/mgb4_dma.c > index cae888e6504b0..c9a15c625be65 100644 > --- a/drivers/media/pci/mgb4/mgb4_dma.c > +++ b/drivers/media/pci/mgb4/mgb4_dma.c > @@ -55,8 +55,7 @@ int mgb4_dma_transfer(struct mgb4_dev *mgbdev, u32 channel, bool write, > return -EIO; > } > > - tx->callback = chan_irq; > - tx->callback_param = chan; > + dmaengine_desc_set_callback(tx, chan_irq, NULL, chan); > > ret = dma_submit_error(dmaengine_submit(tx)); > if (ret) { > diff --git a/drivers/media/platform/intel/pxa_camera.c b/drivers/media/platform/intel/pxa_camera.c > index 9e1fdd963b559..c9d57e4245181 100644 > --- a/drivers/media/platform/intel/pxa_camera.c > +++ b/drivers/media/platform/intel/pxa_camera.c > @@ -832,16 +832,18 @@ static int pxa_init_dma_channel(struct pxa_camera_dev *pcdev, > goto fail; > } > > - tx->callback_param = pcdev; > switch (channel) { > case 0: > - tx->callback = pxa_camera_dma_irq_y; > + dmaengine_desc_set_callback(tx, pxa_camera_dma_irq_y, NULL, > + pcdev); > break; > case 1: > - tx->callback = pxa_camera_dma_irq_u; > + dmaengine_desc_set_callback(tx, pxa_camera_dma_irq_u, NULL, > + pcdev); > break; > case 2: > - tx->callback = pxa_camera_dma_irq_v; > + dmaengine_desc_set_callback(tx, pxa_camera_dma_irq_v, NULL, > + pcdev); > break; > } > > diff --git a/drivers/media/platform/m2m-deinterlace.c b/drivers/media/platform/m2m-deinterlace.c > index 6b07018614894..142b69eab47fe 100644 > --- a/drivers/media/platform/m2m-deinterlace.c > +++ b/drivers/media/platform/m2m-deinterlace.c > @@ -336,8 +336,7 @@ static void deinterlace_issue_dma(struct deinterlace_ctx *ctx, int op, > } > > if (do_callback) { > - tx->callback = dma_callback; > - tx->callback_param = ctx; > + dmaengine_desc_set_callback(tx, dma_callback, NULL, ctx); > } > > ctx->cookie = dmaengine_submit(tx); > diff --git a/drivers/media/platform/renesas/rcar_drif.c b/drivers/media/platform/renesas/rcar_drif.c > index bd67e8e16f537..1e8cf71b52cae 100644 > --- a/drivers/media/platform/renesas/rcar_drif.c > +++ b/drivers/media/platform/renesas/rcar_drif.c > @@ -610,8 +610,7 @@ static int rcar_drif_qbuf(struct rcar_drif *ch) > } > > /* Submit descriptor */ > - rxd->callback = rcar_drif_dma_complete; > - rxd->callback_param = ch; > + dmaengine_desc_set_callback(rxd, rcar_drif_dma_complete, NULL, ch); > cookie = dmaengine_submit(rxd); > if (dma_submit_error(cookie)) { > rdrif_err(sdr, "ch%u: dma submit failed\n", ch->num); > diff --git a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c b/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c > index 022ea3d616c9e..998423fa2f330 100644 > --- a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c > +++ b/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c > @@ -692,8 +692,7 @@ static int ti_csi2rx_drain_dma(struct ti_csi2rx_ctx *ctx) > goto out; > } > > - desc->callback = ti_csi2rx_drain_callback; > - desc->callback_param = ctx; > + dmaengine_desc_set_callback(desc, ti_csi2rx_drain_callback, NULL, ctx); > > cookie = dmaengine_submit(desc); > ret = dma_submit_error(cookie); > @@ -782,8 +781,7 @@ static int ti_csi2rx_start_dma(struct ti_csi2rx_ctx *ctx, > if (!desc) > return -EIO; > > - desc->callback = ti_csi2rx_dma_callback; > - desc->callback_param = buf; > + dmaengine_desc_set_callback(desc, ti_csi2rx_dma_callback, NULL, buf); > > cookie = dmaengine_submit(desc); > ret = dma_submit_error(cookie); > diff --git a/drivers/media/platform/ti/omap/omap_vout_vrfb.c b/drivers/media/platform/ti/omap/omap_vout_vrfb.c > index 0cfa0169875f0..006a4ae45a232 100644 > --- a/drivers/media/platform/ti/omap/omap_vout_vrfb.c > +++ b/drivers/media/platform/ti/omap/omap_vout_vrfb.c > @@ -273,8 +273,7 @@ int omap_vout_prepare_vrfb(struct omap_vout_device *vout, > return -EINVAL; > } > > - tx->callback = omap_vout_vrfb_dma_tx_callback; > - tx->callback_param = &vout->vrfb_dma_tx; > + dmaengine_desc_set_callback(tx, omap_vout_vrfb_dma_tx_callback, NULL, &vout->vrfb_dma_tx); > > cookie = dmaengine_submit(tx); > if (dma_submit_error(cookie)) { > diff --git a/drivers/media/platform/ti/omap3isp/isphist.c b/drivers/media/platform/ti/omap3isp/isphist.c > index dc02f240ee89a..281bd0e3748e9 100644 > --- a/drivers/media/platform/ti/omap3isp/isphist.c > +++ b/drivers/media/platform/ti/omap3isp/isphist.c > @@ -209,8 +209,7 @@ static int hist_buf_dma(struct ispstat *hist) > goto error; > } > > - tx->callback = hist_dma_cb; > - tx->callback_param = hist; > + dmaengine_desc_set_callback(tx, hist_dma_cb, NULL, hist); > cookie = dmaengine_submit(tx); > if (dma_submit_error(cookie)) { > dev_dbg(hist->isp->dev, "hist: DMA submission failed\n"); > diff --git a/drivers/media/platform/xilinx/xilinx-dma.c b/drivers/media/platform/xilinx/xilinx-dma.c > index fcfe0883aba5f..ece2116639fc0 100644 > --- a/drivers/media/platform/xilinx/xilinx-dma.c > +++ b/drivers/media/platform/xilinx/xilinx-dma.c > @@ -358,8 +358,7 @@ static void xvip_dma_buffer_queue(struct vb2_buffer *vb) > vb2_buffer_done(&buf->buf.vb2_buf, VB2_BUF_STATE_ERROR); > return; > } > - desc->callback = xvip_dma_complete; > - desc->callback_param = buf; > + dmaengine_desc_set_callback(desc, xvip_dma_complete, NULL, buf); > > spin_lock_irq(&dma->queued_lock); > list_add_tail(&buf->queue, &dma->queued_bufs); [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 228 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 3/3] media: pxa_camera: use cookie returned by dmaengine_submit() for logging 2026-11-02 19:46 [PATCH v2 1/3] media: omap3isp: hist: use dmaengine_submit() instead of ->tx_submit() Frank.Li 2026-11-02 19:46 ` [PATCH v2 2/3] media: use dmaengine_desc_set_callback() Frank.Li @ 2026-11-02 19:46 ` Frank.Li 1 sibling, 0 replies; 4+ messages in thread From: Frank.Li @ 2026-11-02 19:46 UTC (permalink / raw) To: Mauro Carvalho Chehab, Frank Li, Sakari Ailus, Laurent Pinchart, open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB), open list Cc: imx, vkoul From: Frank Li <Frank.Li@nxp.com> The debug print in pxa_dma_add_tail_buf() was logging buf->descs[i]->cookie instead of buf->cookie[i]. dmaengine_submit() returns the cookie and it is stored in buf->cookie[i], so use that value in the dev_dbg() call to accurately reflect the submitted cookie. Prepare to make struct dma_async_tx_descriptor private to the DMA engine. Signed-off-by: Frank Li <Frank.Li@nxp.com> --- drivers/media/platform/intel/pxa_camera.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/platform/intel/pxa_camera.c b/drivers/media/platform/intel/pxa_camera.c index c9d57e4245181..d41cca2b2d8c2 100644 --- a/drivers/media/platform/intel/pxa_camera.c +++ b/drivers/media/platform/intel/pxa_camera.c @@ -903,7 +903,7 @@ static void pxa_dma_add_tail_buf(struct pxa_camera_dev *pcdev, buf->cookie[i] = dmaengine_submit(buf->descs[i]); dev_dbg(pcdev_to_dev(pcdev), "%s (channel=%d) : submit vb=%p cookie=%d\n", - __func__, i, buf, buf->descs[i]->cookie); + __func__, i, buf, buf->cookie[i]); } } -- 2.43.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-11-02 20:24 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2026-11-02 19:46 [PATCH v2 1/3] media: omap3isp: hist: use dmaengine_submit() instead of ->tx_submit() Frank.Li 2026-11-02 19:46 ` [PATCH v2 2/3] media: use dmaengine_desc_set_callback() Frank.Li 2026-11-02 20:24 ` Nicolas Dufresne 2026-11-02 19:46 ` [PATCH v2 3/3] media: pxa_camera: use cookie returned by dmaengine_submit() for logging 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®