From patchwork Mon Feb 17 14:16:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 13977952 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ECF1822371E for ; Mon, 17 Feb 2025 14:18:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739801922; cv=none; b=aIpKUwEWstjENN3FMRhpSPuw1mbTR5WX5MN0MIL6zPLPM4gIVS62SMp5mkTnO8e1RyE0sSUOWbhDN0+X79DmyFVbGCx0etWoBl2uQQytmCiFg6mPIKmpJYELTwtvX1/dXzyYOW93n3rOrYMGEAd8ls43QS+eBfDnDSygNE0jObQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739801922; c=relaxed/simple; bh=KOYPDKRYsrEDbpMkEzjB16ST2Jtl17WqIPkizlIUV58=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gCTioXJw2v90R47gkaxvMRJ6GtXSprNuU5ezJ4rqY7qz6xVgILyWkilr6inBdjgFSVbbZVm4vt/UhuyT880dTNRhrE7VtZ+PWEciUsb+tLG0Hjx2mcc2kSM5lW7xNKQf9G9SogOIyOQNMkrKTYhBTk2i395oOhXU+zGc9eYLUHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=u2vKJwec; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="u2vKJwec" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D2674C4CED1; Mon, 17 Feb 2025 14:18:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739801921; bh=KOYPDKRYsrEDbpMkEzjB16ST2Jtl17WqIPkizlIUV58=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u2vKJwec4HmfOXr/4tt5eGonVa7KhsgQTfnAq9g9AqnS8r6DqEEgDGiETmbXBwslk m4k05eXeU5l9D4X5bOyQJW4/jThUSeTXJMA7Akx6pABNL2W78NAGWH1Of3AnxNYDij L7HsoemCYhl3Ptywq4o61yE3luCMrXJTFARUJyNeVScC4QTdDvVsPYLE8i0YOAhwRP i8MouNKWPTUcSmOBtaYhavZvt2iS6iK+aNeKLXzcnlUTyt5Pg8UBszPsskgdngsbzN 8gUrX/7kUcgQH44345gRfLF/N1JMSCbdrO1If4kOBLHZUiORTFQZnYqopNmtTxzhgE RacTuA9oUL2+w== From: Jonathan Cameron To: linux-iio@vger.kernel.org Cc: David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Olivier Moysan , Mike Looijmans , Phil Reid , Marek Vasut , Miquel Raynal , Claudiu Beznea , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , Alisa-Dariana Roman , Marek Vasut , Frank Li , Jonathan Cameron Subject: [PATCH 20/29] iio: adc: ad_sigma_delta: Switch to sparse friendly iio_device_claim/release_direct() Date: Mon, 17 Feb 2025 14:16:20 +0000 Message-ID: <20250217141630.897334-21-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250217141630.897334-1-jic23@kernel.org> References: <20250217141630.897334-1-jic23@kernel.org> Precedence: bulk X-Mailing-List: linux-iio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Jonathan Cameron These new functions allow sparse to find failures to release direct mode reducing chances of bugs over the claim_direct_mode() functions that are deprecated. This is a complex function with a lot more than the release of direct mode to unwind on error. As such no attempt made to factor out the inner code. Signed-off-by: Jonathan Cameron Cc: Uwe Kleine-König Reviewed-by: Nuno Sá --- drivers/iio/adc/ad_sigma_delta.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c index 10e635fc4fa4..5907c35b98e5 100644 --- a/drivers/iio/adc/ad_sigma_delta.c +++ b/drivers/iio/adc/ad_sigma_delta.c @@ -386,9 +386,8 @@ int ad_sigma_delta_single_conversion(struct iio_dev *indio_dev, unsigned int data_reg; int ret = 0; - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ad_sigma_delta_set_channel(sigma_delta, chan->address); @@ -431,7 +430,7 @@ int ad_sigma_delta_single_conversion(struct iio_dev *indio_dev, sigma_delta->keep_cs_asserted = false; sigma_delta->bus_locked = false; spi_bus_unlock(sigma_delta->spi->controller); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); if (ret) return ret;