-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MIPS: Refactor 'clear_page' and 'copy_page' functions.
Remove usage of the '__attribute__((alias("...")))' hack that aliased to integer arrays containing micro-assembled instructions. This hack breaks when building a microMIPS kernel. It also makes the code much easier to understand. [ralf@linux-mips.org: Added back export of the clear_page and copy_page symbols so certain modules will work again. Also fixed build with CONFIG_SIBYTE_DMA_PAGEOPS enabled.] Signed-off-by: Steven J. Hill <sjhill@mips.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/3866/ Acked-by: David Daney <david.daney@cavium.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
- Loading branch information
Steven J. Hill
authored and
Ralf Baechle
committed
Jul 19, 2012
1 parent
78d4803
commit c022630
Showing
4 changed files
with
77 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
/* | ||
* This file is subject to the terms and conditions of the GNU General Public | ||
* License. See the file "COPYING" in the main directory of this archive | ||
* for more details. | ||
* | ||
* Micro-assembler generated clear_page/copy_page functions. | ||
* | ||
* Copyright (C) 2012 MIPS Technologies, Inc. | ||
* Copyright (C) 2012 Ralf Baechle <ralf@linux-mips.org> | ||
*/ | ||
#include <asm/asm.h> | ||
#include <asm/regdef.h> | ||
|
||
#ifdef CONFIG_SIBYTE_DMA_PAGEOPS | ||
#define cpu_clear_page_function_name clear_page_cpu | ||
#define cpu_copy_page_function_name copy_page_cpu | ||
#else | ||
#define cpu_clear_page_function_name clear_page | ||
#define cpu_copy_page_function_name copy_page | ||
#endif | ||
|
||
/* | ||
* Maximum sizes: | ||
* | ||
* R4000 128 bytes S-cache: 0x058 bytes | ||
* R4600 v1.7: 0x05c bytes | ||
* R4600 v2.0: 0x060 bytes | ||
* With prefetching, 16 word strides 0x120 bytes | ||
*/ | ||
EXPORT(__clear_page_start) | ||
LEAF(cpu_clear_page_function_name) | ||
1: j 1b /* Dummy, will be replaced. */ | ||
.space 288 | ||
END(cpu_clear_page_function_name) | ||
EXPORT(__clear_page_end) | ||
|
||
/* | ||
* Maximum sizes: | ||
* | ||
* R4000 128 bytes S-cache: 0x11c bytes | ||
* R4600 v1.7: 0x080 bytes | ||
* R4600 v2.0: 0x07c bytes | ||
* With prefetching, 16 word strides 0x540 bytes | ||
*/ | ||
EXPORT(__copy_page_start) | ||
LEAF(cpu_copy_page_function_name) | ||
1: j 1b /* Dummy, will be replaced. */ | ||
.space 1344 | ||
END(cpu_copy_page_function_name) | ||
EXPORT(__copy_page_end) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters