1. 30 4月, 2013 1 次提交
    • A
      ARM: default machine descriptor for multiplatform · 883a106b
      Arnd Bergmann 提交于
      Since we now have default implementations for init_time and init_irq,
      the init_machine callback is the only one that is not yet optional,
      but since simple DT based platforms all have the same
      of_platform_populate function call in there, we can consolidate them
      as well, and then actually boot with a completely empty machine_desc.
      Unofortunately we cannot just default to an empty init_machine: We
      cannot call of_platform_populate before init_machine because that
      does not work in case of auxdata, and we cannot call it after
      init_machine either because the machine might need to run code
      after adding the devices.
      
      To take the final step, this adds support for booting without defining
      any machine_desc whatsoever.
      
      For the case that CONFIG_MULTIPLATFORM is enabled, it adds a
      global machine descriptor that never matches any machine but is
      used as a fallback if nothing else matches. We assume that without
      CONFIG_MULTIPLATFORM, we only want to boot on the systems that the kernel
      is built for, so we still retain the build-time warning for missing
      machine descriptors and the run-time warning when the platform does not
      match in that case.
      
      In the case that we run on a multiplatform kernel and the machine
      provides a fully populated device tree, we attempt to keep booting,
      hoping that no machine specific callbacks are necessary.
      
      Finally, this also removes the misguided "select ARCH_VEXPRESS" that
      was only added to avoid a build error for allnoconfig kernels.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Acked-by: NOlof Johansson <olof@lixom.net>
      Cc: "Russell King - ARM Linux" <linux@arm.linux.org.uk>
      Cc: Rob Herring <robherring2@gmail.com>
      883a106b
  2. 27 4月, 2013 1 次提交
    • O
      Revert "ARM: exynos: enable multiplatform support" · 4923ee44
      Olof Johansson 提交于
      This reverts commit bd51de53.
      
      Turns out that multiplatform breaks some uses cases, such as when you
      have an existing defconfig, since it adds the new EXYNOS_SINGLE config
      option as a dependecy. As a result, nearly all exynos config options
      will be disabled by default.
      
      Reverting instead of rebasing since this branch is pulled in as a
      dependency elsewhere.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      4923ee44
  3. 26 4月, 2013 1 次提交
  4. 24 4月, 2013 1 次提交
    • N
      ARM: multi-cluster PM: secondary kernel entry code · e8db288e
      Nicolas Pitre 提交于
      CPUs in cluster based systems, such as big.LITTLE, have special needs
      when entering the kernel due to a hotplug event, or when resuming from
      a deep sleep mode.
      
      This is vectorized so multiple CPUs can enter the kernel in parallel
      without serialization.
      
      The mcpm prefix stands for "multi cluster power management", however
      this is usable on single cluster systems as well.  Only the basic
      structure is introduced here.  This will be extended with later patches.
      
      In order not to complexify things more than they currently have to,
      the planned work to make runtime adjusted MPIDR based indexing and
      dynamic memory allocation for cluster states is postponed to a later
      cycle. The MAX_NR_CLUSTERS and MAX_CPUS_PER_CLUSTER static definitions
      should be sufficient for those systems expected to be available in the
      near future.
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Reviewed-by: NWill Deacon <will.deacon@arm.com>
      e8db288e
  5. 19 4月, 2013 1 次提交
    • A
      ARM: exynos: enable multiplatform support · bd51de53
      Arnd Bergmann 提交于
      This makes it possible to enable the exynos platform as part of a
      multiplatform kernel, in addition to keeping the single-platform
      exynos support.
      
      The multiplatform variant has a number of limitations at the moment:
      
      * It only supports DT-enabled machines. This is not a problem in
        the long run, as non-DT machines for exynos are going away.
        The main problem here is that the gpio code and the exynos_eint
        irqchip are not multiplatform capable but still required for
        ATAGS based boot.
      * The watchdog driver is still missing a conversion.
      * sparsemem and memory_holes are currently not supported in
        multiplatform.
      
      The the multiplatform aware ARCH_EXYNOS Kconfig symbol is disabled
      for now, as dependent patches are still pending in other
      subsystem trees. We will enable it once everything comes together.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      bd51de53
  6. 17 4月, 2013 1 次提交
  7. 16 4月, 2013 1 次提交
  8. 15 4月, 2013 4 次提交
  9. 12 4月, 2013 1 次提交
  10. 10 4月, 2013 3 次提交
  11. 08 4月, 2013 4 次提交
  12. 04 4月, 2013 4 次提交
    • S
      ARM: mxs: enable multiplatform build · d696e3f6
      Shawn Guo 提交于
      Remove files that are not needed by multiplatform build, and make
      necessary changes on Kconfig to enable multiplatform build.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      d696e3f6
    • T
      arm: vt8500: Increase available GPIOs on arch-vt8500 · 01bb914c
      Tony Prisk 提交于
      With the inclusion of the pin control driver, more GPIO pins have been
      identified on the arch-vt8500 SoCs requiring an increase in the available
      GPIOs.
      Signed-off-by: NTony Prisk <linux@prisktech.co.nz>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      01bb914c
    • K
      ARM: SAMSUNG: change GENERIC_GPIO to ARCH_REQUIRE_GPIOLIB · 53650430
      Kukjin Kim 提交于
      When I applied regarding samsung-time patches, the "select GENERIC_GPIO"
      has been added wrong, so this patch fixes that.
      And since the GENERIC_GPIO in arch/arm/ will be gone away, this adds
      ARCH_REQUIRE_GPIOLIB for S3C24XX and S5PC100 instead.
      Reported-by: NAlexandre Courbot <gnurou@gmail.com>
      Cc: Romain Naour <romain.naour@openwide.fr>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      53650430
    • K
      ARM: 7688/1: add support for context tracking subsystem · b0088480
      Kevin Hilman 提交于
      commit 91d1aa43 (context_tracking: New context tracking susbsystem)
      generalized parts of the RCU userspace extended quiescent state into
      the context tracking subsystem.  Context tracking is then used
      to implement adaptive tickless (a.k.a extended nohz)
      
      To support the new context tracking subsystem on ARM, the user/kernel
      boundary transtions need to be instrumented.
      
      For exceptions and IRQs in usermode, the existing usr_entry macro is
      used to instrument the user->kernel transition.  For the return to
      usermode path, the ret_to_user* path is instrumented.  Using the
      usr_entry macro, this covers interrupts in userspace, data abort and
      prefetch abort exceptions in userspace as well as undefined exceptions
      in userspace (which is where FP emulation and VFP are handled.)
      
      For syscalls, the slow return path is covered by instrumenting the
      ret_to_user path.  In addition, the syscall entry point is
      instrumented which covers the user->kernel transition for both fast
      and slow syscalls, and an additional instrumentation point is added
      for the fast syscall return path (ret_fast_syscall).
      
      Cc: Mats Liljegren <mats.liljegren@enea.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Signed-off-by: NKevin Hilman <khilman@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      b0088480
  13. 03 4月, 2013 2 次提交
  14. 02 4月, 2013 1 次提交
    • M
      ARM: shmobile: Disallow PINCTRL without GPIOLIB · 6722f6cb
      Magnus Damm 提交于
      Modify mach-shmobile to only select PINCTRL in case of
      ARCH_WANT_OPTIONAL_GPIOLIB is set.
      
      This fixes a build error triggered when adding a new SoC
      lacking GPIO software support (ARCH_WANT_OPTIONAL_GPIOLIB=n):
      
       CC      drivers/tty/vt/keyboard.o
      In file included from drivers/pinctrl/core.c:30:0:
      include/asm-generic/gpio.h: In function 'gpio_get_value_cansleep':
      include/asm-generic/gpio.h:270:2: error: implicit declaration of function '__gpio_get_value'
      include/asm-generic/gpio.h: In function 'gpio_set_value_cansleep':
      include/asm-generic/gpio.h:276:2: error: implicit declaration of function '__gpio_set_value'
      drivers/pinctrl/core.c: In function 'pinctrl_ready_for_gpio_range':
      drivers/pinctrl/core.c:297:9: error: implicit declaration of function 'gpio_to_chip'
      drivers/pinctrl/core.c:297:27: warning: initialization makes pointer from integer without a cast
      drivers/pinctrl/core.c:304:45: error: dereferencing pointer to incomplete type
      drivers/pinctrl/core.c:305:26: error: dereferencing pointer to incomplete type
      drivers/pinctrl/core.c:305:39: error: dereferencing pointer to incomplete type
      make[2]: *** [drivers/pinctrl/core.o] Error 1
      make[1]: *** [drivers/pinctrl] Error 2
      make[1]: *** Waiting for unfinished jobs....
        LD      drivers/sh/built-in.o
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NSimon Horman <horms+renesas@verge.net.au>
      6722f6cb
  15. 01 4月, 2013 3 次提交
  16. 30 3月, 2013 1 次提交
    • S
      ARM: tegra: convert to multi-platform · 90027225
      Stephen Warren 提交于
      This allows Tegra be included in a kernel build that supports multiple
      SoCs at once, which is useful for distro kernels.
      
      This change:
      * Moves Tegra's Kconfig into its own directory, as seems typical for
        multi-platform conversions.
      * Stops selecting some ARM errata that are incompatible with multi-
        platform. This requires that you use a bootloader that enables the
        workaround!
      * Deletes some headers and Makefile.boot that aren't needed now that we
        support multi-platform.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      90027225
  17. 25 3月, 2013 3 次提交
  18. 22 3月, 2013 1 次提交
  19. 20 3月, 2013 1 次提交
  20. 18 3月, 2013 2 次提交
    • A
      ARM: fix CONFIG_VIRT_TO_BUS handling · b4811bac
      Arnd Bergmann 提交于
      887cbce0 "arch Kconfig: centralise CONFIG_ARCH_NO_VIRT_TO_BUS"
      and  4febd95a "Select VIRT_TO_BUS directly where needed" from
      Stephen Rothwell changed globally how CONFIG_VIRT_TO_BUS is
      selected, while my own a5d533ee "ARM: disable virt_to_bus/
      virt_to_bus almost everywhere" was merged at the same time and
      changed which platforms select it on ARM.
      
      The result of this conflict was that we again see CONFIG_VIRT_TO_BUS
      on all ARM systems. This patch fixes up the problem and removes
      CONFIG_ARCH_NO_VIRT_TO_BUS again on ARM.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      b4811bac
    • L
      ARM: ux500: bump arch nr of GPIOs · cca438b5
      Linus Walleij 提交于
      Set the number of GPIOs for Ux500 to 392. Reasoning:
      
      - Internal pinctrl "Nomadik" SoC: 288 GPIOs
      - Then each Ux500 system has one or two GPIO expanders at
        maximum 24 GPIOs each:
        TC35892 expander: 24 GPIOs
        STMPE1601 or 1801 Expander: 24 GPIOs
      - Then AB8500/AB8505/AB8540: 56 GPIOs
      
      Sum: maximum 392 GPIOs - no more no less.
      Acked-by: NLee Jones <lee.jones@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      cca438b5
  21. 16 3月, 2013 1 次提交
  22. 15 3月, 2013 2 次提交