1. 19 6月, 2013 14 次提交
  2. 11 6月, 2013 2 次提交
    • T
      ARM: SAMSUNG: pm: Adjust for pinctrl- and DT-enabled platforms · cd3fc1b9
      Tomasz Figa 提交于
      This patch makes legacy code on suspend/resume path being executed
      conditionally, on non-DT platforms only, to fix suspend/resume of
      DT-enabled systems, for which the code is inappropriate.
      Signed-off-by: NTomasz Figa <t.figa@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      [olof: add #include <linux/of.h>]
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      cd3fc1b9
    • H
      ARM: prima2: fix incorrect panic usage · 7e5955db
      Haojian Zhuang 提交于
      In prima2, some functions of checking DT is registered in initcall
      level. If it doesn't match the compatible name of sirf, kernel
      will panic. It blocks the usage of multiplatform on other verndor.
      
      The error message is in below.
      
      Knic - not syncing: unable to find compatible pwrc node in dtb
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.10.0-rc3-00006-gd7f26ea-dirty #86
      [<c0013adc>] (unwind_backtrace+0x0/0xf8) from [<c0011430>] (show_stack+0x10/0x1)
      [<c0011430>] (show_stack+0x10/0x14) from [<c026f724>] (panic+0x90/0x1e8)
      [<c026f724>] (panic+0x90/0x1e8) from [<c03267fc>] (sirfsoc_of_pwrc_init+0x24/0x)
      [<c03267fc>] (sirfsoc_of_pwrc_init+0x24/0x58) from [<c0320864>] (do_one_initcal)
      [<c0320864>] (do_one_initcall+0x90/0x150) from [<c0320a20>] (kernel_init_freeab)
      [<c0320a20>] (kernel_init_freeable+0xfc/0x1c4) from [<c026b9e8>] (kernel_init+0)
      [<c026b9e8>] (kernel_init+0x8/0xe4) from [<c000e158>] (ret_from_fork+0x14/0x3c)
      Signen-off-by: NHaojian Zhuang <haojian.zhuang@linaro.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      7e5955db
  3. 08 6月, 2013 2 次提交
    • D
      ARM: exynos: add debug_ll_io_init() call in exynos_init_io() · 9c1fcdcc
      Doug Anderson 提交于
      If the early MMU mapping of the UART happens to get booted out of the
      TLB between the start of paging_init() and when we finally re-add the
      UART at the very end of s3c_init_cpu(), we'll get a hang at bootup if
      we've got early_printk enabled.  Avoid this hang by calling
      debug_ll_io_init() early.
      
      Without this patch, you can reliably reproduce a hang when early
      printk is enabled by adding flush_tlb_all() at the start of
      exynos_init_io().  After this patch the hang goes away.
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Acked-by: NKukjin Kim <kgene.kim@samsung.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      9c1fcdcc
    • T
      ARM: EXYNOS: uncompress - print debug messages if DEBUG_LL is defined · 437d8ac5
      Tushar Behera 提交于
      Printing low-level debug messages make an assumption that the specified
      UART port has been preconfigured by the bootloader. Incorrectly
      specified UART port results in system getting stalled while printing the
      message "Uncompressing Linux... done, booting the kernel"
      This UART port number is specified through S3C_LOWLEVEL_UART_PORT. Since
      the UART port might different for different board, it is not possible to
      specify it correctly for every board that use a common defconfig file.
      
      Calling this print subroutine only when DEBUG_LL fixes the problem. By
      disabling DEBUG_LL in default config file, we would be able to boot
      multiple boards with different default UART ports.
      
      With this current approach, we miss the print "Uncompressing Linux...
      done, booting the kernel." when DEBUG_LL is not defined.
      Signed-off-by: NTushar Behera <tushar.behera@linaro.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      437d8ac5
  4. 07 6月, 2013 2 次提交
  5. 06 6月, 2013 7 次提交
    • J
      ARM: omap3: clock: fix wrong container_of in clock36xx.c · a93d8a1c
      Jean-Philippe Francois 提交于
      omap36xx_pwrdn_clk_enable_with_hsdiv_restore expects the parent hw of
      the clock to be a clk_hw_omap. However, looking at cclock3xxx_data.c,
      all concerned clock have parent defined as clk_divider.  Fix the
      function to use clk_divider.  Tested with 3.9 on dm3730.
      Signed-off-by: NJean-Philippe François <jp.francois@cynove.com>
      Cc: NeilBrown <neilb@suse.de>
      Cc: Mike Turquette <mturquette@linaro.org>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      
      a93d8a1c
    • P
      arch, mm: Remove tlb_fast_mode() · 29eb7782
      Peter Zijlstra 提交于
      Since the introduction of preemptible mmu_gather TLB fast mode has been
      broken. TLB fast mode relies on there being absolutely no concurrency;
      it frees pages first and invalidates TLBs later.
      
      However now we can get concurrency and stuff goes *bang*.
      
      This patch removes all tlb_fast_mode() code; it was found the better
      option vs trying to patch the hole by entangling tlb invalidation with
      the scheduler.
      
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tony Luck <tony.luck@intel.com>
      Reported-by: NMax Filippov <jcmvbkbc@gmail.com>
      Signed-off-by: NPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      29eb7782
    • W
      ARM: 7747/1: pcpu: ensure __my_cpu_offset cannot be re-ordered across barrier() · 509eb76e
      Will Deacon 提交于
      __my_cpu_offset is non-volatile, since we want its value to be cached
      when we access several per-cpu variables in a row with preemption
      disabled. This means that we rely on preempt_{en,dis}able to hazard
      with the operation via the barrier() macro, so that we can't end up
      migrating CPUs without reloading the per-cpu offset.
      
      Unfortunately, GCC doesn't treat a "memory" clobber on a non-volatile
      asm block as a side-effect, and will happily re-order it before other
      memory clobbers (including those in prempt_disable()) and cache the
      value. This has been observed to break the cmpxchg logic in the slub
      allocator, leading to livelock in kmem_cache_alloc in mainline kernels.
      
      This patch adds a dummy memory input operand to __my_cpu_offset,
      forcing it to be ordered with respect to the barrier() macro.
      
      Cc: <stable@vger.kernel.org>
      Cc: Rob Herring <rob.herring@calxeda.com>
      Reviewed-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      509eb76e
    • M
      ARM: 7750/1: update legacy CPU ID in decompressor cache support jump table · ced2a3b8
      Marc C 提交于
      The previous mask values for the legacy ARM CPU IDs were conflicting
      with the CPU ID assignments for late-generation CPUs (like the
      Qualcomm MSM/QSD or Broadcom Brahma-15 processors). This change
      corrects the legacy ARM CPU ID value so that the jump table can
      fall-through to the appropriate cache maintenance / MMU functions.
      Signed-off-by: NMarc C <marc.ceeeee@gmail.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      ced2a3b8
    • A
      ARM: 7743/1: compressed/head.S: work around new binutils warning · da94a829
      Arnd Bergmann 提交于
      In August 2012, Matthew Gretton-Dann checked a change into binutils
      labelled "Error on obsolete & warn on deprecated registers", apparently as
      part of ARMv8 support. Apparently, this was supposed to emit the message
      "Warning: This coprocessor register access is deprecated in ARMv8" when
      using certain mcr/mrc instructions and building for ARMv8. Unfortunately,
      the message that is actually emitted appears to be '(null)', which is
      less helpful in comparison.
      
      Even more unfortunately, this is biting us on every single kernel
      build with a new gas, because arch/arm/boot/compressed/head.S and some
      other files in that directory are built with -march=all since kernel
      commit 80cec14a "[ARM] Add -march=all to assembly file build in
      arch/arm/boot/compressed" back in v2.6.28.
      
      This patch reverts Russell's nice solution and instead marks the head.S
      file to be built for armv7-a, which fortunately lets us build all
      instructions in that file without warnings even on the broken binutils.
      
      Without this patch, building anything results in:
      
      arch/arm/boot/compressed/head.S: Assembler messages:
      arch/arm/boot/compressed/head.S:565: Warning: (null)
      arch/arm/boot/compressed/head.S:676: Warning: (null)
      arch/arm/boot/compressed/head.S:698: Warning: (null)
      arch/arm/boot/compressed/head.S:722: Warning: (null)
      arch/arm/boot/compressed/head.S:726: Warning: (null)
      arch/arm/boot/compressed/head.S:957: Warning: (null)
      arch/arm/boot/compressed/head.S:996: Warning: (null)
      arch/arm/boot/compressed/head.S:997: Warning: (null)
      arch/arm/boot/compressed/head.S:1027: Warning: (null)
      arch/arm/boot/compressed/head.S:1035: Warning: (null)
      arch/arm/boot/compressed/head.S:1046: Warning: (null)
      arch/arm/boot/compressed/head.S:1060: Warning: (null)
      arch/arm/boot/compressed/head.S:1092: Warning: (null)
      arch/arm/boot/compressed/head.S:1094: Warning: (null)
      arch/arm/boot/compressed/head.S:1095: Warning: (null)
      arch/arm/boot/compressed/head.S:1102: Warning: (null)
      arch/arm/boot/compressed/head.S:1134: Warning: (null)
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: stable@vger.kernel.org
      Cc: Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      da94a829
    • A
      ARM: 7742/1: topology: export cpu_topology · 92bdd3f5
      Arnd Bergmann 提交于
      The cpu_topology symbol is required by any driver using the topology
      interfaces, which leads to a couple of build errors:
      
      ERROR: "cpu_topology" [drivers/net/ethernet/sfc/sfc.ko] undefined!
      ERROR: "cpu_topology" [drivers/cpufreq/arm_big_little.ko] undefined!
      ERROR: "cpu_topology" [drivers/block/mtip32xx/mtip32xx.ko] undefined!
      
      The obvious solution is to export this symbol.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Cc: stable@vger.kernel.org
      Cc: Nicolas Pitre <nico@linaro.org>
      Cc: Vincent Guittot <vincent.guittot@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      92bdd3f5
    • N
      ARM: 7737/1: fix kernel decompressor compilation error with CONFIG_DEBUG_SEMIHOSTING · 27523679
      Nicolas Pitre 提交于
      Selecting this option produces:
      
        AS      arch/arm/boot/compressed/debug.o
      arch/arm/boot/compressed/debug.S:4:33: fatal error: mach/debug-macro.S: No such file or directory
      compilation terminated.
      make[3]: *** [arch/arm/boot/compressed/debug.o] Error 1
      
      The semihosting support cannot be modelled into a senduart macro as
      it requires memory space for argument passing.  So the
      CONFIG_DEBUG_LL_INCLUDE may not have any sensible value and the include
      directive should be omitted.
      
      While at it, let's add proper semihosting output support to the
      decompressor.
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Acked-by: NShawn Guo <shawn.guo@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      27523679
  6. 04 6月, 2013 1 次提交
  7. 03 6月, 2013 8 次提交
  8. 31 5月, 2013 1 次提交
  9. 29 5月, 2013 1 次提交
  10. 28 5月, 2013 2 次提交
    • N
      ARM: mvebu: Fix bug in coherency fabric low level init function · b60b61d4
      Nadav Haklai 提交于
      When adding CPU to the SMP group and enabling the coherency on this
      CPU we must protect the register access.
      The previous implementation claims to be atomic but doesn't provide
      any protection against parallel access to the coherency fabric control
      and configuration registers.
      
      This patch fixes this by using the ldrex and strex mechanism.
      This method should be used in all accesses to those registers.
      
      [gregory.clement@free-electrons.com: fixed the commit's topic]
      Signed-off-by: NNadav Haklai <nadavh@marvell.com>
      Signed-off-by: NGregory CLEMENT <gregory.clement@free-electrons.com>
      Signed-off-by: NJason Cooper <jason@lakedaemon.net>
      b60b61d4
    • A
      ARM: Kirkwood: TS219: Fix crash by double PCIe instantiation · e89b4058
      Andrew Lunn 提交于
      When creating the DT based boards-ts219.c the none DT ts219-setup.c
      was used as a template. This includes a lateinit() call to initialize
      the PCIe bus. The code makes use of machine_is_ts219() which is never
      true on DT, so a FIXME was added and the code left as is. This was
      unproblematic until b73690c8: "ARM: Kirkwood: Support basic
      hotplug for PCI-E" which changes the way the PCIe bus is
      initialized. The non-DT ts219-setup.c now crashes during boot.  The
      lateinit() call in the DT boards-ts219.c is being called,
      machine_is_ts219() is true and so the PCIe is initialized a second
      time.
      
      This patch removes the useless, and now clearly dangerous, code from
      boards-ts219.c, making ts219-setup.c work again.
      Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
      Cc: <stable@vger.kernel.org> # v3.9.x
      Signed-off-by: NJason Cooper <jason@lakedaemon.net>
      e89b4058