1. 18 5月, 2010 3 次提交
    • J
      S5P6442: DMA: Add platform devices for PL330 DMACs · d460f5b0
      Jassi Brar 提交于
      Samsung's Soc S5P6442 has two PL330 DMACs. First is dedicated for
      Memory->Memory data transfer while the second is meant for data
      transfer with peripherals.
      Define and add the peripheral PL330 DMAC as platform device on the
      S5P6442 platform.
      Signed-off-by: NJassi Brar <jassi.brar@samsung.com>
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      d460f5b0
    • J
      S5P6440: DMA: Add platform devices for PL330 DMACs · d8b5065b
      Jassi Brar 提交于
      Samsung's Soc S5P6440 has one PL330 DMAC.
      Define and add the PL330 DMAC as platform device on the
      S5P6440 platform.
      Signed-off-by: NJassi Brar <jassi.brar@samsung.com>
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      d8b5065b
    • J
      S3C: DMA: Add api driver for PL330 · d800edeb
      Jassi Brar 提交于
      Latest Samsung SoCs have one or more PL330 as their DMACs. This patch
      implements the S3C DMA API for PL330 core driver.
      
      The design has been kept as generic as possible while keeping effort to
      add support for new SoCs to the minimum possible level.
      
      Some of the salient features of this driver are:-
       o  Automatic scheduling of client requests onto DMAC if more than
          one DMAC can reach the peripheral. Factors, such as current load
          and number of exclusive but inactive peripherals that are
          supported by the DMAC, are used to decide suitability of a DMAC
          for a particular client.
       o  CIRCULAR buffer option is supported.
       o  The driver scales transparently with the number of DMACs and total
          peripherals in the platform, since all peripherals are added to
          the peripheral pool and DMACs to the controller pool.
      
      For most conservative use of memory, smallest driver size and best
      performance, we don't employ legacy data structures of the S3C DMA API.
      That should not have any affect since those data structures are completely
      invisible to the DMA clients.
      Signed-off-by: NJassi Brar <jassi.brar@samsung.com>
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      d800edeb
  2. 01 5月, 2010 1 次提交
  3. 29 4月, 2010 1 次提交
  4. 24 4月, 2010 24 次提交
  5. 23 4月, 2010 4 次提交
  6. 22 4月, 2010 1 次提交
  7. 21 4月, 2010 1 次提交
    • R
      ARM: fix build error in arch/arm/kernel/process.c · 4260415f
      Russell King 提交于
      /tmp/ccJ3ssZW.s: Assembler messages:
      /tmp/ccJ3ssZW.s:1952: Error: can't resolve `.text' {.text section} - `.LFB1077'
      
      This is caused because:
      
      	.section .data
      	.section .text
      	.section .text
      	.previous
      
      does not return us to the .text section, but the .data section; this
      makes use of .previous dangerous if the ordering of previous sections
      is not known.
      
      Fix up the other users of .previous; .pushsection and .popsection are
      a safer pairing to use than .section and .previous.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      4260415f
  8. 14 4月, 2010 5 次提交
    • E
      ARM: 5974/1: arm/mach-at91 Makefile: remove two blanks. · b1cdbb5f
      Ernst Schwab 提交于
      Cosmetic change to mach-at91 Makefile: remove two blanks introduced
      by earlier patches.
      Signed-off-by: NErnst Schwab <eschwab@online.de>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      b1cdbb5f
    • M
      ARM: 6052/1: kdump: make kexec work in interrupt context · 3f2d4f56
      Mika Westerberg 提交于
      When crash happens in interrupt context there is no userspace context.
      We always use current->active_mm in those cases.
      Signed-off-by: NMika Westerberg <ext-mika.1.westerberg@nokia.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      3f2d4f56
    • I
      ARM: 6051/1: VFP: preserve the HW context when calling signal handlers · 82c6f5a5
      Imre Deak 提交于
      From: Imre Deak <imre.deak@nokia.com>
      
      Signal handlers can use floating point, so prevent them to corrupt
      the main thread's VFP context. So far there were two signal stack
      frame formats defined based on the VFP implementation, but the user
      struct used for ptrace covers all posibilities, so use it for the
      signal stack too.
      
      Introduce also a new user struct for VFP exception registers. In
      this too fields not relevant to the current VFP architecture are
      ignored.
      
      Support to save / restore the exception registers was added by
      Will Deacon.
      Signed-off-by: NImre Deak <imre.deak@nokia.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      82c6f5a5
    • I
      ARM: 6050/1: VFP: fix the SMP versions of vfp_{sync,flush}_hwstate · 5c5cac63
      Imre Deak 提交于
      From: Imre Deak <imre.deak@nokia.com>
      
      Recently the UP versions of these functions were refactored and as
      a side effect it became possible to call them for the current thread.
      This isn't true for the SMP versions however, so fix this up.
      Signed-off-by: NImre Deak <imre.deak@nokia.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      5c5cac63
    • N
      ARM: 6007/1: fix highmem with VIPT cache and DMA · 7e5a69e8
      Nicolas Pitre 提交于
      The VIVT cache of a highmem page is always flushed before the page
      is unmapped.  This cache flush is explicit through flush_cache_kmaps()
      in flush_all_zero_pkmaps(), or through __cpuc_flush_dcache_area() in
      kunmap_atomic().  There is also an implicit flush of those highmem pages
      that were part of a process that just terminated making those pages free
      as the whole VIVT cache has to be flushed on every task switch. Hence
      unmapped highmem pages need no cache maintenance in that case.
      
      However unmapped pages may still be cached with a VIPT cache because the
      cache is tagged with physical addresses.  There is no need for a whole
      cache flush during task switching for that reason, and despite the
      explicit cache flushes in flush_all_zero_pkmaps() and kunmap_atomic(),
      some highmem pages that were mapped in user space end up still cached
      even when they become unmapped.
      
      So, we do have to perform cache maintenance on those unmapped highmem
      pages in the context of DMA when using a VIPT cache.  Unfortunately,
      it is not possible to perform that cache maintenance using physical
      addresses as all the L1 cache maintenance coprocessor functions accept
      virtual addresses only.  Therefore we have no choice but to set up a
      temporary virtual mapping for that purpose.
      
      And of course the explicit cache flushing when unmapping a highmem page
      on a system with a VIPT cache now can go, which should increase
      performance.
      
      While at it, because the code in __flush_dcache_page() has to be modified
      anyway, let's also make sure the mapped highmem pages are pinned with
      kmap_high_get() for the duration of the cache maintenance operation.
      Because kunmap() does unmap highmem pages lazily, it was reported by
      Gary King <GKing@nvidia.com> that those pages ended up being unmapped
      during cache maintenance on SMP causing segmentation faults.
      Signed-off-by: NNicolas Pitre <nico@marvell.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      7e5a69e8