| To: | Ralf Baechle <ralf@linux-mips.org> |
|---|---|
| Subject: | [PATCH] r4k_dma_cache_inv (arch/mips/mm/c-r4k.c) |
| From: | peter fuerst <pf@net.alphadv.de> |
| Date: | Fri, 25 Mar 2005 20:56:07 +0100 (CET) |
| Cc: | linux-mips@linux-mips.org |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| Reply-to: | pf@net.alphadv.de |
| Sender: | linux-mips-bounce@linux-mips.org |
Hi,
here's a (long outstanding) patch, that let's `r4k_dma_cache_inv' do what
it should do, instead of being a mere copy of `r4k_dma_cache_wback_inv'.
(There really are machines, where we occasionaly can't avoid to invalidate
cache(s) :)
Please apply. Thank you.
with best regards
pf
--- snip ---------------------------------------------------------------
diff -Nau -b -B arch/mips/mm/c-r4k.c.1.107 arch/mips/mm/c-r4k.c
--- arch/mips/mm/c-r4k.c.1.107 Fri Mar 18 17:36:53 2005
+++ arch/mips/mm/c-r4k.c Tue Mar 22 23:35:23 2005
@@ -668,32 +668,24 @@
if (cpu_has_subset_pcaches) {
unsigned long sc_lsize = current_cpu_data.scache.linesz;
- if (size >= scache_size) {
- r4k_blast_scache();
- return;
- }
-
a = addr & ~(sc_lsize - 1);
end = (addr + size - 1) & ~(sc_lsize - 1);
while (1) {
- flush_scache_line(a); /* Hit_Writeback_Inv_SD */
+ invalidate_scache_line(a); /* Hit_Invalidate_SD/S
*/
if (a == end)
break;
a += sc_lsize;
}
return;
}
-
- if (size >= dcache_size) {
- r4k_blast_dcache();
- } else {
+ {
unsigned long dc_lsize = current_cpu_data.dcache.linesz;
R4600_HIT_CACHEOP_WAR_IMPL;
a = addr & ~(dc_lsize - 1);
end = (addr + size - 1) & ~(dc_lsize - 1);
while (1) {
- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
+ invalidate_dcache_line(a); /* Hit_Invalidate_D */
if (a == end)
break;
a += dc_lsize;
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH] serial console (drivers/serial/ip22zilog.c), peter fuerst |
|---|---|
| Next by Date: | Re: Observations on LLSC and SMP, Ed Martini |
| Previous by Thread: | [PATCH] serial console (drivers/serial/ip22zilog.c), peter fuerst |
| Next by Thread: | [Patch] Changes to make 2.4 build with gcc-4.0.0..., David Daney |
| Indexes: | [Date] [Thread] [Top] [All Lists] |