Could you help to verify it? Below it the change to de-featured it.
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index 049c860..6af0f9f 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -233,6 +233,7 @@ struct tegra_i2c_hw_feature {
bool has_reg_write_buffering;
bool has_slcg_support;
bool has_hs_mode_support;
+ bool has_multi_master_support;
};
/**
@@ -2041,6 +2042,7 @@ static const struct tegra_i2c_hw_feature tegra20_i2c_hw = {
.has_reg_write_buffering = true,
.has_slcg_support = false,
.has_hs_mode_support = false,
+ .has_multi_master_support = false,
};
static const struct tegra_i2c_hw_feature tegra30_i2c_hw = {
@@ -2059,6 +2061,7 @@ static const struct tegra_i2c_hw_feature tegra30_i2c_hw = {
.has_reg_write_buffering = true,
.has_slcg_support = false,
.has_hs_mode_support = false,
+ .has_multi_master_support = false,
};
static const struct tegra_i2c_hw_feature tegra114_i2c_hw = {
@@ -2077,6 +2080,7 @@ static const struct tegra_i2c_hw_feature tegra114_i2c_hw = {
.has_reg_write_buffering = true,
.has_slcg_support = false,
.has_hs_mode_support = false,
+ .has_multi_master_support = false,
};
static const struct tegra_i2c_hw_feature tegra124_i2c_hw = {
@@ -2095,6 +2099,7 @@ static const struct tegra_i2c_hw_feature tegra124_i2c_hw = {
.has_reg_write_buffering = true,
.has_slcg_support = false,
.has_hs_mode_support = false,
+ .has_multi_master_support = false,
};
static const struct tegra_i2c_hw_feature tegra210_i2c_hw = {
@@ -2113,6 +2118,7 @@ static const struct tegra_i2c_hw_feature tegra210_i2c_hw = {
.has_reg_write_buffering = true,
.has_slcg_support = false,
.has_hs_mode_support = false,
+ .has_multi_master_support = false,
};
static const struct tegra_i2c_hw_feature tegra186_i2c_hw = {
@@ -2131,6 +2137,7 @@ static const struct tegra_i2c_hw_feature tegra186_i2c_hw = {
.has_reg_write_buffering = false,
.has_slcg_support = true,
.has_hs_mode_support = false,
+ .has_multi_master_support = false,
};
/* Match table for of_platform binding */
@@ -2235,6 +2242,13 @@ static int tegra_i2c_probe(struct platform_device *pdev)
dev_info(i2c_dev->dev, "HS mode not supported\n");
i2c_dev->bus_clk_rate = 100000; /* default clock rate */
}
+
+ if (i2c_dev->is_multimaster_mode &&
+ !i2c_dev->hw->has_multi_master_support) {
+ dev_info(i2c_dev->dev, "multi-master mode not supported\n");
+ i2c_dev->is_multimaster_mode = false;
+ }
+
init_completion(&i2c_dev->msg_complete);
init_completion(&i2c_dev->tx_dma_complete);
init_completion(&i2c_dev->rx_dma_complete);