Subject: Re: [PATCH 34/36] ARM: s3c: stop including mach/hardware.h from mach/io.h

From: Russell King - ARM Linux admin <[email-masked]>
Date: Thu, 10 Oct 2019 22:02:08 +0100

On Thu, Oct 10, 2019 at 10:30:18PM +0200, Arnd Bergmann wrote:
> A number of other files rely on mach/map.h to be indirectly
> included from mach/io.h through mach/hardware.h.
> 
> Reduce this to the minimal plat/map-base.h and add explicit
> includes everywhere else.
> 
> Signed-off-by: Arnd Bergmann <[email-masked]>
> ---
>  arch/arm/mach-s3c24xx/common.c                          | 1 +
>  arch/arm/mach-s3c24xx/include/mach/gpio-samsung.h       | 2 ++
>  arch/arm/mach-s3c24xx/include/mach/hardware.h           | 7 -------
>  arch/arm/mach-s3c24xx/include/mach/io.h                 | 3 +--
>  arch/arm/mach-s3c24xx/include/mach/regs-clock.h         | 2 ++
>  arch/arm/mach-s3c24xx/include/mach/regs-gpio.h          | 2 ++
>  arch/arm/mach-s3c24xx/include/mach/regs-irq.h           | 2 ++
>  arch/arm/mach-s3c24xx/include/mach/regs-s3c2443-clock.h | 1 +
>  arch/arm/mach-s3c24xx/include/mach/s3c2412.h            | 2 ++
>  arch/arm/mach-s3c24xx/mach-h1940.c                      | 1 +
>  arch/arm/mach-s3c24xx/mach-jive.c                       | 1 +
>  arch/arm/mach-s3c24xx/mach-rx1950.c                     | 1 +
>  arch/arm/mach-s3c24xx/pm-h1940.S                        | 1 -
>  arch/arm/mach-s3c24xx/regs-mem.h                        | 2 ++
>  arch/arm/mach-s3c24xx/s3c2410.c                         | 2 +-
>  arch/arm/mach-s3c24xx/s3c2412.c                         | 2 +-
>  arch/arm/mach-s3c24xx/s3c2416.c                         | 2 +-
>  arch/arm/mach-s3c24xx/s3c2443.c                         | 2 +-
>  arch/arm/mach-s3c24xx/s3c244x.c                         | 2 +-
>  arch/arm/mach-s3c24xx/sleep-s3c2410.S                   | 1 -
>  arch/arm/mach-s3c24xx/sleep-s3c2412.S                   | 1 -
>  arch/arm/mach-s3c24xx/sleep.S                           | 1 -
>  drivers/spi/spi-s3c24xx-regs.h                          | 2 ++
>  drivers/usb/gadget/udc/s3c2410_udc_regs.h               | 2 ++
>  24 files changed, 27 insertions(+), 18 deletions(-)
> 
> diff --git a/arch/arm/mach-s3c24xx/common.c b/arch/arm/mach-s3c24xx/common.c
> index d16a164df6c4..42d828f48345 100644
> --- a/arch/arm/mach-s3c24xx/common.c
> +++ b/arch/arm/mach-s3c24xx/common.c
> @@ -21,6 +21,7 @@
>  #include <linux/dmaengine.h>
>  
>  #include <mach/hardware.h>
> +#include <mach/map.h>
>  #include <mach/regs-clock.h>
>  #include <asm/irq.h>
>  #include <asm/cacheflush.h>
> diff --git a/arch/arm/mach-s3c24xx/include/mach/gpio-samsung.h b/arch/arm/mach-s3c24xx/include/mach/gpio-samsung.h
> index 2ad22b2d459b..f8a114891f16 100644
> --- a/arch/arm/mach-s3c24xx/include/mach/gpio-samsung.h
> +++ b/arch/arm/mach-s3c24xx/include/mach/gpio-samsung.h
> @@ -14,6 +14,8 @@
>  #ifndef GPIO_SAMSUNG_S3C24XX_H
>  #define GPIO_SAMSUNG_S3C24XX_H
>  
> +#include <mach/map.h>
> +

