From nobody Sat Jun 13 02:56:18 2026 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 B5F97344DBD; Mon, 11 May 2026 11:26:19 +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=1778498779; cv=none; b=g6SZta/UTiqV7r609F4oerXlX0ak9BMhvOXf30iNYaoFbGNLRvB/cpoBypBs9QnKjz5idVjfB2EU9vZ2G9x+J0YoVHeHmZs0W9c/MrVWS4I+ca49uu0snVmSaBhlfbwdclHQOvp3XV79HUi47GgbSwQWaT87HuzIJDGTBOVYBoc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778498779; c=relaxed/simple; bh=jalThnA4JGejlYZkvJssMvEnPyKalUQVHvdgBmYq1fM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FQ8NErSlhOhUHTFiR8aI3Cyx+Tp58IpB6FC039TeYdTJ5yCEMGQYmQoinkD4nPI3t6CrT2FpYEcIOxC1lIXzLGK1Yo8CU3qfCqsVSxEfwo+ZqOCvS7aNXNBMU63jbjV9h/4cZ95d2ff7uvHy1IzpzBmcG6itvdjB/I4O/ss2ibE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=NY3PsLpZ; 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="NY3PsLpZ" Received: by smtp.kernel.org (Postfix) with ESMTPS id 6B4A0C2BCC9; Mon, 11 May 2026 11:26:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778498779; bh=jalThnA4JGejlYZkvJssMvEnPyKalUQVHvdgBmYq1fM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=NY3PsLpZRJy2yE6k9UPa+eavhdWq/SAn0y3D5TmPYf/ztHQNPbEhGTieYE0MIw4DT 8dLIBkBNWlSIIN0eDYwooJGj21Ga05PlYYf9gy8Wl4bKyu01cFde5u8F0zetIWIdud Da6P158uplR3UC9ToDcZixMoHTdQl99FWXx8XD903X2vURxOVcuIGqofIS2Y4z5Khm 8ThRbnDk/nUFlTm6xdpSaBADxyDQEFAmD6lpz6XNlseyIYtfgJPHStj9/FktVy5JV3 z8zkqNewY9o16n9EEQWnfU5cZG4OhO9JB2ugms5Xsc0/znysJWQi/YT4GtNkLjwW8c wUtS6ulnubepA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58C36CD4842; Mon, 11 May 2026 11:26:19 +0000 (UTC) From: Joshua Crofts via B4 Relay Date: Mon, 11 May 2026 13:26:10 +0200 Subject: [PATCH v7 1/8] iio: magnetometer: ak8975: modernize polling loops with iopoll() macros Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260511-magnetometer-fixes-post-pickup-v7-1-9d910faa28b6@gmail.com> References: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> In-Reply-To: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778498777; l=2939; i=joshua.crofts1@gmail.com; s=20260422; h=from:subject:message-id; bh=kQ9W4qXTnkaxb6Nx4nCjqQxYeSpg8Dr0Owtif3h7z2A=; b=5K1lOK3vwdwAa1YCQ5oLKFNufIT/AxyugQS3JPhlgzvpSU3scBX5rPHU/1+MuK6sdPhNFUWTd 8sWpY6uRc24DaX4wOfMj4N+w8H+H4WU3eAR7CNrb8opF0pWVzgBs8Sm X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=Xd+UVoRPiiI0K3LHQ2XIcXmO0jvVuFTv9eTx3lgBphI= X-Endpoint-Received: by B4 Relay for joshua.crofts1@gmail.com/20260422 with auth_id=746 X-Original-From: Joshua Crofts Reply-To: joshua.crofts1@gmail.com From: Joshua Crofts The driver currently uses while loops and msleep() for polling during conversion waits. Replace the custom polling loops with readx_poll_timeout() and read_poll_timeout() macros from . This reduces boilerplate, standardizes timeout handling and improves overall code readability, keeping the original timing and error behaviour. Add for USEC_PER_MSEC macro instead of using magic numbers. Assisted-by: Gemini:3.1-Pro Reviewed-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 Signed-off-by: Joshua Crofts --- drivers/iio/magnetometer/ak8975.c | 43 ++++++++++++++++-------------------= ---- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/a= k8975.c index 6be72e1cc0a8321e767da5e65d54c0fe88712304..b990c123e2808c2078abcfaf6b2= ef86c09393e6b 100644 --- a/drivers/iio/magnetometer/ak8975.c +++ b/drivers/iio/magnetometer/ak8975.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include =20 @@ -649,16 +650,14 @@ static int wait_conversion_complete_gpio(struct ak897= 5_data *data, { struct i2c_client *client =3D data->client; int ret; + int val; =20 /* Wait for the conversion to complete. */ - while (timeout_ms) { - msleep(poll_ms); - if (gpiod_get_value(data->eoc_gpiod)) - break; - timeout_ms -=3D poll_ms; - } - if (!timeout_ms) - return -ETIMEDOUT; + ret =3D readx_poll_timeout(gpiod_get_value, data->eoc_gpiod, val, val != =3D 0, + poll_ms * USEC_PER_MSEC, + timeout_ms * USEC_PER_MSEC); + if (ret) + return ret; =20 ret =3D i2c_smbus_read_byte_data(client, data->def->ctrl_regs[ST1]); if (ret < 0) @@ -672,27 +671,21 @@ static int wait_conversion_complete_polled(struct ak8= 975_data *data, unsigned int timeout_ms) { struct i2c_client *client =3D data->client; - u8 read_status; int ret; + int val; =20 /* Wait for the conversion to complete. */ - while (timeout_ms) { - msleep(poll_ms); - ret =3D i2c_smbus_read_byte_data(client, - data->def->ctrl_regs[ST1]); - if (ret < 0) { - dev_err(&client->dev, "Error in reading ST1\n"); - return ret; - } - read_status =3D ret; - if (read_status) - break; - timeout_ms -=3D poll_ms; - } - if (!timeout_ms) - return -ETIMEDOUT; + ret =3D read_poll_timeout(i2c_smbus_read_byte_data, val, val !=3D 0, + poll_ms * USEC_PER_MSEC, + timeout_ms * USEC_PER_MSEC, + true, + client, data->def->ctrl_regs[ST1]); + if (ret) + return ret; + if (val < 0) + dev_err(&client->dev, "Error in reading ST1\n"); =20 - return read_status; + return val; } =20 /* Returns 0 if the end of conversion interrupt occurred or -ETIMEDOUT oth= erwise */ --=20 2.47.3 From nobody Sat Jun 13 02:56:18 2026 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 B609F36E495; Mon, 11 May 2026 11:26:19 +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=1778498779; cv=none; b=K6ZE+BD+KPsOoMdPopxs2JhlzJvHJyuNmH90LF8U8B2CBW+GCDy86j+5gdeJOB6VNxrvsJV32NXo1DsSSrOriXH8O27Yp8+QprNbDAe6likTD8Zk0Ij1OUYU7PVi5ddIYWheV1E8qs0UXhRem8kqFfB7LZSb7nRxg6S14BZeCgw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778498779; c=relaxed/simple; bh=1RLA2ZYiCGApABoG0oT9B+X52DsITGoUfZDk73uTbqc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RW01b98ujgfnzrfmR1mAAI7at9bPNXn92Q45PL294x8ygaozjslcV/jR4+iaBvfUe5BMRz3yDCTCeCIZDd7xu/7VUzySelELGcvx/gzPQByYWNgb/cdznL/pr6pXuzjOMkV2YWo9DWMHXo2wpLnmaUW6ELIgUHEKZe4OKcBr4u4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=lhmQ6slM; 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="lhmQ6slM" Received: by smtp.kernel.org (Postfix) with ESMTPS id 78F95C2BCF7; Mon, 11 May 2026 11:26:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778498779; bh=1RLA2ZYiCGApABoG0oT9B+X52DsITGoUfZDk73uTbqc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=lhmQ6slMgOHsFs1omNsANikG1biMGMahzbu1Sm/Lg3Xxnk320soWjjb/WXc2e38lG ZT2lBjbtlVZB9M5rwkgn4G+20n7jkIuKVG2M2ZEEj5F1g431P0p2SSpWR1BYe7ZttP v0+VGP487kkbaXLrpAgWSEM1hGh4vUzaXfOTBqERA7CAhArbqe2wkljVCqp0eRbV0D eHPh/ce/Gi80RMh+GYYPbFFIZvOFdMM/qwm9IhLClSJNT23lgHyqs/7c2+xML/HCwi vBuC/o2OJjp3kXJh1UAVlCK1WVA+LnddPy0mcG2ASD0SG5nHfotfblFd53iRYW+PZc nnqkB/4r5n2Xw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6CA11CD37B9; Mon, 11 May 2026 11:26:19 +0000 (UTC) From: Joshua Crofts via B4 Relay Date: Mon, 11 May 2026 13:26:11 +0200 Subject: [PATCH v7 2/8] iio: magnetometer: ak8975: check if gpiod read was successful Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260511-magnetometer-fixes-post-pickup-v7-2-9d910faa28b6@gmail.com> References: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> In-Reply-To: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778498777; l=980; i=joshua.crofts1@gmail.com; s=20260422; h=from:subject:message-id; bh=PyQjnvF0PpS4nXobxpIewU2LXJTfC4o4a1SiBwlJi78=; b=k90+TeY6RHr7y1bvPgQMCiY2GUzJNuDFeNobWT56H17FPV0TiD5/IIujMwnj+itd4y3CkGmtr bZGgb91MwYpDB2G/9ifC4LmXWXZMRIMe4YIbf+figvkW5R2P0eaI65k X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=Xd+UVoRPiiI0K3LHQ2XIcXmO0jvVuFTv9eTx3lgBphI= X-Endpoint-Received: by B4 Relay for joshua.crofts1@gmail.com/20260422 with auth_id=746 X-Original-From: Joshua Crofts Reply-To: joshua.crofts1@gmail.com From: Joshua Crofts Add a check that ensures that valid data has been read from GPIOD. If not, log an error and return the negative read value. Suggested-by: Jonathan Cameron Reviewed-by: Nuno S=C3=A1 Signed-off-by: Joshua Crofts --- drivers/iio/magnetometer/ak8975.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/a= k8975.c index b990c123e2808c2078abcfaf6b2ef86c09393e6b..63b6e8465f5f3873841550a1cd0= 3ce86b95d1d67 100644 --- a/drivers/iio/magnetometer/ak8975.c +++ b/drivers/iio/magnetometer/ak8975.c @@ -658,6 +658,10 @@ static int wait_conversion_complete_gpio(struct ak8975= _data *data, timeout_ms * USEC_PER_MSEC); if (ret) return ret; + if (val < 0) { + dev_err(&client->dev, "Error in reading GPIOD\n"); + return val; + } =20 ret =3D i2c_smbus_read_byte_data(client, data->def->ctrl_regs[ST1]); if (ret < 0) --=20 2.47.3 From nobody Sat Jun 13 02:56:18 2026 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 B5F22314D2D; Mon, 11 May 2026 11:26:19 +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=1778498779; cv=none; b=uMQ2V5YaHm9MfW1v9LI0ILYOixZjSwU3nTwminbcW/cHBNUmj/btDiKA+DsU+i4I8L2b9qqxBFzW5m66dCs4UwHAz1G734HpTwUxhkgNKpARyRmoXoYzwnORnEWxDQLV4cajpfOea3ZHOmr9QMXxHvdb4i/iUZN0vsyl7dz96E8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778498779; c=relaxed/simple; bh=j0+nxBntw93Z9ciHYtzzecy7WNtiElAfmHu90rdCXg8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FwwZMtfcMphQzN3Wsn1ILFqjsjAw3SIXd96u23XyGQxJzDs/ee/nAcnMz4wGEpeOfq2SjnaBZqX2omORrOIKcOYtHVMCUi11EA2bWs9SbP7JGqqjUArf1uubqo0GJY3Fr9F+sSgtWJLsfcLCuYFXfmCogyDyPmOBvZiL2IM0qv0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XJOIMA06; 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="XJOIMA06" Received: by smtp.kernel.org (Postfix) with ESMTPS id 87DFBC2BCFD; Mon, 11 May 2026 11:26:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778498779; bh=j0+nxBntw93Z9ciHYtzzecy7WNtiElAfmHu90rdCXg8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=XJOIMA06uQb2dsBDZ9XzYpMsHkYOZbu77SFIk7anmpU+S0nu/IBqaSK79np1UGPBk +SVddAuzmzcGJuX0BBudQkhs1i2lJJ4LIaJTo6nmpnTj+R4Qf1iLdF6DJkGNoVEAUS ElVO5VV9yKiAqwzaoPwSIJdHARMEOoqTdqxuFbTq3wrzAAYoH92JG0c+ZOBhniGyWU OBYQxnvw5tBo9VzLlGHsD0ABFrhsN2KH5F0/5n4ALE9mSOBiWRHQ8cpqsoIJFP+TTZ +LK0692aAlT/5Y6cUtZbEMhBlqZKl+XRAo5A8xPNUBR1WBuJbqEo9VikLF4AU2ftM9 Mh/ZV+J0FNx5A== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E10BCD4843; Mon, 11 May 2026 11:26:19 +0000 (UTC) From: Joshua Crofts via B4 Relay Date: Mon, 11 May 2026 13:26:12 +0200 Subject: [PATCH v7 3/8] iio: magnetometer: ak8975: switch to using managed resources Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260511-magnetometer-fixes-post-pickup-v7-3-9d910faa28b6@gmail.com> References: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> In-Reply-To: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778498777; l=4918; i=joshua.crofts1@gmail.com; s=20260422; h=from:subject:message-id; bh=RK05IzqpmdJLEz+6KcJ2JFwpRKwaEcm/YHbxSZj+oEA=; b=D9MEnYd1QotJIvnoQ2wNHXjum/snHcxBif5ZmLZ2/BO3sAU0q4Zsd0mfnJ9l3AHqwX6gQXSLx 9pK5UoIXDFrC+9Cwj2zpsuu6zXCcGqANF+Xf1KAMvwOBrhaL2Pi/kNP X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=Xd+UVoRPiiI0K3LHQ2XIcXmO0jvVuFTv9eTx3lgBphI= X-Endpoint-Received: by B4 Relay for joshua.crofts1@gmail.com/20260422 with auth_id=746 X-Original-From: Joshua Crofts Reply-To: joshua.crofts1@gmail.com From: Andy Shevchenko Switch the driver to use managed resources (devm_*) which simplifier error handling and allows removing ak8975_remove() method from the driver. Note, on error path we now also set mode to POWER_DOWN state which is fine. Even if the device is in that mode, there is no problem to set that mode again, it should be no-op. Additionally, remove any pm_runtime_get/put*() function calls that dummy cycled the counter to autosuspend the device. Signed-off-by: Andy Shevchenko Co-developed-by: Joshua Crofts Signed-off-by: Joshua Crofts --- drivers/iio/magnetometer/ak8975.c | 75 +++++++++++++++++++++--------------= ---- 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/a= k8975.c index 63b6e8465f5f3873841550a1cd03ce86b95d1d67..82ba6f6d7891acf34a3178c185e= 28238ae63ea3a 100644 --- a/drivers/iio/magnetometer/ak8975.c +++ b/drivers/iio/magnetometer/ak8975.c @@ -898,9 +898,24 @@ static irqreturn_t ak8975_handle_trigger(int irq, void= *p) return IRQ_HANDLED; } =20 +static void devm_ak8975_power_off(void *data) +{ + struct ak8975_data *ak =3D data; + struct device *dev =3D &ak->client->dev; + + /* Only power down if currently active */ + if (pm_runtime_suspended(dev)) + return; + + /* Soft-stop the chip before hard-stopping the regulators */ + ak8975_set_mode(data, POWER_DOWN); + ak8975_power_off(data); +} + static int ak8975_probe(struct i2c_client *client) { const struct i2c_device_id *id =3D i2c_client_get_device_id(client); + struct device *dev =3D &client->dev; struct ak8975_data *data; struct iio_dev *indio_dev; struct gpio_desc *eoc_gpiod; @@ -968,10 +983,21 @@ static int ak8975_probe(struct i2c_client *client) if (ret) return ret; =20 + /* + * Set device as active early so pm_runtime_status_suspended() works + * correctly if probe fails before pm_runtime is enabled. Do not attempt + * to move this line lower. + */ + pm_runtime_set_active(dev); + + ret =3D devm_add_action_or_reset(dev, devm_ak8975_power_off, data); + if (ret) + return ret; + ret =3D ak8975_who_i_am(client, data->def->type); if (ret) { dev_err(&client->dev, "Unexpected device\n"); - goto power_off; + return ret; } dev_dbg(&client->dev, "Asahi compass chip %s\n", name); =20 @@ -979,10 +1005,13 @@ static int ak8975_probe(struct i2c_client *client) ret =3D ak8975_setup(client); if (ret) { dev_err(&client->dev, "%s initialization fails\n", name); - goto power_off; + return ret; } =20 - mutex_init(&data->lock); + ret =3D devm_mutex_init(dev, &data->lock); + if (ret) + return ret; + indio_dev->channels =3D ak8975_channels; indio_dev->num_channels =3D ARRAY_SIZE(ak8975_channels); indio_dev->info =3D &ak8975_info; @@ -990,52 +1019,31 @@ static int ak8975_probe(struct i2c_client *client) indio_dev->modes =3D INDIO_DIRECT_MODE; indio_dev->name =3D name; =20 - ret =3D iio_triggered_buffer_setup(indio_dev, NULL, ak8975_handle_trigger, - NULL); + ret =3D devm_iio_triggered_buffer_setup(dev, indio_dev, NULL, + ak8975_handle_trigger, NULL); if (ret) { dev_err(&client->dev, "triggered buffer setup failed\n"); - goto power_off; + return ret; } =20 - ret =3D iio_device_register(indio_dev); + ret =3D devm_pm_runtime_enable(dev); + if (ret) + return ret; + + ret =3D devm_iio_device_register(dev, indio_dev); if (ret) { dev_err(&client->dev, "device register failed\n"); - goto cleanup_buffer; + return ret; } =20 - /* Enable runtime PM */ - pm_runtime_get_noresume(&client->dev); - pm_runtime_set_active(&client->dev); - pm_runtime_enable(&client->dev); /* * The device comes online in 500us, so add two orders of magnitude * of delay before autosuspending: 50 ms. */ pm_runtime_set_autosuspend_delay(&client->dev, 50); pm_runtime_use_autosuspend(&client->dev); - pm_runtime_put(&client->dev); =20 return 0; - -cleanup_buffer: - iio_triggered_buffer_cleanup(indio_dev); -power_off: - ak8975_power_off(data); - return ret; -} - -static void ak8975_remove(struct i2c_client *client) -{ - struct iio_dev *indio_dev =3D i2c_get_clientdata(client); - struct ak8975_data *data =3D iio_priv(indio_dev); - - pm_runtime_get_sync(&client->dev); - pm_runtime_put_noidle(&client->dev); - pm_runtime_disable(&client->dev); - iio_device_unregister(indio_dev); - iio_triggered_buffer_cleanup(indio_dev); - ak8975_set_mode(data, POWER_DOWN); - ak8975_power_off(data); } =20 static int ak8975_runtime_suspend(struct device *dev) @@ -1129,7 +1137,6 @@ static struct i2c_driver ak8975_driver =3D { .acpi_match_table =3D ak_acpi_match, }, .probe =3D ak8975_probe, - .remove =3D ak8975_remove, .id_table =3D ak8975_id, }; module_i2c_driver(ak8975_driver); --=20 2.47.3 From nobody Sat Jun 13 02:56:18 2026 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 BA9A7370D6C; Mon, 11 May 2026 11:26:19 +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=1778498779; cv=none; b=GKEE0osBlFZiOAU9z/nNsIHx5mHfTCVPSTPTLFMeJ0gl+BpXg6iqUAwDQe3feKLWg5bH17XBYBhY7b9kzG60tBjZCvWkGj7IEK/Ia+KSqnO8rBkOtK49Z6VGtS6vOMg7uM4mQCUROGvF70nsokEgIchSzP9/b+bB//i4InOP6s4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778498779; c=relaxed/simple; bh=zssnmchV2smSeMiow51uVK8wU/rNZa9iiABbAouDQAI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SfVOMOY/UNqrTp2vIBzwhxHSPFW4VseFhVlotpitjaw/rn1EmxInH1hDiOAh9jZQNUnUM6Rw1DuYvvGB6g5c8uOXokhmxGUsW27KYBuFFYQbHNs0xYO3/vxjsXlrK/6l+zp3AlDiVSpczmvD/iM3fwzwdldNGn8UNp/lQ5c1O6c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Wk4/g/Z7; 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="Wk4/g/Z7" Received: by smtp.kernel.org (Postfix) with ESMTPS id 98C47C2BD05; Mon, 11 May 2026 11:26:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778498779; bh=zssnmchV2smSeMiow51uVK8wU/rNZa9iiABbAouDQAI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=Wk4/g/Z7/hPXYDwqGfYSROV4JOH307ipe8hbGPx4SJl0cJhNBHQlJnJcjISgkhd8U tjScfemqMvYBMbde1iLT29eHFH7ydp174M2x40mGSoNl4gnfTBUyqE2uc1GsycGcKT OKYR7oHzk9RfpqxsHwVm8l8YAPFOj+ph2P54tIsHOS7/RQAHg833tGBxsTj2E/QeGb CiFnLrVfgosTpZfEk+nUc5SrpXY5pLEBb7FiETYDF2UmnFs2tms+HxHv2/BCt/Irce hn5J4PsjY5DPgcTJq86vZ3axMciAEH1ArB1PUm0hEkKXX+NGU+faeZHmsijlJp9PJ7 poFCCaXb+Sr0g== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 91FE8CD37AC; Mon, 11 May 2026 11:26:19 +0000 (UTC) From: Joshua Crofts via B4 Relay Date: Mon, 11 May 2026 13:26:13 +0200 Subject: [PATCH v7 4/8] iio: magnetometer: ak8975: consistently use 'data' parameter Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260511-magnetometer-fixes-post-pickup-v7-4-9d910faa28b6@gmail.com> References: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> In-Reply-To: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778498777; l=3410; i=joshua.crofts1@gmail.com; s=20260422; h=from:subject:message-id; bh=+hXgl80c5GtkDD+dJWsHxoV5eHSehOQ9doLI5RXeF8g=; b=08xYkNfXGq1mNPeaJKfYa7VAtuyP1TG2f79/hqWiJToRwj4nvvBYKgjCphKzVoyE0eLnHssQv F/2ndUwoELDDcZMLaRczzR9UXGoao7O/caOdXYw5LSgwl/N0MIYqhYC X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=Xd+UVoRPiiI0K3LHQ2XIcXmO0jvVuFTv9eTx3lgBphI= X-Endpoint-Received: by B4 Relay for joshua.crofts1@gmail.com/20260422 with auth_id=746 X-Original-From: Joshua Crofts Reply-To: joshua.crofts1@gmail.com From: Andy Shevchenko Some of the functions use 'client', some use 'data', and some use both. Refactor the driver to consistently use 'data' in all cases. Signed-off-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 Signed-off-by: Joshua Crofts --- drivers/iio/magnetometer/ak8975.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/a= k8975.c index 82ba6f6d7891acf34a3178c185e28238ae63ea3a..43259ad4990e2a7a40a0fa60a6e= e040c42426b70 100644 --- a/drivers/iio/magnetometer/ak8975.c +++ b/drivers/iio/magnetometer/ak8975.c @@ -474,9 +474,10 @@ static void ak8975_power_off(const struct ak8975_data = *data) * Return 0 if the i2c device is the one we expect. * return a negative error number otherwise */ -static int ak8975_who_i_am(struct i2c_client *client, +static int ak8975_who_i_am(const struct ak8975_data *data, enum asahi_compass_chipset type) { + struct i2c_client *client =3D data->client; u8 wia_val[2]; int ret; =20 @@ -598,10 +599,9 @@ static int ak8975_setup_irq(struct ak8975_data *data) * Perform some start-of-day setup, including reading the asa calibration * values and caching them. */ -static int ak8975_setup(struct i2c_client *client) +static int ak8975_setup(struct ak8975_data *data) { - struct iio_dev *indio_dev =3D i2c_get_clientdata(client); - struct ak8975_data *data =3D iio_priv(indio_dev); + struct i2c_client *client =3D data->client; int ret; =20 /* Write the fused rom access mode. */ @@ -706,12 +706,13 @@ static int wait_conversion_complete_interrupt(struct = ak8975_data *data, return ret > 0 ? 0 : -ETIMEDOUT; } =20 -static int ak8975_start_read_axis(struct ak8975_data *data, - const struct i2c_client *client) +static int ak8975_start_read_axis(struct ak8975_data *data) { - /* Set up the device for taking a sample. */ - int ret =3D ak8975_set_mode(data, MODE_ONCE); + struct i2c_client *client =3D data->client; + int ret; =20 + /* Set up the device for taking a sample. */ + ret =3D ak8975_set_mode(data, MODE_ONCE); if (ret < 0) { dev_err(&client->dev, "Error in setting operating mode\n"); return ret; @@ -744,7 +745,7 @@ static int ak8975_read_axis(struct iio_dev *indio_dev, = int index, int *val) =20 mutex_lock(&data->lock); =20 - ret =3D ak8975_start_read_axis(data, client); + ret =3D ak8975_start_read_axis(data); if (ret) goto exit; =20 @@ -856,7 +857,7 @@ static void ak8975_fill_buffer(struct iio_dev *indio_de= v) =20 mutex_lock(&data->lock); =20 - ret =3D ak8975_start_read_axis(data, client); + ret =3D ak8975_start_read_axis(data); if (ret) goto unlock; =20 @@ -994,7 +995,7 @@ static int ak8975_probe(struct i2c_client *client) if (ret) return ret; =20 - ret =3D ak8975_who_i_am(client, data->def->type); + ret =3D ak8975_who_i_am(data, data->def->type); if (ret) { dev_err(&client->dev, "Unexpected device\n"); return ret; @@ -1002,7 +1003,7 @@ static int ak8975_probe(struct i2c_client *client) dev_dbg(&client->dev, "Asahi compass chip %s\n", name); =20 /* Perform some basic start-of-day setup of the device. */ - ret =3D ak8975_setup(client); + ret =3D ak8975_setup(data); if (ret) { dev_err(&client->dev, "%s initialization fails\n", name); return ret; --=20 2.47.3 From nobody Sat Jun 13 02:56:18 2026 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 DCA2D372B23; Mon, 11 May 2026 11:26:19 +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=1778498779; cv=none; b=MsvTl/0ycz0hmSm45oHEthK6agBTjAMPomeSRc4GkyqH5POGoeHeBFiYrY3yQ5AfMCF8dL8UZzKB6yrrjZ2BCF5/99nfdtCIlqcvVqbdjYoMInJGK+++GxKqGhmwtzPt/dfeFGcJ6nwlThd2cx1RnrAG29PSoecd6wJlDONBupE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778498779; c=relaxed/simple; bh=yQRlHBBS5xhN2Pjbuu1tQgwbWuw2+qUIgOa52Ao6Ch0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bpg0s9qweTNZv44PZCW7zvehsSra1ncuxM5oURgO9MdqdMHhpNBk218MhWUAm/5EJVIws2ORrB3J5U+kvHhPNd66jQBWuhMjoZp4GcJJBkGX4giQ6TCTAjdaF87L8agFUVn4i8lFlW6S3qrlVVeIVWDJ87G5+qqvrkyezSptSh0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YVC/Ufzu; 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="YVC/Ufzu" Received: by smtp.kernel.org (Postfix) with ESMTPS id A95CEC2BD01; Mon, 11 May 2026 11:26:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778498779; bh=yQRlHBBS5xhN2Pjbuu1tQgwbWuw2+qUIgOa52Ao6Ch0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=YVC/UfzuntIrZuqYxrux92AUyw9jPpXu/Fco5PLoZtgDIPzlRdauY7XSyaiirlJDL ildHbA9PzYo+7scRbTG+uGpEX115biGr2spVmfdp8vTEIPnS0UNlOYbe5fnesXVJ/q nrP0j7TPhAxmrtSYjz1vwD89R0qWr1WSLFvn0L4RnOriol9+stXR0Fkf/jz/EphZBP kbPV4DJmHKfyt0tj3pkrB14lLgGWG/axmlHbP5/AUT83yaKW6Sg+mT8lmoV5e0R6Uu Eexhoq32MraBUiadd8RmvqGHD54QBLeXwlPvYbjTGTTDNWjbTilU8T6CK1ALrNcNiL WroAWW5dvr1Vw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A09E0CD4845; Mon, 11 May 2026 11:26:19 +0000 (UTC) From: Joshua Crofts via B4 Relay Date: Mon, 11 May 2026 13:26:14 +0200 Subject: [PATCH v7 5/8] iio: magnetometer: ak8975: unify messages with help of dev_err_probe() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260511-magnetometer-fixes-post-pickup-v7-5-9d910faa28b6@gmail.com> References: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> In-Reply-To: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778498777; l=2489; i=joshua.crofts1@gmail.com; s=20260422; h=from:subject:message-id; bh=Z/54TpFJCPFYq21Icav+9C0RoiajzMWR1WO6QMN1t3U=; b=Ej34ZzIDxj3COcfEXGiT8oT4U0AkL8Er4H76Jqnvzq0rqqvfcdS/RmhrbhuJmJYH9m6PJ+wtw JArK6WiCYoqDt8bdBmexKCIbqGpj1+rIprK5a5PEsbvpXH9668mKmVz X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=Xd+UVoRPiiI0K3LHQ2XIcXmO0jvVuFTv9eTx3lgBphI= X-Endpoint-Received: by B4 Relay for joshua.crofts1@gmail.com/20260422 with auth_id=746 X-Original-From: Joshua Crofts Reply-To: joshua.crofts1@gmail.com From: Andy Shevchenko Unify error messages that might appear during probe phase by switching to use dev_err_probe(). Signed-off-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 Signed-off-by: Joshua Crofts --- drivers/iio/magnetometer/ak8975.c | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/a= k8975.c index 43259ad4990e2a7a40a0fa60a6ee040c42426b70..2f1442e71607873e869351c379a= 40dae713a1c84 100644 --- a/drivers/iio/magnetometer/ak8975.c +++ b/drivers/iio/magnetometer/ak8975.c @@ -495,10 +495,8 @@ static int ak8975_who_i_am(const struct ak8975_data *d= ata, AK09912_REG_WIA1, sizeof(wia_val), wia_val); - if (ret < 0) { - dev_err(&client->dev, "Error reading WIA\n"); - return ret; - } + if (ret < 0) + return dev_err_probe(&client->dev, ret, "Error reading WIA\n"); =20 if (wia_val[0] !=3D AK8975_DEVICE_ID) return -ENODEV; @@ -996,18 +994,14 @@ static int ak8975_probe(struct i2c_client *client) return ret; =20 ret =3D ak8975_who_i_am(data, data->def->type); - if (ret) { - dev_err(&client->dev, "Unexpected device\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "Unexpected device\n"); dev_dbg(&client->dev, "Asahi compass chip %s\n", name); =20 /* Perform some basic start-of-day setup of the device. */ ret =3D ak8975_setup(data); - if (ret) { - dev_err(&client->dev, "%s initialization fails\n", name); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "%s initialization fails\n", name); =20 ret =3D devm_mutex_init(dev, &data->lock); if (ret) @@ -1022,20 +1016,16 @@ static int ak8975_probe(struct i2c_client *client) =20 ret =3D devm_iio_triggered_buffer_setup(dev, indio_dev, NULL, ak8975_handle_trigger, NULL); - if (ret) { - dev_err(&client->dev, "triggered buffer setup failed\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "triggered buffer setup failed\n"); =20 ret =3D devm_pm_runtime_enable(dev); if (ret) return ret; =20 ret =3D devm_iio_device_register(dev, indio_dev); - if (ret) { - dev_err(&client->dev, "device register failed\n"); - return ret; - } + if (ret) + return dev_err_probe(dev, ret, "device register failed\n"); =20 /* * The device comes online in 500us, so add two orders of magnitude --=20 2.47.3 From nobody Sat Jun 13 02:56:18 2026 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 DB4D9372695; Mon, 11 May 2026 11:26:19 +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=1778498779; cv=none; b=PXLQo6zbCzltkQDvuIT1lS/Kyb6N8pz9tD/zO1Npxzvvi1WJVb2OzOwuYrBlDFGtwKhRdTTcIHL4Hs5jvGgXtmfMdx38YgkpXug2f/5KT36hgCaEsVH0gqAFOLlYLBcIl9XlDKyW9przGky/hR6s02KV3p89tIsFD7T/Ww0sOb0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778498779; c=relaxed/simple; bh=jHOmNy9QRgGeGRnT67TIWVJvaSpnz6JAxKIHNwnXbcY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LIWfDz8i2gHXUk+Vs+Hs8paybxTphJSN1uhQME3gSlW+pUGCiDBYLObcn1QPkr1uZx3WHBCARbXRuT5sq01s2BdM0jWBlBuvr2UrPT2tU+BjfnGhaNqALFEHNf6dmPAqJFBS/Eid6KZ+uu9+23vuT4RT9q5kQ7yBJufM+8TEpbE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=fuXxoweu; 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="fuXxoweu" Received: by smtp.kernel.org (Postfix) with ESMTPS id B9FDEC4AF0C; Mon, 11 May 2026 11:26:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778498779; bh=jHOmNy9QRgGeGRnT67TIWVJvaSpnz6JAxKIHNwnXbcY=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=fuXxoweu1ZFxGiXqc51Md1YxbzKlVqAfgDV4r+B3wdG2WRgF2RSLIoM0kZ9bl2MSQ SzDJw+vV1SRQD+GjxyDEicZ0NxDDYojpHVyTwMFjnMws6d0e+CQ4DDpUTRsvWQ0JkH 6tr3n5MaTZyia0xFEKbTpTg2Y1PMOBYJlSHJ8Y/7Mgaf+G8ZbTm/90GVo9Ap8/czGq WiI9/dvjRHRWjSfWVNvDADlxwB4rkOKqsuTLbalzKhIMDgQnWMt+Vhy21Js8AJVzpP IhAInj2m8kY0RP6+jVDD4hMaILmCtZ4gP7U2NnGQQhe5wpPTG4w/W6OyPNObqAGXjA VNQFvRE7wP8/Q== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B155FCD37AC; Mon, 11 May 2026 11:26:19 +0000 (UTC) From: Joshua Crofts via B4 Relay Date: Mon, 11 May 2026 13:26:15 +0200 Subject: [PATCH v7 6/8] iio: magnetometer: ak8975: use temporary variable for struct device Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260511-magnetometer-fixes-post-pickup-v7-6-9d910faa28b6@gmail.com> References: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> In-Reply-To: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778498777; l=8291; i=joshua.crofts1@gmail.com; s=20260422; h=from:subject:message-id; bh=PY+9jDzJWWLpMYvAV7XSLzvkCn5i/WGCjKP/BAdYNTs=; b=HbGuwCU+KC1z1w1YyL6YhgLskLX2TtsyRuN4XN7tTfSk6PPOr0jlR4aJG9YRqTjSlbnRDCRFX fpYBReZkHifAdUhBjL2JOVQUhOgnES1LhB/YVbwHl1AZgnzNMmy6nwS X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=Xd+UVoRPiiI0K3LHQ2XIcXmO0jvVuFTv9eTx3lgBphI= X-Endpoint-Received: by B4 Relay for joshua.crofts1@gmail.com/20260422 with auth_id=746 X-Original-From: Joshua Crofts Reply-To: joshua.crofts1@gmail.com From: Andy Shevchenko Use temporary variable for struct device to make code neater. Signed-off-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 Signed-off-by: Joshua Crofts --- drivers/iio/magnetometer/ak8975.c | 63 +++++++++++++++++++----------------= ---- 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/a= k8975.c index 2f1442e71607873e869351c379a40dae713a1c84..2267928a136912c901e604fe938= e9a17c8cd5607 100644 --- a/drivers/iio/magnetometer/ak8975.c +++ b/drivers/iio/magnetometer/ak8975.c @@ -433,18 +433,17 @@ struct ak8975_data { /* Enable attached power regulator if any. */ static int ak8975_power_on(const struct ak8975_data *data) { + struct device *dev =3D &data->client->dev; int ret; =20 ret =3D regulator_enable(data->vdd); if (ret) { - dev_warn(&data->client->dev, - "Failed to enable specified Vdd supply\n"); + dev_warn(dev, "Failed to enable specified Vdd supply\n"); return ret; } ret =3D regulator_enable(data->vid); if (ret) { - dev_warn(&data->client->dev, - "Failed to enable specified Vid supply\n"); + dev_warn(dev, "Failed to enable specified Vid supply\n"); regulator_disable(data->vdd); return ret; } @@ -572,6 +571,7 @@ static irqreturn_t ak8975_irq_handler(int irq, void *da= ta) static int ak8975_setup_irq(struct ak8975_data *data) { struct i2c_client *client =3D data->client; + struct device *dev =3D &client->dev; int irq; int ret; =20 @@ -582,9 +582,8 @@ static int ak8975_setup_irq(struct ak8975_data *data) else irq =3D gpiod_to_irq(data->eoc_gpiod); =20 - ret =3D devm_request_irq(&client->dev, irq, ak8975_irq_handler, - IRQF_TRIGGER_RISING, - dev_name(&client->dev), data); + ret =3D devm_request_irq(dev, irq, ak8975_irq_handler, IRQF_TRIGGER_RISIN= G, + dev_name(dev), data); if (ret) return ret; =20 @@ -600,12 +599,13 @@ static int ak8975_setup_irq(struct ak8975_data *data) static int ak8975_setup(struct ak8975_data *data) { struct i2c_client *client =3D data->client; + struct device *dev =3D &client->dev; int ret; =20 /* Write the fused rom access mode. */ ret =3D ak8975_set_mode(data, FUSE_ROM); if (ret < 0) { - dev_err(&client->dev, "Error in setting fuse access mode\n"); + dev_err(dev, "Error in setting fuse access mode\n"); return ret; } =20 @@ -615,22 +615,21 @@ static int ak8975_setup(struct ak8975_data *data) sizeof(data->asa), data->asa); if (ret < 0) { - dev_err(&client->dev, "Not able to read asa data\n"); + dev_err(dev, "Not able to read asa data\n"); return ret; } =20 /* After reading fuse ROM data set power-down mode */ ret =3D ak8975_set_mode(data, POWER_DOWN); if (ret < 0) { - dev_err(&client->dev, "Error in setting power-down mode\n"); + dev_err(dev, "Error in setting power-down mode\n"); return ret; } =20 if (data->eoc_gpiod || client->irq > 0) { ret =3D ak8975_setup_irq(data); if (ret < 0) { - dev_err(&client->dev, - "Error setting data ready interrupt\n"); + dev_err(dev, "Error setting data ready interrupt\n"); return ret; } } @@ -736,10 +735,11 @@ static int ak8975_read_axis(struct iio_dev *indio_dev= , int index, int *val) struct ak8975_data *data =3D iio_priv(indio_dev); const struct i2c_client *client =3D data->client; const struct ak_def *def =3D data->def; + struct device *dev =3D &data->client->dev; __le16 rval; int ret; =20 - pm_runtime_get_sync(&data->client->dev); + pm_runtime_get_sync(dev); =20 mutex_lock(&data->lock); =20 @@ -757,20 +757,20 @@ static int ak8975_read_axis(struct iio_dev *indio_dev= , int index, int *val) /* Read out ST2 for release lock on measurement data. */ ret =3D i2c_smbus_read_byte_data(client, data->def->ctrl_regs[ST2]); if (ret < 0) { - dev_err(&client->dev, "Error in reading ST2\n"); + dev_err(dev, "Error in reading ST2\n"); goto exit; } =20 if (ret & (data->def->ctrl_masks[ST2_DERR] | data->def->ctrl_masks[ST2_HOFL])) { - dev_err(&client->dev, "ST2 status error 0x%x\n", ret); + dev_err(dev, "ST2 status error 0x%x\n", ret); ret =3D -EINVAL; goto exit; } =20 mutex_unlock(&data->lock); =20 - pm_runtime_put_autosuspend(&data->client->dev); + pm_runtime_put_autosuspend(dev); =20 /* Swap bytes and convert to valid range. */ *val =3D clamp_t(s16, le16_to_cpu(rval), -def->range, def->range); @@ -779,8 +779,8 @@ static int ak8975_read_axis(struct iio_dev *indio_dev, = int index, int *val) =20 exit: mutex_unlock(&data->lock); - pm_runtime_put_autosuspend(&data->client->dev); - dev_err(&client->dev, "Error in reading axis\n"); + pm_runtime_put_autosuspend(dev); + dev_err(dev, "Error in reading axis\n"); return ret; } =20 @@ -927,7 +927,7 @@ static int ak8975_probe(struct i2c_client *client) * We may not have a GPIO based IRQ to scan, that is fine, we will * poll if so. */ - eoc_gpiod =3D devm_gpiod_get_optional(&client->dev, NULL, GPIOD_IN); + eoc_gpiod =3D devm_gpiod_get_optional(dev, NULL, GPIOD_IN); if (IS_ERR(eoc_gpiod)) return PTR_ERR(eoc_gpiod); gpiod_set_consumer_name(eoc_gpiod, "ak_8975"); @@ -937,13 +937,12 @@ static int ak8975_probe(struct i2c_client *client) * deassert reset on ak8975_power_on() and assert reset on * ak8975_power_off(). */ - reset_gpiod =3D devm_gpiod_get_optional(&client->dev, - "reset", GPIOD_OUT_HIGH); + reset_gpiod =3D devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(reset_gpiod)) return PTR_ERR(reset_gpiod); =20 /* Register with IIO */ - indio_dev =3D devm_iio_device_alloc(&client->dev, sizeof(*data)); + indio_dev =3D devm_iio_device_alloc(dev, sizeof(*data)); if (indio_dev =3D=3D NULL) return -ENOMEM; =20 @@ -955,7 +954,7 @@ static int ak8975_probe(struct i2c_client *client) data->reset_gpiod =3D reset_gpiod; data->eoc_irq =3D 0; =20 - ret =3D iio_read_mount_matrix(&client->dev, &data->orientation); + ret =3D iio_read_mount_matrix(dev, &data->orientation); if (ret) return ret; =20 @@ -965,16 +964,16 @@ static int ak8975_probe(struct i2c_client *client) return -ENODEV; =20 /* If enumerated via firmware node, fix the ABI */ - if (dev_fwnode(&client->dev)) - name =3D dev_name(&client->dev); + if (dev_fwnode(dev)) + name =3D dev_name(dev); else name =3D id->name; =20 /* Fetch the regulators */ - data->vdd =3D devm_regulator_get(&client->dev, "vdd"); + data->vdd =3D devm_regulator_get(dev, "vdd"); if (IS_ERR(data->vdd)) return PTR_ERR(data->vdd); - data->vid =3D devm_regulator_get(&client->dev, "vid"); + data->vid =3D devm_regulator_get(dev, "vid"); if (IS_ERR(data->vid)) return PTR_ERR(data->vid); =20 @@ -996,7 +995,7 @@ static int ak8975_probe(struct i2c_client *client) ret =3D ak8975_who_i_am(data, data->def->type); if (ret) return dev_err_probe(dev, ret, "Unexpected device\n"); - dev_dbg(&client->dev, "Asahi compass chip %s\n", name); + dev_dbg(dev, "Asahi compass chip %s\n", name); =20 /* Perform some basic start-of-day setup of the device. */ ret =3D ak8975_setup(data); @@ -1031,8 +1030,8 @@ static int ak8975_probe(struct i2c_client *client) * The device comes online in 500us, so add two orders of magnitude * of delay before autosuspending: 50 ms. */ - pm_runtime_set_autosuspend_delay(&client->dev, 50); - pm_runtime_use_autosuspend(&client->dev); + pm_runtime_set_autosuspend_delay(dev, 50); + pm_runtime_use_autosuspend(dev); =20 return 0; } @@ -1047,7 +1046,7 @@ static int ak8975_runtime_suspend(struct device *dev) /* Set the device in power down if it wasn't already */ ret =3D ak8975_set_mode(data, POWER_DOWN); if (ret < 0) { - dev_err(&client->dev, "Error in setting power-down mode\n"); + dev_err(dev, "Error in setting power-down mode\n"); return ret; } /* Next cut the regulators */ @@ -1071,7 +1070,7 @@ static int ak8975_runtime_resume(struct device *dev) */ ret =3D ak8975_set_mode(data, POWER_DOWN); if (ret < 0) { - dev_err(&client->dev, "Error in setting power-down mode\n"); + dev_err(dev, "Error in setting power-down mode\n"); return ret; } =20 --=20 2.47.3 From nobody Sat Jun 13 02:56:18 2026 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 E56B8372ECD; Mon, 11 May 2026 11:26:19 +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=1778498780; cv=none; b=q+tWJ1MutOAIVFDvmhINDTJ3DhPzk2FZpY6JXdwFg5o+LRzffiWa7p1AjFy5tl17lvevt+XS99lvWQR9W9SLP8NYWbfq2V/63VODxrAy8UOOCDnxA46fXPaUEAv4QMDTwyR0epBXmcK2FBHnylhVBs2mOtnneOZWJY6Wku4usX4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778498780; c=relaxed/simple; bh=YF/xA1eULbp2hbNahc5bLSLJSQTEu+xoGtIQF4b5vtI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RHRntZmrNJ0LqP4O6/2i6ww3gwMg1OAWeGnBhpak5XUhsk7RdaNh0tRaFzmkhExwvAtX/HR2f7U5kYkrcDbRHiG/nkNl/uYiEervsLnQM6jQYJz+AZBiRjCTNwLJWXOh2zNp5cNwNpRtbyDsaKbkiTBSv42tzOcIuk5rLnnGVLA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=L3nZdPX7; 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="L3nZdPX7" Received: by smtp.kernel.org (Postfix) with ESMTPS id C8AF2C4AF0B; Mon, 11 May 2026 11:26:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778498779; bh=YF/xA1eULbp2hbNahc5bLSLJSQTEu+xoGtIQF4b5vtI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=L3nZdPX78cQgWyx8PqVPOLL+dxrLAsieuD2746z/Ca26mbGMthC+hInuJpB7KzKQr /3mNMVWe33HSi7LSPSZwAoe/HmUifdMJfTLU9jdp026VkIxuKIrmtWL+4ZEkoMLCau /TLUwGJPuT9U2A6wUt5/Cuz8CSgfaThg8HToiZW2w9SHdyka76fdqw0HwOocoFGH/I c9wGugFfJUcy4Y3eovYuU+6cPg/Pylb+BaP5szUmJ5uW22ZVKOuAhzi8cQS36x/0yh 2YZDTBO0MMSUbYF9S2NuL0oysFKmSU9SsjFuL0+SMIX64/Jp5rJyl9fQ+xx5mdRmmn Y9UcsV7Y0xNwA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C0436CD4843; Mon, 11 May 2026 11:26:19 +0000 (UTC) From: Joshua Crofts via B4 Relay Date: Mon, 11 May 2026 13:26:16 +0200 Subject: [PATCH v7 7/8] iio: magnetometer: ak8975: add scan mask index enum Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260511-magnetometer-fixes-post-pickup-v7-7-9d910faa28b6@gmail.com> References: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> In-Reply-To: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778498777; l=1586; i=joshua.crofts1@gmail.com; s=20260422; h=from:subject:message-id; bh=ewbNSwOSC0k1f6ppPGABML5drGHyj3QXLXQNhui/6vk=; b=8vRWaFESnkMXRugrjFcALRwt5DYWjflVQqOWqkP3zlfVHojRl/4mj4qu4CU15TZTnIUh853Dn IefvZdhaYtGBZhYl6E7bDrL7VahKKYhZLtmu3SIX/Ei7qyATogaIFKe X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=Xd+UVoRPiiI0K3LHQ2XIcXmO0jvVuFTv9eTx3lgBphI= X-Endpoint-Received: by B4 Relay for joshua.crofts1@gmail.com/20260422 with auth_id=746 X-Original-From: Joshua Crofts Reply-To: joshua.crofts1@gmail.com From: Joshua Crofts Add an enum to explicitly define scan mask indexes for the X, Y, Z and timestamp channels. Also, update the struct iio_chan_spec to use said enum for the .scan_index parameter. This prevents magic numbers from obscuring the hardware channel mapping and improves code style. No functional change. Suggested-by: Jonathan Cameron Reviewed-by: Nuno S=C3=A1 Signed-off-by: Joshua Crofts --- drivers/iio/magnetometer/ak8975.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/a= k8975.c index 2267928a136912c901e604fe938e9a17c8cd5607..d87a98090c991508ac835839286= da0371d689cd8 100644 --- a/drivers/iio/magnetometer/ak8975.c +++ b/drivers/iio/magnetometer/ak8975.c @@ -238,6 +238,13 @@ enum ak_ctrl_mode { MODE_END, }; =20 +enum ak_scan_index { + AK8975_SCAN_X, + AK8975_SCAN_Y, + AK8975_SCAN_Z, + AK8975_SCAN_TS, +}; + struct ak_def { enum asahi_compass_chipset type; long (*raw_to_gauss)(u16 data); @@ -835,8 +842,10 @@ static const struct iio_chan_spec_ext_info ak8975_ext_= info[] =3D { } =20 static const struct iio_chan_spec ak8975_channels[] =3D { - AK8975_CHANNEL(X, 0), AK8975_CHANNEL(Y, 1), AK8975_CHANNEL(Z, 2), - IIO_CHAN_SOFT_TIMESTAMP(3), + AK8975_CHANNEL(X, AK8975_SCAN_X), + AK8975_CHANNEL(Y, AK8975_SCAN_Y), + AK8975_CHANNEL(Z, AK8975_SCAN_Z), + IIO_CHAN_SOFT_TIMESTAMP(AK8975_SCAN_TS), }; =20 static const unsigned long ak8975_scan_masks[] =3D { 0x7, 0 }; --=20 2.47.3 From nobody Sat Jun 13 02:56:18 2026 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 F30C0372ECF; Mon, 11 May 2026 11:26:19 +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=1778498780; cv=none; b=U+TksjiOFEQitFZlsXGsRsY3Yq+f3B8dQlzMjQoACE9ZhLJf7qaq/trbSaLhaYrkD+P6B75DXrpAMv9JN3p08Ore8mOTHtzbmhdTaTFpCzNWxMDQ9oOKC3zecRQkfZn+bRVZ08ukGa4S+O/BNG6scHlg84B7H4yjrTzJ/Hk9vdc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778498780; c=relaxed/simple; bh=JMPHUtGRLp4XYT3qoYRr7853oC/XlIRIvjLWhcOanPA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=E/rG97hkkX5fiNqHHP1B/X3E38Mg9o2yx6BeUeYMIp8mnFptE2rj7sL3alsf81+WJ+llM+trS2m+W6mQ6s6EnJcOpkUTukKnI9RqwtrUzjkWJqzV0gXJ4VEWA2necwPlyPangtmvjl0QIA1JI4lw2/uNfU0vXyjA4OhuvDGgUgg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=m3DkDLPi; 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="m3DkDLPi" Received: by smtp.kernel.org (Postfix) with ESMTPS id D6E7BC2BCB0; Mon, 11 May 2026 11:26:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1778498779; bh=JMPHUtGRLp4XYT3qoYRr7853oC/XlIRIvjLWhcOanPA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=m3DkDLPih3/KujpML9+JMToMg0xOZx2MZsFvbWNnnED+bVdWSntIXNc9X4D74lwq4 kv8alp6+OC4eRsf3s+g7EFCDLuFYgWD4HCNK9+BU/frKwa791TldDkGklh7X2gbhNL 1VmsqJSv/JxLSvDBd3bN0YJhrLyRd2RQf172yyuYty8QAYiWPOlS6iOGR7IWVOsWZS XFSFenmJlkBusvoBJl5HsSHk9f6XyIGJ4wv19bNLTL+GD/pwcQZB9E7CS32SUf6wsL jE3FZ6IAEhj3UbxhjsJEC/fQpftrJ1nmMJ8e7mSDimfBNKu7zjwqKOOyNt9+ovPbod WbutgMlOKxhpg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id CFDD5CD37B9; Mon, 11 May 2026 11:26:19 +0000 (UTC) From: Joshua Crofts via B4 Relay Date: Mon, 11 May 2026 13:26:17 +0200 Subject: [PATCH v7 8/8] iio: magnetometer: ak8975: make use of the macros from bits.h Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260511-magnetometer-fixes-post-pickup-v7-8-9d910faa28b6@gmail.com> References: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> In-Reply-To: <20260511-magnetometer-fixes-post-pickup-v7-0-9d910faa28b6@gmail.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko Cc: linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Joshua Crofts , Andy Shevchenko X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1778498777; l=3070; i=joshua.crofts1@gmail.com; s=20260422; h=from:subject:message-id; bh=raM4Osn4NOSANS9V3gWU6boxJNZiWShxAROFiRWtIAY=; b=TP0D4CypFbMuyzjysRkUKOG9vatbV58hCmoS0rYS/KDF5K6851oG/XMMb2uT5UulpQlwTpKFg UXP04o0RjTIDNnmBF/HBrDf9Nx0GSe2GS8rY+9PB23LgdtKxiAfIAiw X-Developer-Key: i=joshua.crofts1@gmail.com; a=ed25519; pk=Xd+UVoRPiiI0K3LHQ2XIcXmO0jvVuFTv9eTx3lgBphI= X-Endpoint-Received: by B4 Relay for joshua.crofts1@gmail.com/20260422 with auth_id=746 X-Original-From: Joshua Crofts Reply-To: joshua.crofts1@gmail.com From: Andy Shevchenko Make use of BIT() and GENMASK() where it makes sense. Signed-off-by: Andy Shevchenko Reviewed-by: Nuno S=C3=A1 Co-developed-by: Joshua Crofts Signed-off-by: Joshua Crofts --- drivers/iio/magnetometer/ak8975.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/a= k8975.c index d87a98090c991508ac835839286da0371d689cd8..d8fbdc5debc1cc65ea6e86167a7= 9c860d019cc32 100644 --- a/drivers/iio/magnetometer/ak8975.c +++ b/drivers/iio/magnetometer/ak8975.c @@ -45,8 +45,7 @@ #define AK8975_REG_INFO 0x01 =20 #define AK8975_REG_ST1 0x02 -#define AK8975_REG_ST1_DRDY_SHIFT 0 -#define AK8975_REG_ST1_DRDY_MASK (1 << AK8975_REG_ST1_DRDY_SHIFT) +#define AK8975_REG_ST1_DRDY_MASK BIT(0) =20 #define AK8975_REG_HXL 0x03 #define AK8975_REG_HXH 0x04 @@ -55,15 +54,12 @@ #define AK8975_REG_HZL 0x07 #define AK8975_REG_HZH 0x08 #define AK8975_REG_ST2 0x09 -#define AK8975_REG_ST2_DERR_SHIFT 2 -#define AK8975_REG_ST2_DERR_MASK (1 << AK8975_REG_ST2_DERR_SHIFT) +#define AK8975_REG_ST2_DERR_MASK BIT(2) =20 -#define AK8975_REG_ST2_HOFL_SHIFT 3 -#define AK8975_REG_ST2_HOFL_MASK (1 << AK8975_REG_ST2_HOFL_SHIFT) +#define AK8975_REG_ST2_HOFL_MASK BIT(3) =20 #define AK8975_REG_CNTL 0x0A -#define AK8975_REG_CNTL_MODE_SHIFT 0 -#define AK8975_REG_CNTL_MODE_MASK (0xF << AK8975_REG_CNTL_MODE_SHIFT) +#define AK8975_REG_CNTL_MODE_MASK GENMASK(3, 0) #define AK8975_REG_CNTL_MODE_POWER_DOWN 0x00 #define AK8975_REG_CNTL_MODE_ONCE 0x01 #define AK8975_REG_CNTL_MODE_SELF_TEST 0x08 @@ -95,8 +91,7 @@ =20 #define AK09912_REG_ST1 0x10 =20 -#define AK09912_REG_ST1_DRDY_SHIFT 0 -#define AK09912_REG_ST1_DRDY_MASK (1 << AK09912_REG_ST1_DRDY_SHIFT) +#define AK09912_REG_ST1_DRDY_MASK BIT(0) =20 #define AK09912_REG_HXL 0x11 #define AK09912_REG_HXH 0x12 @@ -107,8 +102,7 @@ #define AK09912_REG_TMPS 0x17 =20 #define AK09912_REG_ST2 0x18 -#define AK09912_REG_ST2_HOFL_SHIFT 3 -#define AK09912_REG_ST2_HOFL_MASK (1 << AK09912_REG_ST2_HOFL_SHIFT) +#define AK09912_REG_ST2_HOFL_MASK BIT(3) =20 #define AK09912_REG_CNTL1 0x30 =20 @@ -117,8 +111,7 @@ #define AK09912_REG_CNTL_MODE_ONCE 0x01 #define AK09912_REG_CNTL_MODE_SELF_TEST 0x10 #define AK09912_REG_CNTL_MODE_FUSE_ROM 0x1F -#define AK09912_REG_CNTL2_MODE_SHIFT 0 -#define AK09912_REG_CNTL2_MODE_MASK (0x1F << AK09912_REG_CNTL2_MODE_SHIFT) +#define AK09912_REG_CNTL2_MODE_MASK GENMASK(4, 0) =20 #define AK09912_REG_CNTL3 0x32 =20 @@ -848,7 +841,10 @@ static const struct iio_chan_spec ak8975_channels[] = =3D { IIO_CHAN_SOFT_TIMESTAMP(AK8975_SCAN_TS), }; =20 -static const unsigned long ak8975_scan_masks[] =3D { 0x7, 0 }; +static const unsigned long ak8975_scan_masks[] =3D { + BIT(AK8975_SCAN_X) | BIT(AK8975_SCAN_Y) | BIT(AK8975_SCAN_Z), + 0 +}; =20 static const struct iio_info ak8975_info =3D { .read_raw =3D &ak8975_read_raw, --=20 2.47.3