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

Commit 0bdd340c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
parents 99081049 f478af9d
Loading
Loading
Loading
Loading
+4 −12
Original line number Original line Diff line number Diff line
@@ -410,24 +410,16 @@ efi_init (void)
	efi_config_table_t *config_tables;
	efi_config_table_t *config_tables;
	efi_char16_t *c16;
	efi_char16_t *c16;
	u64 efi_desc_size;
	u64 efi_desc_size;
	char *cp, *end, vendor[100] = "unknown";
	char *cp, vendor[100] = "unknown";
	extern char saved_command_line[];
	extern char saved_command_line[];
	int i;
	int i;


	/* it's too early to be able to use the standard kernel command line support... */
	/* it's too early to be able to use the standard kernel command line support... */
	for (cp = saved_command_line; *cp; ) {
	for (cp = saved_command_line; *cp; ) {
		if (memcmp(cp, "mem=", 4) == 0) {
		if (memcmp(cp, "mem=", 4) == 0) {
			cp += 4;
			mem_limit = memparse(cp + 4, &cp);
			mem_limit = memparse(cp, &end);
			if (end != cp)
				break;
			cp = end;
		} else if (memcmp(cp, "max_addr=", 9) == 0) {
		} else if (memcmp(cp, "max_addr=", 9) == 0) {
			cp += 9;
			max_addr = GRANULEROUNDDOWN(memparse(cp + 9, &cp));
			max_addr = GRANULEROUNDDOWN(memparse(cp, &end));
			if (end != cp)
				break;
			cp = end;
		} else {
		} else {
			while (*cp != ' ' && *cp)
			while (*cp != ' ' && *cp)
				++cp;
				++cp;
@@ -458,7 +450,7 @@ efi_init (void)
	/* Show what we know for posterity */
	/* Show what we know for posterity */
	c16 = __va(efi.systab->fw_vendor);
	c16 = __va(efi.systab->fw_vendor);
	if (c16) {
	if (c16) {
		for (i = 0;i < (int) sizeof(vendor) && *c16; ++i)
		for (i = 0;i < (int) sizeof(vendor) - 1 && *c16; ++i)
			vendor[i] = *c16++;
			vendor[i] = *c16++;
		vendor[i] = '\0';
		vendor[i] = '\0';
	}
	}
+1 −0
Original line number Original line Diff line number Diff line
@@ -352,6 +352,7 @@ start_ap:
	mov ar.rsc=0		// place RSE in enforced lazy mode
	mov ar.rsc=0		// place RSE in enforced lazy mode
	;;
	;;
	loadrs			// clear the dirty partition
	loadrs			// clear the dirty partition
	mov IA64_KR(PER_CPU_DATA)=r0	// clear physical per-CPU base
	;;
	;;
	mov ar.bspstore=r2	// establish the new RSE stack
	mov ar.bspstore=r2	// establish the new RSE stack
	;;
	;;
+4 −0
Original line number Original line Diff line number Diff line
@@ -71,6 +71,8 @@ unsigned long __per_cpu_offset[NR_CPUS];
EXPORT_SYMBOL(__per_cpu_offset);
EXPORT_SYMBOL(__per_cpu_offset);
#endif
#endif


extern void ia64_setup_printk_clock(void);

DEFINE_PER_CPU(struct cpuinfo_ia64, cpu_info);
DEFINE_PER_CPU(struct cpuinfo_ia64, cpu_info);
DEFINE_PER_CPU(unsigned long, local_per_cpu_offset);
DEFINE_PER_CPU(unsigned long, local_per_cpu_offset);
DEFINE_PER_CPU(unsigned long, ia64_phys_stacked_size_p8);
DEFINE_PER_CPU(unsigned long, ia64_phys_stacked_size_p8);
@@ -445,6 +447,8 @@ setup_arch (char **cmdline_p)
	/* process SAL system table: */
	/* process SAL system table: */
	ia64_sal_init(efi.sal_systab);
	ia64_sal_init(efi.sal_systab);


	ia64_setup_printk_clock();

#ifdef CONFIG_SMP
#ifdef CONFIG_SMP
	cpu_physical_id(0) = hard_smp_processor_id();
	cpu_physical_id(0) = hard_smp_processor_id();


+27 −0
Original line number Original line Diff line number Diff line
@@ -278,3 +278,30 @@ udelay (unsigned long usecs)
	}
	}
}
}
EXPORT_SYMBOL(udelay);
EXPORT_SYMBOL(udelay);

static unsigned long long ia64_itc_printk_clock(void)
{
	if (ia64_get_kr(IA64_KR_PER_CPU_DATA))
		return sched_clock();
	return 0;
}

static unsigned long long ia64_default_printk_clock(void)
{
	return (unsigned long long)(jiffies_64 - INITIAL_JIFFIES) *
		(1000000000/HZ);
}

unsigned long long (*ia64_printk_clock)(void) = &ia64_default_printk_clock;

unsigned long long printk_clock(void)
{
	return ia64_printk_clock();
}

void __init
ia64_setup_printk_clock(void)
{
	if (!(sal_platform_features & IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT))
		ia64_printk_clock = ia64_itc_printk_clock;
}
+3 −2
Original line number Original line Diff line number Diff line
@@ -3,7 +3,7 @@
 * License.  See the file "COPYING" in the main directory of this archive
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 * for more details.
 *
 *
 * Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
 * Copyright (c) 2000-2006 Silicon Graphics, Inc.  All Rights Reserved.
 */
 */


#include <linux/types.h>
#include <linux/types.h>
@@ -137,6 +137,7 @@ int sn_salinfo_platform_oemdata(const u8 *sect_header, u8 **oemdata, u64 *oemdat


static int __init sn_salinfo_init(void)
static int __init sn_salinfo_init(void)
{
{
	if (ia64_platform_is("sn2"))
		salinfo_platform_oemdata = &sn_salinfo_platform_oemdata;
		salinfo_platform_oemdata = &sn_salinfo_platform_oemdata;
	return 0;
	return 0;
}
}
Loading