Why?  Nothing in this file uses anything from mach/map.h

>  /*
>   * GPIO sizes for various SoCs:
>   *
> diff --git a/arch/arm/mach-s3c24xx/include/mach/hardware.h b/arch/arm/mach-s3c24xx/include/mach/hardware.h
> index f28ac6c78d82..c732ea54984c 100644
> --- a/arch/arm/mach-s3c24xx/include/mach/hardware.h
> +++ b/arch/arm/mach-s3c24xx/include/mach/hardware.h
> @@ -9,13 +9,6 @@
>  #ifndef __ASM_ARCH_HARDWARE_H
>  #define __ASM_ARCH_HARDWARE_H
>  
> -#ifndef __ASSEMBLY__
> -
>  extern unsigned int s3c2410_modify_misccr(unsigned int clr, unsigned int chg);
>  
> -#endif /* __ASSEMBLY__ */
> -
> -#include <linux/sizes.h>
> -#include <mach/map.h>
> -
>  #endif /* __ASM_ARCH_HARDWARE_H */
> diff --git a/arch/arm/mach-s3c24xx/include/mach/io.h b/arch/arm/mach-s3c24xx/include/mach/io.h
> index 3e8bff26cdd5..bcddf615adb6 100644
> --- a/arch/arm/mach-s3c24xx/include/mach/io.h
> +++ b/arch/arm/mach-s3c24xx/include/mach/io.h
> @@ -10,8 +10,7 @@
>  #ifndef __ASM_ARM_ARCH_IO_H
>  #define __ASM_ARM_ARCH_IO_H
>  
> -#include <mach/hardware.h>
> -
> +#include <plat/map-base.h>
>  
>  /*
>   * ISA style IO, for each machine to sort out mappings for,
> diff --git a/arch/arm/mach-s3c24xx/include/mach/regs-clock.h b/arch/arm/mach-s3c24xx/include/mach/regs-clock.h
> index 7ca3dd4f13c0..da4e7b3aeba6 100644
> --- a/arch/arm/mach-s3c24xx/include/mach/regs-clock.h
> +++ b/arch/arm/mach-s3c24xx/include/mach/regs-clock.h
> @@ -9,6 +9,8 @@
>  #ifndef __ASM_ARM_REGS_CLOCK
>  #define __ASM_ARM_REGS_CLOCK
>  
> +#include <mach/map.h>
> +

Why?  Nothing in this file uses anything from mach/map.h

>  #define S3C2410_CLKREG(x) ((x) + S3C24XX_VA_CLKPWR)
>  
>  #define S3C2410_PLLVAL(_m,_p,_s) ((_m) << 12 | ((_p) << 4) | ((_s)))
> diff --git a/arch/arm/mach-s3c24xx/include/mach/regs-gpio.h b/arch/arm/mach-s3c24xx/include/mach/regs-gpio.h
> index 594e967c0673..51827d5577b6 100644
> --- a/arch/arm/mach-s3c24xx/include/mach/regs-gpio.h
> +++ b/arch/arm/mach-s3c24xx/include/mach/regs-gpio.h
> @@ -10,6 +10,8 @@
>  #ifndef __ASM_ARCH_REGS_GPIO_H
>  #define __ASM_ARCH_REGS_GPIO_H
>  
> +#include <plat/map-s3c.h>
> +
>  #define S3C24XX_MISCCR		S3C24XX_GPIOREG2(0x80)
>  
>  /* general configuration options */
> diff --git a/arch/arm/mach-s3c24xx/include/mach/regs-irq.h b/arch/arm/mach-s3c24xx/include/mach/regs-irq.h
> index 8d8e669e3903..2921b48c56b2 100644
> --- a/arch/arm/mach-s3c24xx/include/mach/regs-irq.h
> +++ b/arch/arm/mach-s3c24xx/include/mach/regs-irq.h
> @@ -8,6 +8,8 @@
>  #ifndef ___ASM_ARCH_REGS_IRQ_H
>  #define ___ASM_ARCH_REGS_IRQ_H
>  
> +#include <plat/map-s3c.h>
> +
>  /* interrupt controller */
>  
>  #define S3C2410_IRQREG(x)   ((x) + S3C24XX_VA_IRQ)
> diff --git a/arch/arm/mach-s3c24xx/include/mach/regs-s3c2443-clock.h b/arch/arm/mach-s3c24xx/include/mach/regs-s3c2443-clock.h
> index 682759549e63..fefef7233f4b 100644
> --- a/arch/arm/mach-s3c24xx/include/mach/regs-s3c2443-clock.h
> +++ b/arch/arm/mach-s3c24xx/include/mach/regs-s3c2443-clock.h
> @@ -11,6 +11,7 @@
>  #define __ASM_ARM_REGS_S3C2443_CLOCK
>  
>  #include <linux/delay.h>
> +#include <plat/map-s3c.h>
>  
>  #define S3C2443_CLKREG(x)		((x) + S3C24XX_VA_CLKPWR)
>  
> diff --git a/arch/arm/mach-s3c24xx/include/mach/s3c2412.h b/arch/arm/mach-s3c24xx/include/mach/s3c2412.h
> index 4ff83f956cfb..1ae369c81beb 100644
> --- a/arch/arm/mach-s3c24xx/include/mach/s3c2412.h
> +++ b/arch/arm/mach-s3c24xx/include/mach/s3c2412.h
> @@ -8,6 +8,8 @@
>  #ifndef __ARCH_ARM_MACH_S3C24XX_S3C2412_H
>  #define __ARCH_ARM_MACH_S3C24XX_S3C2412_H __FILE__
>  
> +#include <plat/map-s3c.h>
> +
>  #define S3C2412_MEMREG(x)		(S3C24XX_VA_MEMCTRL + (x))
>  #define S3C2412_EBIREG(x)		(S3C2412_VA_EBI + (x))
>  
> diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c
> index d56e3befa459..287e42fc1665 100644
> --- a/arch/arm/mach-s3c24xx/mach-h1940.c
> +++ b/arch/arm/mach-s3c24xx/mach-h1940.c
> @@ -48,6 +48,7 @@
>  #include <sound/uda1380.h>
>  
>  #include <linux/platform_data/fb-s3c2410.h>
> +#include <mach/map.h>
>  #include <mach/hardware.h>
>  #include <mach/regs-clock.h>
>  #include <mach/regs-gpio.h>
> diff --git a/arch/arm/mach-s3c24xx/mach-jive.c b/arch/arm/mach-s3c24xx/mach-jive.c
> index 3b33132b2334..8012c34bddd9 100644
> --- a/arch/arm/mach-s3c24xx/mach-jive.c
> +++ b/arch/arm/mach-s3c24xx/mach-jive.c
> @@ -31,6 +31,7 @@
>  #include <linux/platform_data/mtd-nand-s3c2410.h>
>  #include <linux/platform_data/i2c-s3c2410.h>
>  
> +#include <mach/hardware.h>
>  #include <mach/regs-gpio.h>
>  #include <linux/platform_data/fb-s3c2410.h>
>  #include <mach/gpio-samsung.h>
> diff --git a/arch/arm/mach-s3c24xx/mach-rx1950.c b/arch/arm/mach-s3c24xx/mach-rx1950.c
> index ee4a0992339f..f94884090fbe 100644
> --- a/arch/arm/mach-s3c24xx/mach-rx1950.c
> +++ b/arch/arm/mach-s3c24xx/mach-rx1950.c
> @@ -46,6 +46,7 @@
>  
>  #include <sound/uda1380.h>
>  
> +#include <mach/hardware.h>
>  #include <mach/regs-gpio.h>
>  #include <mach/gpio-samsung.h>
>  
> diff --git a/arch/arm/mach-s3c24xx/pm-h1940.S b/arch/arm/mach-s3c24xx/pm-h1940.S
> index a7bbe336ac6b..f9ee515e1cbe 100644
> --- a/arch/arm/mach-s3c24xx/pm-h1940.S
> +++ b/arch/arm/mach-s3c24xx/pm-h1940.S
> @@ -7,7 +7,6 @@
>  
>  #include <linux/linkage.h>
>  #include <asm/assembler.h>
> -#include <mach/hardware.h>
>  #include <mach/map.h>
>  
>  #include <mach/regs-gpio.h>
> diff --git a/arch/arm/mach-s3c24xx/regs-mem.h b/arch/arm/mach-s3c24xx/regs-mem.h
> index 2f3bc48b5890..5048ab8f06c2 100644
> --- a/arch/arm/mach-s3c24xx/regs-mem.h
> +++ b/arch/arm/mach-s3c24xx/regs-mem.h
> @@ -9,6 +9,8 @@
>  #ifndef __ARCH_ARM_MACH_S3C24XX_REGS_MEM_H
>  #define __ARCH_ARM_MACH_S3C24XX_REGS_MEM_H __FILE__
>  
> +#include <plat/map-s3c.h>
> +
>  #define S3C2410_MEMREG(x)		(S3C24XX_VA_MEMCTRL + (x))
>  
>  #define S3C2410_BWSCON			S3C2410_MEMREG(0x00)
> diff --git a/arch/arm/mach-s3c24xx/s3c2410.c b/arch/arm/mach-s3c24xx/s3c2410.c
> index 8427c150dd22..44bf3e1e77f1 100644
> --- a/arch/arm/mach-s3c24xx/s3c2410.c
> +++ b/arch/arm/mach-s3c24xx/s3c2410.c
> @@ -25,7 +25,7 @@
>  #include <asm/mach/map.h>
>  #include <asm/mach/irq.h>
>  
> -#include <mach/hardware.h>
> +#include <mach/map.h>
>  #include <mach/gpio-samsung.h>
>  #include <asm/irq.h>
>  #include <asm/system_misc.h>
> diff --git a/arch/arm/mach-s3c24xx/s3c2412.c b/arch/arm/mach-s3c24xx/s3c2412.c
> index 209f952a6c98..75648dcc2c1d 100644
> --- a/arch/arm/mach-s3c24xx/s3c2412.c
> +++ b/arch/arm/mach-s3c24xx/s3c2412.c
> @@ -29,7 +29,7 @@
>  #include <asm/irq.h>
>  #include <asm/system_misc.h>
>  
> -#include <mach/hardware.h>
> +#include <mach/map.h>
>  #include <mach/regs-clock.h>
>  #include <mach/regs-gpio.h>
>  
> diff --git a/arch/arm/mach-s3c24xx/s3c2416.c b/arch/arm/mach-s3c24xx/s3c2416.c
> index 1cdb7bd3e713..ef2eace605e6 100644
> --- a/arch/arm/mach-s3c24xx/s3c2416.c
> +++ b/arch/arm/mach-s3c24xx/s3c2416.c
> @@ -26,7 +26,7 @@
>  #include <asm/mach/map.h>
>  #include <asm/mach/irq.h>
>  
> -#include <mach/hardware.h>
> +#include <mach/map.h>
>  #include <mach/gpio-samsung.h>
>  #include <asm/proc-fns.h>
>  #include <asm/irq.h>
> diff --git a/arch/arm/mach-s3c24xx/s3c2443.c b/arch/arm/mach-s3c24xx/s3c2443.c
> index f404ecac4baf..00318ad994ff 100644
> --- a/arch/arm/mach-s3c24xx/s3c2443.c
> +++ b/arch/arm/mach-s3c24xx/s3c2443.c
> @@ -23,7 +23,7 @@
>  #include <asm/mach/map.h>
>  #include <asm/mach/irq.h>
>  
> -#include <mach/hardware.h>
> +#include <mach/map.h>
>  #include <mach/gpio-samsung.h>
>  #include <mach/irqs.h>
>  #include <asm/irq.h>
> diff --git a/arch/arm/mach-s3c24xx/s3c244x.c b/arch/arm/mach-s3c24xx/s3c244x.c
> index f5bd489bac85..0ca188d0ffe5 100644
> --- a/arch/arm/mach-s3c24xx/s3c244x.c
> +++ b/arch/arm/mach-s3c24xx/s3c244x.c
> @@ -25,7 +25,7 @@
>  #include <asm/mach/map.h>
>  #include <asm/mach/irq.h>
>  
> -#include <mach/hardware.h>
> +#include <mach/map.h>
>  #include <asm/irq.h>
>  
>  #include <mach/regs-clock.h>
> diff --git a/arch/arm/mach-s3c24xx/sleep-s3c2410.S b/arch/arm/mach-s3c24xx/sleep-s3c2410.S
> index 659f9eff9de2..e4f6f64e7826 100644
> --- a/arch/arm/mach-s3c24xx/sleep-s3c2410.S
> +++ b/arch/arm/mach-s3c24xx/sleep-s3c2410.S
> @@ -13,7 +13,6 @@
>  #include <linux/linkage.h>
>  #include <linux/serial_s3c.h>
>  #include <asm/assembler.h>
> -#include <mach/hardware.h>
>  #include <mach/map.h>
>  
>  #include <mach/regs-gpio.h>
> diff --git a/arch/arm/mach-s3c24xx/sleep-s3c2412.S b/arch/arm/mach-s3c24xx/sleep-s3c2412.S
> index c373f1ca862b..434f5082b2ed 100644
> --- a/arch/arm/mach-s3c24xx/sleep-s3c2412.S
> +++ b/arch/arm/mach-s3c24xx/sleep-s3c2412.S
> @@ -8,7 +8,6 @@
>  
>  #include <linux/linkage.h>
>  #include <asm/assembler.h>
> -#include <mach/hardware.h>
>  #include <mach/map.h>
>  
>  #include <mach/regs-irq.h>
> diff --git a/arch/arm/mach-s3c24xx/sleep.S b/arch/arm/mach-s3c24xx/sleep.S
> index f0f11ad60c52..4bda4a413584 100644
> --- a/arch/arm/mach-s3c24xx/sleep.S
> +++ b/arch/arm/mach-s3c24xx/sleep.S
> @@ -13,7 +13,6 @@
>  #include <linux/linkage.h>
>  #include <linux/serial_s3c.h>
>  #include <asm/assembler.h>
> -#include <mach/hardware.h>
>  #include <mach/map.h>
>  
>  #include <mach/regs-gpio.h>
> diff --git a/drivers/spi/spi-s3c24xx-regs.h b/drivers/spi/spi-s3c24xx-regs.h
> index 37b93ff7c7fe..b76d591eba8c 100644
> --- a/drivers/spi/spi-s3c24xx-regs.h
> +++ b/drivers/spi/spi-s3c24xx-regs.h
> @@ -8,6 +8,8 @@
>  #ifndef __ASM_ARCH_REGS_SPI_H
>  #define __ASM_ARCH_REGS_SPI_H
>  
> +#include <mach/map.h>
> +

If this is outside of arch/arm, it shouldn't need anything from
mach/map.h - mach/map.h is not for driver use.

>  #define S3C2410_SPCON		(0x00)
>  
>  #define S3C2410_SPCON_SMOD_DMA	(2 << 5)	/* DMA mode */
> diff --git a/drivers/usb/gadget/udc/s3c2410_udc_regs.h b/drivers/usb/gadget/udc/s3c2410_udc_regs.h
> index d8d2eeaca088..4df279342cdd 100644
> --- a/drivers/usb/gadget/udc/s3c2410_udc_regs.h
> +++ b/drivers/usb/gadget/udc/s3c2410_udc_regs.h
> @@ -6,6 +6,8 @@
>  #ifndef __ASM_ARCH_REGS_UDC_H
>  #define __ASM_ARCH_REGS_UDC_H
>  
> +#include <mach/map.h>
> +

If this is outside of arch/arm, it shouldn't need anything from
mach/map.h - mach/map.h is not for driver use.

>  #define S3C2410_USBDREG(x) (x)
>  
>  #define S3C2410_UDC_FUNC_ADDR_REG	S3C2410_USBDREG(0x0140)
> -- 
> 2.20.0
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> [email-masked]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel