Эх сурвалжийг харах

Merge branch '3.11-fixes' into mips-for-linux-next

Ralf Baechle 11 жил өмнө
parent
commit
4d854194f3

+ 1 - 14
arch/mips/Kconfig

@@ -132,7 +132,6 @@ config BCM63XX
 	select IRQ_CPU
 	select IRQ_CPU
 	select SYS_HAS_CPU_MIPS32_R1
 	select SYS_HAS_CPU_MIPS32_R1
 	select SYS_HAS_CPU_BMIPS4350 if !BCM63XX_CPU_6338 && !BCM63XX_CPU_6345 && !BCM63XX_CPU_6348
 	select SYS_HAS_CPU_BMIPS4350 if !BCM63XX_CPU_6338 && !BCM63XX_CPU_6345 && !BCM63XX_CPU_6348
-	select NR_CPUS_DEFAULT_2
 	select SYS_SUPPORTS_32BIT_KERNEL
 	select SYS_SUPPORTS_32BIT_KERNEL
 	select SYS_SUPPORTS_BIG_ENDIAN
 	select SYS_SUPPORTS_BIG_ENDIAN
 	select SYS_HAS_EARLY_PRINTK
 	select SYS_HAS_EARLY_PRINTK
@@ -612,7 +611,6 @@ config SIBYTE_SWARM
 	select BOOT_ELF32
 	select BOOT_ELF32
 	select DMA_COHERENT
 	select DMA_COHERENT
 	select HAVE_PATA_PLATFORM
 	select HAVE_PATA_PLATFORM
-	select NR_CPUS_DEFAULT_2
 	select SIBYTE_SB1250
 	select SIBYTE_SB1250
 	select SWAP_IO_SPACE
 	select SWAP_IO_SPACE
 	select SYS_HAS_CPU_SB1
 	select SYS_HAS_CPU_SB1
@@ -626,7 +624,6 @@ config SIBYTE_LITTLESUR
 	select BOOT_ELF32
 	select BOOT_ELF32
 	select DMA_COHERENT
 	select DMA_COHERENT
 	select HAVE_PATA_PLATFORM
 	select HAVE_PATA_PLATFORM
-	select NR_CPUS_DEFAULT_2
 	select SIBYTE_SB1250
 	select SIBYTE_SB1250
 	select SWAP_IO_SPACE
 	select SWAP_IO_SPACE
 	select SYS_HAS_CPU_SB1
 	select SYS_HAS_CPU_SB1
@@ -638,7 +635,6 @@ config SIBYTE_SENTOSA
 	bool "Sibyte BCM91250E-Sentosa"
 	bool "Sibyte BCM91250E-Sentosa"
 	select BOOT_ELF32
 	select BOOT_ELF32
 	select DMA_COHERENT
 	select DMA_COHERENT
-	select NR_CPUS_DEFAULT_2
 	select SIBYTE_SB1250
 	select SIBYTE_SB1250
 	select SWAP_IO_SPACE
 	select SWAP_IO_SPACE
 	select SYS_HAS_CPU_SB1
 	select SYS_HAS_CPU_SB1
@@ -1866,7 +1862,6 @@ config MIPS_MT_SMP
 	select CPU_MIPSR2_IRQ_VI
 	select CPU_MIPSR2_IRQ_VI
 	select CPU_MIPSR2_IRQ_EI
 	select CPU_MIPSR2_IRQ_EI
 	select MIPS_MT
 	select MIPS_MT
-	select NR_CPUS_DEFAULT_2
 	select SMP
 	select SMP
 	select SYS_SUPPORTS_SCHED_SMT if SMP
 	select SYS_SUPPORTS_SCHED_SMT if SMP
 	select SYS_SUPPORTS_SMP
 	select SYS_SUPPORTS_SMP
@@ -2177,12 +2172,6 @@ config SYS_SUPPORTS_MIPS_CMP
 config SYS_SUPPORTS_SMP
 config SYS_SUPPORTS_SMP
 	bool
 	bool
 
 
-config NR_CPUS_DEFAULT_1
-	bool
-
-config NR_CPUS_DEFAULT_2
-	bool
-
 config NR_CPUS_DEFAULT_4
 config NR_CPUS_DEFAULT_4
 	bool
 	bool
 
 
