2020-02-27 14:44:36

by Alexandru Ardelean

[permalink] [raw]
Subject: [PATCH 1/8] iio: core: drop devm_iio_device_unregister() API call

It's unused so far, so it can't be removed. Also makes sense to remove it
to discourage weird uses of this call during review.

Signed-off-by: Alexandru Ardelean <[email protected]>
---
.../driver-api/driver-model/devres.rst | 1 -
drivers/iio/industrialio-core.c | 17 -----------------
include/linux/iio/iio.h | 4 ----
3 files changed, 22 deletions(-)

diff --git a/Documentation/driver-api/driver-model/devres.rst b/Documentation/driver-api/driver-model/devres.rst
index 46c13780994c..0580c64ebdfd 100644
--- a/Documentation/driver-api/driver-model/devres.rst
+++ b/Documentation/driver-api/driver-model/devres.rst
@@ -286,7 +286,6 @@ IIO
devm_iio_device_alloc()
devm_iio_device_free()
devm_iio_device_register()
- devm_iio_device_unregister()
devm_iio_kfifo_allocate()
devm_iio_kfifo_free()
devm_iio_triggered_buffer_setup()
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 0b14666dff09..e4011f8431f9 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -1823,23 +1823,6 @@ int __devm_iio_device_register(struct device *dev, struct iio_dev *indio_dev,
}
EXPORT_SYMBOL_GPL(__devm_iio_device_register);

-/**
- * devm_iio_device_unregister - Resource-managed iio_device_unregister()
- * @dev: Device this iio_dev belongs to
- * @indio_dev: the iio_dev associated with the device
- *
- * Unregister iio_dev registered with devm_iio_device_register().
- */
-void devm_iio_device_unregister(struct device *dev, struct iio_dev *indio_dev)
-{
- int rc;
-
- rc = devres_release(dev, devm_iio_device_unreg,
- devm_iio_device_match, indio_dev);
- WARN_ON(rc);
-}
-EXPORT_SYMBOL_GPL(devm_iio_device_unregister);
-
/**
* iio_device_claim_direct_mode - Keep device in direct mode
* @indio_dev: the iio_dev associated with the device
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
index 862ce0019eba..0eb9e8d7ec68 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -591,9 +591,6 @@ void iio_device_unregister(struct iio_dev *indio_dev);
* calls iio_device_register() internally. Refer to that function for more
* information.
*
- * If an iio_dev registered with this function needs to be unregistered
- * separately, devm_iio_device_unregister() must be used.
- *
* RETURNS:
* 0 on success, negative error number on failure.
*/
@@ -601,7 +598,6 @@ void iio_device_unregister(struct iio_dev *indio_dev);
__devm_iio_device_register((dev), (indio_dev), THIS_MODULE);
int __devm_iio_device_register(struct device *dev, struct iio_dev *indio_dev,
struct module *this_mod);
-void devm_iio_device_unregister(struct device *dev, struct iio_dev *indio_dev);
int iio_push_event(struct iio_dev *indio_dev, u64 ev_code, s64 timestamp);
int iio_device_claim_direct_mode(struct iio_dev *indio_dev);
void iio_device_release_direct_mode(struct iio_dev *indio_dev);
--
2.20.1


2020-03-16 09:09:57

by Alexandru Ardelean

[permalink] [raw]
Subject: Re: [PATCH 1/8] iio: core: drop devm_iio_device_unregister() API call

On Thu, 2020-02-27 at 15:52 +0200, Alexandru Ardelean wrote:
> It's unused so far, so it can't be removed. Also makes sense to remove it
> to discourage weird uses of this call during review.

Any thoughts on this?
I suspect that this may be one of those "I'd like to sit on this for a while"
patchsets?
Which is fine.
But I'm also wondering if this got omitted.

Thanks
Alex

