From nobody Mon May 25 08:11:31 2026 Received: from mail-ot1-f51.google.com (mail-ot1-f51.google.com [209.85.210.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 5D5E63D0C03 for ; Sat, 16 May 2026 15:09:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778944191; cv=none; b=C+XRuh3oZ89uyWNmNO2rd7CgoSY65xF7p3mNQ0BzaLdfCA+paTNC/eBjGS7mh9HkOkfT0WyNNo0TWZcghSUDftZTzJsZ8zQ2bcO0JGwSpr+IB1rZvAYyrCeRsJ+Ppz0TgwxSMszwu0pY0qiZkaCFEjDhDA4MW0bG4z73cax2rnY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778944191; c=relaxed/simple; bh=dSUXvSzLwKZG6Nl2GPO6UNxqhFumM97KURXLcfNsPkk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=By1IOy6uGFasYDOFO0XYjiwbyWsaDSjxncrMeMy315l0Lap3nCzob9/54Ay2ZfWwiZ4I6uXSMh1DZjTOnbWXjn46+iyjdChiQjumutVJZ9NT8Bl/5Mp6K0XTGbeiSsSuh5D1+vnISFVwmIsyefmXMg3ti8V8RiDDUDF9AVwvEiU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20251104.gappssmtp.com header.i=@baylibre-com.20251104.gappssmtp.com header.b=gL7q7omr; arc=none smtp.client-ip=209.85.210.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20251104.gappssmtp.com header.i=@baylibre-com.20251104.gappssmtp.com header.b="gL7q7omr" Received: by mail-ot1-f51.google.com with SMTP id 46e09a7af769-7de46b8e432so1023975a34.1 for ; Sat, 16 May 2026 08:09:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20251104.gappssmtp.com; s=20251104; t=1778944188; x=1779548988; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=JSdtmrJdHfFRkKT+UmZI3jwyLCc28bswVYuYpYjVngs=; b=gL7q7omrTWl8sE82SEpoHSDofLX8ocI9EuHfBfxZfpWmucj9MJ2PfJVJ2/grP29SlX 1bdTslsbWBabE398+vxtQ/EClf8yYYYDFznf6h5F1vQezpTimWXsynkEh+A4kV+FNmEm Uw0PLiYFItg9LqUDzWKGwgGKYpfIKtm47qShEWnAzDcxBbeRuhwWuOIolQXqSLwKKi7Z eG0EZm8KTd5cRDyRga6RfLZhAeWLiZzNpHkhVmbz0ar5WV6otQUBOLhIhiHcaX7mDHsC IbL++ngiuhvvbZZiwUCjUVY69+QQJQok7nJHHu0SON83rQbkVlX9IpMzDdb29FLDZfD4 jpYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778944188; x=1779548988; h=cc:to: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=JSdtmrJdHfFRkKT+UmZI3jwyLCc28bswVYuYpYjVngs=; b=EQ7JHZXTQkwZ3vNMd+/UG4EQWBdrZYrw1Mv8wUtJotG+g3xhArpeVLPkTLBqwMiGYs TIUXlOOeanZowVzFr3RAIq29pEP5kLl2/C/SYlmiohoc9bJ0NWIp10uFd1DXLo5a8/1R OpR8WU+kqiR5xmfmdX8IYDZEiWQhEdBjfO/QQo1xFZVya06/At38pGzN7jsa3iPjX7YA sdWWGFK2O7QsyGCUubNaklIEjQQnNZof9rgpAzcghgvVvvsRNlO8PxM4em87o8+y5Lis Fx/Av2Znc/XKdoPXJUWe4FPamm8MJKJPfOH7O81Pv0PKQ9nxvf0KiLZw/1Pi2DCuu21Y 8xMg== X-Forwarded-Encrypted: i=1; AFNElJ9JOTy6TSNkFX1uxH9Jd1KiaSN+czVzA+ahvxxSBdJr4QzbemnmhGN6mSWUmEpswbTzTasUkZbQVFs2EA8=@vger.kernel.org X-Gm-Message-State: AOJu0YzIhFAcaXNN+W5N4gcsj4I5g5Nl4707ZT/zSbtPGolr2OUZWCZ+ FbSX4m5o4W6dbHUtZxbFWZ/Ot8xdMRxfgBkkiBwxWp16DFDJgIeLwJXWy1sNES9JlQ4= X-Gm-Gg: Acq92OFnwL6NxFUKV+opV/W+MWKsteuO7Tb73YBWMblQIUk8kEw6cS/Q/dvfTR6IMYD IXDLy6adD8ZdPHTkUYubkfkwa2CegKcVbA7G6A06Jhhy+j4ofdD250bOVx7lJk6Wr0ymQrtAb6p JxXOhmRa2DEO50PYLO1cGoeXjytX8ZPPWqZEojCeu+rqZa7/JN+usBKHJN4sEH555Lv+1z6IVYN rcrmWH00kFj5txX9H1kBhORFZ2f/rQhGCQMpQw2muITxovneRNw9uh1bi3SBW2up1OqLivqs1+N amkKao0Ac+m2Gvp9eZt6iGdn8wTyO0keIsf374IheJeg/BIENa0D2ocflHgUJs2MTnaBhOew8eC GMp+IcBEWV2bjZsqrypISiotcsldP4hOmyf+Yerkthqo7gTRhPBzxBZ9/utDXhZ3blBA6w1ZqmK xr/Zdh9Hb3L5+nHocy4MNocszYf4Mk X-Received: by 2002:a05:6830:82bd:b0:7e3:fa31:1104 with SMTP id 46e09a7af769-7e4fa052bc2mr6092771a34.22.1778944187704; Sat, 16 May 2026 08:09:47 -0700 (PDT) Received: from [127.0.1.1] ([2600:8803:e7e4:500:b36d:bd18:7c02:29e2]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7e55bc4749esm3966205a34.23.2026.05.16.08.09.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 May 2026 08:09:46 -0700 (PDT) From: David Lechner Date: Sat, 16 May 2026 10:09:37 -0500 Subject: [PATCH] iio: resolver: ad2s1210: refactor trigger handler 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: <20260516-iio-resolver-refactor-trigger-handler-v1-1-25b11ba0155e@baylibre.com> X-B4-Tracking: v=1; b=H4sIAAAAAAAC/yWN0Q6CMAxFf4X0mSWwKSq/QnyYW5k1hJl2LiaEf 7fqU3tubk83EGRCgbHZgLGSUF4V+raBcPdrQkNRGWxnh+7YD4YoG0bJS0XWZfahZDaFKSUN9CQ uOv3szhfn4skfLKjrqU16//5M1z/L6/bAUL5y2PcPlZCm6okAAAA= X-Change-ID: 20260516-iio-resolver-refactor-trigger-handler-af38933d7a42 To: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: Stepan Ionichev , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, David Lechner X-Mailer: b4 0.16-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=3263; i=dlechner@baylibre.com; h=from:subject:message-id; bh=dSUXvSzLwKZG6Nl2GPO6UNxqhFumM97KURXLcfNsPkk=; b=owEBbQGS/pANAwAKAcLMIAH/AY/AAcsmYgBqCIizbO7MNJvZcseRWKIROrfLq2QNC3HmjLvMr FgyCpF/lHiJATMEAAEKAB0WIQTsGNmeYg6D1pzYaJjCzCAB/wGPwAUCagiIswAKCRDCzCAB/wGP wPJ0B/4yYesUcGybJbyzYuxORu53mb+ImyKUcJQpENBbpnNRCXrGXbnDUoeo4XVZXfLS2dD2I6k 9diDKJ0qrv8mbi35acljLLIOZjToKcnxs1/xXLNEUfu0Tlj32Bo1uS+oFUz9dGcvP8OSNq73of5 v13m+xt2YtQULny+hW2MOHbmv5WYw411PqSz+EURgwvjLx0YAt+BsgHZhCdhAzGSfVnduMidumu i7B5TxURXLroQq02XGhrgWgB73MvUOEx+W494Ee5X+vMd0RpsHGxsFrQiVYkvEDEvuXVOyvF8EX OPJqCYM4VUK7Jbz1DMntpShadGojL/r93MRs9FNu8S0hzPkv X-Developer-Key: i=dlechner@baylibre.com; a=openpgp; fpr=8A73D82A6A1F509907F373881F8AF88C82F77C03 Refactor the trigger handler to avoid use of goto in a guard() scope. Ideally, we should not be mixing goto and automatic cleanup. iio_trigger_notify_done() was not part of the critical section anyway, so is not moved to the new function. Signed-off-by: David Lechner Reviewed-by: Stepan Ionichev --- Following up from [1]. This depends on a fix, so will have to wait a bit before this can be applied. [1]: https://lore.kernel.org/linux-iio/20260516122838.163a77d3@jic23-huawei/ --- drivers/iio/resolver/ad2s1210.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/drivers/iio/resolver/ad2s1210.c b/drivers/iio/resolver/ad2s121= 0.c index 1be19fe8aa3f..59c035311691 100644 --- a/drivers/iio/resolver/ad2s1210.c +++ b/drivers/iio/resolver/ad2s1210.c @@ -1276,10 +1276,8 @@ static int ad2s1210_debugfs_reg_access(struct iio_de= v *indio_dev, return regmap_write(st->regmap, reg, writeval); } =20 -static irqreturn_t ad2s1210_trigger_handler(int irq, void *p) +static void ad2s1210_scan_to_buffers(struct iio_dev *indio_dev, s64 timest= amp) { - struct iio_poll_func *pf =3D p; - struct iio_dev *indio_dev =3D pf->indio_dev; struct ad2s1210_state *st =3D iio_priv(indio_dev); size_t chan =3D 0; int ret; @@ -1295,15 +1293,15 @@ static irqreturn_t ad2s1210_trigger_handler(int irq= , void *p) AD2S1210_REG_POSITION_MSB, &st->sample.raw, 2); if (ret < 0) - goto error_ret; + return; } else { ret =3D ad2s1210_set_mode(st, MOD_POS); if (ret < 0) - goto error_ret; + return; =20 ret =3D spi_read(st->sdev, &st->sample, 3); if (ret < 0) - goto error_ret; + return; } =20 memcpy(&st->scan.chan[chan++], &st->sample.raw, 2); @@ -1315,15 +1313,15 @@ static irqreturn_t ad2s1210_trigger_handler(int irq= , void *p) AD2S1210_REG_VELOCITY_MSB, &st->sample.raw, 2); if (ret < 0) - goto error_ret; + return; } else { ret =3D ad2s1210_set_mode(st, MOD_VEL); if (ret < 0) - goto error_ret; + return; =20 ret =3D spi_read(st->sdev, &st->sample, 3); if (ret < 0) - goto error_ret; + return; } =20 memcpy(&st->scan.chan[chan++], &st->sample.raw, 2); @@ -1334,16 +1332,22 @@ static irqreturn_t ad2s1210_trigger_handler(int irq= , void *p) =20 ret =3D regmap_read(st->regmap, AD2S1210_REG_FAULT, ®_val); if (ret < 0) - goto error_ret; + return; =20 st->sample.fault =3D reg_val; } =20 - ad2s1210_push_events(indio_dev, st->sample.fault, pf->timestamp); + ad2s1210_push_events(indio_dev, st->sample.fault, timestamp); iio_push_to_buffers_with_ts(indio_dev, &st->scan, sizeof(st->scan), - pf->timestamp); + timestamp); +} + +static irqreturn_t ad2s1210_trigger_handler(int irq, void *p) +{ + struct iio_poll_func *pf =3D p; + struct iio_dev *indio_dev =3D pf->indio_dev; =20 -error_ret: + ad2s1210_scan_to_buffers(indio_dev, pf->timestamp); iio_trigger_notify_done(indio_dev->trig); =20 return IRQ_HANDLED; --- base-commit: 0eb0ac8b282b273c254dcda52d29b06a92840252 change-id: 20260516-iio-resolver-refactor-trigger-handler-af38933d7a42 Best regards, -- =20 David Lechner