Merge tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 1 Aug 2016 22:21:13 +0000 (18:21 -0400)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 1 Aug 2016 22:21:13 +0000 (18:21 -0400)
Pull ARM SoC cleanups from Olof Johansson:
 "The cleanup branch keeps going down in size as we've completed a lot
  of the major legacy platform removals and conversions.

  A handful of changes this time around, some of the themes or larger
  sets are:

   - A bunch of i.MX cleanups around platform detection, init call cleanups
   - Misc fixes of missing/implicit includes
   - Removal of ARCH_[WANT_OPTIONAL|REQUIRE]_GPIOLIB"

* tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (40 commits)
  ARM: mps2: fix typo
  ARM: s3c64xx: avoid warning about 'struct device_node'
  bus: mvebu-mbus: make mvebu_mbus_syscore_ops static
  bus: mvebu-mbus: fix __iomem on register pointers
  ARM: tegra: Remove board_init_funcs array
  ARM: iop: Fix indentation
  ARM: imx: remove cpu_is_mx*()
  ARM: imx: remove last call to cpu_is_mx5*
  ARM: imx: rework mx27_pm_init() call
  ARM: imx: deconstruct mx3_idle
  ARM: imx: deconstruct mxc_rnga initialization
  ARM: imx: remove cpu_is_mx1 check
  ARM: i.MX: Do not explicitly call l2x0_of_init()
  ARM: i.MX: system.c: Tweak prefetch settings for performance
  ARM: i.MX: system.c: Replace magic numbers
  ARM: i.MX: system.c: Remove redundant errata 752271 code
  ARM: i.MX: system.c: Convert goto to if statement
  ARM: Kirkwood: fix kirkwood_pm_init() declaration/type
  ARM: Kirkwood: make kirkwood_disable_mbus_error_propagation() static
  ARM: orion5x: make orion5x_legacy_handle_irq static
  ...

17 files changed:
1  2 
arch/arm/Kconfig
arch/arm/mach-bcm/Kconfig
arch/arm/mach-exynos/Kconfig
arch/arm/mach-imx/mach-imx51.c
arch/arm/mach-imx/mach-imx53.c
arch/arm/mach-imx/mach-imx6q.c
arch/arm/mach-imx/mach-imx6sl.c
arch/arm/mach-imx/mach-imx6sx.c
arch/arm/mach-integrator/Kconfig
arch/arm/mach-moxart/Kconfig
arch/arm/mach-mvebu/kirkwood.c
arch/arm/mach-mxs/Kconfig
arch/arm/mach-omap2/Kconfig
arch/arm/mach-prima2/Kconfig
arch/arm/mach-tegra/tegra.c
arch/arm/mach-u300/Kconfig
arch/arm/mach-vexpress/spc.c

diff --combined arch/arm/Kconfig
index 4c445fb9c189fe1d527c086f87a572f876830d73,1bf9a108e99b9e00ab84bb1fafde3ee11ad812bc..9ec5f5588dc5197eb291b7c65ef6357ae4e469bc
@@@ -327,7 -327,6 +327,6 @@@ choic
  config ARCH_MULTIPLATFORM
        bool "Allow multiple platforms to be selected"
        depends on MMU
-       select ARCH_WANT_OPTIONAL_GPIOLIB
        select ARM_HAS_SG_CHAIN
        select ARM_PATCH_PHYS_VIRT
        select AUTO_ZRELADDR
  config ARM_SINGLE_ARMV7M
        bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
        depends on !MMU
-       select ARCH_WANT_OPTIONAL_GPIOLIB
        select ARM_NVIC
        select AUTO_ZRELADDR
        select CLKSRC_OF
  
  config ARCH_CLPS711X
        bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
-       select ARCH_REQUIRE_GPIOLIB
        select AUTO_ZRELADDR
 -      select CLKSRC_MMIO
        select COMMON_CLK
        select CPU_ARM720T
        select GENERIC_CLOCKEVENTS
 +      select CLPS711X_TIMER
+       select GPIOLIB
        select MFD_SYSCON
        select SOC_BUS
        help
  
  config ARCH_GEMINI
        bool "Cortina Systems Gemini"
