From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 77C103F9F3C for ; Mon, 20 Jul 2026 11:41:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784547694; cv=none; b=s7iNh2+YnAW/g3Z7HIIO4Of2vj6d//7lGdg14bsb1n+q9plRsWbR182/+uWCNzllLT8GQ4pYHHQ1bnj27LW4PAoE5Y9GuGEV/rXXnaRIWuSIGSOq+EUGxwGhaKE8bqoGuqmbFfFN6mYskij1hvDZx7G9tT+dMThIaL+IiyrnsbQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784547694; c=relaxed/simple; bh=y/JvSyMfS8L7pvQPfF1HhGAMSKax9xThh+ckULgHJIs=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=fejPRTf1G0wRypac458yt4eoYpJagHLvT9aDFPl8ZD3pzuNUOCY1tQpXosaOFuzsr10xcex3NvB914Q8qqNeqEX7meqO+0fmOOZ2NjA3oNtvjAcJ12vQtQg2JEN/iZK+EgQj0ReGMqfHABksVbTrdj1nUQiMAULBbYURnmhGFqs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=fqy/+PLC; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=i3ZzxVJU; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="fqy/+PLC"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="i3ZzxVJU" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66KAvTsT2541997 for ; Mon, 20 Jul 2026 11:41:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=zfqwD3OQO+OV4T/Qmssm03 QpfKhp6DK+NHYzB3nuAdE=; b=fqy/+PLCAleK8pfag1RTyxNNo1suB4w0QMATCe TwlyEfvFVVMTfVh5bv11g7BJHPNMd7jDzaTqINCvtWW5PTN7iRG8u208d8z7fYBo 0v/HOJtAlfPfV9uHD8aNb5STgddWtgNpgsu9aLwKRQoATRXiWza/bA1XEc15HpJS P5O5EhmkZF8WpMl8L/OGy3iETlr+OOcPrv55uT1wLOiKsenHkmNY0SecaoaDN4ce 3XJ+A/6aPhr6sGgGE16OMvVIlR1pY4xqx/+0rLqtBm6nSXGggBVO04qvbE/zwhYT lTKRB0aXejS47XKRKJzeTG1powkCAT7Mko7P3Mxx9XguosMQ== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fhfdch3pv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Jul 2026 11:41:29 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-84870e7f498so10552287b3a.3 for ; Mon, 20 Jul 2026 04:41:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784547689; x=1785152489; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=zfqwD3OQO+OV4T/Qmssm03QpfKhp6DK+NHYzB3nuAdE=; b=i3ZzxVJUQj6Es6delEC12fX292UeLpzV5thwPoK6bgFAIyPJkLaJR9EY+nt+ISga2R fWMU19Pl46LaQlP89p6WGO9KfVITdU4KbH3UcOePZ/WjGyopMiccmmqBSaAi049O6ZV4 g7DtbpuWB+IFrSvmANLdWp9/REg3fGRylewRIIb3KcFsh4VlB8EPqo9ZNW+uzdEQNNhT WRaFp70TeUNq9wiJpoaG42oWhdYke3N3CNpoD4AUqm0/HO7kfkxP3MZ8x5mApShsdN+t /ULyuDaWbjAeejQJOyyfLY/KTWoKYlpWZzgKerP4uRp9/Az5mvNlmTfSVFHEoJ2jLgBn onKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784547689; x=1785152489; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=zfqwD3OQO+OV4T/Qmssm03QpfKhp6DK+NHYzB3nuAdE=; b=s99om4u+J7XFkw2tkE/aRRuWHfvV2LaioSvbl0Dh5rahf0XAE5DJrte4kJdBtTnGxK kgtM0Qok/3BicIrWbMy+Rjt1ShnoC1gfE4ORz51EuDxWkZ68ho8mDtUy58Kn1q/rJ4A7 ezYD908PyeW5priumpxgJ84tWy9YQv1d1B75+eXVavFWWc72X29NB+bcIAQgIeR9qGoU sxiQsrlxz0/blab/y3G9XWlKcZ8m7p883MN9rdeC+GZ21gXDfKRnfhRAvHoQPAqon+UJ aGMpRfOWQjfctBMC8IgolLvzPY6UUZZ9w1dFnuQcLPnkxjwAC+V7U76vhqohKgBtAGxY NUXg== X-Forwarded-Encrypted: i=1; AHgh+Rq2LDdXfNzqpEaINK5c32yEhAXmra4FFJrAP6Izatzttv936vy6IZysCpkwh/OgnGtcdChZMFvQyctHAxg=@vger.kernel.org X-Gm-Message-State: AOJu0Yx7xq255Ko9Coas0lxLQBlpPdWGL6ckaZk4yXUce6Ul7fe4Rcha fDlwycWq6cTRNtqYGKpFWgQFiaAF2aZ23AzuNnKZPsCGNp+zZoQWXCXLxfX20ZV+nh6RtMg5qcB b4wtW4HsqknlMaXNDU+XXsu6JRhd1qCQMdTb22iVJnx4VP7Unnbh2nZcs/hW1LldbtPo= X-Gm-Gg: AfdE7cn7lK5+ule37K4UsmRCTSDB/sx/uCBubIKUXq2ZHTus0XRTEtgKnTw1+j5Io3i R2wg0PJFPyVbdCBydV/DJMqwUSvvRTA9w/leuqizDNw+minw9E1ttA+3ceX8lPaG9MC84JXuNs6 +YXDHjbziDRAiS5Brhc4QnpNBwv55MMaXTK4CSwu+pMYxsXv4ggfkT3eIW1fVzc55EzUHilifJI fYPrin7I2XGv0zTRAl0BEMao/MNB/+w/pAJXbXtsHYq3XkNhGqmnnsFoBltqoAxPmwhxkHXDzrz Z53cEWfRfKJUyowftRZ3X3m3u8QGB9mPCF5nMTa2+BRuUtBCFd9Ojjp8BQ7TLr7TZrGS2FfzIsv Huib8x4pqZ4ZFKMB+n91dOM8S1YzGRuVmrrU= X-Received: by 2002:a05:6a00:1d98:b0:848:57f3:8f99 with SMTP id d2e1a72fcca58-84c2953e769mr13863153b3a.56.1784547689099; Mon, 20 Jul 2026 04:41:29 -0700 (PDT) X-Received: by 2002:a05:6a00:1d98:b0:848:57f3:8f99 with SMTP id d2e1a72fcca58-84c2953e769mr13863118b3a.56.1784547688558; Mon, 20 Jul 2026 04:41:28 -0700 (PDT) Received: from hu-arandive-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84c2adfdfe9sm5450701b3a.27.2026.07.20.04.41.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Jul 2026 04:41:28 -0700 (PDT) From: Aniket Randive Subject: [PATCH v6 0/2] i2c: Add dynamic transfer timeout based on message length and frequency Date: Mon, 20 Jul 2026 17:11:18 +0530 Message-Id: <20260720-master-v6-0-671261b05c61@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAF4JXmoC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyzHQUlJIzE vPSU3UzU4B8JSMDIzMDc0Mz3dzE4pLUIt0085REU/Nkc1Mjy0QloOKCotS0zAqwQdGxEH5xaVJ WanIJSLdSbS0AEbRr7WoAAAA= X-Change-ID: 20260716-master-f7da57c7529a To: Andi Shyti , Mukesh Kumar Savaliya , Viken Dadhaniya Cc: linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, Aniket Randive X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1784547685; l=2334; i=aniket.randive@oss.qualcomm.com; s=20260325; h=from:subject:message-id; bh=y/JvSyMfS8L7pvQPfF1HhGAMSKax9xThh+ckULgHJIs=; b=/799jFacbkGkI516x+646eXmAnUPkd9DiK61RXaF4ScfwRZzTVIZZ7T5nMBIyTPe1bJyr/Ztf CzroIF+MTayDsFCYXsGbJsLYDMKKNOXUo5luKDlOii8XIYJj930UfEd X-Developer-Key: i=aniket.randive@oss.qualcomm.com; a=ed25519; pk=4o37X1ZqGbCO/T2SR8kq/HnWvq0yb1RUlFuNukovbQk= X-Proofpoint-ORIG-GUID: 8RWO6TK3ESPGBBR8Cs4t30HUhBqB42XO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzIwMDEzMCBTYWx0ZWRfX4SPntUpoHqMH xn/ZtunBhJ5sVJnI1sn465f9rbSnMfdSCusmkS1mTxoa6arLogpwl7DFSvHl4+sgqEwrRfCBMro +ODm52efwGMTjLoNU7vgpm8TFDG18mhBVf7blL8L+GszTvByurILorGsfNqNDb8BOzW86fcD/nF JJ+GxKsAB4N4KJa0mv8n4SLprhHLdzHQPvtDVseiQbB7NV8pthgH/4ZEu9yRNktnZKPGa4wH9cE YUXo0AvX0N/6vXTPkjkUvLhWJjJqBn1qkfgWBRng3xJlSi0pviKy4G7D4xBzmoawzZcfQNhu5rn nOi4x3RLIBWLejuZ119e6fGJYXYPI6gWOxbVRvS+URFw9OramTYpou1pW9soezVhPGDyW44EmBr 9fOXVEzafinVw+IWmRrQdm7444vZKOj1eTnHpnLzV4Mnk98GN4zYRtq1BZkYhRfmaVVhJjKhMhz J1S6jF98/4YVg6ZZN0g== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzIwMDEzMCBTYWx0ZWRfX81mVloo6/jma wNPeyf6WezRD+M8xzI90XPCWmSSmr9BsT5ScDFOF9ZPzk+xzpu8Po88nU2flNmARYZ2uskP99B0 VDD3XSkyopfiksNSq/x4P8AS7sifkgg= X-Proofpoint-GUID: 8RWO6TK3ESPGBBR8Cs4t30HUhBqB42XO X-Authority-Analysis: v=2.4 cv=bv58wkai c=1 sm=1 tr=0 ts=6a5e0969 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=dEJld19eDyxHv94P0sMA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-20_02,2026-07-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 spamscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607200130 The I2C core and most controller drivers use a static 1-second timeout for all transfers regardless of message length or bus frequency. This causes unnecessarily long delays on error paths for short transfers, and may be tight for very long transfers at low bus frequencies. This series introduces a generic helper in i2c-core that computes a transfer-specific timeout and stores it in the standard adap->timeout field, making the dynamic value visible to the core retry loop in __i2c_transfer() as well as to the driver's own wait sites. The helper accepts a safety coefficient and a minimum floor as parameters so each driver retains control over its own timing policy without those values becoming public API. The second patch converts the Qualcomm GENI I2C controller to use this helper. The 10x safety margin over the theoretical wire time and the 300ms minimum floor (to budget for clock stretching) remain private to the qcom-geni driver. Changes in v6: - Split into two patches: core helper + driver consumer - Moved timeout calculation to i2c-core as i2c_update_timeout(), which writes directly into adap->timeout so all consumers of that field (including the __i2c_transfer() retry loop) benefit automatically - Driver supplies safety coefficient and minimum floor as parameters, keeping I2C_TIMEOUT_SAFETY_COEFFICIENT and I2C_TIMEOUT_MIN_USEC internal to i2c-qcom-geni.c - Compute timeout once per batch in geni_i2c_xfer() using max message length, all internal wait sites read adap->timeout directly Link: https://lore.kernel.org/r/20260715101805.3615166-1-aniket.randive@oss.qualcomm.com Signed-off-by: Aniket Randive --- Aniket Randive (2): i2c: core: Add i2c_update_timeout() helper for dynamic transfer timeouts i2c: qcom-geni: Add dynamic transfer timeout based on transfer length and frequency drivers/i2c/busses/i2c-qcom-geni.c | 37 +++++++++++++++++++++++++++++-------- drivers/i2c/i2c-core-base.c | 24 ++++++++++++++++++++++++ include/linux/i2c.h | 3 +++ 3 files changed, 56 insertions(+), 8 deletions(-) --- base-commit: b8809969e1d7a591e0f49dd464a5d04b3cf02ab1 change-id: 20260716-master-f7da57c7529a Best regards, -- Aniket Randive