|
@@ -273,134 +273,6 @@ _GLOBAL(low_choose_7447a_dfs)
|
|
|
|
|
|
#endif /* CONFIG_CPU_FREQ_PMAC && CONFIG_6xx */
|
|
|
|
|
|
-/* void local_save_flags_ptr(unsigned long *flags) */
|
|
|
-_GLOBAL(local_save_flags_ptr)
|
|
|
- mfmsr r4
|
|
|
- stw r4,0(r3)
|
|
|
- blr
|
|
|
- /*
|
|
|
- * Need these nops here for taking over save/restore to
|
|
|
- * handle lost intrs
|
|
|
- * -- Cort
|
|
|
- */
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
-_GLOBAL(local_save_flags_ptr_end)
|
|
|
-
|
|
|
-/* void local_irq_restore(unsigned long flags) */
|
|
|
-_GLOBAL(local_irq_restore)
|
|
|
-/*
|
|
|
- * Just set/clear the MSR_EE bit through restore/flags but do not
|
|
|
- * change anything else. This is needed by the RT system and makes
|
|
|
- * sense anyway.
|
|
|
- * -- Cort
|
|
|
- */
|
|
|
- mfmsr r4
|
|
|
- /* Copy all except the MSR_EE bit from r4 (current MSR value)
|
|
|
- to r3. This is the sort of thing the rlwimi instruction is
|
|
|
- designed for. -- paulus. */
|
|
|
- rlwimi r3,r4,0,17,15
|
|
|
- /* Check if things are setup the way we want _already_. */
|
|
|
- cmpw 0,r3,r4
|
|
|
- beqlr
|
|
|
-1: SYNC
|
|
|
- mtmsr r3
|
|
|
- SYNC
|
|
|
- blr
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
-_GLOBAL(local_irq_restore_end)
|
|
|
-
|
|
|
-_GLOBAL(local_irq_disable)
|
|
|
- mfmsr r0 /* Get current interrupt state */
|
|
|
- rlwinm r3,r0,16+1,32-1,31 /* Extract old value of 'EE' */
|
|
|
- rlwinm r0,r0,0,17,15 /* clear MSR_EE in r0 */
|
|
|
- SYNC /* Some chip revs have problems here... */
|
|
|
- mtmsr r0 /* Update machine state */
|
|
|
- blr /* Done */
|
|
|
- /*
|
|
|
- * Need these nops here for taking over save/restore to
|
|
|
- * handle lost intrs
|
|
|
- * -- Cort
|
|
|
- */
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
-_GLOBAL(local_irq_disable_end)
|
|
|
-
|
|
|
-_GLOBAL(local_irq_enable)
|
|
|
- mfmsr r3 /* Get current state */
|
|
|
- ori r3,r3,MSR_EE /* Turn on 'EE' bit */
|
|
|
- SYNC /* Some chip revs have problems here... */
|
|
|
- mtmsr r3 /* Update machine state */
|
|
|
- blr
|
|
|
- /*
|
|
|
- * Need these nops here for taking over save/restore to
|
|
|
- * handle lost intrs
|
|
|
- * -- Cort
|
|
|
- */
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
- nop
|
|
|
-_GLOBAL(local_irq_enable_end)
|
|
|
-
|
|
|
/*
|
|
|
* complement mask on the msr then "or" some values on.
|
|
|
* _nmask_and_or_msr(nmask, value_to_or)
|