-       select ARCH_REQUIRE_GPIOLIB
        select CLKSRC_MMIO
        select CPU_FA526
        select GENERIC_CLOCKEVENTS
+       select GPIOLIB
        help
          Support for the Cortina Systems Gemini family SoCs
  
@@@ -393,7 -391,6 +391,6 @@@ config ARCH_EBSA11
  config ARCH_EP93XX
        bool "EP93xx-based"
        select ARCH_HAS_HOLES_MEMORYMODEL
-       select ARCH_REQUIRE_GPIOLIB
        select ARM_AMBA
        select ARM_PATCH_PHYS_VIRT
        select ARM_VIC
        select CLKSRC_MMIO
        select CPU_ARM920T
        select GENERIC_CLOCKEVENTS
+       select GPIOLIB
        help
          This enables support for the Cirrus EP93xx series of CPUs.
  
@@@ -442,9 -440,9 +440,9 @@@ config ARCH_IOP13X
  config ARCH_IOP32X
        bool "IOP32x-based"
        depends on MMU
-       select ARCH_REQUIRE_GPIOLIB
        select CPU_XSCALE
        select GPIO_IOP
+       select GPIOLIB
        select NEED_RET_TO_USER
        select PCI
        select PLAT_IOP
  config ARCH_IOP33X
        bool "IOP33x-based"
        depends on MMU
-       select ARCH_REQUIRE_GPIOLIB
        select CPU_XSCALE
        select GPIO_IOP
+       select GPIOLIB
        select NEED_RET_TO_USER
        select PCI
        select PLAT_IOP
@@@ -468,12 -466,12 +466,12 @@@ config ARCH_IXP4X
        bool "IXP4xx-based"
        depends on MMU
        select ARCH_HAS_DMA_SET_COHERENT_MASK
-       select ARCH_REQUIRE_GPIOLIB
        select ARCH_SUPPORTS_BIG_ENDIAN
        select CLKSRC_MMIO
        select CPU_XSCALE
        select DMABOUNCE if PCI
        select GENERIC_CLOCKEVENTS
+       select GPIOLIB
        select MIGHT_HAVE_PCI
        select NEED_MACH_IO_H
        select USB_EHCI_BIG_ENDIAN_DESC
  
  config ARCH_DOVE
        bool "Marvell Dove"
-       select ARCH_REQUIRE_GPIOLIB
        select CPU_PJ4
        select GENERIC_CLOCKEVENTS
+       select GPIOLIB
        select MIGHT_HAVE_PCI
        select MULTI_IRQ_HANDLER
        select MVEBU_MBUS
  
  config ARCH_KS8695
        bool "Micrel/Kendin KS8695"
-       select ARCH_REQUIRE_GPIOLIB
        select CLKSRC_MMIO
        select CPU_ARM922T
        select GENERIC_CLOCKEVENTS
+       select GPIOLIB
        select NEED_MACH_MEMORY_H
        help
          Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
  
  config ARCH_W90X900
        bool "Nuvoton W90X900 CPU"
-       select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
        select CLKSRC_MMIO
        select CPU_ARM926T
        select GENERIC_CLOCKEVENTS
+       select GPIOLIB
        help
          Support for Nuvoton (Winbond logic dept.) ARM9 processor,
          At present, the w90x900 has been renamed nuc900, regarding
  
  config ARCH_LPC32XX
        bool "NXP LPC32XX"
-       select ARCH_REQUIRE_GPIOLIB
        select ARM_AMBA
        select CLKDEV_LOOKUP
        select CLKSRC_LPC32XX
        select COMMON_CLK
        select CPU_ARM926T
        select GENERIC_CLOCKEVENTS
+       select GPIOLIB
        select MULTI_IRQ_HANDLER
        select SPARSE_IRQ
        select USE_OF
@@@ -543,7 -541,6 +541,6 @@@ config ARCH_PX
        bool "PXA2xx/PXA3xx-based"
        depends on MMU
        select ARCH_MTD_XIP
-       select ARCH_REQUIRE_GPIOLIB
        select ARM_CPU_SUSPEND if PM
        select AUTO_ZRELADDR
        select COMMON_CLK
        select CPU_XSCALE if !CPU_XSC3
        select GENERIC_CLOCKEVENTS
        select GPIO_PXA
