Re: [PATCH v9 3/5] iio: magnetometer: ak8975: use temporary variable for struct device

From: Jonathan Cameron

Date: Thu Sep 24 2026 - 22:28:58 EST


On Fri, 25 Sep 2026 03:21:12 +0100
Jonathan Cameron <jic23@xxxxxxxxxx> wrote:

> On Sun, 20 Sep 2026 20:05:25 +0200
> Joshua Crofts <joshua.crofts1@xxxxxxxxx> wrote:
>
> > From: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> >
> > Use temporary variable for struct device to make code neater.
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> > Reviewed-by: Nuno Sá <nuno.sa@xxxxxxxxxx>
> > Signed-off-by: Joshua Crofts <joshua.crofts1@xxxxxxxxx>
> A couple of places in here where I'd also switch to dev_err_probe().
>
> Jonathan
diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
index 66f105d8e42d..0e0eba116d52 100644
--- a/drivers/iio/magnetometer/ak8975.c
+++ b/drivers/iio/magnetometer/ak8975.c
@@ -613,38 +613,28 @@ static int ak8975_setup(struct ak8975_data *data)

/* Write the fused rom access mode. */
ret = ak8975_set_mode(data, FUSE_ROM);
- if (ret < 0) {
- dev_err(dev, "Error in setting fuse access mode\n");
- return ret;
- }
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "Error in setting fuse access mode\n");

/* Get asa data and store in the device data. */
ret = i2c_smbus_read_i2c_block_data_or_emulated(client,
data->def->ctrl_regs[ASA_BASE],
sizeof(data->asa),
data->asa);
- if (ret < 0) {
- dev_err(dev, "Not able to read asa data\n");
- return ret;
- }
- if (ret != sizeof(data->asa)) {
- dev_err(dev, "Error reading asa data\n");
- return -EIO;
- }
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "Not able to read asa data\n");
+ if (ret != sizeof(data->asa))
+ return dev_err_probe(dev, ret, "Error reading asa data\n");

/* After reading fuse ROM data set power-down mode */
ret = ak8975_set_mode(data, POWER_DOWN);
- if (ret < 0) {
- dev_err(dev, "Error in setting power-down mode\n");
- return ret;
- }
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "Error in setting power-down mode\n");

if (data->eoc_gpiod || client->irq > 0) {
ret = ak8975_setup_irq(data);
- if (ret < 0) {
- dev_err(dev, "Error setting data ready interrupt\n");
- return ret;
- }
+ if (ret < 0)
+ return dev_err_probe(dev, ret, "Error setting data ready interrupt\n");
}

data->raw_to_gauss[0] = data->def->raw_to_gauss(data->asa[0]);
>
> > ---
> > drivers/iio/magnetometer/ak8975.c | 65 +++++++++++++++++++--------------------
> > 1 file changed, 32 insertions(+), 33 deletions(-)
> >
> > diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
> > index 59a7bb83a731..42f6892f4efd 100644
> > --- a/drivers/iio/magnetometer/ak8975.c
> > +++ b/drivers/iio/magnetometer/ak8975.c
>
> > @@ -580,6 +579,7 @@ static irqreturn_t ak8975_irq_handler(int irq, void *data)
> > static int ak8975_setup_irq(struct ak8975_data *data)
> > {
> > struct i2c_client *client = data->client;
> > + struct device *dev = &client->dev;
> > int irq;
> > int ret;
> >
> > @@ -590,9 +590,8 @@ static int ak8975_setup_irq(struct ak8975_data *data)
> > else
> > irq = gpiod_to_irq(data->eoc_gpiod);
> >
> > - ret = devm_request_irq(&client->dev, irq, ak8975_irq_handler,
> > - IRQF_TRIGGER_RISING,
> > - dev_name(&client->dev), data);
> > + ret = devm_request_irq(dev, irq, ak8975_irq_handler, IRQF_TRIGGER_RISING,
> > + dev_name(dev), data);
> > if (ret)
> > return ret;
> >
> > @@ -608,12 +607,13 @@ static int ak8975_setup_irq(struct ak8975_data *data)
> > static int ak8975_setup(struct ak8975_data *data)
> > {
> > struct i2c_client *client = data->client;
> > + struct device *dev = &client->dev;
> > int ret;
> >
> > /* Write the fused rom access mode. */
> > ret = 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;
> > }
> >
> > @@ -623,26 +623,25 @@ 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");
>
> _setup is only called from probe, so the prints in here can all
> be return dev_err_probe();
>
> > + dev_err(dev, "Not able to read asa data\n");
> > return ret;
> > }
> > if (ret != sizeof(data->asa)) {
> > - dev_err(&client->dev, "Error reading asa data\n");
> > + dev_err(dev, "Error reading asa data\n");
> > return -EIO;
> > }
> >
> > /* After reading fuse ROM data set power-down mode */
> > ret = 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;
> > }
> >
> > if (data->eoc_gpiod || client->irq > 0) {
> > ret = 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;
> > }
> > }
>
>
>