@@ -2200,10 +2189,8 @@ config NR_CPUS_DEFAULT_64
 
 
 config NR_CPUS
 config NR_CPUS
 	int "Maximum number of CPUs (2-64)"
 	int "Maximum number of CPUs (2-64)"
-	range 1 64 if NR_CPUS_DEFAULT_1
+	range 2 64
 	depends on SMP
 	depends on SMP
-	default "1" if NR_CPUS_DEFAULT_1
-	default "2" if NR_CPUS_DEFAULT_2
 	default "4" if NR_CPUS_DEFAULT_4
 	default "4" if NR_CPUS_DEFAULT_4
 	default "8" if NR_CPUS_DEFAULT_8
 	default "8" if NR_CPUS_DEFAULT_8
 	default "16" if NR_CPUS_DEFAULT_16
 	default "16" if NR_CPUS_DEFAULT_16

+ 1 - 1
arch/mips/kernel/mcount.S

@@ -83,7 +83,7 @@ _mcount:
 	PTR_S	MCOUNT_RA_ADDRESS_REG, PT_R12(sp)
 	PTR_S	MCOUNT_RA_ADDRESS_REG, PT_R12(sp)
 #endif
 #endif
 
 
-	move	a0, ra		/* arg1: self return address */
+	PTR_SUBU a0, ra, 8	/* arg1: self address */
 	.globl ftrace_call
 	.globl ftrace_call
 ftrace_call:
 ftrace_call:
 	nop	/* a placeholder for the call to a real tracing function */
 	nop	/* a placeholder for the call to a real tracing function */

+ 9 - 1
arch/mips/kernel/time.c

@@ -121,6 +121,14 @@ void __init time_init(void)
 {
 {
 	plat_time_init();
 	plat_time_init();
 
 
-	if (!mips_clockevent_init() || !cpu_has_mfc0_count_bug())
+	/*
+	 * The use of the R4k timer as a clock event takes precedence;
+	 * if reading the Count register might interfere with the timer
+	 * interrupt, then we don't use the timer as a clock source.
+	 * We may still use the timer as a clock source though if the
+	 * timer interrupt isn't reliable; the interference doesn't
+	 * matter then, because we don't use the interrupt.
+	 */
+	if (mips_clockevent_init() != 0 || !cpu_has_mfc0_count_bug())
 		init_mips_clocksource();
 		init_mips_clocksource();
 }
 }

+ 2 - 1
arch/mips/loongson/common/Makefile

@@ -3,8 +3,9 @@
 #
 #
 
 
 obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \
 obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \
-    pci.o bonito-irq.o mem.o machtype.o platform.o
+    bonito-irq.o mem.o machtype.o platform.o
 obj-$(CONFIG_GPIOLIB) += gpio.o
 obj-$(CONFIG_GPIOLIB) += gpio.o
+obj-$(CONFIG_PCI) += pci.o
 
 
 #
 #
 # Serial port support
 # Serial port support

+ 2 - 1
arch/mips/mm/gup.c

@@ -12,6 +12,7 @@
 #include <linux/swap.h>
 #include <linux/swap.h>
 #include <linux/hugetlb.h>
 #include <linux/hugetlb.h>
 
 
+#include <asm/cpu-features.h>
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 
 
 static inline pte_t gup_get_pte(pte_t *ptep)
 static 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,
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 	len = (unsigned long) nr_pages << PAGE_SHIFT;
 
 
 	end = start + len;
 	end = start + len;
-	if (end < start)
+	if (end < start || cpu_has_dc_aliases)
 		goto slow_irqon;
 		goto slow_irqon;
 
 
 	/* XXX: batch / limit 'nr' */
 	/* XXX: batch / limit 'nr' */

+ 1 - 8
arch/mips/powertv/Kconfig

@@ -1,14 +1,7 @@
-config BOOTLOADER_DRIVER
-	bool "PowerTV Bootloader Driver Support"
-	default n
-	depends on POWERTV
-	help
-	  Use this option if you want to load bootloader driver.
-
 config BOOTLOADER_FAMILY
 config BOOTLOADER_FAMILY
 	string "POWERTV Bootloader Family string"
 	string "POWERTV Bootloader Family string"
 	default "85"
 	default "85"
