1. 15 8月, 2009 6 次提交
  2. 04 8月, 2009 1 次提交
  3. 22 7月, 2009 1 次提交
    • P
      sh: Migrate from PG_mapped to PG_dcache_dirty. · 2277ab4a
      Paul Mundt 提交于
      This inverts the delayed dcache flush a bit to be more in line with other
      platforms. At the same time this also gives us the ability to do some
      more optimizations and cleanup. Now that the update_mmu_cache() callsite
      only tests for the bit, the implementation can gradually be split out and
      made generic, rather than relying on special implementations for each of
      the peculiar CPU types.
      
      SH7705 in 32kB mode and SH-4 still need slightly different handling, but
      this is something that can remain isolated in the varying page copy/clear
      routines. On top of that, SH-X3 is dcache coherent, so there is no need
      to bother with any of these tests in the PTEAEX version of
      update_mmu_cache(), so we kill that off too.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2277ab4a
  4. 08 9月, 2008 1 次提交
  5. 28 7月, 2008 1 次提交
  6. 28 1月, 2008 1 次提交
  7. 24 9月, 2007 2 次提交
  8. 21 9月, 2007 1 次提交
  9. 25 7月, 2007 1 次提交
  10. 24 7月, 2007 1 次提交
    • P
      sh: Add kmap_coherent()/kunmap_coherent() interface for SH-4. · 8cf1a743
      Paul Mundt 提交于
      This wires up kmap_coherent() and kunmap_coherent() on SH-4, and
      moves away from the p3map_mutex and reserved P3 space, opting to
      use fixmaps for colouring instead.
      
      The copy_user_page()/clear_user_page() implementations are moved
      to this, which fixes the nasty blowups with spinlock debugging
      as a result of having some of these calls nested under the page
      table lock.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      8cf1a743
  11. 05 3月, 2007 1 次提交
  12. 13 2月, 2007 2 次提交
    • P
      sh: Fixup cpu_data references for the non-boot CPUs. · 11c19656
      Paul Mundt 提交于
      There are a lot of bogus cpu_data-> references that only end up working
      for the boot CPU, convert these to current_cpu_data to fixup SMP.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      11c19656
    • P
      sh: Lazy dcache writeback optimizations. · 26b7a78c
      Paul Mundt 提交于
      This converts the lazy dcache handling to the model described in
      Documentation/cachetlb.txt and drops the ptep_get_and_clear() hacks
      used for the aliasing dcaches on SH-4 and SH7705 in 32kB mode. As a
      bonus, this slightly cuts down on the cache flushing frequency.
      
      With that and the PTEA handling out of the way, the update_mmu_cache()
      implementations can be consolidated, and we no longer have to worry
      about which configuration the cache is in for the SH7705 case.
      
      And finally, explicitly disable the lazy writeback on SMP (SH-4A).
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      26b7a78c
  13. 12 12月, 2006 1 次提交
  14. 06 12月, 2006 2 次提交
    • P
      sh: Fixup various PAGE_SIZE == 4096 assumptions. · 510c72ad
      Paul Mundt 提交于
      There were a number of places that made evil PAGE_SIZE == 4k
      assumptions that ended up breaking when trying to play with
      8k and 64k page sizes, this fixes those up.
      
      The most significant change is the way we load THREAD_SIZE,
      previously this was done via:
      
      	mov	#(THREAD_SIZE >> 8), reg
      	shll8	reg
      
      to avoid a memory access and allow the immediate load. With
      a 64k PAGE_SIZE, we're out of range for the immediate load
      size without resorting to special instructions available in
      later ISAs (movi20s and so on). The "workaround" for this is
      to bump up the shift to 10 and insert a shll2, which gives a
      bit more flexibility while still being much cheaper than a
      memory access.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      510c72ad
    • P
      sh: p3map_sem sem2mutex conversion. · 52e27782
      Paul Mundt 提交于
      Simple sem2mutex conversion for the p3map semaphores.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      52e27782
  15. 27 9月, 2006 6 次提交
    • P
      sh: Fix occasional flush_cache_4096() stack corruption. · 33573c0e
      Paul Mundt 提交于
      IRQs disabling in flush_cache_4096 for cache purge. Under certain
      workloads we would get an IRQ in the middle of a purge operation,
      and the cachelines would remain in an inconsistent state, leading
      to occasional stack corruption.
      Signed-off-by: NTakeo Takahashi <takahashi.takeo@renesas.com>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      33573c0e
    • P
      sh: Selective flush_cache_mm() flushing. · 28ccf7f9
      Paul Mundt 提交于
      flush_cache_mm() wraps in to flush_cache_all(), which is rather
      excessive given that the number of PTEs within the specified context
      are generally quite low.  Optimize for walking the mm's VMA list and
      selectively flushing the VMA ranges from the dcache. Invalidate the
      icache only if a VMA sets VM_EXEC.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      28ccf7f9
    • P
      sh: Add control register barriers. · 29847622
      Paul Mundt 提交于
      Currently when making changes to control registers, we
      typically need some time for changes to take effect (8
      nops, generally).  However, for sh4a we simply need to
      do an icbi..
      
      This is a simple patch for implementing a general purpose
      ctrl_barrier() which functions as a control register write
      barrier. There's some additional documentation in the patch
      itself, but it's pretty self explanatory.
      
      There were also some places where we were not doing the
      barrier, which didn't seem to have any adverse effects on
      legacy parts, but certainly did on sh4a. It's safer to have
      the barrier in place for legacy parts as well in these cases,
      though this does make flush_tlb_all() more expensive (by an
      order of 8 nops).  We can ifdef around the flush_tlb_all()
      case for now if it's clear that all legacy parts won't have
      a problem with this.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      29847622
    • R
      sh: Optimized cache handling for SH-4/SH-4A caches. · b638d0b9
      Richard Curnow 提交于
      This reworks some of the SH-4 cache handling code to more easily
      accomodate newer-style caches (particularly for the > direct-mapped
      case), as well as optimizing some of the old code.
      Signed-off-by: NRichard Curnow <richard.curnow@st.com>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      b638d0b9
    • P
      sh: Support for SH-4A memory barriers. · fdfc74f9
      Paul Mundt 提交于
      SH-4A supports 'synco' as a barrier, sprinkle it around
      the cache ops as necessary..
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      fdfc74f9
    • P
      sh: flush_cache_range() cleanup and optimizations. · a252710f
      Paul Mundt 提交于
      flush_cache_range() wasn't page aligning the end of the range,
      we can't assume that it will always be page aligned, and we
      ended up getting unaligned faults in some rare call paths.
      
      Additionally, we add a small optimization to just purge the
      dcache entirely if the range is large enough that the page
      table walking will take longer. We use an arbitrary value of
      64 pages for the large range size, as per sh64.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      a252710f
  16. 01 7月, 2006 1 次提交
  17. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4