[v3,07/12] iio: inkern: Use max_array() to get the maximum value from an array

Message ID 20230612122926.107333-8-herve.codina@bootlin.com
State New
Headers
Series Add support for IIO devices in ASoC |

Commit Message

Herve Codina June 12, 2023, 12:29 p.m. UTC
  Use max_array() to get the maximum value from an array instead of a
custom local loop.

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
---
 drivers/iio/inkern.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
  

Comments

Andy Shevchenko June 12, 2023, 2:12 p.m. UTC | #1
On Mon, Jun 12, 2023 at 3:30 PM Herve Codina <herve.codina@bootlin.com> wrote:
>
> Use max_array() to get the maximum value from an array instead of a
> custom local loop.

Looks really good, thank you!
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

> Signed-off-by: Herve Codina <herve.codina@bootlin.com>
> ---
>  drivers/iio/inkern.c | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c
> index ce537b4ca6ca..ae1a41d3a559 100644
> --- a/drivers/iio/inkern.c
> +++ b/drivers/iio/inkern.c
> @@ -8,6 +8,7 @@
>  #include <linux/property.h>
>  #include <linux/slab.h>
>  #include <linux/mutex.h>
> +#include <linux/minmax.h>
>
>  #include <linux/iio/iio.h>
>  #include <linux/iio/iio-opaque.h>
> @@ -875,11 +876,7 @@ static int iio_channel_read_max(struct iio_channel *chan,
>                         return -EINVAL;
>                 switch (*type) {
>                 case IIO_VAL_INT:
> -                       *val = vals[--length];
> -                       while (length) {
> -                               if (vals[--length] > *val)
> -                                       *val = vals[length];
> -                       }
> +                       *val = max_array(vals, length);
>                         break;
>                 default:
>                         /* FIXME: learn about max for other iio values */
> --
> 2.40.1
>
  
Andy Shevchenko June 12, 2023, 2:13 p.m. UTC | #2
On Mon, Jun 12, 2023 at 5:12 PM Andy Shevchenko
<andy.shevchenko@gmail.com> wrote:
> On Mon, Jun 12, 2023 at 3:30 PM Herve Codina <herve.codina@bootlin.com> wrote:

...

> >  #include <linux/property.h>
> >  #include <linux/slab.h>
> >  #include <linux/mutex.h>
> > +#include <linux/minmax.h>

But can you try to preserve order (to some extent, perhaps invisible
here context is even better, I would assume mutex was added
unordered)?

> >  #include <linux/iio/iio.h>
> >  #include <linux/iio/iio-opaque.h>
  

Patch

diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c
index ce537b4ca6ca..ae1a41d3a559 100644
--- a/drivers/iio/inkern.c
+++ b/drivers/iio/inkern.c
@@ -8,6 +8,7 @@ 
 #include <linux/property.h>
 #include <linux/slab.h>
 #include <linux/mutex.h>
+#include <linux/minmax.h>
 
 #include <linux/iio/iio.h>
 #include <linux/iio/iio-opaque.h>
@@ -875,11 +876,7 @@  static int iio_channel_read_max(struct iio_channel *chan,
 			return -EINVAL;
 		switch (*type) {
 		case IIO_VAL_INT:
-			*val = vals[--length];
-			while (length) {
-				if (vals[--length] > *val)
-					*val = vals[length];
-			}
+			*val = max_array(vals, length);
 			break;
 		default:
 			/* FIXME: learn about max for other iio values */