aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.osdl.org>2006-12-21 02:59:36 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-21 02:59:36 -0500
commit5576d187a0eef3bb3c47500eaab33fb5485bc352 (patch)
tree608ac1f1091eddf17b4930d59c3a61dad7994614
parentee2fae03d68e702866a8661fbee7ff2f2f3754d7 (diff)
parent1c9bb1a01ac1bc92a0d98cf3e40a7922ee684dc0 (diff)
Merge branch 'merge' of master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] Fix register save area alignment for swapcontext syscall [POWERPC] Fix PCI device channel state initialization [POWERPC] Update MTD OF documentation [POWERPC] Probe Efika platform before CHRP. [POWERPC] Fix build of cell zImage.initrd [POWERPC] iSeries: fix CONFIG_VIOPATH dependency [POWERPC] iSeries: fix viocons init [POWERPC] iSeries: fix viocd init [POWERPC] iSeries: fix iseries_veth init [POWERPC] iSeries: fix viotape init [POWERPC] iSeries: fix viodasd init [POWERPC] Workaround oldworld OF bug with IRQs & P2P bridges [POWERPC] powerpc: add scanning of ebc bus to of_platform [POWERPC] spufs: fix assignment of node numbers [POWERPC] cell: Fix spufs with "new style" device-tree [POWERPC] cell: Enable spider workarounds on all PCI buses [POWERPC] cell: add forward struct declarations to spu.h [POWERPC] cell: update cell_defconfig
-rw-r--r--Documentation/powerpc/booting-without-of.txt19
-rw-r--r--arch/powerpc/boot/Makefile3
-rw-r--r--arch/powerpc/configs/cell_defconfig358
-rw-r--r--arch/powerpc/kernel/of_platform.c1
-rw-r--r--arch/powerpc/kernel/pci_64.c1
-rw-r--r--arch/powerpc/kernel/prom_parse.c15
-rw-r--r--arch/powerpc/kernel/signal_32.c16
-rw-r--r--arch/powerpc/platforms/Makefile2
-rw-r--r--arch/powerpc/platforms/cell/io-workarounds.c2
-rw-r--r--arch/powerpc/platforms/cell/spu_priv1_mmio.c95
-rw-r--r--arch/powerpc/platforms/iseries/Kconfig2
-rw-r--r--drivers/block/viodasd.c6
-rw-r--r--drivers/cdrom/viocd.c4
-rw-r--r--drivers/char/viocons.c7
-rw-r--r--drivers/char/viotape.c5
-rw-r--r--drivers/net/iseries_veth.c9
-rw-r--r--include/asm-powerpc/spu.h2
17 files changed, 441 insertions, 106 deletions
diff --git a/Documentation/powerpc/booting-without-of.txt b/Documentation/powerpc/booting-without-of.txt
index b3bd36668db3..33994271cb3b 100644
--- a/Documentation/powerpc/booting-without-of.txt
+++ b/Documentation/powerpc/booting-without-of.txt
@@ -1703,29 +1703,32 @@ platforms are moved over to use the flattened-device-tree model.
1703 Required properties: 1703 Required properties:
1704 1704
1705 - device_type : has to be "rom" 1705 - device_type : has to be "rom"
1706 - compatible : Should specify what this ROM device is compatible with 1706 - compatible : Should specify what this flash device is compatible with.
1707 (i.e. "onenand"). Currently, this is most likely to be "direct-mapped" 1707 Currently, this is most likely to be "direct-mapped" (which
1708 (which corresponds to the MTD physmap mapping driver). 1708 corresponds to the MTD physmap mapping driver).
1709 - regs : Offset and length of the register set (or memory mapping) for 1709 - reg : Offset and length of the register set (or memory mapping) for
1710 the device. 1710 the device.
1711 - bank-width : Width of the flash data bus in bytes. Required
1712 for the NOR flashes (compatible == "direct-mapped" and others) ONLY.
1711 1713
1712 Recommended properties : 1714 Recommended properties :
1713 1715
1714 - bank-width : Width of the flash data bus in bytes. Required
1715 for the NOR flashes (compatible == "direct-mapped" and others) ONLY.
1716 - partitions : Several pairs of 32-bit values where the first value is 1716 - partitions : Several pairs of 32-bit values where the first value is
1717 partition's offset from the start of the device and the second one is 1717 partition's offset from the start of the device and the second one is
1718 partition size in bytes with LSB used to signify a read only 1718 partition size in bytes with LSB used to signify a read only
1719 partititon (so, the parition size should always be an even number). 1719 partition (so, the parition size should always be an even number).
1720 - partition-names : The list of concatenated zero terminated strings 1720 - partition-names : The list of concatenated zero terminated strings
1721 representing the partition names. 1721 representing the partition names.
1722 - probe-type : The type of probe which should be done for the chip
1723 (JEDEC vs CFI actually). Valid ONLY for NOR flashes.
1722 1724
1723 Example: 1725 Example:
1724 1726
1725 flash@ff000000 { 1727 flash@ff000000 {
1726 device_type = "rom"; 1728 device_type = "rom";
1727 compatible = "direct-mapped"; 1729 compatible = "direct-mapped";
1728 regs = <ff000000 01000000>; 1730 probe-type = "CFI";
1731 reg = <ff000000 01000000>;
1729 bank-width = <4>; 1732 bank-width = <4>;
1730 partitions = <00000000 00f80000 1733 partitions = <00000000 00f80000
1731 00f80000 00080001>; 1734 00f80000 00080001>;
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 343dbcfdf08a..98392fb5f581 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -152,6 +152,9 @@ $(obj)/zImage.initrd.miboot: vmlinux $(wrapperbits)
152$(obj)/zImage.ps3: vmlinux 152$(obj)/zImage.ps3: vmlinux
153 $(STRIP) -s -R .comment $< -o $@ 153 $(STRIP) -s -R .comment $< -o $@
154 154
155$(obj)/zImage.initrd.ps3: vmlinux
156 @echo " WARNING zImage.initrd.ps3 not supported (yet)"
157
155$(obj)/uImage: vmlinux $(wrapperbits) 158$(obj)/uImage: vmlinux $(wrapperbits)
156 $(call cmd,wrap,uboot) 159 $(call cmd,wrap,uboot)
157 160
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index a98c982c73ad..d1d25152f74f 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_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.19-rc6 3# Linux kernel version: 2.6.20-rc1
4# Wed Nov 22 15:33:04 2006 4# Tue Dec 19 14:59:53 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -10,6 +10,8 @@ CONFIG_MMU=y
10CONFIG_GENERIC_HARDIRQS=y 10CONFIG_GENERIC_HARDIRQS=y
11CONFIG_IRQ_PER_CPU=y 11CONFIG_IRQ_PER_CPU=y
12CONFIG_RWSEM_XCHGADD_ALGORITHM=y 12CONFIG_RWSEM_XCHGADD_ALGORITHM=y
13CONFIG_ARCH_HAS_ILOG2_U32=y
14CONFIG_ARCH_HAS_ILOG2_U64=y
13CONFIG_GENERIC_HWEIGHT=y 15CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
15CONFIG_GENERIC_FIND_NEXT_BIT=y 17CONFIG_GENERIC_FIND_NEXT_BIT=y
@@ -23,6 +25,7 @@ CONFIG_PPC_OF=y
23CONFIG_PPC_UDBG_16550=y 25CONFIG_PPC_UDBG_16550=y
24# CONFIG_GENERIC_TBSYNC is not set 26# CONFIG_GENERIC_TBSYNC is not set
25CONFIG_AUDIT_ARCH=y 27CONFIG_AUDIT_ARCH=y
28CONFIG_GENERIC_BUG=y
26# CONFIG_DEFAULT_UIMAGE is not set 29# CONFIG_DEFAULT_UIMAGE is not set
27 30
28# 31#
@@ -66,6 +69,7 @@ CONFIG_SYSVIPC=y
66CONFIG_IKCONFIG=y 69CONFIG_IKCONFIG=y
67CONFIG_IKCONFIG_PROC=y 70CONFIG_IKCONFIG_PROC=y
68CONFIG_CPUSETS=y 71CONFIG_CPUSETS=y
72CONFIG_SYSFS_DEPRECATED=y
69# CONFIG_RELAY is not set 73# CONFIG_RELAY is not set
70CONFIG_INITRAMFS_SOURCE="" 74CONFIG_INITRAMFS_SOURCE=""
71CONFIG_CC_OPTIMIZE_FOR_SIZE=y 75CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -128,14 +132,16 @@ CONFIG_PPC_MULTIPLATFORM=y
128# CONFIG_APUS is not set 132# CONFIG_APUS is not set
129# CONFIG_PPC_PSERIES is not set 133# CONFIG_PPC_PSERIES is not set
130# CONFIG_PPC_ISERIES is not set 134# CONFIG_PPC_ISERIES is not set
135# CONFIG_PPC_MPC52xx is not set
131# CONFIG_PPC_PMAC is not set 136# CONFIG_PPC_PMAC is not set
132# CONFIG_PPC_MAPLE is not set 137# CONFIG_PPC_MAPLE is not set
133# CONFIG_PPC_PASEMI is not set 138# CONFIG_PPC_PASEMI is not set
134CONFIG_PPC_CELL=y 139CONFIG_PPC_CELL=y
135CONFIG_PPC_CELL_NATIVE=y 140CONFIG_PPC_CELL_NATIVE=y
136CONFIG_PPC_IBM_CELL_BLADE=y 141CONFIG_PPC_IBM_CELL_BLADE=y
137CONFIG_UDBG_RTAS_CONSOLE=y
138CONFIG_PPC_PS3=y 142CONFIG_PPC_PS3=y
143CONFIG_PPC_NATIVE=y
144CONFIG_UDBG_RTAS_CONSOLE=y
139# CONFIG_U3_DART is not set 145# CONFIG_U3_DART is not set
140CONFIG_PPC_RTAS=y 146CONFIG_PPC_RTAS=y
141# CONFIG_RTAS_ERROR_LOGGING is not set 147# CONFIG_RTAS_ERROR_LOGGING is not set
@@ -177,12 +183,14 @@ CONFIG_CBE_CPUFREQ=m
177CONFIG_PS3_HTAB_SIZE=20 183CONFIG_PS3_HTAB_SIZE=20
178# CONFIG_PS3_DYNAMIC_DMA is not set 184# CONFIG_PS3_DYNAMIC_DMA is not set
179CONFIG_PS3_USE_LPAR_ADDR=y 185CONFIG_PS3_USE_LPAR_ADDR=y
186CONFIG_PS3_VUART=y
180 187
181# 188#
182# Kernel options 189# Kernel options
183# 190#
184# CONFIG_HZ_100 is not set 191# CONFIG_HZ_100 is not set
185CONFIG_HZ_250=y 192CONFIG_HZ_250=y
193# CONFIG_HZ_300 is not set
186# CONFIG_HZ_1000 is not set 194# CONFIG_HZ_1000 is not set
187CONFIG_HZ=250 195CONFIG_HZ=250
188CONFIG_PREEMPT_NONE=y 196CONFIG_PREEMPT_NONE=y
@@ -237,6 +245,7 @@ CONFIG_GENERIC_ISA_DMA=y
237CONFIG_PCI=y 245CONFIG_PCI=y
238CONFIG_PCI_DOMAINS=y 246CONFIG_PCI_DOMAINS=y
239CONFIG_PCIEPORTBUS=y 247CONFIG_PCIEPORTBUS=y
248# CONFIG_PCI_MULTITHREAD_PROBE is not set
240# CONFIG_PCI_DEBUG is not set 249# CONFIG_PCI_DEBUG is not set
241 250
242# 251#
@@ -270,7 +279,10 @@ CONFIG_INET=y
270CONFIG_IP_MULTICAST=y 279CONFIG_IP_MULTICAST=y
271# CONFIG_IP_ADVANCED_ROUTER is not set 280# CONFIG_IP_ADVANCED_ROUTER is not set
272CONFIG_IP_FIB_HASH=y 281CONFIG_IP_FIB_HASH=y
273# CONFIG_IP_PNP is not set 282CONFIG_IP_PNP=y
283CONFIG_IP_PNP_DHCP=y
284CONFIG_IP_PNP_BOOTP=y
285CONFIG_IP_PNP_RARP=y
274CONFIG_NET_IPIP=y 286CONFIG_NET_IPIP=y
275# CONFIG_NET_IPGRE is not set 287# CONFIG_NET_IPGRE is not set
276# CONFIG_IP_MROUTE is not set 288# CONFIG_IP_MROUTE is not set
@@ -289,6 +301,7 @@ CONFIG_INET_TCP_DIAG=y
289# CONFIG_TCP_CONG_ADVANCED is not set 301# CONFIG_TCP_CONG_ADVANCED is not set
290CONFIG_TCP_CONG_CUBIC=y 302CONFIG_TCP_CONG_CUBIC=y
291CONFIG_DEFAULT_TCP_CONG="cubic" 303CONFIG_DEFAULT_TCP_CONG="cubic"
304# CONFIG_TCP_MD5SIG is not set
292 305
293# 306#
294# IP: Virtual Server Configuration 307# IP: Virtual Server Configuration
@@ -317,31 +330,67 @@ CONFIG_NETFILTER=y
317# 330#
318# Core Netfilter Configuration 331# Core Netfilter Configuration
319# 332#
320# CONFIG_NETFILTER_NETLINK is not set 333CONFIG_NETFILTER_NETLINK=m
321# CONFIG_NETFILTER_XTABLES is not set 334CONFIG_NETFILTER_NETLINK_QUEUE=m
335CONFIG_NETFILTER_NETLINK_LOG=m
336# CONFIG_NF_CONNTRACK_ENABLED is not set
337CONFIG_NETFILTER_XTABLES=m
338CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
339CONFIG_NETFILTER_XT_TARGET_DSCP=m
340CONFIG_NETFILTER_XT_TARGET_MARK=m
341CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
342CONFIG_NETFILTER_XT_TARGET_NFLOG=m
343CONFIG_NETFILTER_XT_MATCH_COMMENT=m
344CONFIG_NETFILTER_XT_MATCH_DCCP=m
345CONFIG_NETFILTER_XT_MATCH_DSCP=m
346CONFIG_NETFILTER_XT_MATCH_ESP=m
347CONFIG_NETFILTER_XT_MATCH_LENGTH=m
348CONFIG_NETFILTER_XT_MATCH_LIMIT=m
349CONFIG_NETFILTER_XT_MATCH_MAC=m
350CONFIG_NETFILTER_XT_MATCH_MARK=m
351CONFIG_NETFILTER_XT_MATCH_POLICY=m
352CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
353CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
354CONFIG_NETFILTER_XT_MATCH_QUOTA=m
355CONFIG_NETFILTER_XT_MATCH_REALM=m
356CONFIG_NETFILTER_XT_MATCH_SCTP=m
357CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
358CONFIG_NETFILTER_XT_MATCH_STRING=m
359CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
360CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
322 361
323# 362#
324# IP: Netfilter Configuration 363# IP: Netfilter Configuration
325# 364#
326CONFIG_IP_NF_CONNTRACK=y
327# CONFIG_IP_NF_CT_ACCT is not set
328# CONFIG_IP_NF_CONNTRACK_MARK is not set
329# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
330CONFIG_IP_NF_CT_PROTO_SCTP=y
331CONFIG_IP_NF_FTP=m
332CONFIG_IP_NF_IRC=m
333# CONFIG_IP_NF_NETBIOS_NS is not set
334CONFIG_IP_NF_TFTP=m
335CONFIG_IP_NF_AMANDA=m
336# CONFIG_IP_NF_PPTP is not set
337# CONFIG_IP_NF_H323 is not set
338# CONFIG_IP_NF_SIP is not set
339CONFIG_IP_NF_QUEUE=m 365CONFIG_IP_NF_QUEUE=m
366CONFIG_IP_NF_IPTABLES=m
367CONFIG_IP_NF_MATCH_IPRANGE=m
368CONFIG_IP_NF_MATCH_TOS=m
369CONFIG_IP_NF_MATCH_RECENT=m
370CONFIG_IP_NF_MATCH_ECN=m
371CONFIG_IP_NF_MATCH_AH=m
372CONFIG_IP_NF_MATCH_TTL=m
373CONFIG_IP_NF_MATCH_OWNER=m
374CONFIG_IP_NF_MATCH_ADDRTYPE=m
375CONFIG_IP_NF_FILTER=m
376CONFIG_IP_NF_TARGET_REJECT=m
377CONFIG_IP_NF_TARGET_LOG=m
378CONFIG_IP_NF_TARGET_ULOG=m
379CONFIG_IP_NF_TARGET_TCPMSS=m
380CONFIG_IP_NF_MANGLE=m
381CONFIG_IP_NF_TARGET_TOS=m
382CONFIG_IP_NF_TARGET_ECN=m
383CONFIG_IP_NF_TARGET_TTL=m
384CONFIG_IP_NF_RAW=m
385CONFIG_IP_NF_ARPTABLES=m
386CONFIG_IP_NF_ARPFILTER=m
387CONFIG_IP_NF_ARP_MANGLE=m
340 388
341# 389#
342# IPv6: Netfilter Configuration (EXPERIMENTAL) 390# IPv6: Netfilter Configuration (EXPERIMENTAL)
343# 391#
344# CONFIG_IP6_NF_QUEUE is not set 392# CONFIG_IP6_NF_QUEUE is not set
393# CONFIG_IP6_NF_IPTABLES is not set
345 394
346# 395#
347# DCCP Configuration (EXPERIMENTAL) 396# DCCP Configuration (EXPERIMENTAL)
@@ -373,6 +422,7 @@ CONFIG_IP_NF_QUEUE=m
373# QoS and/or fair queueing 422# QoS and/or fair queueing
374# 423#
375# CONFIG_NET_SCHED is not set 424# CONFIG_NET_SCHED is not set
425CONFIG_NET_CLS_ROUTE=y
376 426
377# 427#
378# Network testing 428# Network testing
@@ -428,6 +478,7 @@ CONFIG_BLK_DEV_LOOP=y
428# CONFIG_BLK_DEV_CRYPTOLOOP is not set 478# CONFIG_BLK_DEV_CRYPTOLOOP is not set
429# CONFIG_BLK_DEV_NBD is not set 479# CONFIG_BLK_DEV_NBD is not set
430# CONFIG_BLK_DEV_SX8 is not set 480# CONFIG_BLK_DEV_SX8 is not set
481# CONFIG_BLK_DEV_UB is not set
431CONFIG_BLK_DEV_RAM=y 482CONFIG_BLK_DEV_RAM=y
432CONFIG_BLK_DEV_RAM_COUNT=16 483CONFIG_BLK_DEV_RAM_COUNT=16
433CONFIG_BLK_DEV_RAM_SIZE=131072 484CONFIG_BLK_DEV_RAM_SIZE=131072
@@ -457,6 +508,7 @@ CONFIG_IDEDISK_MULTI_MODE=y
457# CONFIG_BLK_DEV_IDECD is not set 508# CONFIG_BLK_DEV_IDECD is not set
458# CONFIG_BLK_DEV_IDETAPE is not set 509# CONFIG_BLK_DEV_IDETAPE is not set
459# CONFIG_BLK_DEV_IDEFLOPPY is not set 510# CONFIG_BLK_DEV_IDEFLOPPY is not set
511# CONFIG_BLK_DEV_IDESCSI is not set
460# CONFIG_IDE_TASK_IOCTL is not set 512# CONFIG_IDE_TASK_IOCTL is not set
461 513
462# 514#
@@ -468,7 +520,6 @@ CONFIG_IDEPCI_SHARE_IRQ=y
468# CONFIG_BLK_DEV_OFFBOARD is not set 520# CONFIG_BLK_DEV_OFFBOARD is not set
469CONFIG_BLK_DEV_GENERIC=y 521CONFIG_BLK_DEV_GENERIC=y
470# CONFIG_BLK_DEV_OPTI621 is not set 522# CONFIG_BLK_DEV_OPTI621 is not set
471# CONFIG_BLK_DEV_SL82C105 is not set
472CONFIG_BLK_DEV_IDEDMA_PCI=y 523CONFIG_BLK_DEV_IDEDMA_PCI=y
473# CONFIG_BLK_DEV_IDEDMA_FORCED is not set 524# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
474CONFIG_IDEDMA_PCI_AUTO=y 525CONFIG_IDEDMA_PCI_AUTO=y
@@ -492,6 +543,7 @@ CONFIG_BLK_DEV_AEC62XX=y
492# CONFIG_BLK_DEV_PDC202XX_NEW is not set 543# CONFIG_BLK_DEV_PDC202XX_NEW is not set
493# CONFIG_BLK_DEV_SVWKS is not set 544# CONFIG_BLK_DEV_SVWKS is not set
494CONFIG_BLK_DEV_SIIMAGE=y 545CONFIG_BLK_DEV_SIIMAGE=y
546# CONFIG_BLK_DEV_SL82C105 is not set
495# CONFIG_BLK_DEV_SLC90E66 is not set 547# CONFIG_BLK_DEV_SLC90E66 is not set
496# CONFIG_BLK_DEV_TRM290 is not set 548# CONFIG_BLK_DEV_TRM290 is not set
497# CONFIG_BLK_DEV_VIA82CXXX is not set 549# CONFIG_BLK_DEV_VIA82CXXX is not set
@@ -505,8 +557,74 @@ CONFIG_IDEDMA_AUTO=y
505# SCSI device support 557# SCSI device support
506# 558#
507# CONFIG_RAID_ATTRS is not set 559# CONFIG_RAID_ATTRS is not set
508# CONFIG_SCSI is not set 560CONFIG_SCSI=m
561# CONFIG_SCSI_TGT is not set
509# CONFIG_SCSI_NETLINK is not set 562# CONFIG_SCSI_NETLINK is not set
563CONFIG_SCSI_PROC_FS=y
564
565#
566# SCSI support type (disk, tape, CD-ROM)
567#
568CONFIG_BLK_DEV_SD=m
569# CONFIG_CHR_DEV_ST is not set
570# CONFIG_CHR_DEV_OSST is not set
571CONFIG_BLK_DEV_SR=m
572# CONFIG_BLK_DEV_SR_VENDOR is not set
573CONFIG_CHR_DEV_SG=m
574# CONFIG_CHR_DEV_SCH is not set
575
576#
577# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
578#
579# CONFIG_SCSI_MULTI_LUN is not set
580# CONFIG_SCSI_CONSTANTS is not set
581# CONFIG_SCSI_LOGGING is not set
582# CONFIG_SCSI_SCAN_ASYNC is not set
583
584#
585# SCSI Transports
586#
587# CONFIG_SCSI_SPI_ATTRS is not set
588# CONFIG_SCSI_FC_ATTRS is not set
589# CONFIG_SCSI_ISCSI_ATTRS is not set
590# CONFIG_SCSI_SAS_ATTRS is not set
591# CONFIG_SCSI_SAS_LIBSAS is not set
592
593#
594# SCSI low-level drivers
595#
596# CONFIG_ISCSI_TCP is not set
597# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
598# CONFIG_SCSI_3W_9XXX is not set
599# CONFIG_SCSI_ACARD is not set
600# CONFIG_SCSI_AACRAID is not set
601# CONFIG_SCSI_AIC7XXX is not set
602# CONFIG_SCSI_AIC7XXX_OLD is not set
603# CONFIG_SCSI_AIC79XX is not set
604# CONFIG_SCSI_AIC94XX is not set
605# CONFIG_SCSI_ARCMSR is not set
606# CONFIG_MEGARAID_NEWGEN is not set
607# CONFIG_MEGARAID_LEGACY is not set
608# CONFIG_MEGARAID_SAS is not set
609# CONFIG_SCSI_HPTIOP is not set
610# CONFIG_SCSI_BUSLOGIC is not set
611# CONFIG_SCSI_DMX3191D is not set
612# CONFIG_SCSI_EATA is not set
613# CONFIG_SCSI_FUTURE_DOMAIN is not set
614# CONFIG_SCSI_GDTH is not set
615# CONFIG_SCSI_IPS is not set
616# CONFIG_SCSI_INITIO is not set
617# CONFIG_SCSI_INIA100 is not set
618# CONFIG_SCSI_STEX is not set
619# CONFIG_SCSI_SYM53C8XX_2 is not set
620# CONFIG_SCSI_QLOGIC_1280 is not set
621# CONFIG_SCSI_QLA_FC is not set
622# CONFIG_SCSI_QLA_ISCSI is not set
623# CONFIG_SCSI_LPFC is not set
624# CONFIG_SCSI_DC395x is not set
625# CONFIG_SCSI_DC390T is not set
626# CONFIG_SCSI_DEBUG is not set
627# CONFIG_SCSI_SRP is not set
510 628
511# 629#
512# Serial ATA (prod) and Parallel ATA (experimental) drivers 630# Serial ATA (prod) and Parallel ATA (experimental) drivers
@@ -538,6 +656,9 @@ CONFIG_DM_MULTIPATH=m
538# Fusion MPT device support 656# Fusion MPT device support
539# 657#
540# CONFIG_FUSION is not set 658# CONFIG_FUSION is not set
659# CONFIG_FUSION_SPI is not set
660# CONFIG_FUSION_FC is not set
661# CONFIG_FUSION_SAS is not set
541 662
542# 663#
543# IEEE 1394 (FireWire) support 664# IEEE 1394 (FireWire) support
@@ -552,6 +673,7 @@ CONFIG_DM_MULTIPATH=m
552# 673#
553# Macintosh device drivers 674# Macintosh device drivers
554# 675#
676# CONFIG_MAC_EMUMOUSEBTN is not set
555# CONFIG_WINDFARM is not set 677# CONFIG_WINDFARM is not set
556 678
557# 679#
@@ -559,7 +681,7 @@ CONFIG_DM_MULTIPATH=m
559# 681#
560CONFIG_NETDEVICES=y 682CONFIG_NETDEVICES=y
561# CONFIG_DUMMY is not set 683# CONFIG_DUMMY is not set
562CONFIG_BONDING=y 684CONFIG_BONDING=m
563# CONFIG_EQUALIZER is not set 685# CONFIG_EQUALIZER is not set
564CONFIG_TUN=y 686CONFIG_TUN=y
565 687
@@ -604,11 +726,11 @@ CONFIG_E1000_NAPI=y
604# CONFIG_R8169 is not set 726# CONFIG_R8169 is not set
605# CONFIG_SIS190 is not set 727# CONFIG_SIS190 is not set
606CONFIG_SKGE=m 728CONFIG_SKGE=m
607# CONFIG_SKY2 is not set 729CONFIG_SKY2=m
608# CONFIG_SK98LIN is not set 730# CONFIG_SK98LIN is not set
609# CONFIG_TIGON3 is not set 731CONFIG_TIGON3=y
610# CONFIG_BNX2 is not set 732# CONFIG_BNX2 is not set
611CONFIG_SPIDER_NET=m 733CONFIG_SPIDER_NET=y
612# CONFIG_QLA3XXX is not set 734# CONFIG_QLA3XXX is not set
613 735
614# 736#
@@ -618,6 +740,7 @@ CONFIG_SPIDER_NET=m
618# CONFIG_IXGB is not set 740# CONFIG_IXGB is not set
619# CONFIG_S2IO is not set 741# CONFIG_S2IO is not set
620# CONFIG_MYRI10GE is not set 742# CONFIG_MYRI10GE is not set
743# CONFIG_NETXEN_NIC is not set
621 744
622# 745#
623# Token Ring devices 746# Token Ring devices
@@ -637,6 +760,7 @@ CONFIG_SPIDER_NET=m
637# CONFIG_HIPPI is not set 760# CONFIG_HIPPI is not set
638# CONFIG_PPP is not set 761# CONFIG_PPP is not set
639# CONFIG_SLIP is not set 762# CONFIG_SLIP is not set
763# CONFIG_NET_FC is not set
640# CONFIG_SHAPER is not set 764# CONFIG_SHAPER is not set
641# CONFIG_NETCONSOLE is not set 765# CONFIG_NETCONSOLE is not set
642# CONFIG_NETPOLL is not set 766# CONFIG_NETPOLL is not set
@@ -703,6 +827,7 @@ CONFIG_SERIAL_NONSTANDARD=y
703# CONFIG_DIGIEPCA is not set 827# CONFIG_DIGIEPCA is not set
704# CONFIG_MOXA_INTELLIO is not set 828# CONFIG_MOXA_INTELLIO is not set
705# CONFIG_MOXA_SMARTIO is not set 829# CONFIG_MOXA_SMARTIO is not set
830# CONFIG_MOXA_SMARTIO_NEW is not set
706# CONFIG_ISI is not set 831# CONFIG_ISI is not set
707# CONFIG_SYNCLINK is not set 832# CONFIG_SYNCLINK is not set
708# CONFIG_SYNCLINKMP is not set 833# CONFIG_SYNCLINKMP is not set
@@ -729,6 +854,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
729CONFIG_SERIAL_CORE=y 854CONFIG_SERIAL_CORE=y
730CONFIG_SERIAL_CORE_CONSOLE=y 855CONFIG_SERIAL_CORE_CONSOLE=y
731# CONFIG_SERIAL_JSM is not set 856# CONFIG_SERIAL_JSM is not set
857CONFIG_SERIAL_OF_PLATFORM=y
732CONFIG_UNIX98_PTYS=y 858CONFIG_UNIX98_PTYS=y
733# CONFIG_LEGACY_PTYS is not set 859# CONFIG_LEGACY_PTYS is not set
734CONFIG_HVC_DRIVER=y 860CONFIG_HVC_DRIVER=y
@@ -756,16 +882,17 @@ CONFIG_WATCHDOG_RTAS=y
756# 882#
757# CONFIG_PCIPCWATCHDOG is not set 883# CONFIG_PCIPCWATCHDOG is not set
758# CONFIG_WDTPCI is not set 884# CONFIG_WDTPCI is not set
885
886#
887# USB-based Watchdog Cards
888#
889# CONFIG_USBPCWATCHDOG is not set
759# CONFIG_HW_RANDOM is not set 890# CONFIG_HW_RANDOM is not set
760CONFIG_GEN_RTC=y 891CONFIG_GEN_RTC=y
761# CONFIG_GEN_RTC_X is not set 892# CONFIG_GEN_RTC_X is not set
762# CONFIG_DTLK is not set 893# CONFIG_DTLK is not set
763# CONFIG_R3964 is not set 894# CONFIG_R3964 is not set
764# CONFIG_APPLICOM is not set 895# CONFIG_APPLICOM is not set
765
766#
767# Ftape, the floppy tape device driver
768#
769# CONFIG_AGP is not set 896# CONFIG_AGP is not set
770# CONFIG_DRM is not set 897# CONFIG_DRM is not set
771# CONFIG_RAW_DRIVER is not set 898# CONFIG_RAW_DRIVER is not set
@@ -855,12 +982,14 @@ CONFIG_I2C_ALGOBIT=y
855# Digital Video Broadcasting Devices 982# Digital Video Broadcasting Devices
856# 983#
857# CONFIG_DVB is not set 984# CONFIG_DVB is not set
985# CONFIG_USB_DABUSB is not set
858 986
859# 987#
860# Graphics support 988# Graphics support
861# 989#
862CONFIG_FIRMWARE_EDID=y 990CONFIG_FIRMWARE_EDID=y
863# CONFIG_FB is not set 991# CONFIG_FB is not set
992# CONFIG_FB_IBM_GXT4500 is not set
864 993
865# 994#
866# Console display driver support 995# Console display driver support
@@ -875,18 +1004,145 @@ CONFIG_DUMMY_CONSOLE=y
875# CONFIG_SOUND is not set 1004# CONFIG_SOUND is not set
876 1005
877# 1006#
1007# HID Devices
1008#
1009CONFIG_HID=m
1010
1011#
878# USB support 1012# USB support
879# 1013#
880CONFIG_USB_ARCH_HAS_HCD=y 1014CONFIG_USB_ARCH_HAS_HCD=y
881CONFIG_USB_ARCH_HAS_OHCI=y 1015CONFIG_USB_ARCH_HAS_OHCI=y
882CONFIG_USB_ARCH_HAS_EHCI=y 1016CONFIG_USB_ARCH_HAS_EHCI=y
883# CONFIG_USB is not set 1017CONFIG_USB=m
1018# CONFIG_USB_DEBUG is not set
1019
1020#
1021# Miscellaneous USB options
1022#
1023CONFIG_USB_DEVICEFS=y
1024# CONFIG_USB_BANDWIDTH is not set
1025# CONFIG_USB_DYNAMIC_MINORS is not set
1026# CONFIG_USB_MULTITHREAD_PROBE is not set
1027# CONFIG_USB_OTG is not set
1028
1029#
1030# USB Host Controller Drivers
1031#
1032CONFIG_USB_EHCI_HCD=m
1033# CONFIG_USB_EHCI_SPLIT_ISO is not set
1034# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1035# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1036# CONFIG_USB_ISP116X_HCD is not set
1037CONFIG_USB_OHCI_HCD=m
1038# CONFIG_USB_OHCI_BIG_ENDIAN is not set
1039CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1040# CONFIG_USB_UHCI_HCD is not set
1041# CONFIG_USB_SL811_HCD is not set
1042
1043#
1044# USB Device Class drivers
1045#
1046# CONFIG_USB_ACM is not set
1047# CONFIG_USB_PRINTER is not set
884 1048
885# 1049#
886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1050# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
887# 1051#
888 1052
889# 1053#
1054# may also be needed; see USB_STORAGE Help for more information
1055#
1056CONFIG_USB_STORAGE=m
1057# CONFIG_USB_STORAGE_DEBUG is not set
1058# CONFIG_USB_STORAGE_DATAFAB is not set
1059# CONFIG_USB_STORAGE_FREECOM is not set
1060# CONFIG_USB_STORAGE_ISD200 is not set
1061# CONFIG_USB_STORAGE_DPCM is not set
1062# CONFIG_USB_STORAGE_USBAT is not set
1063# CONFIG_USB_STORAGE_SDDR09 is not set
1064# CONFIG_USB_STORAGE_SDDR55 is not set
1065# CONFIG_USB_STORAGE_JUMPSHOT is not set
1066# CONFIG_USB_STORAGE_ALAUDA is not set
1067# CONFIG_USB_STORAGE_KARMA is not set
1068# CONFIG_USB_LIBUSUAL is not set
1069
1070#
1071# USB Input Devices
1072#
1073# CONFIG_USB_HID is not set
1074
1075#
1076# USB HID Boot Protocol drivers
1077#
1078# CONFIG_USB_KBD is not set
1079# CONFIG_USB_MOUSE is not set
1080# CONFIG_USB_AIPTEK is not set
1081# CONFIG_USB_WACOM is not set
1082# CONFIG_USB_ACECAD is not set
1083# CONFIG_USB_KBTAB is not set
1084# CONFIG_USB_POWERMATE is not set
1085# CONFIG_USB_TOUCHSCREEN is not set
1086# CONFIG_USB_YEALINK is not set
1087# CONFIG_USB_XPAD is not set
1088# CONFIG_USB_ATI_REMOTE is not set
1089# CONFIG_USB_ATI_REMOTE2 is not set
1090# CONFIG_USB_KEYSPAN_REMOTE is not set
1091# CONFIG_USB_APPLETOUCH is not set
1092
1093#
1094# USB Imaging devices
1095#
1096# CONFIG_USB_MDC800 is not set
1097# CONFIG_USB_MICROTEK is not set
1098
1099#
1100# USB Network Adapters
1101#
1102# CONFIG_USB_CATC is not set
1103# CONFIG_USB_KAWETH is not set
1104# CONFIG_USB_PEGASUS is not set
1105# CONFIG_USB_RTL8150 is not set
1106# CONFIG_USB_USBNET_MII is not set
1107# CONFIG_USB_USBNET is not set
1108CONFIG_USB_MON=y
1109
1110#
1111# USB port drivers
1112#
1113
1114#
1115# USB Serial Converter support
1116#
1117# CONFIG_USB_SERIAL is not set
1118
1119#
1120# USB Miscellaneous drivers
1121#
1122# CONFIG_USB_EMI62 is not set
1123# CONFIG_USB_EMI26 is not set
1124# CONFIG_USB_ADUTUX is not set
1125# CONFIG_USB_AUERSWALD is not set
1126# CONFIG_USB_RIO500 is not set
1127# CONFIG_USB_LEGOTOWER is not set
1128# CONFIG_USB_LCD is not set
1129# CONFIG_USB_LED is not set
1130# CONFIG_USB_CYPRESS_CY7C63 is not set
1131# CONFIG_USB_CYTHERM is not set
1132# CONFIG_USB_PHIDGET is not set
1133# CONFIG_USB_IDMOUSE is not set
1134# CONFIG_USB_FTDI_ELAN is not set
1135# CONFIG_USB_APPLEDISPLAY is not set
1136# CONFIG_USB_SISUSBVGA is not set
1137# CONFIG_USB_LD is not set
1138# CONFIG_USB_TRANCEVIBRATOR is not set
1139# CONFIG_USB_TEST is not set
1140
1141#
1142# USB DSL modem support
1143#
1144
1145#
890# USB Gadget Support 1146# USB Gadget Support
891# 1147#
892# CONFIG_USB_GADGET is not set 1148# CONFIG_USB_GADGET is not set
@@ -912,7 +1168,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
912# 1168#
913# InfiniBand support 1169# InfiniBand support
914# 1170#
915CONFIG_INFINIBAND=y 1171CONFIG_INFINIBAND=m
916CONFIG_INFINIBAND_USER_MAD=m 1172CONFIG_INFINIBAND_USER_MAD=m
917CONFIG_INFINIBAND_USER_ACCESS=m 1173CONFIG_INFINIBAND_USER_ACCESS=m
918CONFIG_INFINIBAND_ADDR_TRANS=y 1174CONFIG_INFINIBAND_ADDR_TRANS=y
@@ -922,6 +1178,8 @@ CONFIG_INFINIBAND_MTHCA_DEBUG=y
922CONFIG_INFINIBAND_IPOIB=m 1178CONFIG_INFINIBAND_IPOIB=m
923CONFIG_INFINIBAND_IPOIB_DEBUG=y 1179CONFIG_INFINIBAND_IPOIB_DEBUG=y
924CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y 1180CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
1181# CONFIG_INFINIBAND_SRP is not set
1182# CONFIG_INFINIBAND_ISER is not set
925 1183
926# 1184#
927# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1185# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
@@ -946,6 +1204,10 @@ CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
946# 1204#
947 1205
948# 1206#
1207# Virtualization
1208#
1209
1210#
949# File systems 1211# File systems
950# 1212#
951CONFIG_EXT2_FS=y 1213CONFIG_EXT2_FS=y
@@ -1028,23 +1290,18 @@ CONFIG_RAMFS=y
1028# 1290#
1029# Network File Systems 1291# Network File Systems
1030# 1292#
1031CONFIG_NFS_FS=m 1293CONFIG_NFS_FS=y
1032CONFIG_NFS_V3=y 1294CONFIG_NFS_V3=y
1033CONFIG_NFS_V3_ACL=y 1295CONFIG_NFS_V3_ACL=y
1034# CONFIG_NFS_V4 is not set 1296# CONFIG_NFS_V4 is not set
1035# CONFIG_NFS_DIRECTIO is not set 1297# CONFIG_NFS_DIRECTIO is not set
1036CONFIG_NFSD=m 1298# CONFIG_NFSD is not set
1037CONFIG_NFSD_V2_ACL=y 1299CONFIG_ROOT_NFS=y
1038CONFIG_NFSD_V3=y 1300CONFIG_LOCKD=y
1039CONFIG_NFSD_V3_ACL=y
1040# CONFIG_NFSD_V4 is not set
1041CONFIG_NFSD_TCP=y
1042CONFIG_LOCKD=m
1043CONFIG_LOCKD_V4=y 1301CONFIG_LOCKD_V4=y
1044CONFIG_EXPORTFS=m 1302CONFIG_NFS_ACL_SUPPORT=y
1045CONFIG_NFS_ACL_SUPPORT=m
1046CONFIG_NFS_COMMON=y 1303CONFIG_NFS_COMMON=y
1047CONFIG_SUNRPC=m 1304CONFIG_SUNRPC=y
1048# CONFIG_RPCSEC_GSS_KRB5 is not set 1305# CONFIG_RPCSEC_GSS_KRB5 is not set
1049# CONFIG_RPCSEC_GSS_SPKM3 is not set 1306# CONFIG_RPCSEC_GSS_SPKM3 is not set
1050# CONFIG_SMB_FS is not set 1307# CONFIG_SMB_FS is not set
@@ -1120,8 +1377,14 @@ CONFIG_NLS_ISO8859_15=m
1120# CONFIG_NLS_UTF8 is not set 1377# CONFIG_NLS_UTF8 is not set
1121 1378
1122# 1379#
1380# Distributed Lock Manager
1381#
1382# CONFIG_DLM is not set
1383
1384#
1123# Library routines 1385# Library routines
1124# 1386#
1387CONFIG_BITREVERSE=y
1125# CONFIG_CRC_CCITT is not set 1388# CONFIG_CRC_CCITT is not set
1126# CONFIG_CRC16 is not set 1389# CONFIG_CRC16 is not set
1127CONFIG_CRC32=y 1390CONFIG_CRC32=y
@@ -1130,7 +1393,10 @@ CONFIG_ZLIB_INFLATE=m
1130CONFIG_ZLIB_DEFLATE=m 1393CONFIG_ZLIB_DEFLATE=m
1131CONFIG_TEXTSEARCH=y 1394CONFIG_TEXTSEARCH=y
1132CONFIG_TEXTSEARCH_KMP=m 1395CONFIG_TEXTSEARCH_KMP=m
1396CONFIG_TEXTSEARCH_BM=m
1397CONFIG_TEXTSEARCH_FSM=m
1133CONFIG_PLIST=y 1398CONFIG_PLIST=y
1399CONFIG_IOMAP_COPY=y
1134 1400
1135# 1401#
1136# Instrumentation Support 1402# Instrumentation Support
@@ -1146,6 +1412,8 @@ CONFIG_OPROFILE=y
1146# CONFIG_ENABLE_MUST_CHECK is not set 1412# CONFIG_ENABLE_MUST_CHECK is not set
1147CONFIG_MAGIC_SYSRQ=y 1413CONFIG_MAGIC_SYSRQ=y
1148# CONFIG_UNUSED_SYMBOLS is not set 1414# CONFIG_UNUSED_SYMBOLS is not set
1415CONFIG_DEBUG_FS=y
1416# CONFIG_HEADERS_CHECK is not set
1149CONFIG_DEBUG_KERNEL=y 1417CONFIG_DEBUG_KERNEL=y
1150CONFIG_LOG_BUF_SHIFT=15 1418CONFIG_LOG_BUF_SHIFT=15
1151CONFIG_DETECT_SOFTLOCKUP=y 1419CONFIG_DETECT_SOFTLOCKUP=y
@@ -1159,12 +1427,11 @@ CONFIG_DEBUG_MUTEXES=y
1159CONFIG_DEBUG_SPINLOCK_SLEEP=y 1427CONFIG_DEBUG_SPINLOCK_SLEEP=y
1160# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1428# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1161# CONFIG_DEBUG_KOBJECT is not set 1429# CONFIG_DEBUG_KOBJECT is not set
1430CONFIG_DEBUG_BUGVERBOSE=y
1162# CONFIG_DEBUG_INFO is not set 1431# CONFIG_DEBUG_INFO is not set
1163CONFIG_DEBUG_FS=y
1164# CONFIG_DEBUG_VM is not set 1432# CONFIG_DEBUG_VM is not set
1165# CONFIG_DEBUG_LIST is not set 1433# CONFIG_DEBUG_LIST is not set
1166# CONFIG_FORCED_INLINING is not set 1434# CONFIG_FORCED_INLINING is not set
1167# CONFIG_HEADERS_CHECK is not set
1168# CONFIG_RCU_TORTURE_TEST is not set 1435# CONFIG_RCU_TORTURE_TEST is not set
1169# CONFIG_DEBUG_STACKOVERFLOW is not set 1436# CONFIG_DEBUG_STACKOVERFLOW is not set
1170# CONFIG_DEBUG_STACK_USAGE is not set 1437# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1191,6 +1458,7 @@ CONFIG_CRYPTO_BLKCIPHER=m
1191CONFIG_CRYPTO_HASH=y 1458CONFIG_CRYPTO_HASH=y
1192CONFIG_CRYPTO_MANAGER=y 1459CONFIG_CRYPTO_MANAGER=y
1193CONFIG_CRYPTO_HMAC=y 1460CONFIG_CRYPTO_HMAC=y
1461# CONFIG_CRYPTO_XCBC is not set
1194# CONFIG_CRYPTO_NULL is not set 1462# CONFIG_CRYPTO_NULL is not set
1195# CONFIG_CRYPTO_MD4 is not set 1463# CONFIG_CRYPTO_MD4 is not set
1196CONFIG_CRYPTO_MD5=m 1464CONFIG_CRYPTO_MD5=m
@@ -1199,8 +1467,10 @@ CONFIG_CRYPTO_SHA1=m
1199# CONFIG_CRYPTO_SHA512 is not set 1467# CONFIG_CRYPTO_SHA512 is not set
1200# CONFIG_CRYPTO_WP512 is not set 1468# CONFIG_CRYPTO_WP512 is not set
1201# CONFIG_CRYPTO_TGR192 is not set 1469# CONFIG_CRYPTO_TGR192 is not set
1470# CONFIG_CRYPTO_GF128MUL is not set
1202CONFIG_CRYPTO_ECB=m 1471CONFIG_CRYPTO_ECB=m
1203CONFIG_CRYPTO_CBC=m 1472CONFIG_CRYPTO_CBC=m
1473# CONFIG_CRYPTO_LRW is not set
1204CONFIG_CRYPTO_DES=m 1474CONFIG_CRYPTO_DES=m
1205# CONFIG_CRYPTO_BLOWFISH is not set 1475# CONFIG_CRYPTO_BLOWFISH is not set
1206# CONFIG_CRYPTO_TWOFISH is not set 1476# CONFIG_CRYPTO_TWOFISH is not set
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c
index 3002ea3a61a2..b7345176b399 100644
--- a/arch/powerpc/kernel/of_platform.c
+++ b/arch/powerpc/kernel/of_platform.c
@@ -50,6 +50,7 @@ static struct of_device_id of_default_bus_ids[] = {
50 { .type = "plb5", }, 50 { .type = "plb5", },
51 { .type = "plb4", }, 51 { .type = "plb4", },
52 { .type = "opb", }, 52 { .type = "opb", },
53 { .type = "ebc", },
53 {}, 54 {},
54}; 55};
55 56
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index a6b7692c7269..73c59ec49120 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -360,6 +360,7 @@ struct pci_dev *of_create_pci_dev(struct device_node *node,
360 DBG(" class: 0x%x\n", dev->class); 360 DBG(" class: 0x%x\n", dev->class);
361 361
362 dev->current_state = 4; /* unknown power state */ 362 dev->current_state = 4; /* unknown power state */
363 dev->error_state = pci_channel_io_normal;
363 364
364 if (!strcmp(type, "pci") || !strcmp(type, "pciex")) { 365 if (!strcmp(type, "pci") || !strcmp(type, "pciex")) {
365 /* a PCI-PCI bridge */ 366 /* a PCI-PCI bridge */
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c
index 0dfbe1cd28eb..12c51e4ad2b4 100644
--- a/arch/powerpc/kernel/prom_parse.c
+++ b/arch/powerpc/kernel/prom_parse.c
@@ -920,9 +920,20 @@ static int of_irq_map_oldworld(struct device_node *device, int index,
920 920
921 /* 921 /*
922 * Old machines just have a list of interrupt numbers 922 * Old machines just have a list of interrupt numbers
923 * and no interrupt-controller nodes. 923 * and no interrupt-controller nodes. We also have dodgy
924 * cases where the APPL,interrupts property is completely
925 * missing behind pci-pci bridges and we have to get it
926 * from the parent (the bridge itself, as apple just wired
927 * everything together on these)
924 */ 928 */
925 ints = get_property(device, "AAPL,interrupts", &intlen); 929 while (device) {
930 ints = get_property(device, "AAPL,interrupts", &intlen);
931 if (ints != NULL)
932 break;
933 device = device->parent;
934 if (device && strcmp(device->type, "pci") != 0)
935 break;
936 }
926 if (ints == NULL) 937 if (ints == NULL)
927 return -EINVAL; 938 return -EINVAL;
928 intlen /= sizeof(u32); 939 intlen /= sizeof(u32);
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index e4ebe1a6228e..6b405a3f43f9 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -835,11 +835,21 @@ long sys_swapcontext(struct ucontext __user *old_ctx,
835 return -EINVAL; 835 return -EINVAL;
836 836
837 if (old_ctx != NULL) { 837 if (old_ctx != NULL) {
838 struct mcontext __user *mctx;
839
840 /*
841 * old_ctx might not be 16-byte aligned, in which
842 * case old_ctx->uc_mcontext won't be either.
843 * Because we have the old_ctx->uc_pad2 field
844 * before old_ctx->uc_mcontext, we need to round down
845 * from &old_ctx->uc_mcontext to a 16-byte boundary.
846 */
847 mctx = (struct mcontext __user *)
848 ((unsigned long) &old_ctx->uc_mcontext & ~0xfUL);
838 if (!access_ok(VERIFY_WRITE, old_ctx, sizeof(*old_ctx)) 849 if (!access_ok(VERIFY_WRITE, old_ctx, sizeof(*old_ctx))
839 || save_user_regs(regs, &old_ctx->uc_mcontext, 0) 850 || save_user_regs(regs, mctx, 0)
840 || put_sigset_t(&old_ctx->uc_sigmask, &current->blocked) 851 || put_sigset_t(&old_ctx->uc_sigmask, &current->blocked)
841 || __put_user(to_user_ptr(&old_ctx->uc_mcontext), 852 || __put_user(to_user_ptr(mctx), &old_ctx->uc_regs))
842 &old_ctx->uc_regs))
843 return -EFAULT; 853 return -EFAULT;
844 } 854 }
845 if (new_ctx == NULL) 855 if (new_ctx == NULL)
diff --git a/arch/powerpc/platforms/Makefile b/arch/powerpc/platforms/Makefile
index 44d95eaf22e6..507d1b98f270 100644
--- a/arch/powerpc/platforms/Makefile
+++ b/arch/powerpc/platforms/Makefile
@@ -5,9 +5,9 @@ ifeq ($(CONFIG_PPC64),y)
5obj-$(CONFIG_PPC_PMAC) += powermac/ 5obj-$(CONFIG_PPC_PMAC) += powermac/
6endif 6endif
7endif 7endif
8obj-$(CONFIG_PPC_MPC52xx) += 52xx/
8obj-$(CONFIG_PPC_CHRP) += chrp/ 9obj-$(CONFIG_PPC_CHRP) += chrp/
9obj-$(CONFIG_4xx) += 4xx/ 10obj-$(CONFIG_4xx) += 4xx/
10obj-$(CONFIG_PPC_MPC52xx) += 52xx/
11obj-$(CONFIG_PPC_83xx) += 83xx/ 11obj-$(CONFIG_PPC_83xx) += 83xx/
12obj-$(CONFIG_PPC_85xx) += 85xx/ 12obj-$(CONFIG_PPC_85xx) += 85xx/
13obj-$(CONFIG_PPC_86xx) += 86xx/ 13obj-$(CONFIG_PPC_86xx) += 86xx/
diff --git a/arch/powerpc/platforms/cell/io-workarounds.c b/arch/powerpc/platforms/cell/io-workarounds.c
index 580d42595912..7c73128305ec 100644
--- a/arch/powerpc/platforms/cell/io-workarounds.c
+++ b/arch/powerpc/platforms/cell/io-workarounds.c
@@ -37,7 +37,7 @@
37 */ 37 */
38#define SPIDER_DISABLE_PREFETCH 38#define SPIDER_DISABLE_PREFETCH
39 39
40#define MAX_SPIDERS 2 40#define MAX_SPIDERS 3
41 41
42static struct spider_pci_bus { 42static struct spider_pci_bus {
43 void __iomem *regs; 43 void __iomem *regs;
diff --git a/arch/powerpc/platforms/cell/spu_priv1_mmio.c b/arch/powerpc/platforms/cell/spu_priv1_mmio.c
index a5de0430c56d..910a926b61a2 100644
--- a/arch/powerpc/platforms/cell/spu_priv1_mmio.c
+++ b/arch/powerpc/platforms/cell/spu_priv1_mmio.c
@@ -37,8 +37,9 @@
37#include "interrupt.h" 37#include "interrupt.h"
38#include "spu_priv1_mmio.h" 38#include "spu_priv1_mmio.h"
39 39
40static DEFINE_MUTEX(add_spumem_mutex);
41
40struct spu_pdata { 42struct spu_pdata {
41 int nid;
42 struct device_node *devnode; 43 struct device_node *devnode;
43 struct spu_priv1 __iomem *priv1; 44 struct spu_priv1 __iomem *priv1;
44}; 45};
@@ -56,20 +57,9 @@ struct device_node *spu_devnode(struct spu *spu)
56 57
57EXPORT_SYMBOL_GPL(spu_devnode); 58EXPORT_SYMBOL_GPL(spu_devnode);
58 59
59static int __init find_spu_node_id(struct device_node *spe)
60{
61 const unsigned int *id;
62 struct device_node *cpu;
63 cpu = spe->parent->parent;
64 id = get_property(cpu, "node-id", NULL);
65 return id ? *id : 0;
66}
67
68static int __init cell_spuprop_present(struct spu *spu, struct device_node *spe, 60static int __init cell_spuprop_present(struct spu *spu, struct device_node *spe,
69 const char *prop) 61 const char *prop)
70{ 62{
71 static DEFINE_MUTEX(add_spumem_mutex);
72
73 const struct address_prop { 63 const struct address_prop {
74 unsigned long address; 64 unsigned long address;
75 unsigned int len; 65 unsigned int len;
@@ -87,7 +77,7 @@ static int __init cell_spuprop_present(struct spu *spu, struct device_node *spe,
87 start_pfn = p->address >> PAGE_SHIFT; 77 start_pfn = p->address >> PAGE_SHIFT;
88 nr_pages = ((unsigned long)p->len + PAGE_SIZE - 1) >> PAGE_SHIFT; 78 nr_pages = ((unsigned long)p->len + PAGE_SIZE - 1) >> PAGE_SHIFT;
89 79
90 pgdata = NODE_DATA(spu_get_pdata(spu)->nid); 80 pgdata = NODE_DATA(spu->node);
91 zone = pgdata->node_zones; 81 zone = pgdata->node_zones;
92 82
93 /* XXX rethink locking here */ 83 /* XXX rethink locking here */
@@ -140,6 +130,7 @@ static int __init spu_map_interrupts_old(struct spu *spu,
140{ 130{
141 unsigned int isrc; 131 unsigned int isrc;
142 const u32 *tmp; 132 const u32 *tmp;
133 int nid;
143 134
144 /* Get the interrupt source unit from the device-tree */ 135 /* Get the interrupt source unit from the device-tree */
145 tmp = get_property(np, "isrc", NULL); 136 tmp = get_property(np, "isrc", NULL);
@@ -147,8 +138,15 @@ static int __init spu_map_interrupts_old(struct spu *spu,
147 return -ENODEV; 138 return -ENODEV;
148 isrc = tmp[0]; 139 isrc = tmp[0];
149 140
141 tmp = get_property(np->parent->parent, "node-id", NULL);
142 if (!tmp) {
143 printk(KERN_WARNING "%s: can't find node-id\n", __FUNCTION__);
144 nid = spu->node;
145 } else
146 nid = tmp[0];
147
150 /* Add the node number */ 148 /* Add the node number */
151 isrc |= spu->node << IIC_IRQ_NODE_SHIFT; 149 isrc |= nid << IIC_IRQ_NODE_SHIFT;
152 150
153 /* Now map interrupts of all 3 classes */ 151 /* Now map interrupts of all 3 classes */
154 spu->irqs[0] = irq_create_mapping(NULL, IIC_IRQ_CLASS_0 | isrc); 152 spu->irqs[0] = irq_create_mapping(NULL, IIC_IRQ_CLASS_0 | isrc);
@@ -237,70 +235,88 @@ err:
237 return ret; 235 return ret;
238} 236}
239 237
240static int spu_map_resource(struct device_node *node, int nr, 238static int spu_map_resource(struct spu *spu, int nr,
241 void __iomem** virt, unsigned long *phys) 239 void __iomem** virt, unsigned long *phys)
242{ 240{
241 struct device_node *np = spu_get_pdata(spu)->devnode;
242 unsigned long start_pfn, nr_pages;
243 struct pglist_data *pgdata;
244 struct zone *zone;
243 struct resource resource = { }; 245 struct resource resource = { };
246 unsigned long len;
244 int ret; 247 int ret;
245 248
246 ret = of_address_to_resource(node, nr, &resource); 249 ret = of_address_to_resource(np, nr, &resource);
247 if (ret) 250 if (ret)
248 goto out; 251 goto out;
249 252
250 if (phys) 253 if (phys)
251 *phys = resource.start; 254 *phys = resource.start;
252 *virt = ioremap(resource.start, resource.end - resource.start); 255 len = resource.end - resource.start + 1;
256 *virt = ioremap(resource.start, len);
253 if (!*virt) 257 if (!*virt)
254 ret = -EINVAL; 258 ret = -EINVAL;
255 259
260 start_pfn = resource.start >> PAGE_SHIFT;
261 nr_pages = (len + PAGE_SIZE - 1) >> PAGE_SHIFT;
262
263 pgdata = NODE_DATA(spu->node);
264 zone = pgdata->node_zones;
265
266 /* XXX rethink locking here */
267 mutex_lock(&add_spumem_mutex);
268 ret = __add_pages(zone, start_pfn, nr_pages);
269 mutex_unlock(&add_spumem_mutex);
270
256out: 271out:
257 return ret; 272 return ret;
258} 273}
259 274
260static int __init spu_map_device(struct spu *spu, struct device_node *node) 275static int __init spu_map_device(struct spu *spu)
261{ 276{
277 struct device_node *np = spu_get_pdata(spu)->devnode;
262 int ret = -ENODEV; 278 int ret = -ENODEV;
263 spu->name = get_property(node, "name", NULL); 279
280 spu->name = get_property(np, "name", NULL);
264 if (!spu->name) 281 if (!spu->name)
265 goto out; 282 goto out;
266 283
267 ret = spu_map_resource(node, 0, (void __iomem**)&spu->local_store, 284 ret = spu_map_resource(spu, 0, (void __iomem**)&spu->local_store,
268 &spu->local_store_phys); 285 &spu->local_store_phys);
269 if (ret) { 286 if (ret) {
270 pr_debug("spu_new: failed to map %s resource 0\n", 287 pr_debug("spu_new: failed to map %s resource 0\n",
271 node->full_name); 288 np->full_name);
272 goto out; 289 goto out;
273 } 290 }
274 ret = spu_map_resource(node, 1, (void __iomem**)&spu->problem, 291 ret = spu_map_resource(spu, 1, (void __iomem**)&spu->problem,
275 &spu->problem_phys); 292 &spu->problem_phys);
276 if (ret) { 293 if (ret) {
277 pr_debug("spu_new: failed to map %s resource 1\n", 294 pr_debug("spu_new: failed to map %s resource 1\n",
278 node->full_name); 295 np->full_name);
279 goto out_unmap; 296 goto out_unmap;
280 } 297 }
281 ret = spu_map_resource(node, 2, (void __iomem**)&spu->priv2, 298 ret = spu_map_resource(spu, 2, (void __iomem**)&spu->priv2, NULL);
282 NULL);
283 if (ret) { 299 if (ret) {
284 pr_debug("spu_new: failed to map %s resource 2\n", 300 pr_debug("spu_new: failed to map %s resource 2\n",
285 node->full_name); 301 np->full_name);
286 goto out_unmap; 302 goto out_unmap;
287 } 303 }
288 if (!firmware_has_feature(FW_FEATURE_LPAR)) 304 if (!firmware_has_feature(FW_FEATURE_LPAR))
289 ret = spu_map_resource(node, 3, 305 ret = spu_map_resource(spu, 3,
290 (void __iomem**)&spu_get_pdata(spu)->priv1, NULL); 306 (void __iomem**)&spu_get_pdata(spu)->priv1, NULL);
291 if (ret) { 307 if (ret) {
292 pr_debug("spu_new: failed to map %s resource 3\n", 308 pr_debug("spu_new: failed to map %s resource 3\n",
293 node->full_name); 309 np->full_name);
294 goto out_unmap; 310 goto out_unmap;
295 } 311 }
296 pr_debug("spu_new: %s maps:\n", node->full_name); 312 pr_debug("spu_new: %s maps:\n", np->full_name);
297 pr_debug(" local store : 0x%016lx -> 0x%p\n", 313 pr_debug(" local store : 0x%016lx -> 0x%p\n",
298 spu->local_store_phys, spu->local_store); 314 spu->local_store_phys, spu->local_store);
299 pr_debug(" problem state : 0x%016lx -> 0x%p\n", 315 pr_debug(" problem state : 0x%016lx -> 0x%p\n",
300 spu->problem_phys, spu->problem); 316 spu->problem_phys, spu->problem);
301 pr_debug(" priv2 : 0x%p\n", spu->priv2); 317 pr_debug(" priv2 : 0x%p\n", spu->priv2);
302 pr_debug(" priv1 : 0x%p\n", 318 pr_debug(" priv1 : 0x%p\n",
303 spu_get_pdata(spu)->priv1); 319 spu_get_pdata(spu)->priv1);
304 320
305 return 0; 321 return 0;
306 322
@@ -340,8 +356,9 @@ static int __init of_create_spu(struct spu *spu, void *data)
340 ret = -ENOMEM; 356 ret = -ENOMEM;
341 goto out; 357 goto out;
342 } 358 }
359 spu_get_pdata(spu)->devnode = of_node_get(spe);
343 360
344 spu->node = find_spu_node_id(spe); 361 spu->node = of_node_to_nid(spe);
345 if (spu->node >= MAX_NUMNODES) { 362 if (spu->node >= MAX_NUMNODES) {
346 printk(KERN_WARNING "SPE %s on node %d ignored," 363 printk(KERN_WARNING "SPE %s on node %d ignored,"
347 " node number too big\n", spe->full_name, spu->node); 364 " node number too big\n", spe->full_name, spu->node);
@@ -350,11 +367,7 @@ static int __init of_create_spu(struct spu *spu, void *data)
350 goto out_free; 367 goto out_free;
351 } 368 }
352 369
353 spu_get_pdata(spu)->nid = of_node_to_nid(spe); 370 ret = spu_map_device(spu);
354 if (spu_get_pdata(spu)->nid == -1)
355 spu_get_pdata(spu)->nid = 0;
356
357 ret = spu_map_device(spu, spe);
358 /* try old method */ 371 /* try old method */
359 if (ret) 372 if (ret)
360 ret = spu_map_device_old(spu, spe); 373 ret = spu_map_device_old(spu, spe);
@@ -367,8 +380,6 @@ static int __init of_create_spu(struct spu *spu, void *data)
367 if (ret) 380 if (ret)
368 goto out_unmap; 381 goto out_unmap;
369 382
370 spu_get_pdata(spu)->devnode = of_node_get(spe);
371
372 pr_debug(KERN_DEBUG "Using SPE %s %p %p %p %p %d\n", spu->name, 383 pr_debug(KERN_DEBUG "Using SPE %s %p %p %p %p %d\n", spu->name,
373 spu->local_store, spu->problem, spu_get_pdata(spu)->priv1, 384 spu->local_store, spu->problem, spu_get_pdata(spu)->priv1,
374 spu->priv2, spu->number); 385 spu->priv2, spu->number);
diff --git a/arch/powerpc/platforms/iseries/Kconfig b/arch/powerpc/platforms/iseries/Kconfig
index 887b68804e6d..54e6b3b6f261 100644
--- a/arch/powerpc/platforms/iseries/Kconfig
+++ b/arch/powerpc/platforms/iseries/Kconfig
@@ -31,5 +31,5 @@ endmenu
31 31
32config VIOPATH 32config VIOPATH
33 bool 33 bool
34 depends on VIOCONS || VIODASD || VIOCD || VIOTAPE || VETH 34 depends on VIOCONS || VIODASD || VIOCD || VIOTAPE || ISERIES_VETH
35 default y 35 default y
diff --git a/drivers/block/viodasd.c b/drivers/block/viodasd.c
index e19ba4ebcd4e..68592c336011 100644
--- a/drivers/block/viodasd.c
+++ b/drivers/block/viodasd.c
@@ -49,6 +49,7 @@
49#include <asm/iseries/hv_lp_event.h> 49#include <asm/iseries/hv_lp_event.h>
50#include <asm/iseries/hv_lp_config.h> 50#include <asm/iseries/hv_lp_config.h>
51#include <asm/iseries/vio.h> 51#include <asm/iseries/vio.h>
52#include <asm/firmware.h>
52 53
53MODULE_DESCRIPTION("iSeries Virtual DASD"); 54MODULE_DESCRIPTION("iSeries Virtual DASD");
54MODULE_AUTHOR("Dave Boutcher"); 55MODULE_AUTHOR("Dave Boutcher");
@@ -769,6 +770,11 @@ static int __init viodasd_init(void)
769{ 770{
770 int rc; 771 int rc;
771 772
773 if (!firmware_has_feature(FW_FEATURE_ISERIES)) {
774 rc = -ENODEV;
775 goto early_fail;
776 }
777
772 /* Try to open to our host lp */ 778 /* Try to open to our host lp */
773 if (viopath_hostLp == HvLpIndexInvalid) 779 if (viopath_hostLp == HvLpIndexInvalid)
774 vio_set_hostlp(); 780 vio_set_hostlp();
diff --git a/drivers/cdrom/viocd.c b/drivers/cdrom/viocd.c
index 54ca931e19ea..93fbf84dcc4a 100644
--- a/drivers/cdrom/viocd.c
+++ b/drivers/cdrom/viocd.c
@@ -47,6 +47,7 @@
47#include <asm/iseries/hv_types.h> 47#include <asm/iseries/hv_types.h>
48#include <asm/iseries/hv_lp_event.h> 48#include <asm/iseries/hv_lp_event.h>
49#include <asm/iseries/vio.h> 49#include <asm/iseries/vio.h>
50#include <asm/firmware.h>
50 51
51#define VIOCD_DEVICE "iseries/vcd" 52#define VIOCD_DEVICE "iseries/vcd"
52 53
@@ -748,6 +749,9 @@ static int __init viocd_init(void)
748 struct proc_dir_entry *e; 749 struct proc_dir_entry *e;
749 int ret = 0; 750 int ret = 0;
750 751
752 if (!firmware_has_feature(FW_FEATURE_ISERIES))
753 return -ENODEV;
754
751 if (viopath_hostLp == HvLpIndexInvalid) { 755 if (viopath_hostLp == HvLpIndexInvalid) {
752 vio_set_hostlp(); 756 vio_set_hostlp();
753 /* If we don't have a host, bail out */ 757 /* If we don't have a host, bail out */
diff --git a/drivers/char/viocons.c b/drivers/char/viocons.c
index 0e0da443cbd5..8de6b95aeb84 100644
--- a/drivers/char/viocons.c
+++ b/drivers/char/viocons.c
@@ -42,6 +42,7 @@
42#include <linux/tty_flip.h> 42#include <linux/tty_flip.h>
43#include <linux/sysrq.h> 43#include <linux/sysrq.h>
44 44
45#include <asm/firmware.h>
45#include <asm/iseries/vio.h> 46#include <asm/iseries/vio.h>
46#include <asm/iseries/hv_lp_event.h> 47#include <asm/iseries/hv_lp_event.h>
47#include <asm/iseries/hv_call_event.h> 48#include <asm/iseries/hv_call_event.h>
@@ -1060,6 +1061,9 @@ static int __init viocons_init2(void)
1060 atomic_t wait_flag; 1061 atomic_t wait_flag;
1061 int rc; 1062 int rc;
1062 1063
1064 if (!firmware_has_feature(FW_FEATURE_ISERIES))
1065 return -ENODEV;
1066
1063 /* +2 for fudge */ 1067 /* +2 for fudge */
1064 rc = viopath_open(HvLpConfig_getPrimaryLpIndex(), 1068 rc = viopath_open(HvLpConfig_getPrimaryLpIndex(),
1065 viomajorsubtype_chario, VIOCHAR_WINDOW + 2); 1069 viomajorsubtype_chario, VIOCHAR_WINDOW + 2);
@@ -1145,6 +1149,9 @@ static int __init viocons_init(void)
1145{ 1149{
1146 int i; 1150 int i;
1147 1151
1152 if (!firmware_has_feature(FW_FEATURE_ISERIES))
1153 return -ENODEV;
1154
1148 printk(VIOCONS_KERN_INFO "registering console\n"); 1155 printk(VIOCONS_KERN_INFO "registering console\n");
1149 for (i = 0; i < VTTY_PORTS; i++) { 1156 for (i = 0; i < VTTY_PORTS; i++) {
1150 port_info[i].lp = HvLpIndexInvalid; 1157 port_info[i].lp = HvLpIndexInvalid;
diff --git a/drivers/char/viotape.c b/drivers/char/viotape.c
index 94d79cb8ce8d..9438512b17f1 100644
--- a/drivers/char/viotape.c
+++ b/drivers/char/viotape.c
@@ -49,7 +49,7 @@
49 49
50#include <asm/uaccess.h> 50#include <asm/uaccess.h>
51#include <asm/ioctls.h> 51#include <asm/ioctls.h>
52 52#include <asm/firmware.h>
53#include <asm/vio.h> 53#include <asm/vio.h>
54#include <asm/iseries/vio.h> 54#include <asm/iseries/vio.h>
55#include <asm/iseries/hv_lp_event.h> 55#include <asm/iseries/hv_lp_event.h>
@@ -997,6 +997,9 @@ int __init viotap_init(void)
997 int ret; 997 int ret;
998 struct proc_dir_entry *e; 998 struct proc_dir_entry *e;
999 999
1000 if (!firmware_has_feature(FW_FEATURE_ISERIES))
1001 return -ENODEV;
1002
1000 op_struct_list = NULL; 1003 op_struct_list = NULL;
1001 if ((ret = add_op_structs(VIOTAPE_MAXREQ)) < 0) { 1004 if ((ret = add_op_structs(VIOTAPE_MAXREQ)) < 0) {
1002 printk(VIOTAPE_KERN_WARN "couldn't allocate op structs\n"); 1005 printk(VIOTAPE_KERN_WARN "couldn't allocate op structs\n");
diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c
index d6f4f185bf37..2194b567239f 100644
--- a/drivers/net/iseries_veth.c
+++ b/drivers/net/iseries_veth.c
@@ -73,7 +73,7 @@
73#include <asm/abs_addr.h> 73#include <asm/abs_addr.h>
74#include <asm/iseries/mf.h> 74#include <asm/iseries/mf.h>
75#include <asm/uaccess.h> 75#include <asm/uaccess.h>
76 76#include <asm/firmware.h>
77#include <asm/iseries/hv_lp_config.h> 77#include <asm/iseries/hv_lp_config.h>
78#include <asm/iseries/hv_types.h> 78#include <asm/iseries/hv_types.h>
79#include <asm/iseries/hv_lp_event.h> 79#include <asm/iseries/hv_lp_event.h>
@@ -1668,7 +1668,7 @@ static struct vio_driver veth_driver = {
1668 * Module initialization/cleanup 1668 * Module initialization/cleanup
1669 */ 1669 */
1670 1670
1671void __exit veth_module_cleanup(void) 1671static void __exit veth_module_cleanup(void)
1672{ 1672{
1673 int i; 1673 int i;
1674 struct veth_lpar_connection *cnx; 1674 struct veth_lpar_connection *cnx;
@@ -1697,11 +1697,14 @@ void __exit veth_module_cleanup(void)
1697} 1697}
1698module_exit(veth_module_cleanup); 1698module_exit(veth_module_cleanup);
1699 1699
1700int __init veth_module_init(void) 1700static int __init veth_module_init(void)
1701{ 1701{
1702 int i; 1702 int i;
1703 int rc; 1703 int rc;
1704 1704
1705 if (!firmware_has_feature(FW_FEATURE_ISERIES))
1706 return -ENODEV;
1707
1705 this_lp = HvLpConfig_getLpIndex_outline(); 1708 this_lp = HvLpConfig_getLpIndex_outline();
1706 1709
1707 for (i = 0; i < HVMAXARCHITECTEDLPS; ++i) { 1710 for (i = 0; i < HVMAXARCHITECTEDLPS; ++i) {
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h
index fdad4267b447..3d90264e9d36 100644
--- a/include/asm-powerpc/spu.h
+++ b/include/asm-powerpc/spu.h
@@ -161,6 +161,7 @@ struct spu_syscall_block {
161extern long spu_sys_callback(struct spu_syscall_block *s); 161extern long spu_sys_callback(struct spu_syscall_block *s);
162 162
163/* syscalls implemented in spufs */ 163/* syscalls implemented in spufs */
164struct file;
164extern struct spufs_calls { 165extern struct spufs_calls {
165 asmlinkage long (*create_thread)(const char __user *name, 166 asmlinkage long (*create_thread)(const char __user *name,
166 unsigned int flags, mode_t mode); 167 unsigned int flags, mode_t mode);
@@ -232,6 +233,7 @@ void spu_remove_sysdev_attr_group(struct attribute_group *attrs);
232 * to object-id spufs file from user space and the notifer 233 * to object-id spufs file from user space and the notifer
233 * function can assume that spu->ctx is valid. 234 * function can assume that spu->ctx is valid.
234 */ 235 */
236struct notifier_block;
235int spu_switch_event_register(struct notifier_block * n); 237int spu_switch_event_register(struct notifier_block * n);
236int spu_switch_event_unregister(struct notifier_block * n); 238int spu_switch_event_unregister(struct notifier_block * n);
237 239