-	depends on POWERTV && !BOOTLOADER_DRIVER
+	depends on POWERTV
 	help
 	help
 	  This value should be specified when the bootloader driver is disabled
 	  This value should be specified when the bootloader driver is disabled
 	  and must be exactly two characters long. Families supported are:
 	  and must be exactly two characters long. Families supported are:

+ 1 - 11
arch/mips/powertv/asic/asic_devices.c

@@ -147,20 +147,10 @@ static __init noinline void platform_set_family(void)
 	if (check_forcefamily(forced_family) == 0)
 	if (check_forcefamily(forced_family) == 0)
 		bootldr_family = BOOTLDRFAMILY(forced_family[0],
 		bootldr_family = BOOTLDRFAMILY(forced_family[0],
 			forced_family[1]);
 			forced_family[1]);
-	else {
-
-#ifdef CONFIG_BOOTLOADER_DRIVER
-		bootldr_family = (unsigned short) kbldr_GetSWFamily();
-#else
-#if defined(CONFIG_BOOTLOADER_FAMILY)
+	else
 		bootldr_family = (unsigned short) BOOTLDRFAMILY(
 		bootldr_family = (unsigned short) BOOTLDRFAMILY(
 			CONFIG_BOOTLOADER_FAMILY[0],
 			CONFIG_BOOTLOADER_FAMILY[0],
 			CONFIG_BOOTLOADER_FAMILY[1]);
 			CONFIG_BOOTLOADER_FAMILY[1]);
-#else
-#error "Unknown Bootloader Family"
-#endif
-#endif
-	}
 
 
 	pr_info("Bootloader Family = 0x%04X\n", bootldr_family);
 	pr_info("Bootloader Family = 0x%04X\n", bootldr_family);
 
 

+ 0 - 4
arch/mips/powertv/init.c

@@ -87,8 +87,4 @@ void __init prom_init(void)
 
 
 	configure_platform();
 	configure_platform();
 	prom_meminit();
 	prom_meminit();
-
-#ifndef CONFIG_BOOTLOADER_DRIVER
-	pr_info("\nBootloader driver isn't loaded...\n");
-#endif
 }
 }

+ 0 - 12
arch/mips/powertv/reset.c

@@ -21,24 +21,12 @@
 #include <linux/io.h>
 #include <linux/io.h>
 #include <asm/reboot.h>			/* Not included by linux/reboot.h */
 #include <asm/reboot.h>			/* Not included by linux/reboot.h */
 
 
-#ifdef CONFIG_BOOTLOADER_DRIVER
-#include <asm/mach-powertv/kbldr.h>
-#endif
-
 #include <asm/mach-powertv/asic_regs.h>
 #include <asm/mach-powertv/asic_regs.h>
 #include "reset.h"
 #include "reset.h"
 
 
 static void mips_machine_restart(char *command)
 static void mips_machine_restart(char *command)
 {
 {
-#ifdef CONFIG_BOOTLOADER_DRIVER
-	/*
-	 * Call the bootloader's reset function to ensure
-	 * that persistent data is flushed before hard reset
-	 */
-	kbldr_SetCauseAndReset();
-#else
 	writel(0x1, asic_reg_addr(watchdog));
 	writel(0x1, asic_reg_addr(watchdog));
-#endif
 }
 }
 
 
 void mips_reboot_setup(void)
 void mips_reboot_setup(void)

+ 1 - 1
arch/mips/txx9/generic/setup.c

@@ -350,7 +350,7 @@ static void __init select_board(void)
 	}
 	}
 
 
 	/* select "default" board */
 	/* select "default" board */
-#ifdef CONFIG_CPU_TX39XX
+#ifdef CONFIG_TOSHIBA_JMR3927
 	txx9_board_vec = &jmr3927_vec;
 	txx9_board_vec = &jmr3927_vec;
 #endif
 #endif
 #ifdef CONFIG_CPU_TX49XX
 #ifdef CONFIG_CPU_TX49XX