Re: [PATCH v9 1/4] i2c: tegra: Do not configure DMA if not supported

From: Jon Hunter

Date: Tue Oct 28 2025 - 12:10:03 EST



On 28/10/2025 13:08, Akhil R wrote:
On Tue, 28 Oct 2025 10:41:54 +0000 Jon Hunter wrote:
On 28/10/2025 10:00, Akhil R wrote:
On Fri, 24 Oct 2025 16:20:09 +0100, Jon Hunter wrote:
On 01/10/2025 07:47, Kartik Rajput wrote:

...

diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index e533460bccc3..aa7c0d8c0941 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");

What about ACPI based devices?

The of_ function returns false if using ACPI. Since these DMA drivers does
not support ACPI enumeration currently, we would not require to proceed
further anyway. But if required we can add an additional check with
acpi_dma_supported() or similar. Do you suggest adding a check for ACPI?

I was just wondering if it is better to use fwnode_property_present()
instead.

I think ACPI does not use 'dmas' property to connect a DMA resource.
It uses FixedDMA or something similar. It may not be helpful to use
fwnode_*() or device_*() check here in that case.

OK. Then fine to leave this as-is.

Jon

--
nvpublic