From nobody Sat Feb 7 09:14:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 ED54936F417; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; cv=none; b=e7fhccNLZV/tdkjGHtWaT4O1SuhYyDb4CuVLMi3+aryuMrEE2XFCniUxlttxuScmK6jI2eXihcLqeJ7EwxHhqZ798xrrVU881pVWUbIO5h/v3XRBcB5bg8YTT6frnANSYLrhaHnQ3DoSdmCBmeP7byElvSCY+zuOXTiyxycLHc8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; c=relaxed/simple; bh=3KqnVWEI82PftnocqjwUUeyuXpn7Shz/eThc3+dzqD8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=U6cpHOmrVdPJnPSsT3hmDbNEO/g1CijxsWUPpSkf1oEV2S9tG6inYyNQ4DcAYhKXahMufA0zYqVi0v2S/NDY1BCHUsJDTHcFPp2eQix15TkSizQZFWyOuvvc2ZPjUmyQxEwVoZFP9ZsdxvGUENQKkYjaBNo4pHg+arl9I/4DXlU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rESTrm2D; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rESTrm2D" Received: by smtp.kernel.org (Postfix) with ESMTPS id A3916C4CEF7; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769622744; bh=3KqnVWEI82PftnocqjwUUeyuXpn7Shz/eThc3+dzqD8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=rESTrm2DV+fAKvxi4NNmdZVIgEo4FkZLYyAxEhYgOovTCuSChTGAtkwTAKaGJmtBi xRBPPL5cnXBrplBHbE3/H0gPnHpCz0dxcr9iCwlUAJeLyPEZ3mURurEoMMYS4v4ID9 +rlyEDxQTVDZSNbwnDgZqZ7l4wzzhlT5Fh7mlsLRcK4sE5q3OV72PB5x7iquIbJwKn 9+Alsh6+YVVxvx64CQy76PEPJ0gHPSbsCXD3OPz1vh0SK6YDYBqVB7n1x/vH1DJjhE 5EYhjJNxosW+95i/CQkVhKRFREl28o9ctcq/w9wMbnTIadb2wtheJczSAwQWbLiwcu nrDnlZdLbCkhQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95197D46BE5; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) From: Shrikant Raskar via B4 Relay Date: Wed, 28 Jan 2026 23:21:48 +0530 Subject: [PATCH v8 1/6] iio: proximity: rfd77402: Reorder header includes 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: <20260128-b4-rfd77402_v5-v8-1-36388fe7b95e@gmail.com> References: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> In-Reply-To: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: skhan@linuxfoundation.org, david.hunter.linux@gmail.com, raskar.shree97@gmail.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1769622737; l=791; i=raskar.shree97@gmail.com; s=20260101; h=from:subject:message-id; bh=S7gtwc1iB+CgJhiOpqTwX/EfJ8gcFTrqsLvOeW1favY=; b=5+9oM1HKUPIWWQ+c8bW2+UaRY9Rium91H5ClqM3y9LXaggjnZeedEeeeGMkr7owMGHfWvtDUQ WgxHipgqSYJBjnyY9IhderAkmgNQfgxYNACIFL8Yj6ToyzQTxQ8xlEY X-Developer-Key: i=raskar.shree97@gmail.com; a=ed25519; pk=4m2wXDvY0vlXefvRRzawNcNAif88Cy4XvbLkU6iMG/Y= X-Endpoint-Received: by B4 Relay for raskar.shree97@gmail.com/20260101 with auth_id=589 X-Original-From: Shrikant Raskar Reply-To: raskar.shree97@gmail.com From: Shrikant Raskar Reorder header includes to follow kernel include ordering conventions. Reviewed-by: Andy Shevchenko Signed-off-by: Shrikant Raskar --- drivers/iio/proximity/rfd77402.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/iio/proximity/rfd77402.c b/drivers/iio/proximity/rfd77= 402.c index aff60a3c1a6f..69cc1505b964 100644 --- a/drivers/iio/proximity/rfd77402.c +++ b/drivers/iio/proximity/rfd77402.c @@ -10,9 +10,9 @@ * https://media.digikey.com/pdf/Data%20Sheets/RF%20Digital%20PDFs/RFD7740= 2.pdf */ =20 -#include -#include #include +#include +#include =20 #include =20 --=20 2.43.0 From nobody Sat Feb 7 09:14:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 ED65C36F41D; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; cv=none; b=BS/aJ5Cd2S83BIKlZ5cRQOw/xaXW8+6CqgZAxwjKkKfaHvzRg9nTTcpfpoJareoFlHt5la97nMBq4t8KfF9aFibM5DcC16DSMjhhACed6ry2Wpq/7WIaJELGooYwo1594YW3SFwDMmCg6niP7hN+MqM49kYtyheOJZe4VVqiwDQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; c=relaxed/simple; bh=xEfhX36soxEfZtpMB211ApIw/r9ApketMd38E9CFb4E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CRus+JLOV4ygKOQIsIev+oqFzXJsTiRLEO4URmlxKPfSK2KjdQHR6WMK69hLBvmTQs1IfdXjR1TCOS1g7Vo5x7JzpoDOe0rcdupvjo6nQ29wY6eNi7J1SQc5XVaHV0tnyf+ODuUkfkBM0c/aCzUYz/FG3wKrW8f3zxJUD4KsPvE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ef9f7fjs; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ef9f7fjs" Received: by smtp.kernel.org (Postfix) with ESMTPS id AFB7BC16AAE; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769622744; bh=xEfhX36soxEfZtpMB211ApIw/r9ApketMd38E9CFb4E=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=ef9f7fjsk7nbsc7G0Wan5IPGOyp1fLT4pf2C2GF98J6S20x5HqoRl66YIpAMecMTE ASPWDO71F7WdCgg7FRU7/QFKCklF900ZYC2nDtu18z1VSCRYP/2SxVx17rhrzZKp12 QyvucNUm9qTz95rPOMu6Ooh+gzQxPENwcNymsCzgf/PnKMND5QoSFuT6+TeP+T35iB nFDfh29sBpoIwVlNj9fP4+X1CWrAqvc63o4GSM6o3YKIv3l2TD8ri66vJW41EVgQ4R ndtI953GV0CDwcNdeabodHQSNZTfmiH6WLkPaCTKXi9QDHRv3swUBX7O4Sl9lbp9ts VAZ8fTfNQmfkg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2AE7D46BE9; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) From: Shrikant Raskar via B4 Relay Date: Wed, 28 Jan 2026 23:21:49 +0530 Subject: [PATCH v8 2/6] iio: proximity: rfd77402: Align polling timeout with datasheet 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: <20260128-b4-rfd77402_v5-v8-2-36388fe7b95e@gmail.com> References: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> In-Reply-To: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: skhan@linuxfoundation.org, david.hunter.linux@gmail.com, raskar.shree97@gmail.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1769622737; l=817; i=raskar.shree97@gmail.com; s=20260101; h=from:subject:message-id; bh=EszL1g394dGoeHz3qJUHUL8JHDZu8HglWxCDO1QGkP4=; b=23HwLZpgAD8vtUAJKSQUEmxbI658qK90g0buVS+GDtugSwX4KRnUAj5g4iipyedgY0wORgj82 IVIg6bnkjdQBSzZiC6jApSKfVewm3iEKWkBD2DSt7Abu2vgmr5D3s1/ X-Developer-Key: i=raskar.shree97@gmail.com; a=ed25519; pk=4m2wXDvY0vlXefvRRzawNcNAif88Cy4XvbLkU6iMG/Y= X-Endpoint-Received: by B4 Relay for raskar.shree97@gmail.com/20260101 with auth_id=589 X-Original-From: Shrikant Raskar Reply-To: raskar.shree97@gmail.com From: Shrikant Raskar Update the polling delay to use a 100 ms timeout, as specified in the RFD77402 datasheet. Signed-off-by: Shrikant Raskar Reviewed-by: Andy Shevchenko --- drivers/iio/proximity/rfd77402.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iio/proximity/rfd77402.c b/drivers/iio/proximity/rfd77= 402.c index 69cc1505b964..8f7debf0e61f 100644 --- a/drivers/iio/proximity/rfd77402.c +++ b/drivers/iio/proximity/rfd77402.c @@ -132,7 +132,11 @@ static int rfd77402_measure(struct i2c_client *client) goto err; if (ret & RFD77402_ICSR_RESULT) break; - msleep(20); + /* + * As per RFD77402 datasheet section '3.1.1 Single Measure', + * the suggested timeout value for single measure is 100ms. + */ + msleep(10); } =20 if (tries < 0) { --=20 2.43.0 From nobody Sat Feb 7 09:14:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 ED5D336F419; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; cv=none; b=ABjSYZDBsfzBnxqDa2p6RCvNpj6wEsRXQqarCs51iS3sJQcWAsPBMsZmfGRvUZLyxRddEL2XvRXhcB5deQCEl7VAFGIk1ebbBMuUSjjzklFnPiJo0sqtXg4blhWU1lSeOL+LVDZcwYv+//3FAIvfqPctaQiO2FvpwjO6etweXIc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; c=relaxed/simple; bh=4tJj96U9qFSrGieIw/gjdBhix/rTIvNHOgPYwUx+IOg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OZ+un1iFTMdPJkIF/BpKh2eK5Eas3g8b6XP4zEoLaAVl+7HO4a1JiBD/zosNBnDb41WnCSvJ+Mpcguf0OcKM54sJ3Auc4mkhNLtoK0Fmt+iYS+qoxrflh9HIVGHEL3cco6rjMJMKG0RiX1jK/wS/rznRc5f0T7+FFPyBjg+5C5c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ewkSXla1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ewkSXla1" Received: by smtp.kernel.org (Postfix) with ESMTPS id BCB0BC2BC87; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769622744; bh=4tJj96U9qFSrGieIw/gjdBhix/rTIvNHOgPYwUx+IOg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=ewkSXla18wECa4OA+U/1NaLpMhRaiqMr8d8ck8RzFiBV552htWUNTvfSSMNd55jdC g+qNzUgothLUkWG1K1o9BQG/c3AYBCSBhShL8n9rgpgxTjIcYck174rWnzCIcCBGN/ 7DG2SuZyVkI3tcuAlU8rYLilJeEbDVnSWpduhdm0ifGAVTHcYQZJvoZ89GX49iO/NC rCxPUMT4+rJb8sIo9rInRLNzMF22zKfB62CPNP1twyXzVtDv1wmdemXvOiIjXM/ziF frOwyW1ax06ZZefHAcqvAYWIBtxY/dSfw8C5egrUnSxAzq3Xx/0DJtAKi3PmATST8C 3wO7MguBBNnNg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B0CDBD46BE0; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) From: Shrikant Raskar via B4 Relay Date: Wed, 28 Jan 2026 23:21:50 +0530 Subject: [PATCH v8 3/6] iio: proximity: rfd77402: Use kernel helper for result polling 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: <20260128-b4-rfd77402_v5-v8-3-36388fe7b95e@gmail.com> References: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> In-Reply-To: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: skhan@linuxfoundation.org, david.hunter.linux@gmail.com, raskar.shree97@gmail.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1769622737; l=2657; i=raskar.shree97@gmail.com; s=20260101; h=from:subject:message-id; bh=6OtSw9hct5Sdy2Egtuw6lfbO+mzxyEk1Ae48lz1rrqc=; b=/kOg1WvB1nYjyi2vYeez8dj4ndGboMLuuO8yhUVNAsN2r7KZ0wBJmzCAqywdKXPda2/q79TqH q+wBKKgUgDwDMCA9tBCjgTtshXpuzYmUPmyry7sg3QudKApy9f4ZhAl X-Developer-Key: i=raskar.shree97@gmail.com; a=ed25519; pk=4m2wXDvY0vlXefvRRzawNcNAif88Cy4XvbLkU6iMG/Y= X-Endpoint-Received: by B4 Relay for raskar.shree97@gmail.com/20260101 with auth_id=589 X-Original-From: Shrikant Raskar Reply-To: raskar.shree97@gmail.com From: Shrikant Raskar Replace the manually written polling loop with read_poll_timeout(), the kernel's standard helper for waiting on hardware status.This makes the code easier to read. Move the polling logic into a dedicated helper function, as it will be reused by future updates. Reviewed-by: Andy Shevchenko Signed-off-by: Shrikant Raskar --- drivers/iio/proximity/rfd77402.c | 42 ++++++++++++++++++++++--------------= ---- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/drivers/iio/proximity/rfd77402.c b/drivers/iio/proximity/rfd77= 402.c index 8f7debf0e61f..6b23fb3bfe1d 100644 --- a/drivers/iio/proximity/rfd77402.c +++ b/drivers/iio/proximity/rfd77402.c @@ -12,6 +12,7 @@ =20 #include #include +#include #include =20 #include @@ -110,10 +111,27 @@ static int rfd77402_set_state(struct i2c_client *clie= nt, u8 state, u16 check) return 0; } =20 -static int rfd77402_measure(struct i2c_client *client) +static int rfd77402_wait_for_result(struct rfd77402_data *data) { + struct i2c_client *client =3D data->client; + int val, ret; + + ret =3D read_poll_timeout(i2c_smbus_read_byte_data, val, + (val < 0) || (val & RFD77402_ICSR_RESULT), + 10 * USEC_PER_MSEC, + 10 * 10 * USEC_PER_MSEC, + false, + client, RFD77402_ICSR); + if (val < 0) + return val; + + return ret; +} + +static int rfd77402_measure(struct rfd77402_data *data) +{ + struct i2c_client *client =3D data->client; int ret; - int tries =3D 10; =20 ret =3D rfd77402_set_state(client, RFD77402_CMD_MCPU_ON, RFD77402_STATUS_MCPU_ON); @@ -126,23 +144,9 @@ static int rfd77402_measure(struct i2c_client *client) if (ret < 0) goto err; =20 - while (tries-- > 0) { - ret =3D i2c_smbus_read_byte_data(client, RFD77402_ICSR); - if (ret < 0) - goto err; - if (ret & RFD77402_ICSR_RESULT) - break; - /* - * As per RFD77402 datasheet section '3.1.1 Single Measure', - * the suggested timeout value for single measure is 100ms. - */ - msleep(10); - } - - if (tries < 0) { - ret =3D -ETIMEDOUT; + ret =3D rfd77402_wait_for_result(data); + if (ret < 0) goto err; - } =20 ret =3D i2c_smbus_read_word_data(client, RFD77402_RESULT_R); if (ret < 0) @@ -172,7 +176,7 @@ static int rfd77402_read_raw(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_RAW: mutex_lock(&data->lock); - ret =3D rfd77402_measure(data->client); + ret =3D rfd77402_measure(data); mutex_unlock(&data->lock); if (ret < 0) return ret; --=20 2.43.0 From nobody Sat Feb 7 09:14:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 ED45136F414; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; cv=none; b=ZR7tDSG7iGzCX694CLtRJlQm3g7SE3G7JZD6rK5mJsExK00REHXlpFmkXNpefNaAO1dus0FcmdMz87Jy6U4+jFBaQRHDKpKg3tI5l9mZ175h+6JF+XkwMfO2Tuxk0QJocjjKad1yodOV0bfdgVwYdewS+aQ9q3tDgJjP+HQDk1k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; c=relaxed/simple; bh=9zO5JxPpwU9Bq+Dt2g2d2UItDDZIf0gZvWrs+ZUdDhw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Apc/NqeEotobmGrUn4gPvwPnZjJ4DObtHMfCe6p7P02XK3b8D0hlT7043P4CcPD6ENiWqyLZhm4koQ9OMLwnhnuKnF12TVr5gg8V9xHf+Y248UQ0KPUK2Nc83NNVtOxRzU5ciuLqtEVv1dR3211JUHn0NLpgj0eVVGEKdze99/g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hiykvDNx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hiykvDNx" Received: by smtp.kernel.org (Postfix) with ESMTPS id C412BC116C6; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769622744; bh=9zO5JxPpwU9Bq+Dt2g2d2UItDDZIf0gZvWrs+ZUdDhw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=hiykvDNxldM+g5njP6DmSkqdPxWIjzhfumJ+PelHlSQV+qDhVJzG9TX3vEA5nLWLN EXZDCm1GcYXrBo+6Ceu9p7sgG+eXYRkifHdxT0WvtcnyLHsTvUhLWDfwxPjG+pNoLE ylHX1Ub0QRuXGLAyj2er6Yrpkyw3h+nGle2ZnR+OREZSyE25//oh5xeecLxHeTYuki IdAa14y2PgqsW3QO5RgpoAMjkGZBE58R90v9HoD4mraWrWMUFV/5eejAmZo9bbk8r7 +z3TeY52Ja8boouSqkp+AfAH0ZKUpH3phVSrldAYndeNmewXqTi7pya7GU2/UHWGcs GTBr+Jk42wKHw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF003D46BE7; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) From: Shrikant Raskar via B4 Relay Date: Wed, 28 Jan 2026 23:21:51 +0530 Subject: [PATCH v8 4/6] iio: proximity: rfd77402: Use devm-managed mutex initialization 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: <20260128-b4-rfd77402_v5-v8-4-36388fe7b95e@gmail.com> References: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> In-Reply-To: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: skhan@linuxfoundation.org, david.hunter.linux@gmail.com, raskar.shree97@gmail.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1769622737; l=895; i=raskar.shree97@gmail.com; s=20260101; h=from:subject:message-id; bh=O017TADCPm7We8ptZ3sfVe3HpHsX8WgePZRWSMO2cOY=; b=BDB746hsNTKvMaKUHh50R26llf1uiTkn9d3kQXQVISuK+YL/nK+1gaTOcgE7Xioh52bSobqXq +/vhtIjm+hXDi5hfLaBA9rVRArNGU8oTE/vrWweYmm5uO08FmYc9pku X-Developer-Key: i=raskar.shree97@gmail.com; a=ed25519; pk=4m2wXDvY0vlXefvRRzawNcNAif88Cy4XvbLkU6iMG/Y= X-Endpoint-Received: by B4 Relay for raskar.shree97@gmail.com/20260101 with auth_id=589 X-Original-From: Shrikant Raskar Reply-To: raskar.shree97@gmail.com From: Shrikant Raskar Use devm_mutex_init() to tie the mutex lifetime to the device and improve debugging when CONFIG_DEBUG_MUTEXES is enabled. Reviewed-by: Andy Shevchenko Signed-off-by: Shrikant Raskar --- drivers/iio/proximity/rfd77402.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/iio/proximity/rfd77402.c b/drivers/iio/proximity/rfd77= 402.c index 6b23fb3bfe1d..a374a7389c33 100644 --- a/drivers/iio/proximity/rfd77402.c +++ b/drivers/iio/proximity/rfd77402.c @@ -283,7 +283,10 @@ static int rfd77402_probe(struct i2c_client *client) =20 data =3D iio_priv(indio_dev); data->client =3D client; - mutex_init(&data->lock); + + ret =3D devm_mutex_init(&client->dev, &data->lock); + if (ret) + return ret; =20 indio_dev->info =3D &rfd77402_info; indio_dev->channels =3D rfd77402_channels; --=20 2.43.0 From nobody Sat Feb 7 09:14:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 12B5536F427; Wed, 28 Jan 2026 17:52:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; cv=none; b=b5+WTOB+yg14RtuyujXtOw5ie9zeTnfy12zeiS4IqRmy8X2dVHX26oxvHwQ6O3yISCAzVg2hef1oaRbrLU6p1x8jSXabEHH1WvlnQ0pBKh8nl2+KqkFwxJorAfwf311XCp+CRkbdid3dCbScLtgz1TXtKatL0zXiWHYMxv3ZUc4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; c=relaxed/simple; bh=4PtBuP67jDG6cx0eqtotDQ2qzFrmXgxQTJ8ZGnhryIs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FtVv+nGxOwDDzDd0e1sSXek7gDSV/KQHkXwYNo5KwAifaFvFrKKQP3TsSgAqz5AoACSDF05pagAwEIlmfvlHdIdQlTnWjQR4q5niELuXpZNyKl0RdJ8Nj2yJg8q5g7/h7azuVKsHonvdyOV7yWHT9Lapnqu4X3SgXBi/oaVeoFY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=kfLbfdcc; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="kfLbfdcc" Received: by smtp.kernel.org (Postfix) with ESMTPS id D5589C2BC9E; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769622744; bh=4PtBuP67jDG6cx0eqtotDQ2qzFrmXgxQTJ8ZGnhryIs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=kfLbfdccqAKXqkEirKyJb9RvZEo2QkrOuftEX5DU0PuBOkhugGK+7g9dvuRTctB2I aTuYoksZLKpz5sMOtIFqTIX3/1sHbfypz8Rz67Xw89uw476OwUnA1Cj72rX5GqJsOg 0YAhy9VHv1Jx9r3RkEDWcr1iWBK61MPkujpqTjEwaIWRhUdJEQxMAgblmyCXwetwTP g0F55rJQLEVq1IAtZMsV+nn0y3aR6xAJGBsLYjUP9R1mx9zMUCEMftpwD6BU3RvdO8 /C80jQCcMmUb1wnhK6vhufpEgZ7Nt1s5RgIdabadgX5TNKcvfu/d9vez4pOFcZKOcD vlvvSAJ6gugyA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id CCE0FD46BEC; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) From: Shrikant Raskar via B4 Relay Date: Wed, 28 Jan 2026 23:21:52 +0530 Subject: [PATCH v8 5/6] iio: proximity: rfd77402: Document device private data structure 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: <20260128-b4-rfd77402_v5-v8-5-36388fe7b95e@gmail.com> References: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> In-Reply-To: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: skhan@linuxfoundation.org, david.hunter.linux@gmail.com, raskar.shree97@gmail.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1769622737; l=906; i=raskar.shree97@gmail.com; s=20260101; h=from:subject:message-id; bh=x84MD8DpzwahLxBpvUlfo99iVRVFury7i1rHYa+sduo=; b=P/tqTbXhP+XXS2nSgtTJISHiwU1xgrW9Kn9FpKcfuEKETylRr6xgxYAl5T1slvCR+yhAwfknn JbhhuS0SQjcCixop4SDsz6XXHdydfrSefC+K5oslLGz+2D055NCCTGp X-Developer-Key: i=raskar.shree97@gmail.com; a=ed25519; pk=4m2wXDvY0vlXefvRRzawNcNAif88Cy4XvbLkU6iMG/Y= X-Endpoint-Received: by B4 Relay for raskar.shree97@gmail.com/20260101 with auth_id=589 X-Original-From: Shrikant Raskar Reply-To: raskar.shree97@gmail.com From: Shrikant Raskar Add kernel-doc style comments for struct rfd77402_data to describe the purpose of each member. Reviewed-by: Andy Shevchenko Signed-off-by: Shrikant Raskar --- drivers/iio/proximity/rfd77402.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iio/proximity/rfd77402.c b/drivers/iio/proximity/rfd77= 402.c index a374a7389c33..c29ae9af4a90 100644 --- a/drivers/iio/proximity/rfd77402.c +++ b/drivers/iio/proximity/rfd77402.c @@ -77,9 +77,13 @@ static const struct { {RFD77402_HFCFG_3, 0x45d4}, }; =20 +/** + * struct rfd77402_data - device-specific data for the RFD77402 sensor + * @client: I2C client handle + * @lock: mutex to serialize sensor reads + */ struct rfd77402_data { struct i2c_client *client; - /* Serialize reads from the sensor */ struct mutex lock; }; =20 --=20 2.43.0 From nobody Sat Feb 7 09:14:49 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 19D4036F431; Wed, 28 Jan 2026 17:52:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; cv=none; b=PygGULf5CDPQjqarf0JLX2CO+9Pz2C3b0KaXdqZIP8w9bVUpJa4wMVoXw3/vpiSEp9qltciS6nHtH772knXsexO+Bh8etQdBx2JwmXbDbOS3xbMcXD0ONpvG63AZ6HjmCaisPJHeB3qw9Z/2j8vEvIw5DEbb/iXWWWtJe8+LFwQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769622745; c=relaxed/simple; bh=787cE58O/nt6Arb6ZSRgsfawoRYh4rc97GC7I7VPsH8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NpCEFa0HlYG9B0ASSQl3j2bRiglWFSveAQDtEOPnf+XpfUTZalyRLt1u0Ips1jcLuyf6vs0299mj04gx1eNBrSw/lfn7sZjUdv5oL+eFAYOuhJqayYtrQ5uh3+x3POUCWPNNyQmeM0KUGQid9CbxYs+EIsegxOpqsLKTzho/Iu4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Kt2CEDRZ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Kt2CEDRZ" Received: by smtp.kernel.org (Postfix) with ESMTPS id E2A6BC4AF0D; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1769622744; bh=787cE58O/nt6Arb6ZSRgsfawoRYh4rc97GC7I7VPsH8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=Kt2CEDRZXKObmMujKGr8jaRk+6fOpYcUBm8Q8bkHatXsDcrO0MRCC1bI1gaGkt17o bSk4wAZ1EaegZCYrxyBTDLJ/g3UA9pBOgnDT+jP/MZb8V5ytC0WenpQUOCjyTEowPJ 2+hZHSJ093lliblN6qzL+/4BseJZzlFPAVHRw2cW4/ZwNOA6depAgaEoyLv9GJDSaf do5MLbdVZLHXn417pLm3qpM0RGUWbxgRBVMswsO4rCNErkyXYpyZCgKU3+O/eKFrdC DAg4nViUog0f9E00+8O9LPahFfyG/AB0xVKwTEUuQokkEQ4/6A4ERgPkUQZf5zdUar pZNwHN6TNiP0Q== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id DB771D46BE5; Wed, 28 Jan 2026 17:52:24 +0000 (UTC) From: Shrikant Raskar via B4 Relay Date: Wed, 28 Jan 2026 23:21:53 +0530 Subject: [PATCH v8 6/6] iio: proximity: rfd77402: Add interrupt handling support 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: <20260128-b4-rfd77402_v5-v8-6-36388fe7b95e@gmail.com> References: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> In-Reply-To: <20260128-b4-rfd77402_v5-v8-0-36388fe7b95e@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: skhan@linuxfoundation.org, david.hunter.linux@gmail.com, raskar.shree97@gmail.com, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Andy Shevchenko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1769622737; l=6586; i=raskar.shree97@gmail.com; s=20260101; h=from:subject:message-id; bh=0mPo2vpMXC9Q/oHUYarDSZZ9QwrfPF9U5iDSrkxtkHU=; b=ld4UCe28WeWnd7MCTPvzD+ensV5t/yTsjl31sV4Z0gtcFPgKHe35bATrjUIL8JbsV096znkl9 Ho3P7IUoeM3AkazO1Ew1Yu5pW/Wb98VF6YxcWdH65GR8Gts6nxRmhd7 X-Developer-Key: i=raskar.shree97@gmail.com; a=ed25519; pk=4m2wXDvY0vlXefvRRzawNcNAif88Cy4XvbLkU6iMG/Y= X-Endpoint-Received: by B4 Relay for raskar.shree97@gmail.com/20260101 with auth_id=589 X-Original-From: Shrikant Raskar Reply-To: raskar.shree97@gmail.com From: Shrikant Raskar Add interrupt handling support to enable event-driven data acquisition instead of continuous polling. This improves responsiveness, reduces CPU overhead, and supports low-power operation by allowing the system to remain idle until an interrupt occurs. Reviewed-by: Andy Shevchenko Signed-off-by: Shrikant Raskar --- drivers/iio/proximity/rfd77402.c | 121 +++++++++++++++++++++++++++++++++++= +--- 1 file changed, 113 insertions(+), 8 deletions(-) diff --git a/drivers/iio/proximity/rfd77402.c b/drivers/iio/proximity/rfd77= 402.c index c29ae9af4a90..4d6b63f311a7 100644 --- a/drivers/iio/proximity/rfd77402.c +++ b/drivers/iio/proximity/rfd77402.c @@ -6,20 +6,28 @@ * * 7-bit I2C slave address 0x4c * - * TODO: interrupt * https://media.digikey.com/pdf/Data%20Sheets/RF%20Digital%20PDFs/RFD7740= 2.pdf */ =20 +#include +#include #include +#include +#include #include +#include #include +#include #include +#include =20 #include =20 #define RFD77402_DRV_NAME "rfd77402" =20 #define RFD77402_ICSR 0x00 /* Interrupt Control Status Register */ +#define RFD77402_ICSR_CLR_CFG BIT(0) +#define RFD77402_ICSR_CLR_TYPE BIT(1) #define RFD77402_ICSR_INT_MODE BIT(2) #define RFD77402_ICSR_INT_POL BIT(3) #define RFD77402_ICSR_RESULT BIT(4) @@ -27,6 +35,12 @@ #define RFD77402_ICSR_H2M_MSG BIT(6) #define RFD77402_ICSR_RESET BIT(7) =20 +#define RFD77402_IER 0x02 +#define RFD77402_IER_RESULT BIT(0) +#define RFD77402_IER_M2H_MSG BIT(1) +#define RFD77402_IER_H2M_MSG BIT(2) +#define RFD77402_IER_RESET BIT(3) + #define RFD77402_CMD_R 0x04 #define RFD77402_CMD_SINGLE 0x01 #define RFD77402_CMD_STANDBY 0x10 @@ -81,10 +95,14 @@ static const struct { * struct rfd77402_data - device-specific data for the RFD77402 sensor * @client: I2C client handle * @lock: mutex to serialize sensor reads + * @completion: completion used for interrupt-driven measurements + * @irq_en: indicates whether interrupt mode is enabled */ struct rfd77402_data { struct i2c_client *client; struct mutex lock; + struct completion completion; + bool irq_en; }; =20 static const struct iio_chan_spec rfd77402_channels[] =3D { @@ -95,6 +113,41 @@ static const struct iio_chan_spec rfd77402_channels[] = =3D { }, }; =20 +static irqreturn_t rfd77402_interrupt_handler(int irq, void *pdata) +{ + struct rfd77402_data *data =3D pdata; + int ret; + + ret =3D i2c_smbus_read_byte_data(data->client, RFD77402_ICSR); + if (ret < 0) + return IRQ_NONE; + + /* Check if the interrupt is from our device */ + if (!(ret & RFD77402_ICSR_RESULT)) + return IRQ_NONE; + + /* Signal completion of measurement */ + complete(&data->completion); + return IRQ_HANDLED; +} + +static int rfd77402_wait_for_irq(struct rfd77402_data *data) +{ + int ret; + + /* + * According to RFD77402 Datasheet v1.8, + * Section 3.1.1 "Single Measure" (Figure: Single Measure Flow Chart), + * the suggested timeout for single measure is 100 ms. + */ + ret =3D wait_for_completion_timeout(&data->completion, + msecs_to_jiffies(100)); + if (ret =3D=3D 0) + return -ETIMEDOUT; + + return 0; +} + static int rfd77402_set_state(struct i2c_client *client, u8 state, u16 che= ck) { int ret; @@ -120,6 +173,11 @@ static int rfd77402_wait_for_result(struct rfd77402_da= ta *data) struct i2c_client *client =3D data->client; int val, ret; =20 + if (data->irq_en) { + reinit_completion(&data->completion); + return rfd77402_wait_for_irq(data); + } + ret =3D read_poll_timeout(i2c_smbus_read_byte_data, val, (val < 0) || (val & RFD77402_ICSR_RESULT), 10 * USEC_PER_MSEC, @@ -200,8 +258,20 @@ static const struct iio_info rfd77402_info =3D { .read_raw =3D rfd77402_read_raw, }; =20 -static int rfd77402_init(struct i2c_client *client) +static int rfd77402_config_irq(struct i2c_client *client, u8 csr, u8 ier) { + int ret; + + ret =3D i2c_smbus_write_byte_data(client, RFD77402_ICSR, csr); + if (ret) + return ret; + + return i2c_smbus_write_byte_data(client, RFD77402_IER, ier); +} + +static int rfd77402_init(struct rfd77402_data *data) +{ + struct i2c_client *client =3D data->client; int ret, i; =20 ret =3D rfd77402_set_state(client, RFD77402_CMD_STANDBY, @@ -209,10 +279,26 @@ static int rfd77402_init(struct i2c_client *client) if (ret < 0) return ret; =20 - /* configure INT pad as push-pull, active low */ - ret =3D i2c_smbus_write_byte_data(client, RFD77402_ICSR, - RFD77402_ICSR_INT_MODE); - if (ret < 0) + if (data->irq_en) { + /* + * Enable interrupt mode: + * - Configure ICSR for auto-clear on read and + * push-pull output + * - Enable "result ready" interrupt in IER + */ + ret =3D rfd77402_config_irq(client, + RFD77402_ICSR_CLR_CFG | + RFD77402_ICSR_INT_MODE, + RFD77402_IER_RESULT); + } else { + /* + * Disable all interrupts: + * - Clear ICSR configuration + * - Disable all interrupts in IER + */ + ret =3D rfd77402_config_irq(client, 0, 0); + } + if (ret) return ret; =20 /* I2C configuration */ @@ -292,13 +378,29 @@ static int rfd77402_probe(struct i2c_client *client) if (ret) return ret; =20 + init_completion(&data->completion); + + if (client->irq > 0) { + ret =3D devm_request_threaded_irq(&client->dev, client->irq, + NULL, rfd77402_interrupt_handler, + IRQF_ONESHOT, + "rfd77402", data); + if (ret) + return ret; + + data->irq_en =3D true; + dev_dbg(&client->dev, "Using interrupt mode\n"); + } else { + dev_dbg(&client->dev, "Using polling mode\n"); + } + indio_dev->info =3D &rfd77402_info; indio_dev->channels =3D rfd77402_channels; indio_dev->num_channels =3D ARRAY_SIZE(rfd77402_channels); indio_dev->name =3D RFD77402_DRV_NAME; indio_dev->modes =3D INDIO_DIRECT_MODE; =20 - ret =3D rfd77402_init(client); + ret =3D rfd77402_init(data); if (ret < 0) return ret; =20 @@ -316,7 +418,10 @@ static int rfd77402_suspend(struct device *dev) =20 static int rfd77402_resume(struct device *dev) { - return rfd77402_init(to_i2c_client(dev)); + struct iio_dev *indio_dev =3D dev_get_drvdata(dev); + struct rfd77402_data *data =3D iio_priv(indio_dev); + + return rfd77402_init(data); } =20 static DEFINE_SIMPLE_DEV_PM_OPS(rfd77402_pm_ops, rfd77402_suspend, --=20 2.43.0