mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 1/1] i2c: use dmaengine_desc_set_callback()
@ 2026-11-02 17:00 Frank.Li
  0 siblings, 0 replies; only message in thread
From: Frank.Li @ 2026-11-02 17:00 UTC (permalink / raw)
  To: Codrin Ciubotariu, Andi Shyti, Nicolas Ferre, Alexandre Belloni,
	Claudiu Beznea, Dong Aisheng, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Oleksij Rempel,
	Mukesh Kumar Savaliya, Viken Dadhaniya, Wolfram Sang,
	Geert Uytterhoeven, Magnus Damm, Pierre-Yves MORDRET,
	Alain Volmat, Maxime Coquelin, Alexandre Torgue, Laxman Dewangan,
	Dmitry Osipenko, Thierry Reding, Jonathan Hunter,
	open list:MICROCHIP I2C DRIVER,
	moderated list:ARM/Microchip (AT91) SoC support, open list,
	open list:FREESCALE IMX LPI2C DRIVER,
	open list:QUALCOMM I2C QCOM GENI DRIVER,
	open list:RENESAS R-CAR I2C DRIVERS,
	moderated list:ARM/STM32 ARCHITECTURE,
	open list:TEGRA ARCHITECTURE SUPPORT
  Cc: imx, vkoul

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 various I2C bus drivers.

No functional change intended. Prepare make to struct
dma_async_tx_descriptor private to the DMA engine.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 drivers/i2c/busses/i2c-at91-master.c | 6 ++----
 drivers/i2c/busses/i2c-imx-lpi2c.c   | 3 +--
 drivers/i2c/busses/i2c-imx.c         | 3 +--
 drivers/i2c/busses/i2c-mxs.c         | 3 +--
 drivers/i2c/busses/i2c-qcom-geni.c   | 3 +--
 drivers/i2c/busses/i2c-qup.c         | 6 ++----
 drivers/i2c/busses/i2c-rcar.c        | 3 +--
 drivers/i2c/busses/i2c-sh_mobile.c   | 3 +--
 drivers/i2c/busses/i2c-stm32.c       | 3 +--
 drivers/i2c/busses/i2c-tegra.c       | 3 +--
 10 files changed, 12 insertions(+), 24 deletions(-)

diff --git a/drivers/i2c/busses/i2c-at91-master.c b/drivers/i2c/busses/i2c-at91-master.c
index e0c3de5e82033..24f45a1d00c1d 100644
--- a/drivers/i2c/busses/i2c-at91-master.c
+++ b/drivers/i2c/busses/i2c-at91-master.c
@@ -256,8 +256,7 @@ static void at91_twi_write_data_dma(struct at91_twi_dev *dev)
 		goto error;
 	}
 
-	txdesc->callback = at91_twi_write_data_dma_callback;
-	txdesc->callback_param = dev;
+	dmaengine_desc_set_callback(txdesc, at91_twi_write_data_dma_callback, NULL, dev);
 
 	dma->xfer_in_progress = true;
 	dmaengine_submit(txdesc);
@@ -374,8 +373,7 @@ static void at91_twi_read_data_dma(struct at91_twi_dev *dev)
 		goto error;
 	}
 
-	rxdesc->callback = at91_twi_read_data_dma_callback;
-	rxdesc->callback_param = dev;
+	dmaengine_desc_set_callback(rxdesc, at91_twi_read_data_dma_callback, NULL, dev);
 
 	dma->xfer_in_progress = true;
 	dmaengine_submit(rxdesc);
diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c
index 7302464c371ae..7242f6409189d 100644
--- a/drivers/i2c/busses/i2c-imx-lpi2c.c
+++ b/drivers/i2c/busses/i2c-imx-lpi2c.c
@@ -887,8 +887,7 @@ static int lpi2c_dma_submit(struct lpi2c_imx_struct *lpi2c_imx)
 	}
 
 	reinit_completion(&lpi2c_imx->complete);
