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 CB61719ABD8 for ; Wed, 15 Jul 2026 10:05:15 +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=1784109917; cv=none; b=fUzc33izB7Lxvi456tnjnlYXCUNzJQW18k7t/IGUtQu+AdRAKbBmWi9roOoqhTOK9DR5cjWNVSqrQfWAITDSlh4l2sMdBHm7FOrNuxouR7dRwWuLil8NMFsiMXD3F6A3WA9Ywl840si3bIms7EFBy7whtGG+LHLD4t15Qn6+fFM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784109917; c=relaxed/simple; bh=LbNgYcWtJ6EleG0VPELh85DRLTftctcuvjFpUmM5vgM=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=kP18Io+NrDuEyksPNNMFZm0AZojeeFLjbh2QUNN/zwL0+HeAUotnzxvTzZbyxoe9PBRifzyFsRmzTu6N7JY65tcRWvY4mekfRBBWO1VFeeMhWJNxotCRykVA/45cWdBZXu1CzNtSZATvNSBbOcNVjS7bal1gcPxdt49o0g1IXwI= 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=LTh5Fnct; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=e7giyicm; 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="LTh5Fnct"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="e7giyicm" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66F92mPZ160783 for ; Wed, 15 Jul 2026 10:05:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= NqzgSP5QBmA9GAEIiwoOdcOIySaSoE/ED4xZMe7OFWM=; b=LTh5Fnctn1zN9gfG 8w2C0QzhlwwmTDvtrld62C9SeZg7nQt0der8k4w6oR3QXAXJ2gY7f/TrCB0wBgLg viqWIrHgHdgTZNyKcUzRtKFvkCdPr40oMImVSJ2FJRDcA4SlGqVD8cxFEMVTLWml QB62TqHvPtDdkSm+Z/7Jt5Sb9kXqBI/YsQiu8q6CkkSzeY8P1c6zzGWpFhqK1vIG JVP9EDwiSJBiMn/J3sjG+QYtfXuKscp0dVLDuBr9ezNaYPEw4iARMonm+sPpXpiI 9eIoNmosFM9i1aP+sXKITngk2OR1Ptyz4nl0aPhdJYi8r2rJli3Yuvi74IeH7nrI /PFa4g== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fe68wrfms-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 15 Jul 2026 10:05:14 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ccd1958e8fso27913255ad.2 for ; Wed, 15 Jul 2026 03:05:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784109914; x=1784714714; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=NqzgSP5QBmA9GAEIiwoOdcOIySaSoE/ED4xZMe7OFWM=; b=e7giyicmQ8G1Q2heQ2iesOMMfsoRj5EgHAOKDeTwX6P7Z7VfvI25C4uOLl4DGSezTs 8PUzGz/U8FH+3QY9ZKsU36ARNrD/QM/e7V6mX3jdNH+katp2ZUmx9wiYRgUyWL7oiMqI bYTKq8YbEmzYwdP4Bvdkg+yqKHBNgOl7GINo8MI02pgCvmIkXrYN+3MVx1+xJhqWzYOp /h+CERCnVMpgK+ESddU/kLnrxpVRFFSopdl/ycG7f49E+o4tWPMsQP3aP6ZyZckHZKCN MZFsez4B7xZ9ZS/PgtgMsVDH96NRrqhBbJ2Nj8c+69ZiySDHVYZhIOxk5MPqmo9bjUnu miwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784109914; x=1784714714; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=NqzgSP5QBmA9GAEIiwoOdcOIySaSoE/ED4xZMe7OFWM=; b=Hv9Q8L34IGhIpJ3ABonBoVY3Ly5zrQLFKQzhILOdWZXsPRaKv+UfywWytHUzEyBqrj +FTleC9RaetotPJdKMqwYx/4vo/V+OZWz4WcDfZJXF4UA1R0npDnSv+k2HgdCczlAWFX hRdT1MfUiUP/vKnSZ15wuShWwKOZoQjw6UdFXZGO9FJq5fRAT+8IlH++X8rT4t0g2gqD JO0ahmwhSUwVVarDbCRd60usIhce0naPtUhANFDcMg27eLjJvdAzcCXncrOQvFlic14J li0Xd0QGBBCpz+77oIm0uZ+YUG1A4xrryNQqImCpSgdpFTNcEKK8vHiN+ydQPsN/aW2X N7pg== X-Forwarded-Encrypted: i=1; AHgh+RqurDh/3GjMM+eLoYmAi9OOqmCX8r5EDwgK3ETW1cGlDL4aljI/E5YWV7FAKWFCdfqDAWpTUcHAzr01t2o=@vger.kernel.org X-Gm-Message-State: AOJu0YzdFhIKAvXirMYL97kE3KGDCMvCbrAitBAMM2nx9LgpIfdFPXEY /HegjDMoPdyHkC+oWtFcN2i8x7gFLJah/Ci1N+1102ZeaK+SXGLGLWsE4flzL9IdZ68MRnCLKBB dWmJf5V8ImwP4GK/M5urzArnGg++ZGwhC09cpKij7GzVH2ZnXRuhMMEPvslKuoLzNeQBCy6mv2S s= X-Gm-Gg: AfdE7cnQMQhUelrdKXOPC296+jziT9PNSH5mmiqYhfR0txPoQqin/WXTu/pMuWkJyiK 1tjGmoNXSAVLQubCYtGUa8F39be4LXSKHk4xdNk2l1yYvVkv5eNefrf3te4GEZMTCcbctOvOp34 omlt83MU5Bn/DkoaBvvTPvvfZhP+pYhmACCthNVGK/Gb9lvGblYekewsgq5zz1f1bU5Y1pKbsRn Dj6Pd1ueSUIdydWSF8iAy6s3lH1ymyeus8O447kJLGgKfH1Fo0y1Sxp27JJhe+isp3vduYwRWNr pOkBX0mtjiNXxSazkz6HRwl9wVRJDLkV24A+yJbnmIZmjU7AHiiZLtF2BS5YLJcvZn/YM3lqbgf PdWidhbx8hf4tItbA4Y7ga0wA/n7lCzDk7GNQzrvk010= X-Received: by 2002:a17:902:d98b:b0:2c8:f34c:82c0 with SMTP id d9443c01a7336-2ce9e5a55c5mr162929075ad.2.1784109914144; Wed, 15 Jul 2026 03:05:14 -0700 (PDT) X-Received: by 2002:a17:902:d98b:b0:2c8:f34c:82c0 with SMTP id d9443c01a7336-2ce9e5a55c5mr162928845ad.2.1784109913683; Wed, 15 Jul 2026 03:05:13 -0700 (PDT) Received: from [10.217.218.21] ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9d3bbaesm130823715ad.57.2026.07.15.03.05.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Jul 2026 03:05:13 -0700 (PDT) Message-ID: <54c99b8d-158d-476a-b965-bf2f64b16237@oss.qualcomm.com> Date: Wed, 15 Jul 2026 15:35:07 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH V4] i2c: qcom-geni: Add dynamic transfer timeout based on transfer length and frequency To: Mukesh Savaliya , viken.dadhaniya@oss.qualcomm.com, andi.shyti@kernel.org, sumit.semwal@linaro.org, christian.koenig@amd.com Cc: linux-i2c@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, naresh.maramaina@oss.qualcomm.com References: <20260710161056.1799019-1-aniket.randive@oss.qualcomm.com> Content-Language: en-US From: Aniket RANDIVE In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: 96_5SlHlCoJk-nTwRDcW4RZ28dKrvGjr X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE1MDA5OCBTYWx0ZWRfX3ou3rdHx2lHL uUTwgASYd0tsjmQXzhPfqCX2i2HDh45ghijXVBG6rgJYfViIdrjaIMlXCMFV8Ax04re1PIzR5aL ld7M9L7PlDH9Q+EzOGzTTBQErlG3L3vMeax7+T6XV3kFrIgJFKHaCj58BZiFuLqXTIX8doGFe1U jVjuuLEjcI7f7PpyUI0tWTpQJqz6A9uzYOjy+cGGFYAMLc7sXtdAlJSQtrNF5u3U/GV48JKsffo 2bFBmMNHjDFjdUmpTeq7p71w4FjZtyElDDptzG+AOo8LFf8xCdp64IHC3ilOOtwGs9BxODVgzor K8zItgEIeW4LvZyWXNXmcA/6SYzMVCCg3Z5FcEeROqn9DWMP62xhnyf3G1DL/bwKS4FMTdPszMY 63XtQk9jSWVR95LY4+FKJdbgnKo77gabOIhQDxDvW2pSdHMxS51CBYvv/7t0fIOGoOcOyh2KNhi kBpXXSFlfJWH/o4KEFg== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE1MDA5OCBTYWx0ZWRfXxuPJnN0AwCTx lUemJfmq3NshWwa6cs0CKtNNni9Mzk8b+Jt9rpRTYl6SMV/s2QLgr+kwEf88x8OtSgtFOFciQ0y FYm9n4jHiiJ6ftYkXCUuCiDZekVxVC4= X-Authority-Analysis: v=2.4 cv=LbgMLDfi c=1 sm=1 tr=0 ts=6a575b5a cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=z_QR8a_bo-jD1fP4SgEA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-GUID: 96_5SlHlCoJk-nTwRDcW4RZ28dKrvGjr 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-15_02,2026-07-14_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 suspectscore=0 adultscore=0 clxscore=1015 phishscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607150098 On 7/15/2026 9:36 AM, Mukesh Savaliya wrote: > Hi Aniket, Thanks for addressing previous comments. > > On 7/10/2026 9:40 PM, Aniket Randive wrote: >> The driver uses a static XFER_TIMEOUT of HZ (1 second) for all transfers >> regardless of message length or bus frequency, causing unnecessary >> delays on error paths. >> >> Compute the timeout dynamically from message length and bus frequency >> with a 10x safety margin over the theoretical wire time. Add a 300ms >> floor to budget for I2C clock stretching, where a slave may hold SCL >> low indefinitely during internal processing. This detects real hangs > not only internal processing but it may go bad holding SCL low > indefinitely. >> 3x faster than the old 1s static timeout. > Meaning, in such case/scenario, don't need to wait till fixes timeout. > I guess, 3x faster is relative to the 1 sec, but for larger data and > slower frequency it may not be 3x. Hence, correct it accordingly. I will update the commit message in next patch. Thanks, Aniket >> >> For GPI multi-descriptor transfers, use the maximum message length across >> all queued messages as the per-completion timeout. >> >> Signed-off-by: Aniket Randive >> --- >> >> Changes in v4: >>   - As per konrad suggestion used mult_frac() for bit_usec to avoid >> intermediate > Do not keep space before starting, directly start with "- As per....." Ok. I will take care of this in next patch. Thanks, Aniket >>    overflow on 32-bit targets. >>   - Updated the commit message and added a driver comment explaining the >>     rationale for the 0.3-second minimum timeout floor value. >> >>   drivers/i2c/busses/i2c-qcom-geni.c | 46 +++++++++++++++++++++++------- >>   1 file changed, 36 insertions(+), 10 deletions(-) >> >> diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/ >> i2c-qcom-geni.c >> index 96dbf04138be..c5c3adc8ec77 100644 >> --- a/drivers/i2c/busses/i2c-qcom-geni.c >> +++ b/drivers/i2c/busses/i2c-qcom-geni.c >> @@ -74,9 +74,13 @@ enum geni_i2c_err_code { >>   #define PACKING_BYTES_PW    4 >>   #define ABORT_TIMEOUT        HZ >> -#define XFER_TIMEOUT        HZ >>   #define RST_TIMEOUT        HZ >> +/* 9 bits per byte (8 data + 1 ACK), 10x safety margin */ >> +#define I2C_TIMEOUT_SAFETY_COEFFICIENT    10 > Add a line space to make it look clean >> +/* 300ms floor: budget for clock stretching; slave may hold SCL low >> indefinitely */ > Already explained in commit log, can remove second part. > >> +#define I2C_TIMEOUT_MIN_USEC        300000 >> + > [...]