>
> Signed-off-by: Alexandru Ardelean <[email protected]>
> ---
> .../driver-api/driver-model/devres.rst | 1 -
> drivers/iio/industrialio-core.c | 17 -----------------
> include/linux/iio/iio.h | 4 ----
> 3 files changed, 22 deletions(-)
>
> diff --git a/Documentation/driver-api/driver-model/devres.rst
> b/Documentation/driver-api/driver-model/devres.rst
> index 46c13780994c..0580c64ebdfd 100644
> --- a/Documentation/driver-api/driver-model/devres.rst
> +++ b/Documentation/driver-api/driver-model/devres.rst
> @@ -286,7 +286,6 @@ IIO
> devm_iio_device_alloc()
> devm_iio_device_free()
> devm_iio_device_register()
> - devm_iio_device_unregister()
> devm_iio_kfifo_allocate()
> devm_iio_kfifo_free()
> devm_iio_triggered_buffer_setup()
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 0b14666dff09..e4011f8431f9 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -1823,23 +1823,6 @@ int __devm_iio_device_register(struct device *dev,
> struct iio_dev *indio_dev,
> }
> EXPORT_SYMBOL_GPL(__devm_iio_device_register);
>
> -/**
> - * devm_iio_device_unregister - Resource-managed iio_device_unregister()
> - * @dev: Device this iio_dev belongs to
> - * @indio_dev: the iio_dev associated with the device
> - *
> - * Unregister iio_dev registered with devm_iio_device_register().
> - */
> -void devm_iio_device_unregister(struct device *dev, struct iio_dev
> *indio_dev)
> -{
> - int rc;
> -
> - rc = devres_release(dev, devm_iio_device_unreg,
> - devm_iio_device_match, indio_dev);
> - WARN_ON(rc);
> -}
> -EXPORT_SYMBOL_GPL(devm_iio_device_unregister);
> -
> /**
> * iio_device_claim_direct_mode - Keep device in direct mode
> * @indio_dev: the iio_dev associated with the device
> diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
> index 862ce0019eba..0eb9e8d7ec68 100644
> --- a/include/linux/iio/iio.h
> +++ b/include/linux/iio/iio.h
> @@ -591,9 +591,6 @@ void iio_device_unregister(struct iio_dev *indio_dev);
> * calls iio_device_register() internally. Refer to that function for more
> * information.
> *
> - * If an iio_dev registered with this function needs to be unregistered
> - * separately, devm_iio_device_unregister() must be used.
> - *
> * RETURNS:
> * 0 on success, negative error number on failure.
> */
> @@ -601,7 +598,6 @@ void iio_device_unregister(struct iio_dev *indio_dev);
> __devm_iio_device_register((dev), (indio_dev), THIS_MODULE);
> int __devm_iio_device_register(struct device *dev, struct iio_dev *indio_dev,
> struct module *this_mod);
> -void devm_iio_device_unregister(struct device *dev, struct iio_dev
> *indio_dev);
> int iio_push_event(struct iio_dev *indio_dev, u64 ev_code, s64 timestamp);
> int iio_device_claim_direct_mode(struct iio_dev *indio_dev);
> void iio_device_release_direct_mode(struct iio_dev *indio_dev);

2020-03-16 11:46:01

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH 1/8] iio: core: drop devm_iio_device_unregister() API call

On Mon, 16 Mar 2020 09:09:08 +0000
"Ardelean, Alexandru" <[email protected]> wrote:

> On Thu, 2020-02-27 at 15:52 +0200, Alexandru Ardelean wrote:
> > It's unused so far, so it can't be removed. Also makes sense to remove it
> > to discourage weird uses of this call during review.
>
> Any thoughts on this?
> I suspect that this may be one of those "I'd like to sit on this for a while"
> patchsets?
> Which is fine.

Got it in one. It's both extremely simple and extremely likely to break
someones out of tree driver. I guessing all the ADI ones are fine though :)

> But I'm also wondering if this got omitted.

Wise to check, it wouldn't be the first time I'd lost a whole
series.

Thanks,

Jonathan



>
> Thanks
> Alex
>
> >
> > Signed-off-by: Alexandru Ardelean <[email protected]>
> > ---
> > .../driver-api/driver-model/devres.rst | 1 -
> > drivers/iio/industrialio-core.c | 17 -----------------
> > include/linux/iio/iio.h | 4 ----
> > 3 files changed, 22 deletions(-)
> >
> > diff --git a/Documentation/driver-api/driver-model/devres.rst
> > b/Documentation/driver-api/driver-model/devres.rst
> > index 46c13780994c..0580c64ebdfd 100644
> > --- a/Documentation/driver-api/driver-model/devres.rst
> > +++ b/Documentation/driver-api/driver-model/devres.rst
> > @@ -286,7 +286,6 @@ IIO
> > devm_iio_device_alloc()
> > devm_iio_device_free()
> > devm_iio_device_register()
> > - devm_iio_device_unregister()
> > devm_iio_kfifo_allocate()
> > devm_iio_kfifo_free()
> > devm_iio_triggered_buffer_setup()
> > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> > index 0b14666dff09..e4011f8431f9 100644
> > --- a/drivers/iio/industrialio-core.c
> > +++ b/drivers/iio/industrialio-core.c
> > @@ -1823,23 +1823,6 @@ int __devm_iio_device_register(struct device *dev,
> > struct iio_dev *indio_dev,
> > }
> > EXPORT_SYMBOL_GPL(__devm_iio_device_register);
> >
> > -/**
> > - * devm_iio_device_unregister - Resource-managed iio_device_unregister()
> > - * @dev: Device this iio_dev belongs to
> > - * @indio_dev: the iio_dev associated with the device
> > - *
> > - * Unregister iio_dev registered with devm_iio_device_register().
> > - */
> > -void devm_iio_device_unregister(struct device *dev, struct iio_dev
> > *indio_dev)
> > -{
> > - int rc;
> > -
> > - rc = devres_release(dev, devm_iio_device_unreg,
> > - devm_iio_device_match, indio_dev);
> > - WARN_ON(rc);
> > -}
> > -EXPORT_SYMBOL_GPL(devm_iio_device_unregister);
> > -
> > /**
> > * iio_device_claim_direct_mode - Keep device in direct mode
> > * @indio_dev: the iio_dev associated with the device
> > diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
> > index 862ce0019eba..0eb9e8d7ec68 100644
> > --- a/include/linux/iio/iio.h
> > +++ b/include/linux/iio/iio.h
> > @@ -591,9 +591,6 @@ void iio_device_unregister(struct iio_dev *indio_dev);
> > * calls iio_device_register() internally. Refer to that function for more
> > * information.
> > *
> > - * If an iio_dev registered with this function needs to be unregistered
> > - * separately, devm_iio_device_unregister() must be used.
> > - *
> > * RETURNS:
> > * 0 on success, negative error number on failure.
> > */
> > @@ -601,7 +598,6 @@ void iio_device_unregister(struct iio_dev *indio_dev);
> > __devm_iio_device_register((dev), (indio_dev), THIS_MODULE);
> > int __devm_iio_device_register(struct device *dev, struct iio_dev *indio_dev,
> > struct module *this_mod);
> > -void devm_iio_device_unregister(struct device *dev, struct iio_dev
> > *indio_dev);
> > int iio_push_event(struct iio_dev *indio_dev, u64 ev_code, s64 timestamp);
> > int iio_device_claim_direct_mode(struct iio_dev *indio_dev);
> > void iio_device_release_direct_mode(struct iio_dev *indio_dev);