+       select GPIOLIB
        select HAVE_IDE
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
@@@ -584,7 -582,6 +582,6 @@@ config ARCH_RP
  config ARCH_SA1100
        bool "SA1100-based"
        select ARCH_MTD_XIP
-       select ARCH_REQUIRE_GPIOLIB
        select ARCH_SPARSEMEM_ENABLE
        select CLKDEV_LOOKUP
        select CLKSRC_MMIO
        select CPU_FREQ
        select CPU_SA1100
        select GENERIC_CLOCKEVENTS
+       select GPIOLIB
        select HAVE_IDE
        select IRQ_DOMAIN
        select ISA
  
  config ARCH_S3C24XX
        bool "Samsung S3C24XX SoCs"
-       select ARCH_REQUIRE_GPIOLIB
        select ATAGS
        select CLKDEV_LOOKUP
        select CLKSRC_SAMSUNG_PWM
        select GENERIC_CLOCKEVENTS
        select GPIO_SAMSUNG
+       select GPIOLIB
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
        select HAVE_S3C_RTC if RTC_CLASS
  config ARCH_DAVINCI
        bool "TI DaVinci"
        select ARCH_HAS_HOLES_MEMORYMODEL
-       select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
        select CPU_ARM926T
        select GENERIC_ALLOCATOR
        select GENERIC_CLOCKEVENTS
        select GENERIC_IRQ_CHIP
+       select GPIOLIB
        select HAVE_IDE
        select USE_OF
        select ZONE_DMA
@@@ -642,11 -640,11 +640,11 @@@ config ARCH_OMAP
        depends on MMU
        select ARCH_HAS_HOLES_MEMORYMODEL
        select ARCH_OMAP
-       select ARCH_REQUIRE_GPIOLIB
        select CLKDEV_LOOKUP
        select CLKSRC_MMIO
        select GENERIC_CLOCKEVENTS
        select GENERIC_IRQ_CHIP
+       select GPIOLIB
        select HAVE_IDE
        select IRQ_DOMAIN
        select MULTI_IRQ_HANDLER
@@@ -868,7 -866,7 +866,7 @@@ source "arch/arm/mach-zynq/Kconfig
  config ARCH_EFM32
        bool "Energy Micro efm32"
        depends on ARM_SINGLE_ARMV7M
-       select ARCH_REQUIRE_GPIOLIB
+       select GPIOLIB
        help
          Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko
          processors.
@@@ -901,7 -899,7 +899,7 @@@ config MACH_STM32F42
        default y
  
  config ARCH_MPS2
-       bool "ARM MPS2 paltform"
+       bool "ARM MPS2 platform"
        depends on ARM_SINGLE_ARMV7M
        select ARM_AMBA
        select CLKSRC_MPS2
