Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 356948f0 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

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

parents 4d854194 c2882b7f
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -126,12 +126,13 @@ int rtc_mips_set_mmss(unsigned long nowtime)
void __init plat_time_init(void)
void __init plat_time_init(void)
{
{
	u32 start, end;
	u32 start, end;
	int i = HZ / 10;
	int i = HZ / 8;


	/* Set up the rate of periodic DS1287 interrupts. */
	/* Set up the rate of periodic DS1287 interrupts. */
	ds1287_set_base_clock(HZ);
	ds1287_set_base_clock(HZ);


	if (cpu_has_counter) {
	if (cpu_has_counter) {
		ds1287_timer_state();
		while (!ds1287_timer_state())
		while (!ds1287_timer_state())
			;
			;


@@ -143,7 +144,7 @@ void __init plat_time_init(void)


		end = read_c0_count();
		end = read_c0_count();


		mips_hpt_frequency = (end - start) * 10;
		mips_hpt_frequency = (end - start) * 8;
		printk(KERN_INFO "MIPS counter frequency %dHz\n",
		printk(KERN_INFO "MIPS counter frequency %dHz\n",
			mips_hpt_frequency);
			mips_hpt_frequency);
	} else if (IOASIC)
	} else if (IOASIC)
+3 −3
Original line number Original line Diff line number Diff line
@@ -41,9 +41,9 @@ void __init dec_ioasic_clocksource_init(void)
{
{
	unsigned int freq;
	unsigned int freq;
	u32 start, end;
	u32 start, end;
	int i = HZ / 10;
	int i = HZ / 8;



	ds1287_timer_state();
	while (!ds1287_timer_state())
	while (!ds1287_timer_state())
		;
		;


@@ -55,7 +55,7 @@ void __init dec_ioasic_clocksource_init(void)


	end = dec_ioasic_hpt_read(&clocksource_dec);
	end = dec_ioasic_hpt_read(&clocksource_dec);


	freq = (end - start) * 10;
	freq = (end - start) * 8;
	printk(KERN_INFO "I/O ASIC clock frequency %dHz\n", freq);
	printk(KERN_INFO "I/O ASIC clock frequency %dHz\n", freq);


	clocksource_dec.rating = 200 + freq / 10000000;
	clocksource_dec.rating = 200 + freq / 10000000;
+6 −0
Original line number Original line Diff line number Diff line
@@ -26,6 +26,12 @@ process_entry:
	PTR_L		s2, (s0)
	PTR_L		s2, (s0)
	PTR_ADD		s0, s0, SZREG
	PTR_ADD		s0, s0, SZREG


	/*
	 * In case of a kdump/crash kernel, the indirection page is not
	 * populated as the kernel is directly copied to a reserved location
	 */
	beqz		s2, done

	/* destination page */
	/* destination page */
	and		s3, s2, 0x1
	and		s3, s2, 0x1
	beq		s3, zero, 1f
	beq		s3, zero, 1f
+48 −51
Original line number Original line Diff line number Diff line
@@ -552,6 +552,52 @@ static void __init arch_mem_addpart(phys_t mem, phys_t end, int type)
	add_memory_region(mem, size, type);
	add_memory_region(mem, size, type);
}
}


#ifdef CONFIG_KEXEC
static inline unsigned long long get_total_mem(void)
{
	unsigned long long total;

	total = max_pfn - min_low_pfn;
	return total << PAGE_SHIFT;
}

static void __init mips_parse_crashkernel(void)
{
	unsigned long long total_mem;
	unsigned long long crash_size, crash_base;
	int ret;

	total_mem = get_total_mem();
	ret = parse_crashkernel(boot_command_line, total_mem,
				&crash_size, &crash_base);
	if (ret != 0 || crash_size <= 0)
		return;

	crashk_res.start = crash_base;
	crashk_res.end	 = crash_base + crash_size - 1;
}

static void __init request_crashkernel(struct resource *res)
{
	int ret;

	ret = request_resource(res, &crashk_res);
	if (!ret)
		pr_info("Reserving %ldMB of memory at %ldMB for crashkernel\n",
			(unsigned long)((crashk_res.end -
					 crashk_res.start + 1) >> 20),
			(unsigned long)(crashk_res.start  >> 20));
}
#else /* !defined(CONFIG_KEXEC)		*/
static void __init mips_parse_crashkernel(void)
{
}

static void __init request_crashkernel(struct resource *res)
{
}
#endif /* !defined(CONFIG_KEXEC)  */

static void __init arch_mem_init(char **cmdline_p)
static void __init arch_mem_init(char **cmdline_p)
{
{
	extern void plat_mem_setup(void);
	extern void plat_mem_setup(void);
@@ -608,6 +654,8 @@ static void __init arch_mem_init(char **cmdline_p)
				BOOTMEM_DEFAULT);
				BOOTMEM_DEFAULT);
	}
	}
