Re: [PATCH v5 6/7] iio: light: al3320a implement devm_add_action_or_reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 15 Feb 2020 20:42:59 +0100
David Heidelberg <david@xxxxxxx> wrote:

> Thank you for fixes, it does look good.
> Only thing is fixes which should go into commit "iio: light: al3320a 
> implement suspend support"[1] when into "iio: light: al3320a implement 
> devm_add_action_or_reset" [2].
> 
> + return i2c_smbus_write_byte_data(client, AL3320A_REG_CONFIG, val);
> 
> and
> 
> +static SIMPLE_DEV_PM_OPS(al3320a_pm_ops, al3320a_suspend, 
> al3320a_resume);
> 
> 
> Thank you very much for merging and next time
> I'll spend more time with review and doing final build test.
Gah. I messed that up.  Anyhow, now fixed and pushed out with changes
in the right patch.

Thanks,

Jonathan

> 
> David
> 
> [1] 
> https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git/commit/?h=testing&id=d74856400b2dcb2e0eab2132c779408809566431
> [2] 
> https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git/commit/?h=testing&id=4b1b42bcd993258628fabc5e35f20a202b1e9f7b
> 
> 
> On Sat, Feb 15, 2020 at 18:38, Jonathan Cameron <jic23@xxxxxxxxxx> 
> wrote:
> > On Tue, 11 Feb 2020 20:12:00 +0100
> > David Heidelberg <david@xxxxxxx> wrote:
> >   
> >>  Use devm_add_action_or_reset to automatically disable the device
> >>  and allow you to get rid of the remove function entirely.
> >> 
> >>  Signed-off-by: David Heidelberg <david@xxxxxxx>  
> > 
> > This doesn't build as is.  I've fixed up but please take a close
> > look at the result.
> >   
> >>  ---
> >>   drivers/iio/light/al3320a.c | 20 ++++++++++++++------
> >>   1 file changed, 14 insertions(+), 6 deletions(-)
> >> 
> >>  diff --git a/drivers/iio/light/al3320a.c 
> >> b/drivers/iio/light/al3320a.c
> >>  index affa4c6c199a..49e73e24fff6 100644
> >>  --- a/drivers/iio/light/al3320a.c
> >>  +++ b/drivers/iio/light/al3320a.c
> >>  @@ -87,6 +87,13 @@ static int al3320a_set_pwr(struct i2c_client 
> >> *client, bool pwr)
> >>   	return i2c_smbus_write_byte_data(data->client, 
> >> AL3320A_REG_CONFIG, val);
> >>   }
> >> 
> >>  +static void al3320a_set_pwr_off(void *_data)
> >>  +{
> >>  +	struct al3320a_data *data = _data;
> >>  +
> >>  +	al3320a_set_pwr(data->client, false);
> >>  +}
> >>  +
> >>   static int al3320a_init(struct al3320a_data *data)
> >>   {
> >>   	int ret;
> >>  @@ -206,12 +213,14 @@ static int al3320a_probe(struct i2c_client 
> >> *client,
> >>   		dev_err(&client->dev, "al3320a chip init failed\n");
> >>   		return ret;
> >>   	}
> >>  -	return devm_iio_device_register(&client->dev, indio_dev);
> >>  -}
> >> 
> >>  -static int al3320a_remove(struct i2c_client *client)
> >>  -{
> >>  -	return al3320a_set_pwr(client, false);
> >>  +	ret = devm_add_action_or_reset(&client->dev,
> >>  +					al3320a_set_pwr_off,
> >>  +					data);
> >>  +	if (ret < 0)
> >>  +		return ret;
> >>  +
> >>  +	return devm_iio_device_register(&client->dev, indio_dev);
> >>   }
> >> 
> >>   static int __maybe_unused al3320a_suspend(struct device *dev)
> >>  @@ -238,7 +247,6 @@ static struct i2c_driver al3320a_driver = {
> >>   		.pm = &al3320a_pm_ops,
> >>   	},
> >>   	.probe		= al3320a_probe,
> >>  -	.remove		= al3320a_remove,
> >>   	.id_table	= al3320a_id,
> >>   };
> >>   
> >   
> 
> 




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux