1. 13 11月, 2012 6 次提交
  2. 09 11月, 2012 1 次提交
  3. 07 11月, 2012 1 次提交
  4. 06 11月, 2012 1 次提交
  5. 04 11月, 2012 1 次提交
  6. 30 10月, 2012 1 次提交
  7. 29 10月, 2012 7 次提交
    • W
      ARM: 7567/1: io: avoid GCC's offsettable addressing modes for halfword accesses · 7629a9f6
      Will Deacon 提交于
      Using the 'o' memory constraint in inline assembly can result in GCC
      generating invalid immediate offsets for memory access instructions with
      reduced addressing capabilities (i.e. smaller than 12-bit immediate
      offsets):
      
        http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54983
      
      As there is no constraint to specify the exact addressing mode we need,
      fallback to using 'Q' exclusively for halfword I/O accesses. This may
      emit an additional add instruction (using an extra register) in order
      to construct the address but it will always be accepted by GAS.
      Reported-by: NBastian Hecht <hechtb@googlemail.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      7629a9f6
    • P
      ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set · 39141ddf
      Paul Walmsley 提交于
      After commit 846a1368 ("ARM: vfp: fix
      saving d16-d31 vfp registers on v6+ kernels"), the OMAP 2430SDP board
      started crashing during boot with omap2plus_defconfig:
      
      [    3.875122] mmcblk0: mmc0:e624 SD04G 3.69 GiB
      [    3.915954]  mmcblk0: p1
      [    4.086639] Internal error: Oops - undefined instruction: 0 [#1] SMP ARM
      [    4.093719] Modules linked in:
      [    4.096954] CPU: 0    Not tainted  (3.6.0-02232-g759e00b8 #570)
      [    4.103149] PC is at vfp_reload_hw+0x1c/0x44
      [    4.107666] LR is at __und_usr_fault_32+0x0/0x8
      
      It turns out that the context save/restore fix unmasked a latent bug
      in commit 5aaf2544 ("ARM: 6203/1: Make
      VFPv3 usable on ARMv6").  When CONFIG_VFPv3 is set, but the kernel is
      booted on a pre-VFPv3 core, the code attempts to save and restore the
      d16-d31 VFP registers.  These are only present on non-D16 VFPv3+, so
      this results in an undefined instruction exception.  The code didn't
      crash before commit 846a1368 because the save and restore code was
      only touching d0-d15, present on all VFP.
      
      Fix by implementing a request from Russell King to add a new HWCAP
      flag that affirmatively indicates the presence of the d16-d31
      registers:
      
         http://marc.info/?l=linux-arm-kernel&m=135013547905283&w=2
      
      and some feedback from Måns to clarify the name of the HWCAP flag.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Dave Martin <dave.martin@linaro.org>
      Cc: Måns Rullgård <mans.rullgard@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      39141ddf
    • F
      ARM: 7565/1: sched: stop sched_clock() during suspend · 6a4dae5e
      Felipe Balbi 2 提交于
      The scheduler imposes a requirement to sched_clock()
      which is to stop the clock during suspend, if we don't
      do that any RT thread will be rescheduled in the future
      which might cause any sort of problems.
      
      This became an issue on OMAP when we converted omap-i2c.c
      to use threaded IRQs, it turned out that depending on how
      much time we spent on suspend, the I2C IRQ thread would
      end up being rescheduled so far in the future that I2C
      transfers would timeout and, because omap_hsmmc depends
      on an I2C-connected device to detect if an MMC card is
      inserted in the slot, our rootfs would just vanish.
      
      arch/arm/kernel/sched_clock.c already had an optional
      implementation (sched_clock_needs_suspend()) which would
      handle scheduler's requirement properly, what this patch
      does is simply to make that implementation non-optional.
      
      Note that this has the side-effect that printk timings
      won't reflect the actual time spent on suspend so other
      methods to measure that will have to be used.
      
      This has been tested with beagleboard XM (OMAP3630) and
      pandaboard rev A3 (OMAP4430). Suspend to RAM is now working
      after this patch.
      
      Thanks to Kevin Hilman for helping out with debugging.
      Acked-by: NKevin Hilman <khilman@ti.com>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      6a4dae5e
    • J
      zynq: move static peripheral mappings · f5800776
      Josh Cartwright 提交于
      Shifting them up into the vmalloc region prevents the following warning,
      when booting a zynq qemu target with more than 512mb of RAM:
      
        BUG: mapping for 0xe0000000 at 0xe0000000 out of vmalloc space
      
      In addition, it allows for reuse of these mappings when the proper
      drivers issue requests via ioremap().
      
      There are currently unknown issues with the early uart mapping.  For
      now, the uart will be mapped to a known working address.
      Signed-off-by: NJosh Cartwright <josh.cartwright@ni.com>
      Cc: John Linn <john.linn@xilinx.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Tested-by: NMichal Simek <michal.simek@xilinx.com>
      f5800776
    • J
      zynq: remove use of CLKDEV_LOOKUP · f7977939
      Josh Cartwright 提交于
      The Zynq support in mainline does not (yet) make use of any of the
      generic clk or clk lookup functionality.  Remove what is upstream for
      now, until the out-of-tree implementation is in suitable form for
      merging.
      
      An important side effect of this patch is that it allows the building of
      a Zynq kernel without running into unresolved symbol problems:
      
         drivers/built-in.o: In function `amba_get_enable_pclk':
         clkdev.c:(.text+0x444): undefined reference to `clk_enable'
         drivers/built-in.o: In function `amba_remove':
         clkdev.c:(.text+0x488): undefined reference to `clk_disable'
         drivers/built-in.o: In function `amba_probe':
         clkdev.c:(.text+0x540): undefined reference to `clk_disable'
         drivers/built-in.o: In function `amba_device_add':
         clkdev.c:(.text+0x77c): undefined reference to `clk_disable'
         drivers/built-in.o: In function `enable_clock':
         clkdev.c:(.text+0x29738): undefined reference to `clk_enable'
         drivers/built-in.o: In function `disable_clock':
         clkdev.c:(.text+0x29778): undefined reference to `clk_disable'
         drivers/built-in.o: In function `__pm_clk_remove':
         clkdev.c:(.text+0x297f8): undefined reference to `clk_disable'
         drivers/built-in.o: In function `pm_clk_suspend':
         clkdev.c:(.text+0x29bc8): undefined reference to `clk_disable'
         drivers/built-in.o: In function `pm_clk_resume':
         clkdev.c:(.text+0x29c28): undefined reference to `clk_enable'
         make[2]: *** [vmlinux] Error 1
         make[1]: *** [sub-make] Error 2
         make: *** [all] Error 2
      
      In addition, eliminate Zynq's "use" of the versatile platform, as it is
      no longer needed.  As Nick Bowler points out:
      
         For the record, I think this was introduced by commit 56a34b03
         ("ARM: versatile: Make plat-versatile clock optional") which forgot to
         select PLAT_VERSATILE_CLOCK on Zynq.  This is not all that surprising,
         because the fact that Zynq "uses" PLAT_VERSATILE is secretly hidden in
         the Makefile.
      
         Nevertheless, the only feature from versatile that Zynq needed was the
         clock support, so this patch should *also* delete the secret use of
         plat-versatile by removing this line from arch/arm/Makefile:
      
            plat-$(CONFIG_ARCH_ZYNQ)      += versatile
      Signed-off-by: NJosh Cartwright <josh.cartwright@ni.com>
      Cc: John Linn <john.linn@xilinx.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Tested-by: NMichal Simek <michal.simek@xilinx.com>
      f7977939
    • J
      zynq: use pl310 device tree bindings · 0fcfdbca
      Josh Cartwright 提交于
      The Zynq has a PL310 L2 cache controller.  Convert in-tree uses to using
      the device tree.
      Signed-off-by: NJosh Cartwright <josh.cartwright@ni.com>
      Cc: John Linn <john.linn@xilinx.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Tested-by: NMichal Simek <michal.simek@xilinx.com>
      0fcfdbca
    • J
      zynq: use GIC device tree bindings · f447ed2d
      Josh Cartwright 提交于
      The Zynq uses the cortex-a9-gic.  This eliminates the need to hardcode
      register addresses.
      Signed-off-by: NJosh Cartwright <josh.cartwright@ni.com>
      Cc: John Linn <john.linn@xilinx.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Tested-by: NMichal Simek <michal.simek@xilinx.com>
      f447ed2d
  8. 27 10月, 2012 4 次提交
  9. 26 10月, 2012 2 次提交
  10. 25 10月, 2012 14 次提交
  11. 24 10月, 2012 2 次提交