Merge remote-tracking branch 'kumar/next' into next
Freescale updates for 3.6
This commit is contained in:
@@ -556,8 +556,10 @@ END_FTR_SECTION_IFSET(CPU_FTR_EMB_HV)
|
||||
/* SPE Unavailable */
|
||||
START_EXCEPTION(SPEUnavailable)
|
||||
NORMAL_EXCEPTION_PROLOG(SPE_UNAVAIL)
|
||||
bne load_up_spe
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
beq 1f
|
||||
bl load_up_spe
|
||||
b fast_exception_return
|
||||
1: addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
EXC_XFER_EE_LITE(0x2010, KernelSPE)
|
||||
#else
|
||||
EXCEPTION(0x2020, SPE_UNAVAIL, SPEUnavailable, \
|
||||
@@ -778,7 +780,7 @@ tlb_write_entry:
|
||||
/* Note that the SPE support is closely modeled after the AltiVec
|
||||
* support. Changes to one are likely to be applicable to the
|
||||
* other! */
|
||||
load_up_spe:
|
||||
_GLOBAL(load_up_spe)
|
||||
/*
|
||||
* Disable SPE for the task which had SPE previously,
|
||||
* and save its SPE registers in its thread_struct.
|
||||
@@ -826,20 +828,7 @@ load_up_spe:
|
||||
subi r4,r5,THREAD
|
||||
stw r4,last_task_used_spe@l(r3)
|
||||
#endif /* !CONFIG_SMP */
|
||||
/* restore registers and return */
|
||||
2: REST_4GPRS(3, r11)
|
||||
lwz r10,_CCR(r11)
|
||||
REST_GPR(1, r11)
|
||||
mtcr r10
|
||||
lwz r10,_LINK(r11)
|
||||
mtlr r10
|
||||
REST_GPR(10, r11)
|
||||
mtspr SPRN_SRR1,r9
|
||||
mtspr SPRN_SRR0,r12
|
||||
REST_GPR(9, r11)
|
||||
REST_GPR(12, r11)
|
||||
lwz r11,GPR11(r11)
|
||||
rfi
|
||||
blr
|
||||
|
||||
/*
|
||||
* SPE unavailable trap from kernel - print a message, but let
|
||||
|
@@ -720,6 +720,33 @@ static int powerpc_debugfs_init(void)
|
||||
arch_initcall(powerpc_debugfs_init);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_BOOKE_WDT
|
||||
extern u32 booke_wdt_enabled;
|
||||
extern u32 booke_wdt_period;
|
||||
|
||||
/* Checks wdt=x and wdt_period=xx command-line option */
|
||||
notrace int __init early_parse_wdt(char *p)
|
||||
{
|
||||
if (p && strncmp(p, "0", 1) != 0)
|
||||
booke_wdt_enabled = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_param("wdt", early_parse_wdt);
|
||||
|
||||
int __init early_parse_wdt_period(char *p)
|
||||
{
|
||||
unsigned long ret;
|
||||
if (p) {
|
||||
if (!kstrtol(p, 0, &ret))
|
||||
booke_wdt_period = ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_param("wdt_period", early_parse_wdt_period);
|
||||
#endif /* CONFIG_BOOKE_WDT */
|
||||
|
||||
void ppc_printk_progress(char *s, unsigned short hex)
|
||||
{
|
||||
pr_info("%s\n", s);
|
||||
|
@@ -149,30 +149,6 @@ notrace void __init machine_init(u64 dt_ptr)
|
||||
ppc_md.progress("id mach(): done", 0x200);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BOOKE_WDT
|
||||
extern u32 booke_wdt_enabled;
|
||||
extern u32 booke_wdt_period;
|
||||
|
||||
/* Checks wdt=x and wdt_period=xx command-line option */
|
||||
notrace int __init early_parse_wdt(char *p)
|
||||
{
|
||||
if (p && strncmp(p, "0", 1) != 0)
|
||||
booke_wdt_enabled = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_param("wdt", early_parse_wdt);
|
||||
|
||||
int __init early_parse_wdt_period (char *p)
|
||||
{
|
||||
if (p)
|
||||
booke_wdt_period = simple_strtoul(p, NULL, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_param("wdt_period", early_parse_wdt_period);
|
||||
#endif /* CONFIG_BOOKE_WDT */
|
||||
|
||||
/* Checks "l2cr=xxxx" command-line option */
|
||||
int __init ppc_setup_l2cr(char *str)
|
||||
{
|
||||
|
Reference in New Issue
Block a user