Merge branch 'cell-merge' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/cell-2.6 into merge

+258 -132
+130 -21
arch/powerpc/configs/cell_defconfig
··· 1 # 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.20-rc5 4 - # Mon Jan 22 22:12:56 2007 5 # 6 CONFIG_PPC64=y 7 CONFIG_64BIT=y ··· 61 CONFIG_SWAP=y 62 CONFIG_SYSVIPC=y 63 # CONFIG_IPC_NS is not set 64 # CONFIG_POSIX_MQUEUE is not set 65 # CONFIG_BSD_PROCESS_ACCT is not set 66 # CONFIG_TASKSTATS is not set ··· 72 CONFIG_CPUSETS=y 73 CONFIG_SYSFS_DEPRECATED=y 74 # CONFIG_RELAY is not set 75 CONFIG_INITRAMFS_SOURCE="" 76 CONFIG_CC_OPTIMIZE_FOR_SIZE=y 77 CONFIG_SYSCTL=y ··· 135 # CONFIG_PPC_PSERIES is not set 136 # CONFIG_PPC_ISERIES is not set 137 # CONFIG_PPC_MPC52xx is not set 138 # CONFIG_PPC_PMAC is not set 139 # CONFIG_PPC_MAPLE is not set 140 # CONFIG_PPC_PASEMI is not set ··· 143 CONFIG_PPC_CELL_NATIVE=y 144 CONFIG_PPC_IBM_CELL_BLADE=y 145 CONFIG_PPC_PS3=y 146 CONFIG_PPC_NATIVE=y 147 CONFIG_UDBG_RTAS_CONSOLE=y 148 # CONFIG_U3_DART is not set 149 CONFIG_PPC_RTAS=y 150 # CONFIG_RTAS_ERROR_LOGGING is not set ··· 186 # 187 # PS3 Platform Options 188 # 189 CONFIG_PS3_HTAB_SIZE=20 190 # CONFIG_PS3_DYNAMIC_DMA is not set 191 CONFIG_PS3_USE_LPAR_ADDR=y 192 CONFIG_PS3_VUART=y 193 194 # 195 # Kernel options ··· 234 CONFIG_SPLIT_PTLOCK_CPUS=4 235 CONFIG_MIGRATION=y 236 CONFIG_RESOURCES_64BIT=y 237 CONFIG_ARCH_MEMORY_PROBE=y 238 CONFIG_NODES_SPAN_OTHER_NODES=y 239 CONFIG_PPC_64K_PAGES=y ··· 248 # 249 # Bus options 250 # 251 CONFIG_GENERIC_ISA_DMA=y 252 # CONFIG_MPIC_WEIRD is not set 253 # CONFIG_PPC_I8259 is not set ··· 284 CONFIG_XFRM=y 285 # CONFIG_XFRM_USER is not set 286 # CONFIG_XFRM_SUB_POLICY is not set 287 # CONFIG_NET_KEY is not set 288 CONFIG_INET=y 289 CONFIG_IP_MULTICAST=y ··· 351 CONFIG_NETFILTER_XT_TARGET_MARK=m 352 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 353 CONFIG_NETFILTER_XT_TARGET_NFLOG=m 354 CONFIG_NETFILTER_XT_MATCH_COMMENT=m 355 CONFIG_NETFILTER_XT_MATCH_DCCP=m 356 CONFIG_NETFILTER_XT_MATCH_DSCP=m ··· 388 CONFIG_IP_NF_TARGET_REJECT=m 389 CONFIG_IP_NF_TARGET_LOG=m 390 CONFIG_IP_NF_TARGET_ULOG=m 391 - CONFIG_IP_NF_TARGET_TCPMSS=m 392 CONFIG_IP_NF_MANGLE=m 393 CONFIG_IP_NF_TARGET_TOS=m 394 CONFIG_IP_NF_TARGET_ECN=m ··· 455 CONFIG_PREVENT_FIRMWARE_BUILD=y 456 CONFIG_FW_LOADER=y 457 # CONFIG_DEBUG_DRIVER is not set 458 # CONFIG_SYS_HYPERVISOR is not set 459 460 # ··· 476 # 477 # Plug and Play support 478 # 479 480 # 481 # Block devices ··· 496 CONFIG_BLK_DEV_RAM_COUNT=16 497 CONFIG_BLK_DEV_RAM_SIZE=131072 498 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 499 - CONFIG_BLK_DEV_INITRD=y 500 # CONFIG_CDROM_PKTCDVD is not set 501 # CONFIG_ATA_OVER_ETH is not set 502 ··· 549 # CONFIG_BLK_DEV_JMICRON is not set 550 # CONFIG_BLK_DEV_SC1200 is not set 551 # CONFIG_BLK_DEV_PIIX is not set 552 # CONFIG_BLK_DEV_IT821X is not set 553 # CONFIG_BLK_DEV_NS87415 is not set 554 # CONFIG_BLK_DEV_PDC202XX_OLD is not set ··· 560 # CONFIG_BLK_DEV_SLC90E66 is not set 561 # CONFIG_BLK_DEV_TRM290 is not set 562 # CONFIG_BLK_DEV_VIA82CXXX is not set 563 # CONFIG_IDE_ARM is not set 564 CONFIG_BLK_DEV_IDEDMA=y 565 # CONFIG_IDEDMA_IVB is not set ··· 572 # SCSI device support 573 # 574 # CONFIG_RAID_ATTRS is not set 575 - CONFIG_SCSI=m 576 # CONFIG_SCSI_TGT is not set 577 # CONFIG_SCSI_NETLINK is not set 578 CONFIG_SCSI_PROC_FS=y ··· 580 # 581 # SCSI support type (disk, tape, CD-ROM) 582 # 583 - CONFIG_BLK_DEV_SD=m 584 # CONFIG_CHR_DEV_ST is not set 585 # CONFIG_CHR_DEV_OSST is not set 586 CONFIG_BLK_DEV_SR=m 587 # CONFIG_BLK_DEV_SR_VENDOR is not set 588 - CONFIG_CHR_DEV_SG=m 589 # CONFIG_CHR_DEV_SCH is not set 590 591 # ··· 602 # CONFIG_SCSI_SPI_ATTRS is not set 603 # CONFIG_SCSI_FC_ATTRS is not set 604 # CONFIG_SCSI_ISCSI_ATTRS is not set 605 - # CONFIG_SCSI_SAS_ATTRS is not set 606 # CONFIG_SCSI_SAS_LIBSAS is not set 607 608 # ··· 632 # CONFIG_SCSI_INIA100 is not set 633 # CONFIG_SCSI_STEX is not set 634 # CONFIG_SCSI_SYM53C8XX_2 is not set 635 # CONFIG_SCSI_QLOGIC_1280 is not set 636 # CONFIG_SCSI_QLA_FC is not set 637 # CONFIG_SCSI_QLA_ISCSI is not set ··· 645 # 646 # Serial ATA (prod) and Parallel ATA (experimental) drivers 647 # 648 - # CONFIG_ATA is not set 649 650 # 651 # Multi-device support (RAID and LVM) ··· 724 # 725 # Fusion MPT device support 726 # 727 - # CONFIG_FUSION is not set 728 # CONFIG_FUSION_SPI is not set 729 # CONFIG_FUSION_FC is not set 730 - # CONFIG_FUSION_SAS is not set 731 732 # 733 # IEEE 1394 (FireWire) support ··· 803 # CONFIG_BNX2 is not set 804 CONFIG_SPIDER_NET=y 805 # CONFIG_QLA3XXX is not set 806 807 # 808 # Ethernet (10000 Mbit) 809 # 810 # CONFIG_CHELSIO_T1 is not set 811 # CONFIG_IXGB is not set 812 # CONFIG_S2IO is not set 813 # CONFIG_MYRI10GE is not set 814 # CONFIG_NETXEN_NIC is not set 815 816 # 817 # Token Ring devices ··· 927 # 928 CONFIG_SERIAL_CORE=y 929 CONFIG_SERIAL_CORE_CONSOLE=y 930 # CONFIG_SERIAL_JSM is not set 931 CONFIG_UNIX98_PTYS=y 932 # CONFIG_LEGACY_PTYS is not set 933 CONFIG_HVC_DRIVER=y 934 CONFIG_HVC_RTAS=y 935 936 # 937 # IPMI 938 # 939 - # CONFIG_IPMI_HANDLER is not set 940 941 # 942 # Watchdog Cards ··· 959 # Watchdog Device Drivers 960 # 961 # CONFIG_SOFT_WATCHDOG is not set 962 - CONFIG_WATCHDOG_RTAS=y 963 964 # 965 # PCI-based Watchdog Cards ··· 1014 # CONFIG_I2C_NFORCE2 is not set 1015 # CONFIG_I2C_OCORES is not set 1016 # CONFIG_I2C_PARPORT_LIGHT is not set 1017 # CONFIG_I2C_PROSAVAGE is not set 1018 # CONFIG_I2C_SAVAGE4 is not set 1019 # CONFIG_I2C_SIS5595 is not set ··· 1059 # CONFIG_HWMON_VID is not set 1060 1061 # 1062 # Multimedia devices 1063 # 1064 # CONFIG_VIDEO_DEV is not set ··· 1077 # 1078 # Graphics support 1079 # 1080 - CONFIG_FIRMWARE_EDID=y 1081 # CONFIG_FB is not set 1082 # CONFIG_FB_IBM_GXT4500 is not set 1083 ··· 1086 # 1087 # CONFIG_VGA_CONSOLE is not set 1088 CONFIG_DUMMY_CONSOLE=y 1089 - # CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1090 1091 # 1092 # Sound ··· 1096 # HID Devices 1097 # 1098 CONFIG_HID=m 1099 1100 # 1101 # USB support ··· 1111 # Miscellaneous USB options 1112 # 1113 CONFIG_USB_DEVICEFS=y 1114 - # CONFIG_USB_BANDWIDTH is not set 1115 # CONFIG_USB_DYNAMIC_MINORS is not set 1116 - # CONFIG_USB_MULTITHREAD_PROBE is not set 1117 # CONFIG_USB_OTG is not set 1118 1119 # ··· 1121 # CONFIG_USB_EHCI_SPLIT_ISO is not set 1122 # CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1123 # CONFIG_USB_EHCI_TT_NEWSCHED is not set 1124 # CONFIG_USB_ISP116X_HCD is not set 1125 CONFIG_USB_OHCI_HCD=m 1126 - # CONFIG_USB_OHCI_BIG_ENDIAN is not set 1127 CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1128 # CONFIG_USB_UHCI_HCD is not set 1129 # CONFIG_USB_SL811_HCD is not set ··· 1183 # CONFIG_USB_ATI_REMOTE2 is not set 1184 # CONFIG_USB_KEYSPAN_REMOTE is not set 1185 # CONFIG_USB_APPLETOUCH is not set 1186 1187 # 1188 # USB Imaging devices ··· 1221 # CONFIG_USB_RIO500 is not set 1222 # CONFIG_USB_LEGOTOWER is not set 1223 # CONFIG_USB_LCD is not set 1224 # CONFIG_USB_LED is not set 1225 # CONFIG_USB_CYPRESS_CY7C63 is not set 1226 # CONFIG_USB_CYTHERM is not set ··· 1232 # CONFIG_USB_SISUSBVGA is not set 1233 # CONFIG_USB_LD is not set 1234 # CONFIG_USB_TRANCEVIBRATOR is not set 1235 # CONFIG_USB_TEST is not set 1236 1237 # ··· 1273 CONFIG_INFINIBAND_MTHCA_DEBUG=y 1274 # CONFIG_INFINIBAND_AMSO1100 is not set 1275 CONFIG_INFINIBAND_IPOIB=m 1276 CONFIG_INFINIBAND_IPOIB_DEBUG=y 1277 CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y 1278 # CONFIG_INFINIBAND_SRP is not set ··· 1299 1300 # 1301 # DMA Devices 1302 # 1303 1304 # ··· 1498 CONFIG_TEXTSEARCH_BM=m 1499 CONFIG_TEXTSEARCH_FSM=m 1500 CONFIG_PLIST=y 1501 - CONFIG_IOMAP_COPY=y 1502 1503 # 1504 # Instrumentation Support ··· 1518 CONFIG_DEBUG_FS=y 1519 # CONFIG_HEADERS_CHECK is not set 1520 CONFIG_DEBUG_KERNEL=y 1521 CONFIG_LOG_BUF_SHIFT=15 1522 - CONFIG_DETECT_SOFTLOCKUP=y 1523 # CONFIG_SCHEDSTATS is not set 1524 # CONFIG_DEBUG_SLAB is not set 1525 # CONFIG_DEBUG_RT_MUTEXES is not set 1526 # CONFIG_RT_MUTEX_TESTER is not set 1527 # CONFIG_DEBUG_SPINLOCK is not set 1528 CONFIG_DEBUG_MUTEXES=y 1529 - # CONFIG_DEBUG_RWSEMS is not set 1530 CONFIG_DEBUG_SPINLOCK_SLEEP=y 1531 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1532 # CONFIG_DEBUG_KOBJECT is not set ··· 1537 # CONFIG_DEBUG_LIST is not set 1538 # CONFIG_FORCED_INLINING is not set 1539 # CONFIG_RCU_TORTURE_TEST is not set 1540 # CONFIG_DEBUG_STACKOVERFLOW is not set 1541 # CONFIG_DEBUG_STACK_USAGE is not set 1542 CONFIG_DEBUGGER=y ··· 1575 # CONFIG_CRYPTO_GF128MUL is not set 1576 CONFIG_CRYPTO_ECB=m 1577 CONFIG_CRYPTO_CBC=m 1578 # CONFIG_CRYPTO_LRW is not set 1579 CONFIG_CRYPTO_DES=m 1580 # CONFIG_CRYPTO_BLOWFISH is not set 1581 # CONFIG_CRYPTO_TWOFISH is not set 1582 # CONFIG_CRYPTO_SERPENT is not set ··· 1592 CONFIG_CRYPTO_DEFLATE=m 1593 # CONFIG_CRYPTO_MICHAEL_MIC is not set 1594 # CONFIG_CRYPTO_CRC32C is not set 1595 # CONFIG_CRYPTO_TEST is not set 1596 1597 #
··· 1 # 2 # Automatically generated make config: don't edit 3 + # Linux kernel version: 2.6.21-rc3 4 + # Fri Mar 9 23:34:53 2007 5 # 6 CONFIG_PPC64=y 7 CONFIG_64BIT=y ··· 61 CONFIG_SWAP=y 62 CONFIG_SYSVIPC=y 63 # CONFIG_IPC_NS is not set 64 + CONFIG_SYSVIPC_SYSCTL=y 65 # CONFIG_POSIX_MQUEUE is not set 66 # CONFIG_BSD_PROCESS_ACCT is not set 67 # CONFIG_TASKSTATS is not set ··· 71 CONFIG_CPUSETS=y 72 CONFIG_SYSFS_DEPRECATED=y 73 # CONFIG_RELAY is not set 74 + CONFIG_BLK_DEV_INITRD=y 75 CONFIG_INITRAMFS_SOURCE="" 76 CONFIG_CC_OPTIMIZE_FOR_SIZE=y 77 CONFIG_SYSCTL=y ··· 133 # CONFIG_PPC_PSERIES is not set 134 # CONFIG_PPC_ISERIES is not set 135 # CONFIG_PPC_MPC52xx is not set 136 + # CONFIG_PPC_MPC5200 is not set 137 # CONFIG_PPC_PMAC is not set 138 # CONFIG_PPC_MAPLE is not set 139 # CONFIG_PPC_PASEMI is not set ··· 140 CONFIG_PPC_CELL_NATIVE=y 141 CONFIG_PPC_IBM_CELL_BLADE=y 142 CONFIG_PPC_PS3=y 143 + CONFIG_PPC_CELLEB=y 144 CONFIG_PPC_NATIVE=y 145 CONFIG_UDBG_RTAS_CONSOLE=y 146 + CONFIG_PPC_UDBG_BEAT=y 147 # CONFIG_U3_DART is not set 148 CONFIG_PPC_RTAS=y 149 # CONFIG_RTAS_ERROR_LOGGING is not set ··· 181 # 182 # PS3 Platform Options 183 # 184 + # CONFIG_PS3_ADVANCED is not set 185 CONFIG_PS3_HTAB_SIZE=20 186 # CONFIG_PS3_DYNAMIC_DMA is not set 187 CONFIG_PS3_USE_LPAR_ADDR=y 188 CONFIG_PS3_VUART=y 189 + CONFIG_PS3_PS3AV=y 190 + CONFIG_PS3_SYS_MANAGER=y 191 192 # 193 # Kernel options ··· 226 CONFIG_SPLIT_PTLOCK_CPUS=4 227 CONFIG_MIGRATION=y 228 CONFIG_RESOURCES_64BIT=y 229 + CONFIG_ZONE_DMA_FLAG=1 230 CONFIG_ARCH_MEMORY_PROBE=y 231 CONFIG_NODES_SPAN_OTHER_NODES=y 232 CONFIG_PPC_64K_PAGES=y ··· 239 # 240 # Bus options 241 # 242 + CONFIG_ZONE_DMA=y 243 CONFIG_GENERIC_ISA_DMA=y 244 # CONFIG_MPIC_WEIRD is not set 245 # CONFIG_PPC_I8259 is not set ··· 274 CONFIG_XFRM=y 275 # CONFIG_XFRM_USER is not set 276 # CONFIG_XFRM_SUB_POLICY is not set 277 + # CONFIG_XFRM_MIGRATE is not set 278 # CONFIG_NET_KEY is not set 279 CONFIG_INET=y 280 CONFIG_IP_MULTICAST=y ··· 340 CONFIG_NETFILTER_XT_TARGET_MARK=m 341 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 342 CONFIG_NETFILTER_XT_TARGET_NFLOG=m 343 + CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 344 CONFIG_NETFILTER_XT_MATCH_COMMENT=m 345 CONFIG_NETFILTER_XT_MATCH_DCCP=m 346 CONFIG_NETFILTER_XT_MATCH_DSCP=m ··· 376 CONFIG_IP_NF_TARGET_REJECT=m 377 CONFIG_IP_NF_TARGET_LOG=m 378 CONFIG_IP_NF_TARGET_ULOG=m 379 CONFIG_IP_NF_MANGLE=m 380 CONFIG_IP_NF_TARGET_TOS=m 381 CONFIG_IP_NF_TARGET_ECN=m ··· 444 CONFIG_PREVENT_FIRMWARE_BUILD=y 445 CONFIG_FW_LOADER=y 446 # CONFIG_DEBUG_DRIVER is not set 447 + # CONFIG_DEBUG_DEVRES is not set 448 # CONFIG_SYS_HYPERVISOR is not set 449 450 # ··· 464 # 465 # Plug and Play support 466 # 467 + # CONFIG_PNPACPI is not set 468 469 # 470 # Block devices ··· 483 CONFIG_BLK_DEV_RAM_COUNT=16 484 CONFIG_BLK_DEV_RAM_SIZE=131072 485 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 486 # CONFIG_CDROM_PKTCDVD is not set 487 # CONFIG_ATA_OVER_ETH is not set 488 ··· 537 # CONFIG_BLK_DEV_JMICRON is not set 538 # CONFIG_BLK_DEV_SC1200 is not set 539 # CONFIG_BLK_DEV_PIIX is not set 540 + # CONFIG_BLK_DEV_IT8213 is not set 541 # CONFIG_BLK_DEV_IT821X is not set 542 # CONFIG_BLK_DEV_NS87415 is not set 543 # CONFIG_BLK_DEV_PDC202XX_OLD is not set ··· 547 # CONFIG_BLK_DEV_SLC90E66 is not set 548 # CONFIG_BLK_DEV_TRM290 is not set 549 # CONFIG_BLK_DEV_VIA82CXXX is not set 550 + # CONFIG_BLK_DEV_TC86C001 is not set 551 + CONFIG_BLK_DEV_IDE_CELLEB=y 552 # CONFIG_IDE_ARM is not set 553 CONFIG_BLK_DEV_IDEDMA=y 554 # CONFIG_IDEDMA_IVB is not set ··· 557 # SCSI device support 558 # 559 # CONFIG_RAID_ATTRS is not set 560 + CONFIG_SCSI=y 561 # CONFIG_SCSI_TGT is not set 562 # CONFIG_SCSI_NETLINK is not set 563 CONFIG_SCSI_PROC_FS=y ··· 565 # 566 # SCSI support type (disk, tape, CD-ROM) 567 # 568 + CONFIG_BLK_DEV_SD=y 569 # CONFIG_CHR_DEV_ST is not set 570 # CONFIG_CHR_DEV_OSST is not set 571 CONFIG_BLK_DEV_SR=m 572 # CONFIG_BLK_DEV_SR_VENDOR is not set 573 + CONFIG_CHR_DEV_SG=y 574 # CONFIG_CHR_DEV_SCH is not set 575 576 # ··· 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=y 591 # CONFIG_SCSI_SAS_LIBSAS is not set 592 593 # ··· 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_IPR is not set 621 # CONFIG_SCSI_QLOGIC_1280 is not set 622 # CONFIG_SCSI_QLA_FC is not set 623 # CONFIG_SCSI_QLA_ISCSI is not set ··· 629 # 630 # Serial ATA (prod) and Parallel ATA (experimental) drivers 631 # 632 + CONFIG_ATA=y 633 + # CONFIG_ATA_NONSTANDARD is not set 634 + # CONFIG_SATA_AHCI is not set 635 + # CONFIG_SATA_SVW is not set 636 + # CONFIG_ATA_PIIX is not set 637 + # CONFIG_SATA_MV is not set 638 + # CONFIG_SATA_NV is not set 639 + # CONFIG_PDC_ADMA is not set 640 + # CONFIG_SATA_QSTOR is not set 641 + CONFIG_SATA_PROMISE=y 642 + # CONFIG_SATA_SX4 is not set 643 + # CONFIG_SATA_SIL is not set 644 + # CONFIG_SATA_SIL24 is not set 645 + # CONFIG_SATA_SIS is not set 646 + # CONFIG_SATA_ULI is not set 647 + # CONFIG_SATA_VIA is not set 648 + # CONFIG_SATA_VITESSE is not set 649 + # CONFIG_SATA_INIC162X is not set 650 + # CONFIG_PATA_ALI is not set 651 + # CONFIG_PATA_AMD is not set 652 + # CONFIG_PATA_ARTOP is not set 653 + # CONFIG_PATA_ATIIXP is not set 654 + # CONFIG_PATA_CMD64X is not set 655 + # CONFIG_PATA_CS5520 is not set 656 + # CONFIG_PATA_CS5530 is not set 657 + # CONFIG_PATA_CYPRESS is not set 658 + # CONFIG_PATA_EFAR is not set 659 + # CONFIG_ATA_GENERIC is not set 660 + # CONFIG_PATA_HPT366 is not set 661 + # CONFIG_PATA_HPT37X is not set 662 + # CONFIG_PATA_HPT3X2N is not set 663 + # CONFIG_PATA_HPT3X3 is not set 664 + # CONFIG_PATA_IT821X is not set 665 + # CONFIG_PATA_IT8213 is not set 666 + # CONFIG_PATA_JMICRON is not set 667 + # CONFIG_PATA_TRIFLEX is not set 668 + # CONFIG_PATA_MARVELL is not set 669 + # CONFIG_PATA_MPIIX is not set 670 + # CONFIG_PATA_OLDPIIX is not set 671 + # CONFIG_PATA_NETCELL is not set 672 + # CONFIG_PATA_NS87410 is not set 673 + # CONFIG_PATA_OPTI is not set 674 + # CONFIG_PATA_OPTIDMA is not set 675 + # CONFIG_PATA_PDC_OLD is not set 676 + # CONFIG_PATA_RADISYS is not set 677 + # CONFIG_PATA_RZ1000 is not set 678 + # CONFIG_PATA_SC1200 is not set 679 + # CONFIG_PATA_SERVERWORKS is not set 680 + CONFIG_PATA_PDC2027X=m 681 + # CONFIG_PATA_SIL680 is not set 682 + # CONFIG_PATA_SIS is not set 683 + # CONFIG_PATA_VIA is not set 684 + # CONFIG_PATA_WINBOND is not set 685 + # CONFIG_PATA_SCC is not set 686 687 # 688 # Multi-device support (RAID and LVM) ··· 655 # 656 # Fusion MPT device support 657 # 658 + CONFIG_FUSION=y 659 # CONFIG_FUSION_SPI is not set 660 # CONFIG_FUSION_FC is not set 661 + CONFIG_FUSION_SAS=y 662 + CONFIG_FUSION_MAX_SGE=128 663 + # CONFIG_FUSION_CTL is not set 664 665 # 666 # IEEE 1394 (FireWire) support ··· 732 # CONFIG_BNX2 is not set 733 CONFIG_SPIDER_NET=y 734 # CONFIG_QLA3XXX is not set 735 + # CONFIG_ATL1 is not set 736 737 # 738 # Ethernet (10000 Mbit) 739 # 740 # CONFIG_CHELSIO_T1 is not set 741 + # CONFIG_CHELSIO_T3 is not set 742 # CONFIG_IXGB is not set 743 # CONFIG_S2IO is not set 744 # CONFIG_MYRI10GE is not set 745 # CONFIG_NETXEN_NIC is not set 746 + # CONFIG_PASEMI_MAC is not set 747 748 # 749 # Token Ring devices ··· 853 # 854 CONFIG_SERIAL_CORE=y 855 CONFIG_SERIAL_CORE_CONSOLE=y 856 + CONFIG_SERIAL_TXX9=y 857 + CONFIG_HAS_TXX9_SERIAL=y 858 + CONFIG_SERIAL_TXX9_NR_UARTS=2 859 + CONFIG_SERIAL_TXX9_CONSOLE=y 860 # CONFIG_SERIAL_JSM is not set 861 + CONFIG_SERIAL_OF_PLATFORM=y 862 CONFIG_UNIX98_PTYS=y 863 # CONFIG_LEGACY_PTYS is not set 864 CONFIG_HVC_DRIVER=y 865 CONFIG_HVC_RTAS=y 866 + # CONFIG_HVC_BEAT is not set 867 868 # 869 # IPMI 870 # 871 + CONFIG_IPMI_HANDLER=m 872 + # CONFIG_IPMI_PANIC_EVENT is not set 873 + CONFIG_IPMI_DEVICE_INTERFACE=m 874 + CONFIG_IPMI_SI=m 875 + CONFIG_IPMI_WATCHDOG=m 876 + CONFIG_IPMI_POWEROFF=m 877 878 # 879 # Watchdog Cards ··· 874 # Watchdog Device Drivers 875 # 876 # CONFIG_SOFT_WATCHDOG is not set 877 + # CONFIG_WATCHDOG_RTAS is not set 878 879 # 880 # PCI-based Watchdog Cards ··· 929 # CONFIG_I2C_NFORCE2 is not set 930 # CONFIG_I2C_OCORES is not set 931 # CONFIG_I2C_PARPORT_LIGHT is not set 932 + # CONFIG_I2C_PASEMI is not set 933 # CONFIG_I2C_PROSAVAGE is not set 934 # CONFIG_I2C_SAVAGE4 is not set 935 # CONFIG_I2C_SIS5595 is not set ··· 973 # CONFIG_HWMON_VID is not set 974 975 # 976 + # Multifunction device drivers 977 + # 978 + # CONFIG_MFD_SM501 is not set 979 + 980 + # 981 # Multimedia devices 982 # 983 # CONFIG_VIDEO_DEV is not set ··· 986 # 987 # Graphics support 988 # 989 + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set 990 # CONFIG_FB is not set 991 # CONFIG_FB_IBM_GXT4500 is not set 992 ··· 995 # 996 # CONFIG_VGA_CONSOLE is not set 997 CONFIG_DUMMY_CONSOLE=y 998 999 # 1000 # Sound ··· 1006 # HID Devices 1007 # 1008 CONFIG_HID=m 1009 + # CONFIG_HID_DEBUG is not set 1010 1011 # 1012 # USB support ··· 1020 # Miscellaneous USB options 1021 # 1022 CONFIG_USB_DEVICEFS=y 1023 # CONFIG_USB_DYNAMIC_MINORS is not set 1024 # CONFIG_USB_OTG is not set 1025 1026 # ··· 1032 # CONFIG_USB_EHCI_SPLIT_ISO is not set 1033 # CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1034 # CONFIG_USB_EHCI_TT_NEWSCHED is not set 1035 + CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 1036 # CONFIG_USB_ISP116X_HCD is not set 1037 CONFIG_USB_OHCI_HCD=m 1038 + CONFIG_USB_OHCI_HCD_PPC_OF=y 1039 + CONFIG_USB_OHCI_HCD_PPC_OF_BE=y 1040 + # CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set 1041 + CONFIG_USB_OHCI_HCD_PCI=y 1042 + CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y 1043 + CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y 1044 CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1045 # CONFIG_USB_UHCI_HCD is not set 1046 # CONFIG_USB_SL811_HCD is not set ··· 1088 # CONFIG_USB_ATI_REMOTE2 is not set 1089 # CONFIG_USB_KEYSPAN_REMOTE is not set 1090 # CONFIG_USB_APPLETOUCH is not set 1091 + # CONFIG_USB_GTCO is not set 1092 1093 # 1094 # USB Imaging devices ··· 1125 # CONFIG_USB_RIO500 is not set 1126 # CONFIG_USB_LEGOTOWER is not set 1127 # CONFIG_USB_LCD is not set 1128 + # CONFIG_USB_BERRY_CHARGE 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 ··· 1135 # CONFIG_USB_SISUSBVGA is not set 1136 # CONFIG_USB_LD is not set 1137 # CONFIG_USB_TRANCEVIBRATOR is not set 1138 + # CONFIG_USB_IOWARRIOR is not set 1139 # CONFIG_USB_TEST is not set 1140 1141 # ··· 1175 CONFIG_INFINIBAND_MTHCA_DEBUG=y 1176 # CONFIG_INFINIBAND_AMSO1100 is not set 1177 CONFIG_INFINIBAND_IPOIB=m 1178 + # CONFIG_INFINIBAND_IPOIB_CM is not set 1179 CONFIG_INFINIBAND_IPOIB_DEBUG=y 1180 CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y 1181 # CONFIG_INFINIBAND_SRP is not set ··· 1200 1201 # 1202 # DMA Devices 1203 + # 1204 + 1205 + # 1206 + # Auxiliary Display support 1207 # 1208 1209 # ··· 1395 CONFIG_TEXTSEARCH_BM=m 1396 CONFIG_TEXTSEARCH_FSM=m 1397 CONFIG_PLIST=y 1398 + CONFIG_HAS_IOMEM=y 1399 + CONFIG_HAS_IOPORT=y 1400 1401 # 1402 # Instrumentation Support ··· 1414 CONFIG_DEBUG_FS=y 1415 # CONFIG_HEADERS_CHECK is not set 1416 CONFIG_DEBUG_KERNEL=y 1417 + # CONFIG_DEBUG_SHIRQ is not set 1418 CONFIG_LOG_BUF_SHIFT=15 1419 + # CONFIG_DETECT_SOFTLOCKUP is not set 1420 # CONFIG_SCHEDSTATS is not set 1421 + # CONFIG_TIMER_STATS is not set 1422 # CONFIG_DEBUG_SLAB is not set 1423 # CONFIG_DEBUG_RT_MUTEXES is not set 1424 # CONFIG_RT_MUTEX_TESTER is not set 1425 # CONFIG_DEBUG_SPINLOCK is not set 1426 CONFIG_DEBUG_MUTEXES=y 1427 CONFIG_DEBUG_SPINLOCK_SLEEP=y 1428 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1429 # CONFIG_DEBUG_KOBJECT is not set ··· 1432 # CONFIG_DEBUG_LIST is not set 1433 # CONFIG_FORCED_INLINING is not set 1434 # CONFIG_RCU_TORTURE_TEST is not set 1435 + # CONFIG_FAULT_INJECTION is not set 1436 # CONFIG_DEBUG_STACKOVERFLOW is not set 1437 # CONFIG_DEBUG_STACK_USAGE is not set 1438 CONFIG_DEBUGGER=y ··· 1469 # CONFIG_CRYPTO_GF128MUL is not set 1470 CONFIG_CRYPTO_ECB=m 1471 CONFIG_CRYPTO_CBC=m 1472 + CONFIG_CRYPTO_PCBC=m 1473 # CONFIG_CRYPTO_LRW is not set 1474 CONFIG_CRYPTO_DES=m 1475 + # CONFIG_CRYPTO_FCRYPT is not set 1476 # CONFIG_CRYPTO_BLOWFISH is not set 1477 # CONFIG_CRYPTO_TWOFISH is not set 1478 # CONFIG_CRYPTO_SERPENT is not set ··· 1484 CONFIG_CRYPTO_DEFLATE=m 1485 # CONFIG_CRYPTO_MICHAEL_MIC is not set 1486 # CONFIG_CRYPTO_CRC32C is not set 1487 + # CONFIG_CRYPTO_CAMELLIA is not set 1488 # CONFIG_CRYPTO_TEST is not set 1489 1490 #
+6
arch/powerpc/mm/hash_utils_64.c
··· 685 "non-cacheable mapping\n"); 686 psize = mmu_vmalloc_psize = MMU_PAGE_4K; 687 } 688 } 689 if (user_region) { 690 if (psize != get_paca()->context.user_psize) { ··· 762 mmu_psize_defs[MMU_PAGE_4K].sllp; 763 get_paca()->context = mm->context; 764 slb_flush_and_rebolt(); 765 } 766 } 767 if (mm->context.user_psize == MMU_PAGE_64K)
··· 685 "non-cacheable mapping\n"); 686 psize = mmu_vmalloc_psize = MMU_PAGE_4K; 687 } 688 + #ifdef CONFIG_SPE_BASE 689 + spu_flush_all_slbs(mm); 690 + #endif 691 } 692 if (user_region) { 693 if (psize != get_paca()->context.user_psize) { ··· 759 mmu_psize_defs[MMU_PAGE_4K].sllp; 760 get_paca()->context = mm->context; 761 slb_flush_and_rebolt(); 762 + #ifdef CONFIG_SPE_BASE 763 + spu_flush_all_slbs(mm); 764 + #endif 765 } 766 } 767 if (mm->context.user_psize == MMU_PAGE_64K)
+4
arch/powerpc/mm/hugetlbpage.c
··· 24 #include <asm/machdep.h> 25 #include <asm/cputable.h> 26 #include <asm/tlb.h> 27 28 #include <linux/sysctl.h> 29 ··· 514 if ((addr + len) > 0x100000000UL) 515 err = open_high_hpage_areas(current->mm, 516 HTLB_AREA_MASK(addr, len)); 517 if (err) { 518 printk(KERN_DEBUG "prepare_hugepage_range(%lx, %lx)" 519 " failed (lowmask: 0x%04hx, highmask: 0x%04hx)\n",
··· 24 #include <asm/machdep.h> 25 #include <asm/cputable.h> 26 #include <asm/tlb.h> 27 + #include <asm/spu.h> 28 29 #include <linux/sysctl.h> 30 ··· 513 if ((addr + len) > 0x100000000UL) 514 err = open_high_hpage_areas(current->mm, 515 HTLB_AREA_MASK(addr, len)); 516 + #ifdef CONFIG_SPE_BASE 517 + spu_flush_all_slbs(current->mm); 518 + #endif 519 if (err) { 520 printk(KERN_DEBUG "prepare_hugepage_range(%lx, %lx)" 521 " failed (lowmask: 0x%04hx, highmask: 0x%04hx)\n",
+69 -12
arch/powerpc/platforms/cell/spu_base.c
··· 38 const struct spu_management_ops *spu_management_ops; 39 const struct spu_priv1_ops *spu_priv1_ops; 40 41 EXPORT_SYMBOL_GPL(spu_priv1_ops); 42 43 static int __spu_trap_invalid_dma(struct spu *spu) 44 { ··· 127 struct spu_priv2 __iomem *priv2 = spu->priv2; 128 struct mm_struct *mm = spu->mm; 129 u64 esid, vsid, llp; 130 131 pr_debug("%s\n", __FUNCTION__); 132 ··· 144 case USER_REGION_ID: 145 #ifdef CONFIG_HUGETLB_PAGE 146 if (in_hugepage_area(mm->context, ea)) 147 - llp = mmu_psize_defs[mmu_huge_psize].sllp; 148 else 149 #endif 150 - llp = mmu_psize_defs[mmu_virtual_psize].sllp; 151 vsid = (get_vsid(mm->context.id, ea) << SLB_VSID_SHIFT) | 152 - SLB_VSID_USER | llp; 153 break; 154 case VMALLOC_REGION_ID: 155 - llp = mmu_psize_defs[mmu_virtual_psize].sllp; 156 vsid = (get_kernel_vsid(ea) << SLB_VSID_SHIFT) | 157 - SLB_VSID_KERNEL | llp; 158 break; 159 case KERNEL_REGION_ID: 160 - llp = mmu_psize_defs[mmu_linear_psize].sllp; 161 vsid = (get_kernel_vsid(ea) << SLB_VSID_SHIFT) | 162 - SLB_VSID_KERNEL | llp; 163 break; 164 default: 165 /* Future: support kernel segments so that drivers ··· 171 pr_debug("invalid region access at %016lx\n", ea); 172 return 1; 173 } 174 175 out_be64(&priv2->slb_index_W, spu->slb_replace); 176 - out_be64(&priv2->slb_vsid_RW, vsid); 177 out_be64(&priv2->slb_esid_RW, esid); 178 179 spu->slb_replace++; ··· 387 if (spu->irqs[2] != NO_IRQ) 388 free_irq(spu->irqs[2], spu); 389 } 390 - 391 - static struct list_head spu_list[MAX_NUMNODES]; 392 - static LIST_HEAD(spu_full_list); 393 - static DEFINE_MUTEX(spu_mutex); 394 395 static void spu_init_channels(struct spu *spu) 396 { ··· 647 struct spu *spu; 648 int ret; 649 static int number; 650 651 ret = -ENOMEM; 652 spu = kzalloc(sizeof (*spu), GFP_KERNEL); ··· 675 goto out_free_irqs; 676 677 mutex_lock(&spu_mutex); 678 list_add(&spu->list, &spu_list[spu->node]); 679 list_add(&spu->full_list, &spu_full_list); 680 mutex_unlock(&spu_mutex); 681 682 goto out;
··· 38 const struct spu_management_ops *spu_management_ops; 39 const struct spu_priv1_ops *spu_priv1_ops; 40 41 + static struct list_head spu_list[MAX_NUMNODES]; 42 + static LIST_HEAD(spu_full_list); 43 + static DEFINE_MUTEX(spu_mutex); 44 + static spinlock_t spu_list_lock = SPIN_LOCK_UNLOCKED; 45 + 46 EXPORT_SYMBOL_GPL(spu_priv1_ops); 47 + 48 + void spu_invalidate_slbs(struct spu *spu) 49 + { 50 + struct spu_priv2 __iomem *priv2 = spu->priv2; 51 + 52 + if (spu_mfc_sr1_get(spu) & MFC_STATE1_RELOCATE_MASK) 53 + out_be64(&priv2->slb_invalidate_all_W, 0UL); 54 + } 55 + EXPORT_SYMBOL_GPL(spu_invalidate_slbs); 56 + 57 + /* This is called by the MM core when a segment size is changed, to 58 + * request a flush of all the SPEs using a given mm 59 + */ 60 + void spu_flush_all_slbs(struct mm_struct *mm) 61 + { 62 + struct spu *spu; 63 + unsigned long flags; 64 + 65 + spin_lock_irqsave(&spu_list_lock, flags); 66 + list_for_each_entry(spu, &spu_full_list, full_list) { 67 + if (spu->mm == mm) 68 + spu_invalidate_slbs(spu); 69 + } 70 + spin_unlock_irqrestore(&spu_list_lock, flags); 71 + } 72 + 73 + /* The hack below stinks... try to do something better one of 74 + * these days... Does it even work properly with NR_CPUS == 1 ? 75 + */ 76 + static inline void mm_needs_global_tlbie(struct mm_struct *mm) 77 + { 78 + int nr = (NR_CPUS > 1) ? NR_CPUS : NR_CPUS + 1; 79 + 80 + /* Global TLBIE broadcast required with SPEs. */ 81 + __cpus_setall(&mm->cpu_vm_mask, nr); 82 + } 83 + 84 + void spu_associate_mm(struct spu *spu, struct mm_struct *mm) 85 + { 86 + unsigned long flags; 87 + 88 + spin_lock_irqsave(&spu_list_lock, flags); 89 + spu->mm = mm; 90 + spin_unlock_irqrestore(&spu_list_lock, flags); 91 + if (mm) 92 + mm_needs_global_tlbie(mm); 93 + } 94 + EXPORT_SYMBOL_GPL(spu_associate_mm); 95 96 static int __spu_trap_invalid_dma(struct spu *spu) 97 { ··· 74 struct spu_priv2 __iomem *priv2 = spu->priv2; 75 struct mm_struct *mm = spu->mm; 76 u64 esid, vsid, llp; 77 + int psize; 78 79 pr_debug("%s\n", __FUNCTION__); 80 ··· 90 case USER_REGION_ID: 91 #ifdef CONFIG_HUGETLB_PAGE 92 if (in_hugepage_area(mm->context, ea)) 93 + psize = mmu_huge_psize; 94 else 95 #endif 96 + psize = mm->context.user_psize; 97 vsid = (get_vsid(mm->context.id, ea) << SLB_VSID_SHIFT) | 98 + SLB_VSID_USER; 99 break; 100 case VMALLOC_REGION_ID: 101 + if (ea < VMALLOC_END) 102 + psize = mmu_vmalloc_psize; 103 + else 104 + psize = mmu_io_psize; 105 vsid = (get_kernel_vsid(ea) << SLB_VSID_SHIFT) | 106 + SLB_VSID_KERNEL; 107 break; 108 case KERNEL_REGION_ID: 109 + psize = mmu_linear_psize; 110 vsid = (get_kernel_vsid(ea) << SLB_VSID_SHIFT) | 111 + SLB_VSID_KERNEL; 112 break; 113 default: 114 /* Future: support kernel segments so that drivers ··· 114 pr_debug("invalid region access at %016lx\n", ea); 115 return 1; 116 } 117 + llp = mmu_psize_defs[psize].sllp; 118 119 out_be64(&priv2->slb_index_W, spu->slb_replace); 120 + out_be64(&priv2->slb_vsid_RW, vsid | llp); 121 out_be64(&priv2->slb_esid_RW, esid); 122 123 spu->slb_replace++; ··· 329 if (spu->irqs[2] != NO_IRQ) 330 free_irq(spu->irqs[2], spu); 331 } 332 333 static void spu_init_channels(struct spu *spu) 334 { ··· 593 struct spu *spu; 594 int ret; 595 static int number; 596 + unsigned long flags; 597 598 ret = -ENOMEM; 599 spu = kzalloc(sizeof (*spu), GFP_KERNEL); ··· 620 goto out_free_irqs; 621 622 mutex_lock(&spu_mutex); 623 + spin_lock_irqsave(&spu_list_lock, flags); 624 list_add(&spu->list, &spu_list[spu->node]); 625 list_add(&spu->full_list, &spu_full_list); 626 + spin_unlock_irqrestore(&spu_list_lock, flags); 627 mutex_unlock(&spu_mutex); 628 629 goto out;
+14 -10
arch/powerpc/platforms/cell/spufs/file.c
··· 63 spufs_mem_read(struct file *file, char __user *buffer, 64 size_t size, loff_t *pos) 65 { 66 - int ret; 67 struct spu_context *ctx = file->private_data; 68 69 spu_acquire(ctx); 70 ret = __spufs_mem_read(ctx, buffer, size, pos); ··· 74 75 static ssize_t 76 spufs_mem_write(struct file *file, const char __user *buffer, 77 - size_t size, loff_t *pos) 78 { 79 struct spu_context *ctx = file->private_data; 80 char *local_store; 81 int ret; 82 83 - size = min_t(ssize_t, LS_SIZE - *pos, size); 84 - if (size <= 0) 85 return -EFBIG; 86 - *pos += size; 87 88 spu_acquire(ctx); 89 - 90 local_store = ctx->ops->get_ls(ctx); 91 - ret = copy_from_user(local_store + *pos - size, 92 - buffer, size) ? -EFAULT : size; 93 - 94 spu_release(ctx); 95 - return ret; 96 } 97 98 static unsigned long spufs_mem_mmap_nopfn(struct vm_area_struct *vma,
··· 63 spufs_mem_read(struct file *file, char __user *buffer, 64 size_t size, loff_t *pos) 65 { 66 struct spu_context *ctx = file->private_data; 67 + ssize_t ret; 68 69 spu_acquire(ctx); 70 ret = __spufs_mem_read(ctx, buffer, size, pos); ··· 74 75 static ssize_t 76 spufs_mem_write(struct file *file, const char __user *buffer, 77 + size_t size, loff_t *ppos) 78 { 79 struct spu_context *ctx = file->private_data; 80 char *local_store; 81 + loff_t pos = *ppos; 82 int ret; 83 84 + if (pos < 0) 85 + return -EINVAL; 86 + if (pos > LS_SIZE) 87 return -EFBIG; 88 + if (size > LS_SIZE - pos) 89 + size = LS_SIZE - pos; 90 91 spu_acquire(ctx); 92 local_store = ctx->ops->get_ls(ctx); 93 + ret = copy_from_user(local_store + pos, buffer, size); 94 spu_release(ctx); 95 + 96 + if (ret) 97 + return -EFAULT; 98 + *ppos = pos + size; 99 + return size; 100 } 101 102 static unsigned long spufs_mem_mmap_nopfn(struct vm_area_struct *vma,
+2 -2
arch/powerpc/platforms/cell/spufs/run.c
··· 143 int ret; 144 unsigned long runcntl = SPU_RUNCNTL_RUNNABLE; 145 146 - ret = spu_acquire_runnable(ctx, SPU_ACTIVATE_NOWAKE); 147 if (ret) 148 return ret; 149 ··· 155 spu_release(ctx); 156 ret = spu_setup_isolated(ctx); 157 if (!ret) 158 - ret = spu_acquire_runnable(ctx, SPU_ACTIVATE_NOWAKE); 159 } 160 161 /* if userspace has set the runcntrl register (eg, to issue an
··· 143 int ret; 144 unsigned long runcntl = SPU_RUNCNTL_RUNNABLE; 145 146 + ret = spu_acquire_runnable(ctx, 0); 147 if (ret) 148 return ret; 149 ··· 155 spu_release(ctx); 156 ret = spu_setup_isolated(ctx); 157 if (!ret) 158 + ret = spu_acquire_runnable(ctx, 0); 159 } 160 161 /* if userspace has set the runcntrl register (eg, to issue an
+4 -16
arch/powerpc/platforms/cell/spufs/sched.c
··· 127 mutex_unlock(&spu_prio->active_mutex[node]); 128 } 129 130 - static inline void mm_needs_global_tlbie(struct mm_struct *mm) 131 - { 132 - int nr = (NR_CPUS > 1) ? NR_CPUS : NR_CPUS + 1; 133 - 134 - /* Global TLBIE broadcast required with SPEs. */ 135 - __cpus_setall(&mm->cpu_vm_mask, nr); 136 - } 137 - 138 static BLOCKING_NOTIFIER_HEAD(spu_switch_notifier); 139 140 static void spu_switch_notify(struct spu *spu, struct spu_context *ctx) ··· 159 ctx->spu = spu; 160 ctx->ops = &spu_hw_ops; 161 spu->pid = current->pid; 162 - spu->mm = ctx->owner; 163 - mm_needs_global_tlbie(spu->mm); 164 spu->ibox_callback = spufs_ibox_callback; 165 spu->wbox_callback = spufs_wbox_callback; 166 spu->stop_callback = spufs_stop_callback; ··· 196 spu->stop_callback = NULL; 197 spu->mfc_callback = NULL; 198 spu->dma_callback = NULL; 199 - spu->mm = NULL; 200 spu->pid = 0; 201 ctx->ops = &spu_backing_ops; 202 ctx->spu = NULL; ··· 254 { 255 DEFINE_WAIT(wait); 256 257 - set_bit(SPU_SCHED_WAKE, &ctx->sched_flags); 258 prepare_to_wait_exclusive(&ctx->stop_wq, &wait, TASK_INTERRUPTIBLE); 259 if (!signal_pending(current)) { 260 mutex_unlock(&ctx->state_mutex); ··· 262 } 263 __set_current_state(TASK_RUNNING); 264 remove_wait_queue(&ctx->stop_wq, &wait); 265 - clear_bit(SPU_SCHED_WAKE, &ctx->sched_flags); 266 } 267 268 /** ··· 281 best = sched_find_first_bit(spu_prio->bitmap); 282 if (best < MAX_PRIO) { 283 struct spu_context *ctx = spu_grab_context(best); 284 - if (ctx && test_bit(SPU_SCHED_WAKE, &ctx->sched_flags)) 285 wake_up(&ctx->stop_wq); 286 } 287 spin_unlock(&spu_prio->runq_lock); ··· 403 } 404 405 spu_add_to_rq(ctx); 406 - if (!(flags & SPU_ACTIVATE_NOWAKE)) 407 - spu_prio_wait(ctx); 408 spu_del_from_rq(ctx); 409 } while (!signal_pending(current)); 410
··· 127 mutex_unlock(&spu_prio->active_mutex[node]); 128 } 129 130 static BLOCKING_NOTIFIER_HEAD(spu_switch_notifier); 131 132 static void spu_switch_notify(struct spu *spu, struct spu_context *ctx) ··· 167 ctx->spu = spu; 168 ctx->ops = &spu_hw_ops; 169 spu->pid = current->pid; 170 + spu_associate_mm(spu, ctx->owner); 171 spu->ibox_callback = spufs_ibox_callback; 172 spu->wbox_callback = spufs_wbox_callback; 173 spu->stop_callback = spufs_stop_callback; ··· 205 spu->stop_callback = NULL; 206 spu->mfc_callback = NULL; 207 spu->dma_callback = NULL; 208 + spu_associate_mm(spu, NULL); 209 spu->pid = 0; 210 ctx->ops = &spu_backing_ops; 211 ctx->spu = NULL; ··· 263 { 264 DEFINE_WAIT(wait); 265 266 prepare_to_wait_exclusive(&ctx->stop_wq, &wait, TASK_INTERRUPTIBLE); 267 if (!signal_pending(current)) { 268 mutex_unlock(&ctx->state_mutex); ··· 272 } 273 __set_current_state(TASK_RUNNING); 274 remove_wait_queue(&ctx->stop_wq, &wait); 275 } 276 277 /** ··· 292 best = sched_find_first_bit(spu_prio->bitmap); 293 if (best < MAX_PRIO) { 294 struct spu_context *ctx = spu_grab_context(best); 295 + if (ctx) 296 wake_up(&ctx->stop_wq); 297 } 298 spin_unlock(&spu_prio->runq_lock); ··· 414 } 415 416 spu_add_to_rq(ctx); 417 + spu_prio_wait(ctx); 418 spu_del_from_rq(ctx); 419 } while (!signal_pending(current)); 420
+2 -4
arch/powerpc/platforms/cell/spufs/spufs.h
··· 41 42 /* ctx->sched_flags */ 43 enum { 44 - SPU_SCHED_WAKE = 0, 45 }; 46 47 struct spu_context { ··· 191 int spu_acquire_runnable(struct spu_context *ctx, unsigned long flags); 192 void spu_acquire_saved(struct spu_context *ctx); 193 int spu_acquire_exclusive(struct spu_context *ctx); 194 - enum { 195 - SPU_ACTIVATE_NOWAKE = 1, 196 - }; 197 int spu_activate(struct spu_context *ctx, unsigned long flags); 198 void spu_deactivate(struct spu_context *ctx); 199 void spu_yield(struct spu_context *ctx);
··· 41 42 /* ctx->sched_flags */ 43 enum { 44 + SPU_SCHED_WAKE = 0, /* currently unused */ 45 }; 46 47 struct spu_context { ··· 191 int spu_acquire_runnable(struct spu_context *ctx, unsigned long flags); 192 void spu_acquire_saved(struct spu_context *ctx); 193 int spu_acquire_exclusive(struct spu_context *ctx); 194 + 195 int spu_activate(struct spu_context *ctx, unsigned long flags); 196 void spu_deactivate(struct spu_context *ctx); 197 void spu_yield(struct spu_context *ctx);
+3 -59
arch/powerpc/platforms/cell/spufs/switch.c
··· 468 MFC_CNTL_PURGE_DMA_COMPLETE); 469 } 470 471 - static inline void save_mfc_slbs(struct spu_state *csa, struct spu *spu) 472 - { 473 - struct spu_priv2 __iomem *priv2 = spu->priv2; 474 - int i; 475 - 476 - /* Save, Step 29: 477 - * If MFC_SR1[R]='1', save SLBs in CSA. 478 - */ 479 - if (spu_mfc_sr1_get(spu) & MFC_STATE1_RELOCATE_MASK) { 480 - csa->priv2.slb_index_W = in_be64(&priv2->slb_index_W); 481 - for (i = 0; i < 8; i++) { 482 - out_be64(&priv2->slb_index_W, i); 483 - eieio(); 484 - csa->slb_esid_RW[i] = in_be64(&priv2->slb_esid_RW); 485 - csa->slb_vsid_RW[i] = in_be64(&priv2->slb_vsid_RW); 486 - eieio(); 487 - } 488 - } 489 - } 490 - 491 static inline void setup_mfc_sr1(struct spu_state *csa, struct spu *spu) 492 { 493 /* Save, Step 30: ··· 688 out_be64(&priv2->mfc_control_RW, MFC_CNTL_RESUME_DMA_QUEUE); 689 } 690 691 - static inline void invalidate_slbs(struct spu_state *csa, struct spu *spu) 692 - { 693 - struct spu_priv2 __iomem *priv2 = spu->priv2; 694 - 695 - /* Save, Step 45: 696 - * Restore, Step 19: 697 - * If MFC_SR1[R]=1, write 0 to SLB_Invalidate_All. 698 - */ 699 - if (spu_mfc_sr1_get(spu) & MFC_STATE1_RELOCATE_MASK) { 700 - out_be64(&priv2->slb_invalidate_all_W, 0UL); 701 - eieio(); 702 - } 703 - } 704 - 705 static inline void get_kernel_slb(u64 ea, u64 slb[2]) 706 { 707 u64 llp; ··· 731 * MFC_SR1[R]=1 (in other words, assume that 732 * translation is desired by OS environment). 733 */ 734 - invalidate_slbs(csa, spu); 735 get_kernel_slb((unsigned long)&spu_save_code[0], code_slb); 736 get_kernel_slb((unsigned long)csa->lscsa, lscsa_slb); 737 load_mfc_slb(spu, code_slb, 0); ··· 1684 } 1685 } 1686 1687 - static inline void restore_mfc_slbs(struct spu_state *csa, struct spu *spu) 1688 - { 1689 - struct spu_priv2 __iomem *priv2 = spu->priv2; 1690 - int i; 1691 - 1692 - /* Restore, Step 68: 1693 - * If MFC_SR1[R]='1', restore SLBs from CSA. 1694 - */ 1695 - if (csa->priv1.mfc_sr1_RW & MFC_STATE1_RELOCATE_MASK) { 1696 - for (i = 0; i < 8; i++) { 1697 - out_be64(&priv2->slb_index_W, i); 1698 - eieio(); 1699 - out_be64(&priv2->slb_esid_RW, csa->slb_esid_RW[i]); 1700 - out_be64(&priv2->slb_vsid_RW, csa->slb_vsid_RW[i]); 1701 - eieio(); 1702 - } 1703 - out_be64(&priv2->slb_index_W, csa->priv2.slb_index_W); 1704 - eieio(); 1705 - } 1706 - } 1707 - 1708 static inline void restore_mfc_sr1(struct spu_state *csa, struct spu *spu) 1709 { 1710 /* Restore, Step 69: ··· 1820 set_mfc_tclass_id(prev, spu); /* Step 26. */ 1821 purge_mfc_queue(prev, spu); /* Step 27. */ 1822 wait_purge_complete(prev, spu); /* Step 28. */ 1823 - save_mfc_slbs(prev, spu); /* Step 29. */ 1824 setup_mfc_sr1(prev, spu); /* Step 30. */ 1825 save_spu_npc(prev, spu); /* Step 31. */ 1826 save_spu_privcntl(prev, spu); /* Step 32. */ ··· 1931 reset_spu_privcntl(prev, spu); /* Step 16. */ 1932 reset_spu_lslr(prev, spu); /* Step 17. */ 1933 setup_mfc_sr1(prev, spu); /* Step 18. */ 1934 - invalidate_slbs(prev, spu); /* Step 19. */ 1935 reset_ch_part1(prev, spu); /* Step 20. */ 1936 reset_ch_part2(prev, spu); /* Step 21. */ 1937 enable_interrupts(prev, spu); /* Step 22. */ ··· 1999 restore_spu_mb(next, spu); /* Step 65. */ 2000 check_ppu_mb_stat(next, spu); /* Step 66. */ 2001 check_ppuint_mb_stat(next, spu); /* Step 67. */ 2002 - restore_mfc_slbs(next, spu); /* Step 68. */ 2003 restore_mfc_sr1(next, spu); /* Step 69. */ 2004 restore_other_spu_access(next, spu); /* Step 70. */ 2005 restore_spu_runcntl(next, spu); /* Step 71. */
··· 468 MFC_CNTL_PURGE_DMA_COMPLETE); 469 } 470 471 static inline void setup_mfc_sr1(struct spu_state *csa, struct spu *spu) 472 { 473 /* Save, Step 30: ··· 708 out_be64(&priv2->mfc_control_RW, MFC_CNTL_RESUME_DMA_QUEUE); 709 } 710 711 static inline void get_kernel_slb(u64 ea, u64 slb[2]) 712 { 713 u64 llp; ··· 765 * MFC_SR1[R]=1 (in other words, assume that 766 * translation is desired by OS environment). 767 */ 768 + spu_invalidate_slbs(spu); 769 get_kernel_slb((unsigned long)&spu_save_code[0], code_slb); 770 get_kernel_slb((unsigned long)csa->lscsa, lscsa_slb); 771 load_mfc_slb(spu, code_slb, 0); ··· 1718 } 1719 } 1720 1721 static inline void restore_mfc_sr1(struct spu_state *csa, struct spu *spu) 1722 { 1723 /* Restore, Step 69: ··· 1875 set_mfc_tclass_id(prev, spu); /* Step 26. */ 1876 purge_mfc_queue(prev, spu); /* Step 27. */ 1877 wait_purge_complete(prev, spu); /* Step 28. */ 1878 setup_mfc_sr1(prev, spu); /* Step 30. */ 1879 save_spu_npc(prev, spu); /* Step 31. */ 1880 save_spu_privcntl(prev, spu); /* Step 32. */ ··· 1987 reset_spu_privcntl(prev, spu); /* Step 16. */ 1988 reset_spu_lslr(prev, spu); /* Step 17. */ 1989 setup_mfc_sr1(prev, spu); /* Step 18. */ 1990 + spu_invalidate_slbs(spu); /* Step 19. */ 1991 reset_ch_part1(prev, spu); /* Step 20. */ 1992 reset_ch_part2(prev, spu); /* Step 21. */ 1993 enable_interrupts(prev, spu); /* Step 22. */ ··· 2055 restore_spu_mb(next, spu); /* Step 65. */ 2056 check_ppu_mb_stat(next, spu); /* Step 66. */ 2057 check_ppuint_mb_stat(next, spu); /* Step 67. */ 2058 + spu_invalidate_slbs(spu); /* Modified Step 68. */ 2059 restore_mfc_sr1(next, spu); /* Step 69. */ 2060 restore_other_spu_access(next, spu); /* Step 70. */ 2061 restore_spu_runcntl(next, spu); /* Step 71. */
+1 -1
arch/powerpc/platforms/ps3/mm.c
··· 294 unsigned long nr_pages; 295 296 if (!firmware_has_feature(FW_FEATURE_PS3_LV1)) 297 - return 0; 298 299 BUG_ON(!mem_init_done); 300
··· 294 unsigned long nr_pages; 295 296 if (!firmware_has_feature(FW_FEATURE_PS3_LV1)) 297 + return -ENODEV; 298 299 BUG_ON(!mem_init_done); 300
+1 -1
arch/powerpc/platforms/ps3/system-bus.c
··· 172 int result; 173 174 if (!firmware_has_feature(FW_FEATURE_PS3_LV1)) 175 - return 0; 176 177 result = bus_register(&ps3_system_bus_type); 178 BUG_ON(result);
··· 172 int result; 173 174 if (!firmware_has_feature(FW_FEATURE_PS3_LV1)) 175 + return -ENODEV; 176 177 result = bus_register(&ps3_system_bus_type); 178 BUG_ON(result);
+8 -1
drivers/ps3/ps3av.c
··· 24 #include <linux/reboot.h> 25 #include <linux/kernel.h> 26 #include <linux/ioctl.h> 27 #include <asm/lv1call.h> 28 #include <asm/ps3av.h> 29 #include <asm/ps3.h> ··· 949 950 static int ps3av_module_init(void) 951 { 952 - int error = ps3_vuart_port_driver_register(&ps3av_driver); 953 if (error) { 954 printk(KERN_ERR 955 "%s: ps3_vuart_port_driver_register failed %d\n",
··· 24 #include <linux/reboot.h> 25 #include <linux/kernel.h> 26 #include <linux/ioctl.h> 27 + 28 + #include <asm/firmware.h> 29 #include <asm/lv1call.h> 30 #include <asm/ps3av.h> 31 #include <asm/ps3.h> ··· 947 948 static int ps3av_module_init(void) 949 { 950 + int error; 951 + 952 + if (!firmware_has_feature(FW_FEATURE_PS3_LV1)) 953 + return -ENODEV; 954 + 955 + error = ps3_vuart_port_driver_register(&ps3av_driver); 956 if (error) { 957 printk(KERN_ERR 958 "%s: ps3_vuart_port_driver_register failed %d\n",
+6
drivers/ps3/sys-manager.c
··· 22 #include <linux/module.h> 23 #include <linux/workqueue.h> 24 #include <linux/reboot.h> 25 #include <asm/ps3.h> 26 #include "vuart.h" 27 28 MODULE_AUTHOR("Sony Corporation"); ··· 601 602 static int __init ps3_sys_manager_init(void) 603 { 604 return ps3_vuart_port_driver_register(&ps3_sys_manager); 605 } 606
··· 22 #include <linux/module.h> 23 #include <linux/workqueue.h> 24 #include <linux/reboot.h> 25 + 26 + #include <asm/firmware.h> 27 #include <asm/ps3.h> 28 + 29 #include "vuart.h" 30 31 MODULE_AUTHOR("Sony Corporation"); ··· 598 599 static int __init ps3_sys_manager_init(void) 600 { 601 + if (!firmware_has_feature(FW_FEATURE_PS3_LV1)) 602 + return -ENODEV; 603 + 604 return ps3_vuart_port_driver_register(&ps3_sys_manager); 605 } 606
+1 -1
drivers/ps3/vuart.c
··· 1031 pr_debug("%s:%d:\n", __func__, __LINE__); 1032 1033 if (!firmware_has_feature(FW_FEATURE_PS3_LV1)) 1034 - return 0; 1035 1036 init_MUTEX(&vuart_bus_priv.probe_mutex); 1037 result = bus_register(&ps3_vuart_bus);
··· 1031 pr_debug("%s:%d:\n", __func__, __LINE__); 1032 1033 if (!firmware_has_feature(FW_FEATURE_PS3_LV1)) 1034 + return -ENODEV; 1035 1036 init_MUTEX(&vuart_bus_priv.probe_mutex); 1037 result = bus_register(&ps3_vuart_bus);
+7
include/asm-powerpc/spu.h
··· 165 int spu_irq_class_1_bottom(struct spu *spu); 166 void spu_irq_setaffinity(struct spu *spu, int cpu); 167 168 /* system callbacks from the SPU */ 169 struct spu_syscall_block { 170 u64 nr_ret;
··· 165 int spu_irq_class_1_bottom(struct spu *spu); 166 void spu_irq_setaffinity(struct spu *spu, int cpu); 167 168 + extern void spu_invalidate_slbs(struct spu *spu); 169 + extern void spu_associate_mm(struct spu *spu, struct mm_struct *mm); 170 + 171 + /* Calls from the memory management to the SPU */ 172 + struct mm_struct; 173 + extern void spu_flush_all_slbs(struct mm_struct *mm); 174 + 175 /* system callbacks from the SPU */ 176 struct spu_syscall_block { 177 u64 nr_ret;
-4
include/asm-powerpc/spu_csa.h
··· 221 * @spu_chnlcnt_RW: Array of saved channel counts. 222 * @spu_chnldata_RW: Array of saved channel data. 223 * @suspend_time: Time stamp when decrementer disabled. 224 - * @slb_esid_RW: Array of saved SLB esid entries. 225 - * @slb_vsid_RW: Array of saved SLB vsid entries. 226 * 227 * Structure representing the whole of the SPU 228 * context save area (CSA). This struct contains ··· 243 u32 spu_mailbox_data[4]; 244 u32 pu_mailbox_data[1]; 245 unsigned long suspend_time; 246 - u64 slb_esid_RW[8]; 247 - u64 slb_vsid_RW[8]; 248 spinlock_t register_lock; 249 }; 250
··· 221 * @spu_chnlcnt_RW: Array of saved channel counts. 222 * @spu_chnldata_RW: Array of saved channel data. 223 * @suspend_time: Time stamp when decrementer disabled. 224 * 225 * Structure representing the whole of the SPU 226 * context save area (CSA). This struct contains ··· 245 u32 spu_mailbox_data[4]; 246 u32 pu_mailbox_data[1]; 247 unsigned long suspend_time; 248 spinlock_t register_lock; 249 }; 250