From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yx1-f50.google.com (mail-yx1-f50.google.com [74.125.224.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 6B3D32DA77E for ; Thu, 4 Dec 2025 17:23:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.224.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764868996; cv=none; b=HUEdTjM6d1Agg34ylG+eWZfr//y9JgTRAObGTPVF+dzn7vXLxRZ1H1CuqTguAmZENdA8KVEgl/HLOGi6itw70OlU0pceDwKReuc252HJYLNHU0rL24fYNFsXW/2VE34UuCnSldvyiBLFN/yg8CV53KbiLTYN8g+IvwJam/N/NYA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764868996; c=relaxed/simple; bh=q5xXqvxWQqE1gpmDE7Px8HbivMv1gX/ZhfdYvrsTBM8=; h=Mime-Version:Content-Type:Date:Message-Id:From:To:Cc:Subject: References:In-Reply-To; b=dmbJYO26aKXFufNs2/ias2tPciF5YtWLm0DDzWoJ4ZMRcztmXw8yrl6//h32KpuRf93LHHs7aTv6CQ9PgMVH/IWr4dTpD9jleXa0jlj5Ir7scBfYGRrJmCa+0bf/LXAF6qIOF8q+jShcJbO+snzb4ZL5miEv+4FgWW7lFXazuII= 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=TfnAstCa; arc=none smtp.client-ip=74.125.224.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="TfnAstCa" Received: by mail-yx1-f50.google.com with SMTP id 956f58d0204a3-64107188baeso1013748d50.3 for ; Thu, 04 Dec 2025 09:23:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764868993; x=1765473793; darn=lists.linux.dev; h=in-reply-to:references:subject:cc:to:from:message-id:date :content-transfer-encoding:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=aAM4QJRL7TLUdIu3CrX2GWOT5QNBVQH+Lm0teXvJT5Y=; b=TfnAstCaXsxc3XZbmFdaoWXxM+dWh0gijMYkaFtB3uUJDuvPaowF1+lsJRHOx9/Ltn fqiXKQ9zNiXcSObJi6IihDQ6RfK33GI4tCA75eAHQIf85GyYZvypMKF6z/S7Q8uSdkAA LDbMPRCRk5P2lMoOjHlvZ0rR+UTwI1M9WuRcrepnR7mLAcAApqC4XvmKOXFOapcnTvhX kWr2EdROkig9Xez2bQtAM1O5kmUW3QISjKoLRfQ9ReU4e6bD0wetVpa/s0OEHXWpqlwL pzq9RoetEN3XQUJedKrFYzpw/COSelgWRz9NnXAP7XDIRqgRbIkmV8Jr5u9mkNEBRTNy HmNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764868993; x=1765473793; h=in-reply-to:references:subject:cc:to:from:message-id:date :content-transfer-encoding:mime-version:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=aAM4QJRL7TLUdIu3CrX2GWOT5QNBVQH+Lm0teXvJT5Y=; b=stMGZeIlyOqW7+gNKwBHsAy2afKdetGq9/6gIzVOTfmp5OFYg4cY8CwAqCtGd1moVA q7QtR1Ef9KDv1VSZ7OE/K11wZd5C1ZUjkEqSmMmNxgKmN7hBfDfNFBSJWbmWvOr8ErlT XLKUg0mGGZ3V6fS5VDhNJrSHcMkxSOy8bpJhZqEAvkZGjH+B1yyJaO4u8OhcoE6NLgcP M9CEprF2u6296bWu+H0NB/bwn8bbfOx+BZMsLYJBMONgY/JQ0O2R0cxdzU8CPmQUpQmF gXs28wzexVo87kZnWoiyBIclm0jXqXV33GL1SnKI+3whZpUtiWhwFRmtFQ1g/qeuOz6s 0Lkg== X-Forwarded-Encrypted: i=1; AJvYcCUQWGN8HxK+u+lhsTCTWnHmv3mO/KcAkgdBo17dzRwlfw+tZfa84a5gJTw1BoUSoBzfvONbYFWNiuMDoM1zmY4=@lists.linux.dev X-Gm-Message-State: AOJu0YzYI/ckogyE7327+crF8jTy8nuPWvWZM5pgzSH7MokcQR12fkEn qV04y0BzRnbbS9cFzTePAAByzteVKhs5Yxj+9R8u5zMqANJ7p5a1aYN+ X-Gm-Gg: ASbGncuHV3fAQrwM7sFvYeUUFB7oE/Iz22b1Uxa5sz3EOGLHutG8EZr4RJzADN6+6Ay arUeLEy6VlgCLW52Z0hUhErTe1yqI+1G+G44B/vsgT+6/UcSxsu/AFKFpuakzk/hlJLkR+p2mmH ZoTjLEULDXuhcHUkuaXGVBdmQ+egPqnkMMVrizsCzlw7QTOwoHEFSX4FzamDCvRfF/xmReA7mdm fv89GHh/wqMT5Qvss0FCfOecLChF2wzGwTnenjl7Ctfn83DHVqAWR3cpglH2hq9b8X8pdNR+2/j xneoCaE6p9smKQy1Y43LWdESfBW0NOwgwhAUVdCIhrbLw//6TjiE9kfTUvjl59xD8TcO03zAKPj exLEPhHDEkZY6QiI8I5+joz3fV6aqV1ZA5xsRxbyzIg2G+/VMR/VvY+CuYDJgLsI9jezo1OFHgc Yf8v1//g== X-Google-Smtp-Source: AGHT+IFjOCZVb+IDWIdHcYiF8fqeYL7n7SjobQErooIIfcbkYO12iyruJ5YzoluNctdStUMxNHUQDQ== X-Received: by 2002:a05:690e:4007:b0:63f:b26a:225d with SMTP id 956f58d0204a3-64436fafd69mr5532629d50.14.1764868993293; Thu, 04 Dec 2025 09:23:13 -0800 (PST) Received: from localhost ([2800:bf0:4580:3149:7d4:54b1:c444:6f2f]) by smtp.gmail.com with ESMTPSA id 00721157ae682-78c1b7a72dcsm7386587b3.52.2025.12.04.09.23.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 04 Dec 2025 09:23:12 -0800 (PST) Precedence: bulk X-Mailing-List: chrome-platform@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Thu, 04 Dec 2025 12:23:10 -0500 Message-Id: From: "Kurt Borja" To: "David Lechner" , "Kurt Borja" , "Andy Shevchenko" , "Lars-Peter Clausen" , "Michael Hennerich" , "Jonathan Cameron" , "Benson Leung" , "Antoniu Miclaus" , "Gwendal Grignou" , "Shrikant Raskar" , "Per-Daniel Olsson" Cc: =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , "Guenter Roeck" , "Jonathan Cameron" , , , Subject: Re: [PATCH RFC 6/6] iio: light: opt4060: Use cleanup.h for IIO locks X-Mailer: aerc 0.21.0-0-g5549850facc2 References: <20251203-lock-impr-v1-0-b4a1fd639423@gmail.com> <20251203-lock-impr-v1-6-b4a1fd639423@gmail.com> In-Reply-To: On Wed Dec 3, 2025 at 5:40 PM -05, David Lechner wrote: > On 12/3/25 1:18 PM, Kurt Borja wrote: >> Simplify and drop "hacky" busy-waiting code in >> opt4060_set_driver_state() by using guard(). >>=20 >> Signed-off-by: Kurt Borja >> --- >> drivers/iio/light/opt4060.c | 52 +++++++++++++++-----------------------= ------- >> 1 file changed, 17 insertions(+), 35 deletions(-) >>=20 >> diff --git a/drivers/iio/light/opt4060.c b/drivers/iio/light/opt4060.c >> index 500899d7bd62..903963606143 100644 >> --- a/drivers/iio/light/opt4060.c >> +++ b/drivers/iio/light/opt4060.c >> @@ -22,6 +22,7 @@ >> #include >> #include >> #include >> +#include >> =20 >> /* OPT4060 register set */ >> #define OPT4060_RED_MSB 0x00 >> @@ -302,41 +303,22 @@ static int opt4060_set_driver_state(struct iio_dev= *indio_dev, >> bool continuous_irq) >> { >> struct opt4060_chip *chip =3D iio_priv(indio_dev); >> - int ret =3D 0; >> -any_mode_retry: >> - if (!iio_device_claim_buffer(indio_dev)) { >> - /* >> - * This one is a *bit* hacky. If we cannot claim buffer mode, >> - * then try direct mode so that we make sure things cannot >> - * concurrently change. And we just keep trying until we get one >> - * of the modes... >> - */ >> - if (!iio_device_claim_direct(indio_dev)) >> - goto any_mode_retry; >> - /* >> - * This path means that we managed to claim direct mode. In >> - * this case the buffer isn't enabled and it's okay to leave >> - * continuous mode for sampling and/or irq. >> - */ >> - ret =3D opt4060_set_state_common(chip, continuous_sampling, >> - continuous_irq); >> - iio_device_release_direct(indio_dev); >> - return ret; >> - } else { >> - /* >> - * This path means that we managed to claim buffer mode. In >> - * this case the buffer is enabled and irq and sampling must go >> - * to or remain continuous, but only if the trigger is from this >> - * device. >> - */ >> - if (!iio_trigger_validate_own_device(indio_dev->trig, indio_dev)) >> - ret =3D opt4060_set_state_common(chip, true, true); >> - else >> - ret =3D opt4060_set_state_common(chip, continuous_sampling, >> - continuous_irq); >> - iio_device_release_buffer(indio_dev); >> - } >> - return ret; >> + >> + guard(iio_device_claim)(indio_dev); >> + >> + /* >> + * If we manage to claim buffer mode and we are using our own trigger, >> + * IRQ and sampling must go to or remain continuous. >> + */ >> + if (iio_buffer_enabled(indio_dev) && iio_trigger_using_own(indio_dev)) > > The commit message does not explain why this was changed from > iio_trigger_validate_own_device() to iio_trigger_using_own(). I'm guessin= g > that is why we also dropped the `!`? Hmm I just assumed this functions were equivalent, but looking at the code is not directly obvious. I will look into it and mention this in the commit message. --=20 ~ Kurt