From nobody Mon Apr 6 13:30:39 2026 Received: from mail-dl1-f47.google.com (mail-dl1-f47.google.com [74.125.82.47]) (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 34E7232779D for ; Mon, 6 Apr 2026 04:39:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775450372; cv=none; b=C/BFARtRsmQXFnmCpfDFFUgm3RPxCEO4wlqo/PEhruxRpFhZQqKeyHsDdLXC729XTlm4tP8F9b4uYP0m30IF2Um2trl0d053QDqlamIuMY9ofyjYdnrM5dVKPr++u5CIiq1LZdbFRTrK/sX4afmUwsh5UZ4hwPTAMp4FBM6VAaI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775450372; c=relaxed/simple; bh=Jp11lnnBrydu78xWpI7iQkASv1g6UtX/tycmB5OGwuo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=r7NSomK3tIddcYvyOq2JhYD7ZC6VO/+Sh8v/y3zXDrV8XGcIxBf6crp0QQSjycjckR9+UnP9qHn07jVZDhNn36YFaZ6H2PvzXJlnAON8PFsjx4TxuPV3YowUBIfmY0i6IyI/Lst0RmxcqwcLOCdV8PhQeg4xvMbDoHiaf26hjjI= 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=LGv3t+uy; arc=none smtp.client-ip=74.125.82.47 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="LGv3t+uy" Received: by mail-dl1-f47.google.com with SMTP id a92af1059eb24-12776bebe9fso8410504c88.1 for ; Sun, 05 Apr 2026 21:39:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775450370; x=1776055170; 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=bm4XXEcWjidns3Evs84tEMwqC2yXbhhjm6W1vqULni0=; b=LGv3t+uykzFn4AzECoZMV3TV+6IDSpFEr9A5rcl5TmCYxvMQ4GWOvDqbqkWEnQs99w WdVxwcTRyTvtsieQ7vasOOqDKuqwL8vO++Zgmjv96jli/meVRsuY/lGhWwGb0mQiMJd2 5VCyEu5VS+DfzYriXJeIxmrGFLfeWQ0LWm7cxtMZOF4nxQTZkbnBNhfmiyaFHCeOt0LE Ox0RSQkMc6otHc59ztM4dFpEaHfbQ4cKQGFTRl21fpeNsOmldRe1JyWI9v+rT0vWr6lu BtzlqOZsnCJoD/RxpWbfrwkx34EcNWc2r+D3S35ImPasbfZDVLPSn6/Pvi7Qxjm5MqMM 7UBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775450370; x=1776055170; 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=bm4XXEcWjidns3Evs84tEMwqC2yXbhhjm6W1vqULni0=; b=rnTzk+AM2mptZM0RSHU1QiN5V2+oBHJK2YKBEK2WM8wwL1VcXewgJvVY9zZWXjVb05 TweFuqATxj27uAEYOhq7cYa2LKywRSS2J6IDg7chi0knkENRFUjYaPye1LhlZsSJl9Uk 7/Htnvlr3aZGr41iuXm77l7NO0hhNzYYk8tqKBgVv1x1jarP94PayBrba5DpIfSMFv9x 6ARo90Zw7IKOuV8/p5LwTOpDLrTmoqyK/RLy7Dl5tLaQT6SGjAG7yl8GC+Bbmk5jvGFT DB/KOoKUT2iwgZLGI/h1srwV7k2VuMyTjCt6kNjZBixgYu6IDHSIt1OLSWFFtrwpG+0u R3gQ== X-Forwarded-Encrypted: i=1; AJvYcCXcHG1ACafDlR0qfTNuVqkIDRIAdi5lzEZFIQTBzYtnh2DnNc/YOefezewLtoZ+qm9BNYNQ8v8V9VeKMX4=@vger.kernel.org X-Gm-Message-State: AOJu0YyI14q9hRpMCjAN19qz0GNpRcMGRr7rfqGpOohH0cvi8R29QuJ+ hNrdut1yZJGxCEcaWA4FHA4shHqi16m8SRxmBMIGQEEoTR9A54zl8QNH X-Gm-Gg: AeBDievd9MSOV5IUmiqsk2R3kNDBFv+AQz3v4dJDHOCC01gaLcwHSr2Y/cuuiTbR8vS LdYWKy8Xxt1eNVePV4BW61R8bPZ0jwYe3WEur6QFa9nl68H2bpJJJQFUnPiXegMCwf1Ta++zEir a1v5pVxrIeDpeBDRD4EGgC+CuYjuGocUHlYVXWMvPcuk50nlpvTnRAnSfCmkhgw5V7x4msV6ehp bVWbWVJPW45n6yTqiVm12RxVVfl6foSvNml/7BPu1+mGvR3K1HcBEXb0pWleNVFUJy4wMgKR2V+ 9OwyYW8LQs9oq2iXMlso+CWN4c3wRT3iaxKVF+p4pj/3THoQVb7JLNhNX9hN1cT9sfElJmEH/0E eiuwH3B7TYl1/jgdnCPUBcDIYqyNujULgqgDiEsnVRMF3WE/At1dRuIpE/Vq/gFVCMOfIdfRyDX BNs7din6ij1jmMdwM8M21alDVy3g94TDL4wgsH7Qy2FDMOFDI8FMSj3DSDVk3fYnWc+6qIHq3qP B5/eTxJsqHz4QM= X-Received: by 2002:a05:7022:6092:b0:128:cbc7:4c28 with SMTP id a92af1059eb24-12bfb771ab5mr5387632c88.35.1775450370259; Sun, 05 Apr 2026 21:39:30 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:fe13:98b9:9e98:d1bb]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12bed93f861sm15182005c88.0.2026.04.05.21.39.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Apr 2026 21:39:29 -0700 (PDT) From: Dmitry Torokhov Date: Sun, 05 Apr 2026 21:39:23 -0700 Subject: [PATCH v5 1/4] iio: adc: ti-ads7950: switch to using guard() notation 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: <20260405-ti-ads7950-facelift-v5-1-1f980ed3cf9e@gmail.com> References: <20260405-ti-ads7950-facelift-v5-0-1f980ed3cf9e@gmail.com> In-Reply-To: <20260405-ti-ads7950-facelift-v5-0-1f980ed3cf9e@gmail.com> To: Jonathan Cameron , David Lechner Cc: =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Jonathan Cameron , Bartosz Golaszewski X-Mailer: b4 0.16-dev-6911d guard() notation allows early returns when encountering errors, making control flow more obvious. Use it. Reviewed-by: David Lechner Reviewed-by: Bartosz Golaszewski Signed-off-by: Dmitry Torokhov --- drivers/iio/adc/ti-ads7950.c | 83 +++++++++++++++++-----------------------= ---- 1 file changed, 31 insertions(+), 52 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index 028acd42741f..6e9ea9cc33bf 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -299,18 +299,19 @@ static irqreturn_t ti_ads7950_trigger_handler(int irq= , void *p) struct ti_ads7950_state *st =3D iio_priv(indio_dev); int ret; =20 - mutex_lock(&st->slock); - ret =3D spi_sync(st->spi, &st->ring_msg); - if (ret < 0) - goto out; - - iio_push_to_buffers_with_ts_unaligned(indio_dev, &st->rx_buf[2], - sizeof(*st->rx_buf) * - TI_ADS7950_MAX_CHAN, - iio_get_time_ns(indio_dev)); - -out: - mutex_unlock(&st->slock); + do { + guard(mutex)(&st->slock); + + ret =3D spi_sync(st->spi, &st->ring_msg); + if (ret) + break; + + iio_push_to_buffers_with_ts_unaligned(indio_dev, &st->rx_buf[2], + sizeof(*st->rx_buf) * + TI_ADS7950_MAX_CHAN, + iio_get_time_ns(indio_dev)); + } while (0); + iio_trigger_notify_done(indio_dev->trig); =20 return IRQ_HANDLED; @@ -321,20 +322,16 @@ static int ti_ads7950_scan_direct(struct iio_dev *ind= io_dev, unsigned int ch) struct ti_ads7950_state *st =3D iio_priv(indio_dev); int ret, cmd; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); + cmd =3D TI_ADS7950_MAN_CMD(TI_ADS7950_CR_CHAN(ch)); st->single_tx =3D cmd; =20 ret =3D spi_sync(st->spi, &st->scan_single_msg); if (ret) - goto out; - - ret =3D st->single_rx; - -out: - mutex_unlock(&st->slock); + return ret; =20 - return ret; + return st->single_rx; } =20 static int ti_ads7950_get_range(struct ti_ads7950_state *st) @@ -400,9 +397,8 @@ static int ti_ads7950_set(struct gpio_chip *chip, unsig= ned int offset, int value) { struct ti_ads7950_state *st =3D gpiochip_get_data(chip); - int ret; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); =20 if (value) st->cmd_settings_bitmask |=3D BIT(offset); @@ -410,11 +406,8 @@ static int ti_ads7950_set(struct gpio_chip *chip, unsi= gned int offset, st->cmd_settings_bitmask &=3D ~BIT(offset); =20 st->single_tx =3D TI_ADS7950_MAN_CMD_SETTINGS(st); - ret =3D spi_sync(st->spi, &st->scan_single_msg); - - mutex_unlock(&st->slock); =20 - return ret; + return spi_sync(st->spi, &st->scan_single_msg); } =20 static int ti_ads7950_get(struct gpio_chip *chip, unsigned int offset) @@ -423,13 +416,12 @@ static int ti_ads7950_get(struct gpio_chip *chip, uns= igned int offset) bool state; int ret; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); =20 /* If set as output, return the output */ if (st->gpio_cmd_settings_bitmask & BIT(offset)) { state =3D st->cmd_settings_bitmask & BIT(offset); - ret =3D 0; - goto out; + return state; } =20 /* GPIO data bit sets SDO bits 12-15 to GPIO input */ @@ -437,7 +429,7 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsig= ned int offset) st->single_tx =3D TI_ADS7950_MAN_CMD_SETTINGS(st); ret =3D spi_sync(st->spi, &st->scan_single_msg); if (ret) - goto out; + return ret; =20 state =3D (st->single_rx >> 12) & BIT(offset); =20 @@ -446,12 +438,9 @@ static int ti_ads7950_get(struct gpio_chip *chip, unsi= gned int offset) st->single_tx =3D TI_ADS7950_MAN_CMD_SETTINGS(st); ret =3D spi_sync(st->spi, &st->scan_single_msg); if (ret) - goto out; - -out: - mutex_unlock(&st->slock); + return ret; =20 - return ret ?: state; + return state; } =20 static int ti_ads7950_get_direction(struct gpio_chip *chip, @@ -467,9 +456,8 @@ static int _ti_ads7950_set_direction(struct gpio_chip *= chip, int offset, int input) { struct ti_ads7950_state *st =3D gpiochip_get_data(chip); - int ret =3D 0; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); =20 /* Only change direction if needed */ if (input && (st->gpio_cmd_settings_bitmask & BIT(offset))) @@ -477,15 +465,11 @@ static int _ti_ads7950_set_direction(struct gpio_chip= *chip, int offset, else if (!input && !(st->gpio_cmd_settings_bitmask & BIT(offset))) st->gpio_cmd_settings_bitmask |=3D BIT(offset); else - goto out; + return 0; =20 st->single_tx =3D TI_ADS7950_GPIO_CMD_SETTINGS(st); - ret =3D spi_sync(st->spi, &st->scan_single_msg); - -out: - mutex_unlock(&st->slock); =20 - return ret; + return spi_sync(st->spi, &st->scan_single_msg); } =20 static int ti_ads7950_direction_input(struct gpio_chip *chip, @@ -508,9 +492,9 @@ static int ti_ads7950_direction_output(struct gpio_chip= *chip, =20 static int ti_ads7950_init_hw(struct ti_ads7950_state *st) { - int ret =3D 0; + int ret; =20 - mutex_lock(&st->slock); + guard(mutex)(&st->slock); =20 /* Settings for Manual/Auto1/Auto2 commands */ /* Default to 5v ref */ @@ -518,17 +502,12 @@ static int ti_ads7950_init_hw(struct ti_ads7950_state= *st) st->single_tx =3D TI_ADS7950_MAN_CMD_SETTINGS(st); ret =3D spi_sync(st->spi, &st->scan_single_msg); if (ret) - goto out; + return ret; =20 /* Settings for GPIO command */ st->gpio_cmd_settings_bitmask =3D 0x0; st->single_tx =3D TI_ADS7950_GPIO_CMD_SETTINGS(st); - ret =3D spi_sync(st->spi, &st->scan_single_msg); - -out: - mutex_unlock(&st->slock); - - return ret; + return spi_sync(st->spi, &st->scan_single_msg); } =20 static int ti_ads7950_probe(struct spi_device *spi) --=20 2.53.0.1213.gd9a14994de-goog From nobody Mon Apr 6 13:30:39 2026 Received: from mail-dl1-f44.google.com (mail-dl1-f44.google.com [74.125.82.44]) (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 97232344DA9 for ; Mon, 6 Apr 2026 04:39:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775450374; cv=none; b=LoXLy3bwm7yaucTSsXkZfIIuFsfGRAQ22ar29KpGOdUZdKR95yz9eOtak3lL4a2WvzXlxwHBDrh3kTZbXm4gtGakCHn91LJXqT9d8pPkFnRS1+DRCBuFVHl241ZltQ9kJ9OxJC1tGtwPwmMVkhUaD3PslewX4rL0emqG5sckusA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775450374; c=relaxed/simple; bh=exu8oRPFvaUwd/x6xwtOQbe+s0ME5lDwo7ojHbgx33s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uyhiQUqg07xXHO0C1+gg+H+nI3GDN6S1iWo6F9Cr9Ip9m1tBcrOLAFw9VTyjN4hIuXyve6lXZ/g8CcZYilkBdwykUN3Ve0yDS9bS3l16D1xuLnATumqXszwjJiHSViQvYAkfT7UA+ZwjhPNZw7DNnaRZBvl8pNJgDmEzGspO5ZI= 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=FB70900V; arc=none smtp.client-ip=74.125.82.44 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="FB70900V" Received: by mail-dl1-f44.google.com with SMTP id a92af1059eb24-1271195d2a7so7625395c88.0 for ; Sun, 05 Apr 2026 21:39:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775450373; x=1776055173; 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=Zh6XhPAF80uBHigYDps0enG5D0ugVfrEjPXkEuqC+6M=; b=FB70900V8Rk7MbvjQ7qIQiSo9WfkwzLw/0VYrFMS/YBDsE+pZ5WYVNVQjXNw8hZ3Vq QoG55oqujhBNBuTkRHLBHfExPFm06qDfXCUKcrqY95mZ7Ax4b5Uvut2xD7PqatBcz/nd DqdAwyN0e8uDuz2tgkB7/oh++lJYqi8I80JfIi5FFD1iYvhqn8oFccAREhGTWgLMnx3E ydXBeJQ4ECjGRGn6XXYajWNvbaA9fPWhYTaHKycFWs71TJSQcxIbTAmFVx6IBiMXU8Q3 biXE4VrGmadfWtCSitgFd7pu0emcipJlm/kzRr3iF7zjI58CwJRVb6LE7z/c95yRpdtk 3rYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775450373; x=1776055173; 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=Zh6XhPAF80uBHigYDps0enG5D0ugVfrEjPXkEuqC+6M=; b=Yh86h6iIRsDei2+CQ+Vf9Ab8VK7xtgswyaR+rJJJ4XW/t0yrrEw4gf/uLetFWL31Ir AJY5Wh0TLepAFhP32o3dPBiPBATs3nH12ovMvtrU+P/NDa0pkfqvOLGbrx+pKoe456Uq N805Q57L6OtJS9A4fsGSirp0gVekywC+PfqCdyteK7z1P5rDoNQUeM9uIPlRSVQlVrbD hFB2lGThAalP1VJVWGhNOmVNEW15/q5jdaMwRba84w4vxMsj0CYymsah+U/XP5ZkrUlF DVoUzolWPLL/Ym3+TcPHZac7RWJ/8G5Zyb+/H1hysugIyi1BIS4L3f/2z8rVc8wquhHv V1Dg== X-Forwarded-Encrypted: i=1; AJvYcCVkBueihZ/YMEGcWnTMpKq/XHoo8jFRGQDyKWCE07QFrxsDc8gKr7DGnryoqopk8ARbU3JRJ7LFlUyPbfI=@vger.kernel.org X-Gm-Message-State: AOJu0YzOfpQGVdaRFol2CqwbOiJrIT8njjjE3u/0qrbJ0rUkQGu7owh0 oFD+ziTgGJYLAGJEBnUGw+NzsYK6Gi6JCq/sS37pM0vapZhF7WscBMiX X-Gm-Gg: AeBDieuvX8LoqNAE/KDBIt1E1zGcWv/QKz5/OhVhN0CnGDu9gVpNHR/ovlyyeYMq0xY UtEfEqWYOUKy3i0faLCFiIPthYxdx6zrhLd++ot1wul8x8ulqsw6x4y+OiaHjbb+F/FZZEN/rp4 nLNFLW59qeV9F0cDaox9EFPYuADIh2nH/EiyhBVfj3yWxCjbCZ+eBUEjVjDLdcWgFFHPEER7kAj E7yCiDiVshfIIHQoMXWkGJltzN0Gk+EyTcF+U7mMMi6tX5jTpAasK6sxRjwPCX4JqWdeTPzDYI3 fKY/ftEYj/BIOqwJ0qhVpORdFCvrTQj50Q+3F6m7e+aIG461+fr6SBkUttE/Vg4SFwTSP7KA56r kty3T6TTpTJl08BYvlCr14eK8GnJZgiOEikqh+8250rZONTg6LTOfvITYJyFzvZ7KPtPBdEIUNS pqPG8vgJ2hWNcbsTTMruqxo7sRaoOFEVmwSpoGC+UPYdPmEdHs0iLc4FeGtNlXeLeor9e47u1im honOqSYeW/ZiGU= X-Received: by 2002:a05:7022:23a4:b0:12a:8176:f3b1 with SMTP id a92af1059eb24-12bfb6ed00cmr5864357c88.6.1775450372713; Sun, 05 Apr 2026 21:39:32 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:fe13:98b9:9e98:d1bb]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12bed93f861sm15182005c88.0.2026.04.05.21.39.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Apr 2026 21:39:31 -0700 (PDT) From: Dmitry Torokhov Date: Sun, 05 Apr 2026 21:39:24 -0700 Subject: [PATCH v5 2/4] iio: adc: ti-ads7950: simplify check for spi_setup() failures 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: <20260405-ti-ads7950-facelift-v5-2-1f980ed3cf9e@gmail.com> References: <20260405-ti-ads7950-facelift-v5-0-1f980ed3cf9e@gmail.com> In-Reply-To: <20260405-ti-ads7950-facelift-v5-0-1f980ed3cf9e@gmail.com> To: Jonathan Cameron , David Lechner Cc: =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Jonathan Cameron , Bartosz Golaszewski X-Mailer: b4 0.16-dev-6911d spi_setup() specifies that it returns 0 on success or negative error on failure. Therefore we can simply check for the return code being 0 or not. Reviewed-by: David Lechner Reviewed-by: Bartosz Golaszewski Signed-off-by: Dmitry Torokhov --- drivers/iio/adc/ti-ads7950.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index 6e9ea9cc33bf..c31c706c92a9 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -520,7 +520,7 @@ static int ti_ads7950_probe(struct spi_device *spi) spi->bits_per_word =3D 16; spi->mode |=3D SPI_CS_WORD; ret =3D spi_setup(spi); - if (ret < 0) { + if (ret) { dev_err(&spi->dev, "Error in spi setup\n"); return ret; } --=20 2.53.0.1213.gd9a14994de-goog From nobody Mon Apr 6 13:30:39 2026 Received: from mail-dl1-f53.google.com (mail-dl1-f53.google.com [74.125.82.53]) (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 15811358364 for ; Mon, 6 Apr 2026 04:39:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775450380; cv=none; b=iAH57ahcb0RXOH/5JOwvxWnoDoO9Ii7eG3mrXsheAnnD+ho0LOLMi/LjqGtzZSRD+WERvTFIJatCLahKko5QCeIKIxztumAxSUePMl+a8k1U6mdBjZJVsP3ZQn9+eIYNVzPyDAVByvxI2yV3FOGfc9EfAQkjZIOW+VDjlr0lhbk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775450380; c=relaxed/simple; bh=jWsQsT6/Mu9a3P6wxYYDo0MqxdW/7rVXJ/kMeejbGis=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JfxlPV+azUuMEPe2Q7hBuzwSGnl9BbGfT+xeiUg2MYPSB2Ce9QDY6H6SO7iAAm44RsFoPq5Azi1XIcFK3hwwAHatlUGxAfsboVKFVvd3+wlYYK/u62rOl8HudUroII5mqaYdNnnm9ZBCdpRJ7IZ9z9PqqyHiuRZZJ4lhToW5SEA= 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=G5HFP4tP; arc=none smtp.client-ip=74.125.82.53 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="G5HFP4tP" Received: by mail-dl1-f53.google.com with SMTP id a92af1059eb24-126ea4b77adso3916992c88.1 for ; Sun, 05 Apr 2026 21:39:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775450374; x=1776055174; 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=tBFK0WbO5+WLvAVMP/XY5fTWFLTdlcIvaSfOJd72QI8=; b=G5HFP4tPadZfkQBFCUPuTy0QHjXGZZusDCKuwFTdy7ODZYC6OoCQV5ZRoMPDEM+Tr9 mYmsXA/MEdAbi+PkxdhACPiR2IlyK1kLsPyyT6K1Yxx++IN58Q90MFJyHt7g9knbVjU8 /wLcFnLso1Yx9xrn5qOs4MjvdMMPgEmMNVi8QVMmWShsCpfEjMMS4Xi4Hh3QscCTJFqK lO+VMrZX0jZQJ68OXBWhq64MOwMTYFRmK3k1RBhW7ge+SpAMuyqsSV4i7wXJoGKti7+y pyU1S1L73jxZBWiFY41h/wHysiiKOwt+g+k52yPjrd0O48pieSDb3H9kT/xbRmLWARX2 4SYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775450374; x=1776055174; 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=tBFK0WbO5+WLvAVMP/XY5fTWFLTdlcIvaSfOJd72QI8=; b=FO6lsc/ZsoF1G/yRmPtvUnrFw00dx9RxHZAH+jTkvkmStbriB6fcTwn9joIW2s2IpC o9CwWnqz/bHlkgtYioTTIKm/shnrBAHSF5oZjkuz9SduRejWH8r0ZJsjDJlEYyS/gCFU X86yPTl1jKw7bduxT95yflseK55oB22NMzFKlvZuLvvnRnde0gfjsk9vszxsHwiAT8rA whQtJbo21hkem0tid+BeWAFViJFnI3e77vLzfLNArrkP5RkG6CXl8nG9cMoCFcC2tD+b TyfA9mLWAvC43+YAqeg/eFPaWXt1bXh8E2Ty51uon9+DE7bcEgInqlL75UkZHrPmXnkB k5Cw== X-Forwarded-Encrypted: i=1; AJvYcCX5Zd+MOSw8iHFrLXK/4N0dyFg0V+PpcWFFmpwDmfbMVDFjHHuF2f28L0iWd/XIrdvEI+UbllrZvj5cgAQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yyv4/WtebPLea4UNkLs4NK7eDHyfLzhqzf4a48x88wMdQewCjl/ aZ1WESggPoMLegPHnmPtcDt6M1L5epRbIGnJw5LbsDirYPVN8p+QnXHg X-Gm-Gg: AeBDiesGq51EFbjGlFpk1JPcZDGe+u5VT2OwnEPeAcYCY0gOIx5CoBrHoVQohu4wz4B agCGqX1ondgA/KzYwsWlHGJ81vpkYe+ueVkx6+cyOwsTExCMys7z9O8kexePKgE9Q7xMxmsWi/G 6QSulM++7wwNaGuK6XsbEdbtvvAlVdtfsmXSkKsUnPlooaGDODz6AUPmeWy+M1ISLV4y8BCOwdN 5BhTwK4nDDSc0jquj77mkkilg4C6BpXpEK7uCQsP/GDuE0zM+/j/C2JNZ+AfcAWmTXr5UnqoSYJ SZZ0oBvpczajy68H/N0+NDszZoq4399NkBSV3bNd+RF12RBw5clLONCTnJMoTSm2dVIHuzWymiW J4354l9bHvnCihi3Hho3+yw9WUWbkQIy007L4e0dsEFxSmfSb4+4k2r7BHTBpz/uNzu4R3Ut41a ZMax4s2kQaR5de5TvOo6WxwdHDyda7M3CDMFOkB8qOATmgEk+delu+Ye4VUdGl4uC2jnUHCrf3P VxTncLEiY1/4Nc= X-Received: by 2002:a05:7022:48c:b0:128:d084:e921 with SMTP id a92af1059eb24-12bfb70dd27mr5179501c88.14.1775450374090; Sun, 05 Apr 2026 21:39:34 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:fe13:98b9:9e98:d1bb]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12bed93f861sm15182005c88.0.2026.04.05.21.39.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Apr 2026 21:39:33 -0700 (PDT) From: Dmitry Torokhov Date: Sun, 05 Apr 2026 21:39:25 -0700 Subject: [PATCH v5 3/4] iio: adc: ti-ads7950: switch to using devm_regulator_get_enable_read_voltage() 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: <20260405-ti-ads7950-facelift-v5-3-1f980ed3cf9e@gmail.com> References: <20260405-ti-ads7950-facelift-v5-0-1f980ed3cf9e@gmail.com> In-Reply-To: <20260405-ti-ads7950-facelift-v5-0-1f980ed3cf9e@gmail.com> To: Jonathan Cameron , David Lechner Cc: =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Jonathan Cameron , Bartosz Golaszewski X-Mailer: b4 0.16-dev-6911d The regulator is enabled for the entire time the driver is bound to the device, and we only need to access it to fetch voltage, which can be done at probe time. Switch to using devm_regulator_get_enable_read_voltage() which simplifies probing and unbinding code. Suggested-by: David Lechner Reviewed-by: Bartosz Golaszewski Signed-off-by: Dmitry Torokhov --- drivers/iio/adc/ti-ads7950.c | 48 ++++++++++++----------------------------= ---- 1 file changed, 13 insertions(+), 35 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index c31c706c92a9..0b98c8e7385d 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -334,19 +334,9 @@ static int ti_ads7950_scan_direct(struct iio_dev *indi= o_dev, unsigned int ch) return st->single_rx; } =20 -static int ti_ads7950_get_range(struct ti_ads7950_state *st) +static unsigned int ti_ads7950_get_range(struct ti_ads7950_state *st) { - int vref; - - if (st->vref_mv) { - vref =3D st->vref_mv; - } else { - vref =3D regulator_get_voltage(st->reg); - if (vref < 0) - return vref; - - vref /=3D 1000; - } + unsigned int vref =3D st->vref_mv; =20 if (st->cmd_settings_bitmask & TI_ADS7950_CR_RANGE_5V) vref *=3D 2; @@ -375,11 +365,7 @@ static int ti_ads7950_read_raw(struct iio_dev *indio_d= ev, =20 return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: - ret =3D ti_ads7950_get_range(st); - if (ret < 0) - return ret; - - *val =3D ret; + *val =3D ti_ads7950_get_range(st); *val2 =3D (1 << chan->scan_type.realbits) - 1; =20 return IIO_VAL_FRACTIONAL; @@ -573,30 +559,25 @@ static int ti_ads7950_probe(struct spi_device *spi) spi_message_init_with_transfers(&st->scan_single_msg, st->scan_single_xfer, 3); =20 - /* Use hard coded value for reference voltage in ACPI case */ - if (ACPI_COMPANION(&spi->dev)) - st->vref_mv =3D TI_ADS7950_VA_MV_ACPI_DEFAULT; - mutex_init(&st->slock); =20 - st->reg =3D devm_regulator_get(&spi->dev, "vref"); - if (IS_ERR(st->reg)) { - ret =3D dev_err_probe(&spi->dev, PTR_ERR(st->reg), - "Failed to get regulator \"vref\"\n"); - goto error_destroy_mutex; - } + /* Use hard coded value for reference voltage in ACPI case */ + if (ACPI_COMPANION(&spi->dev)) { + st->vref_mv =3D TI_ADS7950_VA_MV_ACPI_DEFAULT; + } else { + ret =3D devm_regulator_get_enable_read_voltage(&spi->dev, "vref"); + if (ret < 0) + return dev_err_probe(&spi->dev, ret, + "Failed to get regulator \"vref\"\n"); =20 - ret =3D regulator_enable(st->reg); - if (ret) { - dev_err(&spi->dev, "Failed to enable regulator \"vref\"\n"); - goto error_destroy_mutex; + st->vref_mv =3D ret / 1000; } =20 ret =3D iio_triggered_buffer_setup(indio_dev, NULL, &ti_ads7950_trigger_handler, NULL); if (ret) { dev_err(&spi->dev, "Failed to setup triggered buffer\n"); - goto error_disable_reg; + goto error_destroy_mutex; } =20 ret =3D ti_ads7950_init_hw(st); @@ -636,8 +617,6 @@ static int ti_ads7950_probe(struct spi_device *spi) iio_device_unregister(indio_dev); error_cleanup_ring: iio_triggered_buffer_cleanup(indio_dev); -error_disable_reg: - regulator_disable(st->reg); error_destroy_mutex: mutex_destroy(&st->slock); =20 @@ -652,7 +631,6 @@ static void ti_ads7950_remove(struct spi_device *spi) gpiochip_remove(&st->chip); iio_device_unregister(indio_dev); iio_triggered_buffer_cleanup(indio_dev); - regulator_disable(st->reg); mutex_destroy(&st->slock); } =20 --=20 2.53.0.1213.gd9a14994de-goog From nobody Mon Apr 6 13:30:39 2026 Received: from mail-dl1-f49.google.com (mail-dl1-f49.google.com [74.125.82.49]) (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 6315031B833 for ; Mon, 6 Apr 2026 04:39:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775450383; cv=none; b=qjQh57G/cbGaXnnHH4C35XCKq+pXSCmYMJBOo+EpqMHVuB/WuTCqvM0gmNexh71xQYfaLPMr757uto0r6ZX9w7LARd1Uh3QcBFsYNHa7RYMBWN1piJpnn/DenCqDEnG8CA7eOhgeSICshZPT3Xt7P3EJdph3ipOL8lNk6SA90Bg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775450383; c=relaxed/simple; bh=q1ErVgV21ILDuUcdhUgtkkx+/oTMzLm9AIurDmszr/g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=a2qxlP6F22ngwpow8SqJrL1iJ2vleelzUjzHb7MKuUuR1W7WdBTVB8nCv3CgBNcyFhmNYPu7gPq50VZQbjzFAV+hxWRxtV69x+0/4BnKqbjjO2PQGfkPr61ceMAcOWnPte8TBAV2jHwbi4HUStTxN/UxG0xy3wN+29oDbLc8Ens= 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=VybCdcSP; arc=none smtp.client-ip=74.125.82.49 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="VybCdcSP" Received: by mail-dl1-f49.google.com with SMTP id a92af1059eb24-12a74039dc6so2519249c88.0 for ; Sun, 05 Apr 2026 21:39:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775450376; x=1776055176; 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=muAbhbsfMeNqO7iyxZwi7/vPm//pj1ujL1kw3AyjdRw=; b=VybCdcSPDY3l8Sdjo4ZN7cbq2f87d0EGqYZ0p3gLfuWSf5tzRsPZEpP/jAYnpYBhxI fdDZvi9Y7od3B/wUNsP+X+XCsaVuBFwCMaRKXIVteOX56zp1wxq/PbOHqwPajucC66Rf Cm52vQsMife9df5FFJGDrf7YvG9aLeZyO0SFM82icX7p60A3J88Z9Vbw5ZLYzDEnsyl5 Z8M73TOrfL/4Da/+J76ScnaXQ2GdPR6/wGz+ydODIh4wrBR8z4fpEgmPrKaAW01WhEkO pcIKN8jpdtDmuwYGns3XjG0LnzyY/lmIUeW9a4xyQeHoDeOhZk69HhEZCg7rlfaa2+NH qwbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775450376; x=1776055176; 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=muAbhbsfMeNqO7iyxZwi7/vPm//pj1ujL1kw3AyjdRw=; b=Vtu/wqqYJi+savd7Dgq4FHVH2S5XDNZ54qya5f9KkRDLgOa1qjc2g3zL16RV9+efZG alH6Yu5JHrvktKTYECHrmY9gxrMXzb/FCZUZQxOq/0jMmq9VduYTIZowP6WUZy5S1qxF dd7qLwG3rmsXfdQzNxx3Awz8Kg6jPzQZ5t3u6UfYFYzXkRczw34/zzTgU5E2IMm5bR6V GJEJvxq2136On6zPKPX1bqebhB+GIfTIAQD/qTLghV+lV8fuc60kf6qC2dEQQv3X167i sLAL0Z/eLUaf77Ul0ZASuL3ZgoYixKBxIaWIO9VfpNXx45K97xe3I/vXJKnW2Mm92G6J CcIw== X-Forwarded-Encrypted: i=1; AJvYcCUsnENgsSihCGLCV5CtTTy1avseabBLy9MpvaB7OIxfzarrddTRV9L+QNLOcCEx4hJ2cMS29VyMcGj7yuA=@vger.kernel.org X-Gm-Message-State: AOJu0YxsUPAFrgkASn5lsXbZK08gmdyN0o0poXLIND5jE+s9m/JYuXSd 6L1KMp0pBj0K5ujn8WJSy529Mj1VUdYTFuUNN1jDNd1lJIaHev10dzkp X-Gm-Gg: AeBDietfgVlnICE5d1GiWav9o9jJxrrypaFSmZ4sttS5clfh2RGcyxX7EqEsKKoe1es Zvd6dIIgp0a6LUcGbYiIBADLIPX5HNwc2ITRv6Xh8fsHJKfTqbPej9lGN5q7zE1pbTcQzfceQV+ NIg9+IyKFfiYjVj1v2aCyfTBv8gORVK+5A4pZ6nGfoMTtXpvq7JSBH1NbpwUaVzj2h5LKtYVC8L 5EjwCL28GjtF3I3JUYgTD5poNpX2N4Y2o+UHzvFkzkFxfxRLMxC/MmeXgpjqbugBXJCkShRRLNW pIWAAPXjzEN3c8YZJc2AsXM4ppGwrFMG7xdpS2CAyfMoGHq0bTpGR6o6lyCJzsrXMoaO+97zCVt Gg9C2lIBpSJkWZ/juCWRb0QgOQ4Gpyw5+3dN/eD8NuAVuy+Gy8f1GxfPh266b5XE8u/ky5BNVZZ m5hKozzMEs29bIdPo8xO8F9YGCa3vfhl5cx5DNPsma9ws89dh/UmnzmL0iFUBYWoScqGolXKYF9 eGBk4zehipzJpU= X-Received: by 2002:a05:7022:e02:b0:12b:f881:d8d0 with SMTP id a92af1059eb24-12bfb7459f4mr5048040c88.18.1775450376503; Sun, 05 Apr 2026 21:39:36 -0700 (PDT) Received: from dtor-ws.sjc.corp.google.com ([2a00:79e0:2ebe:8:fe13:98b9:9e98:d1bb]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12bed93f861sm15182005c88.0.2026.04.05.21.39.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Apr 2026 21:39:34 -0700 (PDT) From: Dmitry Torokhov Date: Sun, 05 Apr 2026 21:39:26 -0700 Subject: [PATCH v5 4/4] iio: adc: ti-ads7950: complete conversion to using 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: <20260405-ti-ads7950-facelift-v5-4-1f980ed3cf9e@gmail.com> References: <20260405-ti-ads7950-facelift-v5-0-1f980ed3cf9e@gmail.com> In-Reply-To: <20260405-ti-ads7950-facelift-v5-0-1f980ed3cf9e@gmail.com> To: Jonathan Cameron , David Lechner Cc: =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Linus Walleij , Bartosz Golaszewski , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, Jonathan Cameron X-Mailer: b4 0.16-dev-6911d All resources that the driver needs have managed API now. Switch to using them to make code clearer and drop ti_ads7950_remove(). Reviewed-by: David Lechner Signed-off-by: Dmitry Torokhov --- drivers/iio/adc/ti-ads7950.c | 70 ++++++++++++++--------------------------= ---- 1 file changed, 22 insertions(+), 48 deletions(-) diff --git a/drivers/iio/adc/ti-ads7950.c b/drivers/iio/adc/ti-ads7950.c index 0b98c8e7385d..882b280d9e0b 100644 --- a/drivers/iio/adc/ti-ads7950.c +++ b/drivers/iio/adc/ti-ads7950.c @@ -506,10 +506,8 @@ static int ti_ads7950_probe(struct spi_device *spi) spi->bits_per_word =3D 16; spi->mode |=3D SPI_CS_WORD; ret =3D spi_setup(spi); - if (ret) { - dev_err(&spi->dev, "Error in spi setup\n"); - return ret; - } + if (ret) + return dev_err_probe(&spi->dev, ret, "Error in spi setup\n"); =20 indio_dev =3D devm_iio_device_alloc(&spi->dev, sizeof(*st)); if (!indio_dev) @@ -517,8 +515,6 @@ static int ti_ads7950_probe(struct spi_device *spi) =20 st =3D iio_priv(indio_dev); =20 - spi_set_drvdata(spi, indio_dev); - st->spi =3D spi; =20 info =3D spi_get_device_match_data(spi); @@ -559,7 +555,9 @@ static int ti_ads7950_probe(struct spi_device *spi) spi_message_init_with_transfers(&st->scan_single_msg, st->scan_single_xfer, 3); =20 - mutex_init(&st->slock); + ret =3D devm_mutex_init(&spi->dev, &st->slock); + if (ret) + return ret; =20 /* Use hard coded value for reference voltage in ACPI case */ if (ACPI_COMPANION(&spi->dev)) { @@ -573,24 +571,22 @@ static int ti_ads7950_probe(struct spi_device *spi) st->vref_mv =3D ret / 1000; } =20 - ret =3D iio_triggered_buffer_setup(indio_dev, NULL, - &ti_ads7950_trigger_handler, NULL); - if (ret) { - dev_err(&spi->dev, "Failed to setup triggered buffer\n"); - goto error_destroy_mutex; - } + ret =3D devm_iio_triggered_buffer_setup(&spi->dev, indio_dev, NULL, + &ti_ads7950_trigger_handler, + NULL); + if (ret) + return dev_err_probe(&spi->dev, ret, + "Failed to setup triggered buffer\n"); =20 ret =3D ti_ads7950_init_hw(st); - if (ret) { - dev_err(&spi->dev, "Failed to init adc chip\n"); - goto error_cleanup_ring; - } + if (ret) + return dev_err_probe(&spi->dev, ret, + "Failed to init adc chip\n"); =20 - ret =3D iio_device_register(indio_dev); - if (ret) { - dev_err(&spi->dev, "Failed to register iio device\n"); - goto error_cleanup_ring; - } + ret =3D devm_iio_device_register(&spi->dev, indio_dev); + if (ret) + return dev_err_probe(&spi->dev, ret, + "Failed to register iio device\n"); =20 /* Add GPIO chip */ st->chip.label =3D dev_name(&st->spi->dev); @@ -605,33 +601,12 @@ static int ti_ads7950_probe(struct spi_device *spi) st->chip.get =3D ti_ads7950_get; st->chip.set =3D ti_ads7950_set; =20 - ret =3D gpiochip_add_data(&st->chip, st); - if (ret) { - dev_err(&spi->dev, "Failed to init GPIOs\n"); - goto error_iio_device; - } + ret =3D devm_gpiochip_add_data(&spi->dev, &st->chip, st); + if (ret) + return dev_err_probe(&spi->dev, ret, + "Failed to init GPIOs\n"); =20 return 0; - -error_iio_device: - iio_device_unregister(indio_dev); -error_cleanup_ring: - iio_triggered_buffer_cleanup(indio_dev); -error_destroy_mutex: - mutex_destroy(&st->slock); - - return ret; -} - -static void ti_ads7950_remove(struct spi_device *spi) -{ - struct iio_dev *indio_dev =3D spi_get_drvdata(spi); - struct ti_ads7950_state *st =3D iio_priv(indio_dev); - - gpiochip_remove(&st->chip); - iio_device_unregister(indio_dev); - iio_triggered_buffer_cleanup(indio_dev); - mutex_destroy(&st->slock); } =20 static const struct spi_device_id ti_ads7950_id[] =3D { @@ -674,7 +649,6 @@ static struct spi_driver ti_ads7950_driver =3D { .of_match_table =3D ads7950_of_table, }, .probe =3D ti_ads7950_probe, - .remove =3D ti_ads7950_remove, .id_table =3D ti_ads7950_id, }; module_spi_driver(ti_ads7950_driver); --=20 2.53.0.1213.gd9a14994de-goog