aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2013-09-04 13:18:07 -0400
committerRalf Baechle <ralf@linux-mips.org>2013-09-04 13:18:07 -0400
commit4d854194f3e60d56d68e82a934d5613c42c1273b (patch)
tree685c39d2c4452f9208240833b13c25e97c2a2c1f
parent12d14e0edd4ea7b5fd879e55855969771d37aad8 (diff)
parentf7c1285f0eba8e0910decc0fa5b409f886e4358e (diff)
Merge branch '3.11-fixes' into mips-for-linux-next
-rw-r--r--arch/mips/Kconfig15
-rw-r--r--arch/mips/kernel/mcount.S2
-rw-r--r--arch/mips/kernel/time.c10
-rw-r--r--arch/mips/loongson/common/Makefile3
-rw-r--r--arch/mips/mm/gup.c3
-rw-r--r--arch/mips/powertv/Kconfig9
-rw-r--r--arch/mips/powertv/asic/asic_devices.c12
-rw-r--r--arch/mips/powertv/init.c4
-rw-r--r--arch/mips/powertv/reset.c12
-rw-r--r--arch/mips/txx9/generic/setup.c2
10 files changed, 18 insertions, 54 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index a1a088b2d54d..c2917906caaa 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -132,7 +132,6 @@ config BCM63XX
132 select IRQ_CPU 132 select IRQ_CPU
133 select SYS_HAS_CPU_MIPS32_R1 133 select SYS_HAS_CPU_MIPS32_R1
134 select SYS_HAS_CPU_BMIPS4350 if !BCM63XX_CPU_6338 && !BCM63XX_CPU_6345 && !BCM63XX_CPU_6348 134 select SYS_HAS_CPU_BMIPS4350 if !BCM63XX_CPU_6338 && !BCM63XX_CPU_6345 && !BCM63XX_CPU_6348
135 select NR_CPUS_DEFAULT_2
136 select SYS_SUPPORTS_32BIT_KERNEL 135 select SYS_SUPPORTS_32BIT_KERNEL
137 select SYS_SUPPORTS_BIG_ENDIAN 136 select SYS_SUPPORTS_BIG_ENDIAN
138 select SYS_HAS_EARLY_PRINTK 137 select SYS_HAS_EARLY_PRINTK
@@ -612,7 +611,6 @@ config SIBYTE_SWARM
612 select BOOT_ELF32 611 select BOOT_ELF32
613 select DMA_COHERENT 612 select DMA_COHERENT
614 select HAVE_PATA_PLATFORM 613 select HAVE_PATA_PLATFORM
615 select NR_CPUS_DEFAULT_2
616 select SIBYTE_SB1250 614 select SIBYTE_SB1250
617 select SWAP_IO_SPACE 615 select SWAP_IO_SPACE
618 select SYS_HAS_CPU_SB1 616 select SYS_HAS_CPU_SB1
@@ -626,7 +624,6 @@ config SIBYTE_LITTLESUR
626 select BOOT_ELF32 624 select BOOT_ELF32
627 select DMA_COHERENT 625 select DMA_COHERENT
628 select HAVE_PATA_PLATFORM 626 select HAVE_PATA_PLATFORM
629 select NR_CPUS_DEFAULT_2
630 select SIBYTE_SB1250 627 select SIBYTE_SB1250
631 select SWAP_IO_SPACE 628 select SWAP_IO_SPACE
632 select SYS_HAS_CPU_SB1 629 select SYS_HAS_CPU_SB1
@@ -638,7 +635,6 @@ config SIBYTE_SENTOSA
638 bool "Sibyte BCM91250E-Sentosa" 635 bool "Sibyte BCM91250E-Sentosa"
639 select BOOT_ELF32 636 select BOOT_ELF32
640 select DMA_COHERENT 637 select DMA_COHERENT
641 select NR_CPUS_DEFAULT_2
642 select SIBYTE_SB1250 638 select SIBYTE_SB1250
643 select SWAP_IO_SPACE 639 select SWAP_IO_SPACE
644 select SYS_HAS_CPU_SB1 640 select SYS_HAS_CPU_SB1
@@ -1866,7 +1862,6 @@ config MIPS_MT_SMP
1866 select CPU_MIPSR2_IRQ_VI 1862 select CPU_MIPSR2_IRQ_VI
1867 select CPU_MIPSR2_IRQ_EI 1863 select CPU_MIPSR2_IRQ_EI
1868 select MIPS_MT 1864 select MIPS_MT
1869 select NR_CPUS_DEFAULT_2
1870 select SMP 1865 select SMP
1871 select SYS_SUPPORTS_SCHED_SMT if SMP 1866 select SYS_SUPPORTS_SCHED_SMT if SMP
1872 select SYS_SUPPORTS_SMP 1867 select SYS_SUPPORTS_SMP
@@ -2177,12 +2172,6 @@ config SYS_SUPPORTS_MIPS_CMP
2177config SYS_SUPPORTS_SMP 2172config SYS_SUPPORTS_SMP
2178 bool 2173 bool
2179 2174
2180config NR_CPUS_DEFAULT_1
2181 bool
2182
2183config NR_CPUS_DEFAULT_2
2184 bool
2185
2186config NR_CPUS_DEFAULT_4 2175config NR_CPUS_DEFAULT_4
2187 bool 2176 bool
2188 2177
@@ -2200,10 +2189,8 @@ config NR_CPUS_DEFAULT_64
2200 2189
2201config NR_CPUS 2190config NR_CPUS
2202 int "Maximum number of CPUs (2-64)" 2191 int "Maximum number of CPUs (2-64)"
2203 range 1 64 if NR_CPUS_DEFAULT_1 2192 range 2 64
2204 depends on SMP 2193 depends on SMP
2205 default "1" if NR_CPUS_DEFAULT_1
2206 default "2" if NR_CPUS_DEFAULT_2
2207 default "4" if NR_CPUS_DEFAULT_4 2194 default "4" if NR_CPUS_DEFAULT_4
2208 default "8" if NR_CPUS_DEFAULT_8 2195 default "8" if NR_CPUS_DEFAULT_8
2209 default "16" if NR_CPUS_DEFAULT_16 2196 default "16" if NR_CPUS_DEFAULT_16
diff --git a/arch/mips/kernel/mcount.S b/arch/mips/kernel/mcount.S
index a03e93c4a946..539b6294b613 100644
--- a/arch/mips/kernel/mcount.S
+++ b/arch/mips/kernel/mcount.S
@@ -83,7 +83,7 @@ _mcount:
83 PTR_S MCOUNT_RA_ADDRESS_REG, PT_R12(sp) 83 PTR_S MCOUNT_RA_ADDRESS_REG, PT_R12(sp)
84#endif 84#endif
85 85
86 move a0, ra /* arg1: self return address */ 86 PTR_SUBU a0, ra, 8 /* arg1: self address */
87 .globl ftrace_call 87 .globl ftrace_call
88ftrace_call: 88ftrace_call:
89 nop /* a placeholder for the call to a real tracing function */ 89 nop /* a placeholder for the call to a real tracing function */
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index 9d686bf97b0e..364d26ae4215 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -121,6 +121,14 @@ void __init time_init(void)
121{ 121{
122 plat_time_init(); 122 plat_time_init();
123 123
124 if (!mips_clockevent_init() || !cpu_has_mfc0_count_bug()) 124 /*
125 * The use of the R4k timer as a clock event takes precedence;
126 * if reading the Count register might interfere with the timer
127 * interrupt, then we don't use the timer as a clock source.
128 * We may still use the timer as a clock source though if the
129 * timer interrupt isn't reliable; the interference doesn't
130 * matter then, because we don't use the interrupt.
131 */
132 if (mips_clockevent_init() != 0 || !cpu_has_mfc0_count_bug())
125 init_mips_clocksource(); 133 init_mips_clocksource();
126} 134}
diff --git a/arch/mips/loongson/common/Makefile b/arch/mips/loongson/common/Makefile
index 4c57b3e5743f..9e4484ccbb03 100644
--- a/arch/mips/loongson/common/Makefile
+++ b/arch/mips/loongson/common/Makefile
@@ -3,8 +3,9 @@
3# 3#
4 4
5obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \ 5obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \
6 pci.o bonito-irq.o mem.o machtype.o platform.o 6 bonito-irq.o mem.o machtype.o platform.o
7obj-$(CONFIG_GPIOLIB) += gpio.o 7obj-$(CONFIG_GPIOLIB) += gpio.o
8obj-$(CONFIG_PCI) += pci.o
8 9
9# 10#
10# Serial port support 11# Serial port support
diff --git a/arch/mips/mm/gup.c b/arch/mips/mm/gup.c
index d4ea5c9c4a93..06ce17c2a905 100644
--- a/arch/mips/mm/gup.c
+++ b/arch/mips/mm/gup.c
@@ -12,6 +12,7 @@
12#include <linux/swap.h> 12#include <linux/swap.h>
13#include <linux/hugetlb.h> 13#include <linux/hugetlb.h>
14 14
15#include <asm/cpu-features.h>
15#include <asm/pgtable.h> 16#include <asm/pgtable.h>
16 17
17static inline pte_t gup_get_pte(pte_t *ptep) 18static inline pte_t gup_get_pte(pte_t *ptep)
@@ -273,7 +274,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
273 len = (unsigned long) nr_pages << PAGE_SHIFT; 274 len = (unsigned long) nr_pages << PAGE_SHIFT;
274 275
275 end = start + len; 276 end = start + len;
276 if (end < start) 277 if (end < start || cpu_has_dc_aliases)
277 goto slow_irqon; 278 goto slow_irqon;
278 279
279 /* XXX: batch / limit 'nr' */ 280 /* XXX: batch / limit 'nr' */
diff --git a/arch/mips/powertv/Kconfig b/arch/mips/powertv/Kconfig
index 1a1b03ea6398..dd91fbacbcba 100644
--- a/arch/mips/powertv/Kconfig
+++ b/arch/mips/powertv/Kconfig
@@ -1,14 +1,7 @@
1config BOOTLOADER_DRIVER
2 bool "PowerTV Bootloader Driver Support"
3 default n
4 depends on POWERTV
5 help
6 Use this option if you want to load bootloader driver.
7
8config BOOTLOADER_FAMILY 1config BOOTLOADER_FAMILY
9 string "POWERTV Bootloader Family string" 2 string "POWERTV Bootloader Family string"
10 default "85" 3 default "85"
11 depends on POWERTV && !BOOTLOADER_DRIVER 4 depends on POWERTV
12 help 5 help
13 This value should be specified when the bootloader driver is disabled 6 This value should be specified when the bootloader driver is disabled
14 and must be exactly two characters long. Families supported are: 7 and must be exactly two characters long. Families supported are:
diff --git a/arch/mips/powertv/asic/asic_devices.c b/arch/mips/powertv/asic/asic_devices.c
index 0238af1ba503..8380605d597d 100644
--- a/arch/mips/powertv/asic/asic_devices.c
+++ b/arch/mips/powertv/asic/asic_devices.c
@@ -147,20 +147,10 @@ static __init noinline void platform_set_family(void)
147 if (check_forcefamily(forced_family) == 0) 147 if (check_forcefamily(forced_family) == 0)
148 bootldr_family = BOOTLDRFAMILY(forced_family[0], 148 bootldr_family = BOOTLDRFAMILY(forced_family[0],
149 forced_family[1]); 149 forced_family[1]);
150 else { 150 else
151
152#ifdef CONFIG_BOOTLOADER_DRIVER
153 bootldr_family = (unsigned short) kbldr_GetSWFamily();
154#else
155#if defined(CONFIG_BOOTLOADER_FAMILY)
156 bootldr_family = (unsigned short) BOOTLDRFAMILY( 151 bootldr_family = (unsigned short) BOOTLDRFAMILY(
157 CONFIG_BOOTLOADER_FAMILY[0], 152 CONFIG_BOOTLOADER_FAMILY[0],
158 CONFIG_BOOTLOADER_FAMILY[1]); 153 CONFIG_BOOTLOADER_FAMILY[1]);
159#else
160#error "Unknown Bootloader Family"
161#endif
162#endif
163 }
164 154
165 pr_info("Bootloader Family = 0x%04X\n", bootldr_family); 155 pr_info("Bootloader Family = 0x%04X\n", bootldr_family);
166 156
diff --git a/arch/mips/powertv/init.c b/arch/mips/powertv/init.c
index a01baff52cae..498926377e51 100644
--- a/arch/mips/powertv/init.c
+++ b/arch/mips/powertv/init.c
@@ -87,8 +87,4 @@ void __init prom_init(void)
87 87
88 configure_platform(); 88 configure_platform();
89 prom_meminit(); 89 prom_meminit();
90
91#ifndef CONFIG_BOOTLOADER_DRIVER
92 pr_info("\nBootloader driver isn't loaded...\n");
93#endif
94} 90}
diff --git a/arch/mips/powertv/reset.c b/arch/mips/powertv/reset.c
index 0007652cb774..11c32fbf2784 100644
--- a/arch/mips/powertv/reset.c
+++ b/arch/mips/powertv/reset.c
@@ -21,24 +21,12 @@
21#include <linux/io.h> 21#include <linux/io.h>
22#include <asm/reboot.h> /* Not included by linux/reboot.h */ 22#include <asm/reboot.h> /* Not included by linux/reboot.h */
23 23
24#ifdef CONFIG_BOOTLOADER_DRIVER
25#include <asm/mach-powertv/kbldr.h>
26#endif
27
28#include <asm/mach-powertv/asic_regs.h> 24#include <asm/mach-powertv/asic_regs.h>
29#include "reset.h" 25#include "reset.h"
30 26
31static void mips_machine_restart(char *command) 27static void mips_machine_restart(char *command)
32{ 28{
33#ifdef CONFIG_BOOTLOADER_DRIVER
34 /*
35 * Call the bootloader's reset function to ensure
36 * that persistent data is flushed before hard reset
37 */
38 kbldr_SetCauseAndReset();
39#else
40 writel(0x1, asic_reg_addr(watchdog)); 29 writel(0x1, asic_reg_addr(watchdog));
41#endif
42} 30}
43 31
44void mips_reboot_setup(void) 32void mips_reboot_setup(void)
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index 681e7f86c080..2b0b83c171e0 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -350,7 +350,7 @@ static void __init select_board(void)
350 } 350 }
351 351
352 /* select "default" board */ 352 /* select "default" board */
353#ifdef CONFIG_CPU_TX39XX 353#ifdef CONFIG_TOSHIBA_JMR3927
354 txx9_board_vec = &jmr3927_vec; 354 txx9_board_vec = &jmr3927_vec;
355#endif 355#endif
356#ifdef CONFIG_CPU_TX49XX 356#ifdef CONFIG_CPU_TX49XX