From nobody Fri Jun 19 11:21:28 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 5062B39D3C0 for ; Sun, 14 Jun 2026 13:19:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443149; cv=none; b=C8iGp6SZ8MjHeLqGxyR8ssvQjN1Iwze+JYe8RXzrs8QZZg9vmly7gYkHE5S/ut/YoNdXREm77xf2xsJ+HRA7VGg+4WMm9P8gHPReKCcyXvEnk4ftNaF8Sh6FD7yQs9yLcCP6CAOK9ybF1q72Acy6OOFPUCC3aAieJVnNa4K8ajk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443149; c=relaxed/simple; bh=VPE1N0CcVBqslo2XPjxC64Yibn0ybQG+k6RsuywdWac=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BmHOdFzoiZxMZzlHv2XcZ9VTgoyXUXEaC0Q9IZdGb2AwhgFKz7atZ3XoF7TG2cT5UuPm6EzzdGzNVfRRw9esr4Fy1QS54FzYMUjW1GsNk64sK5CAYZDAQt7JQPAqGZIFd2lGUodIMfyh+bG5QsnnwLzFm07IT2kFBkEBSHSENGc= 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=T3JlzQVf; arc=none smtp.client-ip=209.85.128.52 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="T3JlzQVf" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4903d730b1fso31607825e9.2 for ; Sun, 14 Jun 2026 06:19:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781443147; x=1782047947; 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=E4j0TI1un02xuJRUmwkXAF6i5ZkGtnqZivF2Rw6pdJ8=; b=T3JlzQVf5fpGoLSWAot6bjX5p3owO2HJY9Es/VV4i/lR+54uKMM8AIKN1p1zshNr6K A3oIe/1ANeycT2NYjzwmHYVVjxKRdoDHPkHBKmp2BJrYwvAZAzKnPqcO9PXVURA3uCW/ RynPTCkfGycovIwtLyCJ9MpWCZl4j1qt8VpiyhiJznu7QaDQKBXAh9aCn+WvoirOnWTF DkjddgzvWo6iCxkygb91tdU0finTmZiwm33oM+aegfr9OHgzCsf8ew0weVEgZC7Ezyjv jEn1PFC0BFtW4pGRtUUpvuFRiSuW21FPf8Qmu3obiCDjVo1/2M6STW0xGhRQ1NM5k4tJ uTVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781443147; x=1782047947; 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=E4j0TI1un02xuJRUmwkXAF6i5ZkGtnqZivF2Rw6pdJ8=; b=nELbQCwlYSRR/uF1C+a4QVzUiM/T+bfe88m94cuXhS3s3NV1RIYRwrZsNFP/7wGKFU FmbQQsRf2r2jWwWdsMk5VkenFbD3PDGiMm5GDVXrueJK4Yb34OOwLsCTSZSTd47reTvZ iveNMbXGzrgSXKVkbrSa8jpvvRBuMtfDCJ20nKXN+HoS3/COKkwxPEd5jmRy6Yoo+HuY nlICi92vkNPAewVIRr+YUpsrhg08KkknwgWwbcsuTiTGgwezhJvEfAI+p03qg39V4BpU DkYPvvw5v7npXFZa4gb4FY8KzrMBqDB0mFSwNrlsWJyFSQjMXhFHRmJeWCuIorvLZQwr 2mcA== X-Forwarded-Encrypted: i=1; AFNElJ9JQ8m0AT/XgVaqJ1rXka2hnfAuckh/brt2+jS7FCu7ySkG+C5RmvHMacxR0Ny+2AuhhJEewoo1176m2OM=@vger.kernel.org X-Gm-Message-State: AOJu0Yxmy4X/47II/5hwHvTmvh692gOb2GL52vhLpI7nZCVbymeohgVT daliFvbqsXJFUSCx1yKjdvjle4EHcblbXrLGNInCBtDNfGQFwK1gPHPhZ142Pg== X-Gm-Gg: Acq92OG1mUPNRJXjwhbRwbW/Io3N9zS8lpT41BWu1adMsJg6mlf29x9AUBvsiqH4Lw3 FOxxiqygU+JGRcqsz0efiXjwx9dGSLUUma422FA1QeyV5zYdFQY/HZ8XV4vu2m4gJ6NjfPrmdr/ l8RgbFAG5Q9Dq1HAPDtum7oJXXTJJzTcVSixzFUejGFkVMzOHx/Rwa12/AZPB5IYJSnBPAm+uKS mvdXCdq8L813mCV3MowsxbBlixlb8MwnOKq3ii3vVWkVj32K4zhgv7UTDyDhX4h9NJVvhL5pKAJ 2DsIbkWL/d7VlPqwGXQ5zSlEZtRbbBL5knUKNtYK19RDCdcwQhmUj4i2mbyg7uSNOnszLXr8FOg ITZ0wSeomoUMObInI4s+swdbuJYQX2gv41PMPQRv9njgG4OzO3D+eyphuKUIhPrXtWc+71GRkGR n7EpgZhzt5GJFUw/mOvNejyXtlicgyb+g4CffQcqE3/k+asx5y0xgKKq8uzyOwwtPwk3o1DRREf JcjQmARD+NVODv89TGcKYmgZXHPp1d6tNoheTgi74P7jTBiLxjj1LKbrwsnqrNszGoTHAJVSgey nizVOPflSRfcNefD7ZTARY7Lhe2eKpscSwNr44iY X-Received: by 2002:a05:600c:528c:b0:490:bbc1:d508 with SMTP id 5b1f17b1804b1-4922005e290mr82574285e9.1.1781443146595; Sun, 14 Jun 2026 06:19:06 -0700 (PDT) Received: from [192.168.1.187] ([2a02:8308:4092:11f0:c287:187e:fb7a:66a4]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4922037055csm168406355e9.13.2026.06.14.06.19.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jun 2026 06:19:06 -0700 (PDT) From: Joshua Crofts Date: Sun, 14 Jun 2026 15:19:03 +0200 Subject: [PATCH v6 1/8] iio: light: opt3001: move device registration to end of probe() 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: <20260614-opt3001-cleanup-v6-1-e3f5901dcc26@gmail.com> References: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> In-Reply-To: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781443145; l=1802; i=joshua.crofts1@gmail.com; s=20260530; h=from:subject:message-id; bh=VPE1N0CcVBqslo2XPjxC64Yibn0ybQG+k6RsuywdWac=; b=jpCpfdc+XLGvMWNElOyXJqpVEwtxNjlHgAcBbHCtjofcK1575zBPOhBdC0Cxw3aAPZwvskOzz GzR3xF1kRHvDD0+eEYiAsK8eO+hknlCNdfSk1TObJ0DsdylNqAt2Ay8 X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=RTDOoVwgeL4oFdASj9U+cxJuIjXuXk73zkjnGOJKbEo= Move IIO device registration to the end of the probe() function to follow standard driver teardown/setup ordering and improve driver logic. Additionally, switch devm_iio_device_register() to its unmanaged counterpart as current driver implementation mixes managed and unmanaged resources, causing potential resource leaks. Also, add iio_device_unregister() to remove() function to correctly handle teardown. Suggested-by: Jonathan Cameron Signed-off-by: Joshua Crofts Reviewed-by: Andy Shevchenko --- drivers/iio/light/opt3001.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index 03c7a87b4a8e..6a39f116f931 100644 --- a/drivers/iio/light/opt3001.c +++ b/drivers/iio/light/opt3001.c @@ -874,12 +874,6 @@ static int opt3001_probe(struct i2c_client *client) iio->modes =3D INDIO_DIRECT_MODE; iio->info =3D &opt3001_info; =20 - ret =3D devm_iio_device_register(dev, iio); - if (ret) { - dev_err(dev, "failed to register IIO device\n"); - return ret; - } - /* Make use of INT pin only if valid IRQ no. is given */ if (irq > 0) { ret =3D request_threaded_irq(irq, NULL, opt3001_irq, @@ -894,7 +888,17 @@ static int opt3001_probe(struct i2c_client *client) dev_dbg(opt->dev, "enabling interrupt-less operation\n"); } =20 + ret =3D iio_device_register(iio); + if (ret) + goto free_irq; + return 0; + +free_irq: + if (irq > 0) + free_irq(irq, iio); + + return ret; } =20 static void opt3001_remove(struct i2c_client *client) @@ -904,6 +908,8 @@ static void opt3001_remove(struct i2c_client *client) int ret; u16 reg; =20 + iio_device_unregister(iio); + if (opt->use_irq) free_irq(client->irq, iio); =20 --=20 2.54.0 From nobody Fri Jun 19 11:21:28 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (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 F150217993 for ; Sun, 14 Jun 2026 13:19:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443150; cv=none; b=IQIQ9ntYiyzc3WxLMlNK9wy3A+fQI5Ex26gfHJwTK6dQ0YsoAYhvHWXO9Cv5vZ+j28cH9A2KFOBgJitwqCItcMcczeBi/TKt0YrUz1gkkxs4EmOSEz/VcrT+ksxFlzgA/+wRZ0GD90tohoyw28mpMKRK5SrlfcnCiVw+c8qtMt8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443150; c=relaxed/simple; bh=RRlULnfgdIr2LAuHXuYKNLgPv8/jvuBAfJgo7/rWLok=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=X5YxErenxY/kwmjMmlV5sGluFKhrqu+Y36ulGEdJlNy95aYWtkVMTfmT8hHEw4wqiAkw7KYgVzDTlw2jKGuGG4NzCUAQ+r+YwnEfhkK4o1mBNpvY/UviBlJN20ht/WouaxWUKieAtGWRLPijlMv3h5QQCmmRJhQVmS7E+xK6gYo= 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=lzsFhKcs; arc=none smtp.client-ip=209.85.128.43 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="lzsFhKcs" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-490aaeabdb4so15466695e9.1 for ; Sun, 14 Jun 2026 06:19:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781443147; x=1782047947; 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=FJ773jx2YEe+XPJ7Me3c8yC1oo/Nugn9hSb+DWyils0=; b=lzsFhKcs7qRYkgzHgDZKJnZk43k9Ivkj4pUXIdXkbm/hs7XUWMpRM5VdQRVIyRxz9Y HjplCO6mu9tj6iWlET9LDEp5hOyJo+NgvBV48T/O35vwFE19/CDVPeuPX+19XLp/fqcW NRTEI9dRDKqNYcJf8X2gSDB3miHKiKCcoDxgOoRSfIOPrP5cXLNcQRNcFgkKCYEA0Er3 4IHQx1nQiaBMTiovoreYvmdQGw44DB80C+xXBqnXSxBLVpkAHyPrRPpm0ZM/QAB5yChC Ip/PdsbogYCoZbuJeVPcjXjekpmqmXZq+hFJyjgcexCwuLg6sL1YZpLVkCUTgI+R+9zR 5j0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781443147; x=1782047947; 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=FJ773jx2YEe+XPJ7Me3c8yC1oo/Nugn9hSb+DWyils0=; b=J22KVEGDfF8RBYSzTvVxESpI9/BG5WzUXThN56OgT+k1Gl3zWA95TnrdeKCnQ87CD/ bEEleLMSIQVTFkAJXSyJHSR/hpRp6T3sabd/0teYR8QS5rJU50JHPPw/o0+JQJ4jd8hO XJ/5BvqBdpTzRTXLYauq6FYZMxuehmsJqsMAKcDDoEDx2upPtA11O80gC+M0C1Qvr0dQ 7m5sr43Lezvz2UIGbviRR62GhU2o4tJSL/wJZAUt5DJyxYb0DteGLuOBZnNQW5k+BYI0 LgvMXoIMDdvLSSDzpkRCPHmxmlgLTs4EMRmpaPcKPBeej9k9v44ckb8/WZHypeWhMaGM 7IhQ== X-Forwarded-Encrypted: i=1; AFNElJ9TWOvCW2QDNgFoo/Ij8EAdM2WljovL/o218PrMbKK9h6yEzA6fOlK69FJMruOkxshRK4mqcl5o4PIzh0U=@vger.kernel.org X-Gm-Message-State: AOJu0YypS7cMCTIjbAitk4ZMnzY5f0SsaVPSXncle+d1tE9diFXONq+t 7KDvsccS9Moiy9uY8QOUwyknrawKO7xcZuRr38BC02JVVzE162CpPreH X-Gm-Gg: Acq92OHz/sUjA1BvMyS/OvYk+/0VH/0AJP8dokg7HAvGDq2Hgcp5rh97JNdPrtye/1s tq+0qo83v80wvegM07KTxzmPsBZipgUiP9Oj7h+cLQuO6VqUiJtykaYrzSOIlpqjZt5bzbTgNfb f2uJ4athzqeujSlyBBwfytYbDQGADfjMFGYZkJVFH63gCI1Xz4bNxlRS3+2GMoxLpZ0GEwaTVsJ m/PP0lMcu/cwRTFD1HGrKwRnStmfBJHUnY6h7V24WqdEHl/kNvLAVHNtR8kfwCypQdktOGlc07C t+csVCOS7Q+dKnTJ3+pNfLkMxSrDYdbs0+TuQrEamXCll5Tfng03mUG7NG3qDgSqD/AKNZlAuew elW9M2hJrWtkOKjUCF7kLjLYev/zKnKvXuAd3TIEuPlaYxP6hPSmRaf31p3JwJnagh/kLqQaib1 SjnXDmluIJTyQF3t96kzWEnw95x4hJtrTUzV+vV6N9AXrG1M0Msnvhurj2SCBQpaL5degXzPbyQ UapRC69WdR7vBIb5uYtldBFIlfWYJ6QtxjU1xUV9oW/uIX5IpoyLPqR5+tcQplhPLLJdYhFWeI4 RouigfeF3+u+fsNgYcktUoEJo1/XoojPnZpid9av X-Received: by 2002:a05:600c:548a:b0:490:3c15:7146 with SMTP id 5b1f17b1804b1-492200dc914mr78378995e9.19.1781443147307; Sun, 14 Jun 2026 06:19:07 -0700 (PDT) Received: from [192.168.1.187] ([2a02:8308:4092:11f0:c287:187e:fb7a:66a4]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4922037055csm168406355e9.13.2026.06.14.06.19.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jun 2026 06:19:06 -0700 (PDT) From: Joshua Crofts Date: Sun, 14 Jun 2026 15:19:04 +0200 Subject: [PATCH v6 2/8] iio: light: opt3001: use local struct device and i2c_client variables 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: <20260614-opt3001-cleanup-v6-2-e3f5901dcc26@gmail.com> References: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> In-Reply-To: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781443145; l=13602; i=joshua.crofts1@gmail.com; s=20260530; h=from:subject:message-id; bh=RRlULnfgdIr2LAuHXuYKNLgPv8/jvuBAfJgo7/rWLok=; b=gb+ebUipkJOK3V6sdfcjxzPFRGD3uP7i/lVe80+ujwJkan9f5ZiGOaLEyHctf7IvaxT4m3Iya tNQ+M7x8gKYAUViAIMy3BAboDCstjPwB+ol+CGsW6KTr5nweluMD2ph X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=RTDOoVwgeL4oFdASj9U+cxJuIjXuXk73zkjnGOJKbEo= Switch the driver to use local variables for struct device and struct i2c_client and remove struct device member from struct opt3001, as the former can be derived from struct client. No functional change. Suggested-by: Andy Shevchenko Reviewed-by: Andy Shevchenko Signed-off-by: Joshua Crofts --- drivers/iio/light/opt3001.c | 139 +++++++++++++++++++++++-----------------= ---- 1 file changed, 73 insertions(+), 66 deletions(-) diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index 6a39f116f931..28455d887e1d 100644 --- a/drivers/iio/light/opt3001.c +++ b/drivers/iio/light/opt3001.c @@ -101,7 +101,6 @@ struct opt3001_chip_info { =20 struct opt3001 { struct i2c_client *client; - struct device *dev; =20 struct mutex lock; bool ok_to_ignore_lock; @@ -313,6 +312,8 @@ static const struct iio_chan_spec opt3002_channels[] = =3D { =20 static int opt3001_get_processed(struct opt3001 *opt, int *val, int *val2) { + struct i2c_client *client =3D opt->client; + struct device *dev =3D &client->dev; int ret; u16 mantissa; u16 reg; @@ -326,12 +327,12 @@ static int opt3001_get_processed(struct opt3001 *opt,= int *val, int *val2) * doing so will overwrite the low-level limit value however we * will restore this value later on. */ - ret =3D i2c_smbus_write_word_swapped(opt->client, - OPT3001_LOW_LIMIT, - OPT3001_LOW_LIMIT_EOC_ENABLE); + ret =3D i2c_smbus_write_word_swapped(client, + OPT3001_LOW_LIMIT, + OPT3001_LOW_LIMIT_EOC_ENABLE); if (ret < 0) { - dev_err(opt->dev, "failed to write register %02x\n", - OPT3001_LOW_LIMIT); + dev_err(dev, "failed to write register %02x\n", + OPT3001_LOW_LIMIT); return ret; } =20 @@ -343,21 +344,20 @@ static int opt3001_get_processed(struct opt3001 *opt,= int *val, int *val2) opt->result_ready =3D false; =20 /* Configure for single-conversion mode and start a new conversion */ - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", - OPT3001_CONFIGURATION); + dev_err(dev, "failed to read register %02x\n", + OPT3001_CONFIGURATION); goto err; } =20 reg =3D ret; opt3001_set_mode(opt, ®, OPT3001_CONFIGURATION_M_SINGLE); =20 - ret =3D i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION, - reg); + ret =3D i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg); if (ret < 0) { - dev_err(opt->dev, "failed to write register %02x\n", - OPT3001_CONFIGURATION); + dev_err(dev, "failed to write register %02x\n", + OPT3001_CONFIGURATION); goto err; } =20 @@ -375,10 +375,9 @@ static int opt3001_get_processed(struct opt3001 *opt, = int *val, int *val2) msleep(timeout); =20 /* Check result ready flag */ - ret =3D i2c_smbus_read_word_swapped(opt->client, - OPT3001_CONFIGURATION); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", + dev_err(dev, "failed to read register %02x\n", OPT3001_CONFIGURATION); goto err; } @@ -389,9 +388,9 @@ static int opt3001_get_processed(struct opt3001 *opt, i= nt *val, int *val2) } =20 /* Obtain value */ - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_RESULT); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_RESULT); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", + dev_err(dev, "failed to read register %02x\n", OPT3001_RESULT); goto err; } @@ -416,12 +415,12 @@ static int opt3001_get_processed(struct opt3001 *opt,= int *val, int *val2) * bit-overlap and therefore can't be done. */ value =3D (opt->low_thresh_exp << 12) | opt->low_thresh_mantissa; - ret =3D i2c_smbus_write_word_swapped(opt->client, + ret =3D i2c_smbus_write_word_swapped(client, OPT3001_LOW_LIMIT, value); if (ret < 0) { - dev_err(opt->dev, "failed to write register %02x\n", - OPT3001_LOW_LIMIT); + dev_err(dev, "failed to write register %02x\n", + OPT3001_LOW_LIMIT); return ret; } } @@ -444,13 +443,15 @@ static int opt3001_get_int_time(struct opt3001 *opt, = int *val, int *val2) =20 static int opt3001_set_int_time(struct opt3001 *opt, int time) { + struct i2c_client *client =3D opt->client; + struct device *dev =3D &client->dev; int ret; u16 reg; =20 - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", - OPT3001_CONFIGURATION); + dev_err(dev, "failed to read register %02x\n", + OPT3001_CONFIGURATION); return ret; } =20 @@ -469,8 +470,7 @@ static int opt3001_set_int_time(struct opt3001 *opt, in= t time) return -EINVAL; } =20 - return i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION, - reg); + return i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg); } =20 static int opt3001_read_raw(struct iio_dev *iio, @@ -565,6 +565,8 @@ static int opt3001_write_event_value(struct iio_dev *ii= o, int val, int val2) { struct opt3001 *opt =3D iio_priv(iio); + struct i2c_client *client =3D opt->client; + struct device *dev =3D &client->dev; int ret; int whole; int integer; @@ -583,7 +585,7 @@ static int opt3001_write_event_value(struct iio_dev *ii= o, =20 ret =3D opt3001_find_scale(opt, val, val2, &exponent); if (ret < 0) { - dev_err(opt->dev, "can't find scale for %d.%06u\n", val, val2); + dev_err(dev, "can't find scale for %d.%06u\n", val, val2); goto err; } =20 @@ -611,9 +613,9 @@ static int opt3001_write_event_value(struct iio_dev *ii= o, goto err; } =20 - ret =3D i2c_smbus_write_word_swapped(opt->client, reg, value); + ret =3D i2c_smbus_write_word_swapped(client, reg, value); if (ret < 0) { - dev_err(opt->dev, "failed to write register %02x\n", reg); + dev_err(dev, "failed to write register %02x\n", reg); goto err; } =20 @@ -637,6 +639,8 @@ static int opt3001_write_event_config(struct iio_dev *i= io, enum iio_event_direction dir, bool state) { struct opt3001 *opt =3D iio_priv(iio); + struct i2c_client *client =3D opt->client; + struct device *dev =3D &client->dev; int ret; u16 mode; u16 reg; @@ -652,21 +656,20 @@ static int opt3001_write_event_config(struct iio_dev = *iio, mode =3D state ? OPT3001_CONFIGURATION_M_CONTINUOUS : OPT3001_CONFIGURATION_M_SHUTDOWN; =20 - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", - OPT3001_CONFIGURATION); + dev_err(dev, "failed to read register %02x\n", + OPT3001_CONFIGURATION); goto err; } =20 reg =3D ret; opt3001_set_mode(opt, ®, mode); =20 - ret =3D i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION, - reg); + ret =3D i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg); if (ret < 0) { - dev_err(opt->dev, "failed to write register %02x\n", - OPT3001_CONFIGURATION); + dev_err(dev, "failed to write register %02x\n", + OPT3001_CONFIGURATION); goto err; } =20 @@ -688,13 +691,15 @@ static const struct iio_info opt3001_info =3D { =20 static int opt3001_read_id(struct opt3001 *opt) { + struct i2c_client *client =3D opt->client; + struct device *dev =3D &client->dev; char manufacturer[2]; u16 device_id; int ret; =20 - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_MANUFACTURER_ID); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_MANUFACTURER_ID); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", + dev_err(dev, "failed to read register %02x\n", OPT3001_MANUFACTURER_ID); return ret; } @@ -702,29 +707,31 @@ static int opt3001_read_id(struct opt3001 *opt) manufacturer[0] =3D ret >> 8; manufacturer[1] =3D ret & 0xff; =20 - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_DEVICE_ID); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_DEVICE_ID); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", + dev_err(dev, "failed to read register %02x\n", OPT3001_DEVICE_ID); return ret; } =20 device_id =3D ret; =20 - dev_info(opt->dev, "Found %c%c OPT%04x\n", manufacturer[0], - manufacturer[1], device_id); + dev_info(dev, "Found %c%c OPT%04x\n", manufacturer[0], manufacturer[1], + device_id); =20 return 0; } =20 static int opt3001_configure(struct opt3001 *opt) { + struct i2c_client *client =3D opt->client; + struct device *dev =3D &client->dev; int ret; u16 reg; =20 - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", + dev_err(dev, "failed to read register %02x\n", OPT3001_CONFIGURATION); return ret; } @@ -750,17 +757,16 @@ static int opt3001_configure(struct opt3001 *opt) reg &=3D ~OPT3001_CONFIGURATION_ME; reg &=3D ~OPT3001_CONFIGURATION_FC_MASK; =20 - ret =3D i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION, - reg); + ret =3D i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg); if (ret < 0) { - dev_err(opt->dev, "failed to write register %02x\n", + dev_err(dev, "failed to write register %02x\n", OPT3001_CONFIGURATION); return ret; } =20 - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_LOW_LIMIT); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_LOW_LIMIT); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", + dev_err(dev, "failed to read register %02x\n", OPT3001_LOW_LIMIT); return ret; } @@ -768,9 +774,9 @@ static int opt3001_configure(struct opt3001 *opt) opt->low_thresh_mantissa =3D OPT3001_REG_MANTISSA(ret); opt->low_thresh_exp =3D OPT3001_REG_EXPONENT(ret); =20 - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_HIGH_LIMIT); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_HIGH_LIMIT); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", + dev_err(dev, "failed to read register %02x\n", OPT3001_HIGH_LIMIT); return ret; } @@ -785,6 +791,8 @@ static irqreturn_t opt3001_irq(int irq, void *_iio) { struct iio_dev *iio =3D _iio; struct opt3001 *opt =3D iio_priv(iio); + struct i2c_client *client =3D opt->client; + struct device *dev =3D &client->dev; int ret; bool wake_result_ready_queue =3D false; enum iio_chan_type chan_type =3D opt->chip_info->chan_type; @@ -793,10 +801,10 @@ static irqreturn_t opt3001_irq(int irq, void *_iio) if (!ok_to_ignore_lock) mutex_lock(&opt->lock); =20 - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", - OPT3001_CONFIGURATION); + dev_err(dev, "failed to read register %02x\n", + OPT3001_CONFIGURATION); goto out; } =20 @@ -815,10 +823,10 @@ static irqreturn_t opt3001_irq(int irq, void *_iio) IIO_EV_DIR_FALLING), iio_get_time_ns(iio)); } else if (ret & OPT3001_CONFIGURATION_CRF) { - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_RESULT); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_RESULT); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", - OPT3001_RESULT); + dev_err(dev, "failed to read register %02x\n", + OPT3001_RESULT); goto out; } opt->result =3D ret; @@ -851,7 +859,6 @@ static int opt3001_probe(struct i2c_client *client) =20 opt =3D iio_priv(iio); opt->client =3D client; - opt->dev =3D dev; opt->chip_info =3D i2c_get_match_data(client); =20 mutex_init(&opt->lock); @@ -885,7 +892,7 @@ static int opt3001_probe(struct i2c_client *client) } opt->use_irq =3D true; } else { - dev_dbg(opt->dev, "enabling interrupt-less operation\n"); + dev_dbg(dev, "enabling interrupt-less operation\n"); } =20 ret =3D iio_device_register(iio); @@ -905,6 +912,7 @@ static void opt3001_remove(struct i2c_client *client) { struct iio_dev *iio =3D i2c_get_clientdata(client); struct opt3001 *opt =3D iio_priv(iio); + struct device *dev =3D &client->dev; int ret; u16 reg; =20 @@ -913,21 +921,20 @@ static void opt3001_remove(struct i2c_client *client) if (opt->use_irq) free_irq(client->irq, iio); =20 - ret =3D i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); if (ret < 0) { - dev_err(opt->dev, "failed to read register %02x\n", - OPT3001_CONFIGURATION); + dev_err(dev, "failed to read register %02x\n", + OPT3001_CONFIGURATION); return; } =20 reg =3D ret; opt3001_set_mode(opt, ®, OPT3001_CONFIGURATION_M_SHUTDOWN); =20 - ret =3D i2c_smbus_write_word_swapped(opt->client, OPT3001_CONFIGURATION, - reg); + ret =3D i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg); if (ret < 0) { - dev_err(opt->dev, "failed to write register %02x\n", - OPT3001_CONFIGURATION); + dev_err(dev, "failed to write register %02x\n", + OPT3001_CONFIGURATION); } } =20 --=20 2.54.0 From nobody Fri Jun 19 11:21:28 2026 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (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 A2D313A6B8D for ; Sun, 14 Jun 2026 13:19:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443151; cv=none; b=hi5yb5EEewJMRXlbQqBJuzn6Wd82GZv5pdYKp85Be7UGFWpGD6t0fa+K926TeVh8LTvvTarh+95CWkdKlor3a7tILsAzDozXcjV3Fp/KFXQnc532FQztWJMM5/f6QjEOvJne2nwbbE2nZ2CsJR5unFH4Q05XXOaQVQ77wwtFelw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443151; c=relaxed/simple; bh=VpsekJgKgyNUwXeVM3uBLSOq/s4k35Xo3gx0kXHLQ/E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Pk/DL9e6r9Yid+KZhpqZm/SCxhdkcM9XoEohwNTtazMoqHt8t5zs70OVRjwY88SuzYI5nLxbEL3dV6g4GQU4C+vqMKriwMF4PhEUNd8LAV8iecS/DCT0S2QTM/63QxJQRh2ca/GPvLJrcV48ItYhxCrSSQqqUlZ/pkyKecBhfRU= 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=aBXy8kEa; arc=none smtp.client-ip=209.85.128.51 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="aBXy8kEa" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-490bc6a7958so27849895e9.1 for ; Sun, 14 Jun 2026 06:19:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781443148; x=1782047948; 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=Zf9bEWY7PTPQGv5EEwhDzgckj4bBWYf2ns3N6PMwkX4=; b=aBXy8kEajI1zj6BQ3BroaYu9YbYwSUw2kAd2Dl3XpvBaHEUTMuXiADcDWYfE6e9W4g JXV4fsMjn1wU5xNwOG+9zMD1E1UpNd6zATbNpdbAxclzzVuKmwk3G8XSC4te8ds3pelE /9VXcRAkvaJ7DZTetiWoLsPnRYZ7kgN/PtgikySUeE0DLH7RIC0C19/25MrJvSoZBg4I ZAJcMR5UlerUyW2QE/1/B/4eDVwEj/QfLHUgT082KSKS9GWmBtas8RnDB+YiiZPTXxxN jyiAHQr38uZSFHzLeD+nFEEngKIfNMd4gKtGiR15CkwmE6LHlwTNRajgXjJ7N8szBgN2 jkEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781443148; x=1782047948; 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=Zf9bEWY7PTPQGv5EEwhDzgckj4bBWYf2ns3N6PMwkX4=; b=HdE6zFXtTVxNoiKRxeRM7tlv2WP4yhFG11EDC205zfbyVqHZpS1mgZ1GW4TdVb0CaR vhAIkORj/Mgw3tRj2CRRjCNQjkRrvWFNBbxcubNHEZvk2+7x2AY0FDOHyj/FAg5HfDXk 2DheVrazU/QP3qLAbzbsqvPdB9FzEhF+mtw4LWkwb8q6wviyKqNJ/qVZ6HyhPkaFAdbg zfduVKAgRQUWria5r+PM2F0OXyasMIz+MvVrCdaTFkXmjy9ojLs3WwzUkSNDWCuR6f05 pKsjh/OyytSG8pYy4sCSGRcJwRHQ3+PoTEmDmA2jSfNDIoezT2sI+DBghwFmsPD0q0mT eAAg== X-Forwarded-Encrypted: i=1; AFNElJ9/f4imw4IIdQZc4F4l5FV11ue5Qdc6QMGa64OfOnHUwxvRo9cCm14BLck6V59twh1+SWAKUMn8K/1BUQY=@vger.kernel.org X-Gm-Message-State: AOJu0YyvJLRTDYwsvnHtyweB9iusi9XS4larvtuyomiho1UOGPSfhLb/ C3Wpw6boG1M46JtQex1jofySqlNCNLWfeg3gOwMI0iFEGuF42s/0ecYZ X-Gm-Gg: Acq92OFtmOyxQzGiJaitCywuUrFECJ6/Br+jHcTKQgFMIXib8X1lDK6vNCjfiMfS7RU PcGK7i5zrB97A9TGV9rS6MUeloQjixC/iP4Z/pBURFX359nMzxn1u3AOfb9vRrjNpNgRx5YWLLh nnFkcGEexStCNhanOfuSWQzso6qBBcoeDX9n2IGltNehcwftlDFC0wfu9r0LadcLjrSkLUnv4gq w+p7UCIBWawSA9L/fWtFj1rjMpF8cruwWP9cOzXQFdepQBbpuRFoUyasmB59PMcajeXwI5SG+NW VIkZ/6cE7iLvN6Fish4Tuileb/eCDwzO0EhPhGRgBM6YD6tND6Eblhzi35vwtXe5YIjt9gTEgpA RtJL9MHyksANqcDtItMY2auTBpHhm4CYTVBhONXNRVyxlxoGVN65sp2MGJ/ug26IRDpmFfaKNrR VaoHc5k3JgLSsD7SYmqdLLwf46nBh5R+8Vz5e2wTeaSpML4mJnJIw1Rd/Ob9K0hJYlSnKCG1OdK GMpbZe+Q6BPImI6VF7tX798vOHNuphHHjGTcYbS/ci2c/jxqiwLVm0XDwYJhdK66JCcwDPPXD9U 6NAGTb1X1tWJhwRZXMMZbIrCrxOKJR6CRKmwiFpJo2p08dsWBZU= X-Received: by 2002:a05:600c:c171:b0:48a:53cb:8604 with SMTP id 5b1f17b1804b1-490ec4dfb03mr99342215e9.14.1781443147986; Sun, 14 Jun 2026 06:19:07 -0700 (PDT) Received: from [192.168.1.187] ([2a02:8308:4092:11f0:c287:187e:fb7a:66a4]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4922037055csm168406355e9.13.2026.06.14.06.19.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jun 2026 06:19:07 -0700 (PDT) From: Joshua Crofts Date: Sun, 14 Jun 2026 15:19:05 +0200 Subject: [PATCH v6 3/8] iio: light: opt3001: prefer dev_err_probe() 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: <20260614-opt3001-cleanup-v6-3-e3f5901dcc26@gmail.com> References: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> In-Reply-To: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Maxwell Doose , Andy Shevchenko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781443145; l=3588; i=joshua.crofts1@gmail.com; s=20260530; h=from:subject:message-id; bh=VpsekJgKgyNUwXeVM3uBLSOq/s4k35Xo3gx0kXHLQ/E=; b=C/WWQZts2dxmh/A11s9TXIQV2nkOzJlZCFSatj/tkvn0o3xKZOE9A9d04beG14wN1ns2fWCHh GV9B+t/wYb4A04df9BU3JJ2Qwco8rpSWRXwgbsGtJdox9ziw4i1sZh2 X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=RTDOoVwgeL4oFdASj9U+cxJuIjXuXk73zkjnGOJKbEo= Switch driver to use dev_err_probe() to unify error messages generated in *_probe() and probe path functions. Reviewed-by: Maxwell Doose Reviewed-by: Andy Shevchenko Signed-off-by: Joshua Crofts --- drivers/iio/light/opt3001.c | 57 ++++++++++++++++++-----------------------= ---- 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index 28455d887e1d..c1062ace184c 100644 --- a/drivers/iio/light/opt3001.c +++ b/drivers/iio/light/opt3001.c @@ -698,21 +698,17 @@ static int opt3001_read_id(struct opt3001 *opt) int ret; =20 ret =3D i2c_smbus_read_word_swapped(client, OPT3001_MANUFACTURER_ID); - if (ret < 0) { - dev_err(dev, "failed to read register %02x\n", - OPT3001_MANUFACTURER_ID); - return ret; - } + if (ret < 0) + return dev_err_probe(dev, ret, "failed to read register %02x\n", + OPT3001_MANUFACTURER_ID); =20 manufacturer[0] =3D ret >> 8; manufacturer[1] =3D ret & 0xff; =20 ret =3D i2c_smbus_read_word_swapped(client, OPT3001_DEVICE_ID); - if (ret < 0) { - dev_err(dev, "failed to read register %02x\n", - OPT3001_DEVICE_ID); - return ret; - } + if (ret < 0) + return dev_err_probe(dev, ret, "failed to read register %02x\n", + OPT3001_DEVICE_ID); =20 device_id =3D ret; =20 @@ -730,11 +726,9 @@ static int opt3001_configure(struct opt3001 *opt) u16 reg; =20 ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); - if (ret < 0) { - dev_err(dev, "failed to read register %02x\n", - OPT3001_CONFIGURATION); - return ret; - } + if (ret < 0) + return dev_err_probe(dev, ret, "failed to read register %02x\n", + OPT3001_CONFIGURATION); =20 reg =3D ret; =20 @@ -758,28 +752,22 @@ static int opt3001_configure(struct opt3001 *opt) reg &=3D ~OPT3001_CONFIGURATION_FC_MASK; =20 ret =3D i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg); - if (ret < 0) { - dev_err(dev, "failed to write register %02x\n", - OPT3001_CONFIGURATION); - return ret; - } + if (ret < 0) + return dev_err_probe(dev, ret, "failed to write register %02x\n", + OPT3001_CONFIGURATION); =20 ret =3D i2c_smbus_read_word_swapped(client, OPT3001_LOW_LIMIT); - if (ret < 0) { - dev_err(dev, "failed to read register %02x\n", - OPT3001_LOW_LIMIT); - return ret; - } + if (ret < 0) + return dev_err_probe(dev, ret, "failed to read register %02x\n", + OPT3001_LOW_LIMIT); =20 opt->low_thresh_mantissa =3D OPT3001_REG_MANTISSA(ret); opt->low_thresh_exp =3D OPT3001_REG_EXPONENT(ret); =20 ret =3D i2c_smbus_read_word_swapped(client, OPT3001_HIGH_LIMIT); - if (ret < 0) { - dev_err(dev, "failed to read register %02x\n", - OPT3001_HIGH_LIMIT); - return ret; - } + if (ret < 0) + return dev_err_probe(dev, ret, "failed to read register %02x\n", + OPT3001_HIGH_LIMIT); =20 opt->high_thresh_mantissa =3D OPT3001_REG_MANTISSA(ret); opt->high_thresh_exp =3D OPT3001_REG_EXPONENT(ret); @@ -886,10 +874,11 @@ static int opt3001_probe(struct i2c_client *client) ret =3D request_threaded_irq(irq, NULL, opt3001_irq, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "opt3001", iio); - if (ret) { - dev_err(dev, "failed to request IRQ #%d\n", irq); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, + "failed to request IRQ #%d\n", + irq); + opt->use_irq =3D true; } else { dev_dbg(dev, "enabling interrupt-less operation\n"); --=20 2.54.0 From nobody Fri Jun 19 11:21:28 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (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 76A723A6F0A for ; Sun, 14 Jun 2026 13:19:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443152; cv=none; b=qgjOhTBljACOkuMjAdDV/Yk2OETdVAoYFJbs0gxiA4TejBxSJ7JDi1WDP8ahiFbGwDTbwnyzO/ZNhqy//eZfg4Rmpih5qo6Ih1PrEmODm0PJCAn/KQG/zoveyXCzrzkkj0KcoP5zz+F8iP3tBixzuj2yHNEUHaermj8ZNkrwlrY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443152; c=relaxed/simple; bh=95sy0VX59VRwSK2QiJBxoBVckVG7ZEaGUPRGIQ5lLbk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qzctk1D8oUTaCqUcZbGtO7fwx2Rz8GqasYheFs7DcA5g71kmhS/Uuia0QR/mDfdi+/8BdCxtn3mKlgMggLFJSgLVT6HGIxlpCdvdklrA7OQfVY+8hp76DNpYvDmevKqWI57uNpX0LzgEaAAzKSPxNKmsEgZOemnH4JZ4GACbxsk= 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=V9Si6bnW; arc=none smtp.client-ip=209.85.128.43 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="V9Si6bnW" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-490b9318997so17408225e9.2 for ; Sun, 14 Jun 2026 06:19:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781443149; x=1782047949; 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=qcMMHq8QVbJO4BaMHes6uIfe774ysaH55ers9LsNGrw=; b=V9Si6bnW2Jdk+v67uuhLp+GSifXkPn5uqZLbpVkr9ukjrOQgcslDg5qmT3+5sYnGo9 XCGkI07z84dFYJAIXPwQBNhHXkH/NCDqHjWTjLNkD3GXfBdbyHls9D64BbVkFjTFeS2m QiQsesb3EKKcrmOUOtdLfLhFLCbxa+5E4YEr/s8JNWTzQ7SFp6iUed7w0JhuNFPAb26y Y7mR2NpfgiRLoCtA4P/GdOLJcujnq2Fwkd83OMP5YtklnhBtQpdbEu3Faff2IE/IW5b/ CG64EuW8aHd/vWrp8vXgX4rrDwXqv6dg4PB9/WXfZrU3/0bK5Y4i69dD9vo5xxy0D8pI nUog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781443149; x=1782047949; 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=qcMMHq8QVbJO4BaMHes6uIfe774ysaH55ers9LsNGrw=; b=ezuk6BtpnMFGr7DTJNL5b1niGoq6Pg+vt9R/N2w4cDaD0Kpq4hN69zRVnDtp+aBcly 0J86lb/+bHynCc4cqyEpfbV5XT0GgiBsWNRRxjdOxDyVQ+gt6n5XX79R7G2dm3Lvbi6G 6DbyQRzxkE1UwY5PuCB8kbAXx+cK9eHKRBPzr0xmBmDUtuwHEB2fiZU08ZRcViPJFP6Q 0qDUlDIKk2fIsUSjPSUCDjbUF9FvCtsjhghh5E+/j/TnGWqjjTjoEH2F12FoheRc2GaP 24OcOoDyA0blJs/gJZr6wfT6s5SPIPONuH8eP5TJjah4OMc/N/0vzuaPxw0OBUBp2i60 1Ptg== X-Forwarded-Encrypted: i=1; AFNElJ/ZU8BIHDYzpErQITlOPzEFg1iYp/31FwFyBm39mgE7VBucIict/lV797hu2IdTg5HsoBHiTQvjIYtlYx4=@vger.kernel.org X-Gm-Message-State: AOJu0YyBI0W3KkRiAtqJHmDhRQz+z6Tckl1aTotk4OnYUjb1LwQe3t7Q 2zTcOFE2ve6lxlcmZVgLgtv09mOQz/t0p2I/ejpQ9Dg06fMHj6+Uar3u X-Gm-Gg: Acq92OGKBvC4v/GSUQOeE7Vh2d25lrSNOulhRKibbwzRDtYxdc21C+637ChWE6e930v AoaN9bMCarxc1jPYi01DFHg7Fr/QUo4NcM0hxOKIWjQGul0ywquPpk306sAAU5ZGtkt7YdCDRu5 1oStMgLNscfGu3H8+RABiH4210XK+98GdTAzfvcEtANgbMvtvVQlqoNSk8DpJaO66uYuHFqotL2 CE2c5WYdcYW3ApJJeuXi4HryDCu2ySp01edVUzm3e1I9mUvWVSB3A9Y9NVXhDh1if7M6Mu7fIAm IpyMRv5XMGdxgFT3b6LsYFbSe6EFq0UaKg6uaWJYuW7L3xpBH9pvTKEd3MwGvvDK40+rvgpgSqp RZptIOTsaqfxdt6YeyRBrp3gBvZKYdkMO2rsKyfXVb4Z+F7Kjb5Big/W1tZ/rWgzGYvjw+T1llN mnCLfO9RAS/H7B4hKDnd3h9odFvvXS2+FOVIdeGa/wNTpoqsjLKtkMdkt/AGAtE2PO2151gKadE aHIWOlwBRfQ64qu9ks0uHU8YJbCkOIAjW6Q5DcNugEKw6XQBh6lYqyP5ovBlBd6RIB6NwHyE5sP yVuxNvafrrU4gG7SWP3g3WmSxqZhUb1taHnEiM3S X-Received: by 2002:a05:600c:4fc2:b0:490:5cb3:e94a with SMTP id 5b1f17b1804b1-492200851cdmr85654855e9.2.1781443148726; Sun, 14 Jun 2026 06:19:08 -0700 (PDT) Received: from [192.168.1.187] ([2a02:8308:4092:11f0:c287:187e:fb7a:66a4]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4922037055csm168406355e9.13.2026.06.14.06.19.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jun 2026 06:19:08 -0700 (PDT) From: Joshua Crofts Date: Sun, 14 Jun 2026 15:19:06 +0200 Subject: [PATCH v6 4/8] iio: light: opt3001: ensure correct parenthesis alignment 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: <20260614-opt3001-cleanup-v6-4-e3f5901dcc26@gmail.com> References: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> In-Reply-To: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko , Maxwell Doose X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781443145; l=6481; i=joshua.crofts1@gmail.com; s=20260530; h=from:subject:message-id; bh=95sy0VX59VRwSK2QiJBxoBVckVG7ZEaGUPRGIQ5lLbk=; b=a6YHvQ/t/dFijZ6E0OhfjCfurBkhkvdMgbFEnkfxW7HmjrSCWN7D8ibXpMJFndYsuoTTsxWTZ l7JBSuv4qHRAloMHIQfGVA1LqI41TTFiK31XIS7uD8++Jj/9gVythH1 X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=RTDOoVwgeL4oFdASj9U+cxJuIjXuXk73zkjnGOJKbEo= Ensure correct parenthesis alignment per checkpatch.pl report. No functional change. Suggested-by: Andy Shevchenko Reviewed-by: Maxwell Doose Reviewed-by: Andy Shevchenko Signed-off-by: Joshua Crofts --- drivers/iio/light/opt3001.c | 71 +++++++++++++++++++++++++----------------= ---- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index c1062ace184c..7aee251386e9 100644 --- a/drivers/iio/light/opt3001.c +++ b/drivers/iio/light/opt3001.c @@ -223,8 +223,8 @@ static const struct opt3001_scale opt3002_scales[] =3D { }, }; =20 -static int opt3001_find_scale(const struct opt3001 *opt, int val, - int val2, u8 *exponent) +static int opt3001_find_scale(const struct opt3001 *opt, int val, int val2, + u8 *exponent) { int i; for (i =3D 0; i < ARRAY_SIZE(*opt->chip_info->scales); i++) { @@ -242,8 +242,8 @@ static int opt3001_find_scale(const struct opt3001 *opt= , int val, return -EINVAL; } =20 -static void opt3001_to_iio_ret(struct opt3001 *opt, u8 exponent, - u16 mantissa, int *val, int *val2) +static void opt3001_to_iio_ret(struct opt3001 *opt, u8 exponent, u16 manti= ssa, + int *val, int *val2) { int ret; int whole =3D opt->chip_info->factor_whole; @@ -364,8 +364,8 @@ static int opt3001_get_processed(struct opt3001 *opt, i= nt *val, int *val2) if (opt->use_irq) { /* Wait for the IRQ to indicate the conversion is complete */ ret =3D wait_event_timeout(opt->result_ready_queue, - opt->result_ready, - msecs_to_jiffies(OPT3001_RESULT_READY_LONG)); + opt->result_ready, + msecs_to_jiffies(OPT3001_RESULT_READY_LONG)); if (ret =3D=3D 0) return -ETIMEDOUT; } else { @@ -474,8 +474,8 @@ static int opt3001_set_int_time(struct opt3001 *opt, in= t time) } =20 static int opt3001_read_raw(struct iio_dev *iio, - struct iio_chan_spec const *chan, int *val, int *val2, - long mask) + struct iio_chan_spec const *chan, + int *val, int *val2, long mask) { struct opt3001 *opt =3D iio_priv(iio); int ret; @@ -506,8 +506,8 @@ static int opt3001_read_raw(struct iio_dev *iio, } =20 static int opt3001_write_raw(struct iio_dev *iio, - struct iio_chan_spec const *chan, int val, int val2, - long mask) + struct iio_chan_spec const *chan, + int val, int val2, long mask) { struct opt3001 *opt =3D iio_priv(iio); int ret; @@ -532,9 +532,11 @@ static int opt3001_write_raw(struct iio_dev *iio, } =20 static int opt3001_read_event_value(struct iio_dev *iio, - const struct iio_chan_spec *chan, enum iio_event_type type, - enum iio_event_direction dir, enum iio_event_info info, - int *val, int *val2) + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + enum iio_event_info info, + int *val, int *val2) { struct opt3001 *opt =3D iio_priv(iio); int ret =3D IIO_VAL_INT_PLUS_MICRO; @@ -544,11 +546,11 @@ static int opt3001_read_event_value(struct iio_dev *i= io, switch (dir) { case IIO_EV_DIR_RISING: opt3001_to_iio_ret(opt, opt->high_thresh_exp, - opt->high_thresh_mantissa, val, val2); + opt->high_thresh_mantissa, val, val2); break; case IIO_EV_DIR_FALLING: opt3001_to_iio_ret(opt, opt->low_thresh_exp, - opt->low_thresh_mantissa, val, val2); + opt->low_thresh_mantissa, val, val2); break; default: ret =3D -EINVAL; @@ -560,9 +562,11 @@ static int opt3001_read_event_value(struct iio_dev *ii= o, } =20 static int opt3001_write_event_value(struct iio_dev *iio, - const struct iio_chan_spec *chan, enum iio_event_type type, - enum iio_event_direction dir, enum iio_event_info info, - int val, int val2) + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + enum iio_event_info info, + int val, int val2) { struct opt3001 *opt =3D iio_priv(iio); struct i2c_client *client =3D opt->client; @@ -626,8 +630,9 @@ static int opt3001_write_event_value(struct iio_dev *ii= o, } =20 static int opt3001_read_event_config(struct iio_dev *iio, - const struct iio_chan_spec *chan, enum iio_event_type type, - enum iio_event_direction dir) + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir) { struct opt3001 *opt =3D iio_priv(iio); =20 @@ -635,8 +640,10 @@ static int opt3001_read_event_config(struct iio_dev *i= io, } =20 static int opt3001_write_event_config(struct iio_dev *iio, - const struct iio_chan_spec *chan, enum iio_event_type type, - enum iio_event_direction dir, bool state) + const struct iio_chan_spec *chan, + enum iio_event_type type, + enum iio_event_direction dir, + bool state) { struct opt3001 *opt =3D iio_priv(iio); struct i2c_client *client =3D opt->client; @@ -800,16 +807,16 @@ static irqreturn_t opt3001_irq(int irq, void *_iio) OPT3001_CONFIGURATION_M_CONTINUOUS) { if (ret & OPT3001_CONFIGURATION_FH) iio_push_event(iio, - IIO_UNMOD_EVENT_CODE(chan_type, 0, - IIO_EV_TYPE_THRESH, - IIO_EV_DIR_RISING), - iio_get_time_ns(iio)); + IIO_UNMOD_EVENT_CODE(chan_type, 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_RISING), + iio_get_time_ns(iio)); if (ret & OPT3001_CONFIGURATION_FL) iio_push_event(iio, - IIO_UNMOD_EVENT_CODE(chan_type, 0, - IIO_EV_TYPE_THRESH, - IIO_EV_DIR_FALLING), - iio_get_time_ns(iio)); + IIO_UNMOD_EVENT_CODE(chan_type, 0, + IIO_EV_TYPE_THRESH, + IIO_EV_DIR_FALLING), + iio_get_time_ns(iio)); } else if (ret & OPT3001_CONFIGURATION_CRF) { ret =3D i2c_smbus_read_word_swapped(client, OPT3001_RESULT); if (ret < 0) { @@ -872,8 +879,8 @@ static int opt3001_probe(struct i2c_client *client) /* Make use of INT pin only if valid IRQ no. is given */ if (irq > 0) { ret =3D request_threaded_irq(irq, NULL, opt3001_irq, - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, - "opt3001", iio); + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "opt3001", iio); if (ret) return dev_err_probe(dev, ret, "failed to request IRQ #%d\n", --=20 2.54.0 From nobody Fri Jun 19 11:21:28 2026 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (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 130F33A785A for ; Sun, 14 Jun 2026 13:19:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443152; cv=none; b=C+p2x8xjP2IyXngj74MrOe7vWz3BLsq1pLSrkw37ZvuP6vY3pk0PjceAS7wL6sWK+yqRJggEcr32WyPpDq7TWb+ilKXKplb/REv3MNEQpnhg47k0Y+HvZ3BipxHnLjf4pVekSSo+sctfeV+WzVMJiTdq07uuZjL8GS7Jj32dEL4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443152; c=relaxed/simple; bh=7pcoUaqIRd/7j3LmuNYVsOcOH1ehLxEGYjvlDt6Bx2o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RuIuVRwwGIRbNnpNUITR0dZ/mbJfA7Tf1b1srOBM7xOBY8DJ6FEjGWr/NUEtNzABdZvErTrAWp2Q9b1m0EFajvv6wAkTcAKQvcChAGKqx4BR6aMPgJKUCBv5eEB6UGSWcwUHc9wxwr0Mg7P/CeHU+m86NcmsbHHEar0OvOfXdHg= 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=GluRpHHs; arc=none smtp.client-ip=209.85.221.41 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="GluRpHHs" Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-45eee266c6cso2144811f8f.1 for ; Sun, 14 Jun 2026 06:19:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781443149; x=1782047949; 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=WdfgrerpcVKTn3TB1SrSHpbmiiM+gPn9P9q/mBiS4XU=; b=GluRpHHsg+SOrnN6zDgwOWGyRJ/Nv1pgyIoYHMXmhpZat5fWihgIxqFqN/qknkMBmN kNmsM0jVwIIjMKwqSmZqdIMyrorUr/LJNREZCCsKaiRKNcujI5qwss4etILj4DPRwrsJ sJfWbXUMv6pwJTILt1jSO35SDVYDN1nZfxVdbPS2VEW4m7/4bF8eiK6Wfb24bxRLLa8/ EURbtE8IELupMccJHIkp32WaNkkAZS+kD6++q0/3Qb9qAFxVEtHcI1F+WbNMVJ33O9pP eivGi1xcQzvI4KhbhwoX8zjiFGOGq0lPZa+MdA+WSRH6qJKbQpao3k9vrGOKY6dFibmR DsWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781443149; x=1782047949; 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=WdfgrerpcVKTn3TB1SrSHpbmiiM+gPn9P9q/mBiS4XU=; b=EkDN1vD+AudS2fCtGt3EaZEhNJTs6VWgD1WDo8SkYkgutEIY/1sd2+wV8o9lK3syKI ETLeZ/tIf6tWa79csom/xIkKPMDl9378YwU1twHf3ioCx+nY6ryGuR/UD2gts5GC3W4T RAaztX69fd481ugmEmct4HnRUrlOwi9ymGHAMy3GSRIS0zqWEKol3KIYRviKV2yLMX59 uG5ozr3TGB6Jr09XcCYE1CxQTkD//KVkGDdhUobP0drAeGGwIP8jOHUfzC9KR/L3+sxv YCTGsstbraN9ILr66k2KHyyvB4XekLzL1c33N3dELKjWBa6yAVPFrrOcEJHjZrI62S64 8rgQ== X-Forwarded-Encrypted: i=1; AFNElJ+yp9cgp2dFLyGX2CRa4tPjJ74OmBY6mOccBulfgy4Y8S0iTKWap9UhQ+z2meUqMVA8koz8sLcCTzcJzps=@vger.kernel.org X-Gm-Message-State: AOJu0Yyf1L029hpBcGzDdIZ0KCEnXb4TO4FL5ODpEAwhyS1rNhvjowwg VdbrZdF3kvojKs/CbYP+D7coZVrFhSGH/Jmrf0Y2RR7ksqhDB1b3Z1SQ X-Gm-Gg: Acq92OHXysQXXSBJWlVjDSEgYd4dSqVI1zhZCxhqlp1st1QemMAg1uwUidNOmKss4Wf VCwZ+O3yonkhJOeFHrPceSZr51MfOApL0Vm4epS+iLTKkccG6PKEn4ebonuKplzBp+zpk/dzMBn GvBe78NSnNdwvJxgLyYG5cSRL5uTI6xzWtjv18/q42BiAz7obKrmLIHitRvb5LUMc99tuDKHwyC 0/yhb2j1fnprNmmiQlkZURyNybszQE1Vj140D4SXrQEMHGqQ0eHC0G2+9656dhZJYCr2lGM907W tB4Iz7YzhTLSg4fW8T+hxGgylpbsVJmAEz4r2lxgBM/snRRIP+owC7skI3SXBZjqgdDAp/bcSYO 3FCAGDc5vQPOncXkJNM9MILvoeji8v2J3JJ1yPrHZUziD4H3HyRTH7TyRct5j00d0k7kfPntGtQ tUF5nOPyb0vUlocF39QVgY7vQXtOZcGtEOhq6gZrHPWwDQjIubt3q5Ss1eGNqJKSWPYb19Ov0IF Zw4imIXn6XBK9m3ZdWdJHngH1hcKwOHsayCWSpTDyWLA9AiS0f4uVEM4XUMPXaOAYusBVbAspE8 MKl7BSsNgdg1MolTSyD5tJXkv+x72e9x8c5VD3jgLfQXTjZDG5Q= X-Received: by 2002:a05:600c:474f:b0:490:d946:47cf with SMTP id 5b1f17b1804b1-4922005e1c4mr80233405e9.4.1781443149473; Sun, 14 Jun 2026 06:19:09 -0700 (PDT) Received: from [192.168.1.187] ([2a02:8308:4092:11f0:c287:187e:fb7a:66a4]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4922037055csm168406355e9.13.2026.06.14.06.19.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jun 2026 06:19:09 -0700 (PDT) From: Joshua Crofts Date: Sun, 14 Jun 2026 15:19:07 +0200 Subject: [PATCH v6 5/8] iio: light: opt3001: localize for loop iterator 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: <20260614-opt3001-cleanup-v6-5-e3f5901dcc26@gmail.com> References: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> In-Reply-To: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Maxwell Doose , Andy Shevchenko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781443145; l=1056; i=joshua.crofts1@gmail.com; s=20260530; h=from:subject:message-id; bh=7pcoUaqIRd/7j3LmuNYVsOcOH1ehLxEGYjvlDt6Bx2o=; b=gR5sr15YoI2Fa18WFnZYG1sNCWyo24fzb4lc0Nlb6GxIsjtc9poi7Xac/3Psa2YmJcU/xXlwA 2xNx9NYQOxFDseHjCNfdfLcVNtKVkQc8wSVjSIMCve8hucvPij2oUKi X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=RTDOoVwgeL4oFdASj9U+cxJuIjXuXk73zkjnGOJKbEo= Localize loop iterator to tighten scope and improve code style per checkpatch.pl report. No functional change. Reviewed-by: Maxwell Doose Reviewed-by: Andy Shevchenko Signed-off-by: Joshua Crofts --- drivers/iio/light/opt3001.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index 7aee251386e9..80a2ede91272 100644 --- a/drivers/iio/light/opt3001.c +++ b/drivers/iio/light/opt3001.c @@ -226,8 +226,7 @@ static const struct opt3001_scale opt3002_scales[] =3D { static int opt3001_find_scale(const struct opt3001 *opt, int val, int val2, u8 *exponent) { - int i; - for (i =3D 0; i < ARRAY_SIZE(*opt->chip_info->scales); i++) { + for (unsigned int i =3D 0; i < ARRAY_SIZE(*opt->chip_info->scales); i++) { const struct opt3001_scale *scale =3D &(*opt->chip_info->scales)[i]; /* * Compare the integer and micro parts to determine value scale. --=20 2.54.0 From nobody Fri Jun 19 11:21:28 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 CA57F3A6B9D for ; Sun, 14 Jun 2026 13:19:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443153; cv=none; b=NYD+b3+vDnBEld35ZBHiQejKAmAWSJ+o0NSH+SoSMVrLRsVWNmyHhV/XX7ectBDwNiyUwOwMzwz++rFjGOwKwI1r9lk3JaanuQSUBIp9zgO9LqA2Oes+qT1KQBm3P5MwPI9LKOWmgMMjWaun8nMYWK57EAeUIk6g6siPbJYzEf0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443153; c=relaxed/simple; bh=Qp6Lqng68h9dLYwlv1j6HjDqDQFUhvXkpj3LpMbbnVs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=e5PjYDSHlpOO51emGESLjIOEOhCyVehVk6RS+O1ubmGjeyaeVqGnta5WEwmod4y33GNu11TmfyGYbhM9YBx9DwmD+Dix+NBp38ZOoSpfF589NQHPNKUMp+T9iWXN3TWogNNp4M8s/7vVC8tuSKDK2K4VXT6Lb3wcE5daHe4s9sU= 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=JBnNr6JD; arc=none smtp.client-ip=209.85.128.46 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="JBnNr6JD" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-490ac10e337so16170995e9.3 for ; Sun, 14 Jun 2026 06:19:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781443150; x=1782047950; 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=Nmq9I0xcaZ6mibQuOgSq0p08tYtCtOv85qyrVl70DmQ=; b=JBnNr6JD37IkXTpWvHAN6LG1fFJ1/1cvpDMxS5wevNcrIl6Vs9MAvuubVMWTpVDj7w HX3+X1Bcgjiat0mdar6QVf6vS/HmeO3mglePVvRd6LRTFr1bI/EPMSpH9LQAWI3kTBkr qAu0XznKhMGrzF5lRMSh+vbnrW35kG6HD/3Y779Y5PsvMdX099Dd6vKN3sm2gkYcTGTm DUfOkd72UrG8QI/FTCXTmQYL/xdXbRcYoxH+QA9j+mkpvoG1Gj74vvxSr3PNt+Q7C3ET 0oe69J5UyP35eP+k3v4j2BIw+XH7J1d94QnsYwWoonxPUgRThC1C6x4x5oeGuNLQVAaC KoQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781443150; x=1782047950; 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=Nmq9I0xcaZ6mibQuOgSq0p08tYtCtOv85qyrVl70DmQ=; b=LgZKtg1eLF3nvaNzOBUTmKxHiIAODLxP8IENTFi556gJsYH6qQNfHIVV2g/VTX+uAh PrHIk+Ub5kVN+epv8Gn6Vti+vFvbJj6LjG8Oj9z7pW+aUJdHDlZV2aVENzJb0Q5FIUB/ J0x0LjT7O0Yv9nUz3C+RFCWba996XRRutnwZeHkFK2oXxO+qOGuH+4JTK2jOKYeGb8GN bxe6SfjufSH8FjvXZdZoEPBuUdNNvxR1AZPS6W2wHSYsg4A0trLckDv+nL9zPSZu2dwh D2EPOCTxy8nBGALYfPRKQ93Ywhb6feowHUQ6QgbYlTUiNiAVLryqCgTGsBuyVWP5QD/x Jo/A== X-Forwarded-Encrypted: i=1; AFNElJ+39GfdHu+zk7fRM89I9fzsBD8bLru6M2ZOGQ5qlfNtyCEk5n+mB/wNaRMnlBrpG2ibJVNyYEA9s7aqPkk=@vger.kernel.org X-Gm-Message-State: AOJu0Yy3CCwj/Z8AQAFQ8lrRHbAc5fAwzT/WnGgNpwB7pijNw6xnAnz3 vg5NWKsfahbItD+1suVcYE8Qtra2V50eyhUwvEQntTL3R7ZrQXcqIwkM X-Gm-Gg: Acq92OGik4JUBdWNjWfxGudSSds3RY/Uc1N61Wy2s7u3pJWA8X88Z4loAZwOdrM1sJ1 uJdBDLU+VUYU4UxD79yHFzEKNaDhwzGApu7s5dlFQGBZVgEKNHA2pNvtiXPXigDwzFvwCJLWNFg Ku2H+/zxYQ0ddbXj1xwHFb/L/KaW6DmW13SJkawW2SJ17G49U6hYuWW5AVwfbTYZXmM52fLSuEo FyS0NCAVAZWNef9we5swFnK7IDCbqKR8Wq1DGG+DKgm+Edm36C0tRn5Fimn4EhMhZq5FSnqgItY ZC+BPJ28h1bLfbM2JXaHSi9Kif/eZTpx1s6ztRx6Sd/wtwZSApLxrRmw3nijynUd5ZtMhjMxyYB w6q4Hf1r6wwjvD+oEGnpkAgOETITKCW0iBxPkYyRjhMijECD82f7F7Ay79AJsPqUz/agLctzLkL CbVPQnZZMprlelEtSun+N27bqpOGjV4bxbwVrKHYaljQdgRen7nLLJCe4lzO9XfIHuy18kkcTge uFr3QqSNSXz1k3OKBfInwe/NJVIgShM2YAyQn+k4MQ9Befs8Apni8PV2+p33UWuSpw9q5y+cGNa sBncNYfBiGwr2uGVHZdw4m+/Dz+NVE2Ws/UIfwRW X-Received: by 2002:a05:600c:6298:b0:492:348:ba08 with SMTP id 5b1f17b1804b1-4922007d38amr87831995e9.16.1781443150246; Sun, 14 Jun 2026 06:19:10 -0700 (PDT) Received: from [192.168.1.187] ([2a02:8308:4092:11f0:c287:187e:fb7a:66a4]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4922037055csm168406355e9.13.2026.06.14.06.19.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jun 2026 06:19:09 -0700 (PDT) From: Joshua Crofts Date: Sun, 14 Jun 2026 15:19:08 +0200 Subject: [PATCH v6 6/8] iio: light: opt3001: move driver to guard(mutex)() use 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: <20260614-opt3001-cleanup-v6-6-e3f5901dcc26@gmail.com> References: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> In-Reply-To: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781443145; l=4992; i=joshua.crofts1@gmail.com; s=20260530; h=from:subject:message-id; bh=Qp6Lqng68h9dLYwlv1j6HjDqDQFUhvXkpj3LpMbbnVs=; b=jnTgMKk8c3jp287NW9q79qHbfKK8GYuT5MDNYBO9BuPXSrj8saEgF5cif1/UcacihxK/UTW6D alPjCEtIH4nCuaNK4BOIJ6bXEhquZNd9FMSpfWurThv6lnpSGFDWs9f X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=RTDOoVwgeL4oFdASj9U+cxJuIjXuXk73zkjnGOJKbEo= Move driver to use guard(mutex)() macro, to facilitate automatic locking/unlocking of resources. This modernizes the driver and improves code style. While at it, remove unnecessary gotos and return variables. Reviewed-by: Andy Shevchenko Signed-off-by: Joshua Crofts --- drivers/iio/light/opt3001.c | 61 +++++++++++++++--------------------------= ---- 1 file changed, 20 insertions(+), 41 deletions(-) diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index 80a2ede91272..a4d626006eb3 100644 --- a/drivers/iio/light/opt3001.c +++ b/drivers/iio/light/opt3001.c @@ -10,6 +10,7 @@ =20 #include #include +#include #include #include #include @@ -477,7 +478,6 @@ static int opt3001_read_raw(struct iio_dev *iio, int *val, int *val2, long mask) { struct opt3001 *opt =3D iio_priv(iio); - int ret; =20 if (opt->mode =3D=3D OPT3001_CONFIGURATION_M_CONTINUOUS) return -EBUSY; @@ -485,23 +485,17 @@ static int opt3001_read_raw(struct iio_dev *iio, if (chan->type !=3D opt->chip_info->chan_type) return -EINVAL; =20 - mutex_lock(&opt->lock); + guard(mutex)(&opt->lock); =20 switch (mask) { case IIO_CHAN_INFO_RAW: case IIO_CHAN_INFO_PROCESSED: - ret =3D opt3001_get_processed(opt, val, val2); - break; + return opt3001_get_processed(opt, val, val2); case IIO_CHAN_INFO_INT_TIME: - ret =3D opt3001_get_int_time(opt, val, val2); - break; + return opt3001_get_int_time(opt, val, val2); default: - ret =3D -EINVAL; + return -EINVAL; } - - mutex_unlock(&opt->lock); - - return ret; } =20 static int opt3001_write_raw(struct iio_dev *iio, @@ -509,7 +503,6 @@ static int opt3001_write_raw(struct iio_dev *iio, int val, int val2, long mask) { struct opt3001 *opt =3D iio_priv(iio); - int ret; =20 if (opt->mode =3D=3D OPT3001_CONFIGURATION_M_CONTINUOUS) return -EBUSY; @@ -523,11 +516,9 @@ static int opt3001_write_raw(struct iio_dev *iio, if (val !=3D 0) return -EINVAL; =20 - mutex_lock(&opt->lock); - ret =3D opt3001_set_int_time(opt, val2); - mutex_unlock(&opt->lock); + guard(mutex)(&opt->lock); =20 - return ret; + return opt3001_set_int_time(opt, val2); } =20 static int opt3001_read_event_value(struct iio_dev *iio, @@ -538,26 +529,21 @@ static int opt3001_read_event_value(struct iio_dev *i= io, int *val, int *val2) { struct opt3001 *opt =3D iio_priv(iio); - int ret =3D IIO_VAL_INT_PLUS_MICRO; =20 - mutex_lock(&opt->lock); + guard(mutex)(&opt->lock); =20 switch (dir) { case IIO_EV_DIR_RISING: opt3001_to_iio_ret(opt, opt->high_thresh_exp, opt->high_thresh_mantissa, val, val2); - break; + return IIO_VAL_INT_PLUS_MICRO; case IIO_EV_DIR_FALLING: opt3001_to_iio_ret(opt, opt->low_thresh_exp, opt->low_thresh_mantissa, val, val2); - break; + return IIO_VAL_INT_PLUS_MICRO; default: - ret =3D -EINVAL; + return -EINVAL; } - - mutex_unlock(&opt->lock); - - return ret; } =20 static int opt3001_write_event_value(struct iio_dev *iio, @@ -584,12 +570,12 @@ static int opt3001_write_event_value(struct iio_dev *= iio, if (val < 0) return -EINVAL; =20 - mutex_lock(&opt->lock); + guard(mutex)(&opt->lock); =20 ret =3D opt3001_find_scale(opt, val, val2, &exponent); if (ret < 0) { dev_err(dev, "can't find scale for %d.%06u\n", val, val2); - goto err; + return ret; } =20 whole =3D opt->chip_info->factor_whole; @@ -612,20 +598,16 @@ static int opt3001_write_event_value(struct iio_dev *= iio, opt->low_thresh_exp =3D exponent; break; default: - ret =3D -EINVAL; - goto err; + return -EINVAL; } =20 ret =3D i2c_smbus_write_word_swapped(client, reg, value); if (ret < 0) { dev_err(dev, "failed to write register %02x\n", reg); - goto err; + return ret; } =20 -err: - mutex_unlock(&opt->lock); - - return ret; + return 0; } =20 static int opt3001_read_event_config(struct iio_dev *iio, @@ -657,7 +639,7 @@ static int opt3001_write_event_config(struct iio_dev *i= io, if (!state && opt->mode =3D=3D OPT3001_CONFIGURATION_M_SHUTDOWN) return 0; =20 - mutex_lock(&opt->lock); + guard(mutex)(&opt->lock); =20 mode =3D state ? OPT3001_CONFIGURATION_M_CONTINUOUS : OPT3001_CONFIGURATION_M_SHUTDOWN; @@ -666,7 +648,7 @@ static int opt3001_write_event_config(struct iio_dev *i= io, if (ret < 0) { dev_err(dev, "failed to read register %02x\n", OPT3001_CONFIGURATION); - goto err; + return ret; } =20 reg =3D ret; @@ -676,13 +658,10 @@ static int opt3001_write_event_config(struct iio_dev = *iio, if (ret < 0) { dev_err(dev, "failed to write register %02x\n", OPT3001_CONFIGURATION); - goto err; + return ret; } =20 -err: - mutex_unlock(&opt->lock); - - return ret; + return 0; } =20 static const struct iio_info opt3001_info =3D { --=20 2.54.0 From nobody Fri Jun 19 11:21:28 2026 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (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 C050E3A873A for ; Sun, 14 Jun 2026 13:19:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443154; cv=none; b=bPiZRR7jdAU1I94j+ctCX7WipSKu4WV/jhXq2SL5wAjfLimCxZL7U6/Ur25ZWMQ57siKgTgHme9YNC2MT2tC1i9Np9ExnE+D1KK0Qkgq10z1eplNC6WWvOb0hKE/+kUrL1+f/RK0kbjcJNOXy+LrFtvj15UcM1UhbhwO862WXMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443154; c=relaxed/simple; bh=sqql6YoPfNzQRgyL2Bgucfk1ta32mSgMpwD6uFvjry8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QWodyWCeFb9p2gOdEJRb0jiOjqfKpNEgqArNCAEd/ok+zStP0vFgNvId1n6sr9defmWc+9mLskLAv7AnA0WwKm01ZH5yGjM3SSW2yDfN4d+IdRN8EtDVHOLuna5pMB+/icRIw+fYpJwvH9uoW3dZWIC3ulKpp3Z3sbr32Jz2/ps= 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=HWWPG40n; arc=none smtp.client-ip=209.85.221.50 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="HWWPG40n" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-45ef5146b56so2109936f8f.0 for ; Sun, 14 Jun 2026 06:19:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781443151; x=1782047951; 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=scrsNXORjV/hTJgu04sgSfBQacqOoCGoNdmUQAeULkg=; b=HWWPG40nRbFZsMCmGr9AVCarTsjUPEa7Rwds8q1VVIHX3s1CPjiin6WJim0llEv5/8 IBJ5818p1Y5a088jcs0HLFgIwmsbOTYlPNYtoIxyfC4CAl9n1moQGRn7zEDbBHM5MTkB t94U8xuhljAq6IdMHBmgLk4pGhTKR5xdHK1WjRoVNWuH+fTirwBlh86y3c9Svqb6BBXN 9KNsJxYj2qYuZS+YX0s8p7lmg2oe4TW+SVJNNTiN32rZb7vMuEYjz89tFpzONN59QdPZ 9uAFKEq8cXNjyGyGEWA3sJMc9w+FQHx+Kor/gkDo2rokZXBxz0XfXD+JMgm5vsp3mG1U YpNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781443151; x=1782047951; 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=scrsNXORjV/hTJgu04sgSfBQacqOoCGoNdmUQAeULkg=; b=Sow1vBeFDLGXE27OVAxuBzkF46gON07K/h33pfFEq84HorQzBQODZKu+dyaew+IPyU CcvMmllt49tr+vlT5d0EmWp7OlVSRxdY3HwxNdnVMl0aWaHBXem1MYh1ull2qtnl/F4z HLigv8ULRl8Dd3kkn6MFhJO0NEa/ZG4N/H68BSoN4Xr+6y9k6QwZe8v0z+A6OTzcXRUj /+F3Gbapof/tZ3qo6tkx81v3qhU3rmPxHCEoWtwH9c0+hR75UA9BYuoSpFspgPHkMues r+nGJlHdKeaXrkPN4v9WVcfbIMUzQiQuyt7BcvVjaLg88kpvDrJSNnX+DjYrUXZxC0Mp sUKg== X-Forwarded-Encrypted: i=1; AFNElJ8e4E43l/ipzcDwtJ+SHmYvxaduDiUHGPGGlwYdC3tnUO/JD0TP8OBWusM1ZtOOztCMf7btm5pq7jKfCYI=@vger.kernel.org X-Gm-Message-State: AOJu0YyWuXz1RtQnffkYq/MgXC9ctxToMMLwKKE90BmX6WsH2JgYik3W v2f8Si5jyD3sC+OUktBPa9rId7rvLyZptrf9N7AEgPfi+rEhEKNVKwYeKFJgdA== X-Gm-Gg: Acq92OFt6U0/m0N8Ak5S8u0flGxhBs71DBPDKSls9C91Y5Gc7JoGNKtPbYOhhnX3f6C /Eo7rUjdxIzqQcB2g+Kc0hOK+zYK7kV5D3U6fWuxNRQpmQtYjSb3AhmshFz2uqMmQUFjtltsTZq 7Q6YCkZOglDZFI9UUbwA+KRqVES+PPV0oKinKIfSi9AEn5fMLaE1l/kjFTeFFbp8bbFCT1WBFWM Z1Q5ZdPUcIur5Mqr1wkaYhMAi6Zkl3PgjN1aG2PJCJAvZMJ207MH4sxet7Rcz+OjQNMQtvaks6n juJiVcjgXf4Wjvtaek8e8inL1qy5A2/C1lyOikvHoRkBFGQ/HlZqBj2k6v3SSSjaIKe7xh3oa3Q 3hc2XXa4GZWU7qvSPXzloKGJAAQ5/Uv9DFdIjzxAKv7PUgBOQhKbPb/5LVYwBaaXlDJyMS1Yjlo nZ6lgi4PxUkNcxiyb09zQbYZxamXzQPO3BpVCKbXTsI3xMtBhVTV6+CMyEFE0NRuMzhTnY3v+xW wTS3E6oimFY0nI9oEBmUIHrR00ISuZZuxZvn4c6b+usrkDK5z7+p2yMCGbEDrLkz3/4NZxPxyxS WjNTBosG3fYDhEQop68hNhMjCg0H04TQG++q35/0hCJHaM7tfik= X-Received: by 2002:a05:600c:1d02:b0:489:32b:ac0b with SMTP id 5b1f17b1804b1-490ec48fec5mr111338245e9.6.1781443150995; Sun, 14 Jun 2026 06:19:10 -0700 (PDT) Received: from [192.168.1.187] ([2a02:8308:4092:11f0:c287:187e:fb7a:66a4]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4922037055csm168406355e9.13.2026.06.14.06.19.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jun 2026 06:19:10 -0700 (PDT) From: Joshua Crofts Date: Sun, 14 Jun 2026 15:19:09 +0200 Subject: [PATCH v6 7/8] iio: light: opt3001: switch driver to managed resources 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: <20260614-opt3001-cleanup-v6-7-e3f5901dcc26@gmail.com> References: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> In-Reply-To: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781443145; l=4217; i=joshua.crofts1@gmail.com; s=20260530; h=from:subject:message-id; bh=sqql6YoPfNzQRgyL2Bgucfk1ta32mSgMpwD6uFvjry8=; b=J0F7IeZe38xl4iF21sORnXKyNuVc5Gebtzzll6nlKU36q+v05xD3qzbICAsED9nrn08178gC/ T0NMBolcA08CwXi94ik+uTqYzO4lJw/Il2GGAaI2mRo5DVtRE31VQbl X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=RTDOoVwgeL4oFdASj9U+cxJuIjXuXk73zkjnGOJKbEo= Move the driver to use devm_* functions to automate resource management and simplify error handling. This also allows removal of the opt3001_remove() function. Signed-off-by: Joshua Crofts --- drivers/iio/light/opt3001.c | 88 ++++++++++++++++++++---------------------= ---- 1 file changed, 38 insertions(+), 50 deletions(-) diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index a4d626006eb3..b657aa88c1b4 100644 --- a/drivers/iio/light/opt3001.c +++ b/drivers/iio/light/opt3001.c @@ -703,6 +703,30 @@ static int opt3001_read_id(struct opt3001 *opt) return 0; } =20 +static void opt3001_power_off(void *data) +{ + struct opt3001 *opt =3D data; + struct i2c_client *client =3D opt->client; + struct device *dev =3D &client->dev; + u16 reg_val; + int ret; + + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); + if (ret < 0) { + dev_err(dev, "failed to read register %02x\n", + OPT3001_CONFIGURATION); + return; + } + + reg_val =3D ret; + opt3001_set_mode(opt, ®_val, OPT3001_CONFIGURATION_M_SHUTDOWN); + + ret =3D i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg_v= al); + if (ret < 0) + dev_err(dev, "failed to write to register %02x\n", + OPT3001_CONFIGURATION); +} + static int opt3001_configure(struct opt3001 *opt) { struct i2c_client *client =3D opt->client; @@ -741,6 +765,11 @@ static int opt3001_configure(struct opt3001 *opt) return dev_err_probe(dev, ret, "failed to write register %02x\n", OPT3001_CONFIGURATION); =20 + ret =3D devm_add_action_or_reset(dev, opt3001_power_off, opt); + if (ret) + return dev_err_probe(dev, ret, + "failed to register power off function\n"); + ret =3D i2c_smbus_read_word_swapped(client, OPT3001_LOW_LIMIT); if (ret < 0) return dev_err_probe(dev, ret, "failed to read register %02x\n", @@ -834,9 +863,11 @@ static int opt3001_probe(struct i2c_client *client) opt->client =3D client; opt->chip_info =3D i2c_get_match_data(client); =20 - mutex_init(&opt->lock); + ret =3D devm_mutex_init(dev, &opt->lock); + if (ret) + return ret; + init_waitqueue_head(&opt->result_ready_queue); - i2c_set_clientdata(client, iio); =20 if (opt->chip_info->has_id) { ret =3D opt3001_read_id(opt); @@ -856,60 +887,18 @@ static int opt3001_probe(struct i2c_client *client) =20 /* Make use of INT pin only if valid IRQ no. is given */ if (irq > 0) { - ret =3D request_threaded_irq(irq, NULL, opt3001_irq, - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, - "opt3001", iio); + ret =3D devm_request_threaded_irq(dev, irq, NULL, opt3001_irq, + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + "opt3001", iio); if (ret) - return dev_err_probe(dev, ret, - "failed to request IRQ #%d\n", - irq); + return ret; =20 opt->use_irq =3D true; } else { dev_dbg(dev, "enabling interrupt-less operation\n"); } =20 - ret =3D iio_device_register(iio); - if (ret) - goto free_irq; - - return 0; - -free_irq: - if (irq > 0) - free_irq(irq, iio); - - return ret; -} - -static void opt3001_remove(struct i2c_client *client) -{ - struct iio_dev *iio =3D i2c_get_clientdata(client); - struct opt3001 *opt =3D iio_priv(iio); - struct device *dev =3D &client->dev; - int ret; - u16 reg; - - iio_device_unregister(iio); - - if (opt->use_irq) - free_irq(client->irq, iio); - - ret =3D i2c_smbus_read_word_swapped(client, OPT3001_CONFIGURATION); - if (ret < 0) { - dev_err(dev, "failed to read register %02x\n", - OPT3001_CONFIGURATION); - return; - } - - reg =3D ret; - opt3001_set_mode(opt, ®, OPT3001_CONFIGURATION_M_SHUTDOWN); - - ret =3D i2c_smbus_write_word_swapped(client, OPT3001_CONFIGURATION, reg); - if (ret < 0) { - dev_err(dev, "failed to write register %02x\n", - OPT3001_CONFIGURATION); - } + return devm_iio_device_register(dev, iio); } =20 static const struct opt3001_chip_info opt3001_chip_information =3D { @@ -950,7 +939,6 @@ MODULE_DEVICE_TABLE(of, opt3001_of_match); =20 static struct i2c_driver opt3001_driver =3D { .probe =3D opt3001_probe, - .remove =3D opt3001_remove, .id_table =3D opt3001_id, =20 .driver =3D { --=20 2.54.0 From nobody Fri Jun 19 11:21:28 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (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 75D423A7F46 for ; Sun, 14 Jun 2026 13:19:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443155; cv=none; b=qmcP3d1KaDAxXut3syUonolmhUuAmqHrWv1tWMyRROJGYsokDLo1Ny60geiho8XFpDS6xK3YYWkd8kn2TqXcguUHO7nWIhpZCV0oH0F19MOmOz/RPFPpoTFJV678MrQ0AiD2G+WcrHSmaCZ9ctrpU3I7NVvc0BA1X2XH1gY+DAc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781443155; c=relaxed/simple; bh=vGxzcUtV7pniE1iBjiD7iSKlGqvuDRRsBCNuQj3TloM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PYJxWY0J6TLRTU+vjwebGyFoIiEibgMKkceFO60dArxJRY9X5yo6AYDSQYHgNJeVWx9vnr+ZUOIHsPiteK2N4Wk25cr42X1rxN9Jf+9Q6cifR3XpPTQTJ6NtP/zhYg4AgWK9UiK1V0TzZNhtBwGkWITVCgk3ViOMiYP/LQjoRRI= 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=AbCaZ3mA; arc=none smtp.client-ip=209.85.128.42 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="AbCaZ3mA" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-490b3637b90so17861615e9.3 for ; Sun, 14 Jun 2026 06:19:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781443152; x=1782047952; 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=rW8qCN/jlrzQD2r1BB+rWQwQthQ8O4Io6YDQAf2AQOw=; b=AbCaZ3mAqdtPafVmyYkPPHyCMVJNSDG5Zi5TaCh7XKnpjHTWty8YpA5XgtbcdsQjVR jL7ilUmLEhBsBhu2tjtlhNtAZPZwttNa8mxQDNrAAh33i0EGCvuV3KWahQQFL7pmtG+s h5IMsrsJ+5jMrbpTAYJAyAeMcWXuvBRe6TsxsLXjVEUoj6jwFNhinGD6sKpW0ruVyNsp XfPNkmCikg0atuIbpagyoltWPXY6FZQkcfnFfhWn2IAo1CkqO2yWbwxrdbk4lTU6Wiqb Omm7KZ5w2RRGx/ltzrRaDswnqAKOG2qlTR6+fQatNSliFbQSda+GZ1Buw8MeHb0sJLlo z6Yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781443152; x=1782047952; 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=rW8qCN/jlrzQD2r1BB+rWQwQthQ8O4Io6YDQAf2AQOw=; b=FGNNnHS55mMUNm8CmHzd7HpK9qttlbS0qhdCcHf99SJdNcVY3DfAoBbNP49ZqNVSsJ Lf5a0dYeMB0ACeo0Hx5WEt1+SuvmYqurskGVHPIjWMQ2nGGA28MsqPTbm/Vs77P8lI6p ZRF4Hb0s8B2TkMMcWSM7Raz2dszPSsOuojOmzCSAUdS2q0ssXPGnR3EiQUV5zE468x21 1WlnpOFb0yTfZiLEkGkv8bVeQh7TWGzOblK56XH+c7kPue0wbobQQ0ZjeAP5M2LqI8fZ pP7Ygm/nT5SKaG2DDZeDOuHR+eWFZG/DRx3kWynrQS0Ggdq9B3MqR8ca3rBoWrrjD4Tj PboA== X-Forwarded-Encrypted: i=1; AFNElJ87fe7eDjikSGupZ4FV+EX8mD0EXNU7EcMkCC4iUtAMeATbupTxj1RU2sV/JDGfxnk72MF2kZgWa6BuaIo=@vger.kernel.org X-Gm-Message-State: AOJu0YzaT6MmAVVML4h71KUB+GnJFMXHWwyqWIYLK66ottl5mBPtljJU SMBvmpUbBkPNpQ9S6pUGETC8GOZgQne2nhIGdZEW9aLbLQxtLfQnqZMF X-Gm-Gg: Acq92OEFgrSGR4pPof1+fU5wHU7YpBzoOLHtjOSHn4VTTS0m8slYqmJzOQ7KSletBNk Q+F2ZpEpeXo4svwFk++4Pj2eV3zMlDSv476/bosDvqEBJtNAcbLIoRYAUFDBAPwLdY7/pjdwrvd qab/xdWQVviZk1cV4ioZ+jhWPfU6vDj4mQfyJHTyK1MQpEnUxAJN9zkpc3HFK9buEaRZfEzmnf1 aBVTuDTLd+BaJewZ67JfZNsw1f195lkG6AGx3i0W8hkH8zU4xHAAuJ3v/FJasxuscfCWaJh4aC6 85bKFtbj3nxHx/B8PaebdG8xR06RYv3wmWZGnoMR0Y9+X/1+F0yICtGcyMGTGvnOfqlKKuUizkq r32C4L62J04iSHMweUbZCumNDte0W84kgCzmkorVlI7JTZr8+KT1qqqTf9I7NFCAw0kPgcJW2Iv pqc+lmAQBiCiitim9mi6gA0/CGUQKOB0b/o24tdt5K/rRp3AsjnR2gubfFluVLDJYeyIKvzEXi1 Ewpmmy1zzgHGuoNAQU5IR+BSszv0hIsOmWNCTCXg+gqoWBMTqinGkI7ss1pQwhW12zf3+iureSf Rf+0V5X4LR/Ksvua/0Z4pnLCmA1TCuI9m2MoNd/x X-Received: by 2002:a05:600c:5253:b0:490:be14:bfda with SMTP id 5b1f17b1804b1-492200851d9mr81913065e9.6.1781443151606; Sun, 14 Jun 2026 06:19:11 -0700 (PDT) Received: from [192.168.1.187] ([2a02:8308:4092:11f0:c287:187e:fb7a:66a4]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4922037055csm168406355e9.13.2026.06.14.06.19.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 14 Jun 2026 06:19:11 -0700 (PDT) From: Joshua Crofts Date: Sun, 14 Jun 2026 15:19:10 +0200 Subject: [PATCH v6 8/8] iio: light: opt3001: add comment to mutex 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: <20260614-opt3001-cleanup-v6-8-e3f5901dcc26@gmail.com> References: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> In-Reply-To: <20260614-opt3001-cleanup-v6-0-e3f5901dcc26@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Maxwell Doose X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781443145; l=895; i=joshua.crofts1@gmail.com; s=20260530; h=from:subject:message-id; bh=vGxzcUtV7pniE1iBjiD7iSKlGqvuDRRsBCNuQj3TloM=; b=ZR/dbFdBefCTu02aImUV8R1Be3jzECk1sg4IoOzhEHDzL5+9Bd6X3chgygdqkOGCVSxCH9pxf WtEh/fz52M8BRPW0ERBY2ST1iSsT2T7cX8pwqD2igfPbIXntoBE4qPX X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=RTDOoVwgeL4oFdASj9U+cxJuIjXuXk73zkjnGOJKbEo= Add comment to mutex per checkpatch.pl report. While we're at it, add a comment to bool ok_to_ignore_lock. No functional change. Reviewed-by: Maxwell Doose Signed-off-by: Joshua Crofts --- drivers/iio/light/opt3001.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c index b657aa88c1b4..7afa0a6c1948 100644 --- a/drivers/iio/light/opt3001.c +++ b/drivers/iio/light/opt3001.c @@ -103,7 +103,13 @@ struct opt3001_chip_info { struct opt3001 { struct i2c_client *client; =20 + /* + * Ensure data capture and read-modify-write sequences are + * not interrupted. + */ struct mutex lock; + + /* Allows for IRQs to bypass locking mechanism */ bool ok_to_ignore_lock; bool result_ready; wait_queue_head_t result_ready_queue; --=20 2.54.0