From nobody Mon Apr 13 07:12:11 2026 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) (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 13646368946 for ; Sun, 12 Apr 2026 09:38:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986691; cv=none; b=PHJawXfi8X9SF7lk5aJUeJE/LIlykjYBoyccEumukFNpVuTIFoVLqwI1zCw2RvTBghLlFatxVlAUR2XcoC+1UNpwbttMmCYETFAMLHNnftPNlcYxOAjOSnVPhM+MBLstK3XzrZLgR2Kv9k73fcVcCkvozMHWDwmlOP+8qgwmMJ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986691; c=relaxed/simple; bh=66d0P0PAn9Tlw6ElUOtNk6ATPYX/gPspPgl+2G1pr4M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=mKZZ7/ul5BqVyZZvAry34tiJOVw+E3ljuEM0I6VP0PgF4wkoZbJ1GPbUe2bfb7VQ+pu1uezEQynjuvuW5z4Cp9guyULluV1jbe5fkostCHGR93/i4CuRo2SZvfvSJRlufpWT6o+k6X11nb5O9KAthEuvXDKi8XTYHtWwBo+Tw9I= 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=AhC2gT+V; arc=none smtp.client-ip=209.85.215.181 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="AhC2gT+V" Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-c76b9efc299so1348975a12.0 for ; Sun, 12 Apr 2026 02:38:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775986689; x=1776591489; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=L/O/blVFIoopxT0bw2o9ftno7RBysSZwHamFsCbrXTo=; b=AhC2gT+V9c5cGsYQzHBAghOxz5PPdOImnwMt65S9dG7IUZIGKJ6vC+s/2AuKPsLq5I OpGYPfzfzy71RlCvlO5emiV5P4gCwC50KBM//g/NeawSCPUSDZqBhQiUdpLQoyHFLNl5 cRNl85asuUB4xhp0KQeErizM9LqRLPMgtz6HQGY0CM4PmJBcjs0lSxNpQYZcR1S3WEGg 4cgZ8GIBdP7v0YJNqSy6LAH72v6Z8+t0Ca6GXnpGPQu6upk2Gn38ZCSfxToILCyCk7om RnVZKDpp4w2l/iVLHmtxb3sfdL+85KVJD5rlbXf+5VcBN/LTHpDCwo7E662MpAoDI5Y4 4Lug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775986689; x=1776591489; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=L/O/blVFIoopxT0bw2o9ftno7RBysSZwHamFsCbrXTo=; b=gWJsCvDAh2D86Lq0Fya7xIgWMFJPNfE9t5P6H6Dh2L1bwY/bJcRLXtYY+ddrrSG/Xw QxidKpnsuns0g0NYRDxp19NbWRTBYFYWyqeDqgVh/wDPsIO/rThbnjCMpXzT34x+xV2P bnb4gQm2R77kF2mrgjq62Pp9QotojAZ2Oqv2MV7BXW/g7iNJ2HCsm7azYGrlVIlKDpkf HppULZ0mHTWWcnqcmTE7iIS7cMQybAxNkwT7+/wCvnjVfa0qelWZ69mHENtVwHZgiYZK GFrFvBBNkb37QlOzahC4WXnKj9EAcrRyYhLex7eZQyckJMt0xHAYSGxD6VDrUaswnlsO KB9g== X-Forwarded-Encrypted: i=1; AFNElJ/SqHk2fAWZDSYLjlvE6BaQTCHWTJwJ7CAI3K6R6rIvEN8+AtE8zmAYo+5m7DWFTygp0Rw05nyZNLYQ2zE=@vger.kernel.org X-Gm-Message-State: AOJu0YwqbwFhKWg9a2l16bR78GnPePmU/zs9LK5U3zQJf6uQJs9OnS9o wUQZwvS2Nto181JJqO+tR+gKvcnFOrNOccyBfgEJJlsUI3dLNX9ME2pp X-Gm-Gg: AeBDiesPlNqFEamH0I8S+tGulfu8+MWKsoNFzzM414Il4TTdNIjzUQB/S0KcHOtowO+ d36s821h8VXJJOc9COd4axVEYPEPLM7Va2QBxMZ3Pzh6fVczVNGizgb0t7WPetKa029Lx4gAY/T OLtModooyKBhLyXJ0yG23CuqXe+IuGpwGlPeX0r65Kg6Y4iaUMvxzdojA1Q3Vw+q3P1QmFGOa1h aMrmvMMg9AEGkwWOJP6SXUWTMj8KrmYkyWql+gaW2ZHn/rhHpXqKX8dtzPwvniqk/3PE7dEMVpT Gd3v5j0Ab5BdCh/I/4EzNw1GZBMRxepf+GEBIH0RS6ZArp14wT9jaNFGbUk2K9kLNGOAT0rvcRv 6qETK85Nm/tt7XgAJQ6+xTXiV2GNavQ2fC62faC1yaypp7gtRjUb6tJ79/Gp9TNbLifZh24t10d J44Az6ndvGc85A7Xnw3USZjKlYluLAQW7EvWHxnmt/2MzNbSeTCFYDfuy2iUVwr5OCbW+Z2y+g X-Received: by 2002:a05:6a00:a86:b0:81b:c2b5:31a with SMTP id d2e1a72fcca58-82f0c40d36emr9398443b3a.53.1775986689333; Sun, 12 Apr 2026 02:38:09 -0700 (PDT) Received: from debian.ari ([152.56.156.42]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f0c36130csm7885038b3a.24.2026.04.12.02.38.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 02:38:09 -0700 (PDT) From: Archit Anant To: jic23@kernel.org, dlechner@baylibre.com Cc: lars@metafoo.de, Michael.Hennerich@analog.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Archit Anant Subject: [PATCH v8 1/5] iio: adc: ad799x: sort headers alphabetically Date: Sun, 12 Apr 2026 15:07:35 +0530 Message-Id: <20260412093739.17116-2-architanant5@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260412093739.17116-1-architanant5@gmail.com> References: <20260412093739.17116-1-architanant5@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reorder header includes to maintain proper alphabetical ordering. No functional changes. Reviewed-by: David Lechner Signed-off-by: Archit Anant --- drivers/iio/adc/ad799x.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c index 108bb22162ef..f37f1fda2dc4 100644 --- a/drivers/iio/adc/ad799x.c +++ b/drivers/iio/adc/ad799x.c @@ -18,23 +18,23 @@ * ad7998 and similar chips. */ =20 -#include +#include #include -#include -#include +#include #include +#include +#include +#include +#include #include #include +#include #include -#include -#include -#include -#include =20 +#include +#include #include #include -#include -#include #include #include =20 --=20 2.39.5 From nobody Mon Apr 13 07:12:11 2026 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (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 C51422EA754 for ; Sun, 12 Apr 2026 09:38:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986696; cv=none; b=JuV3dgWN1vzDOo1h52BJugxdXDdLNyhptesQbUVBuQcxlcUUqaA11JE6SOxnMp0p1GO/6vqoqd0nzOYDkBdDqUKLt3ErSwl7DXm7b02sMzBIFflRkKt/WMmqyFLf9qWu0YS5uV+2gO/tc4+SExxhciXXvCHvQBn7TabOj/UYjNY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986696; c=relaxed/simple; bh=Juv0lIWR9wA6yoOWU3gG2P1D+1KNFZdtqGDVgjvY1J4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ejLq+HnAejNcDWRdyBjjeE+0qwyrTCN3N1fd3KGcmGVKQiPCZCzjG356jAmix7SBbc4JqgnOyEN6J8Kt/EkECbwqzxijaL5SS6oQa3XIiTagChABtvR8Jq/NN49C+Yn/be7RGx9E9AHPHvO12irNnU4lNMZlPhHBBBxvCujeoF0= 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=EllSDqXd; arc=none smtp.client-ip=209.85.210.182 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="EllSDqXd" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-82cebbdab08so2729233b3a.2 for ; Sun, 12 Apr 2026 02:38:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775986694; x=1776591494; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gl0CTLPyHKFF3qqDEVLryzjQaV8YhrkXRYbnO1xmfn4=; b=EllSDqXdag3bE+6OTJHWWaLouSU+As/2um0AN9UJGBAU+fQxI+bINKNjJgfp543ltR rO6qtfhFvXBFGdaIrkw63SZT9KX8xAOx4HB6etEQChCIh98dajeEH1D+5Yr3jvb+FJE1 ihucFDDVqz+GQMifuogygm8ClH8+bbzNtW7CrGyoQ8zJPYFwRreHfdbK/eF3g0YPMPPR ve7vSXSna5A0P0K0uzx67qY1tfW3YxaexJvTtvvlZawvV4KaUZ33AnFUUVUqMpVhtnZ/ cBAZOElyQtQx3caS5vdie2++FoEs2y3MInMR1SM0n024SFN05/rLMEf5c0fMZ4q4fs2J BkBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775986694; x=1776591494; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=gl0CTLPyHKFF3qqDEVLryzjQaV8YhrkXRYbnO1xmfn4=; b=aBdGkBxVQ+6pnQHsiyls4OoHLSTbLOdQS8vNbj7X8N6iOmLViwk7WYVtyId3ZzYxTG 1omM2ELsLHYEbOpVQqBQeBI4Ol9RN88QrpYZzgJV03wBJc42I8dIDf1TaA3Q3U+4fBIT EjNo0RGbyYkEqrMYb/wLT2pJhAMcTssNiUwzBlSHcwhulVvy8NnKjTyWPOrrngqZXMAS pe4zxOIMUrhRPR2xW/C2pFpcgPWBtEY9pjIRH2G8d49xnZdu4ZbKo9ZFJRpjUN4USvZG HaiBhmTJDDw7MyypLW4l4lWuXh6SNeokU6xvOOjJRPr0WDyVFjqDxtIkHwCPHHSdZjj1 dmFQ== X-Forwarded-Encrypted: i=1; AFNElJ+g29k5HwwSsiRF/wmzGQu75cYBycDlGLeev1Ymt4xdOZQR5wDlr7K7CzUAqrUOwIsvKL19dHe3BY2ALOI=@vger.kernel.org X-Gm-Message-State: AOJu0Yxq8kD7ZG8jGVyFlyu06M1Lm9/zkKoxH7bYzjd2S6l1pPlifEUt U/lyxcrOeEGhTPs5UV+eu4C4Ee/yGYBO25msMrBZFZ04tM9Jd0axuAfN X-Gm-Gg: AeBDieuJM+YkEEbZgpuhYT7ElZQmeQUyUOqSiOfrVsm7dwP9NU2gK5m+tgQeD2unHSL 0N/H/oTUTbU8BsgCmCzIFi35ooo42TtQ+B14bALWT52nJpJfqitAKu8+r4jjVFdXDbtCmox6TJ0 Lz+Lr61eeQ0kZvPscTqvFerQ0svqpZ29+78xjtRTuZgq89YljDgMuQ4wPRIoggeBQA6TnmJE7nx UjeX/ldlyPNyRbHKavxiGVGhKXeWb53/ZG4cynpHPJG/gb1uaYuYbr8xC/yfQALndjSb4TkNfXv x2UDfl0Co30uFH0T1o/Uo5P47crAixybmVXAWjtUUxGIQWNPCbDQB3J84mXGaCE+M///nE5G4gJ 3rymNjenHZmHOFVqUezYoFpvlvEefHx50W90ddt2RxFF+92sIltVpFkdcO4quVtkiNr0Rb0iZly MJERU8kBpW/cM+s4oIbQ+u6N6GVJTtIoRY/dvATB1G18Akq4XkcODfSHncjX6AyTvLKopoxq0G X-Received: by 2002:a05:6a00:39a8:b0:829:86a5:d30a with SMTP id d2e1a72fcca58-82f0c2194f6mr9647773b3a.16.1775986694142; Sun, 12 Apr 2026 02:38:14 -0700 (PDT) Received: from debian.ari ([152.56.156.42]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f0c36130csm7885038b3a.24.2026.04.12.02.38.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 02:38:13 -0700 (PDT) From: Archit Anant To: jic23@kernel.org, dlechner@baylibre.com Cc: lars@metafoo.de, Michael.Hennerich@analog.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Archit Anant , Andy Shevchenko Subject: [PATCH v8 2/5] iio: adc: ad799x: use local device pointer in probe Date: Sun, 12 Apr 2026 15:07:36 +0530 Message-Id: <20260412093739.17116-3-architanant5@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260412093739.17116-1-architanant5@gmail.com> References: <20260412093739.17116-1-architanant5@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Introduce a local device pointer 'dev' in ad799x_probe() and use it throughout the function instead of accessing &client->dev repeatedly. Suggested-by: Andy Shevchenko Reviewed-by: David Lechner Signed-off-by: Archit Anant --- drivers/iio/adc/ad799x.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c index f37f1fda2dc4..bf0575585a59 100644 --- a/drivers/iio/adc/ad799x.c +++ b/drivers/iio/adc/ad799x.c @@ -783,6 +783,7 @@ static const struct ad799x_chip_info ad799x_chip_info_t= bl[] =3D { =20 static int ad799x_probe(struct i2c_client *client) { + struct device *dev =3D &client->dev; const struct i2c_device_id *id =3D i2c_client_get_device_id(client); int ret; int extra_config =3D 0; @@ -791,7 +792,7 @@ static int ad799x_probe(struct i2c_client *client) const struct ad799x_chip_info *chip_info =3D &ad799x_chip_info_tbl[id->driver_data]; =20 - indio_dev =3D devm_iio_device_alloc(&client->dev, sizeof(*st)); + indio_dev =3D devm_iio_device_alloc(dev, sizeof(*st)); if (indio_dev =3D=3D NULL) return -ENOMEM; =20 @@ -807,7 +808,7 @@ static int ad799x_probe(struct i2c_client *client) =20 /* TODO: Add pdata options for filtering and bit delay */ =20 - st->reg =3D devm_regulator_get(&client->dev, "vcc"); + st->reg =3D devm_regulator_get(dev, "vcc"); if (IS_ERR(st->reg)) return PTR_ERR(st->reg); ret =3D regulator_enable(st->reg); @@ -816,17 +817,17 @@ static int ad799x_probe(struct i2c_client *client) =20 /* check if an external reference is supplied */ if (chip_info->has_vref) { - st->vref =3D devm_regulator_get_optional(&client->dev, "vref"); + st->vref =3D devm_regulator_get_optional(dev, "vref"); ret =3D PTR_ERR_OR_ZERO(st->vref); if (ret) { if (ret !=3D -ENODEV) goto error_disable_reg; st->vref =3D NULL; - dev_info(&client->dev, "Using VCC reference voltage\n"); + dev_info(dev, "Using VCC reference voltage\n"); } =20 if (st->vref) { - dev_info(&client->dev, "Using external reference voltage\n"); + dev_info(dev, "Using external reference voltage\n"); extra_config |=3D AD7991_REF_SEL; ret =3D regulator_enable(st->vref); if (ret) @@ -853,7 +854,7 @@ static int ad799x_probe(struct i2c_client *client) goto error_disable_vref; =20 if (client->irq > 0) { - ret =3D devm_request_threaded_irq(&client->dev, + ret =3D devm_request_threaded_irq(dev, client->irq, NULL, ad799x_event_handler, --=20 2.39.5 From nobody Mon Apr 13 07:12:11 2026 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) (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 C790F367F53 for ; Sun, 12 Apr 2026 09:38:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986699; cv=none; b=Ku0olakcsSASwM8t8wvUKstu1x487Gq/nKZc0M1jqowJNmhXKH1PTor5G7WGQxxsYa0MgHCvK6xLjJciSSrs7wuq+kT+60dvm+2kZoYNqyWmBOTu7Y9SzmylbXMqJvWHGWN3gIqa10qK3zC3iZtONA0NZi4mUVry5YENRZp0zFg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986699; c=relaxed/simple; bh=jPdCb0q5WEMo6KmG6qwLqObNwDG2gwcqq6+myRFEzSo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=NpieujSV/7hwpvhsu1HFMGRiuykDueO/gghYvJtRzQ1xWRWtesduUZYFocKGOdGZGE8AeWgzjf4EHUtSCOlBo38kchcURNHpFOHZnbVvFQ1C/ZB4qCDMFw2nxUD3WrsA3pHmmnZ3nHaiQyyOduJLqyE02C2qGNrgqmH14lVAfqA= 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=IugOTSMt; arc=none smtp.client-ip=209.85.210.179 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="IugOTSMt" Received: by mail-pf1-f179.google.com with SMTP id d2e1a72fcca58-824c9da9928so2476978b3a.3 for ; Sun, 12 Apr 2026 02:38:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775986698; x=1776591498; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Bhpgpezcr4Npkqf+9mlvwrcSSNmQUddV4HFFLOvyW/w=; b=IugOTSMtHEf4CIg2PQ0W/xddSkE0yZE99lxJB+SfAQHCqF7apZQficGs8DdGX0RzbM rJcftqzoU73uHk4XnWIhfctwv8Av+Fiyuj8Px5q/QHT/kyJGtNoUl1O05dMqQxdskWty JTQWpmm/bfvwZ/saqFhGNQX+y1ekkCqxdtwoR8R/Ig5RXwhwa9bMnzH+o6Gu5HRixiH9 Plo95yY6ap+IG2tasHPDABdq3GoHw3MGQ3VzT0rFh7RoQ8KtXf0gYTXb6dUJuVR4OYZ6 2+aCt1Ug3faFiBzk7gncex0wI1BLWuIO1mxtNlO+TwfUpMBlk8VdYzDl1jtXDOo4MQWI mJ8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775986698; x=1776591498; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Bhpgpezcr4Npkqf+9mlvwrcSSNmQUddV4HFFLOvyW/w=; b=ZOxL+lb+28WxJgCN0EfF/v9Sgp1uHez4LdZ/23FJcptg3GeXhBTi2CIOHxfEtJc8LI ELa8+O2eATwjZQH/CZavJCzxfES5fk+XN0y9JRwiKVbAI9Weld0WY2Bqy73+IDd6RmMU LW2yqHUWycIXBjc67ngoAFTAvqLLyYuweaM9ikt2XKQlgih3m4kYPyxr8uXXCuoGOz5b FTcc2aj35ajnE3myQRyQlpoT7qE0ukMBxljXIX6oZLQOceFTy+tMb8Rd2NqLEnQoB5ap C+jhu+perJCyhV380YJNFIhcLFM1AyBY2WArLwFY6vqJC0M5+nsW78h1YUrsn2oBA5PE 3YCg== X-Forwarded-Encrypted: i=1; AJvYcCXuWJ8LR3JLXWwIm5hIE6fIuwGZKtAIb6tKUsQDxa5v/TUUq13fVV77U8CVzDTTR3+1MhgS9P3fm76srdg=@vger.kernel.org X-Gm-Message-State: AOJu0YxmZFM8Y75O+KLgkiSL7Wq5Y+p2K5fNH5UyYVPq8xydmYuL6Y4w XyQuOEdMi+oeqIzJIT1PqBsWvV8Z3+rpS2gOLcUCNJz1heCUR6Ynb2Ip X-Gm-Gg: AeBDietst7Vj0hLudO66uFwhNxk9SWY7gqjlBW4gX2mY3DR6sjfS99i4Dxj79Jx9Idw b0434ysOJ7lcfxD1Xe5quT4kFxV/SrUR7PDQRkeRgITZkv/QaxitqC4YlT3fO4eXN78UHIR3Ngg you2gRuSHmAPJMo281kd2y5AO63gRcvfv065QIw5uyCTj/AaJl+JxZG459k/XHQ1JJK2rfrWOOW nJ3VbD2PxoXPEIr9GZzsr9BUK17HjHj8zaDYJjbwir94GiVio+Ap+GR4+b1TKGiWgGS+pAAXPfe YMkNBE+KiM1DQcyXhMizYOHCIVyzvfpJHjms5odohy28CuRMWVB5+UIDqfQDe3FBKbnCCWPPj5E nFiOsvxnEQ9F7gAer/isxQhlhWxo/OD9x7Qq4xhhmAHKa5jH8potAJqvP+j8gfa0seYWohkFaJi Ib1hSm04ElIX7DbJQjHyCSiVuyunhUsnoTQvyq4kljgMMkMPP4btrDNCabi46yL4ZxL/xAnoTr X-Received: by 2002:a05:6a00:4fcf:b0:827:441a:c970 with SMTP id d2e1a72fcca58-82f0c12f194mr9316309b3a.6.1775986698137; Sun, 12 Apr 2026 02:38:18 -0700 (PDT) Received: from debian.ari ([152.56.156.42]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f0c36130csm7885038b3a.24.2026.04.12.02.38.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 02:38:17 -0700 (PDT) From: Archit Anant To: jic23@kernel.org, dlechner@baylibre.com Cc: lars@metafoo.de, Michael.Hennerich@analog.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Archit Anant Subject: [PATCH v8 3/5] iio: adc: ad799x: use a static buffer for scan data Date: Sun, 12 Apr 2026 15:07:37 +0530 Message-Id: <20260412093739.17116-4-architanant5@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260412093739.17116-1-architanant5@gmail.com> References: <20260412093739.17116-1-architanant5@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently, rx_buf is dynamically allocated using kmalloc() every time ad799x_update_scan_mode() is called. This can lead to memory leaks if the scan mask is updated multiple times. Drop the dynamic allocation and replace it with a static buffer at the end of the state structure using IIO_DECLARE_BUFFER_WITH_TS(). This eliminates the allocation overhead, prevents leaks, and removes the need for manual kfree() on driver removal. Suggested-by: David Lechner Reviewed-by: David Lechner Signed-off-by: Archit Anant --- drivers/iio/adc/ad799x.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c index bf0575585a59..d8389b6e19b5 100644 --- a/drivers/iio/adc/ad799x.c +++ b/drivers/iio/adc/ad799x.c @@ -39,6 +39,7 @@ #include =20 #define AD799X_CHANNEL_SHIFT 4 +#define AD799X_MAX_CHANNELS 8 =20 /* * AD7991, AD7995 and AD7999 defines @@ -133,8 +134,8 @@ struct ad799x_state { unsigned int id; u16 config; =20 - u8 *rx_buf; unsigned int transfer_size; + IIO_DECLARE_BUFFER_WITH_TS(__be16, rx_buf, AD799X_MAX_CHANNELS); }; =20 static int ad799x_write_config(struct ad799x_state *st, u16 val) @@ -217,7 +218,8 @@ static irqreturn_t ad799x_trigger_handler(int irq, void= *p) } =20 b_sent =3D i2c_smbus_read_i2c_block_data(st->client, - cmd, st->transfer_size, st->rx_buf); + cmd, st->transfer_size, + (u8 *)st->rx_buf); if (b_sent < 0) goto out; =20 @@ -234,11 +236,6 @@ static int ad799x_update_scan_mode(struct iio_dev *ind= io_dev, { struct ad799x_state *st =3D iio_priv(indio_dev); =20 - kfree(st->rx_buf); - st->rx_buf =3D kmalloc(indio_dev->scan_bytes, GFP_KERNEL); - if (!st->rx_buf) - return -ENOMEM; - st->transfer_size =3D bitmap_weight(scan_mask, iio_get_masklength(indio_dev)) * 2; =20 @@ -896,7 +893,6 @@ static void ad799x_remove(struct i2c_client *client) if (st->vref) regulator_disable(st->vref); regulator_disable(st->reg); - kfree(st->rx_buf); } =20 static int ad799x_suspend(struct device *dev) --=20 2.39.5 From nobody Mon Apr 13 07:12:11 2026 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) (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 7A0DD2DEA64 for ; Sun, 12 Apr 2026 09:38:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986704; cv=none; b=Q/QJZ05pQKNrhIW6S7AlAKcKt3XOj4EfFq7jL88LkIYpMzjSrl9MAUUzC48p54SYAdp4Px+JGgkaNhJpcQOd89+DG77W4j2bQ6H0N+N/r1JxHYE/NCVaDd9arvVYlOsJnwK7GwGmIv/7omtq93bD59Kl1P5uq9gJa+vUeVREMnQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986704; c=relaxed/simple; bh=nBRBtUqIxqHQgzoWyQRujvp/pvAfKzrm++3kXZfgEiM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Yu2kOIKhDlUJKLORWtgSl2OcJty1Xkgikzrff0dOEUNesFHCHC6Oq3b0vBjN3AOTVw+QGJTuYoexWIxjRn85kwi5cyn9Kll330XlLgU/xbwnOChTb9LUJU65zoNuE+2A6g8b+9X0gK4wu86Uzm0sDGg8RQUGgCxUyCmxpwg02CY= 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=lh0AsgZ/; arc=none smtp.client-ip=209.85.210.174 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="lh0AsgZ/" Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-82a655cfab5so3063947b3a.1 for ; Sun, 12 Apr 2026 02:38:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775986703; x=1776591503; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=K7EJe494qZFjCt/60vOmrTjUFRjvoNKSlUjaDCPjNfI=; b=lh0AsgZ/uVZsjJsogzJ08f3/+SBGyFG82H9L8m4LOn5psl33CuBCbWzfEbdC4JJ4Ti MveNmeFxnUrFm+hoLCGzlzdLy2zY6XjYEe7yiuyIe63/gWBvu2zIHS1nXrPlmy9ykNMg Knf6YIN8JxbHXWBGgIbRNIiwYWv316xGIqYVJenQVmHiYclqwqksd4wfT3RLtqSvV/Cx CuSN05Q+gJFKEFPz1w8Xa14ruydS0RHF6ydMeY/p349P6mOUeB0Ai8cgEKtTCZR7HQoP vU77vX9QBqQ9AfihC84IsjhW7SSb5NpeT1kV4xaoQe4GeBBrkwGKBlsFdymVbogeoB94 ymzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775986703; x=1776591503; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=K7EJe494qZFjCt/60vOmrTjUFRjvoNKSlUjaDCPjNfI=; b=lGwvkU8PGkKh9jCRnjTSvkvERFeGURVlm830UbtUo/qhQjXYQ42H/mHjVF2X1MihFo 5NzsTuWE/z3ZWpoHGFe1FefPQ7I2GES0F73vbErpQfOpK1FJ5EaUkp/w+8IzjF/S61lM GIz4LyB98b+ziulTrIHo7QuvDmnVRlK7+iQEAOtyrBdAFdQV1Kz7Bym/6U/7z90yEGmb odeAqDotw2/VdqkjfsHmopB34S8PpRst0xt1bguR/nIsHnOVZ06cV8gVbF6jstltKg2j E8mmUFvd9ddFdfF3HyB47Vl4C+2UsHklO5JICiNlQKrt3BhZtlok+o2xw8gX5j+FHPLe WSRQ== X-Forwarded-Encrypted: i=1; AJvYcCV0nMWlUxt8dJU489cTSYytVoQ1yDdpUfVu6hOgEb1Ky608GJt+GEZfbG+R8z3LuaoMUZPEUE6wiHE37tA=@vger.kernel.org X-Gm-Message-State: AOJu0YxiJIEEumkDZRpq7qZLlGxB5jmNMPDr2chssL9TXBnd/VevPYAQ KC2C4YP1EUzTM+LxGAd0HK4O7Aw9DfgL/neN50xgHNIq0fxpfHdQnTN3 X-Gm-Gg: AeBDieuN5WFuoXgEx7gR85I+rgBrJQjlRdMpE3Lbl4a/zOmkHr9oH6ZOgeERzaZRftC 1ymuHvgqVfyxDJfwPP624fbd7QZgEzfd9lw52RnJtxgDQoeeNZfIw/ccfp8yY+dsdg0I1z65jOW 5P5vFzwc09lAdlDgaTGZMjCzhNl1zz17+0H/a9dWUseYlr0MyOTC6YPmQPCIxBmHhNFEN7RePth bYWOGcYLmwjY8zi/t9v1FkWMIzPi0OsHZmgyRl0DhNIaLOz1o+miooGAh5f4K9OnEDY6Ft2MXJe MUUyzpbRsp0o8Ty7yYvpjhvY6ds4GY7JKyhgZ0RPOtNh2EQ1pblZhQv4tETf7oTFkqwOAwvOdo2 FRy6f6LGdRfRt9I53fRRlyKXmz6LXqVG5CeiPnwBpkMqITtFHoYmAzEnugBe8TAiu7oSLYpTZ/l GeWvZkByE4FKB41vUhbtG/FR6I50R9jVi7VMiy0nfYqn3Qslgr7QccRWeuv+PVfHyW9/jcqTyrs stxtdqXcdw= X-Received: by 2002:a05:6a00:1305:b0:82f:b5:8044 with SMTP id d2e1a72fcca58-82f0c1e261amr10289351b3a.6.1775986702850; Sun, 12 Apr 2026 02:38:22 -0700 (PDT) Received: from debian.ari ([152.56.156.42]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f0c36130csm7885038b3a.24.2026.04.12.02.38.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 02:38:22 -0700 (PDT) From: Archit Anant To: jic23@kernel.org, dlechner@baylibre.com Cc: lars@metafoo.de, Michael.Hennerich@analog.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Archit Anant Subject: [PATCH v8 4/5] iio: adc: ad799x: cache regulator voltages during probe Date: Sun, 12 Apr 2026 15:07:38 +0530 Message-Id: <20260412093739.17116-5-architanant5@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260412093739.17116-1-architanant5@gmail.com> References: <20260412093739.17116-1-architanant5@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Since the reference voltage for this ADC is not expected to change at runtime, determine the active reference voltage (either VREF or VCC) during probe() and cache it in a single variable in the state structure. Suggested-by: Jonathan Cameron Suggested-by: David Lechner Reviewed-by: David Lechner Signed-off-by: Archit Anant --- drivers/iio/adc/ad799x.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c index d8389b6e19b5..e37bb64edd2b 100644 --- a/drivers/iio/adc/ad799x.c +++ b/drivers/iio/adc/ad799x.c @@ -30,6 +30,7 @@ #include #include #include +#include =20 #include #include @@ -135,6 +136,9 @@ struct ad799x_state { u16 config; =20 unsigned int transfer_size; + + int vref_uV; + IIO_DECLARE_BUFFER_WITH_TS(__be16, rx_buf, AD799X_MAX_CHANNELS); }; =20 @@ -303,14 +307,7 @@ static int ad799x_read_raw(struct iio_dev *indio_dev, GENMASK(chan->scan_type.realbits - 1, 0); return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: - if (st->vref) - ret =3D regulator_get_voltage(st->vref); - else - ret =3D regulator_get_voltage(st->reg); - - if (ret < 0) - return ret; - *val =3D ret / 1000; + *val =3D st->vref_uV / (MICRO / MILLI); *val2 =3D chan->scan_type.realbits; return IIO_VAL_FRACTIONAL_LOG2; } @@ -829,9 +826,20 @@ static int ad799x_probe(struct i2c_client *client) ret =3D regulator_enable(st->vref); if (ret) goto error_disable_reg; + ret =3D regulator_get_voltage(st->vref); + if (ret < 0) + goto error_disable_vref; + st->vref_uV =3D ret; } } =20 + if (!st->vref) { + ret =3D regulator_get_voltage(st->reg); + if (ret < 0) + goto error_disable_reg; + st->vref_uV =3D ret; + } + st->client =3D client; =20 indio_dev->name =3D id->name; --=20 2.39.5 From nobody Mon Apr 13 07:12:11 2026 Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (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 752763242D4 for ; Sun, 12 Apr 2026 09:38:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986709; cv=none; b=o3tzi+MZEjBdfIJM7arUbYznYLZ7MeARQ1z3pdXzb5loY2qfW7MYmB3cpkczsLaXC/axBwLl80UoBL4+elkghSDjI9DFnQWw4/omZ/+eZZJJo3y1Vo1Z5kIJPXSvR02Jcos12xI2yTCPsfrfMDkMf5IJW+HZMQmbbdbh4Z3LW/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775986709; c=relaxed/simple; bh=fKhxy+uUkv7uyoUtuBiGeXl0glQsbzn+BjMiYVG5E10=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZngUPS1luvcWBUPUU9FuyhhCCqu6eL74z0HOz3RxZtwxl/CLiPieKdxWbZSFf9kBZNYKmZBENym3HRPrFFJstf11yVManbvT9Q8PaNzl8/IZhMjJQnZoOz1vC0xok//qpQ0gZDiBsPqsMBQq7uFy0BVIUoCF1p9t5Pbj7GXLkDY= 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=tDMKJSrI; arc=none smtp.client-ip=209.85.210.175 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="tDMKJSrI" Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-824c9da9928so2476998b3a.3 for ; Sun, 12 Apr 2026 02:38:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775986708; x=1776591508; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=I5lS9m0YKF/AhL70UDdpLWZKYq+rkGRCMnHCx58rcr0=; b=tDMKJSrIJgC1UC4OoirqjIw8UXeRMvAwFDU6Ul5uiGz2IcoYRx57aeLFykBcj3RJwv bq2oGqqKmUpk1h0/hQtlGJ4UM9yulo8DBSrd00DfefHSlFe5v6/4QaXzdBX0391BYPzD 87r3X31IQBpoDYCJPoLq9oLzfiTktShe+BOXLAy8ABUE7+a8P3mz4Fz5a1e4OMxchPSP WvRaIz1Dq/bpJAm0bL2ztftUZkFxvmdpchXpHo9gg/uChGtwgrPi5XIOELixvRfvgbL6 Z/uqZfpR9I4ld9BotVqus6+KX7/A8jXDMG7+zQbZfi52FzV6FlczcQXko7QdMGhay4oY Cfxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775986708; x=1776591508; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=I5lS9m0YKF/AhL70UDdpLWZKYq+rkGRCMnHCx58rcr0=; b=cy5tXYCeU0mOd/6I9v3zPfi8uschlLBbEUXhKuEqI2jnyJmjbMPOq2fWLpI8mIH+kR NQ6DQRaAdf2Dhc7+2o6XqcajbteDC+gIDXdZOfomZqSMSkycbGrenzmpkO0PUKSrLkkl /z1nus0aspfHYve5TAP1XWy4NHV8Td0pxeefWm8O7KdxdXDL2e6A20N7iqZIrKLU4RTn e/SD8EYn8ymvz2NTI/5HhJblpRF0EouEfa7fIgsdUo/gAAmUkdIq+LZONdq9BocIdaNM 1jbrUymwdMKsMUNktpraMKYmR1GkoistO4uBbj9mLBjb3m9HB7+lNadsP1rTCRHbX4Om qjxA== X-Forwarded-Encrypted: i=1; AJvYcCUPh2evGKzmvdqatwwKQ3wixRoQUDjchdXWlwR5OILqPBTHHkTF29SEQUAlRqJ2GNwi04eJkxhFO/b/sVg=@vger.kernel.org X-Gm-Message-State: AOJu0YxlDA+glCDmAtZh0zAC7h35cfovrITMJNIYu0qVJIX6MmOWAV9M wW2496mZ5akkzqqD6A8pjgHSGyBkt1YJCQljkpvHyRRvG1I1tanMjMUI X-Gm-Gg: AeBDietp2ZzqPcA2J0T3YUl4hdujQRM7Xp2UYUaysTpf10BRiol8mWfFIesyAmC8GjI 2Sp3SQL8rgIDVX0Sg9eQ2shXKN/rV2uEMnBQCrNqEczAi4TvbPaf0/UfZFjJ6EUplg36WGxuDAB Ql93U87iXZLBAW9NTeu/REN0qIur8A+oAEpDEOUjx8Xk3iHRYnQlPC1RIt6ciVoZlauAdCpYKbB kGuw3+NxXzEu6hPCajitPTBV7cmrH7x3ZtAwwHhNv+62QukODIbJQpxX9vq0EVqzwHNAlM25+E8 3UWqA9Eg3tMhpMuYS7LYTk1vn8JyxIbA8nmK4Sxlbl4R/BitnXJYVEqSpFs0tT8L6HAvg4SinmJ 8n0Tq9ul8TSrCJ++OCiHaOkQgNq1qxsbOITLQMUxyrOmSicZdf7hPYoYFFlmybaG9zM2W93msLZ U8MznyIK1dSBdLSuIj56R5Ijmsd6hwjJYG98u9NNJ4vhDf3kEcetKeA1tqzfr2gzsNLj6MYZmV X-Received: by 2002:a05:6a00:408d:b0:82a:8163:4bf4 with SMTP id d2e1a72fcca58-82f0c27749cmr10120883b3a.46.1775986707878; Sun, 12 Apr 2026 02:38:27 -0700 (PDT) Received: from debian.ari ([152.56.156.42]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82f0c36130csm7885038b3a.24.2026.04.12.02.38.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 02:38:27 -0700 (PDT) From: Archit Anant To: jic23@kernel.org, dlechner@baylibre.com Cc: lars@metafoo.de, Michael.Hennerich@analog.com, nuno.sa@analog.com, andy@kernel.org, linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Archit Anant , Andy Shevchenko Subject: [PATCH v8 5/5] iio: adc: ad799x: convert to fully managed resources and drop remove() Date: Sun, 12 Apr 2026 15:07:39 +0530 Message-Id: <20260412093739.17116-6-architanant5@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20260412093739.17116-1-architanant5@gmail.com> References: <20260412093739.17116-1-architanant5@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Convert the driver's remaining manual resource management to use the devm_ infrastructure, allowing for the complete removal of the ad799x_remove() function and the simplification of the probe error paths. Specifically: - Initialize the mutex using devm_mutex_init() and move it to the top of probe() (before IRQ registration) to prevent a race condition where an interrupt could attempt to take an uninitialized lock. - Use devm_add_action_or_reset() to ensure that the VCC and VREF regulators are disabled safely and in the correct order during driver teardown or probe failure. - Refactor the optional VREF error handling path for better readability. - Convert iio_triggered_buffer_setup() and iio_device_register() to their devm_ variants. Because all resources are now managed by the devm core, the unwinding order is guaranteed to follow the reverse order of allocation. All manual error handling goto labels in ad799x_probe() have been removed. Suggested-by: Jonathan Cameron Suggested-by: David Lechner Suggested-by: Andy Shevchenko Reviewed-by: David Lechner Signed-off-by: Archit Anant --- drivers/iio/adc/ad799x.c | 70 +++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 41 deletions(-) diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c index e37bb64edd2b..0ceedea5df0b 100644 --- a/drivers/iio/adc/ad799x.c +++ b/drivers/iio/adc/ad799x.c @@ -775,6 +775,11 @@ static const struct ad799x_chip_info ad799x_chip_info_= tbl[] =3D { }, }; =20 +static void ad799x_reg_disable(void *reg) +{ + regulator_disable(reg); +} + static int ad799x_probe(struct i2c_client *client) { struct device *dev =3D &client->dev; @@ -794,6 +799,10 @@ static int ad799x_probe(struct i2c_client *client) /* this is only used for device removal purposes */ i2c_set_clientdata(client, indio_dev); =20 + ret =3D devm_mutex_init(dev, &st->lock); + if (ret) + return ret; + st->id =3D id->driver_data; if (client->irq > 0 && chip_info->irq_config.info) st->chip_config =3D &chip_info->irq_config; @@ -809,15 +818,19 @@ static int ad799x_probe(struct i2c_client *client) if (ret) return ret; =20 + ret =3D devm_add_action_or_reset(dev, ad799x_reg_disable, st->reg); + if (ret) + return ret; + /* check if an external reference is supplied */ if (chip_info->has_vref) { st->vref =3D devm_regulator_get_optional(dev, "vref"); ret =3D PTR_ERR_OR_ZERO(st->vref); - if (ret) { - if (ret !=3D -ENODEV) - goto error_disable_reg; + if (ret =3D=3D -ENODEV) { st->vref =3D NULL; dev_info(dev, "Using VCC reference voltage\n"); + } else if (ret) { + return ret; } =20 if (st->vref) { @@ -825,10 +838,15 @@ static int ad799x_probe(struct i2c_client *client) extra_config |=3D AD7991_REF_SEL; ret =3D regulator_enable(st->vref); if (ret) - goto error_disable_reg; + return ret; + + ret =3D devm_add_action_or_reset(dev, ad799x_reg_disable, st->vref); + if (ret) + return ret; + ret =3D regulator_get_voltage(st->vref); if (ret < 0) - goto error_disable_vref; + return ret; st->vref_uV =3D ret; } } @@ -836,7 +854,7 @@ static int ad799x_probe(struct i2c_client *client) if (!st->vref) { ret =3D regulator_get_voltage(st->reg); if (ret < 0) - goto error_disable_reg; + return ret; st->vref_uV =3D ret; } =20 @@ -851,12 +869,12 @@ static int ad799x_probe(struct i2c_client *client) =20 ret =3D ad799x_update_config(st, st->chip_config->default_config | extra_= config); if (ret) - goto error_disable_vref; + return ret; =20 - ret =3D iio_triggered_buffer_setup(indio_dev, NULL, + ret =3D devm_iio_triggered_buffer_setup(dev, indio_dev, NULL, &ad799x_trigger_handler, NULL); if (ret) - goto error_disable_vref; + return ret; =20 if (client->irq > 0) { ret =3D devm_request_threaded_irq(dev, @@ -868,39 +886,10 @@ static int ad799x_probe(struct i2c_client *client) client->name, indio_dev); if (ret) - goto error_cleanup_ring; + return ret; } =20 - mutex_init(&st->lock); - - ret =3D iio_device_register(indio_dev); - if (ret) - goto error_cleanup_ring; - - return 0; - -error_cleanup_ring: - iio_triggered_buffer_cleanup(indio_dev); -error_disable_vref: - if (st->vref) - regulator_disable(st->vref); -error_disable_reg: - regulator_disable(st->reg); - - return ret; -} - -static void ad799x_remove(struct i2c_client *client) -{ - struct iio_dev *indio_dev =3D i2c_get_clientdata(client); - struct ad799x_state *st =3D iio_priv(indio_dev); - - iio_device_unregister(indio_dev); - - iio_triggered_buffer_cleanup(indio_dev); - if (st->vref) - regulator_disable(st->vref); - regulator_disable(st->reg); + return devm_iio_device_register(dev, indio_dev); } =20 static int ad799x_suspend(struct device *dev) @@ -970,7 +959,6 @@ static struct i2c_driver ad799x_driver =3D { .pm =3D pm_sleep_ptr(&ad799x_pm_ops), }, .probe =3D ad799x_probe, - .remove =3D ad799x_remove, .id_table =3D ad799x_id, }; module_i2c_driver(ad799x_driver); --=20 2.39.5