162306a36Sopenharmony_ci/* 262306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 362306a36Sopenharmony_ci * License. See the file "COPYING" in the main directory of this archive 462306a36Sopenharmony_ci * for more details. 562306a36Sopenharmony_ci * 662306a36Sopenharmony_ci * Micro-assembler generated clear_page/copy_page functions. 762306a36Sopenharmony_ci * 862306a36Sopenharmony_ci * Copyright (C) 2012 MIPS Technologies, Inc. 962306a36Sopenharmony_ci * Copyright (C) 2012 Ralf Baechle <ralf@linux-mips.org> 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci#include <linux/export.h> 1262306a36Sopenharmony_ci#include <asm/asm.h> 1362306a36Sopenharmony_ci#include <asm/regdef.h> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#ifdef CONFIG_SIBYTE_DMA_PAGEOPS 1662306a36Sopenharmony_ci#define cpu_clear_page_function_name clear_page_cpu 1762306a36Sopenharmony_ci#define cpu_copy_page_function_name copy_page_cpu 1862306a36Sopenharmony_ci#else 1962306a36Sopenharmony_ci#define cpu_clear_page_function_name clear_page 2062306a36Sopenharmony_ci#define cpu_copy_page_function_name copy_page 2162306a36Sopenharmony_ci#endif 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci/* 2462306a36Sopenharmony_ci * Maximum sizes: 2562306a36Sopenharmony_ci * 2662306a36Sopenharmony_ci * R4000 128 bytes S-cache: 0x058 bytes 2762306a36Sopenharmony_ci * R4600 v1.7: 0x05c bytes 2862306a36Sopenharmony_ci * R4600 v2.0: 0x060 bytes 2962306a36Sopenharmony_ci * With prefetching, 16 word strides 0x120 bytes 3062306a36Sopenharmony_ci */ 3162306a36Sopenharmony_ciEXPORT(__clear_page_start) 3262306a36Sopenharmony_ciLEAF(cpu_clear_page_function_name) 3362306a36Sopenharmony_ciEXPORT_SYMBOL(cpu_clear_page_function_name) 3462306a36Sopenharmony_ci1: j 1b /* Dummy, will be replaced. */ 3562306a36Sopenharmony_ci .space 288 3662306a36Sopenharmony_ciEND(cpu_clear_page_function_name) 3762306a36Sopenharmony_ciEXPORT(__clear_page_end) 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci/* 4062306a36Sopenharmony_ci * Maximum sizes: 4162306a36Sopenharmony_ci * 4262306a36Sopenharmony_ci * R4000 128 bytes S-cache: 0x11c bytes 4362306a36Sopenharmony_ci * R4600 v1.7: 0x080 bytes 4462306a36Sopenharmony_ci * R4600 v2.0: 0x07c bytes 4562306a36Sopenharmony_ci * With prefetching, 16 word strides 0x540 bytes 4662306a36Sopenharmony_ci */ 4762306a36Sopenharmony_ciEXPORT(__copy_page_start) 4862306a36Sopenharmony_ciLEAF(cpu_copy_page_function_name) 4962306a36Sopenharmony_ciEXPORT_SYMBOL(cpu_copy_page_function_name) 5062306a36Sopenharmony_ci1: j 1b /* Dummy, will be replaced. */ 5162306a36Sopenharmony_ci .space 1344 5262306a36Sopenharmony_ciEND(cpu_copy_page_function_name) 5362306a36Sopenharmony_ciEXPORT(__copy_page_end) 54