aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/boot/Makefile16
-rw-r--r--arch/powerpc/configs/maple_defconfig56
-rw-r--r--arch/powerpc/platforms/maple/pci.c187
-rw-r--r--arch/powerpc/platforms/powermac/smp.c7
-rw-r--r--arch/powerpc/xmon/xmon.c6
-rw-r--r--arch/ppc/4xx_io/serial_sicc.c8
-rw-r--r--arch/ppc/8260_io/enet.c4
-rw-r--r--arch/ppc/8260_io/fcc_enet.c6
-rw-r--r--arch/ppc/8xx_io/commproc.c19
-rw-r--r--arch/ppc/8xx_io/cs4218_tdm.c4
-rw-r--r--arch/ppc/8xx_io/enet.c4
-rw-r--r--arch/ppc/8xx_io/fec.c7
-rw-r--r--arch/ppc/kernel/smp.c4
-rw-r--r--arch/ppc/platforms/apus_setup.c2
-rw-r--r--arch/ppc/platforms/hdpu.c22
-rw-r--r--arch/ppc/platforms/radstone_ppc7d.c10
-rw-r--r--arch/ppc/platforms/sbc82xx.c4
-rw-r--r--arch/ppc/syslib/cpc700.h2
-rw-r--r--arch/ppc/syslib/cpc700_pic.c2
-rw-r--r--arch/ppc/syslib/cpm2_pic.c2
-rw-r--r--arch/ppc/syslib/cpm2_pic.h2
-rw-r--r--arch/ppc/syslib/gt64260_pic.c9
-rw-r--r--arch/ppc/syslib/ibm440gx_common.c2
-rw-r--r--arch/ppc/syslib/ipic.c2
-rw-r--r--arch/ppc/syslib/m82xx_pci.c4
-rw-r--r--arch/ppc/syslib/m8xx_setup.c2
-rw-r--r--arch/ppc/syslib/m8xx_wdt.c4
-rw-r--r--arch/ppc/syslib/mpc52xx_pic.c2
-rw-r--r--arch/ppc/syslib/mv64360_pic.c18
-rw-r--r--arch/ppc/syslib/open_pic2.c2
-rw-r--r--arch/ppc/syslib/ppc403_pic.c2
-rw-r--r--arch/ppc/syslib/ppc4xx_pic.c8
-rw-r--r--arch/ppc/syslib/ppc85xx_rio.c9
-rw-r--r--arch/ppc/syslib/ppc8xx_pic.c4
-rw-r--r--arch/ppc/syslib/xilinx_pic.c2
-rw-r--r--drivers/i2c/busses/i2c-powermac.c28
-rw-r--r--drivers/macintosh/windfarm_pm112.c18
-rw-r--r--drivers/macintosh/windfarm_pm81.c24
-rw-r--r--drivers/macintosh/windfarm_pm91.c24
-rw-r--r--include/asm-ppc/commproc.h3
-rw-r--r--include/asm-ppc/gt64260.h2
-rw-r--r--include/asm-ppc/mpc52xx.h2
-rw-r--r--include/asm-ppc/mv64x60.h4
43 files changed, 370 insertions, 179 deletions
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 003520b56303..37ddfcab0003 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -105,10 +105,10 @@ wrapperbits := $(extra-y) $(addprefix $(obj)/,addnote hack-coff)
105# Bits for building various flavours of zImage 105# Bits for building various flavours of zImage
106 106
107ifneq ($(CROSS32_COMPILE),) 107ifneq ($(CROSS32_COMPILE),)
108CROSSWRAP := -C $(CROSS32_COMPILE) 108CROSSWRAP := -C "$(CROSS32_COMPILE)"
109else 109else
110ifneq ($(CROSS_COMPILE),) 110ifneq ($(CROSS_COMPILE),)
111CROSSWRAP := -C $(CROSS_COMPILE) 111CROSSWRAP := -C "$(CROSS_COMPILE)"
112endif 112endif
113endif 113endif
114 114
@@ -151,12 +151,12 @@ $(obj)/zImage.initrd.miboot: vmlinux $(wrapperbits)
151$(obj)/uImage: vmlinux $(wrapperbits) 151$(obj)/uImage: vmlinux $(wrapperbits)
152 $(call cmd,wrap,uboot) 152 $(call cmd,wrap,uboot)
153 153
154image-$(CONFIG_PPC_PSERIES) += zImage.pseries 154image-$(CONFIG_PPC_PSERIES) += zImage.pseries
155image-$(CONFIG_PPC_MAPLE) += zImage.pseries 155image-$(CONFIG_PPC_MAPLE) += zImage.pseries
156image-$(CONFIG_PPC_CELL) += zImage.pseries 156image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries
157image-$(CONFIG_PPC_CHRP) += zImage.chrp 157image-$(CONFIG_PPC_CHRP) += zImage.chrp
158image-$(CONFIG_PPC_PMAC) += zImage.pmac 158image-$(CONFIG_PPC_PMAC) += zImage.pmac
159image-$(CONFIG_DEFAULT_UIMAGE) += uImage 159image-$(CONFIG_DEFAULT_UIMAGE) += uImage
160 160
161# For 32-bit powermacs, build the COFF and miboot images 161# For 32-bit powermacs, build the COFF and miboot images
162# as well as the ELF images. 162# as well as the ELF images.
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 62ba66091a13..ae96a5b2f00d 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-rc6 3# Linux kernel version: 2.6.18
4# Sun Sep 10 10:24:55 2006 4# Mon Oct 9 11:59:34 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -22,6 +22,7 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y
22CONFIG_PPC_OF=y 22CONFIG_PPC_OF=y
23CONFIG_PPC_UDBG_16550=y 23CONFIG_PPC_UDBG_16550=y
24CONFIG_GENERIC_TBSYNC=y 24CONFIG_GENERIC_TBSYNC=y
25CONFIG_AUDIT_ARCH=y
25# CONFIG_DEFAULT_UIMAGE is not set 26# CONFIG_DEFAULT_UIMAGE is not set
26 27
27# 28#
@@ -34,7 +35,7 @@ CONFIG_PPC_FPU=y
34CONFIG_PPC_STD_MMU=y 35CONFIG_PPC_STD_MMU=y
35CONFIG_VIRT_CPU_ACCOUNTING=y 36CONFIG_VIRT_CPU_ACCOUNTING=y
36CONFIG_SMP=y 37CONFIG_SMP=y
37CONFIG_NR_CPUS=2 38CONFIG_NR_CPUS=4
38CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 39CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
39 40
40# 41#
@@ -51,10 +52,11 @@ CONFIG_LOCALVERSION=""
51CONFIG_LOCALVERSION_AUTO=y 52CONFIG_LOCALVERSION_AUTO=y
52CONFIG_SWAP=y 53CONFIG_SWAP=y
53CONFIG_SYSVIPC=y 54CONFIG_SYSVIPC=y
55# CONFIG_IPC_NS is not set
54CONFIG_POSIX_MQUEUE=y 56CONFIG_POSIX_MQUEUE=y
55# CONFIG_BSD_PROCESS_ACCT is not set 57# CONFIG_BSD_PROCESS_ACCT is not set
56# CONFIG_TASKSTATS is not set 58# CONFIG_TASKSTATS is not set
57CONFIG_SYSCTL=y 59# CONFIG_UTS_NS is not set
58# CONFIG_AUDIT is not set 60# CONFIG_AUDIT is not set
59CONFIG_IKCONFIG=y 61CONFIG_IKCONFIG=y
60CONFIG_IKCONFIG_PROC=y 62CONFIG_IKCONFIG_PROC=y
@@ -62,7 +64,9 @@ CONFIG_IKCONFIG_PROC=y
62# CONFIG_RELAY is not set 64# CONFIG_RELAY is not set
63CONFIG_INITRAMFS_SOURCE="" 65CONFIG_INITRAMFS_SOURCE=""
64CONFIG_CC_OPTIMIZE_FOR_SIZE=y 66CONFIG_CC_OPTIMIZE_FOR_SIZE=y
67CONFIG_SYSCTL=y
65# CONFIG_EMBEDDED is not set 68# CONFIG_EMBEDDED is not set
69# CONFIG_SYSCTL_SYSCALL is not set
66CONFIG_KALLSYMS=y 70CONFIG_KALLSYMS=y
67CONFIG_KALLSYMS_ALL=y 71CONFIG_KALLSYMS_ALL=y
68# CONFIG_KALLSYMS_EXTRA_PASS is not set 72# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -71,12 +75,12 @@ CONFIG_PRINTK=y
71CONFIG_BUG=y 75CONFIG_BUG=y
72CONFIG_ELF_CORE=y 76CONFIG_ELF_CORE=y
73CONFIG_BASE_FULL=y 77CONFIG_BASE_FULL=y
74CONFIG_RT_MUTEXES=y
75CONFIG_FUTEX=y 78CONFIG_FUTEX=y
76CONFIG_EPOLL=y 79CONFIG_EPOLL=y
77CONFIG_SHMEM=y 80CONFIG_SHMEM=y
78CONFIG_SLAB=y 81CONFIG_SLAB=y
79CONFIG_VM_EVENT_COUNTERS=y 82CONFIG_VM_EVENT_COUNTERS=y
83CONFIG_RT_MUTEXES=y
80# CONFIG_TINY_SHMEM is not set 84# CONFIG_TINY_SHMEM is not set
81CONFIG_BASE_SMALL=0 85CONFIG_BASE_SMALL=0
82# CONFIG_SLOB is not set 86# CONFIG_SLOB is not set
@@ -95,6 +99,7 @@ CONFIG_STOP_MACHINE=y
95# 99#
96# Block layer 100# Block layer
97# 101#
102CONFIG_BLOCK=y
98# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
99 104
100# 105#
@@ -114,16 +119,16 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
114# Platform support 119# Platform support
115# 120#
116CONFIG_PPC_MULTIPLATFORM=y 121CONFIG_PPC_MULTIPLATFORM=y
117# CONFIG_PPC_ISERIES is not set
118# CONFIG_EMBEDDED6xx is not set 122# CONFIG_EMBEDDED6xx is not set
119# CONFIG_APUS is not set 123# CONFIG_APUS is not set
120# CONFIG_PPC_PSERIES is not set 124# CONFIG_PPC_PSERIES is not set
125# CONFIG_PPC_ISERIES is not set
121# CONFIG_PPC_PMAC is not set 126# CONFIG_PPC_PMAC is not set
122CONFIG_PPC_MAPLE=y 127CONFIG_PPC_MAPLE=y
128# CONFIG_PPC_PASEMI is not set
123# CONFIG_PPC_CELL is not set 129# CONFIG_PPC_CELL is not set
124# CONFIG_PPC_CELL_NATIVE is not set 130# CONFIG_PPC_CELL_NATIVE is not set
125# CONFIG_PPC_IBM_CELL_BLADE is not set 131# CONFIG_PPC_IBM_CELL_BLADE is not set
126# CONFIG_UDBG_RTAS_CONSOLE is not set
127CONFIG_U3_DART=y 132CONFIG_U3_DART=y
128# CONFIG_PPC_RTAS is not set 133# CONFIG_PPC_RTAS is not set
129# CONFIG_MMIO_NVRAM is not set 134# CONFIG_MMIO_NVRAM is not set
@@ -157,6 +162,7 @@ CONFIG_IRQ_ALL_CPUS=y
157CONFIG_ARCH_SELECT_MEMORY_MODEL=y 162CONFIG_ARCH_SELECT_MEMORY_MODEL=y
158CONFIG_ARCH_FLATMEM_ENABLE=y 163CONFIG_ARCH_FLATMEM_ENABLE=y
159CONFIG_ARCH_SPARSEMEM_ENABLE=y 164CONFIG_ARCH_SPARSEMEM_ENABLE=y
165CONFIG_ARCH_POPULATES_NODE_MAP=y
160CONFIG_SELECT_MEMORY_MODEL=y 166CONFIG_SELECT_MEMORY_MODEL=y
161CONFIG_FLATMEM_MANUAL=y 167CONFIG_FLATMEM_MANUAL=y
162# CONFIG_DISCONTIGMEM_MANUAL is not set 168# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -184,6 +190,7 @@ CONFIG_GENERIC_ISA_DMA=y
184CONFIG_PCI=y 190CONFIG_PCI=y
185CONFIG_PCI_DOMAINS=y 191CONFIG_PCI_DOMAINS=y
186# CONFIG_PCIEPORTBUS is not set 192# CONFIG_PCIEPORTBUS is not set
193# CONFIG_PCI_MULTITHREAD_PROBE is not set
187# CONFIG_PCI_DEBUG is not set 194# CONFIG_PCI_DEBUG is not set
188 195
189# 196#
@@ -211,6 +218,7 @@ CONFIG_PACKET_MMAP=y
211CONFIG_UNIX=y 218CONFIG_UNIX=y
212CONFIG_XFRM=y 219CONFIG_XFRM=y
213CONFIG_XFRM_USER=m 220CONFIG_XFRM_USER=m
221# CONFIG_XFRM_SUB_POLICY is not set
214# CONFIG_NET_KEY is not set 222# CONFIG_NET_KEY is not set
215CONFIG_INET=y 223CONFIG_INET=y
216CONFIG_IP_MULTICAST=y 224CONFIG_IP_MULTICAST=y
@@ -232,10 +240,12 @@ CONFIG_IP_PNP_DHCP=y
232# CONFIG_INET_TUNNEL is not set 240# CONFIG_INET_TUNNEL is not set
233CONFIG_INET_XFRM_MODE_TRANSPORT=y 241CONFIG_INET_XFRM_MODE_TRANSPORT=y
234CONFIG_INET_XFRM_MODE_TUNNEL=y 242CONFIG_INET_XFRM_MODE_TUNNEL=y
243CONFIG_INET_XFRM_MODE_BEET=y
235CONFIG_INET_DIAG=y 244CONFIG_INET_DIAG=y
236CONFIG_INET_TCP_DIAG=y 245CONFIG_INET_TCP_DIAG=y
237# CONFIG_TCP_CONG_ADVANCED is not set 246# CONFIG_TCP_CONG_ADVANCED is not set
238CONFIG_TCP_CONG_BIC=y 247CONFIG_TCP_CONG_CUBIC=y
248CONFIG_DEFAULT_TCP_CONG="cubic"
239# CONFIG_IPV6 is not set 249# CONFIG_IPV6 is not set
240# CONFIG_INET6_XFRM_TUNNEL is not set 250# CONFIG_INET6_XFRM_TUNNEL is not set
241# CONFIG_INET6_TUNNEL is not set 251# CONFIG_INET6_TUNNEL is not set
@@ -265,7 +275,6 @@ CONFIG_TCP_CONG_BIC=y
265# CONFIG_ATALK is not set 275# CONFIG_ATALK is not set
266# CONFIG_X25 is not set 276# CONFIG_X25 is not set
267# CONFIG_LAPB is not set 277# CONFIG_LAPB is not set
268# CONFIG_NET_DIVERT is not set
269# CONFIG_ECONET is not set 278# CONFIG_ECONET is not set
270# CONFIG_WAN_ROUTER is not set 279# CONFIG_WAN_ROUTER is not set
271 280
@@ -377,6 +386,7 @@ CONFIG_BLK_DEV_AMD74XX=y
377# CONFIG_BLK_DEV_CS5530 is not set 386# CONFIG_BLK_DEV_CS5530 is not set
378# CONFIG_BLK_DEV_HPT34X is not set 387# CONFIG_BLK_DEV_HPT34X is not set
379# CONFIG_BLK_DEV_HPT366 is not set 388# CONFIG_BLK_DEV_HPT366 is not set
389# CONFIG_BLK_DEV_JMICRON is not set
380# CONFIG_BLK_DEV_SC1200 is not set 390# CONFIG_BLK_DEV_SC1200 is not set
381# CONFIG_BLK_DEV_PIIX is not set 391# CONFIG_BLK_DEV_PIIX is not set
382# CONFIG_BLK_DEV_IT821X is not set 392# CONFIG_BLK_DEV_IT821X is not set
@@ -399,6 +409,12 @@ CONFIG_IDEDMA_AUTO=y
399# 409#
400# CONFIG_RAID_ATTRS is not set 410# CONFIG_RAID_ATTRS is not set
401# CONFIG_SCSI is not set 411# CONFIG_SCSI is not set
412# CONFIG_SCSI_NETLINK is not set
413
414#
415# Serial ATA (prod) and Parallel ATA (experimental) drivers
416#
417# CONFIG_ATA is not set
402 418
403# 419#
404# Multi-device support (RAID and LVM) 420# Multi-device support (RAID and LVM)
@@ -498,7 +514,7 @@ CONFIG_E1000=y
498# CONFIG_VIA_VELOCITY is not set 514# CONFIG_VIA_VELOCITY is not set
499CONFIG_TIGON3=y 515CONFIG_TIGON3=y
500# CONFIG_BNX2 is not set 516# CONFIG_BNX2 is not set
501# CONFIG_MV643XX_ETH is not set 517# CONFIG_QLA3XXX is not set
502 518
503# 519#
504# Ethernet (10000 Mbit) 520# Ethernet (10000 Mbit)
@@ -545,6 +561,7 @@ CONFIG_TIGON3=y
545# Input device support 561# Input device support
546# 562#
547CONFIG_INPUT=y 563CONFIG_INPUT=y
564# CONFIG_INPUT_FF_MEMLESS is not set
548 565
549# 566#
550# Userland interfaces 567# Userland interfaces
@@ -704,6 +721,7 @@ CONFIG_I2C_AMD8111=y
704# 721#
705# Misc devices 722# Misc devices
706# 723#
724# CONFIG_TIFM_CORE is not set
707 725
708# 726#
709# Multimedia devices 727# Multimedia devices
@@ -779,7 +797,6 @@ CONFIG_USB_UHCI_HCD=y
779# 797#
780# may also be needed; see USB_STORAGE Help for more information 798# may also be needed; see USB_STORAGE Help for more information
781# 799#
782# CONFIG_USB_STORAGE is not set
783# CONFIG_USB_LIBUSUAL is not set 800# CONFIG_USB_LIBUSUAL is not set
784 801
785# 802#
@@ -802,6 +819,7 @@ CONFIG_USB_HIDINPUT=y
802# CONFIG_USB_ATI_REMOTE2 is not set 819# CONFIG_USB_ATI_REMOTE2 is not set
803# CONFIG_USB_KEYSPAN_REMOTE is not set 820# CONFIG_USB_KEYSPAN_REMOTE is not set
804# CONFIG_USB_APPLETOUCH is not set 821# CONFIG_USB_APPLETOUCH is not set
822# CONFIG_USB_TRANCEVIBRATOR is not set
805 823
806# 824#
807# USB Imaging devices 825# USB Imaging devices
@@ -828,6 +846,7 @@ CONFIG_USB_MON=y
828CONFIG_USB_SERIAL=y 846CONFIG_USB_SERIAL=y
829# CONFIG_USB_SERIAL_CONSOLE is not set 847# CONFIG_USB_SERIAL_CONSOLE is not set
830CONFIG_USB_SERIAL_GENERIC=y 848CONFIG_USB_SERIAL_GENERIC=y
849# CONFIG_USB_SERIAL_AIRCABLE is not set
831# CONFIG_USB_SERIAL_AIRPRIME is not set 850# CONFIG_USB_SERIAL_AIRPRIME is not set
832# CONFIG_USB_SERIAL_ARK3116 is not set 851# CONFIG_USB_SERIAL_ARK3116 is not set
833# CONFIG_USB_SERIAL_BELKIN is not set 852# CONFIG_USB_SERIAL_BELKIN is not set
@@ -862,6 +881,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
862# CONFIG_USB_SERIAL_KLSI is not set 881# CONFIG_USB_SERIAL_KLSI is not set
863# CONFIG_USB_SERIAL_KOBIL_SCT is not set 882# CONFIG_USB_SERIAL_KOBIL_SCT is not set
864# CONFIG_USB_SERIAL_MCT_U232 is not set 883# CONFIG_USB_SERIAL_MCT_U232 is not set
884# CONFIG_USB_SERIAL_MOS7840 is not set
865# CONFIG_USB_SERIAL_NAVMAN is not set 885# CONFIG_USB_SERIAL_NAVMAN is not set
866# CONFIG_USB_SERIAL_PL2303 is not set 886# CONFIG_USB_SERIAL_PL2303 is not set
867# CONFIG_USB_SERIAL_HP4X is not set 887# CONFIG_USB_SERIAL_HP4X is not set
@@ -879,6 +899,7 @@ CONFIG_USB_EZUSB=y
879# 899#
880# CONFIG_USB_EMI62 is not set 900# CONFIG_USB_EMI62 is not set
881# CONFIG_USB_EMI26 is not set 901# CONFIG_USB_EMI26 is not set
902# CONFIG_USB_ADUTUX is not set
882# CONFIG_USB_AUERSWALD is not set 903# CONFIG_USB_AUERSWALD is not set
883# CONFIG_USB_RIO500 is not set 904# CONFIG_USB_RIO500 is not set
884# CONFIG_USB_LEGOTOWER is not set 905# CONFIG_USB_LEGOTOWER is not set
@@ -886,9 +907,9 @@ CONFIG_USB_EZUSB=y
886# CONFIG_USB_LED is not set 907# CONFIG_USB_LED is not set
887# CONFIG_USB_CYPRESS_CY7C63 is not set 908# CONFIG_USB_CYPRESS_CY7C63 is not set
888# CONFIG_USB_CYTHERM is not set 909# CONFIG_USB_CYTHERM is not set
889# CONFIG_USB_PHIDGETKIT is not set 910# CONFIG_USB_PHIDGET is not set
890# CONFIG_USB_PHIDGETSERVO is not set
891# CONFIG_USB_IDMOUSE is not set 911# CONFIG_USB_IDMOUSE is not set
912# CONFIG_USB_FTDI_ELAN is not set
892# CONFIG_USB_APPLEDISPLAY is not set 913# CONFIG_USB_APPLEDISPLAY is not set
893# CONFIG_USB_SISUSBVGA is not set 914# CONFIG_USB_SISUSBVGA is not set
894# CONFIG_USB_LD is not set 915# CONFIG_USB_LD is not set
@@ -995,8 +1016,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
995# 1016#
996CONFIG_PROC_FS=y 1017CONFIG_PROC_FS=y
997CONFIG_PROC_KCORE=y 1018CONFIG_PROC_KCORE=y
1019CONFIG_PROC_SYSCTL=y
998CONFIG_SYSFS=y 1020CONFIG_SYSFS=y
999CONFIG_TMPFS=y 1021CONFIG_TMPFS=y
1022# CONFIG_TMPFS_POSIX_ACL is not set
1000CONFIG_HUGETLBFS=y 1023CONFIG_HUGETLBFS=y
1001CONFIG_HUGETLB_PAGE=y 1024CONFIG_HUGETLB_PAGE=y
1002CONFIG_RAMFS=y 1025CONFIG_RAMFS=y
@@ -1129,6 +1152,7 @@ CONFIG_PLIST=y
1129# Kernel hacking 1152# Kernel hacking
1130# 1153#
1131# CONFIG_PRINTK_TIME is not set 1154# CONFIG_PRINTK_TIME is not set
1155CONFIG_ENABLE_MUST_CHECK=y
1132CONFIG_MAGIC_SYSRQ=y 1156CONFIG_MAGIC_SYSRQ=y
1133# CONFIG_UNUSED_SYMBOLS is not set 1157# CONFIG_UNUSED_SYMBOLS is not set
1134CONFIG_DEBUG_KERNEL=y 1158CONFIG_DEBUG_KERNEL=y
@@ -1148,6 +1172,7 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y
1148# CONFIG_DEBUG_INFO is not set 1172# CONFIG_DEBUG_INFO is not set
1149CONFIG_DEBUG_FS=y 1173CONFIG_DEBUG_FS=y
1150# CONFIG_DEBUG_VM is not set 1174# CONFIG_DEBUG_VM is not set
1175# CONFIG_DEBUG_LIST is not set
1151# CONFIG_FORCED_INLINING is not set 1176# CONFIG_FORCED_INLINING is not set
1152# CONFIG_RCU_TORTURE_TEST is not set 1177# CONFIG_RCU_TORTURE_TEST is not set
1153CONFIG_DEBUG_STACKOVERFLOW=y 1178CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1169,6 +1194,9 @@ CONFIG_BOOTX_TEXT=y
1169# Cryptographic options 1194# Cryptographic options
1170# 1195#
1171CONFIG_CRYPTO=y 1196CONFIG_CRYPTO=y
1197CONFIG_CRYPTO_ALGAPI=y
1198CONFIG_CRYPTO_BLKCIPHER=m
1199CONFIG_CRYPTO_MANAGER=m
1172# CONFIG_CRYPTO_HMAC is not set 1200# CONFIG_CRYPTO_HMAC is not set
1173# CONFIG_CRYPTO_NULL is not set 1201# CONFIG_CRYPTO_NULL is not set
1174# CONFIG_CRYPTO_MD4 is not set 1202# CONFIG_CRYPTO_MD4 is not set
@@ -1178,6 +1206,8 @@ CONFIG_CRYPTO_MD5=y
1178# CONFIG_CRYPTO_SHA512 is not set 1206# CONFIG_CRYPTO_SHA512 is not set
1179# CONFIG_CRYPTO_WP512 is not set 1207# CONFIG_CRYPTO_WP512 is not set
1180# CONFIG_CRYPTO_TGR192 is not set 1208# CONFIG_CRYPTO_TGR192 is not set
1209CONFIG_CRYPTO_ECB=m
1210CONFIG_CRYPTO_CBC=m
1181CONFIG_CRYPTO_DES=y 1211CONFIG_CRYPTO_DES=y
1182# CONFIG_CRYPTO_BLOWFISH is not set 1212# CONFIG_CRYPTO_BLOWFISH is not set
1183# CONFIG_CRYPTO_TWOFISH is not set 1213# CONFIG_CRYPTO_TWOFISH is not set
diff --git a/arch/powerpc/platforms/maple/pci.c b/arch/powerpc/platforms/maple/pci.c
index 1b827618e05f..63b4d1bff359 100644
--- a/arch/powerpc/platforms/maple/pci.c
+++ b/arch/powerpc/platforms/maple/pci.c
@@ -8,7 +8,7 @@
8 * 2 of the License, or (at your option) any later version. 8 * 2 of the License, or (at your option) any later version.
9 */ 9 */
10 10
11#define DEBUG 11#undef DEBUG
12 12
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/pci.h> 14#include <linux/pci.h>
@@ -16,6 +16,7 @@
16#include <linux/string.h> 16#include <linux/string.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/bootmem.h> 18#include <linux/bootmem.h>
19#include <linux/irq.h>
19 20
20#include <asm/sections.h> 21#include <asm/sections.h>
21#include <asm/io.h> 22#include <asm/io.h>
@@ -33,7 +34,7 @@
33#define DBG(x...) 34#define DBG(x...)
34#endif 35#endif
35 36
36static struct pci_controller *u3_agp, *u3_ht; 37static struct pci_controller *u3_agp, *u3_ht, *u4_pcie;
37 38
38static int __init fixup_one_level_bus_range(struct device_node *node, int higher) 39static int __init fixup_one_level_bus_range(struct device_node *node, int higher)
39{ 40{
@@ -287,6 +288,114 @@ static struct pci_ops u3_ht_pci_ops =
287 u3_ht_write_config 288 u3_ht_write_config
288}; 289};
289 290
291static unsigned int u4_pcie_cfa0(unsigned int devfn, unsigned int off)
292{
293 return (1 << PCI_SLOT(devfn)) |
294 (PCI_FUNC(devfn) << 8) |
295 ((off >> 8) << 28) |
296 (off & 0xfcu);
297}
298
299static unsigned int u4_pcie_cfa1(unsigned int bus, unsigned int devfn,
300 unsigned int off)
301{
302 return (bus << 16) |
303 (devfn << 8) |
304 ((off >> 8) << 28) |
305 (off & 0xfcu) | 1u;
306}
307
308static volatile void __iomem *u4_pcie_cfg_access(struct pci_controller* hose,
309 u8 bus, u8 dev_fn, int offset)
310{
311 unsigned int caddr;
312
313 if (bus == hose->first_busno)
314 caddr = u4_pcie_cfa0(dev_fn, offset);
315 else
316 caddr = u4_pcie_cfa1(bus, dev_fn, offset);
317
318 /* Uninorth will return garbage if we don't read back the value ! */
319 do {
320 out_le32(hose->cfg_addr, caddr);
321 } while (in_le32(hose->cfg_addr) != caddr);
322
323 offset &= 0x03;
324 return hose->cfg_data + offset;
325}
326
327static int u4_pcie_read_config(struct pci_bus *bus, unsigned int devfn,
328 int offset, int len, u32 *val)
329{
330 struct pci_controller *hose;
331 volatile void __iomem *addr;
332
333 hose = pci_bus_to_host(bus);
334 if (hose == NULL)
335 return PCIBIOS_DEVICE_NOT_FOUND;
336 if (offset >= 0x1000)
337 return PCIBIOS_BAD_REGISTER_NUMBER;
338 addr = u4_pcie_cfg_access(hose, bus->number, devfn, offset);
339 if (!addr)
340 return PCIBIOS_DEVICE_NOT_FOUND;
341 /*
342 * Note: the caller has already checked that offset is
343 * suitably aligned and that len is 1, 2 or 4.
344 */
345 switch (len) {
346 case 1:
347 *val = in_8(addr);
348 break;
349 case 2:
350 *val = in_le16(addr);
351 break;
352 default:
353 *val = in_le32(addr);
354 break;
355 }
356 return PCIBIOS_SUCCESSFUL;
357}
358static int u4_pcie_write_config(struct pci_bus *bus, unsigned int devfn,
359 int offset, int len, u32 val)
360{
361 struct pci_controller *hose;
362 volatile void __iomem *addr;
363
364 hose = pci_bus_to_host(bus);
365 if (hose == NULL)
366 return PCIBIOS_DEVICE_NOT_FOUND;
367 if (offset >= 0x1000)
368 return PCIBIOS_BAD_REGISTER_NUMBER;
369 addr = u4_pcie_cfg_access(hose, bus->number, devfn, offset);
370 if (!addr)
371 return PCIBIOS_DEVICE_NOT_FOUND;
372 /*
373 * Note: the caller has already checked that offset is
374 * suitably aligned and that len is 1, 2 or 4.
375 */
376 switch (len) {
377 case 1:
378 out_8(addr, val);
379 (void) in_8(addr);
380 break;
381 case 2:
382 out_le16(addr, val);
383 (void) in_le16(addr);
384 break;
385 default:
386 out_le32(addr, val);
387 (void) in_le32(addr);
388 break;
389 }
390 return PCIBIOS_SUCCESSFUL;
391}
392
393static struct pci_ops u4_pcie_pci_ops =
394{
395 u4_pcie_read_config,
396 u4_pcie_write_config
397};
398
290static void __init setup_u3_agp(struct pci_controller* hose) 399static void __init setup_u3_agp(struct pci_controller* hose)
291{ 400{
292 /* On G5, we move AGP up to high bus number so we don't need 401 /* On G5, we move AGP up to high bus number so we don't need
@@ -307,6 +416,26 @@ static void __init setup_u3_agp(struct pci_controller* hose)
307 u3_agp = hose; 416 u3_agp = hose;
308} 417}
309 418
419static void __init setup_u4_pcie(struct pci_controller* hose)
420{
421 /* We currently only implement the "non-atomic" config space, to
422 * be optimised later.
423 */
424 hose->ops = &u4_pcie_pci_ops;
425 hose->cfg_addr = ioremap(0xf0000000 + 0x800000, 0x1000);
426 hose->cfg_data = ioremap(0xf0000000 + 0xc00000, 0x1000);
427
428 /* The bus contains a bridge from root -> device, we need to
429 * make it visible on bus 0 so that we pick the right type
430 * of config cycles. If we didn't, we would have to force all
431 * config cycles to be type 1. So we override the "bus-range"
432 * property here
433 */
434 hose->first_busno = 0x00;
435 hose->last_busno = 0xff;
436 u4_pcie = hose;
437}
438
310static void __init setup_u3_ht(struct pci_controller* hose) 439static void __init setup_u3_ht(struct pci_controller* hose)
311{ 440{
312 hose->ops = &u3_ht_pci_ops; 441 hose->ops = &u3_ht_pci_ops;
@@ -354,6 +483,10 @@ static int __init add_bridge(struct device_node *dev)
354 setup_u3_ht(hose); 483 setup_u3_ht(hose);
355 disp_name = "U3-HT"; 484 disp_name = "U3-HT";
356 primary = 1; 485 primary = 1;
486 } else if (device_is_compatible(dev, "u4-pcie")) {
487 setup_u4_pcie(hose);
488 disp_name = "U4-PCIE";
489 primary = 0;
357 } 490 }
358 printk(KERN_INFO "Found %s PCI host bridge. Firmware bus number: %d->%d\n", 491 printk(KERN_INFO "Found %s PCI host bridge. Firmware bus number: %d->%d\n",
359 disp_name, hose->first_busno, hose->last_busno); 492 disp_name, hose->first_busno, hose->last_busno);
@@ -361,7 +494,6 @@ static int __init add_bridge(struct device_node *dev)
361 /* Interpret the "ranges" property */ 494 /* Interpret the "ranges" property */
362 /* This also maps the I/O region and sets isa_io/mem_base */ 495 /* This also maps the I/O region and sets isa_io/mem_base */
363 pci_process_bridge_OF_ranges(hose, dev, primary); 496 pci_process_bridge_OF_ranges(hose, dev, primary);
364 pci_setup_phb_io(hose, primary);
365 497
366 /* Fixup "bus-range" OF property */ 498 /* Fixup "bus-range" OF property */
367 fixup_bus_range(dev); 499 fixup_bus_range(dev);
@@ -376,8 +508,30 @@ void __init maple_pcibios_fixup(void)
376 508
377 DBG(" -> maple_pcibios_fixup\n"); 509 DBG(" -> maple_pcibios_fixup\n");
378 510
379 for_each_pci_dev(dev) 511 for_each_pci_dev(dev) {
512 /* Fixup IRQ for PCIe host */
513 if (u4_pcie != NULL && dev->bus->number == 0 &&
514 pci_bus_to_host(dev->bus) == u4_pcie) {
515 printk(KERN_DEBUG "Fixup U4 PCIe IRQ\n");
516 dev->irq = irq_create_mapping(NULL, 1);
517 if (dev->irq != NO_IRQ)
518 set_irq_type(dev->irq, IRQ_TYPE_LEVEL_LOW);
519 continue;
520 }
521
522 /* Hide AMD8111 IDE interrupt when in legacy mode so
523 * the driver calls pci_get_legacy_ide_irq()
524 */
525 if (dev->vendor == PCI_VENDOR_ID_AMD &&
526 dev->device == PCI_DEVICE_ID_AMD_8111_IDE &&
527 (dev->class & 5) != 5) {
528 dev->irq = NO_IRQ;
529 continue;
530 }
531
532 /* For all others, map the interrupt from the device-tree */
380 pci_read_irq_line(dev); 533 pci_read_irq_line(dev);
534 }
381 535
382 DBG(" <- maple_pcibios_fixup\n"); 536 DBG(" <- maple_pcibios_fixup\n");
383} 537}
@@ -388,8 +542,10 @@ static void __init maple_fixup_phb_resources(void)
388 542
389 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { 543 list_for_each_entry_safe(hose, tmp, &hose_list, list_node) {
390 unsigned long offset = (unsigned long)hose->io_base_virt - pci_io_base; 544 unsigned long offset = (unsigned long)hose->io_base_virt - pci_io_base;
545
391 hose->io_resource.start += offset; 546 hose->io_resource.start += offset;
392 hose->io_resource.end += offset; 547 hose->io_resource.end += offset;
548
393 printk(KERN_INFO "PCI Host %d, io start: %llx; io end: %llx\n", 549 printk(KERN_INFO "PCI Host %d, io start: %llx; io end: %llx\n",
394 hose->global_number, 550 hose->global_number,
395 (unsigned long long)hose->io_resource.start, 551 (unsigned long long)hose->io_resource.start,
@@ -431,6 +587,19 @@ void __init maple_pci_init(void)
431 if (ht && add_bridge(ht) != 0) 587 if (ht && add_bridge(ht) != 0)
432 of_node_put(ht); 588 of_node_put(ht);
433 589
590 /*
591 * We need to call pci_setup_phb_io for the HT bridge first
592 * so it gets the I/O port numbers starting at 0, and we
593 * need to call it for the AGP bridge after that so it gets
594 * small positive I/O port numbers.
595 */
596 if (u3_ht)
597 pci_setup_phb_io(u3_ht, 1);
598 if (u3_agp)
599 pci_setup_phb_io(u3_agp, 0);
600 if (u4_pcie)
601 pci_setup_phb_io(u4_pcie, 0);
602
434 /* Fixup the IO resources on our host bridges as the common code 603 /* Fixup the IO resources on our host bridges as the common code
435 * does it only for childs of the host bridges 604 * does it only for childs of the host bridges
436 */ 605 */
@@ -465,8 +634,11 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel)
465 return defirq; 634 return defirq;
466 635
467 np = pci_device_to_OF_node(pdev); 636 np = pci_device_to_OF_node(pdev);
468 if (np == NULL) 637 if (np == NULL) {
638 printk("Failed to locate OF node for IDE %s\n",
639 pci_name(pdev));
469 return defirq; 640 return defirq;
641 }
470 irq = irq_of_parse_and_map(np, channel & 0x1); 642 irq = irq_of_parse_and_map(np, channel & 0x1);
471 if (irq == NO_IRQ) { 643 if (irq == NO_IRQ) {
472 printk("Failed to map onboard IDE interrupt for channel %d\n", 644 printk("Failed to map onboard IDE interrupt for channel %d\n",
@@ -479,6 +651,9 @@ int maple_pci_get_legacy_ide_irq(struct pci_dev *pdev, int channel)
479/* XXX: To remove once all firmwares are ok */ 651/* XXX: To remove once all firmwares are ok */
480static void fixup_maple_ide(struct pci_dev* dev) 652static void fixup_maple_ide(struct pci_dev* dev)
481{ 653{
654 if (!machine_is(maple))
655 return;
656
482#if 0 /* Enable this to enable IDE port 0 */ 657#if 0 /* Enable this to enable IDE port 0 */
483 { 658 {
484 u8 v; 659 u8 v;
@@ -495,7 +670,7 @@ static void fixup_maple_ide(struct pci_dev* dev)
495 dev->resource[4].start = 0xcc00; 670 dev->resource[4].start = 0xcc00;
496 dev->resource[4].end = 0xcc10; 671 dev->resource[4].end = 0xcc10;
497#endif 672#endif
498#if 1 /* Enable this to fixup IDE sense/polarity of irqs in IO-APICs */ 673#if 0 /* Enable this to fixup IDE sense/polarity of irqs in IO-APICs */
499 { 674 {
500 struct pci_dev *apicdev; 675 struct pci_dev *apicdev;
501 u32 v; 676 u32 v;
diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
index 574cd205b302..eeb2ae5ffc58 100644
--- a/arch/powerpc/platforms/powermac/smp.c
+++ b/arch/powerpc/platforms/powermac/smp.c
@@ -328,6 +328,7 @@ static void __init smp_psurge_kick_cpu(int nr)
328{ 328{
329 unsigned long start = __pa(__secondary_start_pmac_0) + nr * 8; 329 unsigned long start = __pa(__secondary_start_pmac_0) + nr * 8;
330 unsigned long a; 330 unsigned long a;
331 int i;
331 332
332 /* may need to flush here if secondary bats aren't setup */ 333 /* may need to flush here if secondary bats aren't setup */
333 for (a = KERNELBASE; a < KERNELBASE + 0x800000; a += 32) 334 for (a = KERNELBASE; a < KERNELBASE + 0x800000; a += 32)
@@ -340,7 +341,11 @@ static void __init smp_psurge_kick_cpu(int nr)
340 mb(); 341 mb();
341 342
342 psurge_set_ipi(nr); 343 psurge_set_ipi(nr);
343 udelay(10); 344 /*
345 * We can't use udelay here because the timebase is now frozen.
346 */
347 for (i = 0; i < 2000; ++i)
348 barrier();
344 psurge_clr_ipi(nr); 349 psurge_clr_ipi(nr);
345 350
346 if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu - done", 0x354); 351 if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu - done", 0x354);
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 5a854f36383c..f56ffef4defa 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -36,6 +36,7 @@
36#include <asm/rtas.h> 36#include <asm/rtas.h>
37#include <asm/sstep.h> 37#include <asm/sstep.h>
38#include <asm/bug.h> 38#include <asm/bug.h>
39#include <asm/irq_regs.h>
39 40
40#ifdef CONFIG_PPC64 41#ifdef CONFIG_PPC64
41#include <asm/hvcall.h> 42#include <asm/hvcall.h>
@@ -521,13 +522,12 @@ int xmon(struct pt_regs *excp)
521} 522}
522EXPORT_SYMBOL(xmon); 523EXPORT_SYMBOL(xmon);
523 524
524irqreturn_t 525irqreturn_t xmon_irq(int irq, void *d)
525xmon_irq(int irq, void *d, struct pt_regs *regs)
526{ 526{
527 unsigned long flags; 527 unsigned long flags;
528 local_irq_save(flags); 528 local_irq_save(flags);
529 printf("Keyboard interrupt\n"); 529 printf("Keyboard interrupt\n");
530 xmon(regs); 530 xmon(get_irq_regs());
531 local_irq_restore(flags); 531 local_irq_restore(flags);
532 return IRQ_HANDLED; 532 return IRQ_HANDLED;
533} 533}
diff --git a/arch/ppc/4xx_io/serial_sicc.c b/arch/ppc/4xx_io/serial_sicc.c
index 080a20531f8b..e35483961b90 100644
--- a/arch/ppc/4xx_io/serial_sicc.c
+++ b/arch/ppc/4xx_io/serial_sicc.c
@@ -414,7 +414,7 @@ static void siccuart_event(struct SICC_info *info, int event)
414} 414}
415 415
416static void 416static void
417siccuart_rx_chars(struct SICC_info *info, struct pt_regs *regs) 417siccuart_rx_chars(struct SICC_info *info)
418{ 418{
419 struct tty_struct *tty = info->tty; 419 struct tty_struct *tty = info->tty;
420 unsigned int status, ch, rsr, flg, ignored = 0; 420 unsigned int status, ch, rsr, flg, ignored = 0;
@@ -553,15 +553,15 @@ static void siccuart_tx_chars(struct SICC_info *info)
553} 553}
554 554
555 555
556static irqreturn_t siccuart_int_rx(int irq, void *dev_id, struct pt_regs *regs) 556static irqreturn_t siccuart_int_rx(int irq, void *dev_id)
557{ 557{
558 struct SICC_info *info = dev_id; 558 struct SICC_info *info = dev_id;
559 siccuart_rx_chars(info, regs); 559 siccuart_rx_chars(info)
560 return IRQ_HANDLED; 560 return IRQ_HANDLED;
561} 561}
562 562
563 563
564static irqreturn_t siccuart_int_tx(int irq, void *dev_id, struct pt_regs *regs) 564static irqreturn_t siccuart_int_tx(int irq, void *dev_id)
565{ 565{
566 struct SICC_info *info = dev_id; 566 struct SICC_info *info = dev_id;
567 siccuart_tx_chars(info); 567 siccuart_tx_chars(info);
diff --git a/arch/ppc/8260_io/enet.c b/arch/ppc/8260_io/enet.c
index ac6d55fe2235..a6056c29cf00 100644
--- a/arch/ppc/8260_io/enet.c
+++ b/arch/ppc/8260_io/enet.c
@@ -122,7 +122,7 @@ struct scc_enet_private {
122static int scc_enet_open(struct net_device *dev); 122static int scc_enet_open(struct net_device *dev);
123static int scc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev); 123static int scc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
124static int scc_enet_rx(struct net_device *dev); 124static int scc_enet_rx(struct net_device *dev);
125static irqreturn_t scc_enet_interrupt(int irq, void *dev_id, struct pt_regs *); 125static irqreturn_t scc_enet_interrupt(int irq, void *dev_id);
126static int scc_enet_close(struct net_device *dev); 126static int scc_enet_close(struct net_device *dev);
127static struct net_device_stats *scc_enet_get_stats(struct net_device *dev); 127static struct net_device_stats *scc_enet_get_stats(struct net_device *dev);
128static void set_multicast_list(struct net_device *dev); 128static void set_multicast_list(struct net_device *dev);
@@ -273,7 +273,7 @@ scc_enet_timeout(struct net_device *dev)
273 * This is called from the CPM handler, not the MPC core interrupt. 273 * This is called from the CPM handler, not the MPC core interrupt.
274 */ 274 */
275static irqreturn_t 275static irqreturn_t
276scc_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs) 276scc_enet_interrupt(int irq, void * dev_id)
277{ 277{
278 struct net_device *dev = dev_id; 278 struct net_device *dev = dev_id;
279 volatile struct scc_enet_private *cep; 279 volatile struct scc_enet_private *cep;
diff --git a/arch/ppc/8260_io/fcc_enet.c b/arch/ppc/8260_io/fcc_enet.c
index e347fe88316d..2e1943e27819 100644
--- a/arch/ppc/8260_io/fcc_enet.c
+++ b/arch/ppc/8260_io/fcc_enet.c
@@ -140,7 +140,7 @@ typedef struct {
140static int fcc_enet_open(struct net_device *dev); 140static int fcc_enet_open(struct net_device *dev);
141static int fcc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev); 141static int fcc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
142static int fcc_enet_rx(struct net_device *dev); 142static int fcc_enet_rx(struct net_device *dev);
143static irqreturn_t fcc_enet_interrupt(int irq, void *dev_id, struct pt_regs *); 143static irqreturn_t fcc_enet_interrupt(int irq, void *dev_id);
144static int fcc_enet_close(struct net_device *dev); 144static int fcc_enet_close(struct net_device *dev);
145static struct net_device_stats *fcc_enet_get_stats(struct net_device *dev); 145static struct net_device_stats *fcc_enet_get_stats(struct net_device *dev);
146/* static void set_multicast_list(struct net_device *dev); */ 146/* static void set_multicast_list(struct net_device *dev); */
@@ -524,7 +524,7 @@ fcc_enet_timeout(struct net_device *dev)
524 524
525/* The interrupt handler. */ 525/* The interrupt handler. */
526static irqreturn_t 526static irqreturn_t
527fcc_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs) 527fcc_enet_interrupt(int irq, void * dev_id)
528{ 528{
529 struct net_device *dev = dev_id; 529 struct net_device *dev = dev_id;
530 volatile struct fcc_enet_private *cep; 530 volatile struct fcc_enet_private *cep;
@@ -1563,7 +1563,7 @@ mii_discover_phy(uint mii_reg, struct net_device *dev)
1563#ifdef PHY_INTERRUPT 1563#ifdef PHY_INTERRUPT
1564/* This interrupt occurs when the PHY detects a link change. */ 1564/* This interrupt occurs when the PHY detects a link change. */
1565static irqreturn_t 1565static irqreturn_t
1566mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs) 1566mii_link_interrupt(int irq, void * dev_id)
1567{ 1567{
1568 struct net_device *dev = dev_id; 1568 struct net_device *dev = dev_id;
1569 struct fcc_enet_private *fep = dev->priv; 1569 struct fcc_enet_private *fep = dev->priv;
diff --git a/arch/ppc/8xx_io/commproc.c b/arch/ppc/8xx_io/commproc.c
index 9b3ace26280c..3b23bcb35b7a 100644
--- a/arch/ppc/8xx_io/commproc.c
+++ b/arch/ppc/8xx_io/commproc.c
@@ -47,12 +47,12 @@ cpm8xx_t *cpmp; /* Pointer to comm processor space */
47/* CPM interrupt vector functions. 47/* CPM interrupt vector functions.
48*/ 48*/
49struct cpm_action { 49struct cpm_action {
50 void (*handler)(void *, struct pt_regs * regs); 50 void (*handler)(void *);
51 void *dev_id; 51 void *dev_id;
52}; 52};
53static struct cpm_action cpm_vecs[CPMVEC_NR]; 53static struct cpm_action cpm_vecs[CPMVEC_NR];
54static irqreturn_t cpm_interrupt(int irq, void * dev, struct pt_regs * regs); 54static irqreturn_t cpm_interrupt(int irq, void * dev);
55static irqreturn_t cpm_error_interrupt(int irq, void *dev, struct pt_regs * regs); 55static irqreturn_t cpm_error_interrupt(int irq, void *dev);
56static void alloc_host_memory(void); 56static void alloc_host_memory(void);
57/* Define a table of names to identify CPM interrupt handlers in 57/* Define a table of names to identify CPM interrupt handlers in
58 * /proc/interrupts. 58 * /proc/interrupts.
@@ -205,7 +205,7 @@ cpm_interrupt_init(void)
205 * Get the CPM interrupt vector. 205 * Get the CPM interrupt vector.
206 */ 206 */
207int 207int
208cpm_get_irq(struct pt_regs *regs) 208cpm_get_irq(void)
209{ 209{
210 int cpm_vec; 210 int cpm_vec;
211 211
@@ -222,7 +222,7 @@ cpm_get_irq(struct pt_regs *regs)
222/* CPM interrupt controller cascade interrupt. 222/* CPM interrupt controller cascade interrupt.
223*/ 223*/
224static irqreturn_t 224static irqreturn_t
225cpm_interrupt(int irq, void * dev, struct pt_regs * regs) 225cpm_interrupt(int irq, void * dev)
226{ 226{
227 /* This interrupt handler never actually gets called. It is 227 /* This interrupt handler never actually gets called. It is
228 * installed only to unmask the CPM cascade interrupt in the SIU 228 * installed only to unmask the CPM cascade interrupt in the SIU
@@ -237,7 +237,7 @@ cpm_interrupt(int irq, void * dev, struct pt_regs * regs)
237 * tests in the interrupt handler. 237 * tests in the interrupt handler.
238 */ 238 */
239static irqreturn_t 239static irqreturn_t
240cpm_error_interrupt(int irq, void *dev, struct pt_regs *regs) 240cpm_error_interrupt(int irq, void *dev)
241{ 241{
242 return IRQ_HANDLED; 242 return IRQ_HANDLED;
243} 243}
@@ -246,11 +246,11 @@ cpm_error_interrupt(int irq, void *dev, struct pt_regs *regs)
246 * request_irq() to the handler prototype required by cpm_install_handler(). 246 * request_irq() to the handler prototype required by cpm_install_handler().
247 */ 247 */
248static irqreturn_t 248static irqreturn_t
249cpm_handler_helper(int irq, void *dev_id, struct pt_regs *regs) 249cpm_handler_helper(int irq, void *dev_id)
250{ 250{
251 int cpm_vec = irq - CPM_IRQ_OFFSET; 251 int cpm_vec = irq - CPM_IRQ_OFFSET;
252 252
253 (*cpm_vecs[cpm_vec].handler)(dev_id, regs); 253 (*cpm_vecs[cpm_vec].handler)(dev_id);
254 254
255 return IRQ_HANDLED; 255 return IRQ_HANDLED;
256} 256}
@@ -267,8 +267,7 @@ cpm_handler_helper(int irq, void *dev_id, struct pt_regs *regs)
267 * request_irq() or cpm_install_handler(). 267 * request_irq() or cpm_install_handler().
268 */ 268 */
269void 269void
270cpm_install_handler(int cpm_vec, void (*handler)(void *, struct pt_regs *regs), 270cpm_install_handler(int cpm_vec, void (*handler)(void *), void *dev_id)
271 void *dev_id)
272{ 271{
273 int err; 272 int err;
274 273
diff --git a/arch/ppc/8xx_io/cs4218_tdm.c b/arch/ppc/8xx_io/cs4218_tdm.c
index f5f300fc213d..959d31c26cbb 100644
--- a/arch/ppc/8xx_io/cs4218_tdm.c
+++ b/arch/ppc/8xx_io/cs4218_tdm.c
@@ -331,7 +331,7 @@ static int CS_SetFormat(int format);
331static int CS_SetVolume(int volume); 331static int CS_SetVolume(int volume);
332static void cs4218_tdm_tx_intr(void *devid); 332static void cs4218_tdm_tx_intr(void *devid);
333static void cs4218_tdm_rx_intr(void *devid); 333static void cs4218_tdm_rx_intr(void *devid);
334static void cs4218_intr(void *devid, struct pt_regs *regs); 334static void cs4218_intr(void *devid);
335static int cs_get_volume(uint reg); 335static int cs_get_volume(uint reg);
336static int cs_volume_setter(int volume, int mute); 336static int cs_volume_setter(int volume, int mute);
337static int cs_get_gain(uint reg); 337static int cs_get_gain(uint reg);
@@ -2646,7 +2646,7 @@ int __init tdm8xx_sound_init(void)
2646 * full duplex operation. 2646 * full duplex operation.
2647 */ 2647 */
2648static void 2648static void
2649cs4218_intr(void *dev_id, struct pt_regs *regs) 2649cs4218_intr(void *dev_id)
2650{ 2650{
2651 volatile smc_t *sp; 2651 volatile smc_t *sp;
2652 volatile cpm8xx_t *cp; 2652 volatile cpm8xx_t *cp;
diff --git a/arch/ppc/8xx_io/enet.c b/arch/ppc/8xx_io/enet.c
index a695375c3e4c..b23c45bc151a 100644
--- a/arch/ppc/8xx_io/enet.c
+++ b/arch/ppc/8xx_io/enet.c
@@ -149,7 +149,7 @@ struct scc_enet_private {
149static int scc_enet_open(struct net_device *dev); 149static int scc_enet_open(struct net_device *dev);
150static int scc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev); 150static int scc_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
151static int scc_enet_rx(struct net_device *dev); 151static int scc_enet_rx(struct net_device *dev);
152static void scc_enet_interrupt(void *dev_id, struct pt_regs *regs); 152static void scc_enet_interrupt(void *dev_id);
153static int scc_enet_close(struct net_device *dev); 153static int scc_enet_close(struct net_device *dev);
154static struct net_device_stats *scc_enet_get_stats(struct net_device *dev); 154static struct net_device_stats *scc_enet_get_stats(struct net_device *dev);
155static void set_multicast_list(struct net_device *dev); 155static void set_multicast_list(struct net_device *dev);
@@ -305,7 +305,7 @@ scc_enet_timeout(struct net_device *dev)
305 * This is called from the CPM handler, not the MPC core interrupt. 305 * This is called from the CPM handler, not the MPC core interrupt.
306 */ 306 */
307static void 307static void
308scc_enet_interrupt(void *dev_id, struct pt_regs *regs) 308scc_enet_interrupt(void *dev_id)
309{ 309{
310 struct net_device *dev = dev_id; 310 struct net_device *dev = dev_id;
311 volatile struct scc_enet_private *cep; 311 volatile struct scc_enet_private *cep;
diff --git a/arch/ppc/8xx_io/fec.c b/arch/ppc/8xx_io/fec.c
index 8b6295bbb564..2f9fa9e3d331 100644
--- a/arch/ppc/8xx_io/fec.c
+++ b/arch/ppc/8xx_io/fec.c
@@ -198,8 +198,7 @@ static int fec_enet_start_xmit(struct sk_buff *skb, struct net_device *dev);
198#ifdef CONFIG_USE_MDIO 198#ifdef CONFIG_USE_MDIO
199static void fec_enet_mii(struct net_device *dev); 199static void fec_enet_mii(struct net_device *dev);
200#endif /* CONFIG_USE_MDIO */ 200#endif /* CONFIG_USE_MDIO */
201static irqreturn_t fec_enet_interrupt(int irq, void * dev_id, 201static irqreturn_t fec_enet_interrupt(int irq, void * dev_id);
202 struct pt_regs * regs);
203#ifdef CONFIG_FEC_PACKETHOOK 202#ifdef CONFIG_FEC_PACKETHOOK
204static void fec_enet_tx(struct net_device *dev, __u32 regval); 203static void fec_enet_tx(struct net_device *dev, __u32 regval);
205static void fec_enet_rx(struct net_device *dev, __u32 regval); 204static void fec_enet_rx(struct net_device *dev, __u32 regval);
@@ -472,7 +471,7 @@ fec_timeout(struct net_device *dev)
472 * This is called from the MPC core interrupt. 471 * This is called from the MPC core interrupt.
473 */ 472 */
474static irqreturn_t 473static irqreturn_t
475fec_enet_interrupt(int irq, void * dev_id, struct pt_regs * regs) 474fec_enet_interrupt(int irq, void * dev_id)
476{ 475{
477 struct net_device *dev = dev_id; 476 struct net_device *dev = dev_id;
478 volatile fec_t *fecp; 477 volatile fec_t *fecp;
@@ -1408,7 +1407,7 @@ static
1408#ifdef CONFIG_RPXCLASSIC 1407#ifdef CONFIG_RPXCLASSIC
1409void mii_link_interrupt(void *dev_id) 1408void mii_link_interrupt(void *dev_id)
1410#else 1409#else
1411irqreturn_t mii_link_interrupt(int irq, void * dev_id, struct pt_regs * regs) 1410irqreturn_t mii_link_interrupt(int irq, void * dev_id)
1412#endif 1411#endif
1413{ 1412{
1414#ifdef CONFIG_USE_MDIO 1413#ifdef CONFIG_USE_MDIO
diff --git a/arch/ppc/kernel/smp.c b/arch/ppc/kernel/smp.c
index ca57e896a36c..96a55972b986 100644
--- a/arch/ppc/kernel/smp.c
+++ b/arch/ppc/kernel/smp.c
@@ -84,7 +84,7 @@ smp_message_pass(int target, int msg)
84/* 84/*
85 * Common functions 85 * Common functions
86 */ 86 */
87void smp_message_recv(int msg, struct pt_regs *regs) 87void smp_message_recv(int msg)
88{ 88{
89 atomic_inc(&ipi_recv); 89 atomic_inc(&ipi_recv);
90 90
@@ -100,7 +100,7 @@ void smp_message_recv(int msg, struct pt_regs *regs)
100 break; 100 break;
101#ifdef CONFIG_XMON 101#ifdef CONFIG_XMON
102 case PPC_MSG_XMON_BREAK: 102 case PPC_MSG_XMON_BREAK:
103 xmon(regs); 103 xmon(get_irq_regs());
104 break; 104 break;
105#endif /* CONFIG_XMON */ 105#endif /* CONFIG_XMON */
106 default: 106 default:
diff --git a/arch/ppc/platforms/apus_setup.c b/arch/ppc/platforms/apus_setup.c
index 1d034ead2c9a..063274d2c503 100644
--- a/arch/ppc/platforms/apus_setup.c
+++ b/arch/ppc/platforms/apus_setup.c
@@ -492,7 +492,7 @@ apus_halt(void)
492 492
493static unsigned char last_ipl[8]; 493static unsigned char last_ipl[8];
494 494
495int apus_get_irq(struct pt_regs* regs) 495int apus_get_irq(void)
496{ 496{
497 unsigned char ipl_emu, mask; 497 unsigned char ipl_emu, mask;
498 unsigned int level; 498 unsigned int level;
diff --git a/arch/ppc/platforms/hdpu.c b/arch/ppc/platforms/hdpu.c
index e0f112a1fd0b..d809e17aa536 100644
--- a/arch/ppc/platforms/hdpu.c
+++ b/arch/ppc/platforms/hdpu.c
@@ -659,8 +659,7 @@ static void __init hdpu_map_io(void)
659char hdpu_smp0[] = "SMP Cpu #0"; 659char hdpu_smp0[] = "SMP Cpu #0";
660char hdpu_smp1[] = "SMP Cpu #1"; 660char hdpu_smp1[] = "SMP Cpu #1";
661 661
662static irqreturn_t hdpu_smp_cpu0_int_handler(int irq, void *dev_id, 662static irqreturn_t hdpu_smp_cpu0_int_handler(int irq, void *dev_id)
663 struct pt_regs *regs)
664{ 663{
665 volatile unsigned int doorbell; 664 volatile unsigned int doorbell;
666 665
@@ -670,22 +669,21 @@ static irqreturn_t hdpu_smp_cpu0_int_handler(int irq, void *dev_id,
670 mv64x60_write(&bh, MV64360_CPU0_DOORBELL_CLR, doorbell); 669 mv64x60_write(&bh, MV64360_CPU0_DOORBELL_CLR, doorbell);
671 670
672 if (doorbell & 1) { 671 if (doorbell & 1) {
673 smp_message_recv(0, regs); 672 smp_message_recv(0);
674 } 673 }
675 if (doorbell & 2) { 674 if (doorbell & 2) {
676 smp_message_recv(1, regs); 675 smp_message_recv(1);
677 } 676 }
678 if (doorbell & 4) { 677 if (doorbell & 4) {
679 smp_message_recv(2, regs); 678 smp_message_recv(2);
680 } 679 }
681 if (doorbell & 8) { 680 if (doorbell & 8) {
682 smp_message_recv(3, regs); 681 smp_message_recv(3);
683 } 682 }
684 return IRQ_HANDLED; 683 return IRQ_HANDLED;
685} 684}
686 685
687static irqreturn_t hdpu_smp_cpu1_int_handler(int irq, void *dev_id, 686static irqreturn_t hdpu_smp_cpu1_int_handler(int irq, void *dev_id)
688 struct pt_regs *regs)
689{ 687{
690 volatile unsigned int doorbell; 688 volatile unsigned int doorbell;
691 689
@@ -695,16 +693,16 @@ static irqreturn_t hdpu_smp_cpu1_int_handler(int irq, void *dev_id,
695 mv64x60_write(&bh, MV64360_CPU1_DOORBELL_CLR, doorbell); 693 mv64x60_write(&bh, MV64360_CPU1_DOORBELL_CLR, doorbell);
696 694
697 if (doorbell & 1) { 695 if (doorbell & 1) {
698 smp_message_recv(0, regs); 696 smp_message_recv(0);
699 } 697 }
700 if (doorbell & 2) { 698 if (doorbell & 2) {
701 smp_message_recv(1, regs); 699 smp_message_recv(1);
702 } 700 }
703 if (doorbell & 4) { 701 if (doorbell & 4) {
704 smp_message_recv(2, regs); 702 smp_message_recv(2);
705 } 703 }
706 if (doorbell & 8) { 704 if (doorbell & 8) {
707 smp_message_recv(3, regs); 705 smp_message_recv(3);
708 } 706 }
709 return IRQ_HANDLED; 707 return IRQ_HANDLED;
710} 708}
diff --git a/arch/ppc/platforms/radstone_ppc7d.c b/arch/ppc/platforms/radstone_ppc7d.c
index 3bb530af0297..13d70ab50bf1 100644
--- a/arch/ppc/platforms/radstone_ppc7d.c
+++ b/arch/ppc/platforms/radstone_ppc7d.c
@@ -451,11 +451,11 @@ static void __init ppc7d_calibrate_decr(void)
451 * Interrupt stuff 451 * Interrupt stuff
452 *****************************************************************************/ 452 *****************************************************************************/
453 453
454static irqreturn_t ppc7d_i8259_intr(int irq, void *dev_id, struct pt_regs *regs) 454static irqreturn_t ppc7d_i8259_intr(int irq, void *dev_id)
455{ 455{
456 u32 temp = mv64x60_read(&bh, MV64x60_GPP_INTR_CAUSE); 456 u32 temp = mv64x60_read(&bh, MV64x60_GPP_INTR_CAUSE);
457 if (temp & (1 << 28)) { 457 if (temp & (1 << 28)) {
458 i8259_irq(regs); 458 i8259_irq();
459 mv64x60_write(&bh, MV64x60_GPP_INTR_CAUSE, temp & (~(1 << 28))); 459 mv64x60_write(&bh, MV64x60_GPP_INTR_CAUSE, temp & (~(1 << 28)));
460 return IRQ_HANDLED; 460 return IRQ_HANDLED;
461 } 461 }
@@ -536,13 +536,13 @@ static u32 ppc7d_irq_canonicalize(u32 irq)
536 return irq; 536 return irq;
537} 537}
538 538
539static int ppc7d_get_irq(struct pt_regs *regs) 539static int ppc7d_get_irq(void)
540{ 540{
541 int irq; 541 int irq;
542 542
543 irq = mv64360_get_irq(regs); 543 irq = mv64360_get_irq();
544 if (irq == (mv64360_irq_base + MV64x60_IRQ_GPP28)) 544 if (irq == (mv64360_irq_base + MV64x60_IRQ_GPP28))
545 irq = i8259_irq(regs); 545 irq = i8259_irq();
546 return irq; 546 return irq;
547} 547}
548 548
diff --git a/arch/ppc/platforms/sbc82xx.c b/arch/ppc/platforms/sbc82xx.c
index 60b769c7f3fc..cc0935ccab7a 100644
--- a/arch/ppc/platforms/sbc82xx.c
+++ b/arch/ppc/platforms/sbc82xx.c
@@ -121,7 +121,7 @@ struct hw_interrupt_type sbc82xx_i8259_ic = {
121 .end = sbc82xx_i8259_end_irq, 121 .end = sbc82xx_i8259_end_irq,
122}; 122};
123 123
124static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id, struct pt_regs *regs) 124static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id)
125{ 125{
126 spin_lock(&sbc82xx_i8259_lock); 126 spin_lock(&sbc82xx_i8259_lock);
127 127
@@ -139,7 +139,7 @@ static irqreturn_t sbc82xx_i8259_demux(int irq, void *dev_id, struct pt_regs *re
139 return IRQ_HANDLED; 139 return IRQ_HANDLED;
140 } 140 }
141 } 141 }
142 __do_IRQ(NR_SIU_INTS + irq, regs); 142 __do_IRQ(NR_SIU_INTS + irq);
143 return IRQ_HANDLED; 143 return IRQ_HANDLED;
144} 144}
145 145
diff --git a/arch/ppc/syslib/cpc700.h b/arch/ppc/syslib/cpc700.h
index 0a8a5d84390f..987e9aa0dd45 100644
--- a/arch/ppc/syslib/cpc700.h
+++ b/arch/ppc/syslib/cpc700.h
@@ -91,6 +91,6 @@ extern struct hw_interrupt_type cpc700_pic;
91extern unsigned int cpc700_irq_assigns[32][2]; 91extern unsigned int cpc700_irq_assigns[32][2];
92 92
93extern void __init cpc700_init_IRQ(void); 93extern void __init cpc700_init_IRQ(void);
94extern int cpc700_get_irq(struct pt_regs *); 94extern int cpc700_get_irq(void);
95 95
96#endif /* __PPC_SYSLIB_CPC700_H__ */ 96#endif /* __PPC_SYSLIB_CPC700_H__ */
diff --git a/arch/ppc/syslib/cpc700_pic.c b/arch/ppc/syslib/cpc700_pic.c
index 172aa215fdb0..d48e8f45c050 100644
--- a/arch/ppc/syslib/cpc700_pic.c
+++ b/arch/ppc/syslib/cpc700_pic.c
@@ -158,7 +158,7 @@ cpc700_init_IRQ(void)
158 * Find the highest IRQ that generating an interrupt, if any. 158 * Find the highest IRQ that generating an interrupt, if any.
159 */ 159 */
160int 160int
161cpc700_get_irq(struct pt_regs *regs) 161cpc700_get_irq(void)
162{ 162{
163 int irq = 0; 163 int irq = 0;
164 u_int irq_status, irq_test = 1; 164 u_int irq_status, irq_test = 1;
diff --git a/arch/ppc/syslib/cpm2_pic.c b/arch/ppc/syslib/cpm2_pic.c
index c0fee0beb815..fb2d5842641a 100644
--- a/arch/ppc/syslib/cpm2_pic.c
+++ b/arch/ppc/syslib/cpm2_pic.c
@@ -123,7 +123,7 @@ static struct hw_interrupt_type cpm2_pic = {
123 .end = cpm2_end_irq, 123 .end = cpm2_end_irq,
124}; 124};
125 125
126int cpm2_get_irq(struct pt_regs *regs) 126int cpm2_get_irq(void)
127{ 127{
128 int irq; 128 int irq;
129 unsigned long bits; 129 unsigned long bits;
diff --git a/arch/ppc/syslib/cpm2_pic.h b/arch/ppc/syslib/cpm2_pic.h
index 97cab8f13a1a..467339337a78 100644
--- a/arch/ppc/syslib/cpm2_pic.h
+++ b/arch/ppc/syslib/cpm2_pic.h
@@ -1,7 +1,7 @@
1#ifndef _PPC_KERNEL_CPM2_H 1#ifndef _PPC_KERNEL_CPM2_H
2#define _PPC_KERNEL_CPM2_H 2#define _PPC_KERNEL_CPM2_H
3 3
4extern int cpm2_get_irq(struct pt_regs *regs); 4extern int cpm2_get_irq(void);
5 5
6extern void cpm2_init_IRQ(void); 6extern void cpm2_init_IRQ(void);
7 7
diff --git a/arch/ppc/syslib/gt64260_pic.c b/arch/ppc/syslib/gt64260_pic.c
index 7fd550a7d586..e84d432c0657 100644
--- a/arch/ppc/syslib/gt64260_pic.c
+++ b/arch/ppc/syslib/gt64260_pic.c
@@ -110,9 +110,6 @@ gt64260_init_irq(void)
110 * This function returns the lowest interrupt number of all interrupts that 110 * This function returns the lowest interrupt number of all interrupts that
111 * are currently asserted. 111 * are currently asserted.
112 * 112 *
113 * Input Variable(s):
114 * struct pt_regs* not used
115 *
116 * Output Variable(s): 113 * Output Variable(s):
117 * None. 114 * None.
118 * 115 *
@@ -120,7 +117,7 @@ gt64260_init_irq(void)
120 * int <interrupt number> or -2 (bogus interrupt) 117 * int <interrupt number> or -2 (bogus interrupt)
121 */ 118 */
122int 119int
123gt64260_get_irq(struct pt_regs *regs) 120gt64260_get_irq(void)
124{ 121{
125 int irq; 122 int irq;
126 int irq_gpp; 123 int irq_gpp;
@@ -229,7 +226,7 @@ gt64260_mask_irq(unsigned int irq)
229} 226}
230 227
231static irqreturn_t 228static irqreturn_t
232gt64260_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) 229gt64260_cpu_error_int_handler(int irq, void *dev_id)
233{ 230{
234 printk(KERN_ERR "gt64260_cpu_error_int_handler: %s 0x%08x\n", 231 printk(KERN_ERR "gt64260_cpu_error_int_handler: %s 0x%08x\n",
235 "Error on CPU interface - Cause regiser", 232 "Error on CPU interface - Cause regiser",
@@ -250,7 +247,7 @@ gt64260_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs)
250} 247}
251 248
252static irqreturn_t 249static irqreturn_t
253gt64260_pci_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) 250gt64260_pci_error_int_handler(int irq, void *dev_id)
254{ 251{
255 u32 val; 252 u32 val;
256 unsigned int pci_bus = (unsigned int)dev_id; 253 unsigned int pci_bus = (unsigned int)dev_id;
diff --git a/arch/ppc/syslib/ibm440gx_common.c b/arch/ppc/syslib/ibm440gx_common.c
index 4b77e6c8c87f..6ad52f4a26e1 100644
--- a/arch/ppc/syslib/ibm440gx_common.c
+++ b/arch/ppc/syslib/ibm440gx_common.c
@@ -119,7 +119,7 @@ static inline u32 l2c_diag(u32 addr)
119 return mfdcr(DCRN_L2C0_DATA); 119 return mfdcr(DCRN_L2C0_DATA);
120} 120}
121 121
122static irqreturn_t l2c_error_handler(int irq, void* dev, struct pt_regs* regs) 122static irqreturn_t l2c_error_handler(int irq, void* dev)
123{ 123{
124 u32 sr = mfdcr(DCRN_L2C0_SR); 124 u32 sr = mfdcr(DCRN_L2C0_SR);
125 if (sr & L2C_SR_CPE){ 125 if (sr & L2C_SR_CPE){
diff --git a/arch/ppc/syslib/ipic.c b/arch/ppc/syslib/ipic.c
index 46801f5ec03f..10659c24b1be 100644
--- a/arch/ppc/syslib/ipic.c
+++ b/arch/ppc/syslib/ipic.c
@@ -601,7 +601,7 @@ void ipic_clear_mcp_status(u32 mask)
601} 601}
602 602
603/* Return an interrupt vector or -1 if no interrupt is pending. */ 603/* Return an interrupt vector or -1 if no interrupt is pending. */
604int ipic_get_irq(struct pt_regs *regs) 604int ipic_get_irq(void)
605{ 605{
606 int irq; 606 int irq;
607 607
diff --git a/arch/ppc/syslib/m82xx_pci.c b/arch/ppc/syslib/m82xx_pci.c
index d3fa264e179e..e3b586b1ede9 100644
--- a/arch/ppc/syslib/m82xx_pci.c
+++ b/arch/ppc/syslib/m82xx_pci.c
@@ -117,7 +117,7 @@ struct hw_interrupt_type pq2pci_ic = {
117}; 117};
118 118
119static irqreturn_t 119static irqreturn_t
120pq2pci_irq_demux(int irq, void *dev_id, struct pt_regs *regs) 120pq2pci_irq_demux(int irq, void *dev_id)
121{ 121{
122 unsigned long stat, mask, pend; 122 unsigned long stat, mask, pend;
123 int bit; 123 int bit;
@@ -130,7 +130,7 @@ pq2pci_irq_demux(int irq, void *dev_id, struct pt_regs *regs)
130 break; 130 break;
131 for (bit = 0; pend != 0; ++bit, pend <<= 1) { 131 for (bit = 0; pend != 0; ++bit, pend <<= 1) {
132 if (pend & 0x80000000) 132 if (pend & 0x80000000)
133 __do_IRQ(NR_CPM_INTS + bit, regs); 133 __do_IRQ(NR_CPM_INTS + bit);
134 } 134 }
135 } 135 }
136 136
diff --git a/arch/ppc/syslib/m8xx_setup.c b/arch/ppc/syslib/m8xx_setup.c
index 54303a7b4e69..d8d299bd1a12 100644
--- a/arch/ppc/syslib/m8xx_setup.c
+++ b/arch/ppc/syslib/m8xx_setup.c
@@ -169,7 +169,7 @@ abort(void)
169} 169}
170 170
171/* A place holder for time base interrupts, if they are ever enabled. */ 171/* A place holder for time base interrupts, if they are ever enabled. */
172irqreturn_t timebase_interrupt(int irq, void * dev, struct pt_regs * regs) 172irqreturn_t timebase_interrupt(int irq, void * dev)
173{ 173{
174 printk ("timebase_interrupt()\n"); 174 printk ("timebase_interrupt()\n");
175 175
diff --git a/arch/ppc/syslib/m8xx_wdt.c b/arch/ppc/syslib/m8xx_wdt.c
index ac11d7bab443..fffac8cbeb51 100644
--- a/arch/ppc/syslib/m8xx_wdt.c
+++ b/arch/ppc/syslib/m8xx_wdt.c
@@ -21,7 +21,7 @@
21static int wdt_timeout; 21static int wdt_timeout;
22int m8xx_has_internal_rtc = 0; 22int m8xx_has_internal_rtc = 0;
23 23
24static irqreturn_t m8xx_wdt_interrupt(int, void *, struct pt_regs *); 24static irqreturn_t m8xx_wdt_interrupt(int, void *);
25static struct irqaction m8xx_wdt_irqaction = { 25static struct irqaction m8xx_wdt_irqaction = {
26 .handler = m8xx_wdt_interrupt, 26 .handler = m8xx_wdt_interrupt,
27 .name = "watchdog", 27 .name = "watchdog",
@@ -35,7 +35,7 @@ void m8xx_wdt_reset(void)
35 out_be16(&imap->im_siu_conf.sc_swsr, 0xaa39); /* write magic2 */ 35 out_be16(&imap->im_siu_conf.sc_swsr, 0xaa39); /* write magic2 */
36} 36}
37 37
38static irqreturn_t m8xx_wdt_interrupt(int irq, void *dev, struct pt_regs *regs) 38static irqreturn_t m8xx_wdt_interrupt(int irq, void *dev)
39{ 39{
40 volatile immap_t *imap = (volatile immap_t *)IMAP_ADDR; 40 volatile immap_t *imap = (volatile immap_t *)IMAP_ADDR;
41 41
diff --git a/arch/ppc/syslib/mpc52xx_pic.c b/arch/ppc/syslib/mpc52xx_pic.c
index 6425b5cee7db..af35a316544a 100644
--- a/arch/ppc/syslib/mpc52xx_pic.c
+++ b/arch/ppc/syslib/mpc52xx_pic.c
@@ -220,7 +220,7 @@ mpc52xx_init_irq(void)
220} 220}
221 221
222int 222int
223mpc52xx_get_irq(struct pt_regs *regs) 223mpc52xx_get_irq(void)
224{ 224{
225 u32 status; 225 u32 status;
226 int irq = -1; 226 int irq = -1;
diff --git a/arch/ppc/syslib/mv64360_pic.c b/arch/ppc/syslib/mv64360_pic.c
index 5104386601ed..4b7a3338e122 100644
--- a/arch/ppc/syslib/mv64360_pic.c
+++ b/arch/ppc/syslib/mv64360_pic.c
@@ -55,10 +55,9 @@
55 55
56static void mv64360_unmask_irq(unsigned int); 56static void mv64360_unmask_irq(unsigned int);
57static void mv64360_mask_irq(unsigned int); 57static void mv64360_mask_irq(unsigned int);
58static irqreturn_t mv64360_cpu_error_int_handler(int, void *, struct pt_regs *); 58static irqreturn_t mv64360_cpu_error_int_handler(int, void *);
59static irqreturn_t mv64360_sram_error_int_handler(int, void *, 59static irqreturn_t mv64360_sram_error_int_handler(int, void *);
60 struct pt_regs *); 60static irqreturn_t mv64360_pci_error_int_handler(int, void *);
61static irqreturn_t mv64360_pci_error_int_handler(int, void *, struct pt_regs *);
62 61
63/* ========================== local declarations =========================== */ 62/* ========================== local declarations =========================== */
64 63
@@ -131,9 +130,6 @@ mv64360_init_irq(void)
131 * This function returns the lowest interrupt number of all interrupts that 130 * This function returns the lowest interrupt number of all interrupts that
132 * are currently asserted. 131 * are currently asserted.
133 * 132 *
134 * Input Variable(s):
135 * struct pt_regs* not used
136 *
137 * Output Variable(s): 133 * Output Variable(s):
138 * None. 134 * None.
139 * 135 *
@@ -142,7 +138,7 @@ mv64360_init_irq(void)
142 * 138 *
143 */ 139 */
144int 140int
145mv64360_get_irq(struct pt_regs *regs) 141mv64360_get_irq(void)
146{ 142{
147 int irq; 143 int irq;
148 int irq_gpp; 144 int irq_gpp;
@@ -283,7 +279,7 @@ mv64360_mask_irq(unsigned int irq)
283} 279}
284 280
285static irqreturn_t 281static irqreturn_t
286mv64360_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) 282mv64360_cpu_error_int_handler(int irq, void *dev_id)
287{ 283{
288 printk(KERN_ERR "mv64360_cpu_error_int_handler: %s 0x%08x\n", 284 printk(KERN_ERR "mv64360_cpu_error_int_handler: %s 0x%08x\n",
289 "Error on CPU interface - Cause regiser", 285 "Error on CPU interface - Cause regiser",
@@ -304,7 +300,7 @@ mv64360_cpu_error_int_handler(int irq, void *dev_id, struct pt_regs *regs)
304} 300}
305 301
306static irqreturn_t 302static irqreturn_t
307mv64360_sram_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) 303mv64360_sram_error_int_handler(int irq, void *dev_id)
308{ 304{
309 printk(KERN_ERR "mv64360_sram_error_int_handler: %s 0x%08x\n", 305 printk(KERN_ERR "mv64360_sram_error_int_handler: %s 0x%08x\n",
310 "Error in internal SRAM - Cause register", 306 "Error in internal SRAM - Cause register",
@@ -325,7 +321,7 @@ mv64360_sram_error_int_handler(int irq, void *dev_id, struct pt_regs *regs)
325} 321}
326 322
327static irqreturn_t 323static irqreturn_t
328mv64360_pci_error_int_handler(int irq, void *dev_id, struct pt_regs *regs) 324mv64360_pci_error_int_handler(int irq, void *dev_id)
329{ 325{
330 u32 val; 326 u32 val;
331 unsigned int pci_bus = (unsigned int)dev_id; 327 unsigned int pci_bus = (unsigned int)dev_id;
diff --git a/arch/ppc/syslib/open_pic2.c b/arch/ppc/syslib/open_pic2.c
index e1ff971539ea..d585207f9f77 100644
--- a/arch/ppc/syslib/open_pic2.c
+++ b/arch/ppc/syslib/open_pic2.c
@@ -529,7 +529,7 @@ static void openpic2_end_irq(unsigned int irq_nr)
529} 529}
530 530
531int 531int
532openpic2_get_irq(struct pt_regs *regs) 532openpic2_get_irq(void)
533{ 533{
534 int irq = openpic2_irq(); 534 int irq = openpic2_irq();
535 535
diff --git a/arch/ppc/syslib/ppc403_pic.c b/arch/ppc/syslib/ppc403_pic.c
index 1584c8b1229f..607ebd111d44 100644
--- a/arch/ppc/syslib/ppc403_pic.c
+++ b/arch/ppc/syslib/ppc403_pic.c
@@ -42,7 +42,7 @@ static struct hw_interrupt_type ppc403_aic = {
42}; 42};
43 43
44int 44int
45ppc403_pic_get_irq(struct pt_regs *regs) 45ppc403_pic_get_irq(void)
46{ 46{
47 int irq; 47 int irq;
48 unsigned long bits; 48 unsigned long bits;
diff --git a/arch/ppc/syslib/ppc4xx_pic.c b/arch/ppc/syslib/ppc4xx_pic.c
index 745685df5984..ee0da4b4b993 100644
--- a/arch/ppc/syslib/ppc4xx_pic.c
+++ b/arch/ppc/syslib/ppc4xx_pic.c
@@ -96,7 +96,7 @@ UIC_HANDLERS(1);
96UIC_HANDLERS(2); 96UIC_HANDLERS(2);
97UIC_HANDLERS(3); 97UIC_HANDLERS(3);
98 98
99static int ppc4xx_pic_get_irq(struct pt_regs *regs) 99static int ppc4xx_pic_get_irq(void)
100{ 100{
101 u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0)); 101 u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0));
102 if (uic0 & UIC0_UIC1NC) 102 if (uic0 & UIC0_UIC1NC)
@@ -125,7 +125,7 @@ UIC_HANDLERS(0);
125UIC_HANDLERS(1); 125UIC_HANDLERS(1);
126UIC_HANDLERS(2); 126UIC_HANDLERS(2);
127 127
128static int ppc4xx_pic_get_irq(struct pt_regs *regs) 128static int ppc4xx_pic_get_irq(void)
129{ 129{
130 u32 uicb = mfdcr(DCRN_UIC_MSR(UICB)); 130 u32 uicb = mfdcr(DCRN_UIC_MSR(UICB));
131 if (uicb & UICB_UIC0NC) 131 if (uicb & UICB_UIC0NC)
@@ -158,7 +158,7 @@ static void __init ppc4xx_pic_impl_init(void)
158UIC_HANDLERS(0); 158UIC_HANDLERS(0);
159UIC_HANDLERS(1); 159UIC_HANDLERS(1);
160 160
161static int ppc4xx_pic_get_irq(struct pt_regs *regs) 161static int ppc4xx_pic_get_irq(void)
162{ 162{
163 u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0)); 163 u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0));
164 if (uic0 & UIC0_UIC1NC) 164 if (uic0 & UIC0_UIC1NC)
@@ -179,7 +179,7 @@ static void __init ppc4xx_pic_impl_init(void)
179#define ACK_UIC0_PARENT 179#define ACK_UIC0_PARENT
180UIC_HANDLERS(0); 180UIC_HANDLERS(0);
181 181
182static int ppc4xx_pic_get_irq(struct pt_regs *regs) 182static int ppc4xx_pic_get_irq(void)
183{ 183{
184 u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0)); 184 u32 uic0 = mfdcr(DCRN_UIC_MSR(UIC0));
185 return uic0 ? 32 - ffs(uic0) : -1; 185 return uic0 ? 32 - ffs(uic0) : -1;
diff --git a/arch/ppc/syslib/ppc85xx_rio.c b/arch/ppc/syslib/ppc85xx_rio.c
index d9b471b4d695..05b0e9415085 100644
--- a/arch/ppc/syslib/ppc85xx_rio.c
+++ b/arch/ppc/syslib/ppc85xx_rio.c
@@ -349,13 +349,12 @@ EXPORT_SYMBOL_GPL(rio_hw_add_outb_message);
349 * mpc85xx_rio_tx_handler - MPC85xx outbound message interrupt handler 349 * mpc85xx_rio_tx_handler - MPC85xx outbound message interrupt handler
350 * @irq: Linux interrupt number 350 * @irq: Linux interrupt number
351 * @dev_instance: Pointer to interrupt-specific data 351 * @dev_instance: Pointer to interrupt-specific data
352 * @regs: Register context
353 * 352 *
354 * Handles outbound message interrupts. Executes a register outbound 353 * Handles outbound message interrupts. Executes a register outbound
355 * mailbox event handler and acks the interrupt occurence. 354 * mailbox event handler and acks the interrupt occurence.
356 */ 355 */
357static irqreturn_t 356static irqreturn_t
358mpc85xx_rio_tx_handler(int irq, void *dev_instance, struct pt_regs *regs) 357mpc85xx_rio_tx_handler(int irq, void *dev_instance)
359{ 358{
360 int osr; 359 int osr;
361 struct rio_mport *port = (struct rio_mport *)dev_instance; 360 struct rio_mport *port = (struct rio_mport *)dev_instance;
@@ -517,13 +516,12 @@ void rio_close_outb_mbox(struct rio_mport *mport, int mbox)
517 * mpc85xx_rio_rx_handler - MPC85xx inbound message interrupt handler 516 * mpc85xx_rio_rx_handler - MPC85xx inbound message interrupt handler
518 * @irq: Linux interrupt number 517 * @irq: Linux interrupt number
519 * @dev_instance: Pointer to interrupt-specific data 518 * @dev_instance: Pointer to interrupt-specific data
520 * @regs: Register context
521 * 519 *
522 * Handles inbound message interrupts. Executes a registered inbound 520 * Handles inbound message interrupts. Executes a registered inbound
523 * mailbox event handler and acks the interrupt occurence. 521 * mailbox event handler and acks the interrupt occurence.
524 */ 522 */
525static irqreturn_t 523static irqreturn_t
526mpc85xx_rio_rx_handler(int irq, void *dev_instance, struct pt_regs *regs) 524mpc85xx_rio_rx_handler(int irq, void *dev_instance)
527{ 525{
528 int isr; 526 int isr;
529 struct rio_mport *port = (struct rio_mport *)dev_instance; 527 struct rio_mport *port = (struct rio_mport *)dev_instance;
@@ -736,13 +734,12 @@ EXPORT_SYMBOL_GPL(rio_hw_get_inb_message);
736 * mpc85xx_rio_dbell_handler - MPC85xx doorbell interrupt handler 734 * mpc85xx_rio_dbell_handler - MPC85xx doorbell interrupt handler
737 * @irq: Linux interrupt number 735 * @irq: Linux interrupt number
738 * @dev_instance: Pointer to interrupt-specific data 736 * @dev_instance: Pointer to interrupt-specific data
739 * @regs: Register context
740 * 737 *
741 * Handles doorbell interrupts. Parses a list of registered 738 * Handles doorbell interrupts. Parses a list of registered
742 * doorbell event handlers and executes a matching event handler. 739 * doorbell event handlers and executes a matching event handler.
743 */ 740 */
744static irqreturn_t 741static irqreturn_t
745mpc85xx_rio_dbell_handler(int irq, void *dev_instance, struct pt_regs *regs) 742mpc85xx_rio_dbell_handler(int irq, void *dev_instance)
746{ 743{
747 int dsr; 744 int dsr;
748 struct rio_mport *port = (struct rio_mport *)dev_instance; 745 struct rio_mport *port = (struct rio_mport *)dev_instance;
diff --git a/arch/ppc/syslib/ppc8xx_pic.c b/arch/ppc/syslib/ppc8xx_pic.c
index d6c25fe25011..e8619c750732 100644
--- a/arch/ppc/syslib/ppc8xx_pic.c
+++ b/arch/ppc/syslib/ppc8xx_pic.c
@@ -10,7 +10,7 @@
10#include <asm/mpc8xx.h> 10#include <asm/mpc8xx.h>
11#include "ppc8xx_pic.h" 11#include "ppc8xx_pic.h"
12 12
13extern int cpm_get_irq(struct pt_regs *regs); 13extern int cpm_get_irq(void);
14 14
15/* The 8xx internal interrupt controller. It is usually 15/* The 8xx internal interrupt controller. It is usually
16 * the only interrupt controller. Some boards, like the MBX and 16 * the only interrupt controller. Some boards, like the MBX and
@@ -96,7 +96,7 @@ m8xx_get_irq(struct pt_regs *regs)
96 * get back SIU_LEVEL7. In this case, return -1 96 * get back SIU_LEVEL7. In this case, return -1
97 */ 97 */
98 if (irq == CPM_INTERRUPT) 98 if (irq == CPM_INTERRUPT)
99 irq = CPM_IRQ_OFFSET + cpm_get_irq(regs); 99 irq = CPM_IRQ_OFFSET + cpm_get_irq();
100#if defined(CONFIG_PCI) 100#if defined(CONFIG_PCI)
101 else if (irq == ISA_BRIDGE_INT) { 101 else if (irq == ISA_BRIDGE_INT) {
102 int isa_irq; 102 int isa_irq;
diff --git a/arch/ppc/syslib/xilinx_pic.c b/arch/ppc/syslib/xilinx_pic.c
index 39a93dc6375b..6fd4cdbada72 100644
--- a/arch/ppc/syslib/xilinx_pic.c
+++ b/arch/ppc/syslib/xilinx_pic.c
@@ -86,7 +86,7 @@ static struct hw_interrupt_type xilinx_intc = {
86}; 86};
87 87
88int 88int
89xilinx_pic_get_irq(struct pt_regs *regs) 89xilinx_pic_get_irq(void)
90{ 90{
91 int irq; 91 int irq;
92 92
diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c
index a508cb962d24..648d55533d87 100644
--- a/drivers/i2c/busses/i2c-powermac.c
+++ b/drivers/i2c/busses/i2c-powermac.c
@@ -182,9 +182,9 @@ static const struct i2c_algorithm i2c_powermac_algorithm = {
182}; 182};
183 183
184 184
185static int i2c_powermac_remove(struct device *dev) 185static int i2c_powermac_remove(struct platform_device *dev)
186{ 186{
187 struct i2c_adapter *adapter = dev_get_drvdata(dev); 187 struct i2c_adapter *adapter = platform_get_drvdata(dev);
188 struct pmac_i2c_bus *bus = i2c_get_adapdata(adapter); 188 struct pmac_i2c_bus *bus = i2c_get_adapdata(adapter);
189 int rc; 189 int rc;
190 190
@@ -195,16 +195,16 @@ static int i2c_powermac_remove(struct device *dev)
195 if (rc) 195 if (rc)
196 printk("i2c-powermac.c: Failed to remove bus %s !\n", 196 printk("i2c-powermac.c: Failed to remove bus %s !\n",
197 adapter->name); 197 adapter->name);
198 dev_set_drvdata(dev, NULL); 198 platform_set_drvdata(dev, NULL);
199 kfree(adapter); 199 kfree(adapter);
200 200
201 return 0; 201 return 0;
202} 202}
203 203
204 204
205static int i2c_powermac_probe(struct device *dev) 205static int __devexit i2c_powermac_probe(struct platform_device *dev)
206{ 206{
207 struct pmac_i2c_bus *bus = dev->platform_data; 207 struct pmac_i2c_bus *bus = dev->dev.platform_data;
208 struct device_node *parent = NULL; 208 struct device_node *parent = NULL;
209 struct i2c_adapter *adapter; 209 struct i2c_adapter *adapter;
210 char name[32]; 210 char name[32];
@@ -246,11 +246,11 @@ static int i2c_powermac_probe(struct device *dev)
246 printk(KERN_ERR "i2c-powermac: can't allocate inteface !\n"); 246 printk(KERN_ERR "i2c-powermac: can't allocate inteface !\n");
247 return -ENOMEM; 247 return -ENOMEM;
248 } 248 }
249 dev_set_drvdata(dev, adapter); 249 platform_set_drvdata(dev, adapter);
250 strcpy(adapter->name, name); 250 strcpy(adapter->name, name);
251 adapter->algo = &i2c_powermac_algorithm; 251 adapter->algo = &i2c_powermac_algorithm;
252 i2c_set_adapdata(adapter, bus); 252 i2c_set_adapdata(adapter, bus);
253 adapter->dev.parent = dev; 253 adapter->dev.parent = &dev->dev;
254 pmac_i2c_attach_adapter(bus, adapter); 254 pmac_i2c_attach_adapter(bus, adapter);
255 rc = i2c_add_adapter(adapter); 255 rc = i2c_add_adapter(adapter);
256 if (rc) { 256 if (rc) {
@@ -265,23 +265,25 @@ static int i2c_powermac_probe(struct device *dev)
265} 265}
266 266
267 267
268static struct device_driver i2c_powermac_driver = { 268static struct platform_driver i2c_powermac_driver = {
269 .name = "i2c-powermac",
270 .bus = &platform_bus_type,
271 .probe = i2c_powermac_probe, 269 .probe = i2c_powermac_probe,
272 .remove = i2c_powermac_remove, 270 .remove = __devexit_p(i2c_powermac_remove),
271 .driver = {
272 .name = "i2c-powermac",
273 .bus = &platform_bus_type,
274 },
273}; 275};
274 276
275static int __init i2c_powermac_init(void) 277static int __init i2c_powermac_init(void)
276{ 278{
277 driver_register(&i2c_powermac_driver); 279 platform_driver_register(&i2c_powermac_driver);
278 return 0; 280 return 0;
279} 281}
280 282
281 283
282static void __exit i2c_powermac_cleanup(void) 284static void __exit i2c_powermac_cleanup(void)
283{ 285{
284 driver_unregister(&i2c_powermac_driver); 286 platform_driver_unregister(&i2c_powermac_driver);
285} 287}
286 288
287module_init(i2c_powermac_init); 289module_init(i2c_powermac_init);
diff --git a/drivers/macintosh/windfarm_pm112.c b/drivers/macintosh/windfarm_pm112.c
index ef66bf2778ec..fa4b13f89369 100644
--- a/drivers/macintosh/windfarm_pm112.c
+++ b/drivers/macintosh/windfarm_pm112.c
@@ -650,24 +650,26 @@ static struct notifier_block pm112_events = {
650 .notifier_call = pm112_wf_notify, 650 .notifier_call = pm112_wf_notify,
651}; 651};
652 652
653static int wf_pm112_probe(struct device *dev) 653static int wf_pm112_probe(struct platform_device *dev)
654{ 654{
655 wf_register_client(&pm112_events); 655 wf_register_client(&pm112_events);
656 return 0; 656 return 0;
657} 657}
658 658
659static int wf_pm112_remove(struct device *dev) 659static int __devexit wf_pm112_remove(struct platform_device *dev)
660{ 660{
661 wf_unregister_client(&pm112_events); 661 wf_unregister_client(&pm112_events);
662 /* should release all sensors and controls */ 662 /* should release all sensors and controls */
663 return 0; 663 return 0;
664} 664}
665 665
666static struct device_driver wf_pm112_driver = { 666static struct platform_driver wf_pm112_driver = {
667 .name = "windfarm",
668 .bus = &platform_bus_type,
669 .probe = wf_pm112_probe, 667 .probe = wf_pm112_probe,
670 .remove = wf_pm112_remove, 668 .remove = __devexit_p(wf_pm112_remove),
669 .driver = {
670 .name = "windfarm",
671 .bus = &platform_bus_type,
672 },
671}; 673};
672 674
673static int __init wf_pm112_init(void) 675static int __init wf_pm112_init(void)
@@ -683,13 +685,13 @@ static int __init wf_pm112_init(void)
683 ++nr_cores; 685 ++nr_cores;
684 686
685 printk(KERN_INFO "windfarm: initializing for dual-core desktop G5\n"); 687 printk(KERN_INFO "windfarm: initializing for dual-core desktop G5\n");
686 driver_register(&wf_pm112_driver); 688 platform_driver_register(&wf_pm112_driver);
687 return 0; 689 return 0;
688} 690}
689 691
690static void __exit wf_pm112_exit(void) 692static void __exit wf_pm112_exit(void)
691{ 693{
692 driver_unregister(&wf_pm112_driver); 694 platform_driver_unregister(&wf_pm112_driver);
693} 695}
694 696
695module_init(wf_pm112_init); 697module_init(wf_pm112_init);
diff --git a/drivers/macintosh/windfarm_pm81.c b/drivers/macintosh/windfarm_pm81.c
index 2ff546e4c92f..2a944851b8e1 100644
--- a/drivers/macintosh/windfarm_pm81.c
+++ b/drivers/macintosh/windfarm_pm81.c
@@ -131,8 +131,6 @@
131 131
132static int wf_smu_mach_model; /* machine model id */ 132static int wf_smu_mach_model; /* machine model id */
133 133
134static struct device *wf_smu_dev;
135
136/* Controls & sensors */ 134/* Controls & sensors */
137static struct wf_sensor *sensor_cpu_power; 135static struct wf_sensor *sensor_cpu_power;
138static struct wf_sensor *sensor_cpu_temp; 136static struct wf_sensor *sensor_cpu_temp;
@@ -717,16 +715,14 @@ static int wf_init_pm(void)
717 return 0; 715 return 0;
718} 716}
719 717
720static int wf_smu_probe(struct device *ddev) 718static int wf_smu_probe(struct platform_device *ddev)
721{ 719{
722 wf_smu_dev = ddev;
723
724 wf_register_client(&wf_smu_events); 720 wf_register_client(&wf_smu_events);
725 721
726 return 0; 722 return 0;
727} 723}
728 724
729static int wf_smu_remove(struct device *ddev) 725static int __devexit wf_smu_remove(struct platform_device *ddev)
730{ 726{
731 wf_unregister_client(&wf_smu_events); 727 wf_unregister_client(&wf_smu_events);
732 728
@@ -766,16 +762,16 @@ static int wf_smu_remove(struct device *ddev)
766 if (wf_smu_cpu_fans) 762 if (wf_smu_cpu_fans)
767 kfree(wf_smu_cpu_fans); 763 kfree(wf_smu_cpu_fans);
768 764
769 wf_smu_dev = NULL;
770
771 return 0; 765 return 0;
772} 766}
773 767
774static struct device_driver wf_smu_driver = { 768static struct platform_driver wf_smu_driver = {
775 .name = "windfarm",
776 .bus = &platform_bus_type,
777 .probe = wf_smu_probe, 769 .probe = wf_smu_probe,
778 .remove = wf_smu_remove, 770 .remove = __devexit_p(wf_smu_remove),
771 .driver = {
772 .name = "windfarm",
773 .bus = &platform_bus_type,
774 },
779}; 775};
780 776
781 777
@@ -794,7 +790,7 @@ static int __init wf_smu_init(void)
794 request_module("windfarm_lm75_sensor"); 790 request_module("windfarm_lm75_sensor");
795 791
796#endif /* MODULE */ 792#endif /* MODULE */
797 driver_register(&wf_smu_driver); 793 platform_driver_register(&wf_smu_driver);
798 } 794 }
799 795
800 return rc; 796 return rc;
@@ -803,7 +799,7 @@ static int __init wf_smu_init(void)
803static void __exit wf_smu_exit(void) 799static void __exit wf_smu_exit(void)
804{ 800{
805 801
806 driver_unregister(&wf_smu_driver); 802 platform_driver_unregister(&wf_smu_driver);
807} 803}
808 804
809 805
diff --git a/drivers/macintosh/windfarm_pm91.c b/drivers/macintosh/windfarm_pm91.c
index 59e9ffe37c39..9961a67b4f85 100644
--- a/drivers/macintosh/windfarm_pm91.c
+++ b/drivers/macintosh/windfarm_pm91.c
@@ -63,8 +63,6 @@
63 */ 63 */
64#undef HACKED_OVERTEMP 64#undef HACKED_OVERTEMP
65 65
66static struct device *wf_smu_dev;
67
68/* Controls & sensors */ 66/* Controls & sensors */
69static struct wf_sensor *sensor_cpu_power; 67static struct wf_sensor *sensor_cpu_power;
70static struct wf_sensor *sensor_cpu_temp; 68static struct wf_sensor *sensor_cpu_temp;
@@ -641,16 +639,14 @@ static int wf_init_pm(void)
641 return 0; 639 return 0;
642} 640}
643 641
644static int wf_smu_probe(struct device *ddev) 642static int wf_smu_probe(struct platform_device *ddev)
645{ 643{
646 wf_smu_dev = ddev;
647
648 wf_register_client(&wf_smu_events); 644 wf_register_client(&wf_smu_events);
649 645
650 return 0; 646 return 0;
651} 647}
652 648
653static int wf_smu_remove(struct device *ddev) 649static int __devexit wf_smu_remove(struct platform_device *ddev)
654{ 650{
655 wf_unregister_client(&wf_smu_events); 651 wf_unregister_client(&wf_smu_events);
656 652
@@ -698,16 +694,16 @@ static int wf_smu_remove(struct device *ddev)
698 if (wf_smu_cpu_fans) 694 if (wf_smu_cpu_fans)
699 kfree(wf_smu_cpu_fans); 695 kfree(wf_smu_cpu_fans);
700 696
701 wf_smu_dev = NULL;
702
703 return 0; 697 return 0;
704} 698}
705 699
706static struct device_driver wf_smu_driver = { 700static struct platform_driver wf_smu_driver = {
707 .name = "windfarm",
708 .bus = &platform_bus_type,
709 .probe = wf_smu_probe, 701 .probe = wf_smu_probe,
710 .remove = wf_smu_remove, 702 .remove = __devexit_p(wf_smu_remove),
703 .driver = {
704 .name = "windfarm",
705 .bus = &platform_bus_type,
706 },
711}; 707};
712 708
713 709
@@ -725,7 +721,7 @@ static int __init wf_smu_init(void)
725 request_module("windfarm_lm75_sensor"); 721 request_module("windfarm_lm75_sensor");
726 722
727#endif /* MODULE */ 723#endif /* MODULE */
728 driver_register(&wf_smu_driver); 724 platform_driver_register(&wf_smu_driver);
729 } 725 }
730 726
731 return rc; 727 return rc;
@@ -734,7 +730,7 @@ static int __init wf_smu_init(void)
734static void __exit wf_smu_exit(void) 730static void __exit wf_smu_exit(void)
735{ 731{
736 732
737 driver_unregister(&wf_smu_driver); 733 platform_driver_unregister(&wf_smu_driver);
738} 734}
739 735
740 736
diff --git a/include/asm-ppc/commproc.h b/include/asm-ppc/commproc.h
index 3247bea5fc2b..7b06b4e6bf30 100644
--- a/include/asm-ppc/commproc.h
+++ b/include/asm-ppc/commproc.h
@@ -690,8 +690,7 @@ typedef struct risc_timer_pram {
690#define CICR_IEN ((uint)0x00000080) /* Int. enable */ 690#define CICR_IEN ((uint)0x00000080) /* Int. enable */
691#define CICR_SPS ((uint)0x00000001) /* SCC Spread */ 691#define CICR_SPS ((uint)0x00000001) /* SCC Spread */
692 692
693extern void cpm_install_handler(int vec, 693extern void cpm_install_handler(int vec, void (*handler)(void *), void *dev_id);
694 void (*handler)(void *, struct pt_regs *regs), void *dev_id);
695extern void cpm_free_handler(int vec); 694extern void cpm_free_handler(int vec);
696 695
697#endif /* __CPM_8XX__ */ 696#endif /* __CPM_8XX__ */
diff --git a/include/asm-ppc/gt64260.h b/include/asm-ppc/gt64260.h
index cd0ef644943d..9e63b3cfffca 100644
--- a/include/asm-ppc/gt64260.h
+++ b/include/asm-ppc/gt64260.h
@@ -315,7 +315,7 @@ int gt64260_get_base(u32 *base);
315int gt64260_pci_exclude_device(u8 bus, u8 devfn); 315int gt64260_pci_exclude_device(u8 bus, u8 devfn);
316 316
317void gt64260_init_irq(void); 317void gt64260_init_irq(void);
318int gt64260_get_irq(struct pt_regs *regs); 318int gt64260_get_irq(void);
319 319
320void gt64260_mpsc_progress(char *s, unsigned short hex); 320void gt64260_mpsc_progress(char *s, unsigned short hex);
321 321
diff --git a/include/asm-ppc/mpc52xx.h b/include/asm-ppc/mpc52xx.h
index 7e9842805a28..64c8874618dc 100644
--- a/include/asm-ppc/mpc52xx.h
+++ b/include/asm-ppc/mpc52xx.h
@@ -415,7 +415,7 @@ struct mpc52xx_cdm {
415#ifndef __ASSEMBLY__ 415#ifndef __ASSEMBLY__
416 416
417extern void mpc52xx_init_irq(void); 417extern void mpc52xx_init_irq(void);
418extern int mpc52xx_get_irq(struct pt_regs *regs); 418extern int mpc52xx_get_irq(void);
419 419
420extern unsigned long mpc52xx_find_end_of_memory(void); 420extern unsigned long mpc52xx_find_end_of_memory(void);
421extern void mpc52xx_set_bat(void); 421extern void mpc52xx_set_bat(void);
diff --git a/include/asm-ppc/mv64x60.h b/include/asm-ppc/mv64x60.h
index 663edbee3e91..db3776f18198 100644
--- a/include/asm-ppc/mv64x60.h
+++ b/include/asm-ppc/mv64x60.h
@@ -336,9 +336,9 @@ int mv64x60_pci_exclude_device(u8 bus, u8 devfn);
336 336
337 337
338void gt64260_init_irq(void); 338void gt64260_init_irq(void);
339int gt64260_get_irq(struct pt_regs *regs); 339int gt64260_get_irq(void);
340void mv64360_init_irq(void); 340void mv64360_init_irq(void);
341int mv64360_get_irq(struct pt_regs *regs); 341int mv64360_get_irq(void);
342 342
343u32 mv64x60_mask(u32 val, u32 num_bits); 343u32 mv64x60_mask(u32 val, u32 num_bits);
344u32 mv64x60_shift_left(u32 val, u32 num_bits); 344u32 mv64x60_shift_left(u32 val, u32 num_bits);