From patchwork Sun Mar 9 17:06:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008658 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 CF9CD1DEFD0 for ; Sun, 9 Mar 2025 17:06:50 +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=1741540010; cv=none; b=ZIrJkEYnBCLIzsGfq+EuwoAGtmRwXNT0w5upgOSTft6DgNvo9R1QLTgLEmrsF2ugBC67iVP4+5lw0Uja7Djf8UQj4tnSIuN3kyT0+kiYEMGVxd8aHz5omecwkr8LpE+bPMK63pe44+9a0zk3z8ekh4oMcQEhCNmWnIEvQ+0GLec= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540010; c=relaxed/simple; bh=k0SxrHoPHzJr884c6rJdiNWgZyDmS6FFwYIu/xA6y1I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=q4PChyN5eMI5yGUzVq7zesvA8/JIEm/xKJLnFGaXrS52IpW3cecwVbHoyjR6Rjm03Fr40pSa4Xbu2yF3XybQXBTXzvSQTD+v/PstrzWiUHYtNeRBBjj8y7DlqMmeKEoqmsjmyD6yyl3u6ScSDkL4EUarS/2lLqrDyM0pGH8U9zg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ti60d1PA; 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="Ti60d1PA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C37E8C4CEE5; Sun, 9 Mar 2025 17:06:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540010; bh=k0SxrHoPHzJr884c6rJdiNWgZyDmS6FFwYIu/xA6y1I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ti60d1PANl0GU8IvzQEjDLfWr39H/nSChM8Yq06ay6u4Dy9JKWj2AvAarfAaf7BRo Z2LjX2SEcfmkOXA7k2KcjBYRzHlbb+3Wr5D3JeFUIlB3doLyqq5tJPztSImlUneqXr KRu+8+zPo+7i1dnaAdgz5FTwdMQqgN8ZWdIS/BOyAJlgS+FDGt64hI2AqV3dTA9txS ipPmBQyP/hcFW4vQccj23Q2K0tVJa/Q1IoccJ6OSf9yGlrm412H1OmaMTj1TTEO4sn dlOXeEUo4coIVVSdmV7oM/lk44J8xkLCisU3rLBX4mkMUNzeXGgni2qt1tRX+BZhBu QpJhxSfVwl5pA== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 01/18] iio: light: apds9306: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:16 +0000 Message-ID: <20250309170633.1347476-2-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron Cc: Subhajit Ghosh --- drivers/iio/light/apds9306.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/iio/light/apds9306.c b/drivers/iio/light/apds9306.c index 69a0d609cffc..fca7e73a905c 100644 --- a/drivers/iio/light/apds9306.c +++ b/drivers/iio/light/apds9306.c @@ -831,11 +831,10 @@ static int apds9306_read_raw(struct iio_dev *indio_dev, * Changing device parameters during adc operation, resets * the ADC which has to avoided. */ - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = apds9306_read_data(data, val, reg); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); if (ret) return ret; From patchwork Sun Mar 9 17:06:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008659 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 D25141DE4CA for ; Sun, 9 Mar 2025 17:06:54 +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=1741540015; cv=none; b=fi4V7XZnvs7FbetCtysNx1yU0+ukrhwsS6KziaatXQzyF+0SMNLWjWhQmQqNdOj/lZXmt6bWrBl34HqfnPZjwX/Ty+Sf0BWE3JDE/fWYbFL/2FFIE83jjZX956ySTC3p5R8VUWRALlexOp5Dpnpa7l8XmVUofeILO8p1296ZoWA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540015; c=relaxed/simple; bh=YVTk/NADw0S7PmJCxQqiE9c6y7fLriCnGfUa55G7ME8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VjVOYPnWvAEbCpJLXRZAFmawDtHC6hq27vPAR5hnxDUyLyToXsfTNKdK/Zx04uu9Qunu/XU5KQ+/XgEu5FeKMsj/fNKNUmkrPgfTrD6N/ssxy/eDFAhCWTerpx3Wlrv56hGfxRvM+g/YhC3uiJ+rX0pqnATyZG1ZyQdvvO2gSxk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ndrIvdJD; 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="ndrIvdJD" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 16739C4CEE3; Sun, 9 Mar 2025 17:06:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540014; bh=YVTk/NADw0S7PmJCxQqiE9c6y7fLriCnGfUa55G7ME8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ndrIvdJDL16g+jPzDXM6rpWdZ9v4b8DeVeiJFUMrx+gxFX8wuRgLFb16niWC4gphM hzM1zQ0D0qSYJIGktSB+j+KeBEct+zTO13VIhG3ZrFXvWeBsRlsdOoIijMP//XTSfP uBVMDQkkAsteG9cmxagiTEr5QiFLn5ITrUzBaQxeK2A4GhpadTSnztsxxhWC9+HYDR vBPqt0aPPP1WHxF1F5+mq6sYIrSdcZP+tFbg7sdLocSX3+etIIZZRJZ8hZob7g5P2m JMV5hcWpZNLKh/CziThD+gC7zAh29u1HBQQ+EyDfiIGK8fVEwbrVQcDWabjAmdLAvA gCYdu5F5zKwjg== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 02/18] iio: light: gp2ap020a00f: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:17 +0000 Message-ID: <20250309170633.1347476-3-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron --- drivers/iio/light/gp2ap020a00f.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/iio/light/gp2ap020a00f.c b/drivers/iio/light/gp2ap020a00f.c index 1a352c88598e..c7df4b258e2c 100644 --- a/drivers/iio/light/gp2ap020a00f.c +++ b/drivers/iio/light/gp2ap020a00f.c @@ -1283,12 +1283,11 @@ static int gp2ap020a00f_read_raw(struct iio_dev *indio_dev, int err = -EINVAL; if (mask == IIO_CHAN_INFO_RAW) { - err = iio_device_claim_direct_mode(indio_dev); - if (err) - return err; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; err = gp2ap020a00f_read_channel(data, chan, val); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); } return err < 0 ? err : IIO_VAL_INT; } From patchwork Sun Mar 9 17:06:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008660 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 DBDFA2AE95 for ; Sun, 9 Mar 2025 17:06:58 +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=1741540018; cv=none; b=iWkyWMKCkCD9EhZFGEb415vAJQW/ZPtKcUO1NS8fQSFfEf88fw9rA37aXuTVFYiLBISOUvyeEMhAyfkPSf8BkpCeyDF3c+SFQTtpZOyGrgrGQHsO9Xn1ZdzjKv6u5QHbfhpy6Uo4Gfk7E1u39yhC5jKZl9ToNIfLPchOhTPxLCE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540018; c=relaxed/simple; bh=sjo8I+TItiGsiEftwmu24qPk9lUz7fQiNJdOgPfhtyU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mptAePONyddYLmgpZ6HI1DHBuqFb9AxV/YTVCFTuQO9oRySwQp6xoWcHAweLqGvuOAuTOwzrwR/F4TLStlEsnHH14Ercwo3Ic6iOeIgf65wK0RJZQfc4RA4h8+nRaQNpMqKdC9kyqJlNNAniqXAh17C0xWF5w92dSrvrBpoYWSs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=g+nmlZCX; 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="g+nmlZCX" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1BD96C4CEE5; Sun, 9 Mar 2025 17:06:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540018; bh=sjo8I+TItiGsiEftwmu24qPk9lUz7fQiNJdOgPfhtyU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=g+nmlZCXWLxe2TmGDhXEwsmb7NHOUouej5C0fvqJTVez9SquOMWfjJ1oOqi+APb5i fWIxkTCiQ5rQChiAQG2rgteNHWDabDMI2snlvltEu03tPYwz+6ZQ10JwOaBjaqZkYW MsuHZ5ID+yAZ4GmWATck12p/ACrtthSab1xK+UBXJMyM7k0Xc1B58QROeQ0CY/JQ0M OTDsWe+eRWsks7tLyijgZfgBxkOB4LcPyDS9iiy/C7CRuzGLVS4ryqA4za0YJGFMrw dBYzJ0oUCHXgPvI/ni0kOnCB+KviyFO/oj1EfgXlrVRDUefSKBaXPMhhcHinvpJ2Do ITUbdCoDC4BPg== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 03/18] iio: light: isl29125: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:18 +0000 Message-ID: <20250309170633.1347476-4-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron --- drivers/iio/light/isl29125.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/iio/light/isl29125.c b/drivers/iio/light/isl29125.c index 326dc39e7929..6bc23b164cc5 100644 --- a/drivers/iio/light/isl29125.c +++ b/drivers/iio/light/isl29125.c @@ -131,11 +131,10 @@ static int isl29125_read_raw(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_RAW: - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = isl29125_read_data(data, chan->scan_index); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); if (ret < 0) return ret; *val = ret; From patchwork Sun Mar 9 17:06:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008661 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 BC2E11DE4CA for ; Sun, 9 Mar 2025 17:07:02 +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=1741540022; cv=none; b=K8UETgyL5j/K9iesQH0FEhs9Lv8fCSvp4fYTyZyuFYMHQOI+bc+fU5RpEX154Pqnib0MsvDIDhCfBRot4PzbFXAU8AD8swq+qZCMjbpbYeGjNn1xn2spe+tD1XWPHHUGkrRb95hmrnG9RQgvF7fswwfvVvwfqNwoygOXrpKY0pc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540022; c=relaxed/simple; bh=XqhwJWvXrjIMVDeQulkYU/6RudYJSuGMEXFUXrqG4vY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=br3v/C3m/Ay/U06Qh6hOHGzoSMmDycw1y6mgmKB0K1RW6cmCL2Nz0lqB+ZucL+XqNqKunbaLwkhck1QrkOfkEonFV/DYuqX/cyd1MSXrP3sCwt3s2gHeO0Df8kQ7jGVdM7FYkVh4wwiw7rRHNfMnauVlze//vzkRqM1sdIFr6HI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=B1zViEkw; 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="B1zViEkw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 288B1C4CEE3; Sun, 9 Mar 2025 17:06:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540022; bh=XqhwJWvXrjIMVDeQulkYU/6RudYJSuGMEXFUXrqG4vY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=B1zViEkweOYJpOvYtAgA85DwrwDPZsUgD6GWkXaGmsja7cgu4jqcnUy6o1ThjGf0g /x4c9B5YCagvXmphONRPHfqjAVqtW5MjvRWVFlfh3JZ5DE1JPqZ959GK/mDBePEnvx u3TLUI5PfiVIRiWgC0gWcwV47QNbSBmsPXqttBwKQecQMDbipmi82GGdaXZjwaVZwD pR6jzclKYY7zF2I6qZk8QD1x+OOCVGBBOs7hcbUEZYL/1RnHwiqOsFYgfCp/wX7tXm qIZM6S/F10QkeWiyw62dm2wF/c69BBijfj5MxAXODzuDphxy89EPVOvDBzvELIUMyB lOkwMe9/NCDxQ== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 04/18] iio: light: as73211: Use guard() and move mode switch into inner write_raw fucntion Date: Sun, 9 Mar 2025 17:06:19 +0000 Message-ID: <20250309170633.1347476-5-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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 By using guard(mutex) and moving code that switches the device to config mode into _as73211_write_raw() the error flow is simplified. Signed-off-by: Jonathan Cameron Cc: Javier Carrasco --- drivers/iio/light/as73211.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/drivers/iio/light/as73211.c b/drivers/iio/light/as73211.c index 37fffce35dd1..4b73ce57a3d8 100644 --- a/drivers/iio/light/as73211.c +++ b/drivers/iio/light/as73211.c @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -517,6 +518,16 @@ static int _as73211_write_raw(struct iio_dev *indio_dev, struct as73211_data *data = iio_priv(indio_dev); int ret; + /* Need to switch to config mode ... */ + if ((data->osr & AS73211_OSR_DOS_MASK) != AS73211_OSR_DOS_CONFIG) { + data->osr &= ~AS73211_OSR_DOS_MASK; + data->osr |= AS73211_OSR_DOS_CONFIG; + + ret = i2c_smbus_write_byte_data(data->client, AS73211_REG_OSR, data->osr); + if (ret < 0) + return ret; + } + switch (mask) { case IIO_CHAN_INFO_SAMP_FREQ: { int reg_bits, freq_kHz = val / HZ_PER_KHZ; /* 1024, 2048, ... */ @@ -601,28 +612,15 @@ static int as73211_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec con struct as73211_data *data = iio_priv(indio_dev); int ret; - mutex_lock(&data->mutex); + guard(mutex)(&data->mutex); ret = iio_device_claim_direct_mode(indio_dev); if (ret < 0) - goto error_unlock; - - /* Need to switch to config mode ... */ - if ((data->osr & AS73211_OSR_DOS_MASK) != AS73211_OSR_DOS_CONFIG) { - data->osr &= ~AS73211_OSR_DOS_MASK; - data->osr |= AS73211_OSR_DOS_CONFIG; - - ret = i2c_smbus_write_byte_data(data->client, AS73211_REG_OSR, data->osr); - if (ret < 0) - goto error_release; - } + return ret; ret = _as73211_write_raw(indio_dev, chan, val, val2, mask); - -error_release: iio_device_release_direct_mode(indio_dev); -error_unlock: - mutex_unlock(&data->mutex); + return ret; } From patchwork Sun Mar 9 17:06:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008662 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 890DD2AE95 for ; Sun, 9 Mar 2025 17:07:06 +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=1741540027; cv=none; b=GWUPAF01GUJ2B+SBrZ3pvmSl2bN9Yw8w2827IVBvXzsfHsiN1wb8mALGiwNNRXRaeMJZQNM8e1DvkW/5zc3VvNIgwZ5U0bJWz4wXBIaOR9X5doxufNU/czEW1MI1PfZnUgkzWHGDComQOlo/SlVjiNmW2uU49KtWw+0YNROjHBA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540027; c=relaxed/simple; bh=qpRnEnZ4pw14sPoygXuw0RzYxTHO9SwgQbBqYm0YGV8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bUsBBA5mFzL16UK0/tmGTFEjaV6IoFXtPctv8OScbY/W4DKfxvfBrgPHO7OLFBILMzuVMG5d5eTYMRvvx8giA639lSfzXCTjOBoW6YuUVs+iHK2Br1NAzpY6q0vj2Gh77HGo6O6Si9KiwPyjPet3lQVj9fnuuQkBCk9Y6zPI6ak= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TlwJteqZ; 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="TlwJteqZ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D52CFC4CEE5; Sun, 9 Mar 2025 17:07:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540026; bh=qpRnEnZ4pw14sPoygXuw0RzYxTHO9SwgQbBqYm0YGV8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TlwJteqZc9+FDlaLotw2ob6CU9dGHa/tsyHBOP1AGcc1a27PfeusuvQon261foM9b MrBIQKMmQteofqgawtGi8u8DZp6bloVcW1uPQ7jngDUKlL2soSWfnLjerJtnTG/hxa NeLjhcsPZlBCDanCIM5d/YEvsJ7+pwvOlvLawMOjiL9K51s32PP6qtRHoJ7wfLzbOr lwhxoASa1GF9AAItCwkhzDnd7O02/T3SsNKkBXzlXNwTKVV/plvAPdly2fSUKn0ZUi MhjbpREE8bsytJ/Nw87lDQaFS39DEao5N9Xb2z/KeEEBqsTLJ0cUoxkGNqjc8o/PEy Buy92IyYcF7iw== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 05/18] iio: light: as73211: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:20 +0000 Message-ID: <20250309170633.1347476-6-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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 Signed-off-by: Jonathan Cameron Cc: Javier Carrasco --- drivers/iio/light/as73211.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/iio/light/as73211.c b/drivers/iio/light/as73211.c index 4b73ce57a3d8..22422ca89e64 100644 --- a/drivers/iio/light/as73211.c +++ b/drivers/iio/light/as73211.c @@ -419,18 +419,17 @@ static int as73211_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec cons case IIO_CHAN_INFO_RAW: { int ret; - ret = iio_device_claim_direct_mode(indio_dev); - if (ret < 0) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = as73211_req_data(data); if (ret < 0) { - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; } ret = i2c_smbus_read_word_data(data->client, chan->address); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); if (ret < 0) return ret; @@ -614,12 +613,11 @@ static int as73211_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec con guard(mutex)(&data->mutex); - ret = iio_device_claim_direct_mode(indio_dev); - if (ret < 0) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = _as73211_write_raw(indio_dev, chan, val, val2, mask); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; } From patchwork Sun Mar 9 17:06:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008663 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 19ADD2AE95 for ; Sun, 9 Mar 2025 17:07:09 +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=1741540031; cv=none; b=RQ/86VOGy4SWQs1Ci9vEt5ANYCEZY1j2GTLXLF62ILZGFkwhMxBdwy1lT4muDRgM0EC7RWoR3clWUNO5emexyYIzUDWUVUmS/IkLfGRJuI+BcJ23/v+FYvldhB3Yo8JTF9HHz3Mqpokda7Ahi9WSgTJSuOYfwEA3KlrBRYmm66k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540031; c=relaxed/simple; bh=aCIS8qvgFsE0d2xX4T35R8qNwCq0XunWzEx8tKpB2EE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ttbfAPngETnjRZTTewa/0rPUUjZdL8mTGVzGOlKH/hlh8vW4nMc8LnXXWpToAK4d5qUjNTgFbjN75IXZiKdRsLKY5XBAOWt/hbdJnbyq4gjuGtlpx312l/Z7SajzWZEXsaZ44ZTAkNeBeJvjkbalWGkrjplzADbcq/xeuLLOwuA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=U/QVmkcT; 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="U/QVmkcT" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 747EEC4CEE3; Sun, 9 Mar 2025 17:07:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540029; bh=aCIS8qvgFsE0d2xX4T35R8qNwCq0XunWzEx8tKpB2EE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=U/QVmkcTe/V4G39NJs8k9USvIxrCaBPdf3OVNcI1FAa0ZpKuXzGL81mF5NML7vONw LL9AMxWh87cXmsopTBT9owGtZeBOz34+RJ678FKzf3IUEnq8QCwMjS8xJhBizNeiMX Gbi9gFkWm1iivTQBWL9vWkjemz1/uunOmocrF+wbtV2k2NUsKKQJzqsPuPu15Uk1dH zYIyF0DQgJZ7Qrg9Ts6295em+e8Bjtwuhqxts9jPp3TXF3nt5gnqW01XnCjf+PbkRx 7NLie/eEZXbZn5blEN5WBQ1sPRBkWWx4gWD4GrQvBvoz23zaSV87XaF5AaX76eZ3NO aHz6ReNTdiaYg== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 06/18] iio: light: ltr501: Factor out IIO_INFO_RAW leg of read_raw() callback. Date: Sun, 9 Mar 2025 17:06:21 +0000 Message-ID: <20250309170633.1347476-7-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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 Factoring this code out allows for direct returns, simplifying code flow. Signed-off-by: Jonathan Cameron --- drivers/iio/light/ltr501.c | 55 +++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c index 669da0840eba..b42df15b36e1 100644 --- a/drivers/iio/light/ltr501.c +++ b/drivers/iio/light/ltr501.c @@ -646,6 +646,36 @@ static const struct iio_chan_spec ltr301_channels[] = { IIO_CHAN_SOFT_TIMESTAMP(2), }; +static int ltr501_read_info_raw(struct ltr501_data *data, + struct iio_chan_spec const *chan, + int *val) +{ + __le16 buf[2]; + int ret; + + switch (chan->type) { + case IIO_INTENSITY: + mutex_lock(&data->lock_als); + ret = ltr501_read_als(data, buf); + mutex_unlock(&data->lock_als); + if (ret < 0) + return ret; + *val = le16_to_cpu(chan->address == LTR501_ALS_DATA1 ? + buf[0] : buf[1]); + return IIO_VAL_INT; + case IIO_PROXIMITY: + mutex_lock(&data->lock_ps); + ret = ltr501_read_ps(data); + mutex_unlock(&data->lock_ps); + if (ret < 0) + return ret; + *val = ret & LTR501_PS_DATA_MASK; + return IIO_VAL_INT; + default: + return -EINVAL; + } +} + static int ltr501_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long mask) @@ -679,30 +709,7 @@ static int ltr501_read_raw(struct iio_dev *indio_dev, if (ret) return ret; - switch (chan->type) { - case IIO_INTENSITY: - mutex_lock(&data->lock_als); - ret = ltr501_read_als(data, buf); - mutex_unlock(&data->lock_als); - if (ret < 0) - break; - *val = le16_to_cpu(chan->address == LTR501_ALS_DATA1 ? - buf[0] : buf[1]); - ret = IIO_VAL_INT; - break; - case IIO_PROXIMITY: - mutex_lock(&data->lock_ps); - ret = ltr501_read_ps(data); - mutex_unlock(&data->lock_ps); - if (ret < 0) - break; - *val = ret & LTR501_PS_DATA_MASK; - ret = IIO_VAL_INT; - break; - default: - ret = -EINVAL; - break; - } + ret = ltr501_read_info_raw(data, chan, val); iio_device_release_direct_mode(indio_dev); return ret; From patchwork Sun Mar 9 17:06:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008664 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 6419D2AE95 for ; Sun, 9 Mar 2025 17:07:14 +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=1741540035; cv=none; b=aQcrbyxkPIqAxMHzF29TLBsODZcd+XEIANnzaQ1VQBHMBjjyDwWryN022A5QKA5Z7z5zeLlRBMRcqy6wsthyrG0WGckTNCpKPfkQTku7Ix0ikVVj2/+Y5K6X1GuMKby95i1WqWHB1DLnLakeaAogj/8HcDi25WOCdClPYAJzlyI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540035; c=relaxed/simple; bh=J1peNvtbqg/4XCLOiloqFKaY9W27lzFvudSdHnLpPGk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Aw46/8KYVj7zGg8tPpzwhhvvA63AU6x6bq0RxQpPjNx3p070gWyXzZb51dU24HpCrTs2I5r2TcZeuFkPwdMAltJvbHqTfPEa0nC4eHYfcJGgUR/EQJx8crQ4HbLmhYlcQDe5etadKhvOhuS8B/yJjdAWww1+o02fPUo+CV5h/Yg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=u3X8rm2J; 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="u3X8rm2J" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 57C53C4CEE5; Sun, 9 Mar 2025 17:07:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540033; bh=J1peNvtbqg/4XCLOiloqFKaY9W27lzFvudSdHnLpPGk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=u3X8rm2Js1k4GRlxLSx0aY/Jd57GuhFX2ZwTDGEphXq9vCtIgp+AsoZ/M6cuFZJgo PgV7jNiLZRWq5jtUhmAXynemujb40ZBoZX/2JTEeYgsB9fze3CpvjFzqvIFqNlxNXn RgAC0dMXlX90p6tA9xG4MYvQOkkgxKy+4htS3k+tjSu+0UOYdf+Fq1UApvqbSPseqL yY749RE909l9S2ZpB7E7/6NApxs9CTehvxKoWhSfu3EHOfzeL1e3kw14p6sLStMCja Ws+WIA85pTdk0JhzEuaJz10Hs3FmCb57QSI23u7Bcyhh5wqRkfpJyuo/UD0p6oFWxH 6lAWn+JcZ135Q== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 07/18] iio: light: ltr501: Factor out core of write_raw() where direct mode claim is held. Date: Sun, 9 Mar 2025 17:06:22 +0000 Message-ID: <20250309170633.1347476-8-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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 Factoring this code out allows for direct returns on error simplifying code flow. Signed-off-by: Jonathan Cameron --- drivers/iio/light/ltr501.c | 94 +++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 48 deletions(-) diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c index b42df15b36e1..c44c852a7d76 100644 --- a/drivers/iio/light/ltr501.c +++ b/drivers/iio/light/ltr501.c @@ -763,18 +763,14 @@ static int ltr501_get_gain_index(const struct ltr501_gain *gain, int size, return -1; } -static int ltr501_write_raw(struct iio_dev *indio_dev, - struct iio_chan_spec const *chan, - int val, int val2, long mask) +static int __ltr501_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) { struct ltr501_data *data = iio_priv(indio_dev); int i, ret, freq_val, freq_val2; const struct ltr501_chip_info *info = data->chip_info; - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; - switch (mask) { case IIO_CHAN_INFO_SCALE: switch (chan->type) { @@ -782,53 +778,43 @@ static int ltr501_write_raw(struct iio_dev *indio_dev, i = ltr501_get_gain_index(info->als_gain, info->als_gain_tbl_size, val, val2); - if (i < 0) { - ret = -EINVAL; - break; - } + if (i < 0) + return -EINVAL; data->als_contr &= ~info->als_gain_mask; data->als_contr |= i << info->als_gain_shift; - ret = regmap_write(data->regmap, LTR501_ALS_CONTR, - data->als_contr); - break; + return regmap_write(data->regmap, LTR501_ALS_CONTR, + data->als_contr); case IIO_PROXIMITY: i = ltr501_get_gain_index(info->ps_gain, info->ps_gain_tbl_size, val, val2); - if (i < 0) { - ret = -EINVAL; - break; - } + if (i < 0) + return -EINVAL; + data->ps_contr &= ~LTR501_CONTR_PS_GAIN_MASK; data->ps_contr |= i << LTR501_CONTR_PS_GAIN_SHIFT; - ret = regmap_write(data->regmap, LTR501_PS_CONTR, - data->ps_contr); - break; + return regmap_write(data->regmap, LTR501_PS_CONTR, + data->ps_contr); default: - ret = -EINVAL; - break; + return -EINVAL; } - break; case IIO_CHAN_INFO_INT_TIME: switch (chan->type) { case IIO_INTENSITY: - if (val != 0) { - ret = -EINVAL; - break; - } + if (val != 0) + return -EINVAL; + mutex_lock(&data->lock_als); ret = ltr501_set_it_time(data, val2); mutex_unlock(&data->lock_als); - break; + return ret; default: - ret = -EINVAL; - break; + return -EINVAL; } - break; case IIO_CHAN_INFO_SAMP_FREQ: switch (chan->type) { @@ -836,50 +822,62 @@ static int ltr501_write_raw(struct iio_dev *indio_dev, ret = ltr501_als_read_samp_freq(data, &freq_val, &freq_val2); if (ret < 0) - break; + return ret; ret = ltr501_als_write_samp_freq(data, val, val2); if (ret < 0) - break; + return ret; /* update persistence count when changing frequency */ ret = ltr501_write_intr_prst(data, chan->type, 0, data->als_period); if (ret < 0) - ret = ltr501_als_write_samp_freq(data, freq_val, - freq_val2); - break; + /* Do not ovewrite error */ + ltr501_als_write_samp_freq(data, freq_val, + freq_val2); + return ret; case IIO_PROXIMITY: ret = ltr501_ps_read_samp_freq(data, &freq_val, &freq_val2); if (ret < 0) - break; + return ret; ret = ltr501_ps_write_samp_freq(data, val, val2); if (ret < 0) - break; + return ret; /* update persistence count when changing frequency */ ret = ltr501_write_intr_prst(data, chan->type, 0, data->ps_period); if (ret < 0) - ret = ltr501_ps_write_samp_freq(data, freq_val, - freq_val2); - break; + /* Do not overwrite error */ + ltr501_ps_write_samp_freq(data, freq_val, + freq_val2); + return ret; default: - ret = -EINVAL; - break; + return -EINVAL; } - break; - default: - ret = -EINVAL; - break; + return -EINVAL; } +} + +static int ltr501_write_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int val, int val2, long mask) +{ + int ret; + + ret = iio_device_claim_direct_mode(indio_dev); + if (ret) + return ret; + + ret = __ltr501_write_raw(indio_dev, chan, val, val2, mask); iio_device_release_direct_mode(indio_dev); + return ret; } From patchwork Sun Mar 9 17:06:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008665 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 1E0222AE95 for ; Sun, 9 Mar 2025 17:07:18 +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=1741540039; cv=none; b=SVFzV4Wt00pu0oyZ2NSn+NZ7Sa0S29tIu7jCIxs4rCIa3k4lxKJWe6Cg3bnvGyKiE57oR/ssnZaV36hSUdfgWYRPU1/PskuI/ZHW57R9uTcwS/KhDJ7M713G5FtYruGB2qL814UvlpfQEa0eaVrF3Nfw6GprLW/fv5rFHitoqhA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540039; c=relaxed/simple; bh=9jKDp5d8Bu+EFeg0vWzLuK9kfEjqSuXuIQktGx8eX/k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=G85sFddnz3qt5J2ealeK3phx1VfBBWQahycdaxWKoNrmPrx01xNWEhuTND1ouaQXtQWyYSo/pbSbQVhZ/S+vytbvA6WwXRduYqW9lJTTicXwOFcWewdS38zxH/rUP0FROybXZ3I7yw5fIp+aYJCmmJUTk8utZsJeOm1LIwByEIs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NBy9LhwO; 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="NBy9LhwO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9F542C4CEE3; Sun, 9 Mar 2025 17:07:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540038; bh=9jKDp5d8Bu+EFeg0vWzLuK9kfEjqSuXuIQktGx8eX/k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=NBy9LhwOKRN/URbur3VhQydA34t214mDMdWm9Rb3WPjfN6zrVfcrkQDMKEuUZWEgG +HJsaMv5eY1gMVuQDzs8jh/3sPKyLHXHDRcLLB87CY0VcA7GiTNQ21mzE+kQVe65hP o+etM/ksVw2REjW7qYt6wQjTIiOegshkZ/FuemtuX4YG6CVg/VTvxebjO2WTKU3G3m LbA0hK15wf+vSoVhP28C3VytQypwCFDwwUqNgvmFTk6NJ83EfoToEclnUK/8+nyAVE I1/Q6V1Y9rZ2DJN4jORj3uGXigK/j0VdWve/J2vMBTkH3jDaR6OiuSzPl2i3GN8UoB aBCNG2nkQhDSw== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 08/18] iio: light: ltr501: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:23 +0000 Message-ID: <20250309170633.1347476-9-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron --- drivers/iio/light/ltr501.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c index c44c852a7d76..23fd0713c64b 100644 --- a/drivers/iio/light/ltr501.c +++ b/drivers/iio/light/ltr501.c @@ -688,14 +688,13 @@ static int ltr501_read_raw(struct iio_dev *indio_dev, case IIO_CHAN_INFO_PROCESSED: switch (chan->type) { case IIO_LIGHT: - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; mutex_lock(&data->lock_als); ret = ltr501_read_als(data, buf); mutex_unlock(&data->lock_als); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); if (ret < 0) return ret; *val = ltr501_calculate_lux(le16_to_cpu(buf[1]), @@ -705,13 +704,12 @@ static int ltr501_read_raw(struct iio_dev *indio_dev, return -EINVAL; } case IIO_CHAN_INFO_RAW: - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = ltr501_read_info_raw(data, chan, val); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; case IIO_CHAN_INFO_SCALE: @@ -870,13 +868,12 @@ static int ltr501_write_raw(struct iio_dev *indio_dev, { int ret; - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = __ltr501_write_raw(indio_dev, chan, val, val2, mask); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; } From patchwork Sun Mar 9 17:06:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008666 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 A9D902AE95 for ; Sun, 9 Mar 2025 17:07:23 +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=1741540043; cv=none; b=NhRf/rDQ5HF1cltFgSd9OoKx/5p/JyUnLq8Z6MYF9076ZR1oAzPueqNpmsFwcw89/PZdWOP3LB+PSCI0txxG/lhxjOOgQWI/4W7Mluiv+YaiwMjdI8kcbyWH1CuDR5BEUJFRdpzfQRh4P2bmsocn0dtleIQKegr/LKkjh42+C0M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540043; c=relaxed/simple; bh=ye0c/buz8uMKKYPCulz2vhbBKAzVviJVStdeIP3qkyY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d5Gee9iJg56FlCVo3xGbRUcQIDC9acOWpyZm8y5iXOjszeTPyClO/aAYT7UarLbP7hFe/anO6wiWe8NhzCg0o2fMCF20Tu2TTtrJ9c1LesOZuatwztghDu07SN2oQ1TtpEVKry9Uqy5VIuDi4x/bo0y09KfM0YpLuYw1P1pVXyg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KR1mvApY; 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="KR1mvApY" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 64292C4CEE3; Sun, 9 Mar 2025 17:07:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540043; bh=ye0c/buz8uMKKYPCulz2vhbBKAzVviJVStdeIP3qkyY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KR1mvApYT5xH+hQnFjqqjkNv7hCUV3t9dxsnRbOSjGcA5fhq1dqNOKs6skKQ8710y XcreVYqsEIsoYFHoGoOrlSt5WNOohDwVBZx2m30e0yKzpiumhXPy2A9Le6v39xMkJK xULdy3x6jMuzpA9ILs4swDBT5jdluTpdjPqoALfJ4G/uepJZpdSedfY77AK68rOcqi +Y1cbXcCx85jf2myiZKJAmxBZZgvQhLvrXAMHP1Ney4B1Jt4m7es8gmaxFHeENmopB vW8lo3qnOicX4fQNPw0eAxVx/LWAJvFtREhu+T9dA5FQLgXLcdc/WjVetyOX1OcnIz LiqJvcB2vHRYw== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 09/18] iio: light: opt4060: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:24 +0000 Message-ID: <20250309170633.1347476-10-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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 case where the code is pinning down the mode so also has a claim on buffered mode. A follow up set may move those calls over to a sparse friendly form as well. Signed-off-by: Jonathan Cameron Cc: Per-Daniel Olsson --- drivers/iio/light/opt4060.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/iio/light/opt4060.c b/drivers/iio/light/opt4060.c index ab55f8d2ea0c..f4085020e03e 100644 --- a/drivers/iio/light/opt4060.c +++ b/drivers/iio/light/opt4060.c @@ -311,7 +311,7 @@ static int opt4060_set_driver_state(struct iio_dev *indio_dev, * concurrently change. And we just keep trying until we get one * of the modes... */ - if (iio_device_claim_direct_mode(indio_dev)) + if (!iio_device_claim_direct(indio_dev)) goto any_mode_retry; /* * This path means that we managed to claim direct mode. In @@ -320,7 +320,8 @@ static int opt4060_set_driver_state(struct iio_dev *indio_dev, */ ret = opt4060_set_state_common(chip, continuous_sampling, continuous_irq); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); + return ret; } else { /* * This path means that we managed to claim buffer mode. In From patchwork Sun Mar 9 17:06:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008667 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 F03552AE95 for ; Sun, 9 Mar 2025 17:07:26 +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=1741540047; cv=none; b=m99YLeuxvtxBlOaFs3W0I/38jJXnJm8qd3hwTjMW3/sQKENaoWLvpeV9b1Dh3B7x0JoA3C95WysNtp2ghjR/c2PBZZ+xotif6W2RnorCGI8h9WswOkAL2fF0aNo+6dkoZ1boN0+TdHJcMV3QToG0+tKlX+rkHUGdauGNvxNEqT8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540047; c=relaxed/simple; bh=Glm054UF7gsijxp1o0fpgRfdd9zpxnntrRxRUgPbgtc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XF7T4IEdMMDKK7t62SpyM5pcAZAwvakQDhJMDYpUyWNrAkPa+zJvfSDz8fxcRMx1e1aLQ/uE2mxejyBscPJdEFjhj4MwAIVlCtmr7QTXDWVmTGvPq3hfKZp6aFvpgG9uFaF5jChrQ42Hu3F4tm9e0v2d4+tBoOUiR2dlxhM49PY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=elcax4ap; 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="elcax4ap" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B8B99C4CEE5; Sun, 9 Mar 2025 17:07:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540046; bh=Glm054UF7gsijxp1o0fpgRfdd9zpxnntrRxRUgPbgtc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=elcax4apKfSWDXz5JV0+u25D2cqfxNzQjd0VRUkJpkSSS5S828QdPGk44Z+4zXqTR HizGhyeYUJEQfCQS2Urnr9EmEm8/tIvqXSxUGfoC8t4HAEyVTiOuMNGG4ygwnrAGUq PzMSXO+37VpLHTcSHLBJVQC5pphyJ7sl98B5dSq6FHA0rCcx1yG3zpBnFoDOrtD6Zt Ovi28xJzjaWK6i3r7XKigi9YAHne+Z0Z4Kf8296xQJ1uhVppUp2XCrDimJnegJJFzB SUgAOOKa1TzPRZ2gFEAeu2kaFZEQHrtODIwfvCHi5yjDiHgW51t5AJ14g5IpC/VJ/u ZpllyDnJ33auA== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 10/18] iio: light: rohm-bu27034: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:25 +0000 Message-ID: <20250309170633.1347476-11-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron Cc: Matti Vaittinen Acked-by: Matti Vaittinen --- drivers/iio/light/rohm-bu27034.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/iio/light/rohm-bu27034.c b/drivers/iio/light/rohm-bu27034.c index cc25596cb248..7cec5e943373 100644 --- a/drivers/iio/light/rohm-bu27034.c +++ b/drivers/iio/light/rohm-bu27034.c @@ -998,9 +998,8 @@ static int bu27034_read_raw(struct iio_dev *idev, return -EINVAL; /* Don't mess with measurement enabling while buffering */ - ret = iio_device_claim_direct_mode(idev); - if (ret) - return ret; + if (!iio_device_claim_direct(idev)) + return -EBUSY; mutex_lock(&data->mutex); /* @@ -1011,7 +1010,7 @@ static int bu27034_read_raw(struct iio_dev *idev, ret = result_get(data, chan->channel, val); mutex_unlock(&data->mutex); - iio_device_release_direct_mode(idev); + iio_device_release_direct(idev); if (ret) return ret; @@ -1050,9 +1049,8 @@ static int bu27034_write_raw(struct iio_dev *idev, struct bu27034_data *data = iio_priv(idev); int ret; - ret = iio_device_claim_direct_mode(idev); - if (ret) - return ret; + if (!iio_device_claim_direct(idev)) + return -EBUSY; switch (mask) { case IIO_CHAN_INFO_SCALE: @@ -1069,7 +1067,7 @@ static int bu27034_write_raw(struct iio_dev *idev, break; } - iio_device_release_direct_mode(idev); + iio_device_release_direct(idev); return ret; } From patchwork Sun Mar 9 17:06:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008668 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 34EBE2AE95 for ; Sun, 9 Mar 2025 17:07:31 +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=1741540051; cv=none; b=UwNDcdWUOpMVCHwWw8xGYiqTW6dLKf/uXdx8bfdpi8Kd13gV6v3nnTS8sFKB/WyqOjimds1RxP8xnJFw0am1Qu3YDjl16woGvbkUdNuWtOmHANwdz7Glxs/okD1LOXTmFZ/yIS95gJ8tSWrSlNIsPfP4mlXClVtySgyKxxJqadM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540051; c=relaxed/simple; bh=nl0FlgcxsFaRR9z0+d9or+p5BH2Xz6zq/f5Q7AzqVQ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UKlSCWwbE4BlKTbh1c7N1gtKGh0AJ7hbPi4LA5zAJvY8fr0eST1q3l+57X+jYsnB1plLcAU+/KwK8E9vMAx9jpmxJMOTyJxYBFjAr8/43C/kcz/mwgZUbvfBof4T1pB323HCuiOVAe93I1dNcC4SrnYOGX8nh4YUMcTMQ/3fU84= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PV1oW5ri; 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="PV1oW5ri" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42844C4CEE3; Sun, 9 Mar 2025 17:07:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540051; bh=nl0FlgcxsFaRR9z0+d9or+p5BH2Xz6zq/f5Q7AzqVQ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PV1oW5rimoUHtU1fQ7RIZ4MqB9yA9eZN1cV5dg4erxFUVr4EPns1Ky5Bd0HV2bODj sVzCP7iXMdLQHvCSfALjfSBHiiRoTVJ8leWQobe6Rp/9C206Hfb0RDXxp36DnDSUXG POsXUdfaoNidanTN2WOkl38WfDc7kOPjfxkKVHFqaqsMAcWZvILFi7Iqgp6Q0N2Yi2 qjuFtFwtrsfG/Q1qFFbuKoXfJR8V5y+bXQbM0B2VMHbVjUSmQ1U/30hnMoL7z4xhCo JM17e01CfietiHBGawkjH/xywso5ZE/k8AzUwoUHxNy3Wc7o0a9ozy9B0hPwYd1oSl U8KT5M1xUaAGA== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 11/18] iio: light: rpr0521: Factor out handling of IIO_INFO_RAW and use guard() Date: Sun, 9 Mar 2025 17:06:26 +0000 Message-ID: <20250309170633.1347476-12-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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 Factor out the code which is only called with the direct mode claimed. This and the use of guard(mutex) allows direct returns simplifying code flow. Signed-off-by: Jonathan Cameron --- drivers/iio/light/rpr0521.c | 57 ++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/drivers/iio/light/rpr0521.c b/drivers/iio/light/rpr0521.c index 2ba917c5c138..65c60a1d2f0b 100644 --- a/drivers/iio/light/rpr0521.c +++ b/drivers/iio/light/rpr0521.c @@ -11,6 +11,7 @@ #include #include +#include #include #include #include @@ -704,6 +705,38 @@ static int rpr0521_write_ps_offset(struct rpr0521_data *data, int offset) return ret; } +static int rpr0521_read_info_raw(struct rpr0521_data *data, + struct iio_chan_spec const *chan, + int *val) +{ + u8 device_mask; + __le16 raw_data; + int ret; + + device_mask = rpr0521_data_reg[chan->address].device_mask; + + guard(mutex)(&data->lock); + ret = rpr0521_set_power_state(data, true, device_mask); + if (ret < 0) + return ret; + + ret = regmap_bulk_read(data->regmap, + rpr0521_data_reg[chan->address].address, + &raw_data, sizeof(raw_data)); + if (ret < 0) { + rpr0521_set_power_state(data, false, device_mask); + return ret; + } + + ret = rpr0521_set_power_state(data, false, device_mask); + if (ret < 0) + return ret; + + *val = le16_to_cpu(raw_data); + + return 0; +} + static int rpr0521_read_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan, int *val, int *val2, long mask) @@ -711,8 +744,6 @@ static int rpr0521_read_raw(struct iio_dev *indio_dev, struct rpr0521_data *data = iio_priv(indio_dev); int ret; int busy; - u8 device_mask; - __le16 raw_data; switch (mask) { case IIO_CHAN_INFO_RAW: @@ -723,31 +754,11 @@ static int rpr0521_read_raw(struct iio_dev *indio_dev, if (busy) return -EBUSY; - device_mask = rpr0521_data_reg[chan->address].device_mask; - - mutex_lock(&data->lock); - ret = rpr0521_set_power_state(data, true, device_mask); - if (ret < 0) - goto rpr0521_read_raw_out; - - ret = regmap_bulk_read(data->regmap, - rpr0521_data_reg[chan->address].address, - &raw_data, sizeof(raw_data)); - if (ret < 0) { - rpr0521_set_power_state(data, false, device_mask); - goto rpr0521_read_raw_out; - } - - ret = rpr0521_set_power_state(data, false, device_mask); - -rpr0521_read_raw_out: - mutex_unlock(&data->lock); + ret = rpr0521_read_info_raw(data, chan, val); iio_device_release_direct_mode(indio_dev); if (ret < 0) return ret; - *val = le16_to_cpu(raw_data); - return IIO_VAL_INT; case IIO_CHAN_INFO_SCALE: From patchwork Sun Mar 9 17:06:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008669 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 1CCD81E1DF3 for ; Sun, 9 Mar 2025 17:07:34 +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=1741540054; cv=none; b=CHXFU5vAYWAi1SlMoJXote+FKTHull0nTv1TEuDmw2/pOb+wh1/uli109JK9FAY9SIFDBLMlRt2Ig9GVItScMUcsjDdGtQWOhWVVyqgMydMum/g+68R/rxTEmnAdwTycfzxsADTpakIPrUAyj4vVvF0nmYGmA0XejhimpHnhrM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540054; c=relaxed/simple; bh=ykkmCnO2Bvce590xfznrM2tNQdHgae6iWO5sl4XBdqs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YEGJMutMb1g4Q0esDbYvdpfArbIi1K23+sPz1TGdcZNGRBCbvJgsqHCi+Ios0VWSD9v1VlOCQPYuvBZgGTu8mgRNJbH/gi0KnBC2bmyWG83sfYjoGIvnxg2oYm4Uxfmn3JeY5on+G6CHglPHJJIkPrqDMd6go6DYnLzga36pxwI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Wi7wGlzG; 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="Wi7wGlzG" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C44EFC4CEE3; Sun, 9 Mar 2025 17:07:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540053; bh=ykkmCnO2Bvce590xfznrM2tNQdHgae6iWO5sl4XBdqs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wi7wGlzGOlCT8GYJ6FlfzlA9yQst4a5a4XUfjzhw4eGu0o2Q+/1EeBZrUTOJYbLoh pClqc+frp4uzhjfC9NqDqSxMFYpydDOJEPc8ZA8pvm9jA/OJcCpNc+7lFJOPyJJp/O af1zABC1UamdtL2amnLW+XJxqD7WkBC6TtK/Fr+H7IktS7vElWVOKIYhqq58Zh9FIf HGAFhX/lyDVmqeci0w/fiqBt2XV/H/5KsVTr9HMJeq4d7pzb6bf90TiMvBzopUCqY3 Bx9vBmaoH+mOD1JkxVOdP8ZoYxYGiUwMtCx27cYYIQSTmsBs1upHtIHnvnLhZBzlYS jpfGDEZWktgSQ== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 12/18] iio: light: rpr0521: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:27 +0000 Message-ID: <20250309170633.1347476-13-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron --- drivers/iio/light/rpr0521.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/iio/light/rpr0521.c b/drivers/iio/light/rpr0521.c index 65c60a1d2f0b..92e7552f3e39 100644 --- a/drivers/iio/light/rpr0521.c +++ b/drivers/iio/light/rpr0521.c @@ -743,19 +743,17 @@ static int rpr0521_read_raw(struct iio_dev *indio_dev, { struct rpr0521_data *data = iio_priv(indio_dev); int ret; - int busy; switch (mask) { case IIO_CHAN_INFO_RAW: if (chan->type != IIO_INTENSITY && chan->type != IIO_PROXIMITY) return -EINVAL; - busy = iio_device_claim_direct_mode(indio_dev); - if (busy) + if (!iio_device_claim_direct(indio_dev)) return -EBUSY; ret = rpr0521_read_info_raw(data, chan, val); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); if (ret < 0) return ret; From patchwork Sun Mar 9 17:06:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008670 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 5847A4A0C for ; Sun, 9 Mar 2025 17:07:38 +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=1741540059; cv=none; b=XmJw1zrg7gDMDuWHXf6VIEF2IyJCSM0eQhGPW+e4OD/XT/dbZdLl4aLjo4ve92gVqE94OXguAMbH726V4hPDMmmOcgGBOAmFzwUm75s0NWtGe7bKzhwgApCJPOshbirOM14MjfqOmy+W1mZtQOc4kFGgJgqAxiVP139taya06Ek= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540059; c=relaxed/simple; bh=R3B6AMjl+xKkxZBZ4aqii1R3GEz91ejCpM08awiT9aE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nQncj0v4N+mx/QXpJp85JWk7x6d7pIUbplHzZR3Xb4cjoLJOr/g/xV8BIkW2Rgq3gJKLZSmgSzsPkVf6qHeW2QWje+J5wxkr40Vy+AO8b2tWPsDJz8pAErn1Ad/T2blfxfZ7aV8wjV/f9Jm/tMKDi+DFC3lUxPNjGcWdy+iLiHU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=II31LcZ9; 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="II31LcZ9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id AF6F9C4CEE3; Sun, 9 Mar 2025 17:07:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540058; bh=R3B6AMjl+xKkxZBZ4aqii1R3GEz91ejCpM08awiT9aE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=II31LcZ9OYKidO2n8LaXLdSGePmUFt6s6qwI38yJh2vt5pIfM5c5PdimSVyd65FGG MNQW6HgUNHseaSKOO/6Ez0dqKfqsNdHP00Whitc6ErVCDIoonvrFXgT5TJ6nj8fWOs 1OzpTXVH3o/cLC1IQqE4GFqnNNiy6WXSGqqLd3idP0pweA4+UJMQ7LCOYd6TXWhZtW /KuHvyX9qstx5R156ROgXo8bya753sv75Oc8knjG9JfxrKW0Cs5BiZJ5bizGKNWUIO XvwPxpSGH1CpDZEbVhVHThNaDI2Hdaokv6L+7cBI8sptHBhTHAEEUlL9pdsgQs2o0K 7EaNGYpxhdFrQ== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 13/18] iio: light: si1145: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:28 +0000 Message-ID: <20250309170633.1347476-14-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron --- drivers/iio/light/si1145.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/drivers/iio/light/si1145.c b/drivers/iio/light/si1145.c index 66abda021696..4aa02afd853e 100644 --- a/drivers/iio/light/si1145.c +++ b/drivers/iio/light/si1145.c @@ -633,11 +633,10 @@ static int si1145_read_raw(struct iio_dev *indio_dev, case IIO_VOLTAGE: case IIO_TEMP: case IIO_UVINDEX: - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = si1145_measure(indio_dev, chan); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); if (ret < 0) return ret; @@ -750,18 +749,17 @@ static int si1145_write_raw(struct iio_dev *indio_dev, return -EINVAL; } - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = si1145_param_set(data, reg1, val); if (ret < 0) { - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; } /* Set recovery period to one's complement of gain */ ret = si1145_param_set(data, reg2, (~val & 0x07) << 4); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; case IIO_CHAN_INFO_RAW: if (chan->type != IIO_CURRENT) @@ -773,19 +771,18 @@ static int si1145_write_raw(struct iio_dev *indio_dev, reg1 = SI1145_PS_LED_REG(chan->channel); shift = SI1145_PS_LED_SHIFT(chan->channel); - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = i2c_smbus_read_byte_data(data->client, reg1); if (ret < 0) { - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; } ret = i2c_smbus_write_byte_data(data->client, reg1, (ret & ~(0x0f << shift)) | ((val & 0x0f) << shift)); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; case IIO_CHAN_INFO_SAMP_FREQ: return si1145_store_samp_freq(data, val); From patchwork Sun Mar 9 17:06:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008671 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 318B04A0C for ; Sun, 9 Mar 2025 17:07:43 +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=1741540063; cv=none; b=uxdICik4OkfUhEPJBTBb9Aph9kAmr7qQTQPWHLlT5q4HcUZV4OYAFzLK98iqNl7WYfBbMn4nzLM7vcyolDD+UbNkUlF3uYkokD1TMNLeKqkRnN2SBZ/JW8AWb7NV8BzNsZOx9/Xo9I59BJlvMANp5WbFcZFZGsK3I/Lkw45wcbU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540063; c=relaxed/simple; bh=q/WOeOTozqRxHaulDQUhhgJ0UWNfW1YcPOazerXbKjA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M9LmCxxssYCdFpLPAUyHHm7xtBUzbEgLmOfUkVnQX7HtW4D06HeYchPr74bENjP3jJ5r800daoF4Jh2cOtwqM/SGgSVITM9yXrxRENIFZhBDzqmy8kC9dp70dTApr+TM8zpBwUTaR808EWSRn2Jo2mEcJyaDcByDzvn5x+LM0j0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=CmJtJGg1; 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="CmJtJGg1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4C853C4CEE5; Sun, 9 Mar 2025 17:07:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540063; bh=q/WOeOTozqRxHaulDQUhhgJ0UWNfW1YcPOazerXbKjA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CmJtJGg1iPn/d3uk7kII1ZqwR98EreMDrNKWib7l8iuiMrQpzjDYiXkdLzr1jnDlc ODguq1fyoFlmSaEDkX2FxpBdgDM7BgnDLzD1WqYyncg5xezO0k3IYHWr0JEiC74aqt XG4zsFdjZWLl0EX8+F9KNCvBpybaLMLQ9/9SbxRWv3KT6PtMe6j+d5BCCUv1fICj+/ ml0RkJk7yqvYdVOXeZznISkKp16e35e6JXeWeOW1XH1cQoRKTTs9LHWx/tF2jm6VpF 1KqNyOh/ZIwM81A4JJ29nxnQR50WaTc+AnTJHDZkx+cQVQ0V9xr+zc7VacuUrOR3xr tatrLtLXyDrXA== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 14/18] iio: light: st_uvis25: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:29 +0000 Message-ID: <20250309170633.1347476-15-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron --- drivers/iio/light/st_uvis25_core.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/iio/light/st_uvis25_core.c b/drivers/iio/light/st_uvis25_core.c index 40a810000df0..124a8f9204a9 100644 --- a/drivers/iio/light/st_uvis25_core.c +++ b/drivers/iio/light/st_uvis25_core.c @@ -117,9 +117,8 @@ static int st_uvis25_read_raw(struct iio_dev *iio_dev, { int ret; - ret = iio_device_claim_direct_mode(iio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(iio_dev)) + return -EBUSY; switch (mask) { case IIO_CHAN_INFO_PROCESSED: { @@ -144,7 +143,7 @@ static int st_uvis25_read_raw(struct iio_dev *iio_dev, break; } - iio_device_release_direct_mode(iio_dev); + iio_device_release_direct(iio_dev); return ret; } From patchwork Sun Mar 9 17:06:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008672 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 3C5444A0C for ; Sun, 9 Mar 2025 17:07:47 +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=1741540068; cv=none; b=B0koXCMll/5xpUoTHEHuZmuD6KeIl3DcHtGNX93Uf/yqSad6dJb6F1Jk24Y4jFxGfTGXNreXGpI9whlBUnH7JxK9XiBJ42dtOTUAVA9/E3KD6FL/qv9Olk1eOAew55m3dN7n/gJZuEh5j6YH1ycYxxGo835MrMTAtsiMm1HFhEM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540068; c=relaxed/simple; bh=JqgFsJLWCiijljkhdZqOU7uLp+uDQ2YD+YY54FqxLjM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZiQDVLJXzwzuKvCXVMKGmQIeIwiBJsm7QV5caiveLF12Czebk9pLoMhtLf1+gRsSafydiuy0MLDzONn8ao2hy9/lPlYxR1Dq2fL+APpDhwqefbC5aBnwZ1QrOd6bu9mX2REG4yBFdSE8zYryrr+mSM3dLu0vp+kztAOc6G1T6IU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Bx1T0Y9e; 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="Bx1T0Y9e" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0890C4CEE3; Sun, 9 Mar 2025 17:07:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540067; bh=JqgFsJLWCiijljkhdZqOU7uLp+uDQ2YD+YY54FqxLjM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Bx1T0Y9ewKnuuoR4CAlfZJpRDnPNwxoN7e37536T5hLFBX8z4Odyi9zmKDsuoreqI Y9IGRJsBIEQ4mE7udn6cjVXNocuPw+bLfVHTSVfWNypj6u+d85dnC0TMumaBVsM99j JjaBCqXWG6XbTfY+Noz3YHHLzmtMz6FCMxIXDez0lk+UB0Lnc7TF7u+E4lO4hXOE9A iVIbqIrpPTr+Q8kXHzwDV5Ka2hdQb8nDKBYfIfrYYdoxX2dhKDmLz76ezrv2XyWQK8 1z3JF6MRSV8+nKPAGs1XgzFD4aUiY6P5D/7HGex5OqDFAt1ShOk7bmT4UWB96u6VJZ nrkGCrI3LOE4A== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 15/18] iio: light: tcs3414: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:30 +0000 Message-ID: <20250309170633.1347476-16-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron --- drivers/iio/light/tcs3414.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/iio/light/tcs3414.c b/drivers/iio/light/tcs3414.c index 884e43e4cda4..39268f855c77 100644 --- a/drivers/iio/light/tcs3414.c +++ b/drivers/iio/light/tcs3414.c @@ -134,16 +134,15 @@ static int tcs3414_read_raw(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_RAW: - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = tcs3414_req_data(data); if (ret < 0) { - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; } ret = i2c_smbus_read_word_data(data->client, chan->address); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); if (ret < 0) return ret; *val = ret; From patchwork Sun Mar 9 17:06:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008673 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 A7AD11DF742 for ; Sun, 9 Mar 2025 17:07:52 +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=1741540072; cv=none; b=qscTZZPaDm5Cd4y0Vq/8QQgksZwxnP2YwLHh4OI4OejlQpMyPB8l435HAbzayx4/uzCRMyVM9vHboFDbJIl2L3Sap+xVsAyj7LN2GbQ4WrQy0DSW49gC5PJCMk2aqkmEsCBTxA6snRU3lTL8uNg3bXtfZkL01REBvz8FaflJT9w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540072; c=relaxed/simple; bh=a/NPPG2XkfdR2ZuUuZhG5X4UdXWm5oNO9UxHKUQFO00=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iHvwlhgtMcwdR5PKQd+e1NmjrtBu9GNwu8SaMckT38Sl/ZGGXyPKJGpzZXVzsCgr5yXRtgPiV++Qr21igbqOyjc4OQH+0uuMlgZ2yjyI9B55ctoANHBeBFasRNT9EGMFmfL7iQdNYNbQpYAq/aNol5YBg4XGymywZCu87m+qjiM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VZW/ZHyJ; 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="VZW/ZHyJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69BF6C4CEE3; Sun, 9 Mar 2025 17:07:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540072; bh=a/NPPG2XkfdR2ZuUuZhG5X4UdXWm5oNO9UxHKUQFO00=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VZW/ZHyJwz0FdNFlDrwDf4qWGeczCfcAs/gSaYNIKJjO6lXQ69Ii+Bno0o9Crc4i3 yNQ/m9jTxV2QZJ6YEX7R8yjLyZZp1unSDu4jcz2LGgMxmuHsabElB2ld56mJBy1ATO Z+MzsDFm1r8zJIXp1AnAwaCUeTKW2y5VStj2tDq2Mq3B8JzHCNY4P57ocID3rZ8Zu0 sN25kzCDv3A54SA/Wqa/PfmMbaKZY7UB0gctJZBDgPHf19QiNe6JFHR1j15CAOtDk9 35zStVRQCMAYpbJq5nhV6bTzp97MjkRDA4+DY19u0c43t52oVmMPRS4ixULly5dFBU 4GrSPZCNWuq7A== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 16/18] iio: light: tcs3472: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:31 +0000 Message-ID: <20250309170633.1347476-17-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Signed-off-by: Jonathan Cameron --- drivers/iio/light/tcs3472.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/iio/light/tcs3472.c b/drivers/iio/light/tcs3472.c index 2bd36a344ea5..0f8bf8503edd 100644 --- a/drivers/iio/light/tcs3472.c +++ b/drivers/iio/light/tcs3472.c @@ -148,16 +148,15 @@ static int tcs3472_read_raw(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_RAW: - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; ret = tcs3472_req_data(data); if (ret < 0) { - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; } ret = i2c_smbus_read_word_data(data->client, chan->address); - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); if (ret < 0) return ret; *val = ret; From patchwork Sun Mar 9 17:06:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008674 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 0D1711D8DFE for ; Sun, 9 Mar 2025 17:07:55 +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=1741540076; cv=none; b=rvhwj81DpOrJO8gnOSBpU5+waa+ztpnn3MENbRHvS2DcHcAzNZDvaBEabVybpaxRvOC4nLQmS6Pc0AvMj1j+al+aPaHUwXc1xG/aBHA56U7VhlQkEVEm053GQth6yjZWoykggVX7XShoTG0D7K8CcSLp0+e4EZcBVsimghQLMFQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540076; c=relaxed/simple; bh=2v0OsbW7CxsBMBIHAD4v0g3/l3HGruF7af11l21SRds=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gtaRtM3CcUSK3IfY0fEamMkS3YC9sRJeVr33I9tmmrZlkELJUSupSRg+jyBYvTwcHcTgEKWe7H/Y6Sc/6NayFblEW/OP3t8crWAwQepaojoEXuEEEddwHH9spCPz6t8m3QxuTeSTez6047JLdrTjdQKUOE+NhbAtQ/hNCThDMvU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=comrTFty; 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="comrTFty" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8CC02C4CEE5; Sun, 9 Mar 2025 17:07:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540075; bh=2v0OsbW7CxsBMBIHAD4v0g3/l3HGruF7af11l21SRds=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=comrTFtyC2gU1FrsFlb21KwnWyALUGujf2L9C5aEqkWnbu4YfzdAh9D8a9p0y2vrL 2t1JCxzSPLmj4R5LLz7NQz5VmFt6tqc18KkGpxSSytPUZVlLZ30UOFpRRjzJBzCrSc 0Z4jmbMoANgEhHuDb83No9IKd8xctgNZbTHXUjNpJd4koxgycvOnzDuPz9wPLUzm9j IIvRMPhxnEVfTI4ksTuzu8QNjINdGJYc+MtLumISHcwwq+/3/Axbnz0WFuD4foAwlb cb0VyGcrkGNqC90oB6ZokpHkz4evRTCp52o/M3zNfOlKcyrsyax75B+JxJHq08diBi x4k1RKHjoBDqg== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 17/18] iio: light: vcnl4000: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:32 +0000 Message-ID: <20250309170633.1347476-18-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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. Also split the enabling and disabling of thresholds into separate functions given overlap is small. Signed-off-by: Jonathan Cameron Cc: Astrid Rost --- drivers/iio/light/vcnl4000.c | 78 +++++++++++++++++++----------------- 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c index e19199b17f2e..d7489bee2dff 100644 --- a/drivers/iio/light/vcnl4000.c +++ b/drivers/iio/light/vcnl4000.c @@ -1084,9 +1084,8 @@ static int vcnl4010_read_raw(struct iio_dev *indio_dev, switch (mask) { case IIO_CHAN_INFO_RAW: case IIO_CHAN_INFO_SCALE: - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; /* Protect against event capture. */ if (vcnl4010_is_in_periodic_mode(data)) { @@ -1096,7 +1095,7 @@ static int vcnl4010_read_raw(struct iio_dev *indio_dev, mask); } - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; case IIO_CHAN_INFO_SAMP_FREQ: switch (chan->type) { @@ -1157,9 +1156,8 @@ static int vcnl4010_write_raw(struct iio_dev *indio_dev, int ret; struct vcnl4000_data *data = iio_priv(indio_dev); - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; /* Protect against event capture. */ if (vcnl4010_is_in_periodic_mode(data)) { @@ -1183,7 +1181,7 @@ static int vcnl4010_write_raw(struct iio_dev *indio_dev, } end: - iio_device_release_direct_mode(indio_dev); + iio_device_release_direct(indio_dev); return ret; } @@ -1410,46 +1408,52 @@ static int vcnl4010_read_event_config(struct iio_dev *indio_dev, } } -static int vcnl4010_config_threshold(struct iio_dev *indio_dev, bool state) +static int vcnl4010_config_threshold_enable(struct vcnl4000_data *data) { - struct vcnl4000_data *data = iio_priv(indio_dev); int ret; - int icr; - int command; - if (state) { - ret = iio_device_claim_direct_mode(indio_dev); - if (ret) - return ret; + /* Enable periodic measurement of proximity data. */ + ret = i2c_smbus_write_byte_data(data->client, VCNL4000_COMMAND, + VCNL4000_SELF_TIMED_EN | VCNL4000_PROX_EN); + if (ret < 0) + return ret; - /* Enable periodic measurement of proximity data. */ - command = VCNL4000_SELF_TIMED_EN | VCNL4000_PROX_EN; + /* + * Enable interrupts on threshold, for proximity data by + * default. + */ + return i2c_smbus_write_byte_data(data->client, VCNL4010_INT_CTRL, + VCNL4010_INT_THR_EN); +} - /* - * Enable interrupts on threshold, for proximity data by - * default. - */ - icr = VCNL4010_INT_THR_EN; - } else { - if (!vcnl4010_is_thr_enabled(data)) - return 0; +static int vcnl4010_config_threshold_disable(struct vcnl4000_data *data) +{ + int ret; - command = 0; - icr = 0; - } + if (!vcnl4010_is_thr_enabled(data)) + return 0; - ret = i2c_smbus_write_byte_data(data->client, VCNL4000_COMMAND, - command); + ret = i2c_smbus_write_byte_data(data->client, VCNL4000_COMMAND, 0); if (ret < 0) - goto end; + return ret; - ret = i2c_smbus_write_byte_data(data->client, VCNL4010_INT_CTRL, icr); + return i2c_smbus_write_byte_data(data->client, VCNL4010_INT_CTRL, 0); +} -end: - if (state) - iio_device_release_direct_mode(indio_dev); +static int vcnl4010_config_threshold(struct iio_dev *indio_dev, bool state) +{ + struct vcnl4000_data *data = iio_priv(indio_dev); + int ret; - return ret; + if (state) { + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; + ret = vcnl4010_config_threshold_enable(data); + iio_device_release_direct(indio_dev); + return ret; + } else { + return vcnl4010_config_threshold_disable(data); + } } static int vcnl4010_write_event_config(struct iio_dev *indio_dev, From patchwork Sun Mar 9 17:06:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Cameron X-Patchwork-Id: 14008675 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 EE1CD4A0C for ; Sun, 9 Mar 2025 17:07:58 +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=1741540079; cv=none; b=mQqHwIR+ZNEVyN7MJj3xDcHTzL1bCHyns6pVujJ0qoXv6srNl+aglIl6CmrsZM9UgxJHTfLDEGFa/FWfdQaPLd/sHqLIVl4avpj+QDPoSqXm599rSNm5JILBWdDZ7UFt16GA9SQxKopzFtYthWGqIH86XZas/4hmeC1BPHMwMoA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741540079; c=relaxed/simple; bh=kwCMKNrJoH+FMxxiYYgEY1VAsVZFgXiOohf3BlSMboI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dXS2gqDM39MmHEyt/Wm6Ya3BzbBjh045KDo+LZvZJbX12bNdFD3Qerp5QrEpfFSkQQzOPP2IGSR2fS8NVNsIOxbwrz8VN8xCuGhzjYuk5RDarteJ/pMcs3aoXFNuneKZaGJ3uy2HSEQP+1jkzIvMAR5iCXHGWh3X7V1NblnMGag= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Zrp89IlQ; 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="Zrp89IlQ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4E261C4CEE3; Sun, 9 Mar 2025 17:07:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741540078; bh=kwCMKNrJoH+FMxxiYYgEY1VAsVZFgXiOohf3BlSMboI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Zrp89IlQNFWklIIxZDdrpnqdqLX7CyZd+Zy6+zIgICbIvsS0f16jEKgdR2PXyY/NW jYHOOdF3Zv4zZM5ylHqy1c7y6o5zi6yOiVMDr5QOxWVn7quAaatA5xWOqtp2jooWO0 4QuxI+F+hxdoRS/0pqml9rRi5LjHsHVYopSoc0PIZN/9NKORXWU7kyni3FvuJXae6H A4jUprSwjibd36R3w9oeyiyFiPwyAalgtXx4VtVIN/H6nZocyPSon/uj0GDzEzCaQv p7nEOQF4ZAvvj/HyRpfzUMwPvuQFXpRNAlXDaVSfQpx6VuH+qAcD06yyUwSd/ApcOG E1WEckzQhx4xQ== From: Jonathan Cameron To: linux-iio@vger.kernel.org, =?utf-8?q?Nuno_S=C3=A1?= , Astrid Rost , Matti Vaittinen , Per-Daniel Olsson , Javier Carrasco , Subhajit Ghosh Cc: =?utf-8?q?Nuno_S=C3=A1?= , David Lechner , Jonathan Cameron Subject: [PATCH 18/18] iio: light: vcnl4035: Switch to sparse friendly iio_device_claim/release_direct() Date: Sun, 9 Mar 2025 17:06:33 +0000 Message-ID: <20250309170633.1347476-19-jic23@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250309170633.1347476-1-jic23@kernel.org> References: <20250309170633.1347476-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 case triggered a false positive from sparse, resolved by factoring out the code that includes the claim and release of direct mode. Signed-off-by: Jonathan Cameron --- drivers/iio/light/vcnl4035.c | 42 ++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/drivers/iio/light/vcnl4035.c b/drivers/iio/light/vcnl4035.c index 67c94be02018..b2bede9d3daa 100644 --- a/drivers/iio/light/vcnl4035.c +++ b/drivers/iio/light/vcnl4035.c @@ -156,6 +156,31 @@ static int vcnl4035_set_pm_runtime_state(struct vcnl4035_data *data, bool on) return ret; } +static int vcnl4035_read_info_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, int *val) +{ + struct vcnl4035_data *data = iio_priv(indio_dev); + int ret; + int raw_data; + unsigned int reg; + + if (!iio_device_claim_direct(indio_dev)) + return -EBUSY; + + if (chan->channel) + reg = VCNL4035_ALS_DATA; + else + reg = VCNL4035_WHITE_DATA; + ret = regmap_read(data->regmap, reg, &raw_data); + iio_device_release_direct(indio_dev); + if (ret) + return ret; + + *val = raw_data; + + return IIO_VAL_INT; +} + /* * Device IT INT Time (ms) Scale (lux/step) * 000 50 0.064 @@ -175,28 +200,13 @@ static int vcnl4035_read_raw(struct iio_dev *indio_dev, { struct vcnl4035_data *data = iio_priv(indio_dev); int ret; - int raw_data; - unsigned int reg; switch (mask) { case IIO_CHAN_INFO_RAW: ret = vcnl4035_set_pm_runtime_state(data, true); if (ret < 0) return ret; - - ret = iio_device_claim_direct_mode(indio_dev); - if (!ret) { - if (chan->channel) - reg = VCNL4035_ALS_DATA; - else - reg = VCNL4035_WHITE_DATA; - ret = regmap_read(data->regmap, reg, &raw_data); - iio_device_release_direct_mode(indio_dev); - if (!ret) { - *val = raw_data; - ret = IIO_VAL_INT; - } - } + ret = vcnl4035_read_info_raw(indio_dev, chan, val); vcnl4035_set_pm_runtime_state(data, false); return ret; case IIO_CHAN_INFO_INT_TIME: