From: Frank.Li@oss.nxp.com
To: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>,
Andi Shyti <andi.shyti@kernel.org>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Claudiu Beznea <claudiu.beznea@tuxon.dev>,
Dong Aisheng <aisheng.dong@nxp.com>, Frank Li <Frank.Li@nxp.com>,
Sascha Hauer <s.hauer@pengutronix.de>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
Fabio Estevam <festevam@gmail.com>,
Oleksij Rempel <o.rempel@pengutronix.de>,
Mukesh Kumar Savaliya <mukesh.savaliya@oss.qualcomm.com>,
Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>,
Wolfram Sang <wsa+renesas@sang-engineering.com>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Magnus Damm <magnus.damm@gmail.com>,
Pierre-Yves MORDRET <pierre-yves.mordret@foss.st.com>,
Alain Volmat <alain.volmat@foss.st.com>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Laxman Dewangan <ldewangan@nvidia.com>,
Dmitry Osipenko <digetx@gmail.com>,
Thierry Reding <thierry.reding@kernel.org>,
Jonathan Hunter <jonathanh@nvidia.com>,
linux-i2c@vger.kernel.org (open list:MICROCHIP I2C DRIVER),
linux-arm-kernel@lists.infradead.org (moderated
list:ARM/Microchip (AT91) SoC support),
linux-kernel@vger.kernel.org (open list),
imx@lists.linux.dev (open list:FREESCALE IMX LPI2C DRIVER),
linux-arm-msm@vger.kernel.org (open list:QUALCOMM I2C QCOM GENI
DRIVER),
linux-renesas-soc@vger.kernel.org (open list:RENESAS R-CAR I2C
DRIVERS),
linux-stm32@st-md-mailman.stormreply.com (moderated
list:ARM/STM32 ARCHITECTURE),
linux-tegra@vger.kernel.org (open list:TEGRA ARCHITECTURE
SUPPORT)
Cc: imx@lists.linux.dev, vkoul@kernel.org
Subject: [PATCH 1/1] i2c: use dmaengine_desc_set_callback()
Date: Mon, 2 Nov 2026 12:00:02 -0500 [thread overview]
Message-ID: <20261102170004.3852546-1-Frank.Li@oss.nxp.com> (raw)
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
reply other threads:[~2026-11-02 17:00 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20261102170004.3852546-1-Frank.Li@oss.nxp.com \
--to=frank.li@oss.nxp.com \
--cc=Frank.Li@nxp.com \
--cc=aisheng.dong@nxp.com \
--cc=alain.volmat@foss.st.com \
--cc=alexandre.belloni@bootlin.com \
--cc=alexandre.torgue@foss.st.com \
--cc=andi.shyti@kernel.org \
--cc=claudiu.beznea@tuxon.dev \
--cc=codrin.ciubotariu@microchip.com \
--cc=digetx@gmail.com \
--cc=festevam@gmail.com \
--cc=geert+renesas@glider.be \
--cc=imx@lists.linux.dev \
--cc=jonathanh@nvidia.com \
--cc=kernel@pengutronix.de \
--cc=ldewangan@nvidia.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=linux-tegra@vger.kernel.org \
--cc=magnus.damm@gmail.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=mukesh.savaliya@oss.qualcomm.com \
--cc=nicolas.ferre@microchip.com \
--cc=o.rempel@pengutronix.de \
--cc=pierre-yves.mordret@foss.st.com \
--cc=s.hauer@pengutronix.de \
--cc=thierry.reding@kernel.org \
--cc=viken.dadhaniya@oss.qualcomm.com \
--cc=vkoul@kernel.org \
--cc=wsa+renesas@sang-engineering.com \
/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 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®