-	desc->callback = lpi2c_dma_callback;
-	desc->callback_param = lpi2c_imx;
+	dmaengine_desc_set_callback(desc, lpi2c_dma_callback, NULL, lpi2c_imx);
 
 	cookie = dmaengine_submit(desc);
 	if (dma_submit_error(cookie)) {
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index ccf08cd63151f..38d15a8253c7e 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -498,8 +498,7 @@ static int i2c_imx_dma_xfer(struct imx_i2c_struct *i2c_imx,
 	}
 
 	reinit_completion(&dma->cmd_complete);
-	txdesc->callback = i2c_imx_dma_callback;
-	txdesc->callback_param = i2c_imx;
+	dmaengine_desc_set_callback(txdesc, i2c_imx_dma_callback, NULL, i2c_imx);
 	if (dma_submit_error(dmaengine_submit(txdesc))) {
 		dev_err(dev, "DMA submit failed\n");
 		goto err_submit;
diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c
index eee4fdcd9df31..cf3fbfdacbe4a 100644
--- a/drivers/i2c/busses/i2c-mxs.c
+++ b/drivers/i2c/busses/i2c-mxs.c
@@ -283,8 +283,7 @@ static int mxs_i2c_dma_setup_xfer(struct i2c_adapter *adap,
 	 * The last descriptor must have this callback,
 	 * to finish the DMA transaction.
 	 */
-	desc->callback = mxs_i2c_dma_irq_callback;
-	desc->callback_param = i2c;
+	dmaengine_desc_set_callback(desc, mxs_i2c_dma_irq_callback, NULL, i2c);
 
 	/* Start the transfer. */
 	dmaengine_submit(desc);
diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qcom-geni.c
index 50f4fc1330859..0151257036893 100644
--- a/drivers/i2c/busses/i2c-qcom-geni.c
+++ b/drivers/i2c/busses/i2c-qcom-geni.c
@@ -800,8 +800,7 @@ static int geni_i2c_gpi(struct geni_i2c_dev *gi2c, struct i2c_msg msgs[],
 		goto err_config;
 	}
 
-	desc->callback_result = i2c_gpi_cb_result;
-	desc->callback_param = gi2c;
+	dmaengine_desc_set_callback(desc, NULL, i2c_gpi_cb_result, gi2c);
 
 	if (!((msgs[msg_idx].flags & I2C_M_RD) && op == I2C_WRITE))
 		gi2c_gpi_xfer->msg_idx_cnt++;
diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
index ce30634e1f402..ff3d1278c750b 100644
--- a/drivers/i2c/busses/i2c-qup.c
+++ b/drivers/i2c/busses/i2c-qup.c
@@ -784,8 +784,7 @@ static int qup_i2c_bam_schedule_desc(struct qup_i2c_dev *qup)
 	}
 
 	if (!rx_cnt) {
-		txd->callback = qup_i2c_bam_cb;
-		txd->callback_param = qup;
+		dmaengine_desc_set_callback(txd, qup_i2c_bam_cb, NULL, qup);
 	}
 
 	cookie_tx = dmaengine_submit(txd);
@@ -809,8 +808,7 @@ static int qup_i2c_bam_schedule_desc(struct qup_i2c_dev *qup)
 			goto desc_err;
 		}
 
-		rxd->callback = qup_i2c_bam_cb;
-		rxd->callback_param = qup;
+		dmaengine_desc_set_callback(rxd, qup_i2c_bam_cb, NULL, qup);
 		cookie_rx = dmaengine_submit(rxd);
 		if (dma_submit_error(cookie_rx)) {
 			ret = -EINVAL;
diff --git a/drivers/i2c/busses/i2c-rcar.c b/drivers/i2c/busses/i2c-rcar.c
index 755064804cb21..15b54d9f56a16 100644
--- a/drivers/i2c/busses/i2c-rcar.c
+++ b/drivers/i2c/busses/i2c-rcar.c
@@ -531,8 +531,7 @@ static bool rcar_i2c_dma(struct rcar_i2c_priv *priv)
 		return false;
 	}
 
-	txdesc->callback = rcar_i2c_dma_callback;
-	txdesc->callback_param = priv;
+	dmaengine_desc_set_callback(txdesc, rcar_i2c_dma_callback, NULL, priv);
 
 	cookie = dmaengine_submit(txdesc);
 	if (dma_submit_error(cookie)) {
diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c
index 3a55f803e4f15..27f838dd38de7 100644
--- a/drivers/i2c/busses/i2c-sh_mobile.c
+++ b/drivers/i2c/busses/i2c-sh_mobile.c
@@ -546,8 +546,7 @@ static void sh_mobile_i2c_xfer_dma(struct sh_mobile_i2c_data *pd)
 		return;
 	}
 
-	txdesc->callback = sh_mobile_i2c_dma_callback;
-	txdesc->callback_param = pd;
+	dmaengine_desc_set_callback(txdesc, sh_mobile_i2c_dma_callback, NULL, pd);
 
 	cookie = dmaengine_submit(txdesc);
 	if (dma_submit_error(cookie)) {
diff --git a/drivers/i2c/busses/i2c-stm32.c b/drivers/i2c/busses/i2c-stm32.c
index 064e47d6c96fd..7a0881addd816 100644
--- a/drivers/i2c/busses/i2c-stm32.c
+++ b/drivers/i2c/busses/i2c-stm32.c
@@ -134,8 +134,7 @@ int stm32_i2c_prep_dma_xfer(struct device *dev, struct stm32_i2c_dma *dma,
 
 	reinit_completion(&dma->dma_complete);
 
-	txdesc->callback = callback;
-	txdesc->callback_param = dma_async_param;
+	dmaengine_desc_set_callback(txdesc, callback, NULL, dma_async_param);
 	ret = dma_submit_error(dmaengine_submit(txdesc));
 	if (ret < 0) {
 		dev_err(dev, "DMA submit failed\n");
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index 76d21bc51c618..a3c8db6d72ccc 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -657,8 +657,7 @@ static int tegra_i2c_dma_submit(struct tegra_i2c_dev *i2c_dev, size_t len)
 		return -EINVAL;
 	}
 
-	dma_desc->callback = tegra_i2c_dma_complete;
-	dma_desc->callback_param = i2c_dev;
+	dmaengine_desc_set_callback(dma_desc, tegra_i2c_dma_complete, NULL, i2c_dev);
 
 	dmaengine_submit(dma_desc);
 	dma_async_issue_pending(i2c_dev->dma_chan);
-- 
2.43.0


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-11-02 17:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-02 17:00 [PATCH 1/1] i2c: use dmaengine_desc_set_callback() 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®