{"id":2232958,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2232958/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-tegra/patch/20260505105928.38457-3-akhilrajeev@nvidia.com/","project":{"id":21,"url":"http://patchwork.ozlabs.org/api/1.2/projects/21/?format=json","name":"Linux Tegra Development","link_name":"linux-tegra","list_id":"linux-tegra.vger.kernel.org","list_email":"linux-tegra@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260505105928.38457-3-akhilrajeev@nvidia.com>","list_archive_url":null,"date":"2026-05-05T10:59:26","name":"[2/4] i2c: tegra: Disable fair arbitration for non-MCTP buses","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"f12047435ce35de794e1972074eda3fff7c7d538","submitter":{"id":81965,"url":"http://patchwork.ozlabs.org/api/1.2/people/81965/?format=json","name":"Akhil R","email":"akhilrajeev@nvidia.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-tegra/patch/20260505105928.38457-3-akhilrajeev@nvidia.com/mbox/","series":[{"id":502821,"url":"http://patchwork.ozlabs.org/api/1.2/series/502821/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-tegra/list/?series=502821","date":"2026-05-05T10:59:25","name":"i2c: tegra: Improve DMA mapping, latency, and power management","version":1,"mbox":"http://patchwork.ozlabs.org/series/502821/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2232958/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2232958/checks/","tags":{},"related":[],"headers":{"Return-Path":"\n <linux-tegra+bounces-14214-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-tegra@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=sZZHn+Xy;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=172.105.105.114; helo=tor.lore.kernel.org;\n envelope-from=linux-tegra+bounces-14214-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=\"sZZHn+Xy\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.201.41","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com","smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=nvidia.com"],"Received":["from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g8x0k72Hxz1yJV\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 05 May 2026 21:21:26 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id BE61E310EF0C\n\tfor <incoming@patchwork.ozlabs.org>; Tue,  5 May 2026 11:00:38 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7860A3876B2;\n\tTue,  5 May 2026 11:00:38 +0000 (UTC)","from PH7PR06CU001.outbound.protection.outlook.com\n (mail-westus3azon11010041.outbound.protection.outlook.com [52.101.201.41])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CA3C346FC3;\n\tTue,  5 May 2026 11:00:34 +0000 (UTC)","from MN2PR01CA0010.prod.exchangelabs.com (2603:10b6:208:10c::23) by\n MN2PR12MB4094.namprd12.prod.outlook.com (2603:10b6:208:15f::23) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.27; Tue, 5 May\n 2026 11:00:30 +0000","from MN1PEPF0000ECD8.namprd02.prod.outlook.com\n (2603:10b6:208:10c:cafe::de) by MN2PR01CA0010.outlook.office365.com\n (2603:10b6:208:10c::23) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9870.25 via Frontend Transport; Tue,\n 5 May 2026 11:00:30 +0000","from mail.nvidia.com (216.228.117.161) by\n MN1PEPF0000ECD8.mail.protection.outlook.com (10.167.242.137) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9891.9 via Frontend Transport; Tue, 5 May 2026 11:00:30 +0000","from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com\n (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 5 May\n 2026 04:00:07 -0700","from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail202.nvidia.com\n (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Tue, 5 May\n 2026 04:00:06 -0700","from BUILDSERVER-IO-L4T.nvidia.com (10.127.8.9) by mail.nvidia.com\n (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend\n Transport; Tue, 5 May 2026 04:00:03 -0700"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777978837; cv=fail;\n b=B4jBNY190FcLmZca51WsBz8Cd8Jvh5VwtBI4TxLF8VVmLG8etC5SHDxz9aj7SNIaebxckgNwqpHTUYnsPwJ33141mU1lw/8yc4Cbg8b3YjHvW5maVWKa9+mBPcEmCG46IC8sNv5vLEhnn3M22S9MXBfJGrMehu939bi1wpKpE3U=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Ian9AVtQHYz7myGrGDGHZOYilU6IDZ8lnCVpIP6nOSAGlu4wjnd+kNOAutuLG6YpCDHhlQyGFMvyEjqGHjg0ENymg9p6VI2YX8jgDRM5yOtuSnnGObMa2UP7xYNZ7Fl4EEPV0kImG6cMkyJro7qo9IxitexfGi/xXMIf4KWy8DzUuuocJwHTG8OaU2DvJdCN7n30pqHMPCxjnmu8i4L3XqgIJvtZr9urHPSNmI0sNSbJUSByvUHE9lj/9tvaReCvskS2OXxdc6EVmGYlWYocjldWDlWdiNul5MSHJIl5yWQRWLlVURdeNeJ0u3Vy8eEcYBPZma2rYovDHl7vWF4dBQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777978837; c=relaxed/simple;\n\tbh=BiNTVTcIfeCMbsf0UcGSI9ZHtwbxyg4Auvm3XXWYwFE=;\n\th=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=KkUoMYrwLd29gEanH/WIWRfGzGULqtDiZCaduCNWBu6xXSbwt13Rgg0svklKKPcYHo4V/97PLN6gvSV3V1TYgZiB6IS+IDftuhmp40in/P1bCufjqxQt+3hVegCoglo9r+9mmJI5xDPTS8GVoOoSWMwlIo00tFJNW3wjyj/7lAk=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=1lZ+uAG2E5p17Fl5NU24FOSVgZ38a2zZyG+Zzj81oJw=;\n b=D1V+aa9APnSCOdBwG2Nmc9ddS8WKRGdTmd2gj8QGvH539N7r1mJHxBYkxRRbVhv5S6VV5vdfQmk14NyrcNQrIruYNqvIiAmXewx9Te/Fjob60RFF2/PFbwfkxrU4lRKTMAkEON3igNtK/ADzofUT80nzXeXmZ6Ehw7PyQJIUCo1cUgR6D/nEl29hVdZrpe3CJA1INOXyQaCeaksx5oVKHFZ1+P9lM2icVfaQZlomNgC9g4iaBU6UeJvR8dC1Y9EdlP/snFfYZlHeAbrIoaC6X+vx2o/vCvLT9WKjLKoSiaEZ+0OVPf5WQwx70//PKEkDCQstYbP63QFhsQZ++kZq7Q=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n spf=fail smtp.mailfrom=nvidia.com;\n dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=sZZHn+Xy; arc=fail smtp.client-ip=52.101.201.41","i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.161) smtp.rcpttodomain=gmail.com smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=1lZ+uAG2E5p17Fl5NU24FOSVgZ38a2zZyG+Zzj81oJw=;\n b=sZZHn+Xyce0rQ9rPZHbmPpbfEC4uGEncmca0V6OntSGQ/RhTjx0hg8aISgnOWSjx/yOiAY5cH9pq6HlTGxSbb+UCsruzEPzn6NYxVb6MsQrOF/T4SHBS7TsVI68c3VozsJDw3tuI45bD1RdJhWJSmPnPZ/yQ9BC/CIU6bNOCocv5bbUx0f5HCvFiL9GP5yxCT6vgdcwFVguXo+73+eFmYr19yqHzAjrKu4Nhs5qDsLzYP1aKBpxe1Td3VYD/G/2hcpf2gDe8wn3G1P0VtqoGHhoZn7Jgv8FEQtSCtdUD6qTcsnFtidkppucvQbBlzbX9mU0f+LaMc5aqS71q2DX+8w==","X-MS-Exchange-Authentication-Results":"spf=pass (sender IP is 216.228.117.161)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;","Received-SPF":"Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.161 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C","From":"Akhil R <akhilrajeev@nvidia.com>","To":"Laxman Dewangan <ldewangan@nvidia.com>, Dmitry Osipenko\n\t<digetx@gmail.com>, Andi Shyti <andi.shyti@kernel.org>, Thierry Reding\n\t<thierry.reding@kernel.org>, Jonathan Hunter <jonathanh@nvidia.com>, \"Kartik\n Rajput\" <kkartik@nvidia.com>, Wolfram Sang <wsa@kernel.org>,\n\t<linux-i2c@vger.kernel.org>, <linux-tegra@vger.kernel.org>,\n\t<linux-kernel@vger.kernel.org>","CC":"<mochs@nvidia.com>, Akhil R <akhilrajeev@nvidia.com>","Subject":"[PATCH 2/4] i2c: tegra: Disable fair arbitration for non-MCTP buses","Date":"Tue, 5 May 2026 16:29:26 +0530","Message-ID":"<20260505105928.38457-3-akhilrajeev@nvidia.com>","X-Mailer":"git-send-email 2.50.1","In-Reply-To":"<20260505105928.38457-1-akhilrajeev@nvidia.com>","References":"<20260505105928.38457-1-akhilrajeev@nvidia.com>","Precedence":"bulk","X-Mailing-List":"linux-tegra@vger.kernel.org","List-Id":"<linux-tegra.vger.kernel.org>","List-Subscribe":"<mailto:linux-tegra+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-tegra+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","X-NVConfidentiality":"public","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-NV-OnPremToCloud":"ExternallySecured","X-EOPAttributedMessage":"0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"MN1PEPF0000ECD8:EE_|MN2PR12MB4094:EE_","X-MS-Office365-Filtering-Correlation-Id":"5b4b5249-0543-4c5a-ab70-08deaa9585e3","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|36860700016|376014|1800799024|82310400026|18002099003|22082099003|921020|56012099003;","X-Microsoft-Antispam-Message-Info":"\n\tItPN8CVd3aW8IixgfEvo5dGgM50QlER7sVlu2+QDKlhbZ5yJ9JEAH4dOt9S5QdnVWizMc786Ql92mZxJKM9Wrznksz1aeqwM3zI+J2ogAdlRId/yIBgAxATFKliVlpqDMFUd+ZhkqhAcN8OlDPF//6hndPQ7AK0G87098pUVcN0mk7eKuzw+vwV4Ccw0S/fOkeCFyYwxFnXGTaVBqo5HS+Fgc+DzCRSKbQ4TIblveWElMMgV+flVLHEGbqobFQKdHxjscNoNOcXWNEB5v5wPDWkYbmC0/PebOy+dpt6A5Ra3RMjrl7FlahsfVwKG0MhBeXT2rlBs4Mh7KdZ4Fwu85gdCqJiqPRRTn8g4CDxjlF+s8DmAc20Q6UaP9LO8tY3+loiVhEHV9KVM2w938nuyV5XNKUok/gTzFBolhJZ7IwaLj5+p77fYo+h3IHGwH5qP27QIcmSEslK4N9ZK5BEyW9z+YEZI+VjtFefVb4CdPwhNM9ANlTR695PC23C/iD77d60pcVSgu0qhd86a7a+sCPWVHFI9wvIBVzIa5HfOaRENEGHRVnuiNfc7pfx1m0URPS4g82LHbsGT11YzVGhOQDNaN0xhmgx90mznP1Z7dbNHNd2YLFT8cTrcZBmQHYPaadfKPTE30RZwwwmR0K1XiAbKtsrP7L+kZKjcDXB+BI94ddYwJYUson/9kGRoIgsh7JAozsUnzsRXN11Go6BNKX7FG2kcQsRVqodl58yDZVviB+C4G15EpeEZx46VJAcCDsk2g5pyPsbTSAHtpWxAoA==","X-Forefront-Antispam-Report":"\n\tCIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700016)(376014)(1800799024)(82310400026)(18002099003)(22082099003)(921020)(56012099003);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n\tibhgD7r//R+Ao1YFDxmdsVJtdWuONPHdxZk326d4UG6mPvkbY57FxjBfJxdS8L5F+JujDRwSXnqPm0oAq+nH+25oLnhvBje4DiHbvgOVyXxzvnFsp91iy6uIF8bdxyPpTYtYkG4OQ6Aa3S19mVqRYaU993UGbFSAYh1j6qy+93vCtnhT7WBrFLy/dGk2CwUnPFD+sY2b6KbURIrz73K74tK0iMaQr23rinwOkPUHrmfAgrFjoPX97udwLBiO/d6DTK9z7kPBSSQyK8B9og1v2GsPUwpNo8Iul+f3Ci98UfatPRo2Zr8lXMXx/Hq7tHbqC7VdMfrCs03PmdaW44UVu7u/EOX8/bZTXSO6ZQwp5NlNQhPvGc6KSjinZzoe2n35Le9jNmtKQWVrd6y+0ODAZTRvLwYZOALDiEGYQRMpp0aoKMcOOYnKUF8MNTZocElt","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"05 May 2026 11:00:30.4409\n (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 5b4b5249-0543-4c5a-ab70-08deaa9585e3","X-MS-Exchange-CrossTenant-Id":"43083d15-7273-40c1-b7db-39efd9ccc17a","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com]","X-MS-Exchange-CrossTenant-AuthSource":"\n\tMN1PEPF0000ECD8.namprd02.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Anonymous","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"MN2PR12MB4094"},"content":"Recent Tegra I2C controllers have a fairness arbitration register, which\nallows configuring the fair idle time required to support MCTP protocol\nover I2C. It is enabled by default, adding a per-transfer latency overhead\nthat impacts non-MCTP I2C buses.\n\nDisable the fairness arbitration register during controller init for buses\nthat are not MCTP controllers.\n\nSigned-off-by: Akhil R <akhilrajeev@nvidia.com>\nAssisted-by: Cursor:claude-4.6-opus\n---\n drivers/i2c/busses/i2c-tegra.c | 23 +++++++++++++++++++++++\n 1 file changed, 23 insertions(+)","diff":"diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c\nindex a21f6457d41b..1d274431e209 100644\n--- a/drivers/i2c/busses/i2c-tegra.c\n+++ b/drivers/i2c/busses/i2c-tegra.c\n@@ -164,6 +164,7 @@ struct tegra_i2c_regs {\n \tunsigned int master_reset_cntrl;\n \tunsigned int mst_fifo_control;\n \tunsigned int mst_fifo_status;\n+\tunsigned int fairness_arb;\n \tunsigned int sw_mutex;\n };\n \n@@ -272,6 +273,7 @@ static const struct tegra_i2c_regs tegra264_i2c_regs = {\n \t.master_reset_cntrl = 0x0a8,\n \t.mst_fifo_control = 0x0b4,\n \t.mst_fifo_status = 0x0b8,\n+\t.fairness_arb = 0x0e8,\n \t.sw_mutex = 0x0ec,\n };\n \n@@ -300,6 +302,7 @@ static const struct tegra_i2c_regs tegra410_i2c_regs = {\n \t.master_reset_cntrl = 0x0ac,\n \t.mst_fifo_control = 0x0b8,\n \t.mst_fifo_status = 0x0bc,\n+\t.fairness_arb = 0x0ec,\n \t.sw_mutex = 0x0f0,\n };\n \n@@ -379,6 +382,7 @@ enum tegra_i2c_variant {\n  *\t\ttiming settings.\n  * @enable_hs_mode_support: Enable support for high speed (HS) mode transfers.\n  * @has_mutex: Has mutex register for mutual exclusion with other firmwares or VMs.\n+ * @has_fairarb_reg: Has fairness arbitration register for SMBUS/MCTP support.\n  * @variant: This represents the I2C controller variant.\n  * @regs: Register offsets for the specific SoC variant.\n  */\n@@ -412,6 +416,7 @@ struct tegra_i2c_hw_feature {\n \tbool has_interface_timing_reg;\n \tbool enable_hs_mode_support;\n \tbool has_mutex;\n+\tbool has_fairarb_reg;\n \tenum tegra_i2c_variant variant;\n \tconst struct tegra_i2c_regs *regs;\n };\n@@ -476,6 +481,7 @@ struct tegra_i2c_dev {\n \tvoid *dma_buf;\n \n \tbool multimaster_mode;\n+\tbool is_mctp;\n \tbool atomic_mode;\n \tbool dma_mode;\n \tbool msg_read;\n@@ -914,6 +920,10 @@ static int tegra_i2c_init(struct tegra_i2c_dev *i2c_dev)\n \tif (IS_VI(i2c_dev))\n \t\ttegra_i2c_vi_init(i2c_dev);\n \n+\t/* Disable fairness arbitration if not an MCTP controller */\n+\tif (i2c_dev->hw->has_fairarb_reg && !i2c_dev->is_mctp)\n+\t\ti2c_writel(i2c_dev, 0, i2c_dev->hw->regs->fairness_arb);\n+\n \tif (i2c_dev->hw->enable_hs_mode_support)\n \t\tmax_bus_freq_hz = I2C_MAX_HIGH_SPEED_MODE_FREQ;\n \telse\n@@ -1779,6 +1789,7 @@ static const struct tegra_i2c_hw_feature tegra20_i2c_hw = {\n \t.has_interface_timing_reg = false,\n \t.enable_hs_mode_support = false,\n \t.has_mutex = false,\n+\t.has_fairarb_reg = false,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra20_i2c_regs,\n };\n@@ -1812,6 +1823,7 @@ static const struct tegra_i2c_hw_feature tegra20_dvc_i2c_hw = {\n \t.has_interface_timing_reg = false,\n \t.enable_hs_mode_support = false,\n \t.has_mutex = false,\n+\t.has_fairarb_reg = false,\n \t.variant = TEGRA_I2C_VARIANT_DVC,\n \t.regs = &tegra20_dvc_i2c_regs,\n };\n@@ -1845,6 +1857,7 @@ static const struct tegra_i2c_hw_feature tegra30_i2c_hw = {\n \t.has_interface_timing_reg = false,\n \t.enable_hs_mode_support = false,\n \t.has_mutex = false,\n+\t.has_fairarb_reg = false,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra20_i2c_regs,\n };\n@@ -1877,6 +1890,7 @@ static const struct tegra_i2c_hw_feature tegra114_i2c_hw = {\n \t.has_interface_timing_reg = false,\n \t.enable_hs_mode_support = false,\n \t.has_mutex = false,\n+\t.has_fairarb_reg = false,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra20_i2c_regs,\n };\n@@ -1909,6 +1923,7 @@ static const struct tegra_i2c_hw_feature tegra124_i2c_hw = {\n \t.has_interface_timing_reg = true,\n \t.enable_hs_mode_support = false,\n \t.has_mutex = false,\n+\t.has_fairarb_reg = false,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra20_i2c_regs,\n };\n@@ -1941,6 +1956,7 @@ static const struct tegra_i2c_hw_feature tegra210_i2c_hw = {\n \t.has_interface_timing_reg = true,\n \t.enable_hs_mode_support = false,\n \t.has_mutex = false,\n+\t.has_fairarb_reg = false,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra20_i2c_regs,\n };\n@@ -1974,6 +1990,7 @@ static const struct tegra_i2c_hw_feature tegra210_vi_i2c_hw = {\n \t.has_interface_timing_reg = true,\n \t.enable_hs_mode_support = false,\n \t.has_mutex = false,\n+\t.has_fairarb_reg = false,\n \t.variant = TEGRA_I2C_VARIANT_VI,\n \t.regs = &tegra210_vi_i2c_regs,\n };\n@@ -2007,6 +2024,7 @@ static const struct tegra_i2c_hw_feature tegra186_i2c_hw = {\n \t.has_interface_timing_reg = true,\n \t.enable_hs_mode_support = false,\n \t.has_mutex = false,\n+\t.has_fairarb_reg = false,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra20_i2c_regs,\n };\n@@ -2041,6 +2059,7 @@ static const struct tegra_i2c_hw_feature tegra194_i2c_hw = {\n \t.has_interface_timing_reg = true,\n \t.enable_hs_mode_support = true,\n \t.has_mutex = false,\n+\t.has_fairarb_reg = false,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra20_i2c_regs,\n };\n@@ -2075,6 +2094,7 @@ static const struct tegra_i2c_hw_feature tegra256_i2c_hw = {\n \t.has_interface_timing_reg = true,\n \t.enable_hs_mode_support = true,\n \t.has_mutex = true,\n+\t.has_fairarb_reg = true,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra264_i2c_regs,\n };\n@@ -2109,6 +2129,7 @@ static const struct tegra_i2c_hw_feature tegra264_i2c_hw = {\n \t.has_interface_timing_reg = true,\n \t.enable_hs_mode_support = true,\n \t.has_mutex = true,\n+\t.has_fairarb_reg = true,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra264_i2c_regs,\n };\n@@ -2143,6 +2164,7 @@ static const struct tegra_i2c_hw_feature tegra410_i2c_hw = {\n \t.has_interface_timing_reg = true,\n \t.enable_hs_mode_support = true,\n \t.has_mutex = true,\n+\t.has_fairarb_reg = true,\n \t.variant = TEGRA_I2C_VARIANT_DEFAULT,\n \t.regs = &tegra410_i2c_regs,\n };\n@@ -2175,6 +2197,7 @@ static void tegra_i2c_parse_dt(struct tegra_i2c_dev *i2c_dev)\n \n \tmulti_mode = device_property_read_bool(i2c_dev->dev, \"multi-master\");\n \ti2c_dev->multimaster_mode = multi_mode;\n+\ti2c_dev->is_mctp = device_property_present(i2c_dev->dev, \"mctp-controller\");\n }\n \n static int tegra_i2c_init_clocks(struct tegra_i2c_dev *i2c_dev)\n","prefixes":["2/4"]}