Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc

* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
[POWERPC] Bolt in SLB entry for kernel stack on secondary cpus
[POWERPC] PS3: Update ps3_defconfig
[POWERPC] PS3: Remove unsupported wakeup sources
[POWERPC] PS3: Make ps3_virq_setup and ps3_virq_destroy static
[POWERPC] PS3: Add time include to lpm
[POWERPC] Fix slb.c compile warnings
[POWERPC] Xilinx: Fix compile warnings
[POWERPC] Squash build warning for print of resource_size_t in fsl_soc.c
[RAPIDIO] fix current kernel-doc notation
[POWERPC] 86xx: mpc8610_hpcd: add support for PCI Express x8 slot
Fix a potential issue in mpc52xx uart driver
[POWERPC] mpc5200: Allow for fixed speed MII configurations
[POWERPC] 86xx: Fix the wrong serial1 interrupt for 8610 board

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