#endif
#endif

	mips_parse_crashkernel();
#ifdef CONFIG_KEXEC
#ifdef CONFIG_KEXEC
	if (crashk_res.start != crashk_res.end)
	if (crashk_res.start != crashk_res.end)
		reserve_bootmem(crashk_res.start,
		reserve_bootmem(crashk_res.start,
@@ -620,52 +668,6 @@ static void __init arch_mem_init(char **cmdline_p)
	paging_init();
	paging_init();
}
}


#ifdef CONFIG_KEXEC
static inline unsigned long long get_total_mem(void)
{
	unsigned long long total;

	total = max_pfn - min_low_pfn;
	return total << PAGE_SHIFT;
}

static void __init mips_parse_crashkernel(void)
{
	unsigned long long total_mem;
	unsigned long long crash_size, crash_base;
	int ret;

	total_mem = get_total_mem();
	ret = parse_crashkernel(boot_command_line, total_mem,
				&crash_size, &crash_base);
	if (ret != 0 || crash_size <= 0)
		return;

	crashk_res.start = crash_base;
	crashk_res.end	 = crash_base + crash_size - 1;
}

static void __init request_crashkernel(struct resource *res)
{
	int ret;

	ret = request_resource(res, &crashk_res);
	if (!ret)
		pr_info("Reserving %ldMB of memory at %ldMB for crashkernel\n",
			(unsigned long)((crashk_res.end -
				crashk_res.start + 1) >> 20),
			(unsigned long)(crashk_res.start  >> 20));
}
#else /* !defined(CONFIG_KEXEC)	 */
static void __init mips_parse_crashkernel(void)
{
}

static void __init request_crashkernel(struct resource *res)
{
}
#endif /* !defined(CONFIG_KEXEC)  */

static void __init resource_init(void)
static void __init resource_init(void)
{
{
	int i;
	int i;
@@ -678,11 +680,6 @@ static void __init resource_init(void)
	data_resource.start = __pa_symbol(&_etext);
	data_resource.start = __pa_symbol(&_etext);
	data_resource.end = __pa_symbol(&_edata) - 1;
	data_resource.end = __pa_symbol(&_edata) - 1;


	/*
	 * Request address space for all standard RAM.
	 */
	mips_parse_crashkernel();

	for (i = 0; i < boot_mem_map.nr_map; i++) {
	for (i = 0; i < boot_mem_map.nr_map; i++) {
		struct resource *res;
		struct resource *res;
		unsigned long start, end;
		unsigned long start, end;
+1 −0
Original line number Original line Diff line number Diff line
@@ -254,6 +254,7 @@ void copy_from_user_page(struct vm_area_struct *vma,
			SetPageDcacheDirty(page);
			SetPageDcacheDirty(page);
	}
	}
}
}
EXPORT_SYMBOL_GPL(copy_from_user_page);


void __init fixrange_init(unsigned long start, unsigned long end,
void __init fixrange_init(unsigned long start, unsigned long end,
	pgd_t *pgd_base)
	pgd_t *pgd_base)