@@@ -1186,60 -1184,6 +1184,60 @@@ config ARM_ERRATA_77302
          loop buffer may deliver incorrect instructions. This
          workaround disables the loop buffer to avoid the erratum.
  
 +config ARM_ERRATA_818325_852422
 +      bool "ARM errata: A12: some seqs of opposed cond code instrs => deadlock or corruption"
 +      depends on CPU_V7
 +      help
 +        This option enables the workaround for:
 +        - Cortex-A12 818325: Execution of an UNPREDICTABLE STR or STM
 +          instruction might deadlock.  Fixed in r0p1.
 +        - Cortex-A12 852422: Execution of a sequence of instructions might
 +          lead to either a data corruption or a CPU deadlock.  Not fixed in
 +          any Cortex-A12 cores yet.
 +        This workaround for all both errata involves setting bit[12] of the
 +        Feature Register. This bit disables an optimisation applied to a
 +        sequence of 2 instructions that use opposing condition codes.
 +
 +config ARM_ERRATA_821420
 +      bool "ARM errata: A12: sequence of VMOV to core registers might lead to a dead lock"
 +      depends on CPU_V7
 +      help
 +        This option enables the workaround for the 821420 Cortex-A12
 +        (all revs) erratum. In very rare timing conditions, a sequence
 +        of VMOV to Core registers instructions, for which the second
 +        one is in the shadow of a branch or abort, can lead to a
 +        deadlock when the VMOV instructions are issued out-of-order.
 +
 +config ARM_ERRATA_825619
 +      bool "ARM errata: A12: DMB NSHST/ISHST mixed ... might cause deadlock"
 +      depends on CPU_V7
 +      help
 +        This option enables the workaround for the 825619 Cortex-A12
 +        (all revs) erratum. Within rare timing constraints, executing a
 +        DMB NSHST or DMB ISHST instruction followed by a mix of Cacheable
 +        and Device/Strongly-Ordered loads and stores might cause deadlock
 +
 +config ARM_ERRATA_852421
 +      bool "ARM errata: A17: DMB ST might fail to create order between stores"
 +      depends on CPU_V7
 +      help
 +        This option enables the workaround for the 852421 Cortex-A17
 +        (r1p0, r1p1, r1p2) erratum. Under very rare timing conditions,
 +        execution of a DMB ST instruction might fail to properly order
 +        stores from GroupA and stores from GroupB.
 +
 +config ARM_ERRATA_852423
 +      bool "ARM errata: A17: some seqs of opposed cond code instrs => deadlock or corruption"
 +      depends on CPU_V7
 +      help
 +        This option enables the workaround for:
 +        - Cortex-A17 852423: Execution of a sequence of instructions might
 +          lead to either a data corruption or a CPU deadlock.  Not fixed in
 +          any Cortex-A17 cores yet.
 +        This is identical to Cortex-A12 erratum 852422.  It is a separate
 +        config option from the A12 erratum due to the way errata are checked
 +        for and handled.
 +
  endmenu
  
  source "arch/arm/common/Kconfig"
index 4f1709b318226aa9c65c920106ac310d055e30f7,8e2ccd2ccf54cb96a397ffa54fcbb75a00728ab9..5f63f513d9c95473b878936d6584d0e6fc39fea9
@@@ -17,7 -17,7 +17,7 @@@ config ARCH_BCM_IPRO
        select ARM_GLOBAL_TIMER
        select COMMON_CLK_IPROC
        select CLKSRC_MMIO
-       select ARCH_REQUIRE_GPIOLIB
+       select GPIOLIB
        select ARM_AMBA
        select PINCTRL
        help
@@@ -80,7 -80,7 +80,7 @@@ comment "KONA architected SoCs
  
  config ARCH_BCM_MOBILE
        bool
-       select ARCH_REQUIRE_GPIOLIB
+       select GPIOLIB
        select ARM_ERRATA_754322
        select ARM_ERRATA_775420
        select ARM_GIC
@@@ -89,7 -89,6 +89,7 @@@
        select HAVE_ARM_ARCH_TIMER
        select PINCTRL
        select ARCH_BCM_MOBILE_SMP if SMP
 +      select BCM_KONA_TIMER
        help
          This enables support for systems based on Broadcom mobile SoCs.
  
@@@ -138,13 -137,12 +138,13 @@@ comment "Other Architectures
  config ARCH_BCM2835
        bool "Broadcom BCM2835 family"
        depends on ARCH_MULTI_V6 || ARCH_MULTI_V7
-       select ARCH_REQUIRE_GPIOLIB
+       select GPIOLIB
        select ARM_AMBA
        select ARM_ERRATA_411920 if ARCH_MULTI_V6
        select ARM_TIMER_SP804
        select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
        select CLKSRC_OF
 +      select BCM2835_TIMER
        select PINCTRL
        select PINCTRL_BCM2835
        help
@@@ -178,7 -176,6 +178,6 @@@ config ARCH_BRCMST
        select BRCMSTB_L2_IRQ
        select BCM7120_L2_IRQ
        select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
-       select ARCH_WANT_OPTIONAL_GPIOLIB
        select SOC_BRCMSTB
        select SOC_BUS
        help
index 20dcf6e904b2c5ea40c21a0903a73bc58b16860e,7f2d804fbddf344b1d57853d270c8c8cc103f941..ecf139f31c4c7995e5bef7d46bd48ab6d6acf283
@@@ -12,13 -12,13 +12,13 @@@ menuconfig ARCH_EXYNO
        depends on ARCH_MULTI_V7
        select ARCH_HAS_BANDGAP
        select ARCH_HAS_HOLES_MEMORYMODEL
