Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
[IA64] update sn2_defconfig
[IA64] Fix kernel hangup in kdump on INIT
[IA64] Fix kernel panic in kdump on INIT
[IA64] Remove vector from ia64_machine_kexec()
[IA64] Fix race when multiple cpus go through MCA
[IA64] Remove needless delay in MCA rendezvous
[IA64] add driver for ACPI methods to call native firmware
[IA64] abstract SAL_CALL wrapper to allow other firmware entry points
[IA64] perfmon: Remove exit_pfm_fs()
[IA64] tree-wide: Misc __cpu{initdata, init, exit} annotations

+513 -336
+10
arch/ia64/Kconfig
··· 461 461 firmware extensions, such as the ability to inject memory-errors 462 462 for test-purposes. If you're unsure, say N. 463 463 464 + config IA64_HP_AML_NFW 465 + bool "Support ACPI AML calls to native firmware" 466 + help 467 + This driver installs a global ACPI Operation Region handler for 468 + region 0xA1. AML methods can use this OpRegion to call arbitrary 469 + native firmware functions. The driver installs the OpRegion 470 + handler if there is an HPQ5001 device or if the user supplies 471 + the "force" module parameter, e.g., with the "aml_nfw.force" 472 + kernel command line option. 473 + 464 474 source "drivers/sn/Kconfig" 465 475 466 476 config KEXEC
+191 -256
arch/ia64/configs/sn2_defconfig
··· 1 1 # 2 2 # Automatically generated make config: don't edit 3 - # Linux kernel version: 2.6.19-rc1 4 - # Mon Oct 9 10:53:59 2006 3 + # Linux kernel version: 2.6.23-rc6 4 + # Tue Sep 18 11:24:01 2007 5 5 # 6 6 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 7 7 8 8 # 9 - # Code maturity level options 9 + # General setup 10 10 # 11 11 CONFIG_EXPERIMENTAL=y 12 12 CONFIG_LOCK_KERNEL=y 13 13 CONFIG_INIT_ENV_ARG_LIMIT=32 14 - 15 - # 16 - # General setup 17 - # 18 14 CONFIG_LOCALVERSION="" 19 15 # CONFIG_LOCALVERSION_AUTO is not set 20 16 CONFIG_SWAP=y 21 17 CONFIG_SYSVIPC=y 22 - # CONFIG_IPC_NS is not set 18 + CONFIG_SYSVIPC_SYSCTL=y 23 19 CONFIG_POSIX_MQUEUE=y 24 20 # CONFIG_BSD_PROCESS_ACCT is not set 25 21 CONFIG_TASKSTATS=y 26 22 # CONFIG_TASK_DELAY_ACCT is not set 27 - # CONFIG_UTS_NS is not set 23 + CONFIG_TASK_XACCT=y 24 + CONFIG_TASK_IO_ACCOUNTING=y 25 + # CONFIG_USER_NS is not set 28 26 # CONFIG_AUDIT is not set 29 27 # CONFIG_IKCONFIG is not set 28 + CONFIG_LOG_BUF_SHIFT=20 30 29 CONFIG_CPUSETS=y 30 + CONFIG_SYSFS_DEPRECATED=y 31 31 CONFIG_RELAY=y 32 + CONFIG_BLK_DEV_INITRD=y 32 33 CONFIG_INITRAMFS_SOURCE="" 33 34 CONFIG_CC_OPTIMIZE_FOR_SIZE=y 34 - CONFIG_TASK_XACCT=y 35 35 CONFIG_SYSCTL=y 36 36 # CONFIG_EMBEDDED is not set 37 - # CONFIG_SYSCTL_SYSCALL is not set 37 + CONFIG_SYSCTL_SYSCALL=y 38 38 CONFIG_KALLSYMS=y 39 39 CONFIG_KALLSYMS_ALL=y 40 40 # CONFIG_KALLSYMS_EXTRA_PASS is not set ··· 44 44 CONFIG_ELF_CORE=y 45 45 CONFIG_BASE_FULL=y 46 46 CONFIG_FUTEX=y 47 + CONFIG_ANON_INODES=y 47 48 CONFIG_EPOLL=y 49 + CONFIG_SIGNALFD=y 50 + CONFIG_TIMERFD=y 51 + CONFIG_EVENTFD=y 48 52 CONFIG_SHMEM=y 49 - CONFIG_SLUB=y 50 53 CONFIG_VM_EVENT_COUNTERS=y 54 + CONFIG_SLUB_DEBUG=y 55 + # CONFIG_SLAB is not set 56 + CONFIG_SLUB=y 57 + # CONFIG_SLOB is not set 51 58 CONFIG_RT_MUTEXES=y 52 59 # CONFIG_TINY_SHMEM is not set 53 60 CONFIG_BASE_SMALL=0 54 - # CONFIG_SLOB is not set 55 - 56 - # 57 - # Loadable module support 58 - # 59 61 CONFIG_MODULES=y 60 62 CONFIG_MODULE_UNLOAD=y 61 63 # CONFIG_MODULE_FORCE_UNLOAD is not set ··· 65 63 # CONFIG_MODULE_SRCVERSION_ALL is not set 66 64 CONFIG_KMOD=y 67 65 CONFIG_STOP_MACHINE=y 68 - 69 - # 70 - # Block layer 71 - # 72 66 CONFIG_BLOCK=y 73 67 # CONFIG_BLK_DEV_IO_TRACE is not set 68 + CONFIG_BLK_DEV_BSG=y 74 69 75 70 # 76 71 # IO Schedulers ··· 87 88 # 88 89 CONFIG_IA64=y 89 90 CONFIG_64BIT=y 91 + CONFIG_QUICKLIST=y 90 92 CONFIG_MMU=y 91 - CONFIG_SWIOTLB=y 92 93 CONFIG_RWSEM_XCHGADD_ALGORITHM=y 94 + # CONFIG_ARCH_HAS_ILOG2_U32 is not set 95 + # CONFIG_ARCH_HAS_ILOG2_U64 is not set 93 96 CONFIG_GENERIC_FIND_NEXT_BIT=y 94 97 CONFIG_GENERIC_CALIBRATE_DELAY=y 95 98 CONFIG_GENERIC_TIME=y 99 + CONFIG_GENERIC_TIME_VSYSCALL=y 96 100 CONFIG_DMI=y 97 101 CONFIG_EFI=y 98 102 CONFIG_GENERIC_IOMAP=y ··· 118 116 CONFIG_PGTABLE_4=y 119 117 # CONFIG_HZ_100 is not set 120 118 CONFIG_HZ_250=y 119 + # CONFIG_HZ_300 is not set 121 120 # CONFIG_HZ_1000 is not set 122 121 CONFIG_HZ=250 123 122 CONFIG_IA64_L1_CACHE_SHIFT=7 ··· 131 128 # CONFIG_HOTPLUG_CPU is not set 132 129 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 133 130 CONFIG_SCHED_SMT=y 134 - CONFIG_PREEMPT=y 131 + CONFIG_PREEMPT_NONE=y 132 + # CONFIG_PREEMPT_VOLUNTARY is not set 133 + # CONFIG_PREEMPT is not set 134 + CONFIG_PREEMPT_BKL=y 135 135 CONFIG_SELECT_MEMORY_MODEL=y 136 136 # CONFIG_FLATMEM_MANUAL is not set 137 137 CONFIG_DISCONTIGMEM_MANUAL=y ··· 146 140 CONFIG_SPLIT_PTLOCK_CPUS=4 147 141 CONFIG_MIGRATION=y 148 142 CONFIG_RESOURCES_64BIT=y 143 + CONFIG_ZONE_DMA_FLAG=0 144 + CONFIG_NR_QUICK=1 145 + CONFIG_VIRT_TO_BUS=y 149 146 CONFIG_ARCH_SELECT_MEMORY_MODEL=y 150 147 CONFIG_ARCH_DISCONTIGMEM_ENABLE=y 151 148 CONFIG_ARCH_FLATMEM_ENABLE=y ··· 163 154 CONFIG_HAVE_ARCH_NODEDATA_EXTENSION=y 164 155 CONFIG_IA32_SUPPORT=y 165 156 CONFIG_COMPAT=y 157 + CONFIG_COMPAT_FOR_U64_ALIGNMENT=y 166 158 CONFIG_IA64_MCA_RECOVERY=y 167 159 CONFIG_PERFMON=y 168 160 CONFIG_IA64_PALINFO=y 161 + CONFIG_IA64_MC_ERR_INJECT=y 169 162 CONFIG_SGI_SN=y 170 163 # CONFIG_IA64_ESI is not set 171 164 172 165 # 173 166 # SN Devices 174 167 # 175 - CONFIG_SGI_IOC4=y 176 168 CONFIG_SGI_IOC3=y 177 169 178 170 # ··· 181 171 # 182 172 CONFIG_EFI_VARS=y 183 173 CONFIG_EFI_PCDP=y 174 + CONFIG_DMIID=y 184 175 CONFIG_BINFMT_ELF=y 185 176 # CONFIG_BINFMT_MISC is not set 186 177 ··· 191 180 CONFIG_PM=y 192 181 # CONFIG_PM_LEGACY is not set 193 182 # CONFIG_PM_DEBUG is not set 194 - # CONFIG_PM_SYSFS_DEPRECATED is not set 195 - 196 - # 197 - # ACPI (Advanced Configuration and Power Interface) Support 198 - # 199 183 CONFIG_ACPI=y 184 + # CONFIG_ACPI_PROCFS is not set 185 + CONFIG_ACPI_PROC_EVENT=y 200 186 # CONFIG_ACPI_BUTTON is not set 201 187 # CONFIG_ACPI_FAN is not set 202 188 # CONFIG_ACPI_DOCK is not set ··· 216 208 # 217 209 CONFIG_PCI=y 218 210 CONFIG_PCI_DOMAINS=y 211 + CONFIG_PCI_SYSCALL=y 219 212 CONFIG_PCIEPORTBUS=y 220 213 CONFIG_HOTPLUG_PCI_PCIE=y 221 214 # CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set 222 215 CONFIG_PCIEAER=y 216 + CONFIG_ARCH_SUPPORTS_MSI=y 223 217 # CONFIG_PCI_MSI is not set 224 - # CONFIG_PCI_MULTITHREAD_PROBE is not set 225 218 # CONFIG_PCI_DEBUG is not set 226 - 227 - # 228 - # PCI Hotplug Support 229 - # 230 219 CONFIG_HOTPLUG_PCI=y 231 220 # CONFIG_HOTPLUG_PCI_FAKE is not set 232 221 # CONFIG_HOTPLUG_PCI_ACPI is not set ··· 244 239 # 245 240 # Networking options 246 241 # 247 - # CONFIG_NETDEBUG is not set 248 242 CONFIG_PACKET=y 249 243 CONFIG_PACKET_MMAP=y 250 244 CONFIG_UNIX=y 251 245 CONFIG_XFRM=y 252 246 # CONFIG_XFRM_USER is not set 253 247 # CONFIG_XFRM_SUB_POLICY is not set 248 + # CONFIG_XFRM_MIGRATE is not set 254 249 # CONFIG_NET_KEY is not set 255 250 CONFIG_INET=y 256 251 CONFIG_IP_MULTICAST=y ··· 266 261 # CONFIG_INET_ESP is not set 267 262 # CONFIG_INET_IPCOMP is not set 268 263 # CONFIG_INET_XFRM_TUNNEL is not set 269 - # CONFIG_INET_TUNNEL is not set 264 + CONFIG_INET_TUNNEL=m 270 265 CONFIG_INET_XFRM_MODE_TRANSPORT=y 271 266 CONFIG_INET_XFRM_MODE_TUNNEL=y 272 267 CONFIG_INET_XFRM_MODE_BEET=y ··· 275 270 # CONFIG_TCP_CONG_ADVANCED is not set 276 271 CONFIG_TCP_CONG_CUBIC=y 277 272 CONFIG_DEFAULT_TCP_CONG="cubic" 273 + # CONFIG_TCP_MD5SIG is not set 278 274 CONFIG_IPV6=m 279 275 # CONFIG_IPV6_PRIVACY is not set 280 276 # CONFIG_IPV6_ROUTER_PREF is not set 277 + # CONFIG_IPV6_OPTIMISTIC_DAD is not set 281 278 # CONFIG_INET6_AH is not set 282 279 # CONFIG_INET6_ESP is not set 283 280 # CONFIG_INET6_IPCOMP is not set ··· 290 283 CONFIG_INET6_XFRM_MODE_TUNNEL=m 291 284 CONFIG_INET6_XFRM_MODE_BEET=m 292 285 # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 286 + CONFIG_IPV6_SIT=m 293 287 # CONFIG_IPV6_TUNNEL is not set 294 - # CONFIG_IPV6_SUBTREES is not set 295 288 # CONFIG_IPV6_MULTIPLE_TABLES is not set 296 289 # CONFIG_NETWORK_SECMARK is not set 297 290 # CONFIG_NETFILTER is not set 298 - 299 - # 300 - # DCCP Configuration (EXPERIMENTAL) 301 - # 302 291 # CONFIG_IP_DCCP is not set 303 - 304 - # 305 - # SCTP Configuration (EXPERIMENTAL) 306 - # 307 292 # CONFIG_IP_SCTP is not set 308 - 309 - # 310 - # TIPC Configuration (EXPERIMENTAL) 311 - # 312 293 # CONFIG_TIPC is not set 313 294 # CONFIG_ATM is not set 314 295 # CONFIG_BRIDGE is not set ··· 322 327 # CONFIG_HAMRADIO is not set 323 328 # CONFIG_IRDA is not set 324 329 # CONFIG_BT is not set 330 + # CONFIG_AF_RXRPC is not set 331 + 332 + # 333 + # Wireless 334 + # 335 + # CONFIG_CFG80211 is not set 336 + # CONFIG_WIRELESS_EXT is not set 337 + # CONFIG_MAC80211 is not set 325 338 # CONFIG_IEEE80211 is not set 339 + # CONFIG_RFKILL is not set 340 + # CONFIG_NET_9P is not set 326 341 327 342 # 328 343 # Device Drivers ··· 345 340 CONFIG_PREVENT_FIRMWARE_BUILD=y 346 341 CONFIG_FW_LOADER=y 347 342 # CONFIG_DEBUG_DRIVER is not set 343 + # CONFIG_DEBUG_DEVRES is not set 348 344 # CONFIG_SYS_HYPERVISOR is not set 349 - 350 - # 351 - # Connector - unified userspace <-> kernelspace linker 352 - # 353 345 # CONFIG_CONNECTOR is not set 354 - 355 - # 356 - # Memory Technology Devices (MTD) 357 - # 358 346 # CONFIG_MTD is not set 359 - 360 - # 361 - # Parallel port support 362 - # 363 347 # CONFIG_PARPORT is not set 348 + CONFIG_PNP=y 349 + # CONFIG_PNP_DEBUG is not set 364 350 365 351 # 366 - # Plug and Play support 352 + # Protocols 367 353 # 368 - # CONFIG_PNP is not set 369 - 370 - # 371 - # Block devices 372 - # 354 + CONFIG_PNPACPI=y 355 + CONFIG_BLK_DEV=y 373 356 # CONFIG_BLK_CPQ_DA is not set 374 357 # CONFIG_BLK_CPQ_CISS_DA is not set 375 358 # CONFIG_BLK_DEV_DAC960 is not set ··· 372 379 CONFIG_BLK_DEV_RAM_COUNT=16 373 380 CONFIG_BLK_DEV_RAM_SIZE=4096 374 381 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 375 - CONFIG_BLK_DEV_INITRD=y 376 382 # CONFIG_CDROM_PKTCDVD is not set 377 383 CONFIG_ATA_OVER_ETH=m 378 - 379 - # 380 - # ATA/ATAPI/MFM/RLL support 381 - # 384 + CONFIG_MISC_DEVICES=y 385 + # CONFIG_PHANTOM is not set 386 + # CONFIG_EEPROM_93CX6 is not set 387 + CONFIG_SGI_IOC4=y 388 + # CONFIG_TIFM_CORE is not set 382 389 CONFIG_IDE=y 383 390 CONFIG_IDE_MAX_HWIFS=4 384 391 CONFIG_BLK_DEV_IDE=y ··· 393 400 # CONFIG_BLK_DEV_IDETAPE is not set 394 401 # CONFIG_BLK_DEV_IDEFLOPPY is not set 395 402 # CONFIG_BLK_DEV_IDESCSI is not set 403 + # CONFIG_BLK_DEV_IDEACPI is not set 396 404 # CONFIG_IDE_TASK_IOCTL is not set 405 + CONFIG_IDE_PROC_FS=y 397 406 398 407 # 399 408 # IDE chipset support/bugfixes 400 409 # 401 410 CONFIG_IDE_GENERIC=y 411 + # CONFIG_BLK_DEV_IDEPNP is not set 402 412 CONFIG_BLK_DEV_IDEPCI=y 403 413 CONFIG_IDEPCI_SHARE_IRQ=y 414 + CONFIG_IDEPCI_PCIBUS_ORDER=y 404 415 # CONFIG_BLK_DEV_OFFBOARD is not set 405 416 # CONFIG_BLK_DEV_GENERIC is not set 406 417 # CONFIG_BLK_DEV_OPTI621 is not set 407 418 CONFIG_BLK_DEV_IDEDMA_PCI=y 408 419 # CONFIG_BLK_DEV_IDEDMA_FORCED is not set 409 - CONFIG_IDEDMA_PCI_AUTO=y 410 420 # CONFIG_IDEDMA_ONLYDISK is not set 411 421 # CONFIG_BLK_DEV_AEC62XX is not set 412 422 # CONFIG_BLK_DEV_ALI15X3 is not set ··· 424 428 # CONFIG_BLK_DEV_JMICRON is not set 425 429 # CONFIG_BLK_DEV_SC1200 is not set 426 430 # CONFIG_BLK_DEV_PIIX is not set 431 + # CONFIG_BLK_DEV_IT8213 is not set 427 432 # CONFIG_BLK_DEV_IT821X is not set 428 433 # CONFIG_BLK_DEV_NS87415 is not set 429 434 # CONFIG_BLK_DEV_PDC202XX_OLD is not set ··· 435 438 # CONFIG_BLK_DEV_SLC90E66 is not set 436 439 # CONFIG_BLK_DEV_TRM290 is not set 437 440 # CONFIG_BLK_DEV_VIA82CXXX is not set 441 + # CONFIG_BLK_DEV_TC86C001 is not set 438 442 # CONFIG_IDE_ARM is not set 439 443 CONFIG_BLK_DEV_IDEDMA=y 440 444 # CONFIG_IDEDMA_IVB is not set 441 - CONFIG_IDEDMA_AUTO=y 442 445 # CONFIG_BLK_DEV_HD is not set 443 446 444 447 # ··· 446 449 # 447 450 # CONFIG_RAID_ATTRS is not set 448 451 CONFIG_SCSI=y 452 + CONFIG_SCSI_DMA=y 453 + # CONFIG_SCSI_TGT is not set 449 454 CONFIG_SCSI_NETLINK=y 450 455 CONFIG_SCSI_PROC_FS=y 451 456 ··· 468 469 # CONFIG_SCSI_MULTI_LUN is not set 469 470 CONFIG_SCSI_CONSTANTS=y 470 471 # CONFIG_SCSI_LOGGING is not set 472 + # CONFIG_SCSI_SCAN_ASYNC is not set 473 + CONFIG_SCSI_WAIT_SCAN=m 471 474 472 475 # 473 476 # SCSI Transports ··· 479 478 CONFIG_SCSI_ISCSI_ATTRS=m 480 479 CONFIG_SCSI_SAS_ATTRS=y 481 480 CONFIG_SCSI_SAS_LIBSAS=y 481 + # CONFIG_SCSI_SAS_ATA is not set 482 482 # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set 483 - 484 - # 485 - # SCSI low-level drivers 486 - # 483 + CONFIG_SCSI_LOWLEVEL=y 487 484 CONFIG_ISCSI_TCP=m 488 485 # CONFIG_BLK_DEV_3W_XXXX_RAID is not set 489 486 # CONFIG_SCSI_3W_9XXX is not set ··· 511 512 # CONFIG_SCSI_DC395x is not set 512 513 # CONFIG_SCSI_DC390T is not set 513 514 # CONFIG_SCSI_DEBUG is not set 514 - 515 - # 516 - # Serial ATA (prod) and Parallel ATA (experimental) drivers 517 - # 515 + # CONFIG_SCSI_SRP is not set 518 516 CONFIG_ATA=y 517 + CONFIG_ATA_NONSTANDARD=y 518 + CONFIG_ATA_ACPI=y 519 519 # CONFIG_SATA_AHCI is not set 520 520 # CONFIG_SATA_SVW is not set 521 521 # CONFIG_ATA_PIIX is not set ··· 530 532 # CONFIG_SATA_ULI is not set 531 533 # CONFIG_SATA_VIA is not set 532 534 CONFIG_SATA_VITESSE=y 535 + # CONFIG_SATA_INIC162X is not set 533 536 # CONFIG_PATA_ALI is not set 534 537 # CONFIG_PATA_AMD is not set 535 538 # CONFIG_PATA_ARTOP is not set 536 539 # CONFIG_PATA_ATIIXP is not set 540 + # CONFIG_PATA_CMD640_PCI is not set 537 541 # CONFIG_PATA_CMD64X is not set 538 542 # CONFIG_PATA_CS5520 is not set 539 543 # CONFIG_PATA_CS5530 is not set ··· 547 547 # CONFIG_PATA_HPT3X2N is not set 548 548 # CONFIG_PATA_HPT3X3 is not set 549 549 # CONFIG_PATA_IT821X is not set 550 + # CONFIG_PATA_IT8213 is not set 550 551 # CONFIG_PATA_JMICRON is not set 551 552 # CONFIG_PATA_TRIFLEX is not set 553 + # CONFIG_PATA_MARVELL is not set 552 554 # CONFIG_PATA_MPIIX is not set 553 555 # CONFIG_PATA_OLDPIIX is not set 554 556 # CONFIG_PATA_NETCELL is not set ··· 567 565 # CONFIG_PATA_SIS is not set 568 566 # CONFIG_PATA_VIA is not set 569 567 # CONFIG_PATA_WINBOND is not set 570 - 571 - # 572 - # Multi-device support (RAID and LVM) 573 - # 574 568 CONFIG_MD=y 575 569 CONFIG_BLK_DEV_MD=y 576 570 CONFIG_MD_LINEAR=y ··· 585 587 CONFIG_DM_ZERO=m 586 588 CONFIG_DM_MULTIPATH=m 587 589 CONFIG_DM_MULTIPATH_EMC=m 590 + # CONFIG_DM_MULTIPATH_RDAC is not set 591 + # CONFIG_DM_DELAY is not set 588 592 589 593 # 590 594 # Fusion MPT device support ··· 597 597 CONFIG_FUSION_SAS=y 598 598 CONFIG_FUSION_MAX_SGE=128 599 599 CONFIG_FUSION_CTL=m 600 + CONFIG_FUSION_LOGGING=y 600 601 601 602 # 602 603 # IEEE 1394 (FireWire) support 603 604 # 605 + # CONFIG_FIREWIRE is not set 604 606 # CONFIG_IEEE1394 is not set 605 - 606 - # 607 - # I2O device support 608 - # 609 607 # CONFIG_I2O is not set 610 - 611 - # 612 - # Network device support 613 - # 614 608 CONFIG_NETDEVICES=y 609 + # CONFIG_NETDEVICES_MULTIQUEUE is not set 615 610 # CONFIG_DUMMY is not set 616 611 # CONFIG_BONDING is not set 612 + # CONFIG_MACVLAN is not set 617 613 # CONFIG_EQUALIZER is not set 618 614 # CONFIG_TUN is not set 619 - 620 - # 621 - # ARCnet devices 622 - # 615 + # CONFIG_NET_SB1000 is not set 623 616 # CONFIG_ARCNET is not set 624 - 625 - # 626 - # PHY device support 627 - # 628 - 629 - # 630 - # Ethernet (10 or 100Mbit) 631 - # 632 617 # CONFIG_NET_ETHERNET is not set 633 - 634 - # 635 - # Ethernet (1000 Mbit) 636 - # 618 + CONFIG_NETDEV_1000=y 637 619 # CONFIG_ACENIC is not set 638 620 # CONFIG_DL2K is not set 639 621 # CONFIG_E1000 is not set ··· 627 645 # CONFIG_SKGE is not set 628 646 # CONFIG_SKY2 is not set 629 647 # CONFIG_SK98LIN is not set 648 + # CONFIG_VIA_VELOCITY is not set 630 649 CONFIG_TIGON3=y 631 650 # CONFIG_BNX2 is not set 632 651 # CONFIG_QLA3XXX is not set 633 - 634 - # 635 - # Ethernet (10000 Mbit) 636 - # 652 + # CONFIG_ATL1 is not set 653 + CONFIG_NETDEV_10000=y 637 654 CONFIG_CHELSIO_T1=m 655 + CONFIG_CHELSIO_T1_1G=y 656 + # CONFIG_CHELSIO_T1_NAPI is not set 657 + CONFIG_CHELSIO_T3=m 638 658 # CONFIG_IXGB is not set 639 659 CONFIG_S2IO=m 640 660 # CONFIG_S2IO_NAPI is not set 641 661 # CONFIG_MYRI10GE is not set 642 - 643 - # 644 - # Token Ring devices 645 - # 662 + # CONFIG_NETXEN_NIC is not set 663 + # CONFIG_MLX4_CORE is not set 646 664 # CONFIG_TR is not set 647 665 648 666 # 649 - # Wireless LAN (non-hamradio) 667 + # Wireless LAN 650 668 # 651 - # CONFIG_NET_RADIO is not set 669 + # CONFIG_WLAN_PRE80211 is not set 670 + # CONFIG_WLAN_80211 is not set 652 671 653 672 # 654 - # Wan interfaces 673 + # USB Network Adapters 655 674 # 675 + # CONFIG_USB_CATC is not set 676 + # CONFIG_USB_KAWETH is not set 677 + # CONFIG_USB_PEGASUS is not set 678 + # CONFIG_USB_RTL8150 is not set 679 + # CONFIG_USB_USBNET_MII is not set 680 + # CONFIG_USB_USBNET is not set 656 681 # CONFIG_WAN is not set 657 682 # CONFIG_FDDI is not set 658 683 # CONFIG_HIPPI is not set ··· 669 680 # CONFIG_SHAPER is not set 670 681 CONFIG_NETCONSOLE=y 671 682 CONFIG_NETPOLL=y 672 - # CONFIG_NETPOLL_RX is not set 673 683 # CONFIG_NETPOLL_TRAP is not set 674 684 CONFIG_NET_POLL_CONTROLLER=y 675 - 676 - # 677 - # ISDN subsystem 678 - # 679 685 # CONFIG_ISDN is not set 680 - 681 - # 682 - # Telephony Support 683 - # 684 686 # CONFIG_PHONE is not set 685 687 686 688 # ··· 679 699 # 680 700 CONFIG_INPUT=y 681 701 # CONFIG_INPUT_FF_MEMLESS is not set 702 + # CONFIG_INPUT_POLLDEV is not set 682 703 683 704 # 684 705 # Userland interfaces ··· 699 718 # CONFIG_INPUT_KEYBOARD is not set 700 719 # CONFIG_INPUT_MOUSE is not set 701 720 # CONFIG_INPUT_JOYSTICK is not set 721 + # CONFIG_INPUT_TABLET is not set 702 722 # CONFIG_INPUT_TOUCHSCREEN is not set 703 723 # CONFIG_INPUT_MISC is not set 704 724 ··· 723 741 # CONFIG_DIGIEPCA is not set 724 742 # CONFIG_MOXA_INTELLIO is not set 725 743 # CONFIG_MOXA_SMARTIO is not set 744 + # CONFIG_MOXA_SMARTIO_NEW is not set 726 745 # CONFIG_ISI is not set 727 746 # CONFIG_SYNCLINKMP is not set 728 747 # CONFIG_SYNCLINK_GT is not set ··· 735 752 CONFIG_SGI_SNSC=y 736 753 CONFIG_SGI_TIOCX=y 737 754 CONFIG_SGI_MBCS=m 738 - CONFIG_MSPEC=y 739 755 740 756 # 741 757 # Serial drivers ··· 753 771 CONFIG_UNIX98_PTYS=y 754 772 CONFIG_LEGACY_PTYS=y 755 773 CONFIG_LEGACY_PTY_COUNT=256 756 - 757 - # 758 - # IPMI 759 - # 760 774 # CONFIG_IPMI_HANDLER is not set 761 - 762 - # 763 - # Watchdog Cards 764 - # 765 775 # CONFIG_WATCHDOG is not set 766 776 # CONFIG_HW_RANDOM is not set 767 777 CONFIG_EFI_RTC=y 768 - # CONFIG_DTLK is not set 769 778 # CONFIG_R3964 is not set 770 779 # CONFIG_APPLICOM is not set 771 - 772 - # 773 - # Ftape, the floppy tape device driver 774 - # 775 780 CONFIG_AGP=y 776 - # CONFIG_AGP_SIS is not set 777 - # CONFIG_AGP_VIA is not set 778 781 CONFIG_AGP_SGI_TIOCA=y 779 782 # CONFIG_DRM is not set 780 783 CONFIG_RAW_DRIVER=m ··· 767 800 # CONFIG_HPET is not set 768 801 # CONFIG_HANGCHECK_TIMER is not set 769 802 CONFIG_MMTIMER=y 770 - 771 - # 772 - # TPM devices 773 - # 774 803 # CONFIG_TCG_TPM is not set 775 - # CONFIG_TELCLOCK is not set 776 - 777 - # 778 - # I2C support 779 - # 804 + CONFIG_DEVPORT=y 780 805 # CONFIG_I2C is not set 781 806 782 807 # ··· 776 817 # 777 818 # CONFIG_SPI is not set 778 819 # CONFIG_SPI_MASTER is not set 779 - 780 - # 781 - # Dallas's 1-wire bus 782 - # 783 - 784 - # 785 - # Hardware Monitoring support 786 - # 820 + # CONFIG_W1 is not set 821 + # CONFIG_POWER_SUPPLY is not set 787 822 # CONFIG_HWMON is not set 788 - # CONFIG_HWMON_VID is not set 789 823 790 824 # 791 - # Misc devices 825 + # Multifunction device drivers 792 826 # 793 - # CONFIG_TIFM_CORE is not set 827 + # CONFIG_MFD_SM501 is not set 794 828 795 829 # 796 830 # Multimedia devices 797 831 # 798 832 # CONFIG_VIDEO_DEV is not set 799 - 800 - # 801 - # Digital Video Broadcasting Devices 802 - # 803 - # CONFIG_DVB is not set 804 - # CONFIG_USB_DABUSB is not set 833 + # CONFIG_DVB_CORE is not set 834 + # CONFIG_DAB is not set 805 835 806 836 # 807 837 # Graphics support 808 838 # 809 - CONFIG_FIRMWARE_EDID=y 839 + # CONFIG_BACKLIGHT_LCD_SUPPORT is not set 840 + 841 + # 842 + # Display device support 843 + # 844 + # CONFIG_DISPLAY_SUPPORT is not set 845 + # CONFIG_VGASTATE is not set 846 + CONFIG_VIDEO_OUTPUT_CONTROL=m 810 847 # CONFIG_FB is not set 811 848 812 849 # ··· 811 856 CONFIG_VGA_CONSOLE=y 812 857 # CONFIG_VGACON_SOFT_SCROLLBACK is not set 813 858 CONFIG_DUMMY_CONSOLE=y 814 - # CONFIG_BACKLIGHT_LCD_SUPPORT is not set 815 859 816 860 # 817 861 # Sound 818 862 # 819 863 # CONFIG_SOUND is not set 864 + CONFIG_HID_SUPPORT=y 865 + CONFIG_HID=y 866 + CONFIG_HID_DEBUG=y 820 867 821 868 # 822 - # USB support 869 + # USB Input Devices 823 870 # 871 + CONFIG_USB_HID=m 872 + # CONFIG_USB_HIDINPUT_POWERBOOK is not set 873 + # CONFIG_HID_FF is not set 874 + # CONFIG_USB_HIDDEV is not set 875 + 876 + # 877 + # USB HID Boot Protocol drivers 878 + # 879 + # CONFIG_USB_KBD is not set 880 + # CONFIG_USB_MOUSE is not set 881 + CONFIG_USB_SUPPORT=y 824 882 CONFIG_USB_ARCH_HAS_HCD=y 825 883 CONFIG_USB_ARCH_HAS_OHCI=y 826 884 CONFIG_USB_ARCH_HAS_EHCI=y ··· 844 876 # Miscellaneous USB options 845 877 # 846 878 # CONFIG_USB_DEVICEFS is not set 847 - # CONFIG_USB_BANDWIDTH is not set 879 + CONFIG_USB_DEVICE_CLASS=y 848 880 # CONFIG_USB_DYNAMIC_MINORS is not set 849 881 # CONFIG_USB_SUSPEND is not set 882 + # CONFIG_USB_PERSIST is not set 850 883 # CONFIG_USB_OTG is not set 851 884 852 885 # ··· 859 890 # CONFIG_USB_EHCI_TT_NEWSCHED is not set 860 891 # CONFIG_USB_ISP116X_HCD is not set 861 892 CONFIG_USB_OHCI_HCD=m 862 - # CONFIG_USB_OHCI_BIG_ENDIAN is not set 893 + # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 894 + # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 863 895 CONFIG_USB_OHCI_LITTLE_ENDIAN=y 864 896 CONFIG_USB_UHCI_HCD=m 865 897 # CONFIG_USB_SL811_HCD is not set 898 + # CONFIG_USB_R8A66597_HCD is not set 866 899 867 900 # 868 901 # USB Device Class drivers ··· 883 912 # CONFIG_USB_LIBUSUAL is not set 884 913 885 914 # 886 - # USB Input Devices 887 - # 888 - CONFIG_USB_HID=m 889 - CONFIG_USB_HIDINPUT=y 890 - # CONFIG_USB_HIDINPUT_POWERBOOK is not set 891 - # CONFIG_HID_FF is not set 892 - # CONFIG_USB_HIDDEV is not set 893 - 894 - # 895 - # USB HID Boot Protocol drivers 896 - # 897 - # CONFIG_USB_KBD is not set 898 - # CONFIG_USB_MOUSE is not set 899 - # CONFIG_USB_AIPTEK is not set 900 - # CONFIG_USB_WACOM is not set 901 - # CONFIG_USB_ACECAD is not set 902 - # CONFIG_USB_KBTAB is not set 903 - # CONFIG_USB_POWERMATE is not set 904 - # CONFIG_USB_TOUCHSCREEN is not set 905 - # CONFIG_USB_YEALINK is not set 906 - # CONFIG_USB_XPAD is not set 907 - # CONFIG_USB_ATI_REMOTE is not set 908 - # CONFIG_USB_ATI_REMOTE2 is not set 909 - # CONFIG_USB_KEYSPAN_REMOTE is not set 910 - # CONFIG_USB_APPLETOUCH is not set 911 - # CONFIG_USB_TRANCEVIBRATOR is not set 912 - 913 - # 914 915 # USB Imaging devices 915 916 # 916 917 # CONFIG_USB_MDC800 is not set 917 918 # CONFIG_USB_MICROTEK is not set 918 - 919 - # 920 - # USB Network Adapters 921 - # 922 - # CONFIG_USB_CATC is not set 923 - # CONFIG_USB_KAWETH is not set 924 - # CONFIG_USB_PEGASUS is not set 925 - # CONFIG_USB_RTL8150 is not set 926 - # CONFIG_USB_USBNET is not set 927 919 CONFIG_USB_MON=y 928 920 929 921 # ··· 908 974 # CONFIG_USB_RIO500 is not set 909 975 # CONFIG_USB_LEGOTOWER is not set 910 976 # CONFIG_USB_LCD is not set 977 + # CONFIG_USB_BERRY_CHARGE is not set 911 978 # CONFIG_USB_LED is not set 912 979 # CONFIG_USB_CYPRESS_CY7C63 is not set 913 980 # CONFIG_USB_CYTHERM is not set ··· 918 983 # CONFIG_USB_APPLEDISPLAY is not set 919 984 # CONFIG_USB_SISUSBVGA is not set 920 985 # CONFIG_USB_LD is not set 986 + # CONFIG_USB_TRANCEVIBRATOR is not set 987 + # CONFIG_USB_IOWARRIOR is not set 921 988 922 989 # 923 990 # USB DSL modem support ··· 929 992 # USB Gadget Support 930 993 # 931 994 # CONFIG_USB_GADGET is not set 932 - 933 - # 934 - # MMC/SD Card support 935 - # 936 995 # CONFIG_MMC is not set 937 - 938 - # 939 - # LED devices 940 - # 941 996 # CONFIG_NEW_LEDS is not set 942 - 943 - # 944 - # LED drivers 945 - # 946 - 947 - # 948 - # LED Triggers 949 - # 950 - 951 - # 952 - # InfiniBand support 953 - # 954 997 CONFIG_INFINIBAND=m 955 998 # CONFIG_INFINIBAND_USER_MAD is not set 956 999 CONFIG_INFINIBAND_USER_ACCESS=m 1000 + CONFIG_INFINIBAND_USER_MEM=y 957 1001 CONFIG_INFINIBAND_ADDR_TRANS=y 958 1002 CONFIG_INFINIBAND_MTHCA=m 959 1003 CONFIG_INFINIBAND_MTHCA_DEBUG=y 960 1004 # CONFIG_INFINIBAND_AMSO1100 is not set 1005 + # CONFIG_INFINIBAND_CXGB3 is not set 1006 + # CONFIG_MLX4_INFINIBAND is not set 961 1007 CONFIG_INFINIBAND_IPOIB=m 1008 + # CONFIG_INFINIBAND_IPOIB_CM is not set 962 1009 CONFIG_INFINIBAND_IPOIB_DEBUG=y 963 1010 # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set 964 1011 CONFIG_INFINIBAND_SRP=m 965 1012 # CONFIG_INFINIBAND_ISER is not set 966 - 967 - # 968 - # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 969 - # 970 - 971 - # 972 - # Real Time Clock 973 - # 974 1013 # CONFIG_RTC_CLASS is not set 975 1014 976 1015 # ··· 963 1050 # 964 1051 965 1052 # 1053 + # Userspace I/O 1054 + # 1055 + # CONFIG_UIO is not set 1056 + CONFIG_MSPEC=y 1057 + 1058 + # 966 1059 # File systems 967 1060 # 968 1061 CONFIG_EXT2_FS=y ··· 980 1061 CONFIG_EXT3_FS_XATTR=y 981 1062 CONFIG_EXT3_FS_POSIX_ACL=y 982 1063 CONFIG_EXT3_FS_SECURITY=y 1064 + # CONFIG_EXT4DEV_FS is not set 983 1065 CONFIG_JBD=y 984 1066 # CONFIG_JBD_DEBUG is not set 985 1067 CONFIG_FS_MBCACHE=y ··· 1081 1161 CONFIG_NFS_COMMON=y 1082 1162 CONFIG_SUNRPC=m 1083 1163 CONFIG_SUNRPC_GSS=m 1164 + # CONFIG_SUNRPC_BIND34 is not set 1084 1165 CONFIG_RPCSEC_GSS_KRB5=m 1085 1166 # CONFIG_RPCSEC_GSS_SPKM3 is not set 1086 1167 CONFIG_SMB_FS=m ··· 1095 1174 # CONFIG_NCP_FS is not set 1096 1175 # CONFIG_CODA_FS is not set 1097 1176 # CONFIG_AFS_FS is not set 1098 - # CONFIG_9P_FS is not set 1099 1177 1100 1178 # 1101 1179 # Partition Types ··· 1116 1196 # CONFIG_SUN_PARTITION is not set 1117 1197 # CONFIG_KARMA_PARTITION is not set 1118 1198 CONFIG_EFI_PARTITION=y 1199 + # CONFIG_SYSV68_PARTITION is not set 1119 1200 1120 1201 # 1121 1202 # Native Language Support ··· 1165 1244 # 1166 1245 # Distributed Lock Manager 1167 1246 # 1247 + # CONFIG_DLM is not set 1168 1248 1169 1249 # 1170 1250 # Library routines 1171 1251 # 1252 + CONFIG_BITREVERSE=y 1172 1253 # CONFIG_CRC_CCITT is not set 1173 1254 CONFIG_CRC16=m 1255 + # CONFIG_CRC_ITU_T is not set 1174 1256 CONFIG_CRC32=y 1257 + # CONFIG_CRC7 is not set 1175 1258 CONFIG_LIBCRC32C=m 1176 1259 CONFIG_ZLIB_INFLATE=m 1177 1260 CONFIG_ZLIB_DEFLATE=m 1178 1261 CONFIG_GENERIC_ALLOCATOR=y 1179 1262 CONFIG_PLIST=y 1263 + CONFIG_HAS_IOMEM=y 1264 + CONFIG_HAS_IOPORT=y 1265 + CONFIG_HAS_DMA=y 1180 1266 CONFIG_GENERIC_HARDIRQS=y 1181 1267 CONFIG_GENERIC_IRQ_PROBE=y 1182 1268 CONFIG_GENERIC_PENDING_IRQ=y ··· 1202 1274 CONFIG_ENABLE_MUST_CHECK=y 1203 1275 CONFIG_MAGIC_SYSRQ=y 1204 1276 # CONFIG_UNUSED_SYMBOLS is not set 1277 + # CONFIG_DEBUG_FS is not set 1278 + # CONFIG_HEADERS_CHECK is not set 1205 1279 CONFIG_DEBUG_KERNEL=y 1206 - CONFIG_LOG_BUF_SHIFT=20 1280 + # CONFIG_DEBUG_SHIRQ is not set 1207 1281 CONFIG_DETECT_SOFTLOCKUP=y 1282 + CONFIG_SCHED_DEBUG=y 1208 1283 # CONFIG_SCHEDSTATS is not set 1209 - # CONFIG_DEBUG_SLAB is not set 1284 + # CONFIG_TIMER_STATS is not set 1285 + # CONFIG_SLUB_DEBUG_ON is not set 1210 1286 # CONFIG_DEBUG_RT_MUTEXES is not set 1211 1287 # CONFIG_RT_MUTEX_TESTER is not set 1212 1288 # CONFIG_DEBUG_SPINLOCK is not set 1213 1289 # CONFIG_DEBUG_MUTEXES is not set 1214 - # CONFIG_DEBUG_RWSEMS is not set 1215 1290 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1216 1291 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1217 1292 # CONFIG_DEBUG_KOBJECT is not set 1218 1293 CONFIG_DEBUG_INFO=y 1219 - # CONFIG_DEBUG_FS is not set 1220 1294 # CONFIG_DEBUG_VM is not set 1221 1295 # CONFIG_DEBUG_LIST is not set 1222 1296 CONFIG_FORCED_INLINING=y 1223 1297 # CONFIG_RCU_TORTURE_TEST is not set 1298 + # CONFIG_FAULT_INJECTION is not set 1224 1299 CONFIG_IA64_GRANULE_16MB=y 1225 1300 # CONFIG_IA64_GRANULE_64MB is not set 1226 1301 # CONFIG_IA64_PRINT_HAZARDS is not set ··· 1237 1306 # 1238 1307 # CONFIG_KEYS is not set 1239 1308 # CONFIG_SECURITY is not set 1240 - 1241 - # 1242 - # Cryptographic options 1243 - # 1309 + CONFIG_XOR_BLOCKS=y 1310 + CONFIG_ASYNC_CORE=y 1311 + CONFIG_ASYNC_MEMCPY=y 1312 + CONFIG_ASYNC_XOR=y 1244 1313 CONFIG_CRYPTO=y 1245 1314 CONFIG_CRYPTO_ALGAPI=y 1246 1315 CONFIG_CRYPTO_BLKCIPHER=m 1247 1316 CONFIG_CRYPTO_HASH=y 1248 - CONFIG_CRYPTO_MANAGER=m 1317 + CONFIG_CRYPTO_MANAGER=y 1249 1318 CONFIG_CRYPTO_HMAC=y 1319 + # CONFIG_CRYPTO_XCBC is not set 1250 1320 # CONFIG_CRYPTO_NULL is not set 1251 1321 # CONFIG_CRYPTO_MD4 is not set 1252 1322 CONFIG_CRYPTO_MD5=y ··· 1256 1324 # CONFIG_CRYPTO_SHA512 is not set 1257 1325 # CONFIG_CRYPTO_WP512 is not set 1258 1326 # CONFIG_CRYPTO_TGR192 is not set 1327 + # CONFIG_CRYPTO_GF128MUL is not set 1259 1328 CONFIG_CRYPTO_ECB=m 1260 1329 CONFIG_CRYPTO_CBC=m 1330 + CONFIG_CRYPTO_PCBC=m 1331 + # CONFIG_CRYPTO_LRW is not set 1332 + # CONFIG_CRYPTO_CRYPTD is not set 1261 1333 CONFIG_CRYPTO_DES=m 1334 + # CONFIG_CRYPTO_FCRYPT is not set 1262 1335 # CONFIG_CRYPTO_BLOWFISH is not set 1263 1336 # CONFIG_CRYPTO_TWOFISH is not set 1264 1337 # CONFIG_CRYPTO_SERPENT is not set ··· 1277 1340 CONFIG_CRYPTO_DEFLATE=m 1278 1341 # CONFIG_CRYPTO_MICHAEL_MIC is not set 1279 1342 CONFIG_CRYPTO_CRC32C=m 1343 + # CONFIG_CRYPTO_CAMELLIA is not set 1280 1344 # CONFIG_CRYPTO_TEST is not set 1281 - 1282 - # 1283 - # Hardware crypto devices 1284 - # 1345 + # CONFIG_CRYPTO_HW is not set
+1
arch/ia64/hp/common/Makefile
··· 8 8 obj-y := sba_iommu.o 9 9 obj-$(CONFIG_IA64_HP_ZX1_SWIOTLB) += hwsw_iommu.o 10 10 obj-$(CONFIG_IA64_GENERIC) += hwsw_iommu.o 11 + obj-$(CONFIG_IA64_HP_AML_NFW) += aml_nfw.o
+236
arch/ia64/hp/common/aml_nfw.c
··· 1 + /* 2 + * OpRegion handler to allow AML to call native firmware 3 + * 4 + * (c) Copyright 2007 Hewlett-Packard Development Company, L.P. 5 + * Bjorn Helgaas <bjorn.helgaas@hp.com> 6 + * 7 + * This program is free software; you can redistribute it and/or modify 8 + * it under the terms of the GNU General Public License version 2 as 9 + * published by the Free Software Foundation. 10 + * 11 + * This driver implements HP Open Source Review Board proposal 1842, 12 + * which was approved on 9/20/2006. 13 + * 14 + * For technical documentation, see the HP SPPA Firmware EAS, Appendix F. 15 + * 16 + * ACPI does not define a mechanism for AML methods to call native firmware 17 + * interfaces such as PAL or SAL. This OpRegion handler adds such a mechanism. 18 + * After the handler is installed, an AML method can call native firmware by 19 + * storing the arguments and firmware entry point to specific offsets in the 20 + * OpRegion. When AML reads the "return value" offset from the OpRegion, this 21 + * handler loads up the arguments, makes the firmware call, and returns the 22 + * result. 23 + */ 24 + 25 + #include <linux/module.h> 26 + #include <acpi/acpi_bus.h> 27 + #include <acpi/acpi_drivers.h> 28 + #include <asm/sal.h> 29 + 30 + MODULE_AUTHOR("Bjorn Helgaas <bjorn.helgaas@hp.com>"); 31 + MODULE_LICENSE("GPL"); 32 + MODULE_DESCRIPTION("ACPI opregion handler for native firmware calls"); 33 + 34 + static int force_register; 35 + module_param_named(force, force_register, bool, 0); 36 + MODULE_PARM_DESC(force, "Install opregion handler even without HPQ5001 device"); 37 + 38 + #define AML_NFW_SPACE 0xA1 39 + 40 + struct ia64_pdesc { 41 + void *ip; 42 + void *gp; 43 + }; 44 + 45 + /* 46 + * N.B. The layout of this structure is defined in the HP SPPA FW EAS, and 47 + * the member offsets are embedded in AML methods. 48 + */ 49 + struct ia64_nfw_context { 50 + u64 arg[8]; 51 + struct ia64_sal_retval ret; 52 + u64 ip; 53 + u64 gp; 54 + u64 pad[2]; 55 + }; 56 + 57 + static void *virt_map(u64 address) 58 + { 59 + if (address & (1UL << 63)) 60 + return (void *) (__IA64_UNCACHED_OFFSET | address); 61 + 62 + return __va(address); 63 + } 64 + 65 + static void aml_nfw_execute(struct ia64_nfw_context *c) 66 + { 67 + struct ia64_pdesc virt_entry; 68 + ia64_sal_handler entry; 69 + 70 + virt_entry.ip = virt_map(c->ip); 71 + virt_entry.gp = virt_map(c->gp); 72 + 73 + entry = (ia64_sal_handler) &virt_entry; 74 + 75 + IA64_FW_CALL(entry, c->ret, 76 + c->arg[0], c->arg[1], c->arg[2], c->arg[3], 77 + c->arg[4], c->arg[5], c->arg[6], c->arg[7]); 78 + } 79 + 80 + static void aml_nfw_read_arg(u8 *offset, u32 bit_width, acpi_integer *value) 81 + { 82 + switch (bit_width) { 83 + case 8: 84 + *value = *(u8 *)offset; 85 + break; 86 + case 16: 87 + *value = *(u16 *)offset; 88 + break; 89 + case 32: 90 + *value = *(u32 *)offset; 91 + break; 92 + case 64: 93 + *value = *(u64 *)offset; 94 + break; 95 + } 96 + } 97 + 98 + static void aml_nfw_write_arg(u8 *offset, u32 bit_width, acpi_integer *value) 99 + { 100 + switch (bit_width) { 101 + case 8: 102 + *(u8 *) offset = *value; 103 + break; 104 + case 16: 105 + *(u16 *) offset = *value; 106 + break; 107 + case 32: 108 + *(u32 *) offset = *value; 109 + break; 110 + case 64: 111 + *(u64 *) offset = *value; 112 + break; 113 + } 114 + } 115 + 116 + static acpi_status aml_nfw_handler(u32 function, acpi_physical_address address, 117 + u32 bit_width, acpi_integer *value, void *handler_context, 118 + void *region_context) 119 + { 120 + struct ia64_nfw_context *context = handler_context; 121 + u8 *offset = (u8 *) context + address; 122 + 123 + if (bit_width != 8 && bit_width != 16 && 124 + bit_width != 32 && bit_width != 64) 125 + return AE_BAD_PARAMETER; 126 + 127 + if (address + (bit_width >> 3) > sizeof(struct ia64_nfw_context)) 128 + return AE_BAD_PARAMETER; 129 + 130 + switch (function) { 131 + case ACPI_READ: 132 + if (address == offsetof(struct ia64_nfw_context, ret)) 133 + aml_nfw_execute(context); 134 + aml_nfw_read_arg(offset, bit_width, value); 135 + break; 136 + case ACPI_WRITE: 137 + aml_nfw_write_arg(offset, bit_width, value); 138 + break; 139 + } 140 + 141 + return AE_OK; 142 + } 143 + 144 + static struct ia64_nfw_context global_context; 145 + static int global_handler_registered; 146 + 147 + static int aml_nfw_add_global_handler(void) 148 + { 149 + acpi_status status; 150 + 151 + if (global_handler_registered) 152 + return 0; 153 + 154 + status = acpi_install_address_space_handler(ACPI_ROOT_OBJECT, 155 + AML_NFW_SPACE, aml_nfw_handler, NULL, &global_context); 156 + if (ACPI_FAILURE(status)) 157 + return -ENODEV; 158 + 159 + global_handler_registered = 1; 160 + printk(KERN_INFO "Global 0x%02X opregion handler registered\n", 161 + AML_NFW_SPACE); 162 + return 0; 163 + } 164 + 165 + static int aml_nfw_remove_global_handler(void) 166 + { 167 + acpi_status status; 168 + 169 + if (!global_handler_registered) 170 + return 0; 171 + 172 + status = acpi_remove_address_space_handler(ACPI_ROOT_OBJECT, 173 + AML_NFW_SPACE, aml_nfw_handler); 174 + if (ACPI_FAILURE(status)) 175 + return -ENODEV; 176 + 177 + global_handler_registered = 0; 178 + printk(KERN_INFO "Global 0x%02X opregion handler removed\n", 179 + AML_NFW_SPACE); 180 + return 0; 181 + } 182 + 183 + static int aml_nfw_add(struct acpi_device *device) 184 + { 185 + /* 186 + * We would normally allocate a new context structure and install 187 + * the address space handler for the specific device we found. 188 + * But the HP-UX implementation shares a single global context 189 + * and always puts the handler at the root, so we'll do the same. 190 + */ 191 + return aml_nfw_add_global_handler(); 192 + } 193 + 194 + static int aml_nfw_remove(struct acpi_device *device, int type) 195 + { 196 + return aml_nfw_remove_global_handler(); 197 + } 198 + 199 + static const struct acpi_device_id aml_nfw_ids[] = { 200 + {"HPQ5001", 0}, 201 + {"", 0} 202 + }; 203 + 204 + static struct acpi_driver acpi_aml_nfw_driver = { 205 + .name = "native firmware", 206 + .ids = aml_nfw_ids, 207 + .ops = { 208 + .add = aml_nfw_add, 209 + .remove = aml_nfw_remove, 210 + }, 211 + }; 212 + 213 + static int __init aml_nfw_init(void) 214 + { 215 + int result; 216 + 217 + if (force_register) 218 + aml_nfw_add_global_handler(); 219 + 220 + result = acpi_bus_register_driver(&acpi_aml_nfw_driver); 221 + if (result < 0) { 222 + aml_nfw_remove_global_handler(); 223 + return result; 224 + } 225 + 226 + return 0; 227 + } 228 + 229 + static void __exit aml_nfw_exit(void) 230 + { 231 + acpi_bus_unregister_driver(&acpi_aml_nfw_driver); 232 + aml_nfw_remove_global_handler(); 233 + } 234 + 235 + module_init(aml_nfw_init); 236 + module_exit(aml_nfw_exit);
+8 -5
arch/ia64/kernel/crash.c
··· 118 118 static void 119 119 machine_kdump_on_init(void) 120 120 { 121 - if (!ia64_kimage) { 122 - printk(KERN_NOTICE "machine_kdump_on_init(): " 123 - "kdump not configured\n"); 124 - return; 125 - } 126 121 local_irq_disable(); 127 122 kexec_disable_iosapic(); 128 123 machine_kexec(ia64_kimage); ··· 150 155 151 156 if (!kdump_on_init) 152 157 return NOTIFY_DONE; 158 + 159 + if (!ia64_kimage) { 160 + if (val == DIE_INIT_MONARCH_LEAVE) 161 + ia64_mca_printk(KERN_NOTICE 162 + "%s: kdump not configured\n", 163 + __FUNCTION__); 164 + return NOTIFY_DONE; 165 + } 153 166 154 167 if (val != DIE_INIT_MONARCH_LEAVE && 155 168 val != DIE_INIT_SLAVE_LEAVE &&
+1 -5
arch/ia64/kernel/machine_kexec.c
··· 79 79 relocate_new_kernel_t rnk; 80 80 void *pal_addr = efi_get_pal_addr(); 81 81 unsigned long code_addr = (unsigned long)page_address(image->control_code_page); 82 - unsigned long vector; 83 82 int ii; 84 83 85 84 BUG_ON(!image); ··· 106 107 /* unmask TPR and clear any pending interrupts */ 107 108 ia64_setreg(_IA64_REG_CR_TPR, 0); 108 109 ia64_srlz_d(); 109 - vector = ia64_get_ivr(); 110 - while (vector != IA64_SPURIOUS_INT_VECTOR) { 110 + while (ia64_get_ivr() != IA64_SPURIOUS_INT_VECTOR) 111 111 ia64_eoi(); 112 - vector = ia64_get_ivr(); 113 - } 114 112 platform_kernel_launch_event(); 115 113 rnk = (relocate_new_kernel_t)&code_addr; 116 114 (*rnk)(image->head, image->start, ia64_boot_param,
+44 -44
arch/ia64/kernel/mca.c
··· 701 701 /* 702 702 * ia64_mca_wakeup 703 703 * 704 - * Send an inter-cpu interrupt to wake-up a particular cpu 705 - * and mark that cpu to be out of rendez. 704 + * Send an inter-cpu interrupt to wake-up a particular cpu. 706 705 * 707 706 * Inputs : cpuid 708 707 * Outputs : None ··· 710 711 ia64_mca_wakeup(int cpu) 711 712 { 712 713 platform_send_ipi(cpu, IA64_MCA_WAKEUP_VECTOR, IA64_IPI_DM_INT, 0); 713 - ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; 714 - 715 714 } 716 715 717 716 /* 718 717 * ia64_mca_wakeup_all 719 718 * 720 - * Wakeup all the cpus which have rendez'ed previously. 719 + * Wakeup all the slave cpus which have rendez'ed previously. 721 720 * 722 721 * Inputs : None 723 722 * Outputs : None ··· 738 741 * 739 742 * This is handler used to put slave processors into spinloop 740 743 * while the monarch processor does the mca handling and later 741 - * wake each slave up once the monarch is done. 744 + * wake each slave up once the monarch is done. The state 745 + * IA64_MCA_RENDEZ_CHECKIN_DONE indicates the cpu is rendez'ed 746 + * in SAL. The state IA64_MCA_RENDEZ_CHECKIN_NOTDONE indicates 747 + * the cpu has come out of OS rendezvous. 742 748 * 743 749 * Inputs : None 744 750 * Outputs : None ··· 778 778 (long)&nd, 0, 0) == NOTIFY_STOP) 779 779 ia64_mca_spin(__FUNCTION__); 780 780 781 + ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; 781 782 /* Enable all interrupts */ 782 783 local_irq_restore(flags); 783 784 return IRQ_HANDLED; ··· 1136 1135 static void 1137 1136 ia64_wait_for_slaves(int monarch, const char *type) 1138 1137 { 1139 - int c, wait = 0, missing = 0; 1140 - for_each_online_cpu(c) { 1141 - if (c == monarch) 1142 - continue; 1143 - if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) { 1144 - udelay(1000); /* short wait first */ 1145 - wait = 1; 1146 - break; 1138 + int c, i , wait; 1139 + 1140 + /* 1141 + * wait 5 seconds total for slaves (arbitrary) 1142 + */ 1143 + for (i = 0; i < 5000; i++) { 1144 + wait = 0; 1145 + for_each_online_cpu(c) { 1146 + if (c == monarch) 1147 + continue; 1148 + if (ia64_mc_info.imi_rendez_checkin[c] 1149 + == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) { 1150 + udelay(1000); /* short wait */ 1151 + wait = 1; 1152 + break; 1153 + } 1147 1154 } 1155 + if (!wait) 1156 + goto all_in; 1148 1157 } 1149 - if (!wait) 1150 - goto all_in; 1151 - for_each_online_cpu(c) { 1152 - if (c == monarch) 1153 - continue; 1154 - if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) { 1155 - udelay(5*1000000); /* wait 5 seconds for slaves (arbitrary) */ 1156 - if (ia64_mc_info.imi_rendez_checkin[c] == IA64_MCA_RENDEZ_CHECKIN_NOTDONE) 1157 - missing = 1; 1158 - break; 1159 - } 1160 - } 1161 - if (!missing) 1162 - goto all_in; 1158 + 1163 1159 /* 1164 1160 * Maybe slave(s) dead. Print buffered messages immediately. 1165 1161 */ ··· 1222 1224 if (notify_die(DIE_MCA_MONARCH_ENTER, "MCA", regs, (long)&nd, 0, 0) 1223 1225 == NOTIFY_STOP) 1224 1226 ia64_mca_spin(__FUNCTION__); 1227 + 1228 + ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA; 1225 1229 if (sos->monarch) { 1226 1230 ia64_wait_for_slaves(cpu, "MCA"); 1231 + 1232 + /* Wakeup all the processors which are spinning in the 1233 + * rendezvous loop. They will leave SAL, then spin in the OS 1234 + * with interrupts disabled until this monarch cpu leaves the 1235 + * MCA handler. That gets control back to the OS so we can 1236 + * backtrace the other cpus, backtrace when spinning in SAL 1237 + * does not work. 1238 + */ 1239 + ia64_mca_wakeup_all(); 1240 + if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0) 1241 + == NOTIFY_STOP) 1242 + ia64_mca_spin(__FUNCTION__); 1227 1243 } else { 1228 - ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA; 1229 1244 while (cpu_isset(cpu, mca_cpu)) 1230 1245 cpu_relax(); /* spin until monarch wakes us */ 1231 - ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; 1232 1246 } 1233 - 1234 - /* Wakeup all the processors which are spinning in the rendezvous loop. 1235 - * They will leave SAL, then spin in the OS with interrupts disabled 1236 - * until this monarch cpu leaves the MCA handler. That gets control 1237 - * back to the OS so we can backtrace the other cpus, backtrace when 1238 - * spinning in SAL does not work. 1239 - */ 1240 - ia64_mca_wakeup_all(); 1241 - if (notify_die(DIE_MCA_MONARCH_PROCESS, "MCA", regs, (long)&nd, 0, 0) 1242 - == NOTIFY_STOP) 1243 - ia64_mca_spin(__FUNCTION__); 1244 1247 1245 1248 /* Get the MCA error record and log it */ 1246 1249 ia64_mca_log_sal_error_record(SAL_INFO_TYPE_MCA); ··· 1276 1277 /* wake up the next monarch cpu, 1277 1278 * and put this cpu in the rendez loop. 1278 1279 */ 1279 - ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_CONCURRENT_MCA; 1280 1280 for_each_online_cpu(i) { 1281 1281 if (cpu_isset(i, mca_cpu)) { 1282 1282 monarch_cpu = i; 1283 1283 cpu_clear(i, mca_cpu); /* wake next cpu */ 1284 1284 while (monarch_cpu != -1) 1285 1285 cpu_relax(); /* spin until last cpu leaves */ 1286 - ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; 1287 1286 set_curr_task(cpu, previous_current); 1287 + ia64_mc_info.imi_rendez_checkin[cpu] 1288 + = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; 1288 1289 return; 1289 1290 } 1290 1291 } 1291 1292 } 1292 1293 set_curr_task(cpu, previous_current); 1293 - monarch_cpu = -1; 1294 + ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE; 1295 + monarch_cpu = -1; /* This frees the slaves and previous monarchs */ 1294 1296 } 1295 1297 1296 1298 static DECLARE_WORK(cmc_disable_work, ia64_mca_cmc_vector_disable_keventd);
-2
arch/ia64/kernel/mca_drv.h
··· 118 118 119 119 extern const struct mca_table_entry *search_mca_tables (unsigned long addr); 120 120 extern int mca_recover_range(unsigned long); 121 - extern void ia64_mca_printk(const char * fmt, ...) 122 - __attribute__ ((format (printf, 1, 2))); 123 121 extern void ia64_mlogbuf_dump(void); 124 122
+3 -3
arch/ia64/kernel/palinfo.c
··· 907 907 return len; 908 908 } 909 909 910 - static void 910 + static void __cpuinit 911 911 create_palinfo_proc_entries(unsigned int cpu) 912 912 { 913 913 # define CPUSTR "cpu%d" ··· 968 968 } 969 969 } 970 970 971 - static int palinfo_cpu_callback(struct notifier_block *nfb, 971 + static int __cpuinit palinfo_cpu_callback(struct notifier_block *nfb, 972 972 unsigned long action, void *hcpu) 973 973 { 974 974 unsigned int hotcpu = (unsigned long)hcpu; ··· 986 986 return NOTIFY_OK; 987 987 } 988 988 989 - static struct notifier_block palinfo_cpu_notifier = 989 + static struct notifier_block palinfo_cpu_notifier __cpuinitdata = 990 990 { 991 991 .notifier_call = palinfo_cpu_callback, 992 992 .priority = 0,
-7
arch/ia64/kernel/perfmon.c
··· 1538 1538 return err; 1539 1539 } 1540 1540 1541 - static void __exit 1542 - exit_pfm_fs(void) 1543 - { 1544 - unregister_filesystem(&pfm_fs_type); 1545 - mntput(pfmfs_mnt); 1546 - } 1547 - 1548 1541 static ssize_t 1549 1542 pfm_read(struct file *filp, char __user *buf, size_t size, loff_t *ppos) 1550 1543 {
+2 -2
arch/ia64/kernel/salinfo.c
··· 574 574 .write = salinfo_log_write, 575 575 }; 576 576 577 - static int __devinit 577 + static int __cpuinit 578 578 salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu) 579 579 { 580 580 unsigned int i, cpu = (unsigned long)hcpu; ··· 615 615 return NOTIFY_OK; 616 616 } 617 617 618 - static struct notifier_block salinfo_cpu_notifier = 618 + static struct notifier_block salinfo_cpu_notifier __cpuinitdata = 619 619 { 620 620 .notifier_call = salinfo_cpu_callback, 621 621 .priority = 0,
+6 -6
arch/ia64/kernel/topology.c
··· 118 118 struct kobject kobj; 119 119 }; 120 120 121 - static struct cpu_cache_info all_cpu_cache_info[NR_CPUS]; 121 + static struct cpu_cache_info all_cpu_cache_info[NR_CPUS] __cpuinitdata; 122 122 #define LEAF_KOBJECT_PTR(x,y) (&all_cpu_cache_info[x].cache_leaves[y]) 123 123 124 124 #ifdef CONFIG_SMP 125 - static void cache_shared_cpu_map_setup( unsigned int cpu, 125 + static void __cpuinit cache_shared_cpu_map_setup( unsigned int cpu, 126 126 struct cache_info * this_leaf) 127 127 { 128 128 pal_cache_shared_info_t csi; ··· 157 157 &csi) == PAL_STATUS_SUCCESS); 158 158 } 159 159 #else 160 - static void cache_shared_cpu_map_setup(unsigned int cpu, 160 + static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, 161 161 struct cache_info * this_leaf) 162 162 { 163 163 cpu_set(cpu, this_leaf->shared_cpu_map); ··· 428 428 .notifier_call = cache_cpu_callback 429 429 }; 430 430 431 - static int __cpuinit cache_sysfs_init(void) 431 + static int __init cache_sysfs_init(void) 432 432 { 433 433 int i; 434 434 435 435 for_each_online_cpu(i) { 436 - cache_cpu_callback(&cache_cpu_notifier, CPU_ONLINE, 437 - (void *)(long)i); 436 + struct sys_device *sys_dev = get_cpu_sysdev((unsigned int)i); 437 + cache_add_dev(sys_dev); 438 438 } 439 439 440 440 register_hotcpu_notifier(&cache_cpu_notifier);
+2
include/asm-ia64/mca.h
··· 151 151 extern int ia64_reg_MCA_extension(int (*fn)(void *, struct ia64_sal_os_state *)); 152 152 extern void ia64_unreg_MCA_extension(void); 153 153 extern u64 ia64_get_rnat(u64 *); 154 + extern void ia64_mca_printk(const char * fmt, ...) 155 + __attribute__ ((format (printf, 1, 2))); 154 156 155 157 struct ia64_mca_notify_die { 156 158 struct ia64_sal_os_state *sos;
+9 -6
include/asm-ia64/sal.h
··· 46 46 extern spinlock_t sal_lock; 47 47 48 48 /* SAL spec _requires_ eight args for each call. */ 49 - #define __SAL_CALL(result,a0,a1,a2,a3,a4,a5,a6,a7) \ 50 - result = (*ia64_sal)(a0,a1,a2,a3,a4,a5,a6,a7) 49 + #define __IA64_FW_CALL(entry,result,a0,a1,a2,a3,a4,a5,a6,a7) \ 50 + result = (*entry)(a0,a1,a2,a3,a4,a5,a6,a7) 51 51 52 - # define SAL_CALL(result,args...) do { \ 52 + # define IA64_FW_CALL(entry,result,args...) do { \ 53 53 unsigned long __ia64_sc_flags; \ 54 54 struct ia64_fpreg __ia64_sc_fr[6]; \ 55 55 ia64_save_scratch_fpregs(__ia64_sc_fr); \ 56 56 spin_lock_irqsave(&sal_lock, __ia64_sc_flags); \ 57 - __SAL_CALL(result, args); \ 57 + __IA64_FW_CALL(entry, result, args); \ 58 58 spin_unlock_irqrestore(&sal_lock, __ia64_sc_flags); \ 59 59 ia64_load_scratch_fpregs(__ia64_sc_fr); \ 60 60 } while (0) 61 + 62 + # define SAL_CALL(result,args...) \ 63 + IA64_FW_CALL(ia64_sal, result, args); 61 64 62 65 # define SAL_CALL_NOLOCK(result,args...) do { \ 63 66 unsigned long __ia64_scn_flags; \ 64 67 struct ia64_fpreg __ia64_scn_fr[6]; \ 65 68 ia64_save_scratch_fpregs(__ia64_scn_fr); \ 66 69 local_irq_save(__ia64_scn_flags); \ 67 - __SAL_CALL(result, args); \ 70 + __IA64_FW_CALL(ia64_sal, result, args); \ 68 71 local_irq_restore(__ia64_scn_flags); \ 69 72 ia64_load_scratch_fpregs(__ia64_scn_fr); \ 70 73 } while (0) ··· 76 73 struct ia64_fpreg __ia64_scs_fr[6]; \ 77 74 ia64_save_scratch_fpregs(__ia64_scs_fr); \ 78 75 preempt_disable(); \ 79 - __SAL_CALL(result, args); \ 76 + __IA64_FW_CALL(ia64_sal, result, args); \ 80 77 preempt_enable(); \ 81 78 ia64_load_scratch_fpregs(__ia64_scs_fr); \ 82 79 } while (0)