summaryrefslogtreecommitdiffstats
path: root/arch/sh/mm/cache.c
Commit message (Collapse)AuthorAgeFilesLines
* sh: Use more aggressive dcache purging in kmap teardown.Paul Mundt2009-09-081-5/+6
| | | | | | | | | This fixes up a number of outstanding issues observed with old mappings on the same colour hanging around. This requires some more optimal handling, but is a safe fallback until all of the corner cases have been handled. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix up and optimize the kmap_coherent() interface.Paul Mundt2009-09-031-4/+4
| | | | | | | | | | | | | This fixes up the kmap_coherent/kunmap_coherent() interface for recent changes both in the page fault path and the shared cache flushers, as well as adding in some optimizations. One of the key things to note here is that the TLB flush itself is deferred until the unmap, and the call in to update_mmu_cache() itself goes away, relying on the regular page fault path to handle the lazy dcache writeback if necessary. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Fix up UP deadlock with SMP-aware cache ops.Paul Mundt2009-09-011-9/+18
| | | | | | | | | | This builds on top of the previous reversion and implements a special on_each_cpu() variant that simple disables preemption across the call while leaving the interrupt state to the function itself. There were some unintended consequences with IRQ disabling in some of these paths on UP that ran in to a deadlock scenario with IRQs being missed. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Make cache flushers SMP-aware.Paul Mundt2009-08-211-59/+78
| | | | | | | | This does a bit of rework for making the cache flushers SMP-aware. The function pointer-based flushers are renamed to local variants with the exported interface being commonly implemented and wrapping as necessary. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Wire up sh5_cache_init().Paul Mundt2009-08-161-0/+6
| | | | | | | Now that the SH-5 code is more or less behaving with the new cacheflush interface, wire up the initialization code. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Convert SH7705 extended mode to new cacheflush interface.Paul Mundt2009-08-151-0/+7
| | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Convert SH-3 to new cacheflush interface.Paul Mundt2009-08-151-0/+6
| | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Convert SH-2A to new cacheflush interface.Paul Mundt2009-08-151-0/+6
| | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Convert SH-2 to new cacheflush interface.Paul Mundt2009-08-151-0/+6
| | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Migrate SH-4 cacheflush ops to function pointers.Paul Mundt2009-08-151-0/+70
| | | | | | | | | | This paves the way for allowing individual CPUs to overload the individual flushing routines that they care about without having to depend on weak aliases. SH-4 is converted over initially, as it wires up pretty much everything. The majority of the other CPUs will simply use the default no-op implementation with their own region flushers wired up. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Move alias computation to shared cache init.Paul Mundt2009-08-151-0/+46
| | | | | | | | | | | This migrates the alias computation and printing of probed cache parameters from the SH-4 code to the shared cpu_cache_init(). This permits other platforms with aliases to make use of the same probe logic without having to roll their own, and also produces consistent output regardless of platform. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: Centralize the CPU cache initialization routines.Paul Mundt2009-08-151-0/+11
| | | | | | | | This provides a central point for CPU cache initialization routines. This replaces the antiquated p3_cache_init() method, which the vast majority of CPUs never cared about. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* sh: rename pg-mmu.c -> cache.c, enable generically.Paul Mundt2009-08-151-0/+129
This builds in the newly created cache.c (renamed from pg-mmu.c) for both MMU and NOMMU configurations. The kmap_coherent() stubs and alias information recorded by each CPU family takes care of doing the right thing while enabling the code to be commonly shared. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
OpenPOWER on IntegriCloud