From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.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 58C51316192 for ; Tue, 5 May 2026 09:35:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777973726; cv=none; b=FYE+DBG7aKA4xyR1goofCtvtNkEJ+PvdDpYbzUQej/jrDDSBeec5e0FS/UUNOgO2g2I3V1vBR6CsB6hxTGZzAG1RoS7i6lyy0manXJOz0DzT50t/RtJu3IMWpe+Xf/5R0suEiUXDwxiEzzykKixOHsPIw1qqoOuJVb2Xc7XdSGo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777973726; c=relaxed/simple; bh=PR7Wdss652FBLazi6jLFtm6E2EgfHDdQfxJFN+tksfs=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=twhmWBqQX4Bk4bkWzLWw8ccwawaCJt8jPNPFJiD/78qXTonrC9/pbD4fFG8v/8+o9o9ml8hCgp9k8gVsRmMJ74UmJLVHT7nEh70RLimd9kyclX3l+kV5JUUeWIyxL0M10fRR7Lbd+GbpHSvQH2eR7Q9t1qxT7NKmBdzR2KqyVIA= 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=iWxechIE; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=AEkeiLsE; arc=none smtp.client-ip=205.220.180.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="iWxechIE"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="AEkeiLsE" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6457bUer1187179 for ; Tue, 5 May 2026 09:35:23 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= 1KkySOLo4+xAyVqgNYM8VLGdX22LIlY+bmdfeecgSx0=; b=iWxechIEMo6AOn1T NFSj//h15brRDJz9I1dLXcapHuA5k8gaEF+a/UEt3JfSbmDD4n9fCzdh4He0V53B 6gIp01xh/Km6eWdu6rzPvFJ6hFYBR3mIi6dikcLOg/xo8lzGZ69GslvTvuNRkMWK CWp2mL31eZfwuldAybZCvsiCPfJiql27GIMT4Dj3dVlqZjh7aNm8ZJGqyw1E3Fnk 17S+gZEHiwZ0Ybh70twWOTmsaQpcHIL4Dtg8dw2B51MEnW/yziBIVeRTEwLftIK2 AfIaWNTNcmN00qIoVUenaIwT1mM0juCBfTWRQ4+rQOGOpQzXg04z7bEIPR+G305q UFnc5w== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dxvvgbn8e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 05 May 2026 09:35:23 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-51306c1076dso18847801cf.3 for ; Tue, 05 May 2026 02:35:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777973723; x=1778578523; darn=vger.kernel.org; h=content-transfer-encoding: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; bh=1KkySOLo4+xAyVqgNYM8VLGdX22LIlY+bmdfeecgSx0=; b=AEkeiLsEwaoXrYWcRwcZ3MWwcP4x3tcJt3+nsZTLuOcMDKeyteFokcRuDm3kaDLIRA DEFp7MDRou/tHi2YImq55G4hR1aMrCWM9JXBlXq68Z31F8PACLfUKRu1CA3mL8kpZw8T 0arjXw7ZAmxrf5cvOzxw9RQk4ca+fb6IJJYrkx9+AFiHslrKKyMU3vP8SkAwHd4MGThc AL5F5IQrDJiXvH6ilksmIH2Nxn/arNASkPvje/oD6iM7AodIIy4R25mARQ9vjByTd/My +eG+jN4MIcCCZ9HHiXOl77xs1/YjayRmZgAcqYarfmaKxZ2w6F8kf7OKsj22RyM1ID6j 8CMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777973723; x=1778578523; h=content-transfer-encoding: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; bh=1KkySOLo4+xAyVqgNYM8VLGdX22LIlY+bmdfeecgSx0=; b=bnVjZiOiyBDGxNawEr/B1DwqEpn/YxhSopy2nvThuO7ag/89xv7WEC8OEMOxhTyWdz C5mj/Vff774C7ioC3vXThTfVMwT4BhQgwWkPrfBJ2ChQZGtBNM9Akx1u9hPJTL41yek7 s8SOU9ZLaWZ6JPZ8Lyfok5uDOLtzC+SQ4Q6aeUDnlSseMICmhazr289l1qkhnUr97/bx +moPE9frSiGkjDIPlwGZCKuviKPcapURmaeZhItkmbF7dzMhfLfbrcRwbZbpnJ2zK/UX myUkKtu/PMR5Lm7TEWj58uT5IzqgJ+D+HYI9VK7nbs5Bsi1itxvqrddnVJ14HWoDgdDk knrg== X-Forwarded-Encrypted: i=1; AFNElJ+Z0Xmv13iKew55RXYxUt3vlVwhvJz5U1IB9mxRDJKnP9uabj+jgPQ2ktJZRgDh4K7R46HLPE7N87LmNzY=@vger.kernel.org X-Gm-Message-State: AOJu0YzIV7vSJpcpskNHSJWMoxaywStejA57h2MWoS+oxoqXj2/HQiRu CIrB/ihW4ehl1SPnjLtzA0HEuOuWCMKvsUGECrpLV2GfvnOkp6+ejx1KmZDjmJS7+C1htbkZoR/ Bhmxw+RTBYiwRPxYGlaLWYQCTdx3eHx5HtKtbEbDAcZfYAoryiigDpbvOoTy6yIG793c= X-Gm-Gg: AeBDieufmYJiLxnw6ZoJe1WVV1x/q2nFr6gDpDGb41Q+5bpEWOy7ubMFsIdpiSbaOhw uGPrwcThXDuv7R2qiqukQL8q0Y64XekelxmWlSR/S7zauQ0Oa8DtJMC0WLcpCTJU3UHH3CTWMxy S3/kQ6S38TU/4nXgelCSr5A5ZrXSHXQEtiNUKIlGL7nU7OGFEIU19/igQazPItQKZPJzbYQ53L3 jHPQkjUlZPIy2nTmF/QaZIe5USkX6yMXVPBCtnkD57+n/bALpB3qJ6JJYcb/HJVb0HDUnKBDG1x pddW/6JxOe1EuI3b7ZSo6h1oYxEeOrQATIj0GNEDmWgFn8j/cIFPFBZNze7GRQ18wqnq3G6hr4V NkgWm/iD9Ml05M28uHFaPMoPJSZDFIq7zney8VTajT+tsGzCyvZcyxUEXPPz6jxe3nCNASo05LU R5F1jH0oqtaRo3NtY7 X-Received: by 2002:a05:622a:18a1:b0:50f:b1e6:a901 with SMTP id d75a77b69052e-513069c599cmr34542641cf.24.1777973722644; Tue, 05 May 2026 02:35:22 -0700 (PDT) X-Received: by 2002:a05:622a:18a1:b0:50f:b1e6:a901 with SMTP id d75a77b69052e-513069c599cmr34542261cf.24.1777973722195; Tue, 05 May 2026 02:35:22 -0700 (PDT) Received: from ?IPV6:2a05:6e02:1041:c10:3d0:c2e8:9f02:5c9d? ([2a05:6e02:1041:c10:3d0:c2e8:9f02:5c9d]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a82301ad1sm603925965e9.9.2026.05.05.02.35.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 05 May 2026 02:35:21 -0700 (PDT) Message-ID: Date: Tue, 5 May 2026 11:35:20 +0200 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 1/2] thermal: qcom: tsens: atomic temperature read with hardware-guided retries To: Priyansh Jain , Amit Kucheria , Thara Gopinath , "Rafael J . Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba Cc: linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, manaf.pallikunhi@oss.qualcomm.com References: <20260430054422.2461150-1-priyansh.jain@oss.qualcomm.com> <20260430054422.2461150-2-priyansh.jain@oss.qualcomm.com> <0d95cd5b-01a8-44b6-bd4c-a7e5fa81e181@oss.qualcomm.com> <1dd4746c-e93b-479f-8aed-ea9a21a03316@oss.qualcomm.com> Content-Language: en-US From: Daniel Lezcano In-Reply-To: <1dd4746c-e93b-479f-8aed-ea9a21a03316@oss.qualcomm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Proofpoint-ORIG-GUID: 2nubwBbx-M-Ib-pCdiUGzKNwztIc6WtY X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA1MDA4OCBTYWx0ZWRfX5vKIu/vxof7Y 4l0a4NGhcFNe1fZo7SEOmI8UUvn9Swq6ICvvQASft25E8UbwsXD8cgO12ZB/Ry+7DRPwb5BaPgP OxlEEziF9GHZHjoLWQ4tAgywsqzI5PzsvOwKCvNK99NWywE/aU7cV6v05YG+btdEJOOPkVlHH18 H4ZTRftI9y+qHi87eR0bJrMqI7q5sM0IxV78/FsnR62BnanvX9XvGsTMWWkJQQ9n4Lie4UKo10h yqdrx6YAU52Oj8yxuKmAZAO3DUWIbb2KarDqaF8DT83PXMoPr2p870pBg/usNN7XCNZCaD0u8yl bJ5ZzTNHC/b0Zca+7unoXdDaK3kxz5gu8aFZ2vOeVMV79V5lgwhTiokT/9VgE+sfGllS7V2AyJQ z+RfZA7aJ8jyIWCzNfJEEuWG0f3S5RZCHPRhj7Ig51+sENknEkIBpduvYJbPfbnt89plkVmG133 BeqxNWzBFSEPf4T5oCA== X-Authority-Analysis: v=2.4 cv=K+AS2SWI c=1 sm=1 tr=0 ts=69f9b9db cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=pvSK41EeoSHcvvxgzhsA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: 2nubwBbx-M-Ib-pCdiUGzKNwztIc6WtY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-05_02,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 spamscore=0 adultscore=0 clxscore=1015 priorityscore=1501 bulkscore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605050088 On 5/5/26 10:48, Priyansh Jain wrote: [ ... ] >>>> >>>> int prev = INTMAX; >>>> >>>> /* >>>>   * An explanation ... >>>>   */ >>>> >>>> for (i = 0; i < max_retry; i++) { >>>> >>>>      int value, valid; >>>> >>>>      ret = regmap_field_read(priv->rf[field], &status); >>>>      if (ret) >>>>          return ret; >>>> >>>>      value = FIELD_GET(priv->feat->last_temp_mask, status); >>>> >>>>      valid = FIELD_GET(priv->feat->valid_bit, status) >>>>      if (valid) >>>>          return value; >>>> >>>>      if (value == prev) >>>>          return value; >>>> >>>>      prev = value; >>>> } >>>> >>>> return -EAGAIN; >>>> >>>> (Not tested) >>> This approach has some misalignment with the HW recommendations. >>> As per the HW guidelines, 3 back‑to‑back reads must be performed >>> until a valid read is observed. >>> b or c should be returned only if none of the three reads(a,b,c) >>> report the valid bit not set. >> >> Right I missed the point the HW recommendations is to read 3 times in >> any case. Maybe replace if (value == prev) continue; ? >> > We need to store all three readings because, if all of them are invalid, > we must compare the first, second, and third reads using the following > logic: > > if a == b, return b > else if b == c, return c > else return -EAGAIN > > Given this requirement, comparing (value == prev) inside the read loop > would not be correct, as it does not preserve all three samples for the > final comparison. I tried the different combinations and comparing inside the loop should work. But the optimization introduces an implicit inference not helping for the clarity of the code and probably prone to errors in case of changes. So probably simpler to keep your approach. Please add a comment above the if a == b return b else ... Thanks -- Daniel