aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/powerpc/mpc52xx-device-tree-bindings.txt11
-rw-r--r--arch/powerpc/boot/dts/mpc8610_hpcd.dts23
-rw-r--r--arch/powerpc/configs/ps3_defconfig132
-rw-r--r--arch/powerpc/kernel/smp.c2
-rw-r--r--arch/powerpc/mm/slb.c27
-rw-r--r--arch/powerpc/platforms/ps3/interrupt.c6
-rw-r--r--arch/powerpc/sysdev/fsl_rio.c9
-rw-r--r--arch/powerpc/sysdev/fsl_soc.c4
-rw-r--r--arch/powerpc/sysdev/xilinx_intc.c2
-rw-r--r--drivers/char/xilinx_hwicap/xilinx_hwicap.c6
-rw-r--r--drivers/net/fec_mpc52xx.c97
-rw-r--r--drivers/net/fec_mpc52xx.h19
-rw-r--r--drivers/ps3/ps3-lpm.c1
-rw-r--r--drivers/ps3/ps3-sys-manager.c7
-rw-r--r--drivers/serial/mpc52xx_uart.c2
-rw-r--r--include/asm-powerpc/ps3.h3
-rw-r--r--include/linux/rio.h2
17 files changed, 231 insertions, 122 deletions
diff --git a/Documentation/powerpc/mpc52xx-device-tree-bindings.txt b/Documentation/powerpc/mpc52xx-device-tree-bindings.txt
index cda7a7dffa6d..6f12f1c79c0c 100644
--- a/Documentation/powerpc/mpc52xx-device-tree-bindings.txt
+++ b/Documentation/powerpc/mpc52xx-device-tree-bindings.txt
@@ -237,6 +237,17 @@ Each GPIO controller node should have the empty property gpio-controller and
237according to the bit numbers in the GPIO control registers. The second cell 237according to the bit numbers in the GPIO control registers. The second cell
238is for flags which is currently unsused. 238is for flags which is currently unsused.
239 239
2408) FEC nodes
241The FEC node can specify one of the following properties to configure
242the MII link:
243"fsl,7-wire-mode" - An empty property that specifies the link uses 7-wire
244 mode instead of MII
245"current-speed" - Specifies that the MII should be configured for a fixed
246 speed. This property should contain two cells. The
247 first cell specifies the speed in Mbps and the second
248 should be '0' for half duplex and '1' for full duplex
249"phy-handle" - Contains a phandle to an Ethernet PHY.
250
240IV - Extra Notes 251IV - Extra Notes
241================ 252================
242 253
diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
index 1f2f1e0a5571..bba234eb14a9 100644
--- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts
+++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
@@ -21,6 +21,7 @@
21 serial1 = &serial1; 21 serial1 = &serial1;
22 pci0 = &pci0; 22 pci0 = &pci0;
23 pci1 = &pci1; 23 pci1 = &pci1;
24 pci2 = &pci2;
24 }; 25 };
25 26
26 cpus { 27 cpus {
@@ -105,7 +106,7 @@
105 compatible = "ns16550"; 106 compatible = "ns16550";
106 reg = <0x4600 0x100>; 107 reg = <0x4600 0x100>;
107 clock-frequency = <0>; 108 clock-frequency = <0>;
108 interrupts = <28 2>; 109 interrupts = <42 2>;
109 interrupt-parent = <&mpic>; 110 interrupt-parent = <&mpic>;
110 }; 111 };
111 112
@@ -322,4 +323,24 @@
322 }; 323 };
323 }; 324 };
324 }; 325 };
326
327 pci2: pcie@e0009000 {
328 #address-cells = <3>;
329 #size-cells = <2>;
330 #interrupt-cells = <1>;
331 device_type = "pci";
332 compatible = "fsl,mpc8641-pcie";
333 reg = <0xe0009000 0x00001000>;
334 ranges = <0x02000000 0 0x90000000 0x90000000 0 0x10000000
335 0x01000000 0 0x00000000 0xe2000000 0 0x00100000>;
336 bus-range = <0 255>;
337 interrupt-map-mask = <0xf800 0 0 7>;
338 interrupt-map = <0x0000 0 0 1 &mpic 4 1
339 0x0000 0 0 2 &mpic 5 1
340 0x0000 0 0 3 &mpic 6 1
341 0x0000 0 0 4 &mpic 7 1>;
342 interrupt-parent = <&mpic>;
343 interrupts = <25 2>;
344 clock-frequency = <33333333>;
345 };
325}; 346};
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index 7a64c564f6e6..71d79e428d20 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_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.25-rc6 3# Linux kernel version: 2.6.25
4# Thu Mar 20 11:07:04 2008 4# Mon Apr 28 12:39:10 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -30,6 +30,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y 31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
32CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y
34CONFIG_TRACE_IRQFLAGS_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
35CONFIG_ARCH_HAS_ILOG2_U64=y 38CONFIG_ARCH_HAS_ILOG2_U64=y
@@ -73,8 +76,6 @@ CONFIG_POSIX_MQUEUE=y
73CONFIG_LOG_BUF_SHIFT=17 76CONFIG_LOG_BUF_SHIFT=17
74# CONFIG_CGROUPS is not set 77# CONFIG_CGROUPS is not set
75# CONFIG_GROUP_SCHED is not set 78# CONFIG_GROUP_SCHED is not set
76# CONFIG_USER_SCHED is not set
77# CONFIG_CGROUP_SCHED is not set
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
79CONFIG_SYSFS_DEPRECATED_V2=y 80CONFIG_SYSFS_DEPRECATED_V2=y
80# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
@@ -161,7 +162,6 @@ CONFIG_PPC_MULTIPLATFORM=y
161# CONFIG_PPC_PMAC is not set 162# CONFIG_PPC_PMAC is not set
162# CONFIG_PPC_MAPLE is not set 163# CONFIG_PPC_MAPLE is not set
163# CONFIG_PPC_PASEMI is not set 164# CONFIG_PPC_PASEMI is not set
164# CONFIG_PPC_CELLEB is not set
165CONFIG_PPC_PS3=y 165CONFIG_PPC_PS3=y
166 166
167# 167#
@@ -181,6 +181,7 @@ CONFIG_PS3_LPM=m
181CONFIG_PPC_CELL=y 181CONFIG_PPC_CELL=y
182# CONFIG_PPC_CELL_NATIVE is not set 182# CONFIG_PPC_CELL_NATIVE is not set
183# CONFIG_PPC_IBM_CELL_BLADE is not set 183# CONFIG_PPC_IBM_CELL_BLADE is not set
184# CONFIG_PPC_CELLEB is not set
184 185
185# 186#
186# Cell Broadband Engine options 187# Cell Broadband Engine options
@@ -205,9 +206,9 @@ CONFIG_SPU_BASE=y
205# 206#
206# Kernel options 207# Kernel options
207# 208#
208# CONFIG_TICK_ONESHOT is not set 209CONFIG_TICK_ONESHOT=y
209# CONFIG_NO_HZ is not set 210# CONFIG_NO_HZ is not set
210# CONFIG_HIGH_RES_TIMERS is not set 211CONFIG_HIGH_RES_TIMERS=y
211CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 212CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
212# CONFIG_HZ_100 is not set 213# CONFIG_HZ_100 is not set
213CONFIG_HZ_250=y 214CONFIG_HZ_250=y
@@ -221,7 +222,6 @@ CONFIG_PREEMPT_NONE=y
221CONFIG_BINFMT_ELF=y 222CONFIG_BINFMT_ELF=y
222CONFIG_COMPAT_BINFMT_ELF=y 223CONFIG_COMPAT_BINFMT_ELF=y
223CONFIG_BINFMT_MISC=y 224CONFIG_BINFMT_MISC=y
224CONFIG_FORCE_MAX_ZONEORDER=13
225# CONFIG_IOMMU_VMERGE is not set 225# CONFIG_IOMMU_VMERGE is not set
226CONFIG_IOMMU_HELPER=y 226CONFIG_IOMMU_HELPER=y
227CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -255,6 +255,7 @@ CONFIG_BOUNCE=y
255CONFIG_ARCH_MEMORY_PROBE=y 255CONFIG_ARCH_MEMORY_PROBE=y
256# CONFIG_PPC_HAS_HASH_64K is not set 256# CONFIG_PPC_HAS_HASH_64K is not set
257# CONFIG_PPC_64K_PAGES is not set 257# CONFIG_PPC_64K_PAGES is not set
258CONFIG_FORCE_MAX_ZONEORDER=13
258# CONFIG_SCHED_SMT is not set 259# CONFIG_SCHED_SMT is not set
259CONFIG_PROC_DEVICETREE=y 260CONFIG_PROC_DEVICETREE=y
260# CONFIG_CMDLINE_BOOL is not set 261# CONFIG_CMDLINE_BOOL is not set
@@ -272,7 +273,9 @@ CONFIG_GENERIC_ISA_DMA=y
272# CONFIG_PCI_SYSCALL is not set 273# CONFIG_PCI_SYSCALL is not set
273# CONFIG_ARCH_SUPPORTS_MSI is not set 274# CONFIG_ARCH_SUPPORTS_MSI is not set
274# CONFIG_PCCARD is not set 275# CONFIG_PCCARD is not set
276CONFIG_PAGE_OFFSET=0xc000000000000000
275CONFIG_KERNEL_START=0xc000000000000000 277CONFIG_KERNEL_START=0xc000000000000000
278CONFIG_PHYSICAL_START=0x00000000
276 279
277# 280#
278# Networking 281# Networking
@@ -292,7 +295,7 @@ CONFIG_XFRM=y
292# CONFIG_XFRM_STATISTICS is not set 295# CONFIG_XFRM_STATISTICS is not set
293# CONFIG_NET_KEY is not set 296# CONFIG_NET_KEY is not set
294CONFIG_INET=y 297CONFIG_INET=y
295# CONFIG_IP_MULTICAST is not set 298CONFIG_IP_MULTICAST=y
296# CONFIG_IP_ADVANCED_ROUTER is not set 299# CONFIG_IP_ADVANCED_ROUTER is not set
297CONFIG_IP_FIB_HASH=y 300CONFIG_IP_FIB_HASH=y
298CONFIG_IP_PNP=y 301CONFIG_IP_PNP=y
@@ -301,6 +304,7 @@ CONFIG_IP_PNP_DHCP=y
301# CONFIG_IP_PNP_RARP is not set 304# CONFIG_IP_PNP_RARP is not set
302# CONFIG_NET_IPIP is not set 305# CONFIG_NET_IPIP is not set
303# CONFIG_NET_IPGRE is not set 306# CONFIG_NET_IPGRE is not set
307# CONFIG_IP_MROUTE is not set
304# CONFIG_ARPD is not set 308# CONFIG_ARPD is not set
305# CONFIG_SYN_COOKIES is not set 309# CONFIG_SYN_COOKIES is not set
306# CONFIG_INET_AH is not set 310# CONFIG_INET_AH is not set
@@ -332,8 +336,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
332CONFIG_INET6_XFRM_MODE_BEET=y 336CONFIG_INET6_XFRM_MODE_BEET=y
333# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 337# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
334CONFIG_IPV6_SIT=y 338CONFIG_IPV6_SIT=y
339CONFIG_IPV6_NDISC_NODETYPE=y
335# CONFIG_IPV6_TUNNEL is not set 340# CONFIG_IPV6_TUNNEL is not set
336# CONFIG_IPV6_MULTIPLE_TABLES is not set 341# CONFIG_IPV6_MULTIPLE_TABLES is not set
342# CONFIG_IPV6_MROUTE is not set
337# CONFIG_NETWORK_SECMARK is not set 343# CONFIG_NETWORK_SECMARK is not set
338# CONFIG_NETFILTER is not set 344# CONFIG_NETFILTER is not set
339# CONFIG_IP_DCCP is not set 345# CONFIG_IP_DCCP is not set
@@ -392,8 +398,6 @@ CONFIG_IEEE80211=m
392CONFIG_IEEE80211_CRYPT_WEP=m 398CONFIG_IEEE80211_CRYPT_WEP=m
393CONFIG_IEEE80211_CRYPT_CCMP=m 399CONFIG_IEEE80211_CRYPT_CCMP=m
394CONFIG_IEEE80211_CRYPT_TKIP=m 400CONFIG_IEEE80211_CRYPT_TKIP=m
395CONFIG_IEEE80211_SOFTMAC=m
396# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
397# CONFIG_RFKILL is not set 401# CONFIG_RFKILL is not set
398# CONFIG_NET_9P is not set 402# CONFIG_NET_9P is not set
399 403
@@ -507,6 +511,7 @@ CONFIG_WLAN_80211=y
507# CONFIG_LIBERTAS is not set 511# CONFIG_LIBERTAS is not set
508# CONFIG_USB_ZD1201 is not set 512# CONFIG_USB_ZD1201 is not set
509# CONFIG_USB_NET_RNDIS_WLAN is not set 513# CONFIG_USB_NET_RNDIS_WLAN is not set
514# CONFIG_IWLWIFI_LEDS is not set
510# CONFIG_HOSTAP is not set 515# CONFIG_HOSTAP is not set
511 516
512# 517#
@@ -578,6 +583,7 @@ CONFIG_INPUT_JOYSTICK=y
578# CONFIG_JOYSTICK_SPACEBALL is not set 583# CONFIG_JOYSTICK_SPACEBALL is not set
579# CONFIG_JOYSTICK_STINGER is not set 584# CONFIG_JOYSTICK_STINGER is not set
580# CONFIG_JOYSTICK_TWIDJOY is not set 585# CONFIG_JOYSTICK_TWIDJOY is not set
586# CONFIG_JOYSTICK_ZHENHUA is not set
581# CONFIG_JOYSTICK_JOYDUMP is not set 587# CONFIG_JOYSTICK_JOYDUMP is not set
582# CONFIG_JOYSTICK_XPAD is not set 588# CONFIG_JOYSTICK_XPAD is not set
583# CONFIG_INPUT_TABLET is not set 589# CONFIG_INPUT_TABLET is not set
@@ -641,6 +647,7 @@ CONFIG_SSB_POSSIBLE=y
641# Multifunction device drivers 647# Multifunction device drivers
642# 648#
643# CONFIG_MFD_SM501 is not set 649# CONFIG_MFD_SM501 is not set
650# CONFIG_HTC_PASIC3 is not set
644 651
645# 652#
646# Multimedia devices 653# Multimedia devices
@@ -761,10 +768,6 @@ CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
761# CONFIG_SND_SOC is not set 768# CONFIG_SND_SOC is not set
762 769
763# 770#
764# SoC Audio support for SuperH
765#
766
767#
768# ALSA SoC audio for Freescale SOCs 771# ALSA SoC audio for Freescale SOCs
769# 772#
770 773
@@ -849,6 +852,7 @@ CONFIG_USB_STORAGE=m
849# CONFIG_USB_STORAGE_ALAUDA is not set 852# CONFIG_USB_STORAGE_ALAUDA is not set
850# CONFIG_USB_STORAGE_ONETOUCH is not set 853# CONFIG_USB_STORAGE_ONETOUCH is not set
851# CONFIG_USB_STORAGE_KARMA is not set 854# CONFIG_USB_STORAGE_KARMA is not set
855# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
852# CONFIG_USB_LIBUSUAL is not set 856# CONFIG_USB_LIBUSUAL is not set
853 857
854# 858#
@@ -893,10 +897,6 @@ CONFIG_USB_MON=y
893# CONFIG_EDAC is not set 897# CONFIG_EDAC is not set
894# CONFIG_RTC_CLASS is not set 898# CONFIG_RTC_CLASS is not set
895# CONFIG_DMADEVICES is not set 899# CONFIG_DMADEVICES is not set
896
897#
898# Userspace I/O
899#
900# CONFIG_UIO is not set 900# CONFIG_UIO is not set
901 901
902# 902#
@@ -986,7 +986,6 @@ CONFIG_NFS_FS=y
986CONFIG_NFS_V3=y 986CONFIG_NFS_V3=y
987# CONFIG_NFS_V3_ACL is not set 987# CONFIG_NFS_V3_ACL is not set
988CONFIG_NFS_V4=y 988CONFIG_NFS_V4=y
989# CONFIG_NFS_DIRECTIO is not set
990# CONFIG_NFSD is not set 989# CONFIG_NFSD is not set
991CONFIG_ROOT_NFS=y 990CONFIG_ROOT_NFS=y
992CONFIG_LOCKD=y 991CONFIG_LOCKD=y
@@ -1059,9 +1058,10 @@ CONFIG_NLS_ISO8859_1=y
1059# Library routines 1058# Library routines
1060# 1059#
1061CONFIG_BITREVERSE=y 1060CONFIG_BITREVERSE=y
1061# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1062# CONFIG_CRC_CCITT is not set 1062# CONFIG_CRC_CCITT is not set
1063# CONFIG_CRC16 is not set 1063# CONFIG_CRC16 is not set
1064# CONFIG_CRC_ITU_T is not set 1064CONFIG_CRC_ITU_T=m
1065CONFIG_CRC32=y 1065CONFIG_CRC32=y
1066# CONFIG_CRC7 is not set 1066# CONFIG_CRC7 is not set
1067# CONFIG_LIBCRC32C is not set 1067# CONFIG_LIBCRC32C is not set
@@ -1071,6 +1071,7 @@ CONFIG_PLIST=y
1071CONFIG_HAS_IOMEM=y 1071CONFIG_HAS_IOMEM=y
1072CONFIG_HAS_IOPORT=y 1072CONFIG_HAS_IOPORT=y
1073CONFIG_HAS_DMA=y 1073CONFIG_HAS_DMA=y
1074CONFIG_HAVE_LMB=y
1074 1075
1075# 1076#
1076# Kernel hacking 1077# Kernel hacking
@@ -1078,6 +1079,7 @@ CONFIG_HAS_DMA=y
1078# CONFIG_PRINTK_TIME is not set 1079# CONFIG_PRINTK_TIME is not set
1079CONFIG_ENABLE_WARN_DEPRECATED=y 1080CONFIG_ENABLE_WARN_DEPRECATED=y
1080CONFIG_ENABLE_MUST_CHECK=y 1081CONFIG_ENABLE_MUST_CHECK=y
1082CONFIG_FRAME_WARN=2048
1081CONFIG_MAGIC_SYSRQ=y 1083CONFIG_MAGIC_SYSRQ=y
1082# CONFIG_UNUSED_SYMBOLS is not set 1084# CONFIG_UNUSED_SYMBOLS is not set
1083# CONFIG_DEBUG_FS is not set 1085# CONFIG_DEBUG_FS is not set
@@ -1093,12 +1095,16 @@ CONFIG_SCHED_DEBUG=y
1093# CONFIG_RT_MUTEX_TESTER is not set 1095# CONFIG_RT_MUTEX_TESTER is not set
1094CONFIG_DEBUG_SPINLOCK=y 1096CONFIG_DEBUG_SPINLOCK=y
1095CONFIG_DEBUG_MUTEXES=y 1097CONFIG_DEBUG_MUTEXES=y
1098# CONFIG_DEBUG_LOCK_ALLOC is not set
1099# CONFIG_PROVE_LOCKING is not set
1100# CONFIG_LOCK_STAT is not set
1096CONFIG_DEBUG_SPINLOCK_SLEEP=y 1101CONFIG_DEBUG_SPINLOCK_SLEEP=y
1097# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1102# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1098# CONFIG_DEBUG_KOBJECT is not set 1103# CONFIG_DEBUG_KOBJECT is not set
1099CONFIG_DEBUG_BUGVERBOSE=y 1104CONFIG_DEBUG_BUGVERBOSE=y
1100CONFIG_DEBUG_INFO=y 1105CONFIG_DEBUG_INFO=y
1101# CONFIG_DEBUG_VM is not set 1106# CONFIG_DEBUG_VM is not set
1107# CONFIG_DEBUG_WRITECOUNT is not set
1102CONFIG_DEBUG_LIST=y 1108CONFIG_DEBUG_LIST=y
1103# CONFIG_DEBUG_SG is not set 1109# CONFIG_DEBUG_SG is not set
1104# CONFIG_BOOT_PRINTK_DELAY is not set 1110# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1121,51 +1127,81 @@ CONFIG_IRQSTACKS=y
1121# CONFIG_SECURITY is not set 1127# CONFIG_SECURITY is not set
1122# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1128# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1123CONFIG_CRYPTO=y 1129CONFIG_CRYPTO=y
1130
1131#
1132# Crypto core or helper
1133#
1124CONFIG_CRYPTO_ALGAPI=y 1134CONFIG_CRYPTO_ALGAPI=y
1125CONFIG_CRYPTO_AEAD=m 1135CONFIG_CRYPTO_AEAD=m
1126CONFIG_CRYPTO_BLKCIPHER=y 1136CONFIG_CRYPTO_BLKCIPHER=y
1127CONFIG_CRYPTO_SEQIV=m
1128CONFIG_CRYPTO_MANAGER=y 1137CONFIG_CRYPTO_MANAGER=y
1138CONFIG_CRYPTO_GF128MUL=m
1139# CONFIG_CRYPTO_NULL is not set
1140# CONFIG_CRYPTO_CRYPTD is not set
1141# CONFIG_CRYPTO_AUTHENC is not set
1142# CONFIG_CRYPTO_TEST is not set
1143
1144#
1145# Authenticated Encryption with Associated Data
1146#
1147CONFIG_CRYPTO_CCM=m
1148CONFIG_CRYPTO_GCM=m
1149CONFIG_CRYPTO_SEQIV=m
1150
1151#
1152# Block modes
1153#
1154CONFIG_CRYPTO_CBC=y
1155CONFIG_CRYPTO_CTR=m
1156# CONFIG_CRYPTO_CTS is not set
1157CONFIG_CRYPTO_ECB=m
1158# CONFIG_CRYPTO_LRW is not set
1159CONFIG_CRYPTO_PCBC=m
1160# CONFIG_CRYPTO_XTS is not set
1161
1162#
1163# Hash modes
1164#
1129# CONFIG_CRYPTO_HMAC is not set 1165# CONFIG_CRYPTO_HMAC is not set
1130# CONFIG_CRYPTO_XCBC is not set 1166# CONFIG_CRYPTO_XCBC is not set
1131# CONFIG_CRYPTO_NULL is not set 1167
1168#
1169# Digest
1170#
1171# CONFIG_CRYPTO_CRC32C is not set
1132# CONFIG_CRYPTO_MD4 is not set 1172# CONFIG_CRYPTO_MD4 is not set
1133CONFIG_CRYPTO_MD5=y 1173CONFIG_CRYPTO_MD5=y
1174CONFIG_CRYPTO_MICHAEL_MIC=m
1134# CONFIG_CRYPTO_SHA1 is not set 1175# CONFIG_CRYPTO_SHA1 is not set
1135# CONFIG_CRYPTO_SHA256 is not set 1176# CONFIG_CRYPTO_SHA256 is not set
1136# CONFIG_CRYPTO_SHA512 is not set 1177# CONFIG_CRYPTO_SHA512 is not set
1137# CONFIG_CRYPTO_WP512 is not set
1138# CONFIG_CRYPTO_TGR192 is not set 1178# CONFIG_CRYPTO_TGR192 is not set
1139CONFIG_CRYPTO_GF128MUL=m 1179# CONFIG_CRYPTO_WP512 is not set
1140CONFIG_CRYPTO_ECB=m 1180
1141CONFIG_CRYPTO_CBC=y 1181#
1142CONFIG_CRYPTO_PCBC=m 1182# Ciphers
1143# CONFIG_CRYPTO_LRW is not set 1183#
1144# CONFIG_CRYPTO_XTS is not set
1145CONFIG_CRYPTO_CTR=m
1146CONFIG_CRYPTO_GCM=m
1147CONFIG_CRYPTO_CCM=m
1148# CONFIG_CRYPTO_CRYPTD is not set
1149CONFIG_CRYPTO_DES=y
1150# CONFIG_CRYPTO_FCRYPT is not set
1151# CONFIG_CRYPTO_BLOWFISH is not set
1152# CONFIG_CRYPTO_TWOFISH is not set
1153# CONFIG_CRYPTO_SERPENT is not set
1154CONFIG_CRYPTO_AES=m 1184CONFIG_CRYPTO_AES=m
1185# CONFIG_CRYPTO_ANUBIS is not set
1186CONFIG_CRYPTO_ARC4=m
1187# CONFIG_CRYPTO_BLOWFISH is not set
1188# CONFIG_CRYPTO_CAMELLIA is not set
1155# CONFIG_CRYPTO_CAST5 is not set 1189# CONFIG_CRYPTO_CAST5 is not set
1156# CONFIG_CRYPTO_CAST6 is not set 1190# CONFIG_CRYPTO_CAST6 is not set
1157# CONFIG_CRYPTO_TEA is not set 1191CONFIG_CRYPTO_DES=y
1158CONFIG_CRYPTO_ARC4=m 1192# CONFIG_CRYPTO_FCRYPT is not set
1159# CONFIG_CRYPTO_KHAZAD is not set 1193# CONFIG_CRYPTO_KHAZAD is not set
1160# CONFIG_CRYPTO_ANUBIS is not set
1161# CONFIG_CRYPTO_SEED is not set
1162CONFIG_CRYPTO_SALSA20=m 1194CONFIG_CRYPTO_SALSA20=m
1195# CONFIG_CRYPTO_SEED is not set
1196# CONFIG_CRYPTO_SERPENT is not set
1197# CONFIG_CRYPTO_TEA is not set
1198# CONFIG_CRYPTO_TWOFISH is not set
1199
1200#
1201# Compression
1202#
1163# CONFIG_CRYPTO_DEFLATE is not set 1203# CONFIG_CRYPTO_DEFLATE is not set
1164CONFIG_CRYPTO_MICHAEL_MIC=m
1165# CONFIG_CRYPTO_CRC32C is not set
1166# CONFIG_CRYPTO_CAMELLIA is not set
1167# CONFIG_CRYPTO_TEST is not set
1168# CONFIG_CRYPTO_AUTHENC is not set
1169CONFIG_CRYPTO_LZO=m 1204CONFIG_CRYPTO_LZO=m
1170CONFIG_CRYPTO_HW=y 1205CONFIG_CRYPTO_HW=y
1171# CONFIG_PPC_CLOCK is not set 1206# CONFIG_PPC_CLOCK is not set
1207# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index be35ffae10f0..1457aa0a08f1 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -386,6 +386,8 @@ static void __init smp_create_idle(unsigned int cpu)
386 panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p)); 386 panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p));
387#ifdef CONFIG_PPC64 387#ifdef CONFIG_PPC64
388 paca[cpu].__current = p; 388 paca[cpu].__current = p;
389 paca[cpu].kstack = (unsigned long) task_thread_info(p)
390 + THREAD_SIZE - STACK_FRAME_OVERHEAD;
389#endif 391#endif
390 current_set[cpu] = task_thread_info(p); 392 current_set[cpu] = task_thread_info(p);
391 task_thread_info(p)->cpu = cpu; 393 task_thread_info(p)->cpu = cpu;
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c
index 906daeda59a8..cf8705e32d60 100644
--- a/arch/powerpc/mm/slb.c
+++ b/arch/powerpc/mm/slb.c
@@ -30,7 +30,7 @@
30#ifdef DEBUG 30#ifdef DEBUG
31#define DBG(fmt...) udbg_printf(fmt) 31#define DBG(fmt...) udbg_printf(fmt)
32#else 32#else
33#define DBG(fmt...) 33#define DBG pr_debug
34#endif 34#endif
35 35
36extern void slb_allocate_realmode(unsigned long ea); 36extern void slb_allocate_realmode(unsigned long ea);
@@ -44,13 +44,13 @@ static void slb_allocate(unsigned long ea)
44 slb_allocate_realmode(ea); 44 slb_allocate_realmode(ea);
45} 45}
46 46
47#define slb_esid_mask(ssize) \
48 (((ssize) == MMU_SEGSIZE_256M)? ESID_MASK: ESID_MASK_1T)
49
47static inline unsigned long mk_esid_data(unsigned long ea, int ssize, 50static inline unsigned long mk_esid_data(unsigned long ea, int ssize,
48 unsigned long slot) 51 unsigned long slot)
49{ 52{
50 unsigned long mask; 53 return (ea & slb_esid_mask(ssize)) | SLB_ESID_V | slot;
51
52 mask = (ssize == MMU_SEGSIZE_256M)? ESID_MASK: ESID_MASK_1T;
53 return (ea & mask) | SLB_ESID_V | slot;
54} 54}
55 55
56#define slb_vsid_shift(ssize) \ 56#define slb_vsid_shift(ssize) \
@@ -279,8 +279,8 @@ void slb_initialize(void)
279 patch_slb_encoding(slb_compare_rr_to_size, 279 patch_slb_encoding(slb_compare_rr_to_size,
280 mmu_slb_size); 280 mmu_slb_size);
281 281
282 DBG("SLB: linear LLP = %04x\n", linear_llp); 282 DBG("SLB: linear LLP = %04lx\n", linear_llp);
283 DBG("SLB: io LLP = %04x\n", io_llp); 283 DBG("SLB: io LLP = %04lx\n", io_llp);
284 } 284 }
285 285
286 get_paca()->stab_rr = SLB_NUM_BOLTED; 286 get_paca()->stab_rr = SLB_NUM_BOLTED;
@@ -301,11 +301,16 @@ void slb_initialize(void)
301 301
302 create_shadowed_slbe(VMALLOC_START, mmu_kernel_ssize, vflags, 1); 302 create_shadowed_slbe(VMALLOC_START, mmu_kernel_ssize, vflags, 1);
303 303
304 /* For the boot cpu, we're running on the stack in init_thread_union,
305 * which is in the first segment of the linear mapping, and also
306 * get_paca()->kstack hasn't been initialized yet.
307 * For secondary cpus, we need to bolt the kernel stack entry now.
308 */
304 slb_shadow_clear(2); 309 slb_shadow_clear(2);
310 if (raw_smp_processor_id() != boot_cpuid &&
311 (get_paca()->kstack & slb_esid_mask(mmu_kernel_ssize)) > PAGE_OFFSET)
312 create_shadowed_slbe(get_paca()->kstack,
313 mmu_kernel_ssize, lflags, 2);
305 314
306 /* We don't bolt the stack for the time being - we're in boot,
307 * so the stack is in the bolted segment. By the time it goes
308 * elsewhere, we'll call _switch() which will bolt in the new
309 * one. */
310 asm volatile("isync":::"memory"); 315 asm volatile("isync":::"memory");
311} 316}
diff --git a/arch/powerpc/platforms/ps3/interrupt.c b/arch/powerpc/platforms/ps3/interrupt.c
index a14e5cdc2fed..e59634f7af96 100644
--- a/arch/powerpc/platforms/ps3/interrupt.c
+++ b/arch/powerpc/platforms/ps3/interrupt.c
@@ -167,8 +167,8 @@ static struct irq_chip ps3_irq_chip = {
167 * ps3_private data. 167 * ps3_private data.
168 */ 168 */
169 169
170int ps3_virq_setup(enum ps3_cpu_binding cpu, unsigned long outlet, 170static int ps3_virq_setup(enum ps3_cpu_binding cpu, unsigned long outlet,
171 unsigned int *virq) 171 unsigned int *virq)
172{ 172{
173 int result; 173 int result;
174 struct ps3_private *pd; 174 struct ps3_private *pd;
@@ -217,7 +217,7 @@ fail_create:
217 * Clears chip data and calls irq_dispose_mapping() for the virq. 217 * Clears chip data and calls irq_dispose_mapping() for the virq.
218 */ 218 */
219 219
220int ps3_virq_destroy(unsigned int virq) 220static int ps3_virq_destroy(unsigned int virq)
221{ 221{
222 const struct ps3_private *pd = get_irq_chip_data(virq); 222 const struct ps3_private *pd = get_irq_chip_data(virq);
223 223
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c
index 3d920376f58e..a0fa4ebb39c6 100644
--- a/arch/powerpc/sysdev/fsl_rio.c
+++ b/arch/powerpc/sysdev/fsl_rio.c
@@ -176,6 +176,7 @@ struct rio_priv {
176 176
177/** 177/**
178 * fsl_rio_doorbell_send - Send a MPC85xx doorbell message 178 * fsl_rio_doorbell_send - Send a MPC85xx doorbell message
179 * @mport: RapidIO master port info
179 * @index: ID of RapidIO interface 180 * @index: ID of RapidIO interface
180 * @destid: Destination ID of target device 181 * @destid: Destination ID of target device
181 * @data: 16-bit info field of RapidIO doorbell message 182 * @data: 16-bit info field of RapidIO doorbell message
@@ -211,6 +212,7 @@ static int fsl_rio_doorbell_send(struct rio_mport *mport,
211 212
212/** 213/**
213 * fsl_local_config_read - Generate a MPC85xx local config space read 214 * fsl_local_config_read - Generate a MPC85xx local config space read
215 * @mport: RapidIO master port info
214 * @index: ID of RapdiIO interface 216 * @index: ID of RapdiIO interface
215 * @offset: Offset into configuration space 217 * @offset: Offset into configuration space
216 * @len: Length (in bytes) of the maintenance transaction 218 * @len: Length (in bytes) of the maintenance transaction
@@ -232,6 +234,7 @@ static int fsl_local_config_read(struct rio_mport *mport,
232 234
233/** 235/**
234 * fsl_local_config_write - Generate a MPC85xx local config space write 236 * fsl_local_config_write - Generate a MPC85xx local config space write
237 * @mport: RapidIO master port info
235 * @index: ID of RapdiIO interface 238 * @index: ID of RapdiIO interface
236 * @offset: Offset into configuration space 239 * @offset: Offset into configuration space
237 * @len: Length (in bytes) of the maintenance transaction 240 * @len: Length (in bytes) of the maintenance transaction
@@ -254,6 +257,7 @@ static int fsl_local_config_write(struct rio_mport *mport,
254 257
255/** 258/**
256 * fsl_rio_config_read - Generate a MPC85xx read maintenance transaction 259 * fsl_rio_config_read - Generate a MPC85xx read maintenance transaction
260 * @mport: RapidIO master port info
257 * @index: ID of RapdiIO interface 261 * @index: ID of RapdiIO interface
258 * @destid: Destination ID of transaction 262 * @destid: Destination ID of transaction
259 * @hopcount: Number of hops to target device 263 * @hopcount: Number of hops to target device
@@ -295,6 +299,7 @@ fsl_rio_config_read(struct rio_mport *mport, int index, u16 destid,
295 299
296/** 300/**
297 * fsl_rio_config_write - Generate a MPC85xx write maintenance transaction 301 * fsl_rio_config_write - Generate a MPC85xx write maintenance transaction
302 * @mport: RapidIO master port info
298 * @index: ID of RapdiIO interface 303 * @index: ID of RapdiIO interface
299 * @destid: Destination ID of transaction 304 * @destid: Destination ID of transaction
300 * @hopcount: Number of hops to target device 305 * @hopcount: Number of hops to target device
@@ -985,8 +990,8 @@ static inline void fsl_rio_info(struct device *dev, u32 ccsr)
985} 990}
986 991
987/** 992/**
988 * fsl_rio_setup - Setup MPC85xx RapidIO interface 993 * fsl_rio_setup - Setup Freescale PowerPC RapidIO interface
989 * @fsl_rio_setup - Setup Freescale PowerPC RapidIO interface 994 * @dev: of_device pointer
990 * 995 *
991 * Initializes MPC85xx RapidIO hardware interface, configures 996 * Initializes MPC85xx RapidIO hardware interface, configures
992 * master port with system-specific info, and registers the 997 * master port with system-specific info, and registers the
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index 324c01b70ddd..3a7054e2bb75 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -389,8 +389,8 @@ static int __init gfar_of_init(void)
389 } 389 }
390 390
391 gfar_data.phy_id = *id; 391 gfar_data.phy_id = *id;
392 snprintf(gfar_data.bus_id, MII_BUS_ID_SIZE, "%x", 392 snprintf(gfar_data.bus_id, MII_BUS_ID_SIZE, "%llx",
393 res.start); 393 (unsigned long long)res.start);
394 394
395 of_node_put(phy); 395 of_node_put(phy);
396 of_node_put(mdio); 396 of_node_put(mdio);
diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c
index ba8eea2bcce0..b7aefd0d45cb 100644
--- a/arch/powerpc/sysdev/xilinx_intc.c
+++ b/arch/powerpc/sysdev/xilinx_intc.c
@@ -107,7 +107,7 @@ xilinx_intc_init(struct device_node *np)
107 } 107 }
108 regs = ioremap(res.start, 32); 108 regs = ioremap(res.start, 32);
109 109
110 printk(KERN_INFO "Xilinx intc at 0x%08X mapped to 0x%p\n", 110 printk(KERN_INFO "Xilinx intc at 0x%08LX mapped to 0x%p\n",
111 res.start, regs); 111 res.start, regs);
112 112
113 /* Setup interrupt controller */ 113 /* Setup interrupt controller */
diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
index dfe6907ae15b..3edf1fc12963 100644
--- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c
+++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c
@@ -623,8 +623,8 @@ static int __devinit hwicap_setup(struct device *dev, int id,
623 623
624 if (!request_mem_region(drvdata->mem_start, 624 if (!request_mem_region(drvdata->mem_start,
625 drvdata->mem_size, DRIVER_NAME)) { 625 drvdata->mem_size, DRIVER_NAME)) {
626 dev_err(dev, "Couldn't lock memory region at %p\n", 626 dev_err(dev, "Couldn't lock memory region at %Lx\n",
627 (void *)regs_res->start); 627 regs_res->start);
628 retval = -EBUSY; 628 retval = -EBUSY;
629 goto failed1; 629 goto failed1;
630 } 630 }
@@ -643,7 +643,7 @@ static int __devinit hwicap_setup(struct device *dev, int id,
643 mutex_init(&drvdata->sem); 643 mutex_init(&drvdata->sem);
644 drvdata->is_open = 0; 644 drvdata->is_open = 0;
645 645
646 dev_info(dev, "ioremap %lx to %p with size %x\n", 646 dev_info(dev, "ioremap %lx to %p with size %Lx\n",
647 (unsigned long int)drvdata->mem_start, 647 (unsigned long int)drvdata->mem_start,
648 drvdata->base_address, drvdata->mem_size); 648 drvdata->base_address, drvdata->mem_size);
649 649
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index d21b7ab64bd1..5f9c42e7a7f1 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -43,6 +43,29 @@
43 43
44#define DRIVER_NAME "mpc52xx-fec" 44#define DRIVER_NAME "mpc52xx-fec"
45 45
46#define FEC5200_PHYADDR_NONE (-1)
47#define FEC5200_PHYADDR_7WIRE (-2)
48
49/* Private driver data structure */
50struct mpc52xx_fec_priv {
51 int duplex;
52 int speed;
53 int r_irq;
54 int t_irq;
55 struct mpc52xx_fec __iomem *fec;
56 struct bcom_task *rx_dmatsk;
57 struct bcom_task *tx_dmatsk;
58 spinlock_t lock;
59 int msg_enable;
60
61 /* MDIO link details */
62 int phy_addr;
63 unsigned int phy_speed;
64 struct phy_device *phydev;
65 enum phy_state link;
66};
67
68
46static irqreturn_t mpc52xx_fec_interrupt(int, void *); 69static irqreturn_t mpc52xx_fec_interrupt(int, void *);
47static irqreturn_t mpc52xx_fec_rx_interrupt(int, void *); 70static irqreturn_t mpc52xx_fec_rx_interrupt(int, void *);
48static irqreturn_t mpc52xx_fec_tx_interrupt(int, void *); 71static irqreturn_t mpc52xx_fec_tx_interrupt(int, void *);
@@ -223,7 +246,7 @@ static int mpc52xx_fec_phy_start(struct net_device *dev)
223 struct mpc52xx_fec_priv *priv = netdev_priv(dev); 246 struct mpc52xx_fec_priv *priv = netdev_priv(dev);
224 int err; 247 int err;
225 248
226 if (!priv->has_phy) 249 if (priv->phy_addr < 0)
227 return 0; 250 return 0;
228 251
229 err = mpc52xx_fec_init_phy(dev); 252 err = mpc52xx_fec_init_phy(dev);
@@ -243,7 +266,7 @@ static void mpc52xx_fec_phy_stop(struct net_device *dev)
243{ 266{
244 struct mpc52xx_fec_priv *priv = netdev_priv(dev); 267 struct mpc52xx_fec_priv *priv = netdev_priv(dev);
245 268
246 if (!priv->has_phy) 269 if (!priv->phydev)
247 return; 270 return;
248 271
249 phy_disconnect(priv->phydev); 272 phy_disconnect(priv->phydev);
@@ -255,7 +278,7 @@ static void mpc52xx_fec_phy_stop(struct net_device *dev)
255static int mpc52xx_fec_phy_mii_ioctl(struct mpc52xx_fec_priv *priv, 278static int mpc52xx_fec_phy_mii_ioctl(struct mpc52xx_fec_priv *priv,
256 struct mii_ioctl_data *mii_data, int cmd) 279 struct mii_ioctl_data *mii_data, int cmd)
257{ 280{
258 if (!priv->has_phy) 281 if (!priv->phydev)
259 return -ENOTSUPP; 282 return -ENOTSUPP;
260 283
261 return phy_mii_ioctl(priv->phydev, mii_data, cmd); 284 return phy_mii_ioctl(priv->phydev, mii_data, cmd);
@@ -265,7 +288,7 @@ static void mpc52xx_fec_phy_hw_init(struct mpc52xx_fec_priv *priv)
265{ 288{
266 struct mpc52xx_fec __iomem *fec = priv->fec; 289 struct mpc52xx_fec __iomem *fec = priv->fec;
267 290
268 if (!priv->has_phy) 291 if (priv->phydev)
269 return; 292 return;
270 293
271 out_be32(&fec->mii_speed, priv->phy_speed); 294 out_be32(&fec->mii_speed, priv->phy_speed);
@@ -704,7 +727,7 @@ static void mpc52xx_fec_start(struct net_device *dev)
704 rcntrl = FEC_RX_BUFFER_SIZE << 16; /* max frame length */ 727 rcntrl = FEC_RX_BUFFER_SIZE << 16; /* max frame length */
705 rcntrl |= FEC_RCNTRL_FCE; 728 rcntrl |= FEC_RCNTRL_FCE;
706 729
707 if (priv->has_phy) 730 if (priv->phy_addr != FEC5200_PHYADDR_7WIRE)
708 rcntrl |= FEC_RCNTRL_MII_MODE; 731 rcntrl |= FEC_RCNTRL_MII_MODE;
709 732
710 if (priv->duplex == DUPLEX_FULL) 733 if (priv->duplex == DUPLEX_FULL)
@@ -864,7 +887,10 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match)
864 struct net_device *ndev; 887 struct net_device *ndev;
865 struct mpc52xx_fec_priv *priv = NULL; 888 struct mpc52xx_fec_priv *priv = NULL;
866 struct resource mem; 889 struct resource mem;
867 const phandle *ph; 890 struct device_node *phy_node;
891 const phandle *phy_handle;
892 const u32 *prop;
893 int prop_size;
868 894
869 phys_addr_t rx_fifo; 895 phys_addr_t rx_fifo;
870 phys_addr_t tx_fifo; 896 phys_addr_t tx_fifo;
@@ -948,26 +974,37 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match)
948 mpc52xx_fec_get_paddr(ndev, ndev->dev_addr); 974 mpc52xx_fec_get_paddr(ndev, ndev->dev_addr);
949 975
950 priv->msg_enable = netif_msg_init(debug, MPC52xx_MESSAGES_DEFAULT); 976 priv->msg_enable = netif_msg_init(debug, MPC52xx_MESSAGES_DEFAULT);
951 priv->duplex = DUPLEX_FULL;
952
953 /* is the phy present in device tree? */
954 ph = of_get_property(op->node, "phy-handle", NULL);
955 if (ph) {
956 const unsigned int *prop;
957 struct device_node *phy_dn;
958 priv->has_phy = 1;
959 977
960 phy_dn = of_find_node_by_phandle(*ph); 978 /*
961 prop = of_get_property(phy_dn, "reg", NULL); 979 * Link mode configuration
962 priv->phy_addr = *prop; 980 */
963 981
964 of_node_put(phy_dn); 982 /* Start with safe defaults for link connection */
983 priv->phy_addr = FEC5200_PHYADDR_NONE;
984 priv->speed = 100;
985 priv->duplex = DUPLEX_HALF;
986 priv->phy_speed = ((mpc52xx_find_ipb_freq(op->node) >> 20) / 5) << 1;
987
988 /* the 7-wire property means don't use MII mode */
989 if (of_find_property(op->node, "fsl,7-wire-mode", NULL))
990 priv->phy_addr = FEC5200_PHYADDR_7WIRE;
991
992 /* The current speed preconfigures the speed of the MII link */
993 prop = of_get_property(op->node, "current-speed", &prop_size);
994 if (prop && (prop_size >= sizeof(u32) * 2)) {
995 priv->speed = prop[0];
996 priv->duplex = prop[1] ? DUPLEX_FULL : DUPLEX_HALF;
997 }
965 998
966 /* Phy speed */ 999 /* If there is a phy handle, setup link to that phy */
967 priv->phy_speed = ((mpc52xx_find_ipb_freq(op->node) >> 20) / 5) << 1; 1000 phy_handle = of_get_property(op->node, "phy-handle", &prop_size);
968 } else { 1001 if (phy_handle && (prop_size >= sizeof(phandle))) {
969 dev_info(&ndev->dev, "can't find \"phy-handle\" in device" 1002 phy_node = of_find_node_by_phandle(*phy_handle);
970 " tree, using 7-wire mode\n"); 1003 prop = of_get_property(phy_node, "reg", &prop_size);
1004 if (prop && (prop_size >= sizeof(u32)))
1005 if ((*prop >= 0) && (*prop < PHY_MAX_ADDR))
1006 priv->phy_addr = *prop;
1007 of_node_put(phy_node);
971 } 1008 }
972 1009
973 /* Hardware init */ 1010 /* Hardware init */
@@ -982,6 +1019,20 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match)
982 if (rv < 0) 1019 if (rv < 0)
983 goto probe_error; 1020 goto probe_error;
984 1021
1022 /* Now report the link setup */
1023 switch (priv->phy_addr) {
1024 case FEC5200_PHYADDR_NONE:
1025 dev_info(&ndev->dev, "Fixed speed MII link: %i%cD\n",
1026 priv->speed, priv->duplex ? 'F' : 'H');
1027 break;
1028 case FEC5200_PHYADDR_7WIRE:
1029 dev_info(&ndev->dev, "using 7-wire PHY mode\n");
1030 break;
1031 default:
1032 dev_info(&ndev->dev, "Using PHY at MDIO address %i\n",
1033 priv->phy_addr);
1034 }
1035
985 /* We're done ! */ 1036 /* We're done ! */
986 dev_set_drvdata(&op->dev, ndev); 1037 dev_set_drvdata(&op->dev, ndev);
987 1038
diff --git a/drivers/net/fec_mpc52xx.h b/drivers/net/fec_mpc52xx.h
index 8b1f75397b9a..a227a525bdbb 100644
--- a/drivers/net/fec_mpc52xx.h
+++ b/drivers/net/fec_mpc52xx.h
@@ -26,25 +26,6 @@
26 26
27#define FEC_WATCHDOG_TIMEOUT ((400*HZ)/1000) 27#define FEC_WATCHDOG_TIMEOUT ((400*HZ)/1000)
28 28
29struct mpc52xx_fec_priv {
30 int duplex;
31 int r_irq;
32 int t_irq;
33 struct mpc52xx_fec __iomem *fec;
34 struct bcom_task *rx_dmatsk;
35 struct bcom_task *tx_dmatsk;
36 spinlock_t lock;
37 int msg_enable;
38
39 int has_phy;
40 unsigned int phy_speed;
41 unsigned int phy_addr;
42 struct phy_device *phydev;
43 enum phy_state link;
44 int speed;
45};
46
47
48/* ======================================================================== */ 29/* ======================================================================== */
49/* Hardware register sets & bits */ 30/* Hardware register sets & bits */
50/* ======================================================================== */ 31/* ======================================================================== */
diff --git a/drivers/ps3/ps3-lpm.c b/drivers/ps3/ps3-lpm.c
index 6c9592ce4996..85edf945ab86 100644
--- a/drivers/ps3/ps3-lpm.c
+++ b/drivers/ps3/ps3-lpm.c
@@ -22,6 +22,7 @@
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/interrupt.h> 23#include <linux/interrupt.h>
24#include <linux/uaccess.h> 24#include <linux/uaccess.h>
25#include <asm/time.h>
25#include <asm/ps3.h> 26#include <asm/ps3.h>
26#include <asm/lv1call.h> 27#include <asm/lv1call.h>
27#include <asm/cell-pmu.h> 28#include <asm/cell-pmu.h>
diff --git a/drivers/ps3/ps3-sys-manager.c b/drivers/ps3/ps3-sys-manager.c
index 7605453b74fd..f17513dd9d4b 100644
--- a/drivers/ps3/ps3-sys-manager.c
+++ b/drivers/ps3/ps3-sys-manager.c
@@ -184,10 +184,7 @@ enum ps3_sys_manager_next_op {
184 184
185/** 185/**
186 * enum ps3_sys_manager_wake_source - Next-op wakeup source (bit position mask). 186 * enum ps3_sys_manager_wake_source - Next-op wakeup source (bit position mask).
187 * @PS3_SM_WAKE_DEFAULT: Disk insert, power button, eject button, IR 187 * @PS3_SM_WAKE_DEFAULT: Disk insert, power button, eject button.
188 * controller, and bluetooth controller.
189 * @PS3_SM_WAKE_RTC:
190 * @PS3_SM_WAKE_RTC_ERROR:
191 * @PS3_SM_WAKE_W_O_L: Ether or wireless LAN. 188 * @PS3_SM_WAKE_W_O_L: Ether or wireless LAN.
192 * @PS3_SM_WAKE_P_O_R: Power on reset. 189 * @PS3_SM_WAKE_P_O_R: Power on reset.
193 * 190 *
@@ -200,8 +197,6 @@ enum ps3_sys_manager_next_op {
200enum ps3_sys_manager_wake_source { 197enum ps3_sys_manager_wake_source {
201 /* version 3 */ 198 /* version 3 */
202 PS3_SM_WAKE_DEFAULT = 0, 199 PS3_SM_WAKE_DEFAULT = 0,
203 PS3_SM_WAKE_RTC = 0x00000040,
204 PS3_SM_WAKE_RTC_ERROR = 0x00000080,
205 PS3_SM_WAKE_W_O_L = 0x00000400, 200 PS3_SM_WAKE_W_O_L = 0x00000400,
206 PS3_SM_WAKE_P_O_R = 0x80000000, 201 PS3_SM_WAKE_P_O_R = 0x80000000,
207}; 202};
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index 7a3625f52a03..efc971d9647b 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -783,7 +783,9 @@ mpc52xx_uart_int_rx_chars(struct uart_port *port)
783 } 783 }
784 } 784 }
785 785
786 spin_unlock(&port->lock);
786 tty_flip_buffer_push(tty); 787 tty_flip_buffer_push(tty);
788 spin_lock(&port->lock);
787 789
788 return psc_ops->raw_rx_rdy(port); 790 return psc_ops->raw_rx_rdy(port);
789} 791}
diff --git a/include/asm-powerpc/ps3.h b/include/asm-powerpc/ps3.h
index 9e8ed6824e15..81ffe3b3c1ce 100644
--- a/include/asm-powerpc/ps3.h
+++ b/include/asm-powerpc/ps3.h
@@ -178,9 +178,6 @@ enum ps3_cpu_binding {
178 PS3_BINDING_CPU_1 = 1, 178 PS3_BINDING_CPU_1 = 1,
179}; 179};
180 180
181int ps3_virq_setup(enum ps3_cpu_binding cpu, unsigned long outlet,
182 unsigned int *virq);
183int ps3_virq_destroy(unsigned int virq);
184int ps3_irq_plug_setup(enum ps3_cpu_binding cpu, unsigned long outlet, 181int ps3_irq_plug_setup(enum ps3_cpu_binding cpu, unsigned long outlet,
185 unsigned int *virq); 182 unsigned int *virq);
186int ps3_irq_plug_destroy(unsigned int virq); 183int ps3_irq_plug_destroy(unsigned int virq);
diff --git a/include/linux/rio.h b/include/linux/rio.h
index c1c99c9643d3..dc0c75556c63 100644
--- a/include/linux/rio.h
+++ b/include/linux/rio.h
@@ -161,6 +161,8 @@ enum rio_phy_type {
161 * @ops: configuration space functions 161 * @ops: configuration space functions
162 * @id: Port ID, unique among all ports 162 * @id: Port ID, unique among all ports
163 * @index: Port index, unique among all port interfaces of the same type 163 * @index: Port index, unique among all port interfaces of the same type
164 * @sys_size: RapidIO common transport system size
165 * @phy_type: RapidIO phy type
164 * @name: Port name string 166 * @name: Port name string
165 * @priv: Master port private data 167 * @priv: Master port private data
166 */ 168 */