diff options
Diffstat (limited to 'arch/ppc/kernel')
-rw-r--r-- | arch/ppc/kernel/misc.S | 88 | ||||
-rw-r--r-- | arch/ppc/kernel/ppc_ksyms.c | 9 | ||||
-rw-r--r-- | arch/ppc/kernel/setup.c | 17 | ||||
-rw-r--r-- | arch/ppc/kernel/smp-tbsync.c | 7 |
4 files changed, 16 insertions, 105 deletions
diff --git a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S index 2fa0075f2b5f..50b4bbd06804 100644 --- a/arch/ppc/kernel/misc.S +++ b/arch/ppc/kernel/misc.S | |||
@@ -768,91 +768,6 @@ _GLOBAL(_outsb) | |||
768 | bdnz 00b | 768 | bdnz 00b |
769 | blr | 769 | blr |
770 | 770 | ||
771 | _GLOBAL(_insw) | ||
772 | cmpwi 0,r5,0 | ||
773 | mtctr r5 | ||
774 | subi r4,r4,2 | ||
775 | blelr- | ||
776 | 00: lhbrx r5,0,r3 | ||
777 | 01: eieio | ||
778 | 02: sthu r5,2(r4) | ||
779 | ISYNC_8xx | ||
780 | .section .fixup,"ax" | ||
781 | 03: blr | ||
782 | .text | ||
783 | .section __ex_table, "a" | ||
784 | .align 2 | ||
785 | .long 00b, 03b | ||
786 | .long 01b, 03b | ||
787 | .long 02b, 03b | ||
788 | .text | ||
789 | bdnz 00b | ||
790 | blr | ||
791 | |||
792 | _GLOBAL(_outsw) | ||
793 | cmpwi 0,r5,0 | ||
794 | mtctr r5 | ||
795 | subi r4,r4,2 | ||
796 | blelr- | ||
797 | 00: lhzu r5,2(r4) | ||
798 | 01: eieio | ||
799 | 02: sthbrx r5,0,r3 | ||
800 | ISYNC_8xx | ||
801 | .section .fixup,"ax" | ||
802 | 03: blr | ||
803 | .text | ||
804 | .section __ex_table, "a" | ||
805 | .align 2 | ||
806 | .long 00b, 03b | ||
807 | .long 01b, 03b | ||
808 | .long 02b, 03b | ||
809 | .text | ||
810 | bdnz 00b | ||
811 | blr | ||
812 | |||
813 | _GLOBAL(_insl) | ||
814 | cmpwi 0,r5,0 | ||
815 | mtctr r5 | ||
816 | subi r4,r4,4 | ||
817 | blelr- | ||
818 | 00: lwbrx r5,0,r3 | ||
819 | 01: eieio | ||
820 | 02: stwu r5,4(r4) | ||
821 | ISYNC_8xx | ||
822 | .section .fixup,"ax" | ||
823 | 03: blr | ||
824 | .text | ||
825 | .section __ex_table, "a" | ||
826 | .align 2 | ||
827 | .long 00b, 03b | ||
828 | .long 01b, 03b | ||
829 | .long 02b, 03b | ||
830 | .text | ||
831 | bdnz 00b | ||
832 | blr | ||
833 | |||
834 | _GLOBAL(_outsl) | ||
835 | cmpwi 0,r5,0 | ||
836 | mtctr r5 | ||
837 | subi r4,r4,4 | ||
838 | blelr- | ||
839 | 00: lwzu r5,4(r4) | ||
840 | 01: stwbrx r5,0,r3 | ||
841 | 02: eieio | ||
842 | ISYNC_8xx | ||
843 | .section .fixup,"ax" | ||
844 | 03: blr | ||
845 | .text | ||
846 | .section __ex_table, "a" | ||
847 | .align 2 | ||
848 | .long 00b, 03b | ||
849 | .long 01b, 03b | ||
850 | .long 02b, 03b | ||
851 | .text | ||
852 | bdnz 00b | ||
853 | blr | ||
854 | |||
855 | _GLOBAL(__ide_mm_insw) | ||
856 | _GLOBAL(_insw_ns) | 771 | _GLOBAL(_insw_ns) |
857 | cmpwi 0,r5,0 | 772 | cmpwi 0,r5,0 |
858 | mtctr r5 | 773 | mtctr r5 |
@@ -874,7 +789,6 @@ _GLOBAL(_insw_ns) | |||
874 | bdnz 00b | 789 | bdnz 00b |
875 | blr | 790 | blr |
876 | 791 | ||
877 | _GLOBAL(__ide_mm_outsw) | ||
878 | _GLOBAL(_outsw_ns) | 792 | _GLOBAL(_outsw_ns) |
879 | cmpwi 0,r5,0 | 793 | cmpwi 0,r5,0 |
880 | mtctr r5 | 794 | mtctr r5 |
@@ -896,7 +810,6 @@ _GLOBAL(_outsw_ns) | |||
896 | bdnz 00b | 810 | bdnz 00b |
897 | blr | 811 | blr |
898 | 812 | ||
899 | _GLOBAL(__ide_mm_insl) | ||
900 | _GLOBAL(_insl_ns) | 813 | _GLOBAL(_insl_ns) |
901 | cmpwi 0,r5,0 | 814 | cmpwi 0,r5,0 |
902 | mtctr r5 | 815 | mtctr r5 |
@@ -918,7 +831,6 @@ _GLOBAL(_insl_ns) | |||
918 | bdnz 00b | 831 | bdnz 00b |
919 | blr | 832 | blr |
920 | 833 | ||
921 | _GLOBAL(__ide_mm_outsl) | ||
922 | _GLOBAL(_outsl_ns) | 834 | _GLOBAL(_outsl_ns) |
923 | cmpwi 0,r5,0 | 835 | cmpwi 0,r5,0 |
924 | mtctr r5 | 836 | mtctr r5 |
diff --git a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c index d1735401384c..c8b65ca8a350 100644 --- a/arch/ppc/kernel/ppc_ksyms.c +++ b/arch/ppc/kernel/ppc_ksyms.c | |||
@@ -115,17 +115,8 @@ EXPORT_SYMBOL(outw); | |||
115 | EXPORT_SYMBOL(outl); | 115 | EXPORT_SYMBOL(outl); |
116 | EXPORT_SYMBOL(outsl);*/ | 116 | EXPORT_SYMBOL(outsl);*/ |
117 | 117 | ||
118 | EXPORT_SYMBOL(__ide_mm_insl); | ||
119 | EXPORT_SYMBOL(__ide_mm_outsw); | ||
120 | EXPORT_SYMBOL(__ide_mm_insw); | ||
121 | EXPORT_SYMBOL(__ide_mm_outsl); | ||
122 | |||
123 | EXPORT_SYMBOL(_insb); | 118 | EXPORT_SYMBOL(_insb); |
124 | EXPORT_SYMBOL(_outsb); | 119 | EXPORT_SYMBOL(_outsb); |
125 | EXPORT_SYMBOL(_insw); | ||
126 | EXPORT_SYMBOL(_outsw); | ||
127 | EXPORT_SYMBOL(_insl); | ||
128 | EXPORT_SYMBOL(_outsl); | ||
129 | EXPORT_SYMBOL(_insw_ns); | 120 | EXPORT_SYMBOL(_insw_ns); |
130 | EXPORT_SYMBOL(_outsw_ns); | 121 | EXPORT_SYMBOL(_outsw_ns); |
131 | EXPORT_SYMBOL(_insl_ns); | 122 | EXPORT_SYMBOL(_insl_ns); |
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c index a74f46d9826f..5458ac5da7c3 100644 --- a/arch/ppc/kernel/setup.c +++ b/arch/ppc/kernel/setup.c | |||
@@ -127,11 +127,8 @@ void machine_restart(char *cmd) | |||
127 | ppc_md.restart(cmd); | 127 | ppc_md.restart(cmd); |
128 | } | 128 | } |
129 | 129 | ||
130 | void machine_power_off(void) | 130 | static void ppc_generic_power_off(void) |
131 | { | 131 | { |
132 | #ifdef CONFIG_NVRAM | ||
133 | nvram_sync(); | ||
134 | #endif | ||
135 | ppc_md.power_off(); | 132 | ppc_md.power_off(); |
136 | } | 133 | } |
137 | 134 | ||
@@ -143,7 +140,17 @@ void machine_halt(void) | |||
143 | ppc_md.halt(); | 140 | ppc_md.halt(); |
144 | } | 141 | } |
145 | 142 | ||
146 | void (*pm_power_off)(void) = machine_power_off; | 143 | void (*pm_power_off)(void) = ppc_generic_power_off; |
144 | |||
145 | void machine_power_off(void) | ||
146 | { | ||
147 | #ifdef CONFIG_NVRAM | ||
148 | nvram_sync(); | ||
149 | #endif | ||
150 | if (pm_power_off) | ||
151 | pm_power_off(); | ||
152 | ppc_generic_power_off(); | ||
153 | } | ||
147 | 154 | ||
148 | #ifdef CONFIG_TAU | 155 | #ifdef CONFIG_TAU |
149 | extern u32 cpu_temp(unsigned long cpu); | 156 | extern u32 cpu_temp(unsigned long cpu); |
diff --git a/arch/ppc/kernel/smp-tbsync.c b/arch/ppc/kernel/smp-tbsync.c index 1576758debaf..d0cf3f86931d 100644 --- a/arch/ppc/kernel/smp-tbsync.c +++ b/arch/ppc/kernel/smp-tbsync.c | |||
@@ -47,8 +47,9 @@ void __devinit | |||
47 | smp_generic_take_timebase( void ) | 47 | smp_generic_take_timebase( void ) |
48 | { | 48 | { |
49 | int cmd, tbl, tbu; | 49 | int cmd, tbl, tbu; |
50 | unsigned long flags; | ||
50 | 51 | ||
51 | local_irq_disable(); | 52 | local_irq_save(flags); |
52 | while( !running ) | 53 | while( !running ) |
53 | ; | 54 | ; |
54 | rmb(); | 55 | rmb(); |
@@ -64,7 +65,7 @@ smp_generic_take_timebase( void ) | |||
64 | tbu = tbsync->tbu; | 65 | tbu = tbsync->tbu; |
65 | tbsync->ack = 0; | 66 | tbsync->ack = 0; |
66 | if( cmd == kExit ) | 67 | if( cmd == kExit ) |
67 | return; | 68 | break; |
68 | 69 | ||
69 | if( cmd == kSetAndTest ) { | 70 | if( cmd == kSetAndTest ) { |
70 | while( tbsync->handshake ) | 71 | while( tbsync->handshake ) |
@@ -77,7 +78,7 @@ smp_generic_take_timebase( void ) | |||
77 | } | 78 | } |
78 | enter_contest( tbsync->mark, -1 ); | 79 | enter_contest( tbsync->mark, -1 ); |
79 | } | 80 | } |
80 | local_irq_enable(); | 81 | local_irq_restore(flags); |
81 | } | 82 | } |
82 | 83 | ||
83 | static int __devinit | 84 | static int __devinit |