1. 26 Jul, 2013 3 commits
  2. 22 Jul, 2013 5 commits
    • Tetsuyuki Kobayashi's avatar
      ARM: 7788/1: elf: fix lpae hwcap feature reporting in proc/cpuinfo · ab8d46c0
      Tetsuyuki Kobayashi authored
      Commit a469abd0
      
       ("ARM: elf: add new hwcap for identifying atomic
      ldrd/strd instructions") added a new hwcap to identify LPAE on CPUs
      which support it. Whilst the hwcap data is correct, the string reported
      in /proc/cpuinfo actually matches on HWCAP_VFPD32, which was missing
      an entry in the string table.
      
      This patch fixes this problem by adding a "vfpd32" string at the correct
      offset, preventing us from falsely advertising LPAE on CPUs which do not
      support it.
      
      [will: added commit message]
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Tested-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarTetsuyuki Kobayashi <koba@kmckk.co.jp>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      ab8d46c0
    • Mark Rutland's avatar
      ARM: 7786/1: hyp: fix macro parameterisation · b60d5db6
      Mark Rutland authored
      
      
      Currently, compare_cpu_mode_with_primary uses a mixture of macro
      arguments and hardcoded registers, and does so incorrectly, as it
      stores (__boot_cpu_mode_offset | BOOT_CPU_MODE_MISMATCH) to
      (__boot_cpu_mode + &__boot_cpu_mode_offset), which could corrupt an
      arbitrary portion of memory.
      
      This patch fixes up compare_cpu_mode_with_primary to use the macro
      arguments, correctly updating __boot_cpu_mode.
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Acked-by: default avatarDave Martin <Dave.Martin@arm.com>
      Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Cc: Christoffer Dall <cdall@cs.columbia.edu>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      b60d5db6
    • Russell King's avatar
      ARM: 7785/1: mm: restrict early_alloc to section-aligned memory · c65b7e98
      Russell King authored
      
      
      When map_lowmem() runs, and processes a memory bank whose start or end
      is not section-aligned, memory must be allocated to store the 2nd-level
      page tables. Those allocations are made by calling memblock_alloc().
      
      At this point, the only memory that is free *and* mapped is memory which
      has already been mapped by map_lowmem() itself. For this reason, we must
      calculate the first point at which map_lowmem() will need to allocate
      memory, and set the memblock allocation limit to a lower address, so that
      memblock_alloc() is guaranteed to return memory that is already mapped.
      
      This patch enhances sanity_check_meminfo() to calculate that memory
      address, and pass it to memblock_set_current_limit(), rather than just
      assuming the limit is arm_lowmem_limit.
      
      The algorithm applied is:
      
      * Default memblock_limit to arm_lowmem_limit in the absence of any other
        limit; arm_lowmem_limit is the highest memory that is mapped by
        map_lowmem().
      
      * While walking the list of memblocks, if the start of a block is not
        aligned, 2nd-level page tables will need to be allocated to map the
        first few pages of the block. Hence, the memblock_limit must be before
        the start of the block.
      
      * Similarly, if the end of any block is not aligned, 2nd-level page
        tables will need to be allocated to map the last few pages of the
        block. Hence, the memblock_limit must point at the end of the block,
        rounded down to section-alignment.
      
      * The memory blocks are assumed to be sorted in address order, so the
        first unaligned block start or end is used to set the limit.
      
      With this algorithm, the start or end of almost any bank can be non-
      section-aligned. The only exception is that the start of bank 0 must
      be section-aligned, since otherwise memory would need to be allocated
      when mapping the start of bank 0, which occurs before any free memory
      is mapped.
      
      [swarren, wrote commit description, rewrote calculation of memblock_limit]
      Signed-off-by: Stephen Warren's avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      c65b7e98
    • Will Deacon's avatar
      ARM: 7784/1: mm: ensure SMP alternates assemble to exactly 4 bytes with Thumb-2 · bf3f0f33
      Will Deacon authored
      Commit ae8a8b95
      
       ("ARM: 7691/1: mm: kill unused TLB_CAN_READ_FROM_L1_CACHE
      and use ALT_SMP instead") added early function returns for page table
      cache flushing operations on ARMv7 SMP CPUs.
      
      Unfortunately, when targetting Thumb-2, these `mov pc, lr' sequences
      assemble to 2 bytes which can lead to corruption of the instruction
      stream after code patching.
      
      This patch fixes the alternates to use wide (32-bit) instructions for
      Thumb-2, therefore ensuring that the patching code works correctly.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      bf3f0f33
    • Russell King's avatar
      ARM: document DEBUG_UNCOMPRESS Kconfig option · b6992fa9
      Russell King authored
      
      
      This non-user visible option lacked any kind of documentation.  This
      is quite common for non-user visible options; certian people can't
      understand the point of documenting such options with help text.
      
      However, here we have a case in point: developers don't understand the
      option either, as they were thinking that when the option is not set,
      the decompressor should produce no output what so ever.  This is
      incorrect, as the purpose of this option is to control whether a
      multiplatform kernel uses the kernel debugging macros to produce
      output or not.
      
      So let's document this via help rather than commentry to prevent others
      falling into this misunderstanding.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      b6992fa9
  3. 16 Jul, 2013 1 commit
  4. 14 Jul, 2013 1 commit
    • Paul Gortmaker's avatar
      arm: delete __cpuinit/__CPUINIT usage from all ARM users · 8bd26e3a
      Paul Gortmaker authored
      The __cpuinit type of throwaway sections might have made sense
      some time ago when RAM was more constrained, but now the savings
      do not offset the cost and complications.  For example, the fix in
      commit 5e427ec2 ("x86: Fix bit corruption at CPU resume time")
      is a good example of the nasty type of bugs that can be created
      with improper use of the various __init prefixes.
      
      After a discussion on LKML[1] it was decided that cpuinit should go
      the way of devinit and be phased out.  Once all the users are gone,
      we can then finally remove the macros themselves from linux/init.h.
      
      Note that some harmless section mismatch warnings may result, since
      notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
      and are flagged as __cpuinit  -- so if we remove the __cpuinit from
      the arch specific callers, we will also get section mismatch warnings.
      As an intermediate step, we intend to turn the linux/init.h cpuinit
      related content into no-ops as early as possible, since that will get
      rid of these warnings.  In any case, they are temporary and harmless.
      
      This removes all the ARM uses of the __cpuinit macros from C code,
      and all __CPUINIT from assembly code.  It also had two ".previous"
      section statements that were paired off against __CPUINIT
      (aka .section ".cpuinit.text") that also get removed here.
      
      [1] https://lkml.org/lkml/2013/5/20/589
      
      
      
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      8bd26e3a
  5. 13 Jul, 2013 1 commit
  6. 12 Jul, 2013 1 commit
  7. 11 Jul, 2013 3 commits
  8. 09 Jul, 2013 12 commits
  9. 06 Jul, 2013 2 commits
  10. 05 Jul, 2013 7 commits
    • Arnd Bergmann's avatar
      ARM: OMAP: omap_common_late_init may be unused · 069d0a78
      Arnd Bergmann authored
      
      
      Some OMAP SoCs use this function while others do not, and that
      causes a warning when building multi_v7_defconfig. Marking the
      function __maybe_unused silences the harmless warning without the
      need to add complex #ifdef logic.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Tony Lindgren <tony@atomide.com>
      069d0a78
    • Arnd Bergmann's avatar
      ARM: sti: move DEBUG_STI_UART into alphabetical order · 5562b800
      Arnd Bergmann authored
      
      
      This was accidentally added in the wrong place, messing
      up the ordering of the file.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      5562b800
    • Arnd Bergmann's avatar
      ARM: OMAP: build mach-omap code only if needed · 59d92875
      Arnd Bergmann authored
      
      
      If we build a kernel with CONFIG_ARCH_OMAP2PLUS enabled but all of the
      individual SoCs disabled, we run into a large number of link errors
      because if incorrect dependencies:
      
      arch/arm/mach-omap2/built-in.o: In function `_add_initiator_dep':
      arch/arm/mach-omap2/omap_hwmod.c:691: undefined reference to `clkdm_add_sleepdep' arch/arm/mach-omap2/built-in.o: In function `_del_initiator_dep':
      arch/arm/mach-omap2/omap_hwmod.c:720: undefined reference to `clkdm_del_sleepdep' arch/arm/mach-omap2/built-in.o: In function `_enable':
      arch/arm/mach-omap2/omap_hwmod.c:2145: undefined reference to `clkdm_in_hwsup'
      arch/arm/mach-omap2/omap_hwmod.c:2147: undefined reference to `clkdm_hwmod_enable'
      arch/arm/mach-omap2/omap_hwmod.c:2191: undefined reference to `clkdm_hwmod_disable'
      arch/arm/mach-omap2/omap_hwmod.c:2146: undefined reference to `clkdm_missing_idle_reporting' arch/arm/mach-omap2/built-in.o: In function `_idle':
      arch/arm/mach-omap2/omap_hwmod.c:2235: undefined reference to `clkdm_hwmod_disable' arch/arm/mach-omap2/built-in.o: In function `_shutdown':
      arch/arm/mach-omap2/omap_hwmod.c:2338: undefined reference to `clkdm_hwmod_disable' arch/arm/mach-omap2/built-in.o: In function `omap_hwmod_get_context_loss_count':
      arch/arm/mach-omap2/omap_hwmod.c:4071: undefined reference to `pwrdm_get_context_loss_count' arch/arm/mach-omap2/built-in.o: In function `omap_pm_clkdms_setup':
      arch/arm/mach-omap2/pm.c:114: undefined reference to `clkdm_allow_idle'
      arch/arm/mach-omap2/pm.c:117: undefined reference to `clkdm_sleep' arch/arm/mach-omap2/built-in.o: In function `omap2_common_pm_late_init':
      arch/arm/mach-omap2/pm.c:294: undefined reference to `omap_voltage_late_init' arch/arm/mach-omap2/built-in.o: In function `omap2_gpio_dev_init':
      arch/arm/mach-omap2/gpio.c:133: undefined reference to `pwrdm_can_ever_lose_context'
      
      We can avoid this if we make CONFIG_ARCH_OMAP2PLUS a silent option that
      gets enabled any time that one of the SoC versions is enabled.
      
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      59d92875
    • Arnd Bergmann's avatar
      ARM: zynq: use DT_MACHINE_START · 514a5908
      Arnd Bergmann authored
      
      
      The zynq platform code only supports DT based booting, so we
      should use DT_MACHINE_START rather than MACHINE_START.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Michal Simek <michal.simek@xilinx.com>
      514a5908
    • Arnd Bergmann's avatar
      ARM: omap5: omap5 has SCU and TWD · 896eba3b
      Arnd Bergmann authored
      
      
      These are selected by omap4 but used in common omap4/5
      SMP code, so building an omap5-only kernel is actually
      broken without this patch.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Cc: Tony Lindgren <tony@atomide.com>
      896eba3b
    • Christian Daudt's avatar
      mmc: bcm281xx SDHCI driver · 01ebea1b
      Christian Daudt authored
      
      
      Add SDHCI driver for the Broadcom 281xx SoCs.
      
      Still missing:
       - power managemement
      Signed-off-by: default avatarChristian Daudt <csd@broadcom.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      01ebea1b
    • Mark Brown's avatar
      dmaengine: PL08x: Avoid collisions with get_signal() macro · d7cabeed
      Mark Brown authored
      
      
      As pointed out by Arnd Bergmann there is a get_signal macro definied in
      linux/signal.h which can conflict with the platform data callback
      function of the same name leading to confusing errors from the compiler
      (especially if signal.h manages to get pulled into the driver itself due
      to header dependencies).  Avoid such errors by renaming get_signal and
      put_signal in the platform data to get_xfer_signal and put_xfer_signal.
      Signed-off-by: default avatarMark Brown <broonie@linaro.org>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
      d7cabeed
  11. 04 Jul, 2013 4 commits