From nobody Mon Feb 9 17:57:33 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 705A0191F7E for ; Tue, 24 Dec 2024 09:34:38 +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=1735032881; cv=none; b=ScVKc60PmsHNCvcaqRytr+PN+yAV0SA4WFw4IPjHOa1eLusDrqE1c9WEmTatu087N8tQ3BRxRZX3/V/S240x3Ig4ALxu9sQdi9G4migstr7P2HW3FzOFQfbVnRaJijtVkEdgnhSMt2b2UsXuyGOa38W2vhvnBXH8yZaheVUFCqI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1735032881; c=relaxed/simple; bh=VE1/sptLNJO9oRV/s4kfSNaNVaKhi9VwxXf2A7CoZaU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=O5TRvRcTXGrs244e01SV2dl6daVAkcHUUi/xwVo5HTf99LaIpBCgEO5CXn0RtnPlyc0HFfSZrz+H8LtqOiTm67O2SFdK9uAVEUT+ppU2s5MHQFs4aznRTQQT5NwN0RlLpS7ssg5RyalxnmsRTKmg9af/rObzKtjV5+e7NqBW1jQ= 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.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=tiVJgpL8; arc=none smtp.client-ip=209.85.128.42 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.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="tiVJgpL8" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-4361fe642ddso51902195e9.2 for ; Tue, 24 Dec 2024 01:34:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1735032877; x=1735637677; 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=pM6GFa5ErxgDv1duEO96l/YGRIBmSTG/1V9JEZbHJNg=; b=tiVJgpL8PBePKmoD8zGPr0UJIMRjAhNnkPq6DXAVzhjZFalqigT4izOb1Hq31ibngI /FfR1psrFvXx6TZDWQcge3uhx5rEQxrK9frove+Jpn+7t/NPBrPQi1nl23qKZiYDZh9c CVgkfUWclJLO/TFKxXD/59IIET5ru5u32U8aqfbAnW0Pt/20rAk/hRKOSNfBcOJl+oLZ 7h2LLw7ysPBaRnGf7cnfpB3HZDve0DV6+5ii9TKizoDAyR4+sSyJhV0+1RzyZieLu6dq q7SJXn4DlT8HbAF4I5Y6tAeyOCJ6smjJ/DsVSLSodKGZe6/4evHKMI1cTFbIXwKMa3Yq zkCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735032877; x=1735637677; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pM6GFa5ErxgDv1duEO96l/YGRIBmSTG/1V9JEZbHJNg=; b=AeNEAwHck2IYpM1G/XdUvbQiVObKVrQR879Z/UAhWZxmugqgvteE+Lb/Z9iCS+RiR2 xeOBQsAxqCzEZRwD+NS9Mq/vYiIfc5qOE5z6tZk7d+kTKp3AaZJSRd7RX2Z8fTqmT7nu THSxgOvNAfp6U2k8T0+2TCTkmeOxehqBjuOqZdbwZ+K/WulLKen5fDdOtCy6QAQNIwP9 lVeYp4z0ucFyKX9DhKR5zdWc2t7LhmkW/WqQK/YAk8dd1C4ogBAYenXutv3VTUxOYd71 KJhxU2t8F544EL+oCwmC69FHx/JuERJFu3UUOGE4/ES6tCOLmUVJGfOE2Xm+dVGi/au9 MQkA== X-Forwarded-Encrypted: i=1; AJvYcCUiyOoTadTCymo5RX5CzAF2oULSUHmqAezv9+rj3OCowWqq0h06aOEpD6Vwjpux64JYTSRAyiQqHVXApzc=@vger.kernel.org X-Gm-Message-State: AOJu0Yw2S7wZETdQL+tfMyRcWnklAmhTod4zxPODmQOZtQ1wf262ntZQ UKdiVyfKqPAM4jCH6ZVeGYWJg1qJurF+TMHuqegVwWWiUljJ16Uv11Rt4Ar7Pf0= X-Gm-Gg: ASbGnctmGSCSnybcpQe1u1kyXSQCs5AnpCFQyrFDMRNt2H3XWhAL+rdpsYEvDo4G5NT IDO+amEFJh64XMMaUoV3Se1iozJZ19oBpBN5Cszmthvput465wUBgU8ZA5AnsdXucPi4lFyGHSO S3RwPbSv4mHLGBBCKHM27z1v7YsxJ7Xn+A7r1Ir/PPs/2vwGZpis/jpCKQ5NPxesm9Gst3Fx5xn 2ENugjWIlZOSOAsdGnjFpeob/OkyZQrsyBUeaVpL1+7UXVaPub5447Cu/BqcEmvFqT0HM5TAXUo if4rejpk2VmTagvSlhCSsIuUBova2i3yvpIL0NK/91TcjJJx2w== X-Google-Smtp-Source: AGHT+IGGwBexuuCsSb+2k165A9EG+BSDBn4ld60SJ41FUJ7s7F5ae+cT99SxaOIzBMBk0nh9sB6PGg== X-Received: by 2002:a05:600c:1388:b0:434:f871:1bbc with SMTP id 5b1f17b1804b1-43668643aaamr168725875e9.10.1735032876784; Tue, 24 Dec 2024 01:34:36 -0800 (PST) Received: from [192.168.1.62] (2a02-842a-d52e-6101-6fd0-06c4-5d68-f0a5.rev.sfr.net. [2a02:842a:d52e:6101:6fd0:6c4:5d68:f0a5]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43661219a7csm160932535e9.24.2024.12.24.01.34.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Dec 2024 01:34:36 -0800 (PST) From: Julien Stephan Date: Tue, 24 Dec 2024 10:34:30 +0100 Subject: [PATCH RFC v2 1/4] iio: adc: ad7380: do not use iio_device_claim_direct_scoped anymore 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: <20241224-ad7380-add-alert-support-v2-1-7c89b2bf7cb3@baylibre.com> References: <20241224-ad7380-add-alert-support-v2-0-7c89b2bf7cb3@baylibre.com> In-Reply-To: <20241224-ad7380-add-alert-support-v2-0-7c89b2bf7cb3@baylibre.com> To: Lars-Peter Clausen , Michael Hennerich , =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron , Jonathan Corbet Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Julien Stephan X-Mailer: b4 0.14.2 Rollback and remove the scoped version of iio_dvice_claim_direct_mode. Signed-off-by: Julien Stephan --- drivers/iio/adc/ad7380.c | 89 ++++++++++++++++++++++++++++----------------= ---- 1 file changed, 53 insertions(+), 36 deletions(-) diff --git a/drivers/iio/adc/ad7380.c b/drivers/iio/adc/ad7380.c index 4f32cb22f140442b831dc9a4f275e88e4ab2388e..4e26e0e7ac1d5a1c4c67118dbc3= 4f2921fc171a4 100644 --- a/drivers/iio/adc/ad7380.c +++ b/drivers/iio/adc/ad7380.c @@ -675,15 +675,21 @@ static const struct regmap_config ad7380_regmap_confi= g =3D { static int ad7380_debugfs_reg_access(struct iio_dev *indio_dev, u32 reg, u32 writeval, u32 *readval) { - iio_device_claim_direct_scoped(return -EBUSY, indio_dev) { - struct ad7380_state *st =3D iio_priv(indio_dev); + struct ad7380_state *st =3D iio_priv(indio_dev); + int ret; =20 - if (readval) - return regmap_read(st->regmap, reg, readval); - else - return regmap_write(st->regmap, reg, writeval); - } - unreachable(); + ret =3D iio_device_claim_direct_mode(indio_dev); + if (ret) + return ret; + + if (readval) + ret =3D regmap_read(st->regmap, reg, readval); + else + ret =3D regmap_write(st->regmap, reg, writeval); + + iio_device_release_direct_mode(indio_dev); + + return ret; } =20 /* @@ -920,6 +926,7 @@ static int ad7380_read_raw(struct iio_dev *indio_dev, { struct ad7380_state *st =3D iio_priv(indio_dev); const struct iio_scan_type *scan_type; + int ret; =20 scan_type =3D iio_get_current_scan_type(indio_dev, chan); =20 @@ -928,11 +935,16 @@ static int ad7380_read_raw(struct iio_dev *indio_dev, =20 switch (info) { case IIO_CHAN_INFO_RAW: - iio_device_claim_direct_scoped(return -EBUSY, indio_dev) { - return ad7380_read_direct(st, chan->scan_index, - scan_type, val); - } - unreachable(); + ret =3D iio_device_claim_direct_mode(indio_dev); + if (ret) + return ret; + + ret =3D ad7380_read_direct(st, chan->scan_index, + scan_type, val); + + iio_device_release_direct_mode(indio_dev); + + return ret; case IIO_CHAN_INFO_SCALE: /* * According to the datasheet, the LSB size is: @@ -1024,31 +1036,36 @@ static int ad7380_write_raw(struct iio_dev *indio_d= ev, /* always enable resolution boost when oversampling is enabled */ boost =3D osr > 0 ? 1 : 0; =20 - iio_device_claim_direct_scoped(return -EBUSY, indio_dev) { - ret =3D regmap_update_bits(st->regmap, - AD7380_REG_ADDR_CONFIG1, - AD7380_CONFIG1_OSR | AD7380_CONFIG1_RES, - FIELD_PREP(AD7380_CONFIG1_OSR, osr) | - FIELD_PREP(AD7380_CONFIG1_RES, boost)); + ret =3D iio_device_claim_direct_mode(indio_dev); + if (ret) + return ret; =20 - if (ret) - return ret; + ret =3D regmap_update_bits(st->regmap, + AD7380_REG_ADDR_CONFIG1, + AD7380_CONFIG1_OSR | AD7380_CONFIG1_RES, + FIELD_PREP(AD7380_CONFIG1_OSR, osr) | + FIELD_PREP(AD7380_CONFIG1_RES, boost)); =20 - st->oversampling_ratio =3D val; - st->resolution_boost_enabled =3D boost; - - /* - * Perform a soft reset. This will flush the oversampling - * block and FIFO but will maintain the content of the - * configurable registers. - */ - return regmap_update_bits(st->regmap, - AD7380_REG_ADDR_CONFIG2, - AD7380_CONFIG2_RESET, - FIELD_PREP(AD7380_CONFIG2_RESET, - AD7380_CONFIG2_RESET_SOFT)); - } - unreachable(); + if (ret) + goto err; + + st->oversampling_ratio =3D val; + st->resolution_boost_enabled =3D boost; + + /* + * Perform a soft reset. This will flush the oversampling + * block and FIFO but will maintain the content of the + * configurable registers. + */ + ret =3D regmap_update_bits(st->regmap, + AD7380_REG_ADDR_CONFIG2, + AD7380_CONFIG2_RESET, + FIELD_PREP(AD7380_CONFIG2_RESET, + AD7380_CONFIG2_RESET_SOFT)); +err: + iio_device_release_direct_mode(indio_dev); + + return ret; default: return -EINVAL; } --=20 2.47.1