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

From: Russell King - ARM Linux admin
Date: Thu Oct 10 2019 - 17:02:32 EST


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 <arnd@xxxxxxxx>
> ---
> 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
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> 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