From nobody Thu Apr 2 17:22:48 2026 Received: from mail-dy1-f173.google.com (mail-dy1-f173.google.com [74.125.82.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 57BF9371878 for ; Fri, 6 Mar 2026 07:17:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772781467; cv=none; b=LZJbtmSn2zmsFLM1rR0zHEn51vwMsmgy2HQCBrHLDYpBE4vsZm+Ioq7yq9FDz+BE5mnpLyNzxkKriDu7HD7A9n+l+aIQG1lT+MCA0stH+CvujyLF+wUf5cxueTt36/1mYx/c3cNl2OCmm4RkhItEk9xpDPq+Eug0MqYLrpVOVfo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772781467; c=relaxed/simple; bh=UFx1zfBhIFtNwm637rBCqONNfHs5cD5op/U4yfb32pE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NipUijPRzMEXBv+toc/i/xGTWMG4nRO5cY/gkX8QJVLtC37FkXEvMLcGUvabySl87uzx6qSJbC3eLuAqxuNGJQtUfdwFdfa4VmSNu/zcphYCu0ptQt3Ma1G+8hUAsVTrzcbEAoQrlp5/NDSYeEhEsGtZuznK8Z7pZSAn6Y5JSiM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dsGypjP3; arc=none smtp.client-ip=74.125.82.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dsGypjP3" Received: by mail-dy1-f173.google.com with SMTP id 5a478bee46e88-2ba9c484e5eso8307055eec.1 for ; Thu, 05 Mar 2026 23:17:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772781465; x=1773386265; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=aqNJET3JHiOSv7w1wEksf8FrxnvvCl8V1ojVMOruH/g=; b=dsGypjP3QXKKklE0czRywrqCKrwnLvsTHXahA3rpb2RzerftnsTziSJzByZIRYYgMx kqO/Eq18NIZoMUvm8M/E3ZD3/tp81j/RJ6jx0+6lZDuKDWl0F1Kbx6t7BF9x7cG2mOy5 HuiRBwUknVC3T9oyVDPytUoi1Fhp92gllPXo3X0v9PCb5ivPzqWCaebYAL1NNRe158A/ 6v02HnmQDza2Y72Pl9OAtfII57vAv/cM9e4O6WLznwqsjS7eZs+5xCuK0adc2tVjliQw 5aMJHPUWAQ+3a4l5GDrOGnMBRPUwHTkLrGjBw+nweda7fHyZ5V9/K1pa8CCC4qSAkD1l 2VgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772781465; x=1773386265; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=aqNJET3JHiOSv7w1wEksf8FrxnvvCl8V1ojVMOruH/g=; b=fplO/TBAuG+NAyZHsgWiuP670kMiL3u2gfWQ5xB6vKLcGV+BcpTZvXYWIXVluLv8yr t1kGKTh9nc83DdRzKtU+ZUgEKatXhATLqAKbhqQhRGPr/3sTvVyt24SI3Gz4/NLAI53n rJp6bOijtdLxhssN6Yt0UOllsLpUEa1bLo/GHFgJmnAibWjswpbHsomRK1KyhqIp7fxY YfIrTrX4c36wu+TEc0Lz0tuu511Dnt1H0tZhgrHjZGoqgAjMRhdE7y0HoHFSijRuW4aV iZMt1gR0mFVcQ+UGU+fUIXFwSRW7e/VgeDk82sC5R3J0BvnzAhGm+mv94xpUEuQ4P4Y1 SjuQ== X-Forwarded-Encrypted: i=1; AJvYcCXCOhThMOShlVqqQQ3/aHdohI2h/WGL4C2a4q5mwT1N5UpkpeDKS4VeI7BNR9f92DJzN92RctVLddQu0YM=@vger.kernel.org X-Gm-Message-State: AOJu0YzKTj2+Fdeg+35yai353gDY1TfDvHZ3L6/zmjcm23a2McTr7qo3 7Dxn/dZFEa3WfWvKbB7yf2N01OC3ZMzN1KMDpFGUt0f5Jx0MNDvlfc48 X-Gm-Gg: ATEYQzyENnDU36p7cpmb2rH04LqtPdftlfcnQBS4vEch1TRJALUoZRJAaexx+CBdpSs XdcXet/cc7qT72QaL6v+CKB4R802DhLxECm5LWY0/gP1QvpUbEwQnNSTCXMgZLJmBlgkk2y/Qdu OaVZQXQ7AXeoVwXzvdr2wIq542vEJMLf9GtYODoAVDXwj0z+5T+ZynXLSRirpLShtuMwFMvYyRn op5Hr7n9JQCPmb0mrXP6FmKKuisg4qbIRaoKMt4VujiN8ufnfOSdSiSrksgTcgQfeznlKIMaVMn Ve7xNqEVtOMnRYUmGmtGjnplqPdJD1ELlSAM7wdlZUX6uIt1Ul1TGOvVC9Zr/Be3BAVHGKYucHM d1MSshvTdHDLXyPyJOZEOSh8gx69FE06q31YvDZrKRspvqf2Q96KP6ncrRZLpNwvFRVHQ3FbTG7 tVCeOs2jr+rB1+J1mqZMUKSS3nU8vfSbof5PgAqWWEZEV0WH/x X-Received: by 2002:a05:7300:fd18:b0:2bd:afdb:72d7 with SMTP id 5a478bee46e88-2be4dfd0250mr383385eec.3.1772781465467; Thu, 05 Mar 2026 23:17:45 -0800 (PST) Received: from [192.168.1.187] ([76.50.196.152]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2be4f96f25bsm545713eec.28.2026.03.05.23.17.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 23:17:44 -0800 (PST) From: Michael Harris Date: Thu, 05 Mar 2026 23:16:58 -0800 Subject: [PATCH v2 1/4] staging: iio: adt7316: refactor temperature calculation logic 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: quoted-printable Message-Id: <20260305-adt7316-correct-macros-v2-1-3702e3841c42@gmail.com> References: <20260305-adt7316-correct-macros-v2-0-3702e3841c42@gmail.com> In-Reply-To: <20260305-adt7316-correct-macros-v2-0-3702e3841c42@gmail.com> To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Greg Kroah-Hartman Cc: David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , linux-iio@vger.kernel.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Michael Harris X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772781459; l=2203; i=michaelharriscode@gmail.com; s=20260130; h=from:subject:message-id; bh=UFx1zfBhIFtNwm637rBCqONNfHs5cD5op/U4yfb32pE=; b=/zE4P8C9urMQSsiLpDt9DJmmjAFyaqo+W+Vzn8yMfxHzEGmo85jyHsgb/4+BEnbXPF+tkIaTF VqPy87qIaUdANTJHhrVhhYyn6/kiO7WuhCTThSg5EWEt9cdTvCSoYhE X-Developer-Key: i=michaelharriscode@gmail.com; a=ed25519; pk=td/zQD3XANAhdG3Kf3mSetXiynk1Ql0eM4s0+eks5DU= Replace the manual sign manipulation with sign_extend32() and change the affected variable from u16 to s32 to properly handle negative values. Resolve a logic error where the sign bit was being checked at bit 10 instead of bit 9 for a 10-bit value. Convert the data variable to be in centidegrees celsius (0.25 C per bit) so we can use simple division and modulo for sysfs_emit() instead of the convoluted bit shifting and masking. Signed-off-by: Michael Harris --- drivers/staging/iio/addac/adt7316.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/staging/iio/addac/adt7316.c b/drivers/staging/iio/adda= c/adt7316.c index 8a9a8262c2bec34f3c3e79d8174f492b9a23fb70..1412808c50c76a68b5771a25c46= dd3308c5cbcdb 100644 --- a/drivers/staging/iio/addac/adt7316.c +++ b/drivers/staging/iio/addac/adt7316.c @@ -155,9 +155,12 @@ * ADT7316 value masks */ #define ADT7316_VALUE_MASK 0xfff -#define ADT7316_T_VALUE_SIGN 0x400 #define ADT7316_T_VALUE_FLOAT_OFFSET 2 -#define ADT7316_T_VALUE_FLOAT_MASK 0x2 + +/* + * ADT7316 hardware constants + */ +#define ADT7316_TEMP_CENTIDEG_PER_BIT 25 =20 /* * Chip ID @@ -1090,9 +1093,8 @@ static IIO_DEVICE_ATTR(DAC_internal_Vref, 0644, static ssize_t adt7316_show_ad(struct adt7316_chip_info *chip, int channel, char *buf) { - u16 data; + s32 data; u8 msb, lsb; - char sign =3D ' '; int ret; =20 if ((chip->config2 & ADT7316_AD_SINGLE_CH_MODE) && @@ -1151,15 +1153,13 @@ static ssize_t adt7316_show_ad(struct adt7316_chip_= info *chip, break; } =20 - if (data & ADT7316_T_VALUE_SIGN) { - /* convert supplement to positive value */ - data =3D (ADT7316_T_VALUE_SIGN << 1) - data; - sign =3D '-'; - } + data =3D sign_extend32(data, 9); + data *=3D ADT7316_TEMP_CENTIDEG_PER_BIT; =20 - return sysfs_emit(buf, "%c%d.%.2d\n", sign, - (data >> ADT7316_T_VALUE_FLOAT_OFFSET), - (data & ADT7316_T_VALUE_FLOAT_MASK) * 25); + return sysfs_emit(buf, "%s%d.%02u\n", + (data < 0 ? "-" : ""), + abs(data / 100), + abs(data % 100)); } =20 static ssize_t adt7316_show_VDD(struct device *dev, --=20 2.53.0