]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
i2c: tegra: Do not configure DMA if not supported
authorKartik Rajput <kkartik@nvidia.com>
Tue, 18 Nov 2025 14:06:15 +0000 (19:36 +0530)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Wed, 14 Jan 2026 07:02:19 +0000 (08:02 +0100)
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@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
drivers/i2c/busses/i2c-tegra.c

index e533460bccc39e8f4390ae7e3f09d6c858c6368e..bd26b232ffb33a4e88a71313191178e8a399c9da 100644 (file)
@@ -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");