mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2] iio: adc: spear_adc: cleans up, update and sorts the existing includes
@ 2025-12-06 13:15 Rodrigo Gobbi
  2025-12-06 15:33 ` Jonathan Cameron
  2025-12-06 17:55 ` Andy Shevchenko
  0 siblings, 2 replies; 3+ messages in thread
From: Rodrigo Gobbi @ 2025-12-06 13:15 UTC (permalink / raw)
  To: jic23, dlechner, nuno.sa, andy; +Cc: ~lkcamp/patches, linux-iio, linux-kernel

Remove unused includes and add what is being used (IWYU principle) and
sort the remaining ones.

Signed-off-by: Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com>
---
My reasoning was not correct at [1], tks for pointing that out @Jonathan.
With that in mind, I've reviewed some discussions about the principle and
I`ve changed a little bit approach: I`ve inspected the source code again
to find  out what was being used and also checked incorrectly "indirect includes"
using the spear_adc.i file to avoid them. The result is something like this now:

Removed:
#include <linux/device.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/iio/sysfs.h>

Added:
#include <linux/array_size.h>
#include <linux/bits.h>
#include <linux/compiler_types.h>
#include <linux/dev_printk.h>
#include <linux/math.h>
#include <linux/mutex.h>
#include <linux/of.h>

#include <linux/iio/types.h>

Tks and regards!

[1] https://lore.kernel.org/all/20251009182636.187026-1-rodrigo.gobbi.7@gmail.com/
---
 drivers/iio/adc/spear_adc.c | 26 +++++++++++++++-----------
 1 file changed, 15 insertions(+), 11 deletions(-)

diff --git a/drivers/iio/adc/spear_adc.c b/drivers/iio/adc/spear_adc.c
index 50b0a607baeb..b9eeed5533c6 100644
--- a/drivers/iio/adc/spear_adc.c
+++ b/drivers/iio/adc/spear_adc.c
@@ -5,22 +5,26 @@
  * Copyright 2012 Stefan Roese <sr@denx.de>
  */
 
-#include <linux/mod_devicetable.h>
-#include <linux/module.h>
-#include <linux/platform_device.h>
-#include <linux/property.h>
-#include <linux/interrupt.h>
-#include <linux/device.h>
-#include <linux/kernel.h>
-#include <linux/slab.h>
-#include <linux/io.h>
+#include <linux/array_size.h>
 #include <linux/bitfield.h>
+#include <linux/bits.h>
 #include <linux/clk.h>
-#include <linux/err.h>
+#include <linux/compiler_types.h>
 #include <linux/completion.h>
+#include <linux/dev_printk.h>
+#include <linux/err.h>
+#include <linux/interrupt.h>
+#include <linux/io.h>
+#include <linux/math.h>
+#include <linux/module.h>
+#include <linux/mod_devicetable.h>
+#include <linux/mutex.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
 
 #include <linux/iio/iio.h>
-#include <linux/iio/sysfs.h>
+#include <linux/iio/types.h>
 
 /* SPEAR registers definitions */
 #define SPEAR600_ADC_SCAN_RATE_LO(x)	((x) & 0xFFFF)
-- 
2.48.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] iio: adc: spear_adc: cleans up, update and sorts the existing includes
  2025-12-06 13:15 [PATCH v2] iio: adc: spear_adc: cleans up, update and sorts the existing includes Rodrigo Gobbi
@ 2025-12-06 15:33 ` Jonathan Cameron
  2025-12-06 17:55 ` Andy Shevchenko
  1 sibling, 0 replies; 3+ messages in thread
From: Jonathan Cameron @ 2025-12-06 15:33 UTC (permalink / raw)
  To: Rodrigo Gobbi
  Cc: dlechner, nuno.sa, andy, ~lkcamp/patches, linux-iio, linux-kernel

On Sat,  6 Dec 2025 10:15:12 -0300
Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com> wrote:

> Remove unused includes and add what is being used (IWYU principle) and
> sort the remaining ones.
> 
> Signed-off-by: Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com>
Hi Rodrigo,

Much closer but I still spotted one include I'm not sure needs
to be here.

> ---
> My reasoning was not correct at [1], tks for pointing that out @Jonathan.
> With that in mind, I've reviewed some discussions about the principle and
> I`ve changed a little bit approach: I`ve inspected the source code again
> to find  out what was being used and also checked incorrectly "indirect includes"
> using the spear_adc.i file to avoid them. The result is something like this now:
> 
> Removed:
> #include <linux/device.h>
> #include <linux/kernel.h>
> #include <linux/slab.h>
> #include <linux/iio/sysfs.h>
> 
> Added:
> #include <linux/array_size.h>
> #include <linux/bits.h>
> #include <linux/compiler_types.h>
> #include <linux/dev_printk.h>
> #include <linux/math.h>
> #include <linux/mutex.h>
> #include <linux/of.h>

