Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[pandora-kernel.git] / arch / mips / include / asm / mach-ath79 / kernel-entry-init.h
1 /*
2  *  Atheros AR71XX/AR724X/AR913X specific kernel entry setup
3  *
4  *  Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
5  *
6  *  This program is free software; you can redistribute it and/or modify it
7  *  under the terms of the GNU General Public License version 2 as published
8  *  by the Free Software Foundation.
9  *
10  */
11 #ifndef __ASM_MACH_ATH79_KERNEL_ENTRY_H
12 #define __ASM_MACH_ATH79_KERNEL_ENTRY_H
13
14         /*
15          * Some bootloaders set the 'Kseg0 coherency algorithm' to
16          * 'Cacheable, noncoherent, write-through, no write allocate'
17          * and this cause performance issues. Let's go and change it to
18          * 'Cacheable, noncoherent, write-back, write allocate'
19          */
20         .macro  kernel_entry_setup
21         mfc0    t0, CP0_CONFIG
22         li      t1, ~CONF_CM_CMASK
23         and     t0, t1
24         ori     t0, CONF_CM_CACHABLE_NONCOHERENT
25         mtc0    t0, CP0_CONFIG
26         nop
27         .endm
28
29         .macro  smp_slave_setup
30         .endm
31
32 #endif /* __ASM_MACH_ATH79_KERNEL_ENTRY_H */