[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251115042632.69708-2-akhilrajeev@nvidia.com>
Date: Sat, 15 Nov 2025 09:56:27 +0530
From: Akhil R <akhilrajeev@...dia.com>
To: <andi.shyti@...nel.org>, <digetx@...il.com>, <jonathanh@...dia.com>,
<linux-i2c@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<linux-tegra@...r.kernel.org>, <thierry.reding@...il.com>,
<wsa+renesas@...g-engineering.com>, <wsa@...nel.org>
CC: <kkartik@...dia.com>, <akhilrajeev@...dia.com>, <ldewangan@...dia.com>,
<smangipudi@...dia.com>
Subject: [PATCH v12 1/6] i2c: tegra: Do not configure DMA if not supported
From: Kartik Rajput <kkartik@...dia.com>
On Tegra264, not all I2C controllers have the necessary interface to
GPC DMA, this causes failures when function tegra_i2c_init_dma()
is called.
Ensure that "dmas" device-tree property is present before initializing
DMA in function tegra_i2c_init_dma().
Signed-off-by: Kartik Rajput <kkartik@...dia.com>
Reviewed-by: Jon Hunter <jonathanh@...dia.com>
---
v4 -> v9:
* Moved the condition down to have all dma checks together.
v2 -> v4:
* Add debug print if DMA is not supported by the I2C controller.
v1 -> v2:
* Update commit message to clarify that some I2C controllers may
not have the necessary interface to GPC DMA.
---
drivers/i2c/busses/i2c-tegra.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index e533460bccc3..bd26b232ffb3 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -449,6 +449,11 @@ static int tegra_i2c_init_dma(struct tegra_i2c_dev *i2c_dev)
if (IS_VI(i2c_dev))
return 0;
+ if (!of_property_present(i2c_dev->dev->of_node, "dmas")) {
+ dev_dbg(i2c_dev->dev, "DMA not available, falling back to PIO\n");
+ return 0;
+ }
+
if (i2c_dev->hw->has_apb_dma) {
if (!IS_ENABLED(CONFIG_TEGRA20_APB_DMA)) {
dev_dbg(i2c_dev->dev, "APB DMA support not enabled\n");
--
2.50.1
Powered by blists - more mailing lists