For these, given we've been round a few times, it is useful to add a
brief on what is being used from each header in this change log or
indeed the patch description.

> 
> #include <linux/iio/types.h>
> 
> Tks and regards!
> 
> [1] https://lore.kernel.org/all/20251009182636.187026-1-rodrigo.gobbi.7@gmail.com/
> ---
>  drivers/iio/adc/spear_adc.c | 26 +++++++++++++++-----------
>  1 file changed, 15 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/iio/adc/spear_adc.c b/drivers/iio/adc/spear_adc.c
> index 50b0a607baeb..b9eeed5533c6 100644
> --- a/drivers/iio/adc/spear_adc.c
> +++ b/drivers/iio/adc/spear_adc.c
> @@ -5,22 +5,26 @@
>   * Copyright 2012 Stefan Roese <sr@denx.de>
>   */
>  
> -#include <linux/mod_devicetable.h>
> -#include <linux/module.h>
> -#include <linux/platform_device.h>
> -#include <linux/property.h>
> -#include <linux/interrupt.h>
> -#include <linux/device.h>
> -#include <linux/kernel.h>
> -#include <linux/slab.h>
> -#include <linux/io.h>
> +#include <linux/array_size.h>
>  #include <linux/bitfield.h>
> +#include <linux/bits.h>
>  #include <linux/clk.h>
> -#include <linux/err.h>
> +#include <linux/compiler_types.h>
>  #include <linux/completion.h>
> +#include <linux/dev_printk.h>
> +#include <linux/err.h>
> +#include <linux/interrupt.h>
> +#include <linux/io.h>
> +#include <linux/math.h>
> +#include <linux/module.h>
> +#include <linux/mod_devicetable.h>
> +#include <linux/mutex.h>
> +#include <linux/of.h>

Why include of.h?

I'm not immediately seeing any use stuff defined in there
but I may be missing something.

The only thing prefixed with of_ is of_match_id which
is mod_devicetable.h

We've scrub unneeded includes of that file out of IIO a few
times in the past, so I don't really want to see new ones added.


> +#include <linux/platform_device.h>
> +#include <linux/property.h>
>  
>  #include <linux/iio/iio.h>
> -#include <linux/iio/sysfs.h>
> +#include <linux/iio/types.h>
>  
>  /* SPEAR registers definitions */
>  #define SPEAR600_ADC_SCAN_RATE_LO(x)	((x) & 0xFFFF)


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] iio: adc: spear_adc: cleans up, update and sorts the existing includes
  2025-12-06 13:15 [PATCH v2] iio: adc: spear_adc: cleans up, update and sorts the existing includes Rodrigo Gobbi
  2025-12-06 15:33 ` Jonathan Cameron
@ 2025-12-06 17:55 ` Andy Shevchenko
  1 sibling, 0 replies; 3+ messages in thread
From: Andy Shevchenko @ 2025-12-06 17:55 UTC (permalink / raw)
  To: Rodrigo Gobbi
  Cc: jic23, dlechner, nuno.sa, andy, ~lkcamp/patches, linux-iio, linux-kernel

On Sat, Dec 6, 2025 at 3:21 PM Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com> wrote:
>
> Remove unused includes and add what is being used (IWYU principle) and
> sort the remaining ones.

...

> +#include <linux/array_size.h>
>  #include <linux/bitfield.h>
> +#include <linux/bits.h>
>  #include <linux/clk.h>

> +#include <linux/compiler_types.h>

It's rare that we include this low-level header in the driver's C
code. Usually we do include types.h. Also types.h is missing for uXX
in the code. Also types.h brings NULL definition from stddef.h and we,
for now, consider that it's guaranteed inclusion, so we don't add
stddef.h explicitly in such cases.

>  #include <linux/completion.h>
> +#include <linux/dev_printk.h>
> +#include <linux/err.h>
> +#include <linux/interrupt.h>
> +#include <linux/io.h>
> +#include <linux/math.h>
> +#include <linux/module.h>
> +#include <linux/mod_devicetable.h>
> +#include <linux/mutex.h>

> +#include <linux/of.h>

Jonathan already said about this one.

> +#include <linux/platform_device.h>
> +#include <linux/property.h>


-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2025-12-06 17:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-12-06 13:15 [PATCH v2] iio: adc: spear_adc: cleans up, update and sorts the existing includes Rodrigo Gobbi
2025-12-06 15:33 ` Jonathan Cameron
2025-12-06 17:55 ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®