2020-04-12 11:59:00

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH 1/8] iio: core: drop devm_iio_device_unregister() API call

On Thu, 27 Feb 2020 15:52:20 +0200
Alexandru Ardelean <[email protected]> wrote:

> It's unused so far, so it can't be removed. Also makes sense to remove it
> to discourage weird uses of this call during review.
>
> Signed-off-by: Alexandru Ardelean <[email protected]>
Time to pick these up I think. They've sat here a while and no
one has commented + I can't think of any disadvantages.

Hence,

Applied to the togreg branch of iio.git and pushed out as testing for
the autobuilders to play with them.

Thanks,

Jonathan

> ---
> .../driver-api/driver-model/devres.rst | 1 -
> drivers/iio/industrialio-core.c | 17 -----------------
> include/linux/iio/iio.h | 4 ----
> 3 files changed, 22 deletions(-)
>
> diff --git a/Documentation/driver-api/driver-model/devres.rst b/Documentation/driver-api/driver-model/devres.rst
> index 46c13780994c..0580c64ebdfd 100644
> --- a/Documentation/driver-api/driver-model/devres.rst
> +++ b/Documentation/driver-api/driver-model/devres.rst
> @@ -286,7 +286,6 @@ IIO
> devm_iio_device_alloc()
> devm_iio_device_free()
> devm_iio_device_register()
> - devm_iio_device_unregister()
> devm_iio_kfifo_allocate()
> devm_iio_kfifo_free()
> devm_iio_triggered_buffer_setup()
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 0b14666dff09..e4011f8431f9 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -1823,23 +1823,6 @@ int __devm_iio_device_register(struct device *dev, struct iio_dev *indio_dev,
> }
> EXPORT_SYMBOL_GPL(__devm_iio_device_register);
>
> -/**
> - * devm_iio_device_unregister - Resource-managed iio_device_unregister()
> - * @dev: Device this iio_dev belongs to
> - * @indio_dev: the iio_dev associated with the device
> - *
> - * Unregister iio_dev registered with devm_iio_device_register().
> - */
> -void devm_iio_device_unregister(struct device *dev, struct iio_dev *indio_dev)
> -{
> - int rc;
> -
> - rc = devres_release(dev, devm_iio_device_unreg,
> - devm_iio_device_match, indio_dev);
> - WARN_ON(rc);
> -}
> -EXPORT_SYMBOL_GPL(devm_iio_device_unregister);
> -
> /**
> * iio_device_claim_direct_mode - Keep device in direct mode
> * @indio_dev: the iio_dev associated with the device
> diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
> index 862ce0019eba..0eb9e8d7ec68 100644
> --- a/include/linux/iio/iio.h
> +++ b/include/linux/iio/iio.h
> @@ -591,9 +591,6 @@ void iio_device_unregister(struct iio_dev *indio_dev);
> * calls iio_device_register() internally. Refer to that function for more
> * information.
> *
> - * If an iio_dev registered with this function needs to be unregistered
> - * separately, devm_iio_device_unregister() must be used.
> - *
> * RETURNS:
> * 0 on success, negative error number on failure.
> */
> @@ -601,7 +598,6 @@ void iio_device_unregister(struct iio_dev *indio_dev);
> __devm_iio_device_register((dev), (indio_dev), THIS_MODULE);
> int __devm_iio_device_register(struct device *dev, struct iio_dev *indio_dev,
> struct module *this_mod);
> -void devm_iio_device_unregister(struct device *dev, struct iio_dev *indio_dev);
> int iio_push_event(struct iio_dev *indio_dev, u64 ev_code, s64 timestamp);
> int iio_device_claim_direct_mode(struct iio_dev *indio_dev);
> void iio_device_release_direct_mode(struct iio_dev *indio_dev);