-       select ARCH_REQUIRE_GPIOLIB
        select ARM_AMBA
        select ARM_GIC
        select COMMON_CLK_SAMSUNG
        select EXYNOS_THERMAL
        select EXYNOS_PMU
        select EXYNOS_SROM
+       select GPIOLIB
        select HAVE_ARM_SCU if SMP
        select HAVE_S3C2410_I2C if I2C
        select HAVE_S3C2410_WATCHDOG if WATCHDOG
@@@ -61,6 -61,7 +61,6 @@@ config ARCH_EXYNOS
        select CLKSRC_SAMSUNG_PWM if CPU_EXYNOS4210
        select CPU_EXYNOS4210
        select GIC_NON_BANKED
 -      select KEYBOARD_SAMSUNG if INPUT_KEYBOARD
        select MIGHT_HAVE_CACHE_L2X0
        help
          Samsung EXYNOS4 (Cortex-A9) SoC based systems
index ec64de611d90e76758e54c87588b9509d52ecc2e,7296c31849a8af4e9d4f1132c9b7b34eb344116e..40564c9b1226bb8ed382df3bfecb062333a0c014
@@@ -52,6 -52,8 +52,6 @@@ static void __init imx51_dt_init(void
  {
        imx51_ipu_mipi_setup();
        imx_src_init();
 -
 -      of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
  }
  
  static void __init imx51_init_late(void)
@@@ -67,7 -69,6 +67,6 @@@ static const char * const imx51_dt_boar
  
  DT_MACHINE_START(IMX51_DT, "Freescale i.MX51 (Device Tree Support)")
        .init_early     = imx51_init_early,
-       .init_irq       = tzic_init_irq,
        .init_machine   = imx51_dt_init,
        .init_late      = imx51_init_late,
        .dt_compat      = imx51_dt_board_compat,
index 68aec23be016dcdeba5dea7e2ac281e3a3a0294d,d251cecd9bd2efa835d1424ab719655de71c3358..07c2e8dca494b6b1451b59900e35e00d93c63372
@@@ -32,6 -32,8 +32,6 @@@ static void __init imx53_dt_init(void
  {
        imx_src_init();
  
 -      of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
 -
        imx_aips_allow_unprivileged_access("fsl,imx53-aipstz");
  }
  
@@@ -47,7 -49,6 +47,6 @@@ static const char * const imx53_dt_boar
  
  DT_MACHINE_START(IMX53_DT, "Freescale i.MX53 (Device Tree Support)")
        .init_early     = imx53_init_early,
-       .init_irq       = tzic_init_irq,
        .init_machine   = imx53_dt_init,
        .init_late      = imx53_init_late,
        .dt_compat      = imx53_dt_board_compat,
index e3940707eeb8b8662d83412a80939af7dbd048ff,b31890f1e4a43b55f549f22a818a53fdce3388cd..68c16d59b808f986b9041f894cd9fcd6639cc4df
@@@ -278,7 -278,7 +278,7 @@@ static void __init imx6q_init_machine(v
  
        imx6q_enet_phy_init();
  
 -      of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
 +      of_platform_default_populate(NULL, NULL, parent);
  
        imx_anatop_init();
        cpu_is_imx6q() ?  imx6q_pm_init() : imx6dl_pm_init();
@@@ -407,6 -407,8 +407,8 @@@ static const char * const imx6q_dt_comp
  };
  
  DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad/DualLite (Device Tree)")
+       .l2c_aux_val    = 0,
+       .l2c_aux_mask   = ~0,
        .smp            = smp_ops(imx_smp_ops),
        .map_io         = imx6q_map_io,
        .init_irq       = imx6q_init_irq,
index 37ae87d6e0e908f95e4191a68ea0d8b901983bce,f9a9a362a88afb89423804db64fd002f3a9401ce..04084900d810b251913193c4efa06ec0ae367918
@@@ -52,7 -52,7 +52,7 @@@ static void __init imx6sl_init_machine(
        if (parent == NULL)
                pr_warn("failed to initialize soc device\n");
  
 -      of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
 +      of_platform_default_populate(NULL, NULL, parent);
  
        imx6sl_fec_init();
        imx_anatop_init();
@@@ -75,6 -75,8 +75,8 @@@ static const char * const imx6sl_dt_com
  };
  
  DT_MACHINE_START(IMX6SL, "Freescale i.MX6 SoloLite (Device Tree)")
+       .l2c_aux_val    = 0,
+       .l2c_aux_mask   = ~0,
        .init_irq       = imx6sl_init_irq,
        .init_machine   = imx6sl_init_machine,
        .init_late      = imx6sl_init_late,
index 107cfc15282be8f941caf86b3773f32ca6a948b0,07a3a340f151a2d57fe3b17273b18b17f166ddd1..7f52d9b1e8a4511691c159ec9fdfb751770b4981
@@@ -72,7 -72,7 +72,7 @@@ static void __init imx6sx_init_machine(
        if (parent == NULL)
                pr_warn("failed to initialize soc device\n");
  
 -      of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
 +      of_platform_default_populate(NULL, NULL, parent);
  
        imx6sx_enet_init();
        imx_anatop_init();
@@@ -103,6 -103,8 +103,8 @@@ static const char * const imx6sx_dt_com
  };
  
  DT_MACHINE_START(IMX6SX, "Freescale i.MX6 SoloX (Device Tree)")
+       .l2c_aux_val    = 0,
+       .l2c_aux_mask   = ~0,
        .init_irq       = imx6sx_init_irq,
        .init_machine   = imx6sx_init_machine,
        .dt_compat      = imx6sx_dt_compat,
index 291262e5aeaf3a14682ff3cb0ae914fd76e7615f,bc764a89615ed361577a5ae689d7dc36fdb06cf3..599f973e10d83b0cb0e9047c9c2ecbb1ada5c2cf
@@@ -20,7 -20,7 +20,7 @@@ if ARCH_INTEGRATO
  
  config ARCH_INTEGRATOR_AP
        bool "Support Integrator/AP and Integrator/PP2 platforms"
 -      select CLKSRC_MMIO
 +      select INTEGRATOR_AP_TIMER
        select MIGHT_HAVE_PCI
        select SERIAL_AMBA_PL010 if TTY
        select SERIAL_AMBA_PL010_CONSOLE if TTY
@@@ -32,9 -32,9 +32,9 @@@
  config INTEGRATOR_IMPD1
        bool "Include support for Integrator/IM-PD1"
        depends on ARCH_INTEGRATOR_AP
-       select ARCH_REQUIRE_GPIOLIB
        select ARM_VIC
-       select GPIO_PL061 if GPIOLIB
+       select GPIO_PL061
+       select GPIOLIB
        help
          The IM-PD1 is an add-on logic module for the Integrator which
          allows ARM(R) Ltd PrimeCells to be developed and evaluated.
index ddc79cea32d3ee6798b9c0cd228a5995a8c268e4,6eca2363b81a679b90a03fdeeb5717f711c70b73..f69e28b85e884908ce040997271f9f7e9335cc14
@@@ -3,9 -3,9 +3,9 @@@ menuconfig ARCH_MOXAR
        depends on ARCH_MULTI_V4
        select CPU_FA526
        select ARM_DMA_MEM_BUFFERABLE
 -      select CLKSRC_MMIO
 +      select MOXART_TIMER
        select GENERIC_IRQ_CHIP
-       select ARCH_REQUIRE_GPIOLIB
+       select GPIOLIB
        select PHYLIB if NETDEVICES
        help
          Say Y here if you want to run your kernel on hardware with a
index 8f459ee34e6f4790b13c4eca67f4e37b0ea4472b,a3f4029b25d712346fd18dcc43fd384a7c6b25f9..7d9f2fd9e450512ebd798eaa56ba6841b690fec4
@@@ -150,7 -150,7 +150,7 @@@ eth_fixup_skip
   * causes mbus errors (which can occur for example for PCI aborts) to
   * throw CPU aborts, which we're not set up to deal with.
   */
- void kirkwood_disable_mbus_error_propagation(void)
static void kirkwood_disable_mbus_error_propagation(void)
  {
        void __iomem *cpu_config;
  
@@@ -179,7 -179,7 +179,7 @@@ static void __init kirkwood_dt_init(voi
        kirkwood_pm_init();
        kirkwood_dt_eth_fixup();
  
 -      of_platform_populate(NULL, of_default_bus_match_table, auxdata, NULL);
 +      of_platform_default_populate(NULL, auxdata, NULL);
  }
  
  static const char * const kirkwood_dt_board_compat[] __initconst = {
index 68a3a9ec605dbf083b0ff747cf64c4bc3a5e1f0f,5d9e5fce7937d664ad84a3421e6664bbb46dd845..cb429bc6dc0da49170a35a45d3ad6ae21157a53e
@@@ -15,8 -15,8 +15,8 @@@ config SOC_IMX2
  config ARCH_MXS
        bool "Freescale MXS (i.MX23, i.MX28) support"
        depends on ARCH_MULTI_V5
-       select ARCH_REQUIRE_GPIOLIB
 -      select CLKSRC_MMIO
+       select GPIOLIB
 +      select MXS_TIMER
        select PINCTRL
        select SOC_BUS
        select SOC_IMX23
index 1a648e9dfaa08fb3647414a08c03650c114b0396,b5d3c4c75626865b4ef0929867f56daeb88e9199..5a0b380a8166fde7e8a5a0489698b6624b3bf148
@@@ -17,7 -17,6 +17,7 @@@ config ARCH_OMAP
        select PM_OPP if PM
        select PM if CPU_IDLE
        select SOC_HAS_OMAP2_SDRC
 +      select ARM_ERRATA_430973
  
  config ARCH_OMAP4
        bool "TI OMAP4"
@@@ -37,7 -36,6 +37,7 @@@
        select PM if CPU_IDLE
        select ARM_ERRATA_754322
        select ARM_ERRATA_775420
 +      select OMAP_INTERCONNECT
  
  config SOC_OMAP5
        bool "TI OMAP5"
@@@ -69,8 -67,6 +69,8 @@@ config SOC_AM43X
        select HAVE_ARM_SCU
        select GENERIC_CLOCKEVENTS_BROADCAST
        select HAVE_ARM_TWD
 +      select ARM_ERRATA_754322
 +      select ARM_ERRATA_775420
  
  config SOC_DRA7XX
        bool "TI DRA7XX"
@@@ -92,9 -88,9 +92,9 @@@ config ARCH_OMAP2PLU
        select ARCH_HAS_BANDGAP
        select ARCH_HAS_HOLES_MEMORYMODEL
        select ARCH_OMAP
-       select ARCH_REQUIRE_GPIOLIB
        select CLKSRC_MMIO
        select GENERIC_IRQ_CHIP
+       select GPIOLIB
        select MACH_OMAP_GENERIC
        select MEMORY
        select MFD_SYSCON
@@@ -244,12 -240,4 +244,12 @@@ endmen
  
  endif
  
 +config OMAP5_ERRATA_801819
 +      bool "Errata 801819: An eviction from L1 data cache might stall indefinitely"
 +      depends on SOC_OMAP5 || SOC_DRA7XX
 +      help
 +        A livelock can occur in the L2 cache arbitration that might prevent
 +        a snoop from completing. Under certain conditions this can cause the
 +        system to deadlock.
 +
  endmenu
index 9e938f2961cfc1233e6b604132a62c1c814e3b6e,3c4717c4b16b05d7929aade2902f0300f6894467..85e874a973370facfa5a2e84cd10894279833be2
@@@ -3,8 -3,8 +3,8 @@@ menuconfig ARCH_SIR
        depends on ARCH_MULTI_V7
        select ARCH_HAS_RESET_CONTROLLER
        select RESET_CONTROLLER
-       select ARCH_REQUIRE_GPIOLIB
        select GENERIC_IRQ_CHIP
+       select GPIOLIB
        select NO_IOPORT_MAP
        select REGMAP
        select PINCTRL
@@@ -28,7 -28,6 +28,7 @@@ config ARCH_ATLAS
        default y
        select ARM_GIC
        select CPU_V7
 +      select ATLAS7_TIMER
        select HAVE_ARM_SCU if SMP
        select HAVE_SMP
        help
@@@ -39,7 -38,6 +39,7 @@@ config ARCH_PRIMA
        default y
        select SIRF_IRQ
        select ZONE_DMA
 +      select PRIMA2_TIMER
        help
            Support for CSR SiRFSoC ARM Cortex A9 Platform
  
index 6745a657d261c6a2cda6a55b35ff7953b0bc2c2e,42d7ee9658facac7fccaca9bae02ee737f6e2771..e01cbca196b544f57e95ffb1e21e831b93adec03
@@@ -115,35 -115,17 +115,17 @@@ static void __init tegra_dt_init(void
         * devices
         */
  out:
 -      of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
 +      of_platform_default_populate(NULL, NULL, parent);
  }
  
- static void __init paz00_init(void)
- {
-       if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC))
-               tegra_paz00_wifikill_init();
- }
- static struct {
-       char *machine;
-       void (*init)(void);
- } board_init_funcs[] = {
-       { "compal,paz00", paz00_init },
- };
  static void __init tegra_dt_init_late(void)
  {
-       int i;
        tegra_init_suspend();
        tegra_cpuidle_init();
  
-       for (i = 0; i < ARRAY_SIZE(board_init_funcs); i++) {
-               if (of_machine_is_compatible(board_init_funcs[i].machine)) {
-                       board_init_funcs[i].init();
-                       break;
-               }
-       }
+       if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) &&
+           of_machine_is_compatible("compal,paz00"))
+               tegra_paz00_wifikill_init();
  }
  
  static const char * const tegra_dt_board_compat[] = {
index 4fdc3425ffbd2d12120d3a322b34063c1478e06e,56e0ef680b7911d6b4a5b3aa046a5188ae01748b..22dcbf5b76b2d49db66a38700a1be9b30dd32e57
@@@ -1,11 -1,11 +1,11 @@@
  menuconfig ARCH_U300
        bool "ST-Ericsson U300 Series"
        depends on ARCH_MULTI_V5 && MMU
-       select ARCH_REQUIRE_GPIOLIB
        select ARM_AMBA
        select ARM_VIC
 -      select CLKSRC_MMIO
 +      select U300_TIMER
        select CPU_ARM926T
+       select GPIOLIB
        select HAVE_TCM
        select PINCTRL
        select PINCTRL_COH901
index 8409cab3f760cc798a14cadc5f017feab53d1b65,bc4ea5b241e77b2e6652dff78a9e0dd9bb86b3c9..fe488523694c17618835e0224347de7a377a821b
@@@ -31,6 -31,8 +31,8 @@@
  
  #include <asm/cacheflush.h>
  
+ #include "spc.h"
  #define SPCLOG "vexpress-spc: "
  
  #define PERF_LVL_A15          0x00
@@@ -319,17 -321,15 +321,15 @@@ static int ve_spc_waitforcompletion(in
  
  static int ve_spc_set_performance(int cluster, u32 freq)
  {
-       u32 perf_cfg_reg, perf_stat_reg;
+       u32 perf_cfg_reg;
        int ret, perf, req_type;
  
        if (cluster_is_a15(cluster)) {
                req_type = CA15_DVFS;
                perf_cfg_reg = PERF_LVL_A15;
-               perf_stat_reg = PERF_REQ_A15;
        } else {
                req_type = CA7_DVFS;
                perf_cfg_reg = PERF_LVL_A7;
-               perf_stat_reg = PERF_REQ_A7;
        }
  
        perf = ve_spc_find_performance_index(cluster, freq);
@@@ -547,7 -547,7 +547,7 @@@ static struct clk *ve_spc_clk_register(
  
        init.name = dev_name(cpu_dev);
        init.ops = &clk_spc_ops;
 -      init.flags = CLK_IS_ROOT | CLK_GET_RATE_NOCACHE;
 +      init.flags = CLK_GET_RATE_NOCACHE;
        init.num_parents = 0;
  
        return devm_clk_register(cpu_dev, &spc->hw);