1. 25 12月, 2012 3 次提交
    • S
      ARM: delete struct sys_timer · 6bb27d73
      Stephen Warren 提交于
      Now that the only field in struct sys_timer is .init, delete the struct,
      and replace the machine descriptor .timer field with the initialization
      function itself.
      
      This will enable moving timer drivers into drivers/clocksource without
      having to place a public prototype of each struct sys_timer object into
      include/linux; the intent is to create a single of_clocksource_init()
      function that determines which timer driver to initialize by scanning
      the device dtree, much like the proposed irqchip_init() at:
      http://www.spinics.net/lists/arm-kernel/msg203686.html
      
      Includes mach-omap2 fixes from Igor Grinberg.
      Tested-by: NRobert Jarzmik <robert.jarzmik@free.fr>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      6bb27d73
    • S
      ARM: remove struct sys_timer suspend and resume fields · 7704c095
      Stephen Warren 提交于
      These fields duplicate e.g. struct clock_event_device's suspend and
      resume fields, so remove them now that nothing is using them. The aim
      is to remove all fields from struct sys_timer except .init, then replace
      the ARM machine descriptor's .timer field with a .init_time function
      instead, and delete struct sys_timer.
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      7704c095
    • S
      ARM: set arch_gettimeoffset directly · 23c197b7
      Stephen Warren 提交于
      remove ARM's struct sys_timer .offset function pointer, and instead
      directly set the arch_gettimeoffset function pointer when the timer
      driver is initialized. This requires multiplying all function results
      by 1000, since the removed arm_gettimeoffset() did this. Also,
      s/unsigned long/u32/ just to make the function prototypes exactly
      match that of arch_gettimeoffset.
      
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Andrew Victor <linux@maxim.org.za>
      Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      Cc: Hartley Sweeten <hsweeten@visionengravers.com>
      Cc: Ryan Mallon <rmallon@gmail.com>
      Cc: Ben Dooks <ben-linux@fluff.org>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      23c197b7
  2. 20 12月, 2012 1 次提交
  3. 11 12月, 2012 1 次提交
  4. 04 12月, 2012 1 次提交
    • M
      ARM: dma-mapping: support debug_dma_mapping_error · a0157573
      Ming Lei 提交于
      Without the patch, kind of below warning will be dumped if DMA-API
      debug is enabled:
      
      [   11.069763] ------------[ cut here ]------------
      [   11.074645] WARNING: at lib/dma-debug.c:948 check_unmap+0x770/0x860()
      [   11.081420] ehci-omap ehci-omap.0: DMA-API: device driver failed to
      check map error[device address=0x0000000
      0adb78e80] [size=8 bytes] [mapped as single]
      [   11.095611] Modules linked in:
      
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: NMing Lei <ming.lei@canonical.com>
      Signed-off-by: NJoerg Roedel <joro@8bytes.org>
      a0157573
  5. 03 12月, 2012 1 次提交
  6. 29 11月, 2012 3 次提交
  7. 26 11月, 2012 1 次提交
  8. 23 11月, 2012 1 次提交
  9. 22 11月, 2012 1 次提交
  10. 19 11月, 2012 6 次提交
  11. 16 11月, 2012 5 次提交
  12. 14 11月, 2012 1 次提交
  13. 13 11月, 2012 2 次提交
  14. 09 11月, 2012 6 次提交
  15. 07 11月, 2012 1 次提交
  16. 06 11月, 2012 3 次提交
    • R
      ARM: implement debug_ll_io_init() · e5c5f2ad
      Rob Herring 提交于
      When using DEBUG_LL, the UART's (or other HW's) registers are mapped
      into early page tables based on the results of assembly macro addruart.
      Later, when the page tables are replaced, the same virtual address must
      remain valid. Historically, this has been ensured by using defines from
      <mach/iomap.h> in both the implementation of addruart, and the machine's
      .map_io() function. However, with the move to single zImage, we wish to
      remove <mach/iomap.h>. To enable this, the macro addruart may be used
      when constructing the late page tables too; addruart is exposed as a
      C function debug_ll_addr(), and used to set up the required mapping in
      debug_ll_io_init(), which may called on an opt-in basis from a machine's
      .map_io() function.
      Signed-off-by: NRob Herring <rob.herring@calxeda.com>
      [swarren: Mask map.virtual with PAGE_MASK. Checked for NULL results from
       debug_ll_addr (e.g. when selected UART isn't valid). Fixed compile when
       either !CONFIG_DEBUG_LL or CONFIG_DEBUG_SEMIHOSTING.]
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      e5c5f2ad
    • P
      ARM: vexpress: Start using new Versatile Express infrastructure · 38669e04
      Pawel Moll 提交于
      This patch starts using all the configuration infrastructure.
      
      - generic GPIO library is forced now
      
      - sysreg GPIOs are used as MMC CD and WP information sources;
        thanks to this MMCI auxiliary data is not longer necessary
      
      - DVI muxer and mode control is removed from non-DT V2P-CA9 code
        as this is now handled by the vexpress-dvi driver
      
      - clock generators control is removed as is being handled by the
        common clock driver now
      
      - the sysreg and sysctl control is now delegated to the
        appropriate drivers and all related code was removed
      
      - NOR Flash set_vpp function has been removed as the control
        bit used does _not_ control its VPP line, but the #WP signal
        instead (which is de facto unusable in case of Linux MTD
        drivers); this also allowed the remove its DT auxiliary
        data
      
      The non-DT code defines only minimal required number of
      the config devices. Device Trees are updated to make use
      of all new features.
      Signed-off-by: NPawel Moll <pawel.moll@arm.com>
      38669e04
    • W
      ARM: mm: remove IPI broadcasting on ASID rollover · b5466f87
      Will Deacon 提交于
      ASIDs are allocated to MMU contexts based on a rolling counter. This
      means that after 255 allocations we must invalidate all existing ASIDs
      via an expensive IPI mechanism to synchronise all of the online CPUs and
      ensure that all tasks execute with an ASID from the new generation.
      
      This patch changes the rollover behaviour so that we rely instead on the
      hardware broadcasting of the TLB invalidation to avoid the IPI calls.
      This works by keeping track of the active ASID on each core, which is
      then reserved in the case of a rollover so that currently scheduled
      tasks can continue to run. For cores without hardware TLB broadcasting,
      we keep track of pending flushes in a cpumask, so cores can flush their
      local TLB before scheduling a new mm.
      Reviewed-by: NCatalin Marinas <catalin.marinas@arm.com>
      Tested-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      b5466f87
  17. 30 10月, 2012 1 次提交
  18. 29 10月, 2012 2 次提交
    • 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