[PATCH 1/1] i2c: use dmaengine_desc_set_callback()
Frank.Li at oss.nxp.com
Frank.Li at oss.nxp.com
Mon Nov 2 09:00:02 PST 2026
From: Frank Li <Frank.Li at 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 at 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
More information about the linux-arm-kernel
mailing list