]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge branch 'linus' into test
authorLen Brown <len.brown@intel.com>
Thu, 23 Oct 2008 03:57:26 +0000 (23:57 -0400)
committerLen Brown <len.brown@intel.com>
Thu, 23 Oct 2008 04:11:07 +0000 (00:11 -0400)
Conflicts:
MAINTAINERS
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/acpi/sleep.c
drivers/acpi/Kconfig
drivers/pnp/Makefile
drivers/pnp/quirks.c

Signed-off-by: Len Brown <len.brown@intel.com>
30 files changed:
1  2 
Documentation/kernel-parameters.txt
MAINTAINERS
arch/x86/Kconfig
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/acpi/sleep.c
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
arch/x86/kernel/cpu/cpufreq/powernow-k8.c
arch/x86/kernel/process_64.c
drivers/Makefile
drivers/acpi/Kconfig
drivers/acpi/battery.c
drivers/acpi/sbs.c
drivers/acpi/system.c
drivers/acpi/toshiba_acpi.c
drivers/dma/ioat_dma.c
drivers/misc/Kconfig
drivers/pnp/Makefile
drivers/pnp/base.h
drivers/pnp/core.c
drivers/pnp/driver.c
drivers/pnp/isapnp/core.c
drivers/pnp/pnpacpi/core.c
drivers/pnp/pnpbios/core.c
drivers/pnp/quirks.c
drivers/pnp/resource.c
include/acpi/acmacros.h
include/asm-x86/idle.h
include/linux/kernel.h
include/linux/pci_ids.h
include/linux/pnp.h

index 533199bdb92a07e557380cf3651d84a9527387c2,53ba7c7d82b342d50053f6458225b29123bee747..343e0f0f84b60e9f62bcdef4963f5c8912073c8a
@@@ -101,6 -101,7 +101,7 @@@ parameter is applicable
        X86-64  X86-64 architecture is enabled.
                        More X86-64 boot options can be found in
                        Documentation/x86_64/boot-options.txt .
+       X86     Either 32bit or 64bit x86 (same as X86-32+X86-64)
  
  In addition, the following text indicates that the option:
  
@@@ -217,47 -218,20 +218,47 @@@ and is between 256 and 4096 characters
        acpi.debug_level=       [HW,ACPI]
                        Format: <int>
                        Each bit of the <int> indicates an ACPI debug level,
 -                      1: enable, 0: disable. It is useful for boot time
 -                      debugging. After system has booted up, it can be set
 -                      via /sys/module/acpi/parameters/debug_level.
 -                      CONFIG_ACPI_DEBUG must be enabled for this to produce any output.
 -                      Available bits (add the numbers together) to enable different
 -                      debug output levels of the ACPI subsystem:
 -                      0x01 error 0x02 warn 0x04 init 0x08 debug object
 -                      0x10 info 0x20 init names 0x40 parse 0x80 load
 -                      0x100 dispatch 0x200 execute 0x400 names 0x800 operation region
 -                      0x1000 bfield 0x2000 tables 0x4000 values 0x8000 objects
 -                      0x10000 resources 0x20000 user requests 0x40000 package.
 -                      The number can be in decimal or prefixed with 0x in hex.
 -                      Warning: Many of these options can produce a lot of
 -                      output and make your system unusable. Be very careful.
 +                      which corresponds to the level in an ACPI_DEBUG_PRINT
 +                      statement.  After system has booted up, this mask
 +                      can be set via /sys/module/acpi/parameters/debug_level.
 +
 +                      CONFIG_ACPI_DEBUG must be enabled for this to produce
 +                      any output.  The number can be in decimal or prefixed
 +                      with 0x in hex.  Some of these options produce so much
 +                      output that the system is unusable.
 +
 +                      The following global components are defined by the
 +                      ACPI CA:
 +                             0x01 error
 +                             0x02 warn
 +                             0x04 init
 +                             0x08 debug object
 +                             0x10 info
 +                             0x20 init names
 +                             0x40 parse
 +                             0x80 load
 +                            0x100 dispatch
 +                            0x200 execute
 +                            0x400 names
 +                            0x800 operation region
 +                           0x1000 bfield
 +                           0x2000 tables
 +                           0x4000 values
 +                           0x8000 objects
 +                          0x10000 resources
 +                          0x20000 user requests
 +                          0x40000 package
 +                      The number can be in decimal or prefixed with 0x in hex.
 +                      Warning: Many of these options can produce a lot of
 +                      output and make your system unusable. Be very careful.
 +
 +      acpi.power_nocheck=     [HW,ACPI]
 +                      Format: 1/0 enable/disable the check of power state.
 +                      On some bogus BIOS the _PSC object/_STA object of
 +                      power resource can't return the correct device power
 +                      state. In such case it is unneccessary to check its
 +                      power state again in power transition.
 +                      1 : disable the power state check
  
        acpi_pm_good    [X86-32,X86-64]
                        Override the pmtimer bug detection: force the kernel
                        isolate - enable device isolation (each device, as far
                                  as possible, will get its own protection
                                  domain)
+                       fullflush - enable flushing of IO/TLB entries when
+                                   they are unmapped. Otherwise they are
+                                   flushed before they will be reused, which
+                                   is a lot of faster
        amd_iommu_size= [HW,X86-64]
                        Define the size of the aperture for the AMD IOMMU
                        driver. Possible values are:
                        Range: 0 - 8192
                        Default: 64
  
-       disable_8254_timer
-       enable_8254_timer
-                       [IA32/X86_64] Disable/Enable interrupt 0 timer routing
-                       over the 8254 in addition to over the IO-APIC. The
-                       kernel tries to set a sensible default.
        hpet=           [X86-32,HPET] option to control HPET usage
                        Format: { enable (default) | disable | force }
                        disable: disable HPET and use PIT instead
        earlyprintk=    [X86-32,X86-64,SH,BLACKFIN]
                        earlyprintk=vga
                        earlyprintk=serial[,ttySn[,baudrate]]
+                       earlyprintk=dbgp
  
                        Append ",keep" to not disable it when the real console
                        takes over.
  
-                       Only vga or serial at a time, not both.
+                       Only vga or serial or usb debug port at a time.
  
                        Currently only ttyS0 and ttyS1 are supported.
  
                        See Documentation/block/as-iosched.txt and
                        Documentation/block/deadline-iosched.txt for details.
  
-       elfcorehdr=     [X86-32, X86_64]
+       elfcorehdr=     [IA64,PPC,SH,X86-32,X86_64]
                        Specifies physical address of start of kernel core
                        image elf header. Generally kexec loader will
                        pass this option to capture kernel.
                        Defaults to the default architecture's huge page size
                        if not specified.
  
+       hlt             [BUGS=ARM,SH]
+       i8042.debug     [HW] Toggle i8042 debug mode
        i8042.direct    [HW] Put keyboard port into non-translated mode
        i8042.dumbkbd   [HW] Pretend that controller can only read data from
                             keyboard and cannot control its state
                        (only serial suported for now)
                        Format: <serial_device>[,baud]
  
+       kmac=           [MIPS] korina ethernet MAC address.
+                       Configure the RouterBoard 532 series on-chip
+                       Ethernet adapter MAC address.
        l2cr=           [PPC]
  
        l3cr=           [PPC]
        mem=nopentium   [BUGS=X86-32] Disable usage of 4MB pages for kernel
                        memory.
  
+       memchunk=nn[KMG]
+                       [KNL,SH] Allow user to override the default size for
+                       per-device physically contiguous DMA buffers.
        memmap=exactmap [KNL,X86-32,X86_64] Enable setting of an exact
                        E820 memory map, as specified by the user.
                        Such memmap=exactmap lines can be constructed based on
                                 or
                                 memmap=0x10000$0x18690000
  
+       memory_corruption_check=0/1 [X86]
+                       Some BIOSes seem to corrupt the first 64k of
+                       memory when doing things like suspend/resume.
+                       Setting this option will scan the memory
+                       looking for corruption.  Enabling this will
+                       both detect corruption and prevent the kernel
+                       from using the memory being corrupted.
+                       However, its intended as a diagnostic tool; if
+                       repeatable BIOS-originated corruption always
+                       affects the same memory, you can use memmap=
+                       to prevent the kernel from using that memory.
+       memory_corruption_check_size=size [X86]
+                       By default it checks for corruption in the low
+                       64k, making this memory unavailable for normal
+                       use.  Use this parameter to scan for
+                       corruption in more or less memory.
+       memory_corruption_check_period=seconds [X86]
+                       By default it checks for corruption every 60
+                       seconds.  Use this parameter to check at some
+                       other rate.  0 disables periodic checking.
        memtest=        [KNL,X86] Enable memtest
                        Format: <integer>
                        range: 0,4 : pattern number
  
        nodisconnect    [HW,SCSI,M68K] Disables SCSI disconnects.
  
+       nodsp           [SH] Disable hardware DSP at boot time.
        noefi           [X86-32,X86-64] Disable EFI runtime services support.
  
        noexec          [IA-64]
                        noexec32=off: disable non-executable mappings
                                read implies executable mappings
  
+       nofpu           [SH] Disable hardware FPU at boot time.
        nofxsr          [BUGS=X86-32] Disables x86 floating point extended
                        register save and restore. The kernel will only save
                        legacy floating-point registers on task switch.
  
        noclflush       [BUGS=X86] Don't use the CLFLUSH instruction
  
-       nohlt           [BUGS=ARM]
+       nohlt           [BUGS=ARM,SH]
  
        no-hlt          [BUGS=X86-32] Tells the kernel that the hlt
                        instruction doesn't work correctly and not to
  
        nolapic_timer   [X86-32,APIC] Do not use the local APIC timer.
  
+       nox2apic        [X86-64,APIC] Do not enable x2APIC mode.
+       x2apic_phys     [X86-64,APIC] Use x2apic physical mode instead of
+                       default x2apic cluster mode on platforms
+                       supporting x2apic.
        noltlbs         [PPC] Do not use large page/tlb entries for kernel
                        lowmem mapping on PPC40x.
  
                        See also Documentation/paride.txt.
  
        pci=option[,option...]  [PCI] various PCI subsystem options:
-               off             [X86-32] don't probe for the PCI bus
+               off             [X86] don't probe for the PCI bus
                bios            [X86-32] force use of PCI BIOS, don't access
                                the hardware directly. Use this if your machine
                                has a non-standard PCI host bridge.
                                hardware access methods are allowed. Use this
                                if you experience crashes upon bootup and you
                                suspect they are caused by the BIOS.
-               conf1           [X86-32] Force use of PCI Configuration
+               conf1           [X86] Force use of PCI Configuration
                                Mechanism 1.
-               conf2           [X86-32] Force use of PCI Configuration
+               conf2           [X86] Force use of PCI Configuration
                                Mechanism 2.
                noaer           [PCIE] If the PCIEAER kernel config parameter is
                                enabled, this kernel boot option can be used to
                                this option if the kernel is unable to allocate
                                IRQs or discover secondary PCI buses on your
                                motherboard.
-               rom             [X86-32] Assign address space to expansion ROMs.
+               rom             [X86] Assign address space to expansion ROMs.
                                Use with caution as certain devices share
                                address decoders between ROMs and other
                                resources.
-               norom           [X86-32,X86_64] Do not assign address space to
+               norom           [X86] Do not assign address space to
                                expansion ROMs that do not already have
                                BIOS assigned address ranges.
-               irqmask=0xMMMM  [X86-32] Set a bit mask of IRQs allowed to be
+               irqmask=0xMMMM  [X86] Set a bit mask of IRQs allowed to be
                                assigned automatically to PCI devices. You can
                                make the kernel exclude IRQs of your ISA cards
                                this way.
-               pirqaddr=0xAAAAA        [X86-32] Specify the physical address
+               pirqaddr=0xAAAAA        [X86] Specify the physical address
                                of the PIRQ table (normally generated
                                by the BIOS) if it is outside the
                                F0000h-100000h range.
-               lastbus=N       [X86-32] Scan all buses thru bus #N. Can be
+               lastbus=N       [X86] Scan all buses thru bus #N. Can be
                                useful if the kernel is unable to find your
                                secondary buses and you want to tell it
                                explicitly which ones they are.
-               assign-busses   [X86-32] Always assign all PCI bus
+               assign-busses   [X86] Always assign all PCI bus
                                numbers ourselves, overriding
                                whatever the firmware may have done.
-               usepirqmask     [X86-32] Honor the possible IRQ mask stored
+               usepirqmask     [X86] Honor the possible IRQ mask stored
                                in the BIOS $PIR table. This is needed on
                                some systems with broken BIOSes, notably
                                some HP Pavilion N5400 and Omnibook XE3
                                notebooks. This will have no effect if ACPI
                                IRQ routing is enabled.
-               noacpi          [X86-32] Do not use ACPI for IRQ routing
+               noacpi          [X86] Do not use ACPI for IRQ routing
                                or for PCI scanning.
-               use_crs         [X86-32] Use _CRS for PCI resource
+               use_crs         [X86] Use _CRS for PCI resource
                                allocation.
                routeirq        Do IRQ routing for all PCI devices.
                                This is normally done in pci_enable_device(),
                                reserved for the CardBus bridge's memory
                                window. The default value is 64 megabytes.
  
+       pcie_aspm=      [PCIE] Forcibly enable or disable PCIe Active State Power
+                       Management.
+               off     Disable ASPM.
+               force   Enable ASPM even on devices that claim not to support it.
+                       WARNING: Forcing ASPM on may cause system lockups.
        pcmv=           [HW,PCMCIA] BadgePAD 4
  
        pd.             [PARIDE]
                        Override pmtimer IOPort with a hex value.
                        e.g. pmtmr=0x508
  
 +      pnp.debug       [PNP]
 +                      Enable PNP debug messages.  This depends on the
 +                      CONFIG_PNP_DEBUG_MESSAGES option.
 +
        pnpacpi=        [ACPI]
                        { off }
  
                        autoconfiguration.
                        Ranges are in pairs (memory base and size).
  
+       dynamic_printk
+                       Enables pr_debug()/dev_dbg() calls if
+                       CONFIG_DYNAMIC_PRINTK_DEBUG has been enabled. These can also
+                       be switched on/off via <debugfs>/dynamic_printk/modules
        print-fatal-signals=
                        [KNL] debug: print fatal signals
                        print-fatal-signals=1: print segfault info to
        shapers=        [NET]
                        Maximal number of shapers.
  
+       show_msr=       [x86] show boot-time MSR settings
+                       Format: { <integer> }
+                       Show boot-time (BIOS-initialized) MSR settings.
+                       The parameter means the number of CPUs to show,
+                       for example 1 means boot CPU only.
        sim710=         [SCSI,HW]
                        See header of drivers/scsi/sim710.c.
  
  
        thermal.crt=    [HW,ACPI]
                        -1: disable all critical trip points in all thermal zones
 -                      <degrees C>: lower all critical trip points
 +                      <degrees C>: override all critical trip points
  
        thermal.nocrt=  [HW,ACPI]
                        Set to disable actions on ACPI thermal zone
                        autosuspended.  Devices for which the delay is set
                        to a negative value won't be autosuspended at all.
  
+       usbcore.usbfs_snoop=
+                       [USB] Set to log all usbfs traffic (default 0 = off).
+       usbcore.blinkenlights=
+                       [USB] Set to cycle leds on hubs (default 0 = off).
+       usbcore.old_scheme_first=
+                       [USB] Start with the old device initialization
+                       scheme (default 0 = off).
+       usbcore.use_both_schemes=
+                       [USB] Try the other device initialization scheme
+                       if the first one fails (default 1 = enabled).
+       usbcore.initial_descriptor_timeout=
+                       [USB] Specifies timeout for the initial 64-byte
+                         USB_REQ_GET_DESCRIPTOR request in milliseconds
+                       (default 5000 = 5.0 seconds).
        usbhid.mousepoll=
                        [USBHID] The interval which mice are to be polled at.
  
diff --combined MAINTAINERS
index f9f6d4b75c5ec0d28e24c372c3d987af0ef09904,5c3f79c26384eba384af07241c71f2cb251abdb5..57ed36d474aa648b6b6592110b2417bb5a5180ca
@@@ -72,6 -72,7 +72,7 @@@ M: Mail patches t
  L: Mailing list that is relevant to this area
  W: Web-page with status/info
  T: SCM tree type and location.  Type is one of: git, hg, quilt.
+ F: Applicable files and/or directories
  S: Status, one of the following:
  
        Supported:      Someone is actually paid to look after this.
@@@ -102,14 -103,14 +103,14 @@@ M:      dave@thedillows.or
  L:    netdev@vger.kernel.org
  S:    Maintained
  
- 3W-XXXX ATA-RAID CONTROLLER DRIVER
+ 3W-9XXX SATA-RAID CONTROLLER DRIVER
  P:    Adam Radford
  M:    linuxraid@amcc.com
  L:    linux-scsi@vger.kernel.org
  W:    http://www.amcc.com
  S:    Supported
  
- 3W-9XXX SATA-RAID CONTROLLER DRIVER
+ 3W-XXXX ATA-RAID CONTROLLER DRIVER
  P:    Adam Radford
  M:    linuxraid@amcc.com
  L:    linux-scsi@vger.kernel.org
@@@ -163,16 -164,11 +164,11 @@@ M:      A2232@gmx.ne
  L:    linux-m68k@lists.linux-m68k.org
  S:    Maintained
  
- AFS FILESYSTEM & AF_RXRPC SOCKET DOMAIN
- P:    David Howells
- M:    dhowells@redhat.com
- L:    linux-afs@lists.infradead.org
- S:    Supported
- AIO
- P:    Benjamin LaHaise
- M:    bcrl@kvack.org
- L:    linux-aio@kvack.org
+ AACRAID SCSI RAID DRIVER
+ P:    Adaptec OEM Raid Solutions
+ M:    aacraid@adaptec.com
+ L:    linux-scsi@vger.kernel.org
+ W:    http://www.adaptec.com/
  S:    Supported
  
  ABIT UGURU 1,2 HARDWARE MONITOR DRIVER
@@@ -193,27 -189,6 +189,6 @@@ M:        jes@trained-monkey.or
  L:    linux-acenic@sunsite.dk
  S:    Maintained
  
- IPS SCSI RAID DRIVER
- P:    Adaptec OEM Raid Solutions
- M:    aacraid@adaptec.com
- L:    linux-scsi@vger.kernel.org
- W:    http://www.adaptec.com/
- S:    Maintained
- DPT_I2O SCSI RAID DRIVER
- P:    Adaptec OEM Raid Solutions
- M:    aacraid@adaptec.com
- L:    linux-scsi@vger.kernel.org
- W:    http://www.adaptec.com/
- S:    Maintained
- AACRAID SCSI RAID DRIVER
- P:    Adaptec OEM Raid Solutions
- M:    aacraid@adaptec.com
- L:    linux-scsi@vger.kernel.org
- W:    http://www.adaptec.com/
- S:    Supported
  ACER WMI LAPTOP EXTRAS
  P:    Carlos Corbacho
  M:    carlos@strangeworlds.co.uk
@@@ -327,6 -302,12 +302,12 @@@ P:       Roman Zippe
  M:    zippel@linux-m68k.org
  S:    Maintained
  
+ AFS FILESYSTEM & AF_RXRPC SOCKET DOMAIN
+ P:    David Howells
+ M:    dhowells@redhat.com
+ L:    linux-afs@lists.infradead.org
+ S:    Supported
  AGPGART DRIVER
  P:    David Airlie
  M:    airlied@linux.ie
@@@ -345,6 -326,12 +326,12 @@@ M:       hare@suse.d
  L:    linux-scsi@vger.kernel.org
  S:    Maintained
  
+ AIO
+ P:    Benjamin LaHaise
+ M:    bcrl@kvack.org
+ L:    linux-aio@kvack.org
+ S:    Supported
  ALCATEL SPEEDTOUCH USB DRIVER
  P:    Duncan Sands
  M:    duncan.sands@free.fr
@@@ -387,8 -374,14 +374,14 @@@ AMD IOMMU (AMD-VI
  P:    Joerg Roedel
  M:    joerg.roedel@amd.com
  L:    iommu@lists.linux-foundation.org
+ T:    git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu.git
  S:    Supported
  
+ AMD MICROCODE UPDATE SUPPORT
+ P:      Peter Oruba
+ M:      peter.oruba@amd.com
+ S:      Supported
  AMS (Apple Motion Sensor) DRIVER
  P:    Stelian Pop
  M:    stelian@popies.net
@@@ -466,6 -459,12 +459,12 @@@ M:       kernel@wantstofly.or
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  S:    Maintained
  
+ ARM/AFEB9260 MACHINE SUPPORT
+ P:    Sergey Lapin
+ M:    slapin@ossfans.org
+ L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+ S:    Maintained
  ARM/AJECO 1ARM MACHINE SUPPORT
  P:    Lennert Buytenhek
  M:    kernel@wantstofly.org
@@@ -491,7 -490,7 +490,7 @@@ M: kernel@wantstofly.or
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
  S:    Maintained
  
- ARM/COMPULAB CM-X270/EM-X270 MACHINE SUPPORT
+ ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT
  P:    Mike Rapoport
  M:    mike@compulab.co.il
  L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
@@@ -623,6 -622,12 +622,12 @@@ M:       marek.vasut@gmail.co
  W:    http://hackndev.com
  S:    Maintained
  
+ ARM/PALMZ72 SUPPORT
+ P:     Sergey Lapin
+ M:     slapin@ossfans.org
+ W:     http://hackndev.com
+ S:     Maintained
  ARM/PLEB SUPPORT
  P:    Peter Chubb
  M:    pleb@gelato.unsw.edu.au
@@@ -719,7 -724,7 +724,7 @@@ L: linux-kernel@vger.kernel.or
  W:    http://sourceforge.net/projects/xscaleiop
  S:    Supported
  
- ATA OVER ETHERNET DRIVER
+ ATA OVER ETHERNET (AOE) DRIVER
  P:    Ed L. Cashin
  M:    ecashin@coraid.com
  W:    http://www.coraid.com/support/linux
@@@ -852,11 -857,48 +857,48 @@@ L:      linux-hams@vger.kernel.or
  W:    http://www.linux-ax25.org/
  S:    Maintained
  
+ B43 WIRELESS DRIVER
+ P:    Michael Buesch
+ M:    mb@bu3sch.de
+ P:    Stefano Brivio
+ M:    stefano.brivio@polimi.it
+ L:    linux-wireless@vger.kernel.org
+ W:    http://linuxwireless.org/en/users/Drivers/b43
+ S:    Maintained
+ B43LEGACY WIRELESS DRIVER
+ P:    Larry Finger
+ M:    Larry.Finger@lwfinger.net
+ P:    Stefano Brivio
+ M:    stefano.brivio@polimi.it
+ L:    linux-wireless@vger.kernel.org
+ W:    http://linuxwireless.org/en/users/Drivers/b43
+ S:    Maintained
  BACKLIGHT CLASS/SUBSYSTEM
  P:    Richard Purdie
  M:    rpurdie@rpsys.net
  S:    Maintained
  
+ BAYCOM/HDLCDRV DRIVERS FOR AX.25
+ P:    Thomas Sailer
+ M:    t.sailer@alumni.ethz.ch
+ L:    linux-hams@vger.kernel.org
+ W:    http://www.baycom.org/~tom/ham/ham.html
+ S:    Maintained
+ BEFS FILE SYSTEM
+ P:    Sergey S. Kostyliov
+ M:    rathamahata@php4.ru
+ L:    linux-kernel@vger.kernel.org
+ S:    Maintained
+ BFS FILE SYSTEM
+ P:    Tigran A. Aivazian
+ M:    tigran@aivazian.fsnet.co.uk
+ L:    linux-kernel@vger.kernel.org
+ S:    Maintained
  BLACKFIN ARCHITECTURE
  P:    Bryan Wu
  M:    cooloney@kernel.org
@@@ -892,43 -934,6 +934,6 @@@ L:        uclinux-dist-devel@blackfin.uclinux.
  W:    http://blackfin.uclinux.org
  S:    Supported
  
- BAYCOM/HDLCDRV DRIVERS FOR AX.25
- P:    Thomas Sailer
- M:    t.sailer@alumni.ethz.ch
- L:    linux-hams@vger.kernel.org
- W:    http://www.baycom.org/~tom/ham/ham.html
- S:    Maintained
- B43 WIRELESS DRIVER
- P:    Michael Buesch
- M:    mb@bu3sch.de
- P:    Stefano Brivio
- M:    stefano.brivio@polimi.it
- L:    linux-wireless@vger.kernel.org
- W:    http://linuxwireless.org/en/users/Drivers/b43
- S:    Maintained
- B43LEGACY WIRELESS DRIVER
- P:    Larry Finger
- M:    Larry.Finger@lwfinger.net
- P:    Stefano Brivio
- M:    stefano.brivio@polimi.it
- L:    linux-wireless@vger.kernel.org
- W:    http://linuxwireless.org/en/users/Drivers/b43
- S:    Maintained
- BEFS FILE SYSTEM
- P:    Sergey S. Kostyliov
- M:    rathamahata@php4.ru
- L:    linux-kernel@vger.kernel.org
- S:    Maintained
- BFS FILE SYSTEM
- P:    Tigran A. Aivazian
- M:    tigran@aivazian.fsnet.co.uk
- L:    linux-kernel@vger.kernel.org
- S:    Maintained
  BLACKFIN I2C TWI DRIVER
  P:    Sonic Zhang
  M:    sonic.zhang@analog.com
@@@ -1022,15 -1027,6 +1027,6 @@@ M:     corbet@lwn.ne
  L:    video4linux-list@redhat.com
  S:    Maintained
  
- CAN NETWORK LAYER
- P:    Urs Thuermann
- M:    urs.thuermann@volkswagen.de
- P:    Oliver Hartkopp
- M:    oliver.hartkopp@volkswagen.de
- L:    socketcan-core@lists.berlios.de (subscribers-only)
- W:    http://developer.berlios.de/projects/socketcan/
- S:    Maintained
  CALGARY x86-64 IOMMU
  P:    Muli Ben-Yehuda
  M:    muli@il.ibm.com
@@@ -1040,6 -1036,15 +1036,15 @@@ L:    linux-kernel@vger.kernel.or
  L:    discuss@x86-64.org
  S:    Maintained
  
+ CAN NETWORK LAYER
+ P:    Urs Thuermann
+ M:    urs.thuermann@volkswagen.de
+ P:    Oliver Hartkopp
+ M:    oliver.hartkopp@volkswagen.de
+ L:    socketcan-core@lists.berlios.de (subscribers-only)
+ W:    http://developer.berlios.de/projects/socketcan/
+ S:    Maintained
  CELL BROADBAND ENGINE ARCHITECTURE
  P:    Arnd Bergmann
  M:    arnd@arndb.de
@@@ -1079,19 -1084,11 +1084,11 @@@ P:   Joel Schop
  M:    jschopp@austin.ibm.com
  S:    Supported
  
- COMMON INTERNET FILE SYSTEM (CIFS)
- P:    Steve French
- M:    sfrench@samba.org
- L:    linux-cifs-client@lists.samba.org
- L:    samba-technical@lists.samba.org
- W:    http://linux-cifs.samba.org/
- T:    git kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git
- S:    Supported
- CONFIGFS
- P:    Joel Becker
- M:    joel.becker@oracle.com
- L:    linux-kernel@vger.kernel.org
+ CISCO 10G ETHERNET DRIVER
+ P:    Scott Feldman
+ M:    scofeldm@cisco.com
+ P:    Joe Eykholt
+ M:    jeykholt@cisco.com
  S:    Supported
  
  CIRRUS LOGIC EP93XX ETHERNET DRIVER
@@@ -1127,6 -1124,15 +1124,15 @@@ L:    codalist@coda.cs.cmu.ed
  W:    http://www.coda.cs.cmu.edu/
  S:    Maintained
  
+ COMMON INTERNET FILE SYSTEM (CIFS)
+ P:    Steve French
+ M:    sfrench@samba.org
+ L:    linux-cifs-client@lists.samba.org
+ L:    samba-technical@lists.samba.org
+ W:    http://linux-cifs.samba.org/
+ T:    git kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git
+ S:    Supported
  COMPACTPCI HOTPLUG CORE
  P:    Scott Murray
  M:    scottm@somanetworks.com
@@@ -1166,6 -1172,12 +1172,12 @@@ L:    accessrunner-general@lists.sourcefor
  W:    http://accessrunner.sourceforge.net/
  S:    Maintained
  
+ CONFIGFS
+ P:    Joel Becker
+ M:    joel.becker@oracle.com
+ L:    linux-kernel@vger.kernel.org
+ S:    Supported
  CONTROL GROUPS (CGROUPS)
  P:    Paul Menage
  M:    menage@google.com
@@@ -1186,7 -1198,7 +1198,7 @@@ S:      Maintaine
  
  CPU FREQUENCY DRIVERS
  P:    Dave Jones
- M:    davej@codemonkey.org.uk
+ M:    davej@redhat.com
  L:    cpufreq@vger.kernel.org
  W:    http://www.codemonkey.org.uk/projects/cpufreq/
  T:    git kernel.org/pub/scm/linux/kernel/git/davej/cpufreq.git
@@@ -1289,6 -1301,20 +1301,20 @@@ W:    http://www.qsl.net/dl1bke
  L:    linux-hams@vger.kernel.org
  S:    Maintained
  
+ DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER
+ P:    Tobias Ringstrom
+ M:    tori@unhappy.mine.nu
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ DC390/AM53C974 SCSI driver
+ P:    Kurt Garloff
+ M:    garloff@suse.de
+ W:    http://www.garloff.de/kurt/linux/dc390/
+ P:    Guennadi Liakhovetski
+ M:    g.liakhovetski@gmx.de
+ S:    Maintained
  DC395x SCSI driver
  P:    Oliver Neukum
  M:    oliver@neukum.name
@@@ -1301,14 -1327,6 +1327,6 @@@ L:     dc395x@twibble.or
  L:    http://lists.twibble.org/mailman/listinfo/dc395x/
  S:    Maintained
  
- DC390/AM53C974 SCSI driver
- P:    Kurt Garloff
- M:    garloff@suse.de
- W:    http://www.garloff.de/kurt/linux/dc390/
- P:    Guennadi Liakhovetski
- M:    g.liakhovetski@gmx.de
- S:    Maintained
  DCCP PROTOCOL
  P:    Arnaldo Carvalho de Melo
  M:    acme@ghostprotocols.net
@@@ -1339,12 -1357,6 +1357,6 @@@ P:     Doug Warzech
  M:    Douglas_Warzecha@dell.com
  S:    Maintained
  
- DEVICE-MAPPER  (LVM)
- P:    Alasdair Kergon
- L:    dm-devel@redhat.com
- W:    http://sources.redhat.com/dm
- S:    Maintained
  DEVICE NUMBER REGISTRY
  P:    Torben Mathiasen
  M:    device@lanana.org
@@@ -1352,6 -1364,12 +1364,12 @@@ W:    http://lanana.org/docs/device-list/i
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
+ DEVICE-MAPPER  (LVM)
+ P:    Alasdair Kergon
+ L:    dm-devel@redhat.com
+ W:    http://sources.redhat.com/dm
+ S:    Maintained
  DIGI INTL. EPCA DRIVER
  P:    Digi International, Inc
  M:    Eng.Linux@digi.com
@@@ -1359,7 -1377,7 +1377,7 @@@ L:      Eng.Linux@digi.co
  W:    http://www.digi.com
  S:    Orphan
  
- DIRECTORY NOTIFICATION
+ DIRECTORY NOTIFICATION (DNOTIFY)
  P:    Stephen Rothwell
  M:    sfr@canb.auug.org.au
  L:    linux-kernel@vger.kernel.org
@@@ -1373,13 -1391,13 +1391,13 @@@ W:   http://www.win.tue.nl/~aeb/linux/zip
  W:    http://www.win.tue.nl/~aeb/partitions/partition_types-1.html
  S:    Maintained
  
- DISKQUOTA:
+ DISKQUOTA
  P:    Jan Kara
  M:    jack@suse.cz
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
- DISTRIBUTED LOCK MANAGER
+ DISTRIBUTED LOCK MANAGER (DLM)
  P:    Christine Caulfield
  M:    ccaulfie@redhat.com
  P:    David Teigland
@@@ -1389,12 -1407,6 +1407,6 @@@ W:     http://sources.redhat.com/cluster
  T:    git kernel.org:/pub/scm/linux/kernel/git/teigland/dlm.git
  S:    Supported
  
- DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER
- P:    Tobias Ringstrom
- M:    tori@unhappy.mine.nu
- L:    netdev@vger.kernel.org
- S:    Maintained
  DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
  P:    Maciej Sosnowski
  M:    maciej.sosnowski@intel.com
@@@ -1415,8 -1427,8 +1427,8 @@@ M:      rdunlap@xenotime.ne
  S:    Maintained
  
  DOCKING STATION DRIVER
 -P:    Kristen Carlson Accardi
 -M:    kristen.c.accardi@intel.com
 +P:    Shaohua Li
 +M:    shaohua.li@intel.com
  L:    linux-acpi@vger.kernel.org
  S:    Supported
  
@@@ -1434,6 -1446,13 +1446,13 @@@ M:    jrv@vanzandt.mv.co
  L:    blinux-list@redhat.com
  S:    Maintained
  
+ DPT_I2O SCSI RAID DRIVER
+ P:    Adaptec OEM Raid Solutions
+ M:    aacraid@adaptec.com
+ L:    linux-scsi@vger.kernel.org
+ W:    http://www.adaptec.com/
+ S:    Maintained
  DRIVER CORE, KOBJECTS, AND SYSFS
  P:    Greg Kroah-Hartman
  M:    gregkh@suse.de
@@@ -1582,7 -1601,7 +1601,7 @@@ EFS FILESYSTE
  W:    http://aeschi.ch.eu.org/efs/
  S:    Orphan
  
- EHCA (IBM GX bus InfiniBand adapter) DRIVER:
+ EHCA (IBM GX bus InfiniBand adapter) DRIVER
  P:    Hoang-Nam Nguyen
  M:    hnguyen@de.ibm.com
  P:    Christoph Raisch
@@@ -1610,6 -1629,11 +1629,11 @@@ P:    Christopher Hoove
  M:    ch@murgatroid.com, ch@hpl.hp.com
  S:    Maintained
  
+ EPSON S1D13XXX FRAMEBUFFER DRIVER
+ P:    Kristoffer Ericson
+ M:    kristoffer.ericson@gmail.com
+ S:    Maintained
  ETHEREXPRESS-16 NETWORK DRIVER
  P:    Philip Blundell
  M:    philb@gnu.org
@@@ -1639,9 -1663,10 +1663,10 @@@ L:    linux-ext4@vger.kernel.or
  S:    Maintained
  
  EXT4 FILE SYSTEM
- P:    Stephen Tweedie, Andrew Morton
- M:    sct@redhat.com, akpm@linux-foundation.org, adilger@sun.com
+ P:    Theodore Ts'o
+ M:    tytso@mit.edu, adilger@sun.com
  L:    linux-ext4@vger.kernel.org
+ W:    http://ext4.wiki.kernel.org
  S:    Maintained
  
  F71805F HARDWARE MONITORING DRIVER
@@@ -1661,28 -1686,64 +1686,64 @@@ P:   Akinobu Mit
  M:    akinobu.mita@gmail.com
  S:    Supported
  
- FRAMEBUFFER LAYER
- P:    Antonino Daplas
- M:    adaplas@gmail.com
- L:    linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
- W:    http://linux-fbdev.sourceforge.net/
+ FILE LOCKING (flock() and fcntl()/lockf())
+ P:    Matthew Wilcox
+ M:    matthew@wil.cx
+ L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
  
- FREESCALE DMA DRIVER
- P:    Li Yang
- M:    leoli@freescale.com
- P:    Zhang Wei
- M:    zw@zh-kernel.org
- L:    linuxppc-embedded@ozlabs.org
- L:    linux-kernel@vger.kernel.org
+ FILESYSTEMS (VFS and infrastructure)
+ P:    Alexander Viro
+ M:    viro@zeniv.linux.org.uk
+ L:    linux-fsdevel@vger.kernel.org
  S:    Maintained
  
- FREESCALE I2C CPM DRIVER
- P:    Jochen Friedrich
- M:    jochen@scram.de
- L:    linuxppc-dev@ozlabs.org
- L:    i2c@lm-sensors.org
- S:    Maintained
+ FIREWIRE SUBSYSTEM (drivers/firewire, <linux/firewire*.h>)
+ P:    Kristian Hoegsberg, Stefan Richter
+ M:    krh@redhat.com, stefanr@s5r6.in-berlin.de
+ L:    linux1394-devel@lists.sourceforge.net
+ W:    http://www.linux1394.org/
+ T:    git kernel.org:/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git
+ S:    Maintained
+ FIRMWARE LOADER (request_firmware)
+ L:    linux-kernel@vger.kernel.org
+ S:    Orphan
+ FPU EMULATOR
+ P:    Bill Metzenthen
+ M:    billm@suburbia.net
+ W:    http://suburbia.net/~billm/floating-point/emulator/
+ S:    Maintained
+ FRAME RELAY DLCI/FRAD (Sangoma drivers too)
+ P:    Mike McLagan
+ M:    mike.mclagan@linux.org
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ FRAMEBUFFER LAYER
+ P:    Antonino Daplas
+ M:    adaplas@gmail.com
+ L:    linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
+ W:    http://linux-fbdev.sourceforge.net/
+ S:    Maintained
+ FREESCALE DMA DRIVER
+ P:    Li Yang
+ M:    leoli@freescale.com
+ P:    Zhang Wei
+ M:    zw@zh-kernel.org
+ L:    linuxppc-embedded@ozlabs.org
+ L:    linux-kernel@vger.kernel.org
+ S:    Maintained
+ FREESCALE I2C CPM DRIVER
+ P:    Jochen Friedrich
+ M:    jochen@scram.de
+ L:    linuxppc-dev@ozlabs.org
+ L:    i2c@lm-sensors.org
+ S:    Maintained
  
  FREESCALE SOC FS_ENET DRIVER
  P:    Pantelis Antoniou
@@@ -1726,42 -1787,6 +1787,6 @@@ L:     alsa-devel@alsa-project.or
  L:    linuxppc-dev@ozlabs.org
  S:    Supported
  
- FILE LOCKING (flock() and fcntl()/lockf())
- P:    Matthew Wilcox
- M:    matthew@wil.cx
- L:    linux-fsdevel@vger.kernel.org
- S:    Maintained
- FILESYSTEMS (VFS and infrastructure)
- P:    Alexander Viro
- M:    viro@zeniv.linux.org.uk
- L:    linux-fsdevel@vger.kernel.org
- S:    Maintained
- FIREWIRE SUBSYSTEM (drivers/firewire, <linux/firewire*.h>)
- P:    Kristian Hoegsberg, Stefan Richter
- M:    krh@redhat.com, stefanr@s5r6.in-berlin.de
- L:    linux1394-devel@lists.sourceforge.net
- W:    http://www.linux1394.org/
- T:    git kernel.org:/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git
- S:    Maintained
- FIRMWARE LOADER (request_firmware)
- L:    linux-kernel@vger.kernel.org
- S:    Orphan
- FPU EMULATOR
- P:    Bill Metzenthen
- M:    billm@suburbia.net
- W:    http://suburbia.net/~billm/floating-point/emulator/
- S:    Maintained
- FRAME RELAY DLCI/FRAD (Sangoma drivers too)
- P:    Mike McLagan
- M:    mike.mclagan@linux.org
- L:    netdev@vger.kernel.org
- S:    Maintained
  FREEVXFS FILESYSTEM
  P:    Christoph Hellwig
  M:    hch@infradead.org
@@@ -1833,6 -1858,13 +1858,13 @@@ L:    gigaset307x-common@lists.sourceforge
  W:    http://gigaset307x.sourceforge.net/
  S:    Maintained
  
+ HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
+ P:    Robert Love
+ M:    rlove@rlove.org
+ M:    linux-kernel@vger.kernel.org
+ W:    http://www.kernel.org/pub/linux/kernel/people/rml/hdaps/
+ S:    Maintained
  HARDWARE MONITORING
  L:    lm-sensors@lm-sensors.org
  W:    http://www.lm-sensors.org/
@@@ -1841,13 -1873,6 +1873,6 @@@ S:     Orpha
  HARDWARE RANDOM NUMBER GENERATOR CORE
  S:    Orphan
  
- HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
- P:    Robert Love
- M:    rlove@rlove.org
- M:    linux-kernel@vger.kernel.org
- W:    http://www.kernel.org/pub/linux/kernel/people/rml/hdaps/
- S:    Maintained
  HARMONY SOUND DRIVER
  P:    Kyle McMartin
  M:    kyle@mcmartin.ca
@@@ -1861,6 -1886,24 +1886,24 @@@ L:    linux-kernel@vger.kernel.or
  W:    http://www.nyx.net/~arobinso
  S:    Maintained
  
+ HEWLETT-PACKARD FIBRE CHANNEL 64-bit/66MHz PCI non-intelligent HBA
+ P:    Chirag Kantharia
+ M:    chirag.kantharia@hp.com
+ L:    iss_storagedev@hp.com
+ S:    Maintained
+ HEWLETT-PACKARD SMART2 RAID DRIVER
+ P:    Chirag Kantharia
+ M:    chirag.kantharia@hp.com
+ L:    iss_storagedev@hp.com
+ S:    Maintained
+ HEWLETT-PACKARD SMART CISS RAID DRIVER (cciss)
+ P:    Mike Miller
+ M:    mike.miller@hp.com
+ L:    iss_storagedev@hp.com
+ S:    Supported
  HFS FILESYSTEM
  P:    Roman Zippel
  M:    zippel@linux-m68k.org
@@@ -1874,6 -1917,14 +1917,14 @@@ L:    linux-nvidia@lists.surfsouth.co
  W:    http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml
  S:    Maintained
  
+ HIBERNATION (aka Software Suspend, aka swsusp)
+ P:    Pavel Machek
+ M:    pavel@suse.cz
+ P:    Rafael J. Wysocki
+ M:    rjw@sisk.pl
+ L:    linux-pm@lists.linux-foundation.org
+ S:    Supported
  HID CORE LAYER
  P:    Jiri Kosina
  M:    jkosina@suse.cz
@@@ -1906,24 -1957,6 +1957,6 @@@ M:     jes@trained-monkey.or
  L:    linux-hippi@sunsite.dk
  S:    Maintained
  
- HEWLETT-PACKARD FIBRE CHANNEL 64-bit/66MHz PCI non-intelligent HBA
- P:    Chirag Kantharia
- M:    chirag.kantharia@hp.com
- L:    iss_storagedev@hp.com
- S:    Maintained
- HEWLETT-PACKARD SMART2 RAID DRIVER
- P:    Chirag Kantharia
- M:    chirag.kantharia@hp.com
- L:    iss_storagedev@hp.com
- S:    Maintained
- HEWLETT-PACKARD SMART CISS RAID DRIVER (cciss)
- P:    Mike Miller
- M:    mike.miller@hp.com
- L:    iss_storagedev@hp.com
- S:    Supported
  HOST AP DRIVER
  P:    Jouni Malinen
  M:    j@w1.fi
@@@ -1932,16 -1965,16 +1965,16 @@@ L:   linux-wireless@vger.kernel.or
  W:    http://hostap.epitest.fi/
  S:    Maintained
  
- HP100:        Driver for HP 10/100 Mbit/s Voice Grade Network Adapter Series
- P:    Jaroslav Kysela
- M:    perex@perex.cz
- S:    Maintained
  HP COMPAQ TC1100 TABLET WMI EXTRAS DRIVER
  P:    Carlos Corbacho
  M:    carlos@strangeworlds.co.uk
  S:    Odd Fixes
  
+ HP100:        Driver for HP 10/100 Mbit/s Voice Grade Network Adapter Series
+ P:    Jaroslav Kysela
+ M:    perex@perex.cz
+ S:    Maintained
  HPET: High Precision Event Timers driver (drivers/char/hpet.c)
  P:    Clemens Ladisch
  M:    clemens@ladisch.de
@@@ -2021,14 -2054,6 +2054,6 @@@ W:     http://www.ia64-linux.org
  T:    git kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git
  S:    Maintained
  
- SN-IA64 (Itanium) SUB-PLATFORM
- P:    Jes Sorensen
- M:    jes@sgi.com
- L:    linux-altix@sgi.com
- L:    linux-ia64@vger.kernel.org
- W:    http://www.sgi.com/altix
- S:    Maintained
  IBM MCA SCSI SUBSYSTEM DRIVER
  P:    Michael Lang
  M:    langa2@kph.uni-mainz.de
@@@ -2078,12 -2103,6 +2103,12 @@@ L:    linux-ide@vger.kernel.or
  L:    linux-scsi@vger.kernel.org
  S:    Orphan
  
 +IDLE-I7300
 +P:    Andy Henroid
 +M:    andrew.d.henroid@intel.com
 +L:    linux-pm@lists.linux-foundation.org
 +S:    Supported
 +
  IEEE 1394 SUBSYSTEM (drivers/ieee1394)
  P:    Ben Collins
  M:    ben.collins@ubuntu.com
@@@ -2118,14 -2137,6 +2143,6 @@@ W:     http://www.openib.org
  T:    git kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git
  S:    Supported
  
- INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS
- P:    Dmitry Torokhov
- M:    dmitry.torokhov@gmail.com
- M:    dtor@mail.ru
- L:    linux-input@vger.kernel.org
- T:    git kernel.org:/pub/scm/linux/kernel/git/dtor/input.git
- S:    Maintained
  INOTIFY
  P:    John McCutchan
  M:    ttb@tentacle.dhs.org
@@@ -2134,6 -2145,14 +2151,14 @@@ M:    rml@novell.co
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
+ INPUT (KEYBOARD, MOUSE, JOYSTICK, TOUCHSCREEN) DRIVERS
+ P:    Dmitry Torokhov
+ M:    dmitry.torokhov@gmail.com
+ M:    dtor@mail.ru
+ L:    linux-input@vger.kernel.org
+ T:    git kernel.org:/pub/scm/linux/kernel/git/dtor/input.git
+ S:    Maintained
  INTEL FRAMEBUFFER DRIVER (excluding 810 and 815)
  P:    Sylvain Meyer
  M:    sylvain.meyer@worldonline.fr
@@@ -2238,7 -2257,7 +2263,7 @@@ M:      pfg@sgi.co
  L:    linux-mips@linux-mips.org
  S:    Maintained
  
- IP MASQUERADING:
+ IP MASQUERADING
  P:    Juanjo Ciarlante
  M:    jjciarla@raiz.uncu.edu.ar
  S:    Maintained
@@@ -2253,7 -2272,7 +2278,7 @@@ M:      jesse@icplus.com.t
  L:    netdev@vger.kernel.org
  S:    Maintained
  
- IPATH DRIVER:
+ IPATH DRIVER
  P:    Ralph Campbell
  M:    infinipath@qlogic.com
  L:    general@lists.openfabrics.org
@@@ -2267,13 -2286,25 +2292,25 @@@ L:   openipmi-developer@lists.sourceforge
  W:    http://openipmi.sourceforge.net/
  S:    Supported
  
- IPX NETWORK LAYER
- P:    Arnaldo Carvalho de Melo
- M:    acme@ghostprotocols.net
+ IPS SCSI RAID DRIVER
+ P:    Adaptec OEM Raid Solutions
+ M:    aacraid@adaptec.com
+ L:    linux-scsi@vger.kernel.org
+ W:    http://www.adaptec.com/
+ S:    Maintained
+ IPVS
+ P:    Wensong Zhang
+ M:    wensong@linux-vs.org
+ P:    Simon Horman
+ M:    horms@verge.net.au
+ P:    Julian Anastasov
+ M:    ja@ssi.bg
  L:    netdev@vger.kernel.org
+ L:    lvs-devel@vger.kernel.org
  S:    Maintained
  
- IPWIRELES DRIVER
+ IPWIRELESS DRIVER
  P:    Jiri Kosina
  M:    jkosina@suse.cz
  P:    David Sterba
@@@ -2281,6 -2312,12 +2318,12 @@@ M:    dsterba@suse.c
  S:    Maintained
  T:    git://git.kernel.org/pub/scm/linux/kernel/git/jikos/ipwireless_cs.git
  
+ IPX NETWORK LAYER
+ P:    Arnaldo Carvalho de Melo
+ M:    acme@ghostprotocols.net
+ L:    netdev@vger.kernel.org
+ S:    Maintained
  IRDA SUBSYSTEM
  P:    Samuel Ortiz
  M:    samuel@sortiz.org
@@@ -2288,6 -2325,11 +2331,11 @@@ L:    irda-users@lists.sourceforge.net (su
  W:    http://irda.sourceforge.net/
  S:    Maintained
  
+ ISAPNP
+ P:    Jaroslav Kysela
+ M:    perex@perex.cz
+ S:    Maintained
  ISCSI
  P:    Mike Christie
  M:    michaelc@cs.wisc.edu
@@@ -2296,11 -2338,6 +2344,6 @@@ W:     www.open-iscsi.or
  T:    git kernel.org:/pub/scm/linux/kernel/mnc/linux-2.6-iscsi.git
  S:    Maintained
  
- ISAPNP
- P:    Jaroslav Kysela
- M:    perex@perex.cz
- S:    Maintained
  ISDN SUBSYSTEM
  P:    Karsten Keil
  M:    kkeil@suse.de
@@@ -2325,23 -2362,6 +2368,6 @@@ L:     video4linux-list@redhat.co
  W:    http://www.ivtvdriver.org
  S:    Maintained
  
- JOURNALLING FLASH FILE SYSTEM V2 (JFFS2)
- P:    David Woodhouse
- M:    dwmw2@infradead.org
- L:    linux-mtd@lists.infradead.org
- W:    http://www.linux-mtd.infradead.org/doc/jffs2.html
- S:    Maintained
- UBI FILE SYSTEM (UBIFS)
- P:    Artem Bityutskiy
- M:    dedekind@infradead.org
- P:    Adrian Hunter
- M:    ext-adrian.hunter@nokia.com
- L:    linux-mtd@lists.infradead.org
- T:    git git://git.infradead.org/~dedekind/ubifs-2.6.git
- W:    http://www.linux-mtd.infradead.org/doc/ubifs.html
- S:    Maintained
  JFS FILESYSTEM
  P:    Dave Kleikamp
  M:    shaggy@austin.ibm.com
@@@ -2350,6 -2370,19 +2376,19 @@@ W:    http://jfs.sourceforge.net
  T:    git kernel.org:/pub/scm/linux/kernel/git/shaggy/jfs-2.6.git
  S:    Supported
  
+ JME NETWORK DRIVER
+ P:    Guo-Fu Tseng
+ M:    cooldavid@cooldavid.org
+ L:    netdev@vger.kernel.org
+ S:    Maintained
+ JOURNALLING FLASH FILE SYSTEM V2 (JFFS2)
+ P:    David Woodhouse
+ M:    dwmw2@infradead.org
+ L:    linux-mtd@lists.infradead.org
+ W:    http://www.linux-mtd.infradead.org/doc/jffs2.html
+ S:    Maintained
  JOURNALLING LAYER FOR BLOCK DEVICES (JBD)
  P:    Stephen Tweedie, Andrew Morton
  M:    sct@redhat.com, akpm@linux-foundation.org
@@@ -2415,7 -2448,14 +2454,14 @@@ S:    Supporte
  
  KERNEL VIRTUAL MACHINE (KVM)
  P:    Avi Kivity
- M:    avi@qumranet.com
+ M:    avi@redhat.com
+ L:    kvm@vger.kernel.org
+ W:    http://kvm.qumranet.com
+ S:    Supported
+ KERNEL VIRTUAL MACHINE (KVM) FOR AMD-V
+ P:    Joerg Roedel
+ M:    joerg.roedel@amd.com
  L:    kvm@vger.kernel.org
  W:    http://kvm.qumranet.com
  S:    Supported
@@@ -2586,11 -2626,6 +2632,6 @@@ W:     http://www.pasemi.com
  L:    linuxppc-dev@ozlabs.org
  S:    Supported
  
- LLC (802.2)
- P:    Arnaldo Carvalho de Melo
- M:    acme@ghostprotocols.net
- S:    Maintained
  LINUX SECURITY MODULE (LSM) FRAMEWORK
  P:    Chris Wright
  M:    chrisw@sous-sol.org
@@@ -2598,6 -2633,11 +2639,11 @@@ L:    linux-security-module@vger.kernel.or
  T:    git kernel.org:/pub/scm/linux/kernel/git/chrisw/lsm-2.6.git
  S:    Supported
  
+ LLC (802.2)
+ P:    Arnaldo Carvalho de Melo
+ M:    acme@ghostprotocols.net
+ S:    Maintained
  LM83 HARDWARE MONITOR DRIVER
  P:    Jean Delvare
  M:    khali@linux-fr.org
@@@ -2698,14 -2738,6 +2744,6 @@@ M:     kaber@trash.ne
  L:    netdev@vger.kernel.org
  S:    Maintained
  
- MARVELL YUKON / SYSKONNECT DRIVER
- P:    Mirko Lindner
- M:    mlindner@syskonnect.de
- P:    Ralph Roesler
- M:    rroesler@syskonnect.de
- W:    http://www.syskonnect.com
- S:    Supported
  MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7
  P:    Michael Kerrisk
  M:    mtk.manpages@gmail.com
@@@ -2725,6 -2757,14 +2763,14 @@@ M:    buytenh@marvell.co
  L:    netdev@vger.kernel.org
  S:    Supported
  
+ MARVELL YUKON / SYSKONNECT DRIVER
+ P:    Mirko Lindner
+ M:    mlindner@syskonnect.de
+ P:    Ralph Roesler
+ M:    rroesler@syskonnect.de
+ W:    http://www.syskonnect.com
+ S:    Supported
  MATROX FRAMEBUFFER DRIVER
  P:    Petr Vandrovec
  M:    vandrove@vc.cvut.cz
@@@ -2761,15 -2801,6 +2807,6 @@@ L:     linux-mm@kvack.or
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
- MEI MN10300/AM33 PORT
- P:    David Howells
- M:    dhowells@redhat.com
- P:    Koichi Yasutake
- M:    yasutake.koichi@jp.panasonic.com
- L:    linux-am33-list@redhat.com (moderated for non-subscribers)
- W:    ftp://ftp.redhat.com/pub/redhat/gnupro/AM33/
- S:    Maintained
  MEMORY TECHNOLOGY DEVICES (MTD)
  P:    David Woodhouse
  M:    dwmw2@infradead.org
@@@ -2778,14 -2809,6 +2815,6 @@@ L:     linux-mtd@lists.infradead.or
  T:    git git://git.infradead.org/mtd-2.6.git
  S:    Maintained
  
- UNSORTED BLOCK IMAGES (UBI)
- P:    Artem Bityutskiy
- M:    dedekind@infradead.org
- W:    http://www.linux-mtd.infradead.org/
- L:    linux-mtd@lists.infradead.org
- T:    git git://git.infradead.org/~dedekind/ubi-2.6.git
- S:    Maintained
  MICROTEK X6 SCANNER
  P:    Oliver Neukum
  M:    oliver@neukum.name
@@@ -3017,17 -3040,6 +3046,6 @@@ L:     netdev@vger.kernel.or
  W:    http://www.netxen.com
  S:    Supported
  
- IPVS
- P:    Wensong Zhang
- M:    wensong@linux-vs.org
- P:    Simon Horman
- M:    horms@verge.net.au
- P:    Julian Anastasov
- M:    ja@ssi.bg
- L:    netdev@vger.kernel.org
- L:    lvs-devel@vger.kernel.org
- S:    Maintained
  NFS, SUNRPC, AND LOCKD CLIENTS
  P:    Trond Myklebust
  M:    Trond.Myklebust@netapp.com
@@@ -3073,22 -3085,6 +3091,6 @@@ M:     adaplas@gmail.co
  L:    linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
  S:    Maintained
  
- OPENCORES I2C BUS DRIVER
- P:    Peter Korsgaard
- M:    jacmet@sunsite.dk
- L:    i2c@lm-sensors.org
- S:    Maintained
- ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
- P:    Mark Fasheh
- M:    mfasheh@suse.com
- P:    Joel Becker
- M:    joel.becker@oracle.com
- L:    ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
- W:    http://oss.oracle.com/projects/ocfs2/
- T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git
- S:    Supported
  OMFS FILESYSTEM
  P:    Bob Copeland
  M:    me@bobcopeland.com
@@@ -3124,12 -3120,28 +3126,28 @@@ L:   osst-users@lists.sourceforge.ne
  L:    linux-scsi@vger.kernel.org
  S:    Maintained
  
+ OPENCORES I2C BUS DRIVER
+ P:    Peter Korsgaard
+ M:    jacmet@sunsite.dk
+ L:    i2c@lm-sensors.org
+ S:    Maintained
  OPROFILE
  P:    Robert Richter
  M:    robert.richter@amd.com
  L:    oprofile-list@lists.sf.net
  S:    Maintained
  
+ ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
+ P:    Mark Fasheh
+ M:    mfasheh@suse.com
+ P:    Joel Becker
+ M:    joel.becker@oracle.com
+ L:    ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
+ W:    http://oss.oracle.com/projects/ocfs2/
+ T:    git git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2.git
+ S:    Supported
  ORINOCO DRIVER
  P:    Pavel Roskin
  M:    proski@gnu.org
@@@ -3141,6 -3153,14 +3159,14 @@@ L:    orinoco-devel@lists.sourceforge.ne
  W:    http://www.nongnu.org/orinoco/
  S:    Maintained
  
+ P54 WIRELESS DRIVER
+ P:    Michael Wu
+ M:    flamingice@sourmilk.net
+ L:    linux-wireless@vger.kernel.org
+ W:    http://prism54.org
+ T:    git kernel.org:/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git
+ S:    Maintained
  PA SEMI ETHERNET DRIVER
  P:    Olof Johansson
  M:    olof@lixom.net
@@@ -3153,15 -3173,32 +3179,37 @@@ M:   olof@lixom.ne
  L:    i2c@lm-sensors.org
  S:    Maintained
  
 +PANASONIC LAPTOP ACPI EXTRAS DRIVER
 +P:    Harald Welte
 +M:    laforge@gnumonks.org
 +S:    Maintained
 +
+ PANASONIC MN10300/AM33 PORT
+ P:    David Howells
+ M:    dhowells@redhat.com
+ P:    Koichi Yasutake
+ M:    yasutake.koichi@jp.panasonic.com
+ L:    linux-am33-list@redhat.com (moderated for non-subscribers)
+ W:    ftp://ftp.redhat.com/pub/redhat/gnupro/AM33/
+ S:    Maintained
  PARALLEL PORT SUPPORT
  L:    linux-parport@lists.infradead.org (subscribers-only)
  S:    Orphan
  
+ PARAVIRT_OPS INTERFACE
+ P:    Jeremy Fitzhardinge
+ M:    jeremy@xensource.com
+ P:    Chris Wright
+ M:    chrisw@sous-sol.org
+ P:    Zachary Amsden
+ M:    zach@vmware.com
+ P:    Rusty Russell
+ M:    rusty@rustcorp.com.au
+ L:    virtualization@lists.osdl.org
+ L:    linux-kernel@vger.kernel.org
+ S:    Supported
  PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES
  P:    Tim Waugh
  M:    tim@cyberelk.net
@@@ -3181,19 -3218,6 +3229,6 @@@ W:     http://www.parisc-linux.org
  T:    git kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6.git
  S:    Maintained
  
- PARAVIRT_OPS INTERFACE
- P:    Jeremy Fitzhardinge
- M:    jeremy@xensource.com
- P:    Chris Wright
- M:    chrisw@sous-sol.org
- P:    Zachary Amsden
- M:    zach@vmware.com
- P:    Rusty Russell
- M:    rusty@rustcorp.com.au
- L:    virtualization@lists.osdl.org
- L:    linux-kernel@vger.kernel.org
- S:    Supported
  PC87360 HARDWARE MONITORING DRIVER
  P:    Jim Cromie
  M:    jim.cromie@gmail.com
@@@ -3323,14 -3347,6 +3358,6 @@@ L:     kpreempt-tech@lists.sourceforge.ne
  W:    ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
  S:    Supported
  
- P54 WIRELESS DRIVER
- P:    Michael Wu
- M:    flamingice@sourmilk.net
- L:    linux-wireless@vger.kernel.org
- W:    http://prism54.org
- T:    git kernel.org:/pub/scm/linux/kernel/git/mwu/mac80211-drivers.git
- S:    Maintained
  PRISM54 WIRELESS DRIVER
  P:    Luis R. Rodriguez
  M:    mcgrof@gmail.com
@@@ -3386,12 -3402,19 +3413,19 @@@ S:   Orpha
  QLOGIC QLA2XXX FC-SCSI DRIVER
  P:    Andrew Vasquez
  M:    linux-driver@qlogic.com
- L:    linux-scsi@vger.kernel.org
+ L:    linux-scsi@vger.kernel.org
+ S:    Supported
+ QLOGIC QLA3XXX NETWORK DRIVER
+ P:    Ron Mercer
+ M:    linux-driver@qlogic.com
+ L:    netdev@vger.kernel.org
  S:    Supported
  
- QLOGIC QLA3XXX NETWORK DRIVER
+ QLOGIC QLGE 10Gb ETHERNET DRIVER
  P:    Ron Mercer
  M:    linux-driver@qlogic.com
+ M:    ron.mercer@qlogic.com
  L:    netdev@vger.kernel.org
  S:    Supported
  
@@@ -3414,13 -3437,7 +3448,7 @@@ M:     paulus@samba.or
  L:    linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
  S:    Maintained
  
- RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER
- P:    Corey Thomas
- M:    coreythomas@charter.net
- L:    linux-wireless@vger.kernel.org
- S:    Maintained
- RALINK RT2X00 WLAN DRIVER
+ RALINK RT2X00 WIRELESS LAN DRIVER
  P:    rt2x00 project
  L:    linux-wireless@vger.kernel.org
  L:    rt2400-devel@lists.sourceforge.net
@@@ -3445,6 -3462,18 +3473,18 @@@ M:    mporter@kernel.crashing.or
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
+ RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER
+ P:    Corey Thomas
+ M:    coreythomas@charter.net
+ L:    linux-wireless@vger.kernel.org
+ S:    Maintained
+ RCUTORTURE MODULE
+ P:    Josh Triplett
+ M:    josh@freedesktop.org
+ L:    linux-kernel@vger.kernel.org
+ S:    Maintained
  RDC R-321X SoC
  P:    Florian Fainelli
  M:    florian.fainelli@telecomint.eu
@@@ -3464,12 -3493,6 +3504,6 @@@ W:     http://www.rdrop.com/users/paulmck/r
  L:    linux-kernel@vger.kernel.org
  S:    Supported
  
- RCUTORTURE MODULE
- P:    Josh Triplett
- M:    josh@freedesktop.org
- L:    linux-kernel@vger.kernel.org
- S:    Maintained
  REAL TIME CLOCK DRIVER
  P:    Paul Gortmaker
  M:    p_gortmaker@yahoo.com
@@@ -3493,6 -3516,9 +3527,9 @@@ L:      netdev@vger.kernel.or
  S:    Maintained
  F:    net/rfkill
  
+ RISCOM8 DRIVER
+ S:    Orphan
  ROCKETPORT DRIVER
  P:    Comtrol Corp.
  W:    http://www.comtrol.com
@@@ -3505,9 -3531,6 +3542,6 @@@ L:      linux-hams@vger.kernel.or
  W:    http://www.linux-ax25.org/
  S:    Maintained
  
- RISCOM8 DRIVER
- S:    Orphan
  RTL818X WIRELESS DRIVER
  P:    Michael Wu
  M:    flamingice@sourmilk.net
@@@ -3647,6 -3670,12 +3681,12 @@@ M:    saschasommer@freenet.d
  L:    sdricohcs-devel@lists.sourceforge.net (subscribers-only)
  S:    Maintained
  
+ SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
+ P:    Pierre Ossman
+ M:    drzeus-sdhci@drzeus.cx
+ L:    sdhci-devel@list.drzeus.cx
+ S:    Maintained
  SECURITY CONTACT
  P:    Security Officers
  M:    security@kernel.org
@@@ -3660,8 -3689,9 +3700,9 @@@ M:      jmorris@namei.or
  P:    Eric Paris
  M:    eparis@parisplace.org
  L:    linux-kernel@vger.kernel.org (kernel issues)
- L:    selinux@tycho.nsa.gov (subscribers-only, general discussion)
- W:    http://www.nsa.gov/selinux
+ L:    selinux@tycho.nsa.gov (subscribers-only, general discussion)
+ W:    http://selinuxproject.org
+ T:    git kernel.org:pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git
  S:    Supported
  
  SENSABLE PHANTOM
@@@ -3669,19 -3699,13 +3710,13 @@@ P:   Jiri Slab
  M:    jirislaby@gmail.com
  S:    Maintained
  
- SERIAL ATA (SATA) SUBSYSTEM:
+ SERIAL ATA (SATA) SUBSYSTEM
  P:    Jeff Garzik
  M:    jgarzik@pobox.com
  L:    linux-ide@vger.kernel.org
  T:    git kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git
  S:    Supported
  
- SGI SN-IA64 (Altix) SERIAL CONSOLE DRIVER
- P:    Pat Gefre
- M:    pfg@sgi.com
- L:    linux-ia64@vger.kernel.org
- S:    Supported
  SFC NETWORK DRIVER
  P:    Steve Hodgson
  P:    Ben Hutchings
@@@ -3689,6 -3713,17 +3724,17 @@@ P:    Robert Stonehous
  M:    linux-net-drivers@solarflare.com
  S:    Supported
  
+ SGI GRU DRIVER
+ P:    Jack Steiner
+ M:    steiner@sgi.com
+ S:    Maintained
+ SGI SN-IA64 (Altix) SERIAL CONSOLE DRIVER
+ P:    Pat Gefre
+ M:    pfg@sgi.com
+ L:    linux-ia64@vger.kernel.org
+ S:    Supported
  SGI VISUAL WORKSTATION 320 AND 540
  P:    Andrey Panin
  M:    pazke@donpac.ru
@@@ -3696,16 -3731,24 +3742,24 @@@ L:   linux-visws-devel@lists.sf.ne
  W:    http://linux-visws.sf.net
  S:    Maintained for 2.6.
  
- SGI GRU DRIVER
- P:    Jack Steiner
- M:    steiner@sgi.com
- S:    Maintained
  SGI XP/XPC/XPNET DRIVER
  P:    Dean Nelson
  M:    dcn@sgi.com
  S:    Maintained
  
+ SHARP LH SUPPORT (LH7952X & LH7A40X)
+ P:    Marc Singer
+ M:    elf@buici.com
+ W:    http://projects.buici.com/arm
+ L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+ S:    Maintained
+ SHPC HOTPLUG DRIVER
+ P:    Kristen Carlson Accardi
+ M:    kristen.c.accardi@intel.com
+ L:    linux-pci@vger.kernel.org
+ S:    Supported
  SIMTEC EB110ATX (Chalice CATS)
  P:    Ben Dooks
  P:    Vincent Sanders
@@@ -3751,6 -3794,12 +3805,12 @@@ M:    thomas@winischhofer.ne
  W:    http://www.winischhofer.at/linuxsisusbvga.shtml
  S:    Maintained
  
+ SKGE, SKY2 10/100/1000 GIGABIT ETHERNET DRIVERS
+ P:    Stephen Hemminger
+ M:    shemminger@linux-foundation.org
+ L:    netdev@vger.kernel.org
+ S:    Maintained
  SLAB ALLOCATOR
  P:    Christoph Lameter
  M:    cl@linux-foundation.org
@@@ -3777,12 -3826,25 +3837,25 @@@ P:   Ben Nizett
  M:    bn@niasdigital.com
  S:    Maintained
  
+ SN-IA64 (Itanium) SUB-PLATFORM
+ P:    Jes Sorensen
+ M:    jes@sgi.com
+ L:    linux-altix@sgi.com
+ L:    linux-ia64@vger.kernel.org
+ W:    http://www.sgi.com/altix
+ S:    Maintained
  SOC-CAMERA V4L2 SUBSYSTEM
  P:    Guennadi Liakhovetski
  M:    g.liakhovetski@gmx.de
  L:    video4linux-list@redhat.com
  S:    Maintained
  
+ SOEKRIS NET48XX LED SUPPORT
+ P:    Chris Boot
+ M:    bootc@bootc.net
+ S:    Maintained
  SOFTWARE RAID (Multiple Disks) SUPPORT
  P:    Ingo Molnar
  M:    mingo@redhat.com
@@@ -3791,24 -3853,6 +3864,6 @@@ M:     neilb@suse.d
  L:    linux-raid@vger.kernel.org
  S:    Supported
  
- HIBERNATION (aka Software Suspend, aka swsusp):
- P:    Pavel Machek
- M:    pavel@suse.cz
- P:    Rafael J. Wysocki
- M:    rjw@sisk.pl
- L:    linux-pm@lists.linux-foundation.org
- S:    Supported
- SUSPEND TO RAM:
- P:    Len Brown
- M:    len.brown@intel.com
- P:    Pavel Machek
- M:    pavel@suse.cz
- P:    Rafael J. Wysocki
- M:    rjw@sisk.pl
- L:    linux-pm@lists.linux-foundation.org
- S:    Supported
  SONIC NETWORK DRIVER
  P:    Thomas Bogendoerfer
  M:    tsbogend@alpha.franken.de
@@@ -3838,6 -3882,8 +3893,8 @@@ S:      Maintaine
  SOUND
  P:    Jaroslav Kysela
  M:    perex@perex.cz
+ P:    Takashi Iwai
+ M:    tiwai@suse.de
  L:    alsa-devel@alsa-project.org (subscribers-only)
  S:    Maintained
  
@@@ -3851,59 -3897,7 +3908,7 @@@ L:     alsa-devel@alsa-project.org (subscri
  W:    http://alsa-project.org/main/index.php/ASoC
  S:    Supported
  
- SPI SUBSYSTEM
- P:    David Brownell
- M:    dbrownell@users.sourceforge.net
- L:    spi-devel-general@lists.sourceforge.net
- S:    Maintained
- SPU FILE SYSTEM
- P:    Jeremy Kerr
- M:    jk@ozlabs.org
- L:    linuxppc-dev@ozlabs.org
- L:    cbe-oss-dev@ozlabs.org
- W:    http://www.ibm.com/developerworks/power/cell/
- S:    Supported
- STABLE BRANCH:
- P:    Greg Kroah-Hartman
- M:    greg@kroah.com
- P:    Chris Wright
- M:    chrisw@sous-sol.org
- L:    stable@kernel.org
- S:    Maintained
- SHARP LH SUPPORT (LH7952X & LH7A40X)
- P:    Marc Singer
- M:    elf@buici.com
- W:    http://projects.buici.com/arm
- L:    linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
- S:    Maintained
- SHPC HOTPLUG DRIVER
- P:    Kristen Carlson Accardi
- M:    kristen.c.accardi@intel.com
- L:    linux-pci@vger.kernel.org
- S:    Supported
- SECURE DIGITAL HOST CONTROLLER INTERFACE DRIVER
- P:    Pierre Ossman
- M:    drzeus-sdhci@drzeus.cx
- L:    sdhci-devel@list.drzeus.cx
- S:    Maintained
- SKGE, SKY2 10/100/1000 GIGABIT ETHERNET DRIVERS
- P:    Stephen Hemminger
- M:    shemminger@linux-foundation.org
- L:    netdev@vger.kernel.org
- S:    Maintained
- SOEKRIS NET48XX LED SUPPORT
- P:    Chris Boot
- M:    bootc@bootc.net
- S:    Maintained
- SPARC (sparc32):
+ SPARC (sparc32)
  P:    William L. Irwin
  M:    wli@holomorphy.com
  L:    sparclinux@vger.kernel.org
@@@ -3915,6 -3909,12 +3920,12 @@@ M:    R.E.Wolff@BitWizard.n
  L:    linux-kernel@vger.kernel.org ?
  S:    Supported
  
+ SPI SUBSYSTEM
+ P:    David Brownell
+ M:    dbrownell@users.sourceforge.net
+ L:    spi-devel-general@lists.sourceforge.net
+ S:    Maintained
  SPIDERNET NETWORK DRIVER for CELL
  P:    Ishizaki Kou
  M:    kou.ishizaki@toshiba.co.jp
@@@ -3923,12 -3923,35 +3934,35 @@@ M:   jens@de.ibm.co
  L:    netdev@vger.kernel.org
  S:    Supported
  
+ SPU FILE SYSTEM
+ P:    Jeremy Kerr
+ M:    jk@ozlabs.org
+ L:    linuxppc-dev@ozlabs.org
+ L:    cbe-oss-dev@ozlabs.org
+ W:    http://www.ibm.com/developerworks/power/cell/
+ S:    Supported
  SRM (Alpha) environment access
  P:    Jan-Benedict Glaw
  M:    jbglaw@lug-owl.de
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
+ STABLE BRANCH
+ P:    Greg Kroah-Hartman
+ M:    greg@kroah.com
+ P:    Chris Wright
+ M:    chrisw@sous-sol.org
+ L:    stable@kernel.org
+ S:    Maintained
+ STAGING SUBSYSTEM
+ P:    Greg Kroah-Hartman
+ M:    gregkh@suse.de
+ L:    linux-kernel@vger.kernel.org
+ T:    quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
+ S:    Maintained
  STARFIRE/DURALAN NETWORK DRIVER
  P:    Ion Badulescu
  M:    ionut@cs.columbia.edu
@@@ -3944,6 -3967,12 +3978,12 @@@ M:    laredo@gnu.or
  W:    http://www.stradis.com/
  S:    Maintained
  
+ SUN3/3X
+ P:    Sam Creasey
+ M:    sammy@sammy.net
+ W:    http://sammy.net/sun3/
+ S:    Maintained
  SUPERH
  P:    Paul Mundt
  M:    lethal@linux-sh.org
@@@ -3952,11 -3981,15 +3992,15 @@@ W:   http://www.linux-sh.or
  T:    git kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6.git
  S:    Supported
  
- SUN3/3X
- P:    Sam Creasey
- M:    sammy@sammy.net
- W:    http://sammy.net/sun3/
- S:    Maintained
+ SUSPEND TO RAM
+ P:    Len Brown
+ M:    len.brown@intel.com
+ P:    Pavel Machek
+ M:    pavel@suse.cz
+ P:    Rafael J. Wysocki
+ M:    rjw@sisk.pl
+ L:    linux-pm@lists.linux-foundation.org
+ S:    Supported
  
  SVGA HANDLING
  P:    Martin Mares
@@@ -4002,7 -4035,7 +4046,7 @@@ P:      Mark Gros
  M:    mark.gross@intel.com
  S:    Supported
  
- TENSILICA XTENSA PORT (xtensa):
+ TENSILICA XTENSA PORT (xtensa)
  P:    Chris Zankel
  M:    chris@zankel.net
  S:    Maintained
@@@ -4075,7 -4108,7 +4119,7 @@@ W:      http://tpmdd.sourceforge.ne
  P:    Marcel Selhorst
  M:    tpm@selhorst.net
  W:    http://www.prosec.rub.de/tpm/
- L:    tpmdd-devel@lists.sourceforge.net
+ L:    tpmdd-devel@lists.sourceforge.net (moderated for non-subscribers)
  S:    Maintained
  
  TRIVIAL PATCHES
@@@ -4116,6 -4149,16 +4160,16 @@@ M:    ballabio_dario@emc.co
  L:    linux-scsi@vger.kernel.org
  S:    Maintained
  
+ UBI FILE SYSTEM (UBIFS)
+ P:    Artem Bityutskiy
+ M:    dedekind@infradead.org
+ P:    Adrian Hunter
+ M:    ext-adrian.hunter@nokia.com
+ L:    linux-mtd@lists.infradead.org
+ T:    git git://git.infradead.org/~dedekind/ubifs-2.6.git
+ W:    http://www.linux-mtd.infradead.org/doc/ubifs.html
+ S:    Maintained
  UCLINUX (AND M68KNOMMU)
  P:    Greg Ungerer
  M:    gerg@uclinux.org
@@@ -4141,7 -4184,7 +4195,7 @@@ M:      dushistov@mail.r
  L:    linux-kernel@vger.kernel.org
  S:    Maintained
  
- UltraSPARC (sparc64):
+ UltraSPARC (sparc64)
  P:    David S. Miller
  M:    davem@davemloft.net
  L:    sparclinux@vger.kernel.org
@@@ -4155,6 -4198,14 +4209,14 @@@ L:    linux-kernel@vger.kernel.or
  W:    http://www.kernel.dk
  S:    Maintained
  
+ UNSORTED BLOCK IMAGES (UBI)
+ P:    Artem Bityutskiy
+ M:    dedekind@infradead.org
+ W:    http://www.linux-mtd.infradead.org/
+ L:    linux-mtd@lists.infradead.org
+ T:    git git://git.infradead.org/~dedekind/ubi-2.6.git
+ S:    Maintained
  USB ACM DRIVER
  P:    Oliver Neukum
  M:    oliver@neukum.name
@@@ -4344,6 -4395,12 +4406,12 @@@ L:    linux-usb@vger.kernel.or
  W:    http://www.connecttech.com
  S:    Supported
  
+ USB SMSC95XX ETHERNET DRIVER
+ P:    Steve Glendinning
+ M:    steve.glendinning@smsc.com
+ L:    netdev@vger.kernel.org
+ S:    Supported
  USB SN9C1xx DRIVER
  P:    Luca Risolia
  M:    luca.risolia@studio.unibo.it
@@@ -4418,7 -4475,7 +4486,7 @@@ L:      video4linux-list@redhat.co
  W:    http://royale.zerezo.com/zr364xx/
  S:    Maintained
  
- USER-MODE LINUX
+ USER-MODE LINUX (UML)
  P:    Jeff Dike
  M:    jdike@addtoit.com
  L:    user-mode-linux-devel@lists.sourceforge.net
@@@ -4442,7 -4499,14 +4510,14 @@@ W:    http://kernel.org/~kzak/util-linux-n
  T:    git://git.kernel.org/pub/scm/utils/util-linux-ng/util-linux-ng.git
  S:    Maintained
  
- VFAT/FAT/MSDOS FILESYSTEM:
+ UVESAFB DRIVER
+ P:    Michal Januszewski
+ M:    spock@gentoo.org
+ L:    linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
+ W:    http://dev.gentoo.org/~spock/projects/uvesafb/
+ S:    Maintained
+ VFAT/FAT/MSDOS FILESYSTEM
  P:    OGAWA Hirofumi
  M:    hirofumi@mail.parknet.co.jp
  L:    linux-kernel@vger.kernel.org
@@@ -4459,13 -4523,21 +4534,21 @@@ M:   khali@linux-fr.or
  L:    i2c@lm-sensors.org
  S:    Maintained
  
+ VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
+ P:    Joseph Chan
+ M:    JosephChan@via.com.tw
+ P:    Scott Fang
+ M:    ScottFang@viatech.com.cn
+ L:    linux-fbdev-devel@lists.sourceforge.net (moderated for non-subscribers)
+ S:    Maintained
  VIA VELOCITY NETWORK DRIVER
  P:    Francois Romieu
  M:    romieu@fr.zoreil.com
  L:    netdev@vger.kernel.org
  S:    Maintained
  
- VIDEO FOR LINUX
+ VIDEO FOR LINUX (V4L)
  P:    Mauro Carvalho Chehab
  M:    mchehab@infradead.org
  M:    v4l-dvb-maintainer@linuxtv.org
@@@ -4482,10 -4554,11 +4565,11 @@@ S:   Maintaine
  
  VOLTAGE AND CURRENT REGULATOR FRAMEWORK
  P:    Liam Girdwood
- M:    lg@opensource.wolfsonmicro.com
+ M:    lrg@slimlogic.co.uk
  P:    Mark Brown
  M:    broonie@opensource.wolfsonmicro.com
  W:    http://opensource.wolfsonmicro.com/node/15
+ W:    http://www.slimlogic.co.uk/?page_id=5
  T:    git kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6.git
  S:    Supported
  
@@@ -4559,7 -4632,7 +4643,7 @@@ WM97XX TOUCHSCREEN DRIVER
  P:    Mark Brown
  M:    broonie@opensource.wolfsonmicro.com
  P:    Liam Girdwood
- M:    liam.girdwood@wolfsonmicro.com
+ M:    lrg@slimlogic.co.uk
  L:    linux-input@vger.kernel.org
  T:    git git://opensource.wolfsonmicro.com/linux-2.6-touch
  W:    http://opensource.wolfsonmicro.com/node/7
@@@ -4571,6 -4644,17 +4655,17 @@@ M:    eis@baty.hanse.d
  L:    linux-x25@vger.kernel.org
  S:    Maintained
  
+ X86 ARCHITECTURE (32-BIT AND 64-BIT)
+ P:    Thomas Gleixner
+ M:    tglx@linutronix.de
+ P:    Ingo Molnar
+ M:    mingo@redhat.com
+ P:    H. Peter Anvin
+ M:    hpa@zytor.com
+ L:    linux-kernel@vger.kernel.org
+ T:    git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git
+ S:    Maintained
  XEN HYPERVISOR INTERFACE
  P:    Jeremy Fitzhardinge
  M:    jeremy@xensource.com
@@@ -4602,17 -4686,6 +4697,6 @@@ M:     jacmet@sunsite.d
  L:    linux-serial@vger.kernel.org
  S:    Maintained
  
- X86 ARCHITECTURE (32-BIT AND 64-BIT)
- P:    Thomas Gleixner
- M:    tglx@linutronix.de
- P:    Ingo Molnar
- M:    mingo@redhat.com
- P:    H. Peter Anvin
- M:    hpa@zytor.com
- L:    linux-kernel@vger.kernel.org
- T:    git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git
- S:    Maintained
  YAM DRIVER FOR AX.25
  P:    Jean-Paul Roubelat
  M:    jpr@f6fbb.org
diff --combined arch/x86/Kconfig
index 540a78242034af44b6f6ad38bb4d6f0b781bb729,5b9b12321ad132ed1987ae7e5a9bdf278cc4be7a..350bee1d54dc2ae41851f503d9ef7705a0e93e31
@@@ -18,6 -18,7 +18,7 @@@ config X86_6
  ### Arch settings
  config X86
        def_bool y
+       select HAVE_AOUT if X86_32
        select HAVE_UNSTABLE_SCHED_CLOCK
        select HAVE_IDE
        select HAVE_OPROFILE
        select HAVE_KPROBES
        select ARCH_WANT_OPTIONAL_GPIOLIB
        select HAVE_KRETPROBES
+       select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_DYNAMIC_FTRACE
        select HAVE_FTRACE
        select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)
        select HAVE_ARCH_KGDB if !X86_VOYAGER
+       select HAVE_ARCH_TRACEHOOK
        select HAVE_GENERIC_DMA_COHERENT if X86_32
        select HAVE_EFFICIENT_UNALIGNED_ACCESS
  
@@@ -37,10 -40,6 +40,6 @@@ config ARCH_DEFCONFI
        default "arch/x86/configs/i386_defconfig" if X86_32
        default "arch/x86/configs/x86_64_defconfig" if X86_64
  
- config GENERIC_LOCKBREAK
-       def_bool n
  config GENERIC_TIME
        def_bool y
  
@@@ -93,7 -92,7 +92,7 @@@ config GENERIC_HWEIGH
        def_bool y
  
  config GENERIC_GPIO
-       def_bool n
+       bool
  
  config ARCH_MAY_HAVE_PC_FDC
        def_bool y
@@@ -104,12 -103,6 +103,6 @@@ config RWSEM_GENERIC_SPINLOC
  config RWSEM_XCHGADD_ALGORITHM
        def_bool X86_XADD
  
- config ARCH_HAS_ILOG2_U32
-       def_bool n
- config ARCH_HAS_ILOG2_U64
-       def_bool n
  config ARCH_HAS_CPU_IDLE_WAIT
        def_bool y
  
@@@ -123,9 -116,6 +116,9 @@@ config GENERIC_TIME_VSYSCAL
  config ARCH_HAS_CPU_RELAX
        def_bool y
  
 +config ARCH_HAS_DEFAULT_IDLE
 +      def_bool y
 +
  config ARCH_HAS_CACHE_LINE_SIZE
        def_bool y
  
@@@ -154,9 -144,6 +147,6 @@@ config AUDIT_ARC
        bool
        default X86_64
  
- config ARCH_SUPPORTS_AOUT
-       def_bool y
  config ARCH_SUPPORTS_OPTIMIZED_INLINING
        def_bool y
  
@@@ -207,6 -194,7 +197,7 @@@ config X86_TRAMPOLIN
  config KTIME_SCALAR
        def_bool X86_32
  source "init/Kconfig"
+ source "kernel/Kconfig.freezer"
  
  menu "Processor type and features"
  
@@@ -556,6 -544,7 +547,7 @@@ config CALGARY_IOMMU_ENABLED_BY_DEFAUL
  config AMD_IOMMU
        bool "AMD IOMMU support"
        select SWIOTLB
+       select PCI_MSI
        depends on X86_64 && PCI && ACPI
        help
          With this option you can enable support for AMD IOMMU hardware in
@@@ -761,9 -750,8 +753,8 @@@ config I8
          Say N otherwise.
  
  config X86_REBOOTFIXUPS
-       def_bool n
-       prompt "Enable X86 board specific fixups for reboot"
-       depends on X86_32 && X86
+       bool "Enable X86 board specific fixups for reboot"
+       depends on X86_32
        ---help---
          This enables chipset and/or board specific fixups to be done
          in order to get reboot to work correctly. This is only needed on
          Say N otherwise.
  
  config MICROCODE
-       tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
+       tristate "/dev/cpu/microcode - microcode support"
        select FW_LOADER
        ---help---
          If you say Y here, you will be able to update the microcode on
-         Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
-         Pentium III, Pentium 4, Xeon etc.  You will obviously need the
-         actual microcode binary data itself which is not shipped with the
-         Linux kernel.
+         certain Intel and AMD processors. The Intel support is for the
+         IA32 family, e.g. Pentium Pro, Pentium II, Pentium III,
+         Pentium 4, Xeon etc. The AMD support is for family 0x10 and
+         0x11 processors, e.g. Opteron, Phenom and Turion 64 Ultra.
+         You will obviously need the actual microcode binary data itself
+         which is not shipped with the Linux kernel.
  
-         For latest news and information on obtaining all the required
-         ingredients for this driver, check:
-         <http://www.urbanmyth.org/microcode/>.
+         This option selects the general module only, you need to select
+         at least one vendor specific module as well.
  
          To compile this driver as a module, choose M here: the
          module will be called microcode.
  
- config MICROCODE_OLD_INTERFACE
+ config MICROCODE_INTEL
+        bool "Intel microcode patch loading support"
+        depends on MICROCODE
+        default MICROCODE
+        select FW_LOADER
+        --help---
+          This options enables microcode patch loading support for Intel
+          processors.
+          For latest news and information on obtaining all the required
+          Intel ingredients for this driver, check:
+          <http://www.urbanmyth.org/microcode/>.
+ config MICROCODE_AMD
+        bool "AMD microcode patch loading support"
+        depends on MICROCODE
+        select FW_LOADER
+        --help---
+          If you select this option, microcode patch loading support for AMD
+        processors will be enabled.
+    config MICROCODE_OLD_INTERFACE
        def_bool y
        depends on MICROCODE
  
@@@ -925,16 -935,17 +938,17 @@@ config HIGHME
        depends on X86_32 && (HIGHMEM64G || HIGHMEM4G)
  
  config X86_PAE
-       def_bool n
-       prompt "PAE (Physical Address Extension) Support"
+       bool "PAE (Physical Address Extension) Support"
        depends on X86_32 && !HIGHMEM4G
-       select RESOURCES_64BIT
        help
          PAE is required for NX support, and furthermore enables
          larger swapspace support for non-overcommit purposes. It
          has the cost of more pagetable lookup overhead, and also
          consumes more pagetable space per process.
  
+ config ARCH_PHYS_ADDR_T_64BIT
+        def_bool X86_64 || X86_PAE
  # Common NUMA Features
  config NUMA
        bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
@@@ -1023,7 -1034,7 +1037,7 @@@ config HAVE_ARCH_ALLOC_REMA
  
  config ARCH_FLATMEM_ENABLE
        def_bool y
-       depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC && !NUMA
+       depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && !NUMA
  
  config ARCH_DISCONTIGMEM_ENABLE
        def_bool y
@@@ -1039,7 -1050,7 +1053,7 @@@ config ARCH_SPARSEMEM_DEFAUL
  
  config ARCH_SPARSEMEM_ENABLE
        def_bool y
-       depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC)
+       depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC) || X86_GENERICARCH
        select SPARSEMEM_STATIC if X86_32
        select SPARSEMEM_VMEMMAP_ENABLE if X86_64
  
@@@ -1062,6 -1073,56 +1076,56 @@@ config HIGHPT
          low memory.  Setting this option will put user-space page table
          entries in high memory.
  
+ config X86_CHECK_BIOS_CORRUPTION
+         bool "Check for low memory corruption"
+       help
+        Periodically check for memory corruption in low memory, which
+        is suspected to be caused by BIOS.  Even when enabled in the
+        configuration, it is disabled at runtime.  Enable it by
+        setting "memory_corruption_check=1" on the kernel command
+        line.  By default it scans the low 64k of memory every 60
+        seconds; see the memory_corruption_check_size and
+        memory_corruption_check_period parameters in
+        Documentation/kernel-parameters.txt to adjust this.
+        When enabled with the default parameters, this option has
+        almost no overhead, as it reserves a relatively small amount
+        of memory and scans it infrequently.  It both detects corruption
+        and prevents it from affecting the running system.
+        It is, however, intended as a diagnostic tool; if repeatable
+        BIOS-originated corruption always affects the same memory,
+        you can use memmap= to prevent the kernel from using that
+        memory.
+ config X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
+         bool "Set the default setting of memory_corruption_check"
+       depends on X86_CHECK_BIOS_CORRUPTION
+       default y
+       help
+        Set whether the default state of memory_corruption_check is
+        on or off.
+ config X86_RESERVE_LOW_64K
+         bool "Reserve low 64K of RAM on AMI/Phoenix BIOSen"
+       default y
+       help
+        Reserve the first 64K of physical RAM on BIOSes that are known
+        to potentially corrupt that memory range. A numbers of BIOSes are
+        known to utilize this area during suspend/resume, so it must not
+        be used by the kernel.
+        Set this to N if you are absolutely sure that you trust the BIOS
+        to get all its memory reservations and usages right.
+        If you have doubts about the BIOS (e.g. suspend/resume does not
+        work or there's kernel crashes after certain hardware hotplug
+        events) and it's not AMI or Phoenix, then you might want to enable
+        X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check typical
+        corruption patterns.
+        Say Y if unsure.
  config MATH_EMULATION
        bool
        prompt "Math emulation" if X86_32
@@@ -1120,10 -1181,10 +1184,10 @@@ config MTR
          You can safely say Y even if your machine doesn't have MTRRs, you'll
          just add about 9 KB to your kernel.
  
-         See <file:Documentation/mtrr.txt> for more information.
+         See <file:Documentation/x86/mtrr.txt> for more information.
  
  config MTRR_SANITIZER
-       bool
+       def_bool y
        prompt "MTRR cleanup support"
        depends on MTRR
        help
          The largest mtrr entry size for a continous block can be set with
          mtrr_chunk_size.
  
-         If unsure, say N.
+         If unsure, say Y.
  
  config MTRR_SANITIZER_ENABLE_DEFAULT
        int "MTRR cleanup enable value (0-1)"
@@@ -1169,8 -1230,7 +1233,7 @@@ config X86_PA
          If unsure, say Y.
  
  config EFI
-       def_bool n
-       prompt "EFI runtime service support"
+       bool "EFI runtime service support"
        depends on ACPI
        ---help---
        This enables the kernel to use EFI runtime services that are
        resultant kernel should continue to boot on existing non-EFI
        platforms.
  
- config IRQBALANCE
-       def_bool y
-       prompt "Enable kernel irq balancing"
-       depends on X86_32 && SMP && X86_IO_APIC
-       help
-         The default yes will allow the kernel to do irq load balancing.
-         Saying no will keep the kernel from doing irq load balancing.
  config SECCOMP
        def_bool y
        prompt "Enable seccomp to safely compute untrusted bytecode"
-       depends on PROC_FS
        help
          This kernel feature is useful for number crunching applications
          that may need to compute untrusted bytecode during their
          the process as file descriptors supporting the read/write
          syscalls, it's possible to isolate those applications in
          their own address space using seccomp. Once seccomp is
-         enabled via /proc/<pid>/seccomp, it cannot be disabled
+         enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
          and the task is only allowed to execute a few safe syscalls
          defined by each seccomp mode.
  
@@@ -1359,14 -1410,14 +1413,14 @@@ config PHYSICAL_ALIG
          Don't change this unless you know what you are doing.
  
  config HOTPLUG_CPU
-       bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)"
-       depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER
+       bool "Support for hot-pluggable CPUs"
+       depends on SMP && HOTPLUG && !X86_VOYAGER
        ---help---
-         Say Y here to experiment with turning CPUs off and on, and to
-         enable suspend on SMP systems. CPUs can be controlled through
-         /sys/devices/system/cpu.
-         Say N if you want to disable CPU hotplug and don't need to
-         suspend.
+         Say Y here to allow turning CPUs off and on. CPUs can be
+         controlled through /sys/devices/system/cpu.
+         ( Note: power management support will enable this option
+           automatically on SMP systems. )
+         Say N if you want to disable CPU hotplug.
  
  config COMPAT_VDSO
        def_bool y
  
          If unsure, say Y.
  
+ config CMDLINE_BOOL
+       bool "Built-in kernel command line"
+       default n
+       help
+         Allow for specifying boot arguments to the kernel at
+         build time.  On some systems (e.g. embedded ones), it is
+         necessary or convenient to provide some or all of the
+         kernel boot arguments with the kernel itself (that is,
+         to not rely on the boot loader to provide them.)
+         To compile command line arguments into the kernel,
+         set this option to 'Y', then fill in the
+         the boot arguments in CONFIG_CMDLINE.
+         Systems with fully functional boot loaders (i.e. non-embedded)
+         should leave this option set to 'N'.
+ config CMDLINE
+       string "Built-in kernel command string"
+       depends on CMDLINE_BOOL
+       default ""
+       help
+         Enter arguments here that should be compiled into the kernel
+         image and used at boot time.  If the boot loader provides a
+         command line at boot time, it is appended to this string to
+         form the full kernel command line, when the system boots.
+         However, you can use the CONFIG_CMDLINE_OVERRIDE option to
+         change this behavior.
+         In most cases, the command line (whether built-in or provided
+         by the boot loader) should specify the device for the root
+         file system.
+ config CMDLINE_OVERRIDE
+       bool "Built-in command line overrides boot loader arguments"
+       default n
+       depends on CMDLINE_BOOL
+       help
+         Set this option to 'Y' to have the kernel ignore the boot loader
+         command line, and use ONLY the built-in command line.
+         This is used to work around broken boot loaders.  This should
+         be set to 'N' under normal conditions.
  endmenu
  
  config ARCH_ENABLE_MEMORY_HOTPLUG
@@@ -1539,8 -1635,6 +1638,8 @@@ source "arch/x86/kernel/cpu/cpufreq/Kco
  
  source "drivers/cpuidle/Kconfig"
  
 +source "drivers/idle/Kconfig"
 +
  endmenu
  
  
@@@ -1648,6 -1742,14 +1747,14 @@@ config DMAR_FLOPPY_W
         workaround will setup a 1:1 mapping for the first
         16M to make floppy (an ISA device) work.
  
+ config INTR_REMAP
+       bool "Support for Interrupt Remapping (EXPERIMENTAL)"
+       depends on X86_64 && X86_IO_APIC && PCI_MSI && ACPI && EXPERIMENTAL
+       help
+        Supports Interrupt remapping for IO-APIC and MSI devices.
+        To use x2apic mode in the CPU's which support x2APIC enhancements or
+        to support platforms with CPU's having > 8 bit APIC ID, say Y.
  source "drivers/pci/pcie/Kconfig"
  
  source "drivers/pci/Kconfig"
@@@ -1764,7 -1866,7 +1871,7 @@@ config IA32_EMULATIO
  
  config IA32_AOUT
         tristate "IA32 a.out support"
-        depends on IA32_EMULATION && ARCH_SUPPORTS_AOUT
+        depends on IA32_EMULATION
         help
           Support old a.out binaries in the 32bit emulation.
  
@@@ -1778,7 -1880,7 +1885,7 @@@ config COMPAT_FOR_U64_ALIGNMEN
  
  config SYSVIPC_COMPAT
        def_bool y
-       depends on X86_64 && COMPAT && SYSVIPC
+       depends on COMPAT && SYSVIPC
  
  endmenu
  
index 0c2742f8c4da94c7ebb1d0c619a7eb147fe476ea,0d1c26a583c59fb3329503b0f44d15fe148ec122..53b01a1ae10c8fe04e2a926ad1209473c71b487b
@@@ -58,7 -58,6 +58,6 @@@ EXPORT_SYMBOL(acpi_disabled)
  #ifdef        CONFIG_X86_64
  
  #include <asm/proto.h>
- #include <asm/genapic.h>
  
  #else                         /* X86 */
  
@@@ -97,7 -96,6 +96,6 @@@ static u64 acpi_lapic_addr __initdata 
  #warning ACPI uses CMPXCHG, i486 and later hardware
  #endif
  
  /* --------------------------------------------------------------------------
                                Boot-time Configuration
     -------------------------------------------------------------------------- */
@@@ -155,13 -153,12 +153,13 @@@ char *__init __acpi_map_table(unsigned 
  }
  
  #ifdef CONFIG_PCI_MMCONFIG
 +
 +static int acpi_mcfg_64bit_base_addr __initdata = FALSE;
 +
  /* The physical address of the MMCONFIG aperture.  Set from ACPI tables. */
  struct acpi_mcfg_allocation *pci_mmcfg_config;
  int pci_mmcfg_config_num;
  
 -static int acpi_mcfg_64bit_base_addr __initdata = FALSE;
 -
  static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg)
  {
        if (!strcmp(mcfg->header.oem_id, "SGI"))
@@@ -255,10 -252,8 +253,8 @@@ static void __cpuinit acpi_register_lap
                return;
        }
  
- #ifdef CONFIG_X86_32
        if (boot_cpu_physical_apicid != -1U)
                ver = apic_version[boot_cpu_physical_apicid];
- #endif
  
        generic_processor_info(id, ver);
  }
@@@ -777,11 -772,9 +773,9 @@@ static void __init acpi_register_lapic_
  
        set_fixmap_nocache(FIX_APIC_BASE, address);
        if (boot_cpu_physical_apicid == -1U) {
-               boot_cpu_physical_apicid  = GET_APIC_ID(read_apic_id());
- #ifdef CONFIG_X86_32
+               boot_cpu_physical_apicid  = read_apic_id();
                apic_version[boot_cpu_physical_apicid] =
                         GET_APIC_VERSION(apic_read(APIC_LVR));
- #endif
        }
  }
  
@@@ -1263,7 -1256,7 +1257,7 @@@ static int __init acpi_parse_madt_ioapi
  
        count =
            acpi_table_parse_madt(ACPI_MADT_TYPE_INTERRUPT_OVERRIDE, acpi_parse_int_src_ovr,
-                                 NR_IRQ_VECTORS);
+                                 nr_irqs);
        if (count < 0) {
                printk(KERN_ERR PREFIX
                       "Error parsing interrupt source overrides entry\n");
  
        count =
            acpi_table_parse_madt(ACPI_MADT_TYPE_NMI_SOURCE, acpi_parse_nmi_src,
-                                 NR_IRQ_VECTORS);
+                                 nr_irqs);
        if (count < 0) {
                printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n");
                /* TBD: Cleanup to allow fallback to MPS */
@@@ -1353,7 -1346,9 +1347,9 @@@ static void __init acpi_process_madt(vo
                                acpi_ioapic = 1;
  
                                smp_found_config = 1;
+ #ifdef CONFIG_X86_32
                                setup_apic_routing();
+ #endif
                        }
                }
                if (error == -EINVAL) {
@@@ -1423,8 -1418,16 +1419,16 @@@ static int __init force_acpi_ht(const s
   */
  static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
  {
-       pr_notice("%s detected: Ignoring BIOS IRQ0 pin2 override\n", d->ident);
-       acpi_skip_timer_override = 1;
+       /*
+        * The ati_ixp4x0_rev() early PCI quirk should have set
+        * the acpi_skip_timer_override flag already:
+        */
+       if (!acpi_skip_timer_override) {
+               WARN(1, KERN_ERR "ati_ixp4x0 quirk not complete.\n");
+               pr_notice("%s detected: Ignoring BIOS IRQ0 pin2 override\n",
+                       d->ident);
+               acpi_skip_timer_override = 1;
+       }
        return 0;
  }
  
index 55d10cbe65b14bfa1863b6c9c7ba271e67a62289,c44cd6dbfa1414187213854db2ce3a1129298c76..806b4e9051b4e5ce2ae00576fa06a980ed6bbe08
@@@ -10,6 -10,7 +10,7 @@@
  #include <linux/dmi.h>
  #include <linux/cpumask.h>
  #include <asm/segment.h>
+ #include <asm/desc.h>
  
  #include "realmode/wakeup.h"
  #include "sleep.h"
@@@ -21,7 -22,7 +22,7 @@@ unsigned long acpi_realmode_flags
  static unsigned long acpi_realmode;
  
  #if defined(CONFIG_SMP) && defined(CONFIG_64BIT)
 -static char temp_stack[10240];
 +static char temp_stack[4096];
  #endif
  
  /**
@@@ -97,7 -98,9 +98,9 @@@ int acpi_save_state_mem(void
  #else /* CONFIG_64BIT */
        header->trampoline_segment = setup_trampoline() >> 4;
  #ifdef CONFIG_SMP
 -      stack_start.sp = temp_stack + 4096;
 +      stack_start.sp = temp_stack + sizeof(temp_stack);
+       early_gdt_descr.address =
+                       (unsigned long)get_cpu_gdt_table(smp_processor_id());
  #endif
        initial_code = (unsigned long)wakeup_long64;
        saved_magic = 0x123456789abcdef0;
index 9943b4c8774609e2af1ff4f4b9e8374e22a8937b,c24c4a487b7cb05f8ec6ad73998a2e0e01439d32..8e48c5d4467df61d3652a39b06b85e7389143c54
@@@ -256,7 -256,8 +256,8 @@@ static u32 get_cur_val(const cpumask_t 
   * Only IA32_APERF/IA32_MPERF ratio is architecturally defined and
   * no meaning should be associated with absolute values of these MSRs.
   */
- static unsigned int get_measured_perf(unsigned int cpu)
+ static unsigned int get_measured_perf(struct cpufreq_policy *policy,
+                                     unsigned int cpu)
  {
        union {
                struct {
  
  #endif
  
-       retval = per_cpu(drv_data, cpu)->max_freq * perf_percent / 100;
+       retval = per_cpu(drv_data, policy->cpu)->max_freq * perf_percent / 100;
  
        put_cpu();
        set_cpus_allowed_ptr(current, &saved_mask);
@@@ -779,16 -780,17 +780,20 @@@ static int __init acpi_cpufreq_init(voi
  {
        int ret;
  
 +      if (acpi_disabled)
 +              return 0;
 +
        dprintk("acpi_cpufreq_init\n");
  
        ret = acpi_cpufreq_early_init();
        if (ret)
                return ret;
  
-       return cpufreq_register_driver(&acpi_cpufreq_driver);
+       ret = cpufreq_register_driver(&acpi_cpufreq_driver);
+       if (ret)
+               free_percpu(acpi_perf_data);
+       return ret;
  }
  
  static void __exit acpi_cpufreq_exit(void)
        cpufreq_unregister_driver(&acpi_cpufreq_driver);
  
        free_percpu(acpi_perf_data);
-       return;
  }
  
  module_param(acpi_pstate_strict, uint, 0644);
index 4e0c6abd7ca4d51bc5264b86b205fd016862c2f7,008d23ba491bff850222e0435006220c724ead22..d3dcd58b87cd50654d7a065e5d42b05300103f09
@@@ -7,7 -7,7 +7,7 @@@
   *  Support : mark.langsdorf@amd.com
   *
   *  Based on the powernow-k7.c module written by Dave Jones.
-  *  (C) 2003 Dave Jones <davej@codemonkey.org.uk> on behalf of SuSE Labs
+  *  (C) 2003 Dave Jones on behalf of SuSE Labs
   *  (C) 2004 Dominik Brodowski <linux@brodo.de>
   *  (C) 2004 Pavel Machek <pavel@suse.cz>
   *  Licensed under the terms of the GNU GPL License version 2.
@@@ -45,6 -45,7 +45,6 @@@
  #endif
  
  #define PFX "powernow-k8: "
 -#define BFX PFX "BIOS error: "
  #define VERSION "version 2.20.00"
  #include "powernow-k8.h"
  
@@@ -535,40 -536,35 +535,40 @@@ static int check_pst_table(struct power
  
        for (j = 0; j < data->numps; j++) {
                if (pst[j].vid > LEAST_VID) {
 -                      printk(KERN_ERR PFX "vid %d invalid : 0x%x\n", j, pst[j].vid);
 +                      printk(KERN_ERR FW_BUG PFX "vid %d invalid : 0x%x\n",
 +                             j, pst[j].vid);
                        return -EINVAL;
                }
                if (pst[j].vid < data->rvo) {   /* vid + rvo >= 0 */
 -                      printk(KERN_ERR BFX "0 vid exceeded with pstate %d\n", j);
 +                      printk(KERN_ERR FW_BUG PFX "0 vid exceeded with pstate"
 +                             " %d\n", j);
                        return -ENODEV;
                }
                if (pst[j].vid < maxvid + data->rvo) {  /* vid + rvo >= maxvid */
 -                      printk(KERN_ERR BFX "maxvid exceeded with pstate %d\n", j);
 +                      printk(KERN_ERR FW_BUG PFX "maxvid exceeded with pstate"
 +                             " %d\n", j);
                        return -ENODEV;
                }
                if (pst[j].fid > MAX_FID) {
 -                      printk(KERN_ERR BFX "maxfid exceeded with pstate %d\n", j);
 +                      printk(KERN_ERR FW_BUG PFX "maxfid exceeded with pstate"
 +                             " %d\n", j);
                        return -ENODEV;
                }
                if (j && (pst[j].fid < HI_FID_TABLE_BOTTOM)) {
                        /* Only first fid is allowed to be in "low" range */
 -                      printk(KERN_ERR BFX "two low fids - %d : 0x%x\n", j, pst[j].fid);
 +                      printk(KERN_ERR FW_BUG PFX "two low fids - %d : "
 +                             "0x%x\n", j, pst[j].fid);
                        return -EINVAL;
                }
                if (pst[j].fid < lastfid)
                        lastfid = pst[j].fid;
        }
        if (lastfid & 1) {
 -              printk(KERN_ERR BFX "lastfid invalid\n");
 +              printk(KERN_ERR FW_BUG PFX "lastfid invalid\n");
                return -EINVAL;
        }
        if (lastfid > LO_FID_TABLE_TOP)
 -              printk(KERN_INFO BFX  "first fid not from lo freq table\n");
 +              printk(KERN_INFO FW_BUG PFX  "first fid not from lo freq table\n");
  
        return 0;
  }
@@@ -676,13 -672,13 +676,13 @@@ static int find_psb_table(struct powern
  
                dprintk("table vers: 0x%x\n", psb->tableversion);
                if (psb->tableversion != PSB_VERSION_1_4) {
 -                      printk(KERN_ERR BFX "PSB table is not v1.4\n");
 +                      printk(KERN_ERR FW_BUG PFX "PSB table is not v1.4\n");
                        return -ENODEV;
                }
  
                dprintk("flags: 0x%x\n", psb->flags1);
                if (psb->flags1) {
 -                      printk(KERN_ERR BFX "unknown flags\n");
 +                      printk(KERN_ERR FW_BUG PFX "unknown flags\n");
                        return -ENODEV;
                }
  
                        }
                }
                if (cpst != 1) {
 -                      printk(KERN_ERR BFX "numpst must be 1\n");
 +                      printk(KERN_ERR FW_BUG PFX "numpst must be 1\n");
                        return -ENODEV;
                }
  
@@@ -1134,19 -1130,17 +1134,19 @@@ static int __cpuinit powernowk8_cpu_ini
                               "ACPI Processor module before starting this "
                               "driver.\n");
  #else
 -                      printk(KERN_ERR PFX "Your BIOS does not provide ACPI "
 -                             "_PSS objects in a way that Linux understands. "
 -                             "Please report this to the Linux ACPI maintainers"
 -                             " and complain to your BIOS vendor.\n");
 +                      printk(KERN_ERR FW_BUG PFX "Your BIOS does not provide"
 +                             " ACPI _PSS objects in a way that Linux "
 +                             "understands. Please report this to the Linux "
 +                             "ACPI maintainers and complain to your BIOS "
 +                             "vendor.\n");
  #endif
                        kfree(data);
                        return -ENODEV;
                }
                if (pol->cpu != 0) {
 -                      printk(KERN_ERR PFX "No ACPI _PSS objects for CPU other than "
 -                             "CPU0. Complain to your BIOS vendor.\n");
 +                      printk(KERN_ERR FW_BUG PFX "No ACPI _PSS objects for "
 +                             "CPU other than CPU0. Complain to your BIOS "
 +                             "vendor.\n");
                        kfree(data);
                        return -ENODEV;
                }
  
        /* min/max the cpu is capable of */
        if (cpufreq_frequency_table_cpuinfo(pol, data->powernow_table)) {
 -              printk(KERN_ERR PFX "invalid powernow_table\n");
 +              printk(KERN_ERR FW_BUG PFX "invalid powernow_table\n");
                powernow_k8_cpu_exit_acpi(data);
                kfree(data->powernow_table);
                kfree(data);
index 3e3d503eadcfc0a5f9d7259b5a0ece74ff38ee9d,cd8c0ed02b7e2c017905a403f10fc3cd25413f4a..c958120fb1b6f549f853a79a26864abeb38ceb24
  #include <linux/kdebug.h>
  #include <linux/tick.h>
  #include <linux/prctl.h>
+ #include <linux/uaccess.h>
+ #include <linux/io.h>
  
- #include <asm/uaccess.h>
  #include <asm/pgtable.h>
  #include <asm/system.h>
- #include <asm/io.h>
  #include <asm/processor.h>
  #include <asm/i387.h>
  #include <asm/mmu_context.h>
@@@ -51,6 -51,7 +51,7 @@@
  #include <asm/proto.h>
  #include <asm/ia32.h>
  #include <asm/idle.h>
+ #include <asm/syscalls.h>
  
  asmlinkage extern void ret_from_fork(void);
  
@@@ -62,13 -63,6 +63,13 @@@ void idle_notifier_register(struct noti
  {
        atomic_notifier_chain_register(&idle_notifier, n);
  }
 +EXPORT_SYMBOL_GPL(idle_notifier_register);
 +
 +void idle_notifier_unregister(struct notifier_block *n)
 +{
 +      atomic_notifier_chain_unregister(&idle_notifier, n);
 +}
 +EXPORT_SYMBOL_GPL(idle_notifier_unregister);
  
  void enter_idle(void)
  {
@@@ -92,30 -86,12 +93,12 @@@ void exit_idle(void
        __exit_idle();
  }
  
- #ifdef CONFIG_HOTPLUG_CPU
- DECLARE_PER_CPU(int, cpu_state);
- #include <asm/nmi.h>
- /* We halt the CPU with physical CPU hotplug */
- static inline void play_dead(void)
- {
-       idle_task_exit();
-       c1e_remove_cpu(raw_smp_processor_id());
-       mb();
-       /* Ack it */
-       __get_cpu_var(cpu_state) = CPU_DEAD;
-       local_irq_disable();
-       /* mask all interrupts, flush any and all caches, and halt */
-       wbinvd_halt();
- }
- #else
+ #ifndef CONFIG_SMP
  static inline void play_dead(void)
  {
        BUG();
  }
- #endif /* CONFIG_HOTPLUG_CPU */
+ #endif
  
  /*
   * The idle thread. There's no useful work to be
@@@ -160,7 -136,7 +143,7 @@@ void cpu_idle(void
  }
  
  /* Prints also some state that isn't saved in the pt_regs */
- void __show_regs(struct pt_regs * regs)
+ void __show_regs(struct pt_regs *regs, int all)
  {
        unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L, fs, gs, shadowgs;
        unsigned long d0, d1, d2, d3, d6, d7;
  
        printk("\n");
        print_modules();
-       printk("Pid: %d, comm: %.20s %s %s %.*s\n",
+       printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s\n",
                current->pid, current->comm, print_tainted(),
                init_utsname()->release,
                (int)strcspn(init_utsname()->version, " "),
                init_utsname()->version);
-       printk("RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip);
+       printk(KERN_INFO "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip);
        printk_address(regs->ip, 1);
-       printk("RSP: %04lx:%016lx  EFLAGS: %08lx\n", regs->ss, regs->sp,
-               regs->flags);
-       printk("RAX: %016lx RBX: %016lx RCX: %016lx\n",
+       printk(KERN_INFO "RSP: %04lx:%016lx  EFLAGS: %08lx\n", regs->ss,
+                       regs->sp, regs->flags);
+       printk(KERN_INFO "RAX: %016lx RBX: %016lx RCX: %016lx\n",
               regs->ax, regs->bx, regs->cx);
-       printk("RDX: %016lx RSI: %016lx RDI: %016lx\n",
+       printk(KERN_INFO "RDX: %016lx RSI: %016lx RDI: %016lx\n",
               regs->dx, regs->si, regs->di);
-       printk("RBP: %016lx R08: %016lx R09: %016lx\n",
+       printk(KERN_INFO "RBP: %016lx R08: %016lx R09: %016lx\n",
               regs->bp, regs->r8, regs->r9);
-       printk("R10: %016lx R11: %016lx R12: %016lx\n",
-              regs->r10, regs->r11, regs->r12); 
-       printk("R13: %016lx R14: %016lx R15: %016lx\n",
-              regs->r13, regs->r14, regs->r15); 
-       asm("movl %%ds,%0" : "=r" (ds)); 
-       asm("movl %%cs,%0" : "=r" (cs)); 
-       asm("movl %%es,%0" : "=r" (es)); 
+       printk(KERN_INFO "R10: %016lx R11: %016lx R12: %016lx\n",
+              regs->r10, regs->r11, regs->r12);
+       printk(KERN_INFO "R13: %016lx R14: %016lx R15: %016lx\n",
+              regs->r13, regs->r14, regs->r15);
+       asm("movl %%ds,%0" : "=r" (ds));
+       asm("movl %%cs,%0" : "=r" (cs));
+       asm("movl %%es,%0" : "=r" (es));
        asm("movl %%fs,%0" : "=r" (fsindex));
        asm("movl %%gs,%0" : "=r" (gsindex));
  
        rdmsrl(MSR_FS_BASE, fs);
-       rdmsrl(MSR_GS_BASE, gs); 
-       rdmsrl(MSR_KERNEL_GS_BASE, shadowgs); 
+       rdmsrl(MSR_GS_BASE, gs);
+       rdmsrl(MSR_KERNEL_GS_BASE, shadowgs);
+       if (!all)
+               return;
  
        cr0 = read_cr0();
        cr2 = read_cr2();
        cr3 = read_cr3();
        cr4 = read_cr4();
  
-       printk("FS:  %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n", 
-              fs,fsindex,gs,gsindex,shadowgs); 
-       printk("CS:  %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds, es, cr0); 
-       printk("CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3, cr4);
+       printk(KERN_INFO "FS:  %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n",
+              fs, fsindex, gs, gsindex, shadowgs);
+       printk(KERN_INFO "CS:  %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds,
+                       es, cr0);
+       printk(KERN_INFO "CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3,
+                       cr4);
  
        get_debugreg(d0, 0);
        get_debugreg(d1, 1);
        get_debugreg(d2, 2);
-       printk("DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2);
+       printk(KERN_INFO "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2);
        get_debugreg(d3, 3);
        get_debugreg(d6, 6);
        get_debugreg(d7, 7);
-       printk("DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7);
+       printk(KERN_INFO "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7);
  }
  
  void show_regs(struct pt_regs *regs)
  {
-       printk("CPU %d:", smp_processor_id());
-       __show_regs(regs);
+       printk(KERN_INFO "CPU %d:", smp_processor_id());
+       __show_regs(regs, 1);
        show_trace(NULL, regs, (void *)(regs + 1), regs->bp);
  }
  
@@@ -247,6 -228,14 +235,14 @@@ void exit_thread(void
                t->io_bitmap_max = 0;
                put_cpu();
        }
+ #ifdef CONFIG_X86_DS
+       /* Free any DS contexts that have not been properly released. */
+       if (unlikely(t->ds_ctx)) {
+               /* we clear debugctl to make sure DS is not used. */
+               update_debugctlmsr(0);
+               ds_free(t->ds_ctx);
+       }
+ #endif /* CONFIG_X86_DS */
  }
  
  void flush_thread(void)
@@@ -322,10 -311,10 +318,10 @@@ void prepare_to_copy(struct task_struc
  
  int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
                unsigned long unused,
-       struct task_struct * p, struct pt_regs * regs)
+       struct task_struct *p, struct pt_regs *regs)
  {
        int err;
-       struct pt_regs * childregs;
+       struct pt_regs *childregs;
        struct task_struct *me = current;
  
        childregs = ((struct pt_regs *)
                if (test_thread_flag(TIF_IA32))
                        err = do_set_thread_area(p, -1,
                                (struct user_desc __user *)childregs->si, 0);
-               else                    
- #endif         
-                       err = do_arch_prctl(p, ARCH_SET_FS, childregs->r8); 
-               if (err) 
+               else
+ #endif
+                       err = do_arch_prctl(p, ARCH_SET_FS, childregs->r8);
+               if (err)
                        goto out;
        }
        err = 0;
@@@ -480,13 -469,27 +476,27 @@@ static inline void __switch_to_xtra(str
        next = &next_p->thread;
  
        debugctl = prev->debugctlmsr;
-       if (next->ds_area_msr != prev->ds_area_msr) {
-               /* we clear debugctl to make sure DS
-                * is not in use when we change it */
-               debugctl = 0;
-               update_debugctlmsr(0);
-               wrmsrl(MSR_IA32_DS_AREA, next->ds_area_msr);
+ #ifdef CONFIG_X86_DS
+       {
+               unsigned long ds_prev = 0, ds_next = 0;
+               if (prev->ds_ctx)
+                       ds_prev = (unsigned long)prev->ds_ctx->ds;
+               if (next->ds_ctx)
+                       ds_next = (unsigned long)next->ds_ctx->ds;
+               if (ds_next != ds_prev) {
+                       /*
+                        * We clear debugctl to make sure DS
+                        * is not in use when we change it:
+                        */
+                       debugctl = 0;
+                       update_debugctlmsr(0);
+                       wrmsrl(MSR_IA32_DS_AREA, ds_next);
+               }
        }
+ #endif /* CONFIG_X86_DS */
  
        if (next->debugctlmsr != debugctl)
                update_debugctlmsr(next->debugctlmsr);
                memset(tss->io_bitmap, 0xff, prev->io_bitmap_max);
        }
  
- #ifdef X86_BTS
+ #ifdef CONFIG_X86_PTRACE_BTS
        if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS))
                ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS);
  
        if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS))
                ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES);
- #endif
+ #endif /* CONFIG_X86_PTRACE_BTS */
  }
  
  /*
@@@ -552,7 -555,7 +562,7 @@@ __switch_to(struct task_struct *prev_p
        unsigned fsindex, gsindex;
  
        /* we're going to use this soon, after a few expensive things */
-       if (next_p->fpu_counter>5)
+       if (next_p->fpu_counter > 5)
                prefetch(next->xstate);
  
        /*
         */
        load_sp0(tss, next);
  
-       /* 
+       /*
         * Switch DS and ES.
         * This won't pick up thread selector changes, but I guess that is ok.
         */
        savesegment(es, prev->es);
        if (unlikely(next->es | prev->es))
-               loadsegment(es, next->es); 
+               loadsegment(es, next->es);
  
        savesegment(ds, prev->ds);
        if (unlikely(next->ds | prev->ds))
         */
        arch_leave_lazy_cpu_mode();
  
-       /* 
+       /*
         * Switch FS and GS.
         *
         * Segment register != 0 always requires a reload.  Also
         */
        if (unlikely(fsindex | next->fsindex | prev->fs)) {
                loadsegment(fs, next->fsindex);
-               /* 
+               /*
                 * Check if the user used a selector != 0; if yes
                 *  clear 64bit base, since overloaded base is always
                 *  mapped to the Null selector
                 */
                if (fsindex)
-                       prev->fs = 0;                           
+                       prev->fs = 0;
        }
        /* when next process has a 64bit base use it */
        if (next->fs)
        if (unlikely(gsindex | next->gsindex | prev->gs)) {
                load_gs_index(next->gsindex);
                if (gsindex)
-                       prev->gs = 0;                           
+                       prev->gs = 0;
        }
        if (next->gs)
                wrmsrl(MSR_KERNEL_GS_BASE, next->gs);
        /* Must be after DS reload */
        unlazy_fpu(prev_p);
  
-       /* 
+       /*
         * Switch the PDA and FPU contexts.
         */
        prev->usersp = read_pda(oldrsp);
        write_pda(oldrsp, next->usersp);
-       write_pda(pcurrent, next_p); 
+       write_pda(pcurrent, next_p);
  
        write_pda(kernelstack,
                  (unsigned long)task_stack_page(next_p) +
@@@ -672,7 -675,7 +682,7 @@@ long sys_execve(char __user *name, cha
                char __user * __user *envp, struct pt_regs *regs)
  {
        long error;
-       char * filename;
+       char *filename;
  
        filename = getname(name);
        error = PTR_ERR(filename);
@@@ -730,55 -733,55 +740,55 @@@ asmlinkage long sys_vfork(struct pt_reg
  unsigned long get_wchan(struct task_struct *p)
  {
        unsigned long stack;
-       u64 fp,ip;
+       u64 fp, ip;
        int count = 0;
  
-       if (!p || p == current || p->state==TASK_RUNNING)
-               return 0; 
+       if (!p || p == current || p->state == TASK_RUNNING)
+               return 0;
        stack = (unsigned long)task_stack_page(p);
-       if (p->thread.sp < stack || p->thread.sp > stack+THREAD_SIZE)
+       if (p->thread.sp < stack || p->thread.sp >= stack+THREAD_SIZE)
                return 0;
        fp = *(u64 *)(p->thread.sp);
-       do { 
+       do {
                if (fp < (unsigned long)stack ||
-                   fp > (unsigned long)stack+THREAD_SIZE)
-                       return 0; 
+                   fp >= (unsigned long)stack+THREAD_SIZE)
+                       return 0;
                ip = *(u64 *)(fp+8);
                if (!in_sched_functions(ip))
                        return ip;
-               fp = *(u64 *)fp; 
-       } while (count++ < 16); 
+               fp = *(u64 *)fp;
+       } while (count++ < 16);
        return 0;
  }
  
  long do_arch_prctl(struct task_struct *task, int code, unsigned long addr)
- { 
-       int ret = 0; 
+ {
+       int ret = 0;
        int doit = task == current;
        int cpu;
  
-       switch (code) { 
+       switch (code) {
        case ARCH_SET_GS:
                if (addr >= TASK_SIZE_OF(task))
-                       return -EPERM; 
+                       return -EPERM;
                cpu = get_cpu();
-               /* handle small bases via the GDT because that's faster to 
+               /* handle small bases via the GDT because that's faster to
                   switch. */
-               if (addr <= 0xffffffff) {  
-                       set_32bit_tls(task, GS_TLS, addr); 
-                       if (doit) { 
+               if (addr <= 0xffffffff) {
+                       set_32bit_tls(task, GS_TLS, addr);
+                       if (doit) {
                                load_TLS(&task->thread, cpu);
-                               load_gs_index(GS_TLS_SEL); 
+                               load_gs_index(GS_TLS_SEL);
                        }
-                       task->thread.gsindex = GS_TLS_SEL; 
+                       task->thread.gsindex = GS_TLS_SEL;
                        task->thread.gs = 0;
-               } else { 
+               } else {
                        task->thread.gsindex = 0;
                        task->thread.gs = addr;
                        if (doit) {
                                load_gs_index(0);
                                ret = checking_wrmsrl(MSR_KERNEL_GS_BASE, addr);
-                       } 
+                       }
                }
                put_cpu();
                break;
                                rdmsrl(MSR_KERNEL_GS_BASE, base);
                        else
                                base = task->thread.gs;
-               }
-               else
+               } else
                        base = task->thread.gs;
                ret = put_user(base, (unsigned long __user *)addr);
                break;
diff --combined drivers/Makefile
index f443a8a9d46e547ddce0ca5dc114899f737066d5,46c8681a07f48cd89766e97155d2adb9f3b91454..a0a2e3b675d6e1a1b1df241bfb5980b9b2d570b2
@@@ -82,7 -82,6 +82,7 @@@ obj-$(CONFIG_EISA)            += eisa
  obj-y                         += lguest/
  obj-$(CONFIG_CPU_FREQ)                += cpufreq/
  obj-$(CONFIG_CPU_IDLE)                += cpuidle/
 +obj-y                         += idle/
  obj-$(CONFIG_MMC)             += mmc/
  obj-$(CONFIG_MEMSTICK)                += memstick/
  obj-$(CONFIG_NEW_LEDS)                += leds/
@@@ -100,3 -99,4 +100,4 @@@ obj-$(CONFIG_OF)            += of
  obj-$(CONFIG_SSB)             += ssb/
  obj-$(CONFIG_VIRTIO)          += virtio/
  obj-$(CONFIG_REGULATOR)               += regulator/
+ obj-$(CONFIG_STAGING)         += staging/
diff --combined drivers/acpi/Kconfig
index cbfc58d6023676bc14d36c6b7eb9fcf9d745ef67,da49b006bcc58cb4819787cdb3156c82138180af..dc1de7224426b16d38332135faa5b1b1e0695198
@@@ -42,7 -42,7 +42,7 @@@ if ACP
  
  config ACPI_SLEEP
        bool
 -      depends on PM_SLEEP
 +      depends on SUSPEND || HIBERNATION
        default y
  
  config ACPI_PROCFS
@@@ -160,8 -160,15 +160,8 @@@ config ACPI_DOC
        tristate "Dock"
        depends on EXPERIMENTAL
        help
 -        This driver adds support for ACPI controlled docking stations
 -
 -config ACPI_BAY
 -      tristate "Removable Drive Bay (EXPERIMENTAL)"
 -      depends on EXPERIMENTAL
 -      depends on ACPI_DOCK
 -      help
 -        This driver adds support for ACPI controlled removable drive
 -        bays such as the IBM ultrabay or the Dell Module Bay.
 +        This driver adds support for ACPI controlled docking stations and removable
 +        drive bays such as the IBM ultrabay or the Dell Module Bay.
  
  config ACPI_PROCESSOR
        tristate "Processor"
@@@ -253,6 -260,9 +253,9 @@@ config ACPI_ASU
  config ACPI_TOSHIBA
        tristate "Toshiba Laptop Extras"
        depends on X86 && INPUT
+       select INPUT_POLLDEV
+       select NET
+       select RFKILL
        select BACKLIGHT_CLASS_DEVICE
        ---help---
          This driver adds support for access to certain system settings
diff --combined drivers/acpi/battery.c
index de8046933bce6cf5154c2aaeca2a75df847845e2,70f7f60929ca552f87dfa819dd93296abd3cea60..b2133e89ad9a6debafa3dbad49cf998daad80ec7
@@@ -431,7 -431,7 +431,7 @@@ static ssize_t acpi_battery_alarm_store
  }
  
  static struct device_attribute alarm_attr = {
-       .attr = {.name = "alarm", .mode = 0644, .owner = THIS_MODULE},
+       .attr = {.name = "alarm", .mode = 0644},
        .show = acpi_battery_alarm_show,
        .store = acpi_battery_alarm_store,
  };
@@@ -804,7 -804,7 +804,7 @@@ static int acpi_battery_add(struct acpi
        battery->device = device;
        strcpy(acpi_device_name(device), ACPI_BATTERY_DEVICE_NAME);
        strcpy(acpi_device_class(device), ACPI_BATTERY_CLASS);
 -      acpi_driver_data(device) = battery;
 +      device->driver_data = battery;
        mutex_init(&battery->lock);
        acpi_battery_update(battery);
  #ifdef CONFIG_ACPI_PROCFS_POWER
diff --combined drivers/acpi/sbs.c
index d0033250b5a9c82e9d52c3639a0ff0193c9af77e,7b011e7e29fe00b35ab1616d4c7a232c32ec8d2b..6050ce4818731fd2bcf8c6891d5a343414d0133a
@@@ -463,7 -463,7 +463,7 @@@ static ssize_t acpi_battery_alarm_store
  }
  
  static struct device_attribute alarm_attr = {
-       .attr = {.name = "alarm", .mode = 0644, .owner = THIS_MODULE},
+       .attr = {.name = "alarm", .mode = 0644},
        .show = acpi_battery_alarm_show,
        .store = acpi_battery_alarm_store,
  };
@@@ -931,7 -931,7 +931,7 @@@ static int acpi_sbs_add(struct acpi_dev
        sbs->device = device;
        strcpy(acpi_device_name(device), ACPI_SBS_DEVICE_NAME);
        strcpy(acpi_device_class(device), ACPI_SBS_CLASS);
 -      acpi_driver_data(device) = sbs;
 +      device->driver_data = sbs;
  
        result = acpi_charger_add(sbs);
        if (result)
diff --combined drivers/acpi/system.c
index 3eefd6d029f904afc5f668fbb39a6dbf4666667d,24e80fd927e238a6e8ea60ebafe2d4ae57f5f2c1..1d74171b7940ff3e1975cf9f071069666ebed303
@@@ -115,7 -115,6 +115,6 @@@ static void acpi_table_attr_init(struc
        table_attr->attr.read = acpi_table_show;
        table_attr->attr.attr.name = table_attr->name;
        table_attr->attr.attr.mode = 0444;
-       table_attr->attr.attr.owner = THIS_MODULE;
  
        return;
  }
@@@ -387,8 -386,8 +386,8 @@@ static ssize_t counter_set(struct kobje
                goto end;
  
        if (!(all_counters[index].flags & ACPI_EVENT_VALID)) {
 -              ACPI_DEBUG_PRINT((ACPI_DB_WARN,
 -                      "Can not change Invalid GPE/Fixed Event status\n"));
 +              printk(KERN_WARNING PREFIX
 +                      "Can not change Invalid GPE/Fixed Event status\n");
                return -EINVAL;
        }
  
index 4172d290f2756d9e31f4ac9be7dff22148b5c106,8a649f40d1620f0d9610e33f81a87da1d75a45f9..2a632f8b7a053911723a9259155a464ccb745aa8
@@@ -3,6 -3,7 +3,7 @@@
   *
   *
   *  Copyright (C) 2002-2004 John Belmonte
+  *  Copyright (C) 2008 Philip Langdale
   *
   *  This program is free software; you can redistribute it and/or modify
   *  it under the terms of the GNU General Public License as published by
@@@ -33,7 -34,7 +34,7 @@@
   *
   */
  
- #define TOSHIBA_ACPI_VERSION  "0.18"
+ #define TOSHIBA_ACPI_VERSION  "0.19"
  #define PROC_INTERFACE_VERSION        1
  
  #include <linux/kernel.h>
@@@ -42,6 -43,9 +43,9 @@@
  #include <linux/types.h>
  #include <linux/proc_fs.h>
  #include <linux/backlight.h>
+ #include <linux/platform_device.h>
+ #include <linux/rfkill.h>
+ #include <linux/input-polldev.h>
  
  #include <asm/uaccess.h>
  
@@@ -90,6 -94,7 +94,7 @@@ MODULE_LICENSE("GPL")
  #define HCI_VIDEO_OUT                 0x001c
  #define HCI_HOTKEY_EVENT              0x001e
  #define HCI_LCD_BRIGHTNESS            0x002a
+ #define HCI_WIRELESS                  0x0056
  
  /* field definitions */
  #define HCI_LCD_BRIGHTNESS_BITS               3
  #define HCI_VIDEO_OUT_LCD             0x1
  #define HCI_VIDEO_OUT_CRT             0x2
  #define HCI_VIDEO_OUT_TV              0x4
+ #define HCI_WIRELESS_KILL_SWITCH      0x01
+ #define HCI_WIRELESS_BT_PRESENT               0x0f
+ #define HCI_WIRELESS_BT_ATTACH                0x40
+ #define HCI_WIRELESS_BT_POWER         0x80
  
  static const struct acpi_device_id toshiba_device_ids[] = {
        {"TOS6200", 0},
+       {"TOS6208", 0},
        {"TOS1900", 0},
        {"", 0},
  };
@@@ -193,7 -203,7 +203,7 @@@ static acpi_status hci_raw(const u32 in
        return status;
  }
  
- /* common hci tasks (get or set one value)
+ /* common hci tasks (get or set one or two value)
   *
   * In addition to the ACPI status, the HCI system returns a result which
   * may be useful (such as "not supported").
@@@ -218,6 -228,152 +228,152 @@@ static acpi_status hci_read1(u32 reg, u
        return status;
  }
  
+ static acpi_status hci_write2(u32 reg, u32 in1, u32 in2, u32 *result)
+ {
+       u32 in[HCI_WORDS] = { HCI_SET, reg, in1, in2, 0, 0 };
+       u32 out[HCI_WORDS];
+       acpi_status status = hci_raw(in, out);
+       *result = (status == AE_OK) ? out[0] : HCI_FAILURE;
+       return status;
+ }
+ static acpi_status hci_read2(u32 reg, u32 *out1, u32 *out2, u32 *result)
+ {
+       u32 in[HCI_WORDS] = { HCI_GET, reg, *out1, *out2, 0, 0 };
+       u32 out[HCI_WORDS];
+       acpi_status status = hci_raw(in, out);
+       *out1 = out[2];
+       *out2 = out[3];
+       *result = (status == AE_OK) ? out[0] : HCI_FAILURE;
+       return status;
+ }
+ struct toshiba_acpi_dev {
+       struct platform_device *p_dev;
+       struct rfkill *rfk_dev;
+       struct input_polled_dev *poll_dev;
+       const char *bt_name;
+       const char *rfk_name;
+       bool last_rfk_state;
+       struct mutex mutex;
+ };
+ static struct toshiba_acpi_dev toshiba_acpi = {
+       .bt_name = "Toshiba Bluetooth",
+       .rfk_name = "Toshiba RFKill Switch",
+       .last_rfk_state = false,
+ };
+ /* Bluetooth rfkill handlers */
+ static u32 hci_get_bt_present(bool *present)
+ {
+       u32 hci_result;
+       u32 value, value2;
+       value = 0;
+       value2 = 0;
+       hci_read2(HCI_WIRELESS, &value, &value2, &hci_result);
+       if (hci_result == HCI_SUCCESS)
+               *present = (value & HCI_WIRELESS_BT_PRESENT) ? true : false;
+       return hci_result;
+ }
+ static u32 hci_get_bt_on(bool *on)
+ {
+       u32 hci_result;
+       u32 value, value2;
+       value = 0;
+       value2 = 0x0001;
+       hci_read2(HCI_WIRELESS, &value, &value2, &hci_result);
+       if (hci_result == HCI_SUCCESS)
+               *on = (value & HCI_WIRELESS_BT_POWER) &&
+                     (value & HCI_WIRELESS_BT_ATTACH);
+       return hci_result;
+ }
+ static u32 hci_get_radio_state(bool *radio_state)
+ {
+       u32 hci_result;
+       u32 value, value2;
+       value = 0;
+       value2 = 0x0001;
+       hci_read2(HCI_WIRELESS, &value, &value2, &hci_result);
+       *radio_state = value & HCI_WIRELESS_KILL_SWITCH;
+       return hci_result;
+ }
+ static int bt_rfkill_toggle_radio(void *data, enum rfkill_state state)
+ {
+       u32 result1, result2;
+       u32 value;
+       bool radio_state;
+       struct toshiba_acpi_dev *dev = data;
+       value = (state == RFKILL_STATE_UNBLOCKED);
+       if (hci_get_radio_state(&radio_state) != HCI_SUCCESS)
+               return -EFAULT;
+       switch (state) {
+       case RFKILL_STATE_UNBLOCKED:
+               if (!radio_state)
+                       return -EPERM;
+               break;
+       case RFKILL_STATE_SOFT_BLOCKED:
+               break;
+       default:
+               return -EINVAL;
+       }
+       mutex_lock(&dev->mutex);
+       hci_write2(HCI_WIRELESS, value, HCI_WIRELESS_BT_POWER, &result1);
+       hci_write2(HCI_WIRELESS, value, HCI_WIRELESS_BT_ATTACH, &result2);
+       mutex_unlock(&dev->mutex);
+       if (result1 != HCI_SUCCESS || result2 != HCI_SUCCESS)
+               return -EFAULT;
+       return 0;
+ }
+ static void bt_poll_rfkill(struct input_polled_dev *poll_dev)
+ {
+       bool state_changed;
+       bool new_rfk_state;
+       bool value;
+       u32 hci_result;
+       struct toshiba_acpi_dev *dev = poll_dev->private;
+       hci_result = hci_get_radio_state(&value);
+       if (hci_result != HCI_SUCCESS)
+               return; /* Can't do anything useful */
+       new_rfk_state = value;
+       mutex_lock(&dev->mutex);
+       state_changed = new_rfk_state != dev->last_rfk_state;
+       dev->last_rfk_state = new_rfk_state;
+       mutex_unlock(&dev->mutex);
+       if (unlikely(state_changed)) {
+               rfkill_force_state(dev->rfk_dev,
+                                  new_rfk_state ?
+                                  RFKILL_STATE_SOFT_BLOCKED :
+                                  RFKILL_STATE_HARD_BLOCKED);
+               input_report_switch(poll_dev->input, SW_RFKILL_ALL,
+                                   new_rfk_state);
+       }
+ }
  static struct proc_dir_entry *toshiba_proc_dir /*= 0*/ ;
  static struct backlight_device *toshiba_backlight_device;
  static int force_fan;
@@@ -392,7 -548,7 +548,7 @@@ static unsigned long write_video(const 
  
        hci_read1(HCI_VIDEO_OUT, &video_out, &hci_result);
        if (hci_result == HCI_SUCCESS) {
 -              int new_video_out = video_out;
 +              unsigned int new_video_out = video_out;
                if (lcd_out != -1)
                        _set_bit(&new_video_out, HCI_VIDEO_OUT_LCD, lcd_out);
                if (crt_out != -1)
@@@ -547,6 -703,14 +703,14 @@@ static struct backlight_ops toshiba_bac
  
  static void toshiba_acpi_exit(void)
  {
+       if (toshiba_acpi.poll_dev) {
+               input_unregister_polled_device(toshiba_acpi.poll_dev);
+               input_free_polled_device(toshiba_acpi.poll_dev);
+       }
+       if (toshiba_acpi.rfk_dev)
+               rfkill_unregister(toshiba_acpi.rfk_dev);
        if (toshiba_backlight_device)
                backlight_device_unregister(toshiba_backlight_device);
  
        if (toshiba_proc_dir)
                remove_proc_entry(PROC_TOSHIBA, acpi_root_dir);
  
+       platform_device_unregister(toshiba_acpi.p_dev);
        return;
  }
  
@@@ -562,6 -728,10 +728,10 @@@ static int __init toshiba_acpi_init(voi
  {
        acpi_status status = AE_OK;
        u32 hci_result;
+       bool bt_present;
+       bool bt_on;
+       bool radio_on;
+       int ret = 0;
  
        if (acpi_disabled)
                return -ENODEV;
               TOSHIBA_ACPI_VERSION);
        printk(MY_INFO "    HCI method: %s\n", method_hci);
  
+       mutex_init(&toshiba_acpi.mutex);
+       toshiba_acpi.p_dev = platform_device_register_simple("toshiba_acpi",
+                                                             -1, NULL, 0);
+       if (IS_ERR(toshiba_acpi.p_dev)) {
+               ret = PTR_ERR(toshiba_acpi.p_dev);
+               printk(MY_ERR "unable to register platform device\n");
+               toshiba_acpi.p_dev = NULL;
+               toshiba_acpi_exit();
+               return ret;
+       }
        force_fan = 0;
        key_event_valid = 0;
  
  
        toshiba_proc_dir = proc_mkdir(PROC_TOSHIBA, acpi_root_dir);
        if (!toshiba_proc_dir) {
-               status = AE_ERROR;
+               toshiba_acpi_exit();
+               return -ENODEV;
        } else {
                toshiba_proc_dir->owner = THIS_MODULE;
                status = add_device();
-               if (ACPI_FAILURE(status))
-                       remove_proc_entry(PROC_TOSHIBA, acpi_root_dir);
+               if (ACPI_FAILURE(status)) {
+                       toshiba_acpi_exit();
+                       return -ENODEV;
+               }
        }
  
-       toshiba_backlight_device = backlight_device_register("toshiba",NULL,
+       toshiba_backlight_device = backlight_device_register("toshiba",
+                                               &toshiba_acpi.p_dev->dev,
                                                NULL,
                                                &toshiba_backlight_data);
          if (IS_ERR(toshiba_backlight_device)) {
-               int ret = PTR_ERR(toshiba_backlight_device);
+               ret = PTR_ERR(toshiba_backlight_device);
  
                printk(KERN_ERR "Could not register toshiba backlight device\n");
                toshiba_backlight_device = NULL;
        }
          toshiba_backlight_device->props.max_brightness = HCI_LCD_BRIGHTNESS_LEVELS - 1;
  
-       return (ACPI_SUCCESS(status)) ? 0 : -ENODEV;
+       /* Register rfkill switch for Bluetooth */
+       if (hci_get_bt_present(&bt_present) == HCI_SUCCESS && bt_present) {
+               toshiba_acpi.rfk_dev = rfkill_allocate(&toshiba_acpi.p_dev->dev,
+                                                       RFKILL_TYPE_BLUETOOTH);
+               if (!toshiba_acpi.rfk_dev) {
+                       printk(MY_ERR "unable to allocate rfkill device\n");
+                       toshiba_acpi_exit();
+                       return -ENOMEM;
+               }
+               toshiba_acpi.rfk_dev->name = toshiba_acpi.bt_name;
+               toshiba_acpi.rfk_dev->toggle_radio = bt_rfkill_toggle_radio;
+               toshiba_acpi.rfk_dev->user_claim_unsupported = 1;
+               toshiba_acpi.rfk_dev->data = &toshiba_acpi;
+               if (hci_get_bt_on(&bt_on) == HCI_SUCCESS && bt_on) {
+                       toshiba_acpi.rfk_dev->state = RFKILL_STATE_UNBLOCKED;
+               } else if (hci_get_radio_state(&radio_on) == HCI_SUCCESS &&
+                          radio_on) {
+                       toshiba_acpi.rfk_dev->state = RFKILL_STATE_SOFT_BLOCKED;
+               } else {
+                       toshiba_acpi.rfk_dev->state = RFKILL_STATE_HARD_BLOCKED;
+               }
+               ret = rfkill_register(toshiba_acpi.rfk_dev);
+               if (ret) {
+                       printk(MY_ERR "unable to register rfkill device\n");
+                       toshiba_acpi_exit();
+                       return -ENOMEM;
+               }
+       }
+       /* Register input device for kill switch */
+       toshiba_acpi.poll_dev = input_allocate_polled_device();
+       if (!toshiba_acpi.poll_dev) {
+               printk(MY_ERR "unable to allocate kill-switch input device\n");
+               toshiba_acpi_exit();
+               return -ENOMEM;
+       }
+       toshiba_acpi.poll_dev->private = &toshiba_acpi;
+       toshiba_acpi.poll_dev->poll = bt_poll_rfkill;
+       toshiba_acpi.poll_dev->poll_interval = 1000; /* msecs */
+       toshiba_acpi.poll_dev->input->name = toshiba_acpi.rfk_name;
+       toshiba_acpi.poll_dev->input->id.bustype = BUS_HOST;
+       toshiba_acpi.poll_dev->input->id.vendor = 0x0930; /* Toshiba USB ID */
+       set_bit(EV_SW, toshiba_acpi.poll_dev->input->evbit);
+       set_bit(SW_RFKILL_ALL, toshiba_acpi.poll_dev->input->swbit);
+       input_report_switch(toshiba_acpi.poll_dev->input, SW_RFKILL_ALL, TRUE);
+       ret = input_register_polled_device(toshiba_acpi.poll_dev);
+       if (ret) {
+               printk(MY_ERR "unable to register kill-switch input device\n");
+               rfkill_free(toshiba_acpi.rfk_dev);
+               toshiba_acpi.rfk_dev = NULL;
+               toshiba_acpi_exit();
+               return ret;
+       }
+       return 0;
  }
  
  module_init(toshiba_acpi_init);
diff --combined drivers/dma/ioat_dma.c
index f8396cafa05ffdc123ba726b52e22038daee9e3b,1ef68b3156570487094e704eaceb9ffdb03db4e6..43b8cefad2c6ddfb57276e53a6ce19710677ea5a
@@@ -171,9 -171,6 +171,9 @@@ static int ioat_dma_enumerate_channels(
        xfercap_scale = readb(device->reg_base + IOAT_XFERCAP_OFFSET);
        xfercap = (xfercap_scale == 0 ? -1 : (1UL << xfercap_scale));
  
 +#if CONFIG_I7300_IDLE_IOAT_CHANNEL
 +      device->common.chancnt--;
 +#endif
        for (i = 0; i < device->common.chancnt; i++) {
                ioat_chan = kzalloc(sizeof(*ioat_chan), GFP_KERNEL);
                if (!ioat_chan) {
@@@ -974,11 -971,9 +974,9 @@@ static struct ioat_desc_sw *ioat_dma_ge
        switch (ioat_chan->device->version) {
        case IOAT_VER_1_2:
                return ioat1_dma_get_next_descriptor(ioat_chan);
-               break;
        case IOAT_VER_2_0:
        case IOAT_VER_3_0:
                return ioat2_dma_get_next_descriptor(ioat_chan);
-               break;
        }
        return NULL;
  }
diff --combined drivers/misc/Kconfig
index 0ed74d076a27a3a25e89c2daa65fb642ec53118d,efd3aa08b88bb85c3ca8855084a8bd1314c2c30f..9494400e8fd0baea0723cb7ccf78d37535cd279e
@@@ -15,7 -15,7 +15,7 @@@ if MISC_DEVICE
  
  config ATMEL_PWM
        tristate "Atmel AT32/AT91 PWM support"
-       depends on AVR32 || ARCH_AT91
+       depends on AVR32 || ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || ARCH_AT91CAP9
        help
          This option enables device driver support for the PWM channels
          on certain Atmel prcoessors.  Pulse Width Modulation is used for
@@@ -145,7 -145,6 +145,7 @@@ config ACER_WM
        depends on NEW_LEDS
        depends on BACKLIGHT_CLASS_DEVICE
        depends on SERIO_I8042
 +      depends on RFKILL
        select ACPI_WMI
        ---help---
          This is a driver for newer Acer (and Wistron) laptops. It adds
@@@ -246,17 -245,6 +246,17 @@@ config MSI_LAPTO
  
          If you have an MSI S270 laptop, say Y or M here.
  
 +config PANASONIC_LAPTOP
 +      tristate "Panasonic Laptop Extras"
 +      depends on X86 && INPUT && ACPI
 +        depends on BACKLIGHT_CLASS_DEVICE
 +      ---help---
 +        This driver adds support for access to backlight control and hotkeys
 +        on Panasonic Let's Note laptops.
 +
 +        If you have a Panasonic Let's note laptop (such as the R1(N variant),
 +        R2, R3, R5, T2, W2 and Y2 series), say Y.
 +
  config COMPAL_LAPTOP
        tristate "Compal Laptop Extras"
        depends on X86
@@@ -421,6 -409,7 +421,7 @@@ config EEEPC_LAPTO
        depends on BACKLIGHT_CLASS_DEVICE
        depends on HWMON
        depends on EXPERIMENTAL
+       depends on RFKILL
        ---help---
          This driver supports the Fn-Fx keys on Eee PC laptops.
          It also adds the ability to switch camera/wlan on/off.
diff --combined drivers/pnp/Makefile
index a381a92fd1b65dc0ef593d9b722747c9ee54b0f0,e83f34f1b5bada1207cb4bf8e77badaac623e2e1..8de3775ec2429b79ef70abe211663419eb2bc871
@@@ -2,8 -2,15 +2,11 @@@
  # Makefile for the Linux Plug-and-Play Support.
  #
  
- obj-y         := core.o card.o driver.o resource.o manager.o support.o interface.o quirks.o system.o
+ obj-y         := core.o card.o driver.o resource.o manager.o support.o interface.o quirks.o
  
  obj-$(CONFIG_PNPACPI)         += pnpacpi/
  obj-$(CONFIG_PNPBIOS)         += pnpbios/
  obj-$(CONFIG_ISAPNP)          += isapnp/
 -
 -ifeq ($(CONFIG_PNP_DEBUG),y)
 -EXTRA_CFLAGS += -DDEBUG
 -endif
+ # pnp_system_init goes after pnpacpi/pnpbios init
+ obj-y                         += system.o
diff --combined drivers/pnp/base.h
index 5e4e82c82659b7e1aadd0db55f38d10e702b7382,3b8b9d3cb03d6cc2f8738e67abd145ff09a4285f..0b8d14050efaf2e424b11c5a07515d1c2eb1f6c1
@@@ -4,6 -4,7 +4,7 @@@
   */
  
  extern spinlock_t pnp_lock;
+ extern struct device_attribute pnp_interface_attrs[];
  void *pnp_alloc(long size);
  
  int pnp_register_protocol(struct pnp_protocol *protocol);
@@@ -16,7 -17,6 +17,6 @@@ struct pnp_card *pnp_alloc_card(struct 
  
  int pnp_add_device(struct pnp_dev *dev);
  struct pnp_id *pnp_add_id(struct pnp_dev *dev, char *id);
- int pnp_interface_attach_device(struct pnp_dev *dev);
  
  int pnp_add_card(struct pnp_card *card);
  void pnp_remove_card(struct pnp_card *card);
@@@ -147,7 -147,7 +147,7 @@@ char *pnp_resource_type_name(struct res
  void dbg_pnp_show_resources(struct pnp_dev *dev, char *desc);
  
  void pnp_free_resources(struct pnp_dev *dev);
int pnp_resource_type(struct resource *res);
unsigned long pnp_resource_type(struct resource *res);
  
  struct pnp_resource {
        struct list_head list;
@@@ -166,13 -166,3 +166,13 @@@ struct pnp_resource *pnp_add_io_resourc
  struct pnp_resource *pnp_add_mem_resource(struct pnp_dev *dev,
                                          resource_size_t start,
                                          resource_size_t end, int flags);
 +
 +extern int pnp_debug;
 +
 +#if defined(CONFIG_PNP_DEBUG_MESSAGES)
 +#define pnp_dbg(dev, format, arg...)                                  \
 +      ({ if (pnp_debug) dev_printk(KERN_DEBUG, dev, format, ## arg); 0; })
 +#else
 +#define pnp_dbg(dev, format, arg...)                                  \
 +      ({ if (0) dev_printk(KERN_DEBUG, dev, format, ## arg); 0; })
 +#endif
diff --combined drivers/pnp/core.c
index 521561509a750e3c551ad3d9a68fddd65f9be7d2,817fe626e15b2d78a5cfa32ab7f26e761ee37009..16c01c6fa7c589b92e0b827cd36d65fb5fbccad7
@@@ -159,21 -159,13 +159,13 @@@ struct pnp_dev *pnp_alloc_dev(struct pn
  
  int __pnp_add_device(struct pnp_dev *dev)
  {
-       int ret;
        pnp_fixup_device(dev);
        dev->status = PNP_READY;
        spin_lock(&pnp_lock);
        list_add_tail(&dev->global_list, &pnp_global);
        list_add_tail(&dev->protocol_list, &dev->protocol->devices);
        spin_unlock(&pnp_lock);
-       ret = device_register(&dev->dev);
-       if (ret)
-               return ret;
-       pnp_interface_attach_device(dev);
-       return 0;
+       return device_register(&dev->dev);
  }
  
  /*
  int pnp_add_device(struct pnp_dev *dev)
  {
        int ret;
 +      char buf[128];
 +      int len = 0;
 +      struct pnp_id *id;
  
        if (dev->card)
                return -EINVAL;
        if (ret)
                return ret;
  
 -#ifdef CONFIG_PNP_DEBUG
 -      {
 -              struct pnp_id *id;
 +      buf[0] = '\0';
 +      for (id = dev->id; id; id = id->next)
 +              len += scnprintf(buf + len, sizeof(buf) - len, " %s", id->id);
  
 -              dev_printk(KERN_DEBUG, &dev->dev, "%s device, IDs",
 -                      dev->protocol->name);
 -              for (id = dev->id; id; id = id->next)
 -                      printk(" %s", id->id);
 -              printk(" (%s)\n", dev->active ? "active" : "disabled");
 -      }
 -#endif
 +      pnp_dbg(&dev->dev, "%s device, IDs%s (%s)\n",
 +              dev->protocol->name, buf, dev->active ? "active" : "disabled");
        return 0;
  }
  
@@@ -216,19 -210,7 +208,18 @@@ void __pnp_remove_device(struct pnp_de
  
  static int __init pnp_init(void)
  {
-       printk(KERN_INFO "Linux Plug and Play Support v0.97 (c) Adam Belay\n");
        return bus_register(&pnp_bus_type);
  }
  
  subsys_initcall(pnp_init);
 +
 +int pnp_debug;
 +
 +#if defined(CONFIG_PNP_DEBUG_MESSAGES)
 +static int __init pnp_debug_setup(char *__unused)
 +{
 +      pnp_debug = 1;
 +      return 1;
 +}
 +__setup("pnp.debug", pnp_debug_setup);
 +#endif
diff --combined drivers/pnp/driver.c
index 54673a4f5901023d4b426e6937d0830996c4d495,e3f7e89c4dfb29a794a86a40a8bcf088550c032f..527ee764c93f54264cfd7f60e4facf4462cd8c80
@@@ -114,6 -114,7 +114,6 @@@ static int pnp_device_probe(struct devi
        } else
                goto fail;
  
 -      dev_dbg(dev, "driver attached\n");
        return error;
  
  fail:
@@@ -205,10 -206,13 +205,11 @@@ struct bus_type pnp_bus_type = 
        .remove  = pnp_device_remove,
        .suspend = pnp_bus_suspend,
        .resume  = pnp_bus_resume,
+       .dev_attrs = pnp_interface_attrs,
  };
  
  int pnp_register_driver(struct pnp_driver *drv)
  {
 -      pnp_dbg("the driver '%s' has been registered", drv->name);
 -
        drv->driver.name = drv->name;
        drv->driver.bus = &pnp_bus_type;
  
  void pnp_unregister_driver(struct pnp_driver *drv)
  {
        driver_unregister(&drv->driver);
 -      pnp_dbg("the driver '%s' has been unregistered", drv->name);
  }
  
  /**
index bd213ffbcd9ef4cfc57101a51d8fd798f51b270e,46455fbab6d51f6dae89b6b68da5a4b2f34f4851..e851160e14f06e6d98179f19716ac04b51e7a598
@@@ -901,7 -901,7 +901,7 @@@ static int isapnp_get_resources(struct 
  {
        int i, ret;
  
 -      dev_dbg(&dev->dev, "get resources\n");
 +      pnp_dbg(&dev->dev, "get resources\n");
        pnp_init_resources(dev);
        isapnp_cfg_begin(dev->card->number, dev->number);
        dev->active = isapnp_read_byte(ISAPNP_CFG_ACTIVATE);
@@@ -939,13 -939,13 +939,13 @@@ static int isapnp_set_resources(struct 
        struct resource *res;
        int tmp;
  
 -      dev_dbg(&dev->dev, "set resources\n");
 +      pnp_dbg(&dev->dev, "set resources\n");
        isapnp_cfg_begin(dev->card->number, dev->number);
        dev->active = 1;
        for (tmp = 0; tmp < ISAPNP_MAX_PORT; tmp++) {
                res = pnp_get_resource(dev, IORESOURCE_IO, tmp);
                if (pnp_resource_enabled(res)) {
 -                      dev_dbg(&dev->dev, "  set io  %d to %#llx\n",
 +                      pnp_dbg(&dev->dev, "  set io  %d to %#llx\n",
                                tmp, (unsigned long long) res->start);
                        isapnp_write_word(ISAPNP_CFG_PORT + (tmp << 1),
                                          res->start);
                        int irq = res->start;
                        if (irq == 2)
                                irq = 9;
 -                      dev_dbg(&dev->dev, "  set irq %d to %d\n", tmp, irq);
 +                      pnp_dbg(&dev->dev, "  set irq %d to %d\n", tmp, irq);
                        isapnp_write_byte(ISAPNP_CFG_IRQ + (tmp << 1), irq);
                }
        }
        for (tmp = 0; tmp < ISAPNP_MAX_DMA; tmp++) {
                res = pnp_get_resource(dev, IORESOURCE_DMA, tmp);
                if (pnp_resource_enabled(res)) {
 -                      dev_dbg(&dev->dev, "  set dma %d to %lld\n",
 +                      pnp_dbg(&dev->dev, "  set dma %d to %lld\n",
                                tmp, (unsigned long long) res->start);
                        isapnp_write_byte(ISAPNP_CFG_DMA + tmp, res->start);
                }
        for (tmp = 0; tmp < ISAPNP_MAX_MEM; tmp++) {
                res = pnp_get_resource(dev, IORESOURCE_MEM, tmp);
                if (pnp_resource_enabled(res)) {
 -                      dev_dbg(&dev->dev, "  set mem %d to %#llx\n",
 +                      pnp_dbg(&dev->dev, "  set mem %d to %#llx\n",
                                tmp, (unsigned long long) res->start);
                        isapnp_write_word(ISAPNP_CFG_MEM + (tmp << 3),
                                          (res->start >> 8) & 0xffff);
@@@ -1012,7 -1012,7 +1012,7 @@@ static int __init isapnp_init(void
                printk(KERN_INFO "isapnp: ISA Plug & Play support disabled\n");
                return 0;
        }
- #ifdef CONFIG_PPC_MERGE
+ #ifdef CONFIG_PPC
        if (check_legacy_ioport(_PIDXR) || check_legacy_ioport(_PNPWRP))
                return -EINVAL;
  #endif
index a12800f8e4c9b9a467fb45e4a4bbb4aa61b84050,53561d72b4eef0795e41054476060093d1053dbe..383e47c392a4c8ea69fe7459e302e6d76ee77cff
@@@ -75,7 -75,7 +75,7 @@@ static int __init ispnpidacpi(char *id
  
  static int pnpacpi_get_resources(struct pnp_dev *dev)
  {
 -      dev_dbg(&dev->dev, "get resources\n");
 +      pnp_dbg(&dev->dev, "get resources\n");
        return pnpacpi_parse_allocated_resource(dev);
  }
  
@@@ -86,7 -86,7 +86,7 @@@ static int pnpacpi_set_resources(struc
        int ret;
        acpi_status status;
  
 -      dev_dbg(&dev->dev, "set resources\n");
 +      pnp_dbg(&dev->dev, "set resources\n");
        ret = pnpacpi_build_resource_template(dev, &buffer);
        if (ret)
                return ret;
@@@ -148,13 -148,9 +148,13 @@@ static int __init pnpacpi_add_device(st
        acpi_status status;
        struct pnp_dev *dev;
  
 +      /*
 +       * If a PnPacpi device is not present , the device
 +       * driver should not be loaded.
 +       */
        status = acpi_get_handle(device->handle, "_CRS", &temp);
        if (ACPI_FAILURE(status) || !ispnpidacpi(acpi_device_hid(device)) ||
 -          is_exclusive_device(device))
 +          is_exclusive_device(device) || (!device->status.present))
                return 0;
  
        dev = pnp_alloc_dev(&pnpacpi_protocol, num, acpi_device_hid(device));
@@@ -259,20 -255,20 +259,20 @@@ int pnpacpi_disabled __initdata
  static int __init pnpacpi_init(void)
  {
        if (acpi_disabled || pnpacpi_disabled) {
 -              pnp_info("PnP ACPI: disabled");
 +              printk(KERN_INFO "pnp: PnP ACPI: disabled\n");
                return 0;
        }
 -      pnp_info("PnP ACPI init");
 +      printk(KERN_INFO "pnp: PnP ACPI init\n");
        pnp_register_protocol(&pnpacpi_protocol);
        register_acpi_bus_type(&acpi_pnp_bus);
        acpi_get_devices(NULL, pnpacpi_add_device_handler, NULL, NULL);
 -      pnp_info("PnP ACPI: found %d devices", num);
 +      printk(KERN_INFO "pnp: PnP ACPI: found %d devices\n", num);
        unregister_acpi_bus_type(&acpi_pnp_bus);
        pnp_platform_devices = 1;
        return 0;
  }
  
subsys_initcall(pnpacpi_init);
fs_initcall(pnpacpi_init);
  
  static int __init pnpacpi_setup(char *str)
  {
index 2f79eb2190e16075a6df0ae44bfbc4affbadb180,2bfe13369df5e75d36d58bb1674646bc424bcfac..996f6483807909b3c773e6bbbace9997135cbcd9
@@@ -211,7 -211,7 +211,7 @@@ static int pnpbios_get_resources(struc
        if (!pnpbios_is_dynamic(dev))
                return -EPERM;
  
 -      dev_dbg(&dev->dev, "get resources\n");
 +      pnp_dbg(&dev->dev, "get resources\n");
        node = kzalloc(node_info.max_node_size, GFP_KERNEL);
        if (!node)
                return -1;
@@@ -234,7 -234,7 +234,7 @@@ static int pnpbios_set_resources(struc
        if (!pnpbios_is_dynamic(dev))
                return -EPERM;
  
 -      dev_dbg(&dev->dev, "set resources\n");
 +      pnp_dbg(&dev->dev, "set resources\n");
        node = kzalloc(node_info.max_node_size, GFP_KERNEL);
        if (!node)
                return -1;
@@@ -519,7 -519,7 +519,7 @@@ static int __init pnpbios_init(void
  {
        int ret;
  
- #if defined(CONFIG_PPC_MERGE)
+ #if defined(CONFIG_PPC)
        if (check_legacy_ioport(PNPBIOS_BASE))
                return -ENODEV;
  #endif
        return 0;
  }
  
subsys_initcall(pnpbios_init);
fs_initcall(pnpbios_init);
  
  static int __init pnpbios_thread_init(void)
  {
        struct task_struct *task;
  
- #if defined(CONFIG_PPC_MERGE)
+ #if defined(CONFIG_PPC)
        if (check_legacy_ioport(PNPBIOS_BASE))
                return 0;
  #endif
diff --combined drivers/pnp/quirks.c
index 3d2e56094783813a1fea5a2e76bc72f4d85d270a,c144bd575611f300249923264f065741957e9bb3..8473fe5ed7ffe79d190cffcc42b3b2b383e4cf58
@@@ -245,7 -245,7 +245,7 @@@ static void quirk_system_pci_resources(
         */
        for_each_pci_dev(pdev) {
                for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
-                       unsigned int type;
+                       unsigned long type;
  
                        type = pci_resource_flags(pdev, i) &
                                        (IORESOURCE_IO | IORESOURCE_MEM);
@@@ -337,8 -337,9 +337,8 @@@ void pnp_fixup_device(struct pnp_dev *d
        for (f = pnp_fixups; *f->id; f++) {
                if (!compare_pnp_id(dev->id, f->id))
                        continue;
 -#ifdef DEBUG
 -              dev_dbg(&dev->dev, "%s: calling %pF\n", f->id, f->quirk_function);
 -#endif
 +              pnp_dbg(&dev->dev, "%s: calling %pF\n", f->id,
 +                      f->quirk_function);
                f->quirk_function(dev);
        }
  }
diff --combined drivers/pnp/resource.c
index 5ef463d89f161afc1269453c25118013893ec230,dbae23acdd5b12e1df4a83164dbec01a4c6d7a54..f604061d2bb0334981540e592b3aeee02320489c
@@@ -294,7 -294,7 +294,7 @@@ static int pci_dev_uses_irq(struct pnp_
        u8 progif;
  
        if (pci->irq == irq) {
 -              dev_dbg(&pnp->dev, "device %s using irq %d\n",
 +              pnp_dbg(&pnp->dev, "  device %s using irq %d\n",
                        pci_name(pci), irq);
                return 1;
        }
                if ((progif & 0x5) != 0x5)
                        if (pci_get_legacy_ide_irq(pci, 0) == irq ||
                            pci_get_legacy_ide_irq(pci, 1) == irq) {
 -                              dev_dbg(&pnp->dev, "legacy IDE device %s "
 +                              pnp_dbg(&pnp->dev, "  legacy IDE device %s "
                                        "using irq %d\n", pci_name(pci), irq);
                                return 1;
                        }
@@@ -467,14 -467,14 +467,14 @@@ int pnp_check_dma(struct pnp_dev *dev, 
  #endif
  }
  
int pnp_resource_type(struct resource *res)
unsigned long pnp_resource_type(struct resource *res)
  {
        return res->flags & (IORESOURCE_IO  | IORESOURCE_MEM |
                             IORESOURCE_IRQ | IORESOURCE_DMA);
  }
  
  struct resource *pnp_get_resource(struct pnp_dev *dev,
-                                 unsigned int type, unsigned int num)
+                                 unsigned long type, unsigned int num)
  {
        struct pnp_resource *pnp_res;
        struct resource *res;
@@@ -517,7 -517,7 +517,7 @@@ struct pnp_resource *pnp_add_irq_resour
        res->start = irq;
        res->end = irq;
  
 -      dev_dbg(&dev->dev, "  add irq %d flags %#x\n", irq, flags);
 +      pnp_dbg(&dev->dev, "  add irq %d flags %#x\n", irq, flags);
        return pnp_res;
  }
  
@@@ -538,7 -538,7 +538,7 @@@ struct pnp_resource *pnp_add_dma_resour
        res->start = dma;
        res->end = dma;
  
 -      dev_dbg(&dev->dev, "  add dma %d flags %#x\n", dma, flags);
 +      pnp_dbg(&dev->dev, "  add dma %d flags %#x\n", dma, flags);
        return pnp_res;
  }
  
@@@ -562,7 -562,7 +562,7 @@@ struct pnp_resource *pnp_add_io_resourc
        res->start = start;
        res->end = end;
  
 -      dev_dbg(&dev->dev, "  add io  %#llx-%#llx flags %#x\n",
 +      pnp_dbg(&dev->dev, "  add io  %#llx-%#llx flags %#x\n",
                (unsigned long long) start, (unsigned long long) end, flags);
        return pnp_res;
  }
@@@ -587,7 -587,7 +587,7 @@@ struct pnp_resource *pnp_add_mem_resour
        res->start = start;
        res->end = end;
  
 -      dev_dbg(&dev->dev, "  add mem %#llx-%#llx flags %#x\n",
 +      pnp_dbg(&dev->dev, "  add mem %#llx-%#llx flags %#x\n",
                (unsigned long long) start, (unsigned long long) end, flags);
        return pnp_res;
  }
diff --combined include/acpi/acmacros.h
index a1e3240bf460ba10950014559edf267eaa563a01,74a9617776a80f728b874ab47f58a5f124d00996..a597207e28352ab4de53a69d9d6eb8d29f6c0a28
@@@ -62,7 -62,7 +62,7 @@@
  #define ACPI_ARRAY_LENGTH(x)            (sizeof(x) / sizeof((x)[0]))
  
  /*
 - * Extract data using a pointer.  Any more than a byte and we
 + * Extract data using a pointer. Any more than a byte and we
   * get into potential aligment issues -- see the STORE macros below.
   * Use with care.
   */
   */
  #define ACPI_CAST_PTR(t, p)             ((t *) (acpi_uintptr_t) (p))
  #define ACPI_CAST_INDIRECT_PTR(t, p)    ((t **) (acpi_uintptr_t) (p))
 -#define ACPI_ADD_PTR(t, a, b)         ACPI_CAST_PTR (t, (ACPI_CAST_PTR (u8,(a)) + (acpi_size)(b)))
 -#define ACPI_PTR_DIFF(a, b)           (acpi_size) (ACPI_CAST_PTR (u8,(a)) - ACPI_CAST_PTR (u8,(b)))
 +#define ACPI_ADD_PTR(t, a, b)         ACPI_CAST_PTR (t, (ACPI_CAST_PTR (u8, (a)) + (acpi_size)(b)))
 +#define ACPI_PTR_DIFF(a, b)           (acpi_size) (ACPI_CAST_PTR (u8, (a)) - ACPI_CAST_PTR (u8, (b)))
  
  /* Pointer/Integer type conversions */
  
  #define ACPI_TO_POINTER(i)            ACPI_ADD_PTR (void, (void *) NULL, (acpi_size) i)
 -#define ACPI_TO_INTEGER(p)              ACPI_PTR_DIFF (p,(void *) NULL)
 -#define ACPI_OFFSET(d,f)                (acpi_size) ACPI_PTR_DIFF (&(((d *)0)->f),(void *) NULL)
 +#define ACPI_TO_INTEGER(p)              ACPI_PTR_DIFF (p, (void *) NULL)
 +#define ACPI_OFFSET(d, f)               (acpi_size) ACPI_PTR_DIFF (&(((d *)0)->f), (void *) NULL)
  #define ACPI_PHYSADDR_TO_PTR(i)         ACPI_TO_POINTER(i)
  #define ACPI_PTR_TO_PHYSADDR(i)         ACPI_TO_INTEGER(i)
  
  #ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
 -#define ACPI_COMPARE_NAME(a,b)          (*ACPI_CAST_PTR (u32,(a)) == *ACPI_CAST_PTR (u32,(b)))
 +#define ACPI_COMPARE_NAME(a, b)         (*ACPI_CAST_PTR (u32, (a)) == *ACPI_CAST_PTR (u32, (b)))
  #else
 -#define ACPI_COMPARE_NAME(a,b)          (!ACPI_STRNCMP (ACPI_CAST_PTR (char,(a)), ACPI_CAST_PTR (char,(b)), ACPI_NAME_SIZE))
 +#define ACPI_COMPARE_NAME(a, b)         (!ACPI_STRNCMP (ACPI_CAST_PTR (char, (a)), ACPI_CAST_PTR (char, (b)), ACPI_NAME_SIZE))
  #endif
  
  /*
@@@ -114,7 -114,7 +114,7 @@@ struct acpi_integer_overlay 
  
  /* Split 64-bit integer into two 32-bit values. Use with %8.8_x%8.8_x */
  
 -#define ACPI_FORMAT_UINT64(i)           ACPI_HIDWORD(i),ACPI_LODWORD(i)
 +#define ACPI_FORMAT_UINT64(i)           ACPI_HIDWORD(i), ACPI_LODWORD(i)
  
  #if ACPI_MACHINE_WIDTH == 64
  #define ACPI_FORMAT_NATIVE_UINT(i)      ACPI_FORMAT_UINT64(i)
   * Macros for big-endian machines
   */
  
 -/* This macro sets a buffer index, starting from the end of the buffer */
 -
 -#define ACPI_BUFFER_INDEX(buf_len,buf_offset,byte_gran) ((buf_len) - (((buf_offset)+1) * (byte_gran)))
 -
  /* These macros reverse the bytes during the move, converting little-endian to big endian */
  
                          /* Big Endian      <==        Little Endian */
                          /*  Hi...Lo                     Lo...Hi     */
  /* 16-bit source, 16/32/64 destination */
  
 -#define ACPI_MOVE_16_TO_16(d,s)         {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[1];\
 +#define ACPI_MOVE_16_TO_16(d, s)        {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[1];\
                                           ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[0];}
  
 -#define ACPI_MOVE_16_TO_32(d,s)         {(*(u32 *)(void *)(d))=0;\
 +#define ACPI_MOVE_16_TO_32(d, s)        {(*(u32 *)(void *)(d))=0;\
                                                           ((u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
                                                           ((u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
  
 -#define ACPI_MOVE_16_TO_64(d,s)         {(*(u64 *)(void *)(d))=0;\
 +#define ACPI_MOVE_16_TO_64(d, s)        {(*(u64 *)(void *)(d))=0;\
                                                                         ((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\
                                                                         ((u8 *)(void *)(d))[7] = ((u8 *)(void *)(s))[0];}
  
  /* 32-bit source, 16/32/64 destination */
  
 -#define ACPI_MOVE_32_TO_16(d,s)         ACPI_MOVE_16_TO_16(d,s)       /* Truncate to 16 */
 +#define ACPI_MOVE_32_TO_16(d, s)        ACPI_MOVE_16_TO_16(d, s)      /* Truncate to 16 */
  
 -#define ACPI_MOVE_32_TO_32(d,s)         {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[3];\
 +#define ACPI_MOVE_32_TO_32(d, s)        {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[3];\
                                                                                 ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[2];\
                                                                                 ((  u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[1];\
                                                                                 ((  u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[0];}
  
 -#define ACPI_MOVE_32_TO_64(d,s)         {(*(u64 *)(void *)(d))=0;\
 +#define ACPI_MOVE_32_TO_64(d, s)        {(*(u64 *)(void *)(d))=0;\
                                                                                   ((u8 *)(void *)(d))[4] = ((u8 *)(void *)(s))[3];\
                                                                                   ((u8 *)(void *)(d))[5] = ((u8 *)(void *)(s))[2];\
                                                                                   ((u8 *)(void *)(d))[6] = ((u8 *)(void *)(s))[1];\
  
  /* 64-bit source, 16/32/64 destination */
  
 -#define ACPI_MOVE_64_TO_16(d,s)         ACPI_MOVE_16_TO_16(d,s)       /* Truncate to 16 */
 +#define ACPI_MOVE_64_TO_16(d, s)        ACPI_MOVE_16_TO_16(d, s)      /* Truncate to 16 */
  
 -#define ACPI_MOVE_64_TO_32(d,s)         ACPI_MOVE_32_TO_32(d,s)       /* Truncate to 32 */
 +#define ACPI_MOVE_64_TO_32(d, s)        ACPI_MOVE_32_TO_32(d, s)      /* Truncate to 32 */
  
 -#define ACPI_MOVE_64_TO_64(d,s)         {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[7];\
 +#define ACPI_MOVE_64_TO_64(d, s)        {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[7];\
                                                                                 ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[6];\
                                                                                 ((  u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[5];\
                                                                                 ((  u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[4];\
   * Macros for little-endian machines
   */
  
 -/* This macro sets a buffer index, starting from the beginning of the buffer */
 -
 -#define ACPI_BUFFER_INDEX(buf_len,buf_offset,byte_gran) (buf_offset)
 -
  #ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
  
  /* The hardware supports unaligned transfers, just do the little-endian move */
  
  /* 16-bit source, 16/32/64 destination */
  
 -#define ACPI_MOVE_16_TO_16(d,s)         *(u16 *)(void *)(d) = *(u16 *)(void *)(s)
 -#define ACPI_MOVE_16_TO_32(d,s)         *(u32 *)(void *)(d) = *(u16 *)(void *)(s)
 -#define ACPI_MOVE_16_TO_64(d,s)         *(u64 *)(void *)(d) = *(u16 *)(void *)(s)
 +#define ACPI_MOVE_16_TO_16(d, s)        *(u16 *)(void *)(d) = *(u16 *)(void *)(s)
 +#define ACPI_MOVE_16_TO_32(d, s)        *(u32 *)(void *)(d) = *(u16 *)(void *)(s)
 +#define ACPI_MOVE_16_TO_64(d, s)        *(u64 *)(void *)(d) = *(u16 *)(void *)(s)
  
  /* 32-bit source, 16/32/64 destination */
  
 -#define ACPI_MOVE_32_TO_16(d,s)         ACPI_MOVE_16_TO_16(d,s)       /* Truncate to 16 */
 -#define ACPI_MOVE_32_TO_32(d,s)         *(u32 *)(void *)(d) = *(u32 *)(void *)(s)
 -#define ACPI_MOVE_32_TO_64(d,s)         *(u64 *)(void *)(d) = *(u32 *)(void *)(s)
 +#define ACPI_MOVE_32_TO_16(d, s)        ACPI_MOVE_16_TO_16(d, s)      /* Truncate to 16 */
 +#define ACPI_MOVE_32_TO_32(d, s)        *(u32 *)(void *)(d) = *(u32 *)(void *)(s)
 +#define ACPI_MOVE_32_TO_64(d, s)        *(u64 *)(void *)(d) = *(u32 *)(void *)(s)
  
  /* 64-bit source, 16/32/64 destination */
  
 -#define ACPI_MOVE_64_TO_16(d,s)         ACPI_MOVE_16_TO_16(d,s)       /* Truncate to 16 */
 -#define ACPI_MOVE_64_TO_32(d,s)         ACPI_MOVE_32_TO_32(d,s)       /* Truncate to 32 */
 -#define ACPI_MOVE_64_TO_64(d,s)         *(u64 *)(void *)(d) = *(u64 *)(void *)(s)
 +#define ACPI_MOVE_64_TO_16(d, s)        ACPI_MOVE_16_TO_16(d, s)      /* Truncate to 16 */
 +#define ACPI_MOVE_64_TO_32(d, s)        ACPI_MOVE_32_TO_32(d, s)      /* Truncate to 32 */
 +#define ACPI_MOVE_64_TO_64(d, s)        *(u64 *)(void *)(d) = *(u64 *)(void *)(s)
  
  #else
  /*
 - * The hardware does not support unaligned transfers.  We must move the
 - * data one byte at a time.  These macros work whether the source or
 + * The hardware does not support unaligned transfers. We must move the
 + * data one byte at a time. These macros work whether the source or
   * the destination (or both) is/are unaligned.  (Little-endian move)
   */
  
  /* 16-bit source, 16/32/64 destination */
  
 -#define ACPI_MOVE_16_TO_16(d,s)         {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[0];\
 +#define ACPI_MOVE_16_TO_16(d, s)        {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[0];\
                                                                                 ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[1];}
  
 -#define ACPI_MOVE_16_TO_32(d,s)         {(*(u32 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d,s);}
 -#define ACPI_MOVE_16_TO_64(d,s)         {(*(u64 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d,s);}
 +#define ACPI_MOVE_16_TO_32(d, s)        {(*(u32 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d, s);}
 +#define ACPI_MOVE_16_TO_64(d, s)        {(*(u64 *)(void *)(d)) = 0; ACPI_MOVE_16_TO_16(d, s);}
  
  /* 32-bit source, 16/32/64 destination */
  
 -#define ACPI_MOVE_32_TO_16(d,s)         ACPI_MOVE_16_TO_16(d,s)       /* Truncate to 16 */
 +#define ACPI_MOVE_32_TO_16(d, s)        ACPI_MOVE_16_TO_16(d, s)      /* Truncate to 16 */
  
 -#define ACPI_MOVE_32_TO_32(d,s)         {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[0];\
 +#define ACPI_MOVE_32_TO_32(d, s)        {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[0];\
                                                                                 ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[1];\
                                                                                 ((  u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[2];\
                                                                                 ((  u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[3];}
  
 -#define ACPI_MOVE_32_TO_64(d,s)         {(*(u64 *)(void *)(d)) = 0; ACPI_MOVE_32_TO_32(d,s);}
 +#define ACPI_MOVE_32_TO_64(d, s)        {(*(u64 *)(void *)(d)) = 0; ACPI_MOVE_32_TO_32(d, s);}
  
  /* 64-bit source, 16/32/64 destination */
  
 -#define ACPI_MOVE_64_TO_16(d,s)         ACPI_MOVE_16_TO_16(d,s)       /* Truncate to 16 */
 -#define ACPI_MOVE_64_TO_32(d,s)         ACPI_MOVE_32_TO_32(d,s)       /* Truncate to 32 */
 -#define ACPI_MOVE_64_TO_64(d,s)         {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[0];\
 +#define ACPI_MOVE_64_TO_16(d, s)        ACPI_MOVE_16_TO_16(d, s)      /* Truncate to 16 */
 +#define ACPI_MOVE_64_TO_32(d, s)        ACPI_MOVE_32_TO_32(d, s)      /* Truncate to 32 */
 +#define ACPI_MOVE_64_TO_64(d, s)        {((  u8 *)(void *)(d))[0] = ((u8 *)(void *)(s))[0];\
                                                                                 ((  u8 *)(void *)(d))[1] = ((u8 *)(void *)(s))[1];\
                                                                                 ((  u8 *)(void *)(d))[2] = ((u8 *)(void *)(s))[2];\
                                                                                 ((  u8 *)(void *)(d))[3] = ((u8 *)(void *)(s))[3];\
  /* Macros based on machine integer width */
  
  #if ACPI_MACHINE_WIDTH == 32
 -#define ACPI_MOVE_SIZE_TO_16(d,s)       ACPI_MOVE_32_TO_16(d,s)
 +#define ACPI_MOVE_SIZE_TO_16(d, s)       ACPI_MOVE_32_TO_16(d, s)
  
  #elif ACPI_MACHINE_WIDTH == 64
 -#define ACPI_MOVE_SIZE_TO_16(d,s)       ACPI_MOVE_64_TO_16(d,s)
 +#define ACPI_MOVE_SIZE_TO_16(d, s)       ACPI_MOVE_64_TO_16(d, s)
  
  #else
  #error unknown ACPI_MACHINE_WIDTH
  /*
   * Fast power-of-two math macros for non-optimized compilers
   */
 -#define _ACPI_DIV(value,power_of2)      ((u32) ((value) >> (power_of2)))
 -#define _ACPI_MUL(value,power_of2)      ((u32) ((value) << (power_of2)))
 -#define _ACPI_MOD(value,divisor)        ((u32) ((value) & ((divisor) -1)))
 +#define _ACPI_DIV(value, power_of2)      ((u32) ((value) >> (power_of2)))
 +#define _ACPI_MUL(value, power_of2)      ((u32) ((value) << (power_of2)))
 +#define _ACPI_MOD(value, divisor)        ((u32) ((value) & ((divisor) -1)))
  
 -#define ACPI_DIV_2(a)                   _ACPI_DIV(a,1)
 -#define ACPI_MUL_2(a)                   _ACPI_MUL(a,1)
 -#define ACPI_MOD_2(a)                   _ACPI_MOD(a,2)
 +#define ACPI_DIV_2(a)                   _ACPI_DIV(a, 1)
 +#define ACPI_MUL_2(a)                   _ACPI_MUL(a, 1)
 +#define ACPI_MOD_2(a)                   _ACPI_MOD(a, 2)
  
 -#define ACPI_DIV_4(a)                   _ACPI_DIV(a,2)
 -#define ACPI_MUL_4(a)                   _ACPI_MUL(a,2)
 -#define ACPI_MOD_4(a)                   _ACPI_MOD(a,4)
 +#define ACPI_DIV_4(a)                   _ACPI_DIV(a, 2)
 +#define ACPI_MUL_4(a)                   _ACPI_MUL(a, 2)
 +#define ACPI_MOD_4(a)                   _ACPI_MOD(a, 4)
  
 -#define ACPI_DIV_8(a)                   _ACPI_DIV(a,3)
 -#define ACPI_MUL_8(a)                   _ACPI_MUL(a,3)
 -#define ACPI_MOD_8(a)                   _ACPI_MOD(a,8)
 +#define ACPI_DIV_8(a)                   _ACPI_DIV(a, 3)
 +#define ACPI_MUL_8(a)                   _ACPI_MUL(a, 3)
 +#define ACPI_MOD_8(a)                   _ACPI_MOD(a, 8)
  
 -#define ACPI_DIV_16(a)                  _ACPI_DIV(a,4)
 -#define ACPI_MUL_16(a)                  _ACPI_MUL(a,4)
 -#define ACPI_MOD_16(a)                  _ACPI_MOD(a,16)
 +#define ACPI_DIV_16(a)                  _ACPI_DIV(a, 4)
 +#define ACPI_MUL_16(a)                  _ACPI_MUL(a, 4)
 +#define ACPI_MOD_16(a)                  _ACPI_MOD(a, 16)
  
 -#define ACPI_DIV_32(a)                  _ACPI_DIV(a,5)
 -#define ACPI_MUL_32(a)                  _ACPI_MUL(a,5)
 -#define ACPI_MOD_32(a)                  _ACPI_MOD(a,32)
 +#define ACPI_DIV_32(a)                  _ACPI_DIV(a, 5)
 +#define ACPI_MUL_32(a)                  _ACPI_MUL(a, 5)
 +#define ACPI_MOD_32(a)                  _ACPI_MOD(a, 32)
  
  /*
   * Rounding macros (Power of two boundaries only)
  
  /* Note: sizeof(acpi_size) evaluates to either 4 or 8 (32- vs 64-bit mode) */
  
 -#define ACPI_ROUND_DOWN_TO_32BIT(a)         ACPI_ROUND_DOWN(a,4)
 -#define ACPI_ROUND_DOWN_TO_64BIT(a)         ACPI_ROUND_DOWN(a,8)
 -#define ACPI_ROUND_DOWN_TO_NATIVE_WORD(a)   ACPI_ROUND_DOWN(a,sizeof(acpi_size))
 +#define ACPI_ROUND_DOWN_TO_32BIT(a)         ACPI_ROUND_DOWN(a, 4)
 +#define ACPI_ROUND_DOWN_TO_64BIT(a)         ACPI_ROUND_DOWN(a, 8)
 +#define ACPI_ROUND_DOWN_TO_NATIVE_WORD(a)   ACPI_ROUND_DOWN(a, sizeof(acpi_size))
  
 -#define ACPI_ROUND_UP_TO_32BIT(a)           ACPI_ROUND_UP(a,4)
 -#define ACPI_ROUND_UP_TO_64BIT(a)           ACPI_ROUND_UP(a,8)
 -#define ACPI_ROUND_UP_TO_NATIVE_WORD(a)     ACPI_ROUND_UP(a,sizeof(acpi_size))
 +#define ACPI_ROUND_UP_TO_32BIT(a)           ACPI_ROUND_UP(a, 4)
 +#define ACPI_ROUND_UP_TO_64BIT(a)           ACPI_ROUND_UP(a, 8)
 +#define ACPI_ROUND_UP_TO_NATIVE_WORD(a)     ACPI_ROUND_UP(a, sizeof(acpi_size))
  
  #define ACPI_ROUND_BITS_UP_TO_BYTES(a)      ACPI_DIV_8((a) + 7)
  #define ACPI_ROUND_BITS_DOWN_TO_BYTES(a)    ACPI_DIV_8((a))
  
  /* Generic (non-power-of-two) rounding */
  
 -#define ACPI_ROUND_UP_TO(value,boundary)    (((value) + ((boundary)-1)) / (boundary))
 +#define ACPI_ROUND_UP_TO(value, boundary)   (((value) + ((boundary)-1)) / (boundary))
  
 -#define ACPI_IS_MISALIGNED(value)         (((acpi_size)value) & (sizeof(acpi_size)-1))
 +#define ACPI_IS_MISALIGNED(value)         (((acpi_size) value) & (sizeof(acpi_size)-1))
  
  /*
   * Bitmask creation
  #define ACPI_MASK_BITS_ABOVE(position)      (~((ACPI_INTEGER_MAX) << ((u32) (position))))
  #define ACPI_MASK_BITS_BELOW(position)      ((ACPI_INTEGER_MAX) << ((u32) (position)))
  
 -#define ACPI_IS_OCTAL_DIGIT(d)              (((char)(d) >= '0') && ((char)(d) <= '7'))
 -
  /* Bitfields within ACPI registers */
  
  #define ACPI_REGISTER_PREPARE_BITS(val, pos, mask)      ((val << pos) & mask)
  
  #define ACPI_INSERT_BITS(target, mask, source)          target = ((target & (~(mask))) | (source & mask))
  
 -/* Generate a UUID */
 -
 -#define ACPI_INIT_UUID(a,b,c,d0,d1,d2,d3,d4,d5,d6,d7) \
 -      (a) & 0xFF, ((a) >> 8) & 0xFF, ((a) >> 16) & 0xFF, ((a) >> 24) & 0xFF, \
 -      (b) & 0xFF, ((b) >> 8) & 0xFF, \
 -      (c) & 0xFF, ((c) >> 8) & 0xFF, \
 -      (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7)
 -
  /*
 - * An struct acpi_namespace_node * can appear in some contexts,
 - * where a pointer to an union acpi_operand_object    can also
 - * appear.  This macro is used to distinguish them.
 + * An struct acpi_namespace_node can appear in some contexts
 + * where a pointer to an union acpi_operand_object can also
 + * appear. This macro is used to distinguish them.
   *
   * The "Descriptor" field is the first field in both structures.
   */
  #define ACPI_GET_DESCRIPTOR_TYPE(d)     (((union acpi_descriptor *)(void *)(d))->common.descriptor_type)
 -#define ACPI_SET_DESCRIPTOR_TYPE(d,t)   (((union acpi_descriptor *)(void *)(d))->common.descriptor_type = t)
 +#define ACPI_SET_DESCRIPTOR_TYPE(d, t)  (((union acpi_descriptor *)(void *)(d))->common.descriptor_type = t)
  
  /* Macro to test the object type */
  
  #define ACPI_GET_OBJECT_TYPE(d)         (((union acpi_operand_object *)(void *)(d))->common.type)
  
 -/* Macro to check the table flags for SINGLE or MULTIPLE tables are allowed */
 -
 -#define ACPI_IS_SINGLE_TABLE(x)         (((x) & 0x01) == ACPI_TABLE_SINGLE ? 1 : 0)
 -
  /*
   * Macros for the master AML opcode table
   */
 -#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
 -#define ACPI_OP(name,Pargs,Iargs,obj_type,class,type,flags)    {name,(u32)(Pargs),(u32)(Iargs),(u32)(flags),obj_type,class,type}
 +#if defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUG_OUTPUT)
 +#define ACPI_OP(name, Pargs, Iargs, obj_type, class, type, flags) \
 +      {name, (u32)(Pargs), (u32)(Iargs), (u32)(flags), obj_type, class, type}
  #else
 -#define ACPI_OP(name,Pargs,Iargs,obj_type,class,type,flags)    {(u32)(Pargs),(u32)(Iargs),(u32)(flags),obj_type,class,type}
 +#define ACPI_OP(name, Pargs, Iargs, obj_type, class, type, flags) \
 +      {(u32)(Pargs), (u32)(Iargs), (u32)(flags), obj_type, class, type}
  #endif
  
  #ifdef ACPI_DISASSEMBLER
  #define ARG_6(x)                        ((u32)(x) << (5 * ARG_TYPE_WIDTH))
  
  #define ARGI_LIST1(a)                   (ARG_1(a))
 -#define ARGI_LIST2(a,b)                 (ARG_1(b)|ARG_2(a))
 -#define ARGI_LIST3(a,b,c)               (ARG_1(c)|ARG_2(b)|ARG_3(a))
 -#define ARGI_LIST4(a,b,c,d)             (ARG_1(d)|ARG_2(c)|ARG_3(b)|ARG_4(a))
 -#define ARGI_LIST5(a,b,c,d,e)           (ARG_1(e)|ARG_2(d)|ARG_3(c)|ARG_4(b)|ARG_5(a))
 -#define ARGI_LIST6(a,b,c,d,e,f)         (ARG_1(f)|ARG_2(e)|ARG_3(d)|ARG_4(c)|ARG_5(b)|ARG_6(a))
 +#define ARGI_LIST2(a, b)                (ARG_1(b)|ARG_2(a))
 +#define ARGI_LIST3(a, b, c)             (ARG_1(c)|ARG_2(b)|ARG_3(a))
 +#define ARGI_LIST4(a, b, c, d)          (ARG_1(d)|ARG_2(c)|ARG_3(b)|ARG_4(a))
 +#define ARGI_LIST5(a, b, c, d, e)       (ARG_1(e)|ARG_2(d)|ARG_3(c)|ARG_4(b)|ARG_5(a))
 +#define ARGI_LIST6(a, b, c, d, e, f)    (ARG_1(f)|ARG_2(e)|ARG_3(d)|ARG_4(c)|ARG_5(b)|ARG_6(a))
  
  #define ARGP_LIST1(a)                   (ARG_1(a))
 -#define ARGP_LIST2(a,b)                 (ARG_1(a)|ARG_2(b))
 -#define ARGP_LIST3(a,b,c)               (ARG_1(a)|ARG_2(b)|ARG_3(c))
 -#define ARGP_LIST4(a,b,c,d)             (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d))
 -#define ARGP_LIST5(a,b,c,d,e)           (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e))
 -#define ARGP_LIST6(a,b,c,d,e,f)         (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e)|ARG_6(f))
 +#define ARGP_LIST2(a, b)                (ARG_1(a)|ARG_2(b))
 +#define ARGP_LIST3(a, b, c)             (ARG_1(a)|ARG_2(b)|ARG_3(c))
 +#define ARGP_LIST4(a, b, c, d)          (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d))
 +#define ARGP_LIST5(a, b, c, d, e)       (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e))
 +#define ARGP_LIST6(a, b, c, d, e, f)    (ARG_1(a)|ARG_2(b)|ARG_3(c)|ARG_4(d)|ARG_5(e)|ARG_6(f))
  
  #define GET_CURRENT_ARG_TYPE(list)      (list & ((u32) 0x1F))
  #define INCREMENT_ARG_LIST(list)        (list >>= ((u32) ARG_TYPE_WIDTH))
  #define ACPI_WARNING(plist)             acpi_ut_warning plist
  #define ACPI_EXCEPTION(plist)           acpi_ut_exception plist
  #define ACPI_ERROR(plist)               acpi_ut_error plist
 -#define ACPI_ERROR_NAMESPACE(s,e)       acpi_ns_report_error (AE_INFO, s, e);
 -#define ACPI_ERROR_METHOD(s,n,p,e)      acpi_ns_report_method_error (AE_INFO, s, n, p, e);
 +#define ACPI_ERROR_NAMESPACE(s, e)      acpi_ns_report_error (AE_INFO, s, e);
 +#define ACPI_ERROR_METHOD(s, n, p, e)   acpi_ns_report_method_error (AE_INFO, s, n, p, e);
  
  #else
  
  #define ACPI_WARNING(plist)
  #define ACPI_EXCEPTION(plist)
  #define ACPI_ERROR(plist)
 -#define ACPI_ERROR_NAMESPACE(s,e)
 -#define ACPI_ERROR_METHOD(s,n,p,e)
 +#define ACPI_ERROR_NAMESPACE(s, e)
 +#define ACPI_ERROR_METHOD(s, n, p, e)
  #endif
  
  /*
  /*
   * If ACPI_GET_FUNCTION_NAME was not defined in the compiler-dependent header,
   * define it now. This is the case where there the compiler does not support
-  * a __FUNCTION__ macro or equivalent.
+  * a __func__ macro or equivalent.
   */
  #ifndef ACPI_GET_FUNCTION_NAME
  #define ACPI_GET_FUNCTION_NAME          _acpi_function_name
   * The Name parameter should be the procedure name as a quoted string.
   * The function name is also used by the function exit macros below.
   * Note: (const char) is used to be compatible with the debug interfaces
-  * and macros such as __FUNCTION__.
+  * and macros such as __func__.
   */
  #define ACPI_FUNCTION_NAME(name)      static const char _acpi_function_name[] = #name;
  
  #else
- /* Compiler supports __FUNCTION__ (or equivalent) -- Ignore this macro */
+ /* Compiler supports __func__ (or equivalent) -- Ignore this macro */
  
  #define ACPI_FUNCTION_NAME(name)
  #endif
  
  #define ACPI_FUNCTION_TRACE(a)          ACPI_FUNCTION_NAME(a) \
                          acpi_ut_trace(ACPI_DEBUG_PARAMETERS)
 -#define ACPI_FUNCTION_TRACE_PTR(a,b)    ACPI_FUNCTION_NAME(a) \
 -                                         acpi_ut_trace_ptr(ACPI_DEBUG_PARAMETERS,(void *)b)
 -#define ACPI_FUNCTION_TRACE_U32(a,b)    ACPI_FUNCTION_NAME(a) \
 -                                                       acpi_ut_trace_u32(ACPI_DEBUG_PARAMETERS,(u32)b)
 -#define ACPI_FUNCTION_TRACE_STR(a,b)    ACPI_FUNCTION_NAME(a) \
 -                                                                        acpi_ut_trace_str(ACPI_DEBUG_PARAMETERS,(char *)b)
 +#define ACPI_FUNCTION_TRACE_PTR(a, b)   ACPI_FUNCTION_NAME(a) \
 +                                         acpi_ut_trace_ptr(ACPI_DEBUG_PARAMETERS, (void *)b)
 +#define ACPI_FUNCTION_TRACE_U32(a, b)   ACPI_FUNCTION_NAME(a) \
 +                                                       acpi_ut_trace_u32(ACPI_DEBUG_PARAMETERS, (u32)b)
 +#define ACPI_FUNCTION_TRACE_STR(a, b)   ACPI_FUNCTION_NAME(a) \
 +                                                                        acpi_ut_trace_str(ACPI_DEBUG_PARAMETERS, (char *)b)
  
  #define ACPI_FUNCTION_ENTRY()           acpi_ut_track_stack_ptr()
  
  /*
   * Function exit tracing.
 - * WARNING: These macros include a return statement.  This is usually considered
 + * WARNING: These macros include a return statement. This is usually considered
   * bad form, but having a separate exit macro is very ugly and difficult to maintain.
   * One of the FUNCTION_TRACE macros above must be used in conjunction with these macros
   * so that "_AcpiFunctionName" is defined.
  
  /* Stack and buffer dumping */
  
 -#define ACPI_DUMP_STACK_ENTRY(a)        acpi_ex_dump_operand((a),0)
 -#define ACPI_DUMP_OPERANDS(a,b,c)     acpi_ex_dump_operands(a,b,c)
 +#define ACPI_DUMP_STACK_ENTRY(a)        acpi_ex_dump_operand((a), 0)
 +#define ACPI_DUMP_OPERANDS(a, b, c)   acpi_ex_dump_operands(a, b, c)
  
 -#define ACPI_DUMP_ENTRY(a,b)            acpi_ns_dump_entry (a,b)
 -#define ACPI_DUMP_PATHNAME(a,b,c,d)     acpi_ns_dump_pathname(a,b,c,d)
 +#define ACPI_DUMP_ENTRY(a, b)           acpi_ns_dump_entry (a, b)
 +#define ACPI_DUMP_PATHNAME(a, b, c, d)  acpi_ns_dump_pathname(a, b, c, d)
  #define ACPI_DUMP_RESOURCE_LIST(a)      acpi_rs_dump_resource_list(a)
 -#define ACPI_DUMP_BUFFER(a,b)           acpi_ut_dump_buffer((u8 *)a,b,DB_BYTE_DISPLAY,_COMPONENT)
 +#define ACPI_DUMP_BUFFER(a, b)          acpi_ut_dump_buffer((u8 *) a, b, DB_BYTE_DISPLAY, _COMPONENT)
  
  /*
   * Master debug print macros
  #define ACPI_DEBUG_ONLY_MEMBERS(a)    do { } while(0)
  #define ACPI_FUNCTION_NAME(a)         do { } while(0)
  #define ACPI_FUNCTION_TRACE(a)                do { } while(0)
 -#define ACPI_FUNCTION_TRACE_PTR(a,b)  do { } while(0)
 -#define ACPI_FUNCTION_TRACE_U32(a,b)  do { } while(0)
 -#define ACPI_FUNCTION_TRACE_STR(a,b)  do { } while(0)
 +#define ACPI_FUNCTION_TRACE_PTR(a, b) do { } while(0)
 +#define ACPI_FUNCTION_TRACE_U32(a, b) do { } while(0)
 +#define ACPI_FUNCTION_TRACE_STR(a, b) do { } while(0)
  #define ACPI_FUNCTION_EXIT            do { } while(0)
  #define ACPI_FUNCTION_STATUS_EXIT(s)  do { } while(0)
  #define ACPI_FUNCTION_VALUE_EXIT(s)   do { } while(0)
  #define ACPI_FUNCTION_ENTRY()         do { } while(0)
  #define ACPI_DUMP_STACK_ENTRY(a)      do { } while(0)
 -#define ACPI_DUMP_OPERANDS(a,b,c)      do { } while(0)
 -#define ACPI_DUMP_ENTRY(a,b)          do { } while(0)
 -#define ACPI_DUMP_TABLES(a,b)         do { } while(0)
 -#define ACPI_DUMP_PATHNAME(a,b,c,d)   do { } while(0)
 +#define ACPI_DUMP_OPERANDS(a, b, c)     do { } while(0)
 +#define ACPI_DUMP_ENTRY(a, b)         do { } while(0)
 +#define ACPI_DUMP_TABLES(a, b)                do { } while(0)
 +#define ACPI_DUMP_PATHNAME(a, b, c, d)        do { } while(0)
  #define ACPI_DUMP_RESOURCE_LIST(a)    do { } while(0)
 -#define ACPI_DUMP_BUFFER(a,b)         do { } while(0)
 +#define ACPI_DUMP_BUFFER(a, b)                do { } while(0)
  #define ACPI_DEBUG_PRINT(pl)          do { } while(0)
  #define ACPI_DEBUG_PRINT_RAW(pl)      do { } while(0)
  
  /*
   * Memory allocation tracking (DEBUG ONLY)
   */
 +#define ACPI_MEM_PARAMETERS         _COMPONENT, _acpi_module_name, __LINE__
 +
  #ifndef ACPI_DBG_TRACK_ALLOCATIONS
  
  /* Memory allocation */
  
  #ifndef ACPI_ALLOCATE
 -#define ACPI_ALLOCATE(a)            acpi_ut_allocate((acpi_size)(a),_COMPONENT,_acpi_module_name,__LINE__)
 +#define ACPI_ALLOCATE(a)            acpi_ut_allocate((acpi_size)(a), ACPI_MEM_PARAMETERS)
  #endif
  #ifndef ACPI_ALLOCATE_ZEROED
 -#define ACPI_ALLOCATE_ZEROED(a)     acpi_ut_allocate_zeroed((acpi_size)(a), _COMPONENT,_acpi_module_name,__LINE__)
 +#define ACPI_ALLOCATE_ZEROED(a)     acpi_ut_allocate_zeroed((acpi_size)(a), ACPI_MEM_PARAMETERS)
  #endif
  #ifndef ACPI_FREE
  #define ACPI_FREE(a)                acpio_os_free(a)
  
  /* Memory allocation */
  
 -#define ACPI_ALLOCATE(a)            acpi_ut_allocate_and_track((acpi_size)(a),_COMPONENT,_acpi_module_name,__LINE__)
 -#define ACPI_ALLOCATE_ZEROED(a)     acpi_ut_allocate_zeroed_and_track((acpi_size)(a), _COMPONENT,_acpi_module_name,__LINE__)
 -#define ACPI_FREE(a)                acpi_ut_free_and_track(a,_COMPONENT,_acpi_module_name,__LINE__)
 +#define ACPI_ALLOCATE(a)            acpi_ut_allocate_and_track((acpi_size)(a), ACPI_MEM_PARAMETERS)
 +#define ACPI_ALLOCATE_ZEROED(a)     acpi_ut_allocate_zeroed_and_track((acpi_size)(a), ACPI_MEM_PARAMETERS)
 +#define ACPI_FREE(a)                acpi_ut_free_and_track(a, ACPI_MEM_PARAMETERS)
  #define ACPI_MEM_TRACKING(a)        a
  
  #endif                                /* ACPI_DBG_TRACK_ALLOCATIONS */
  
 +/* Preemption point */
 +#ifndef ACPI_PREEMPTION_POINT
 +#define ACPI_PREEMPTION_POINT() /* no preemption */
 +#endif
 +
  #endif                                /* ACMACROS_H */
diff --combined include/asm-x86/idle.h
index 54ce018d4b6c073f39b61af5a244da20efb35365,baa3f783d27dcb58c1de4fa66eb5f31deaecc872..32227f0188dde8ef9d7de11f845a5d79c8b97953
@@@ -1,16 -1,15 +1,16 @@@
- #ifndef _ASM_X86_64_IDLE_H
- #define _ASM_X86_64_IDLE_H 1
+ #ifndef ASM_X86__IDLE_H
+ #define ASM_X86__IDLE_H
  
  #define IDLE_START 1
  #define IDLE_END 2
  
  struct notifier_block;
  void idle_notifier_register(struct notifier_block *n);
 +void idle_notifier_unregister(struct notifier_block *n);
  
  void enter_idle(void);
  void exit_idle(void);
  
  void c1e_remove_cpu(int cpu);
  
- #endif
+ #endif /* ASM_X86__IDLE_H */
diff --combined include/linux/kernel.h
index 0b19848e380e76baa67a858f523a6a597a494d68,94d17ff64c5a3b48c0f6716d29b9832d6a896551..396a350b87a60b79935a9b738c34783581319a2b
@@@ -16,6 -16,7 +16,7 @@@
  #include <linux/log2.h>
  #include <linux/typecheck.h>
  #include <linux/ratelimit.h>
+ #include <linux/dynamic_printk.h>
  #include <asm/byteorder.h>
  #include <asm/bug.h>
  
@@@ -182,7 -183,7 +183,7 @@@ extern int vsscanf(const char *, const 
  
  extern int get_option(char **str, int *pint);
  extern char *get_options(const char *str, int nints, int *ints);
- extern unsigned long long memparse(char *ptr, char **retptr);
+ extern unsigned long long memparse(const char *ptr, char **retptr);
  
  extern int core_kernel_text(unsigned long addr);
  extern int __kernel_text_address(unsigned long addr);
@@@ -190,30 -191,6 +191,30 @@@ extern int kernel_text_address(unsigne
  struct pid;
  extern struct pid *session_of_pgrp(struct pid *pgrp);
  
 +/*
 + * FW_BUG
 + * Add this to a message where you are sure the firmware is buggy or behaves
 + * really stupid or out of spec. Be aware that the responsible BIOS developer
 + * should be able to fix this issue or at least get a concrete idea of the
 + * problem by reading your message without the need of looking at the kernel
 + * code.
 + * 
 + * Use it for definite and high priority BIOS bugs.
 + *
 + * FW_WARN
 + * Use it for not that clear (e.g. could the kernel messed up things already?)
 + * and medium priority BIOS bugs.
 + *
 + * FW_INFO
 + * Use this one if you want to tell the user or vendor about something
 + * suspicious, but generally harmless related to the firmware.
 + *
 + * Use it for information or very low priority BIOS bugs.
 + */
 +#define FW_BUG                "[Firmware Bug]: "
 +#define FW_WARN               "[Firmware Warn]: "
 +#define FW_INFO               "[Firmware Info]: "
 +
  #ifdef CONFIG_PRINTK
  asmlinkage int vprintk(const char *fmt, va_list args)
        __attribute__ ((format (printf, 1, 0)));
@@@ -237,6 -214,9 +238,9 @@@ static inline bool printk_timed_ratelim
                { return false; }
  #endif
  
+ extern int printk_needs_cpu(int cpu);
+ extern void printk_tick(void);
  extern void asmlinkage __attribute__((format(printf, 1, 2)))
        early_printk(const char *fmt, ...);
  
@@@ -259,9 -239,10 +263,10 @@@ extern int oops_in_progress;             /* If set
  extern int panic_timeout;
  extern int panic_on_oops;
  extern int panic_on_unrecovered_nmi;
- extern int tainted;
  extern const char *print_tainted(void);
- extern void add_taint(unsigned);
+ extern void add_taint(unsigned flag);
+ extern int test_taint(unsigned flag);
+ extern unsigned long get_taint(void);
  extern int root_mountflags;
  
  /* Values used for system_state */
@@@ -274,16 -255,17 +279,17 @@@ extern enum system_states 
        SYSTEM_SUSPEND_DISK,
  } system_state;
  
- #define TAINT_PROPRIETARY_MODULE      (1<<0)
- #define TAINT_FORCED_MODULE           (1<<1)
- #define TAINT_UNSAFE_SMP              (1<<2)
- #define TAINT_FORCED_RMMOD            (1<<3)
- #define TAINT_MACHINE_CHECK           (1<<4)
- #define TAINT_BAD_PAGE                        (1<<5)
- #define TAINT_USER                    (1<<6)
- #define TAINT_DIE                     (1<<7)
- #define TAINT_OVERRIDDEN_ACPI_TABLE   (1<<8)
- #define TAINT_WARN                    (1<<9)
+ #define TAINT_PROPRIETARY_MODULE      0
+ #define TAINT_FORCED_MODULE           1
+ #define TAINT_UNSAFE_SMP              2
+ #define TAINT_FORCED_RMMOD            3
+ #define TAINT_MACHINE_CHECK           4
+ #define TAINT_BAD_PAGE                        5
+ #define TAINT_USER                    6
+ #define TAINT_DIE                     7
+ #define TAINT_OVERRIDDEN_ACPI_TABLE   8
+ #define TAINT_WARN                    9
+ #define TAINT_CRAP                    10
  
  extern void dump_stack(void) __cold;
  
@@@ -327,8 -309,12 +333,12 @@@ static inline char *pack_hex_byte(char 
  #define pr_info(fmt, arg...) \
        printk(KERN_INFO fmt, ##arg)
  
- #ifdef DEBUG
  /* If you are writing a driver, please use dev_dbg instead */
+ #if defined(CONFIG_DYNAMIC_PRINTK_DEBUG)
+ #define pr_debug(fmt, ...) do { \
+       dynamic_pr_debug(fmt, ##__VA_ARGS__); \
+       } while (0)
+ #elif defined(DEBUG)
  #define pr_debug(fmt, arg...) \
        printk(KERN_DEBUG fmt, ##arg)
  #else
@@@ -510,4 -496,9 +520,9 @@@ struct sysinfo 
  #define NUMA_BUILD 0
  #endif
  
+ /* Rebuild everything on CONFIG_FTRACE_MCOUNT_RECORD */
+ #ifdef CONFIG_FTRACE_MCOUNT_RECORD
+ # define REBUILD_DUE_TO_FTRACE_MCOUNT_RECORD
+ #endif
  #endif
diff --combined include/linux/pci_ids.h
index efb786d11f2a369854d9b562c195a4e39c3b5fe9,e5d344bfcb7e584d91c6f8fc553900799ea9bbad..bdab7c72a77f7670eda6c89e187eb8a1799f5fd7
  #define PCI_DEVICE_ID_AMD_K8_NB_ADDRMAP       0x1101
  #define PCI_DEVICE_ID_AMD_K8_NB_MEMCTL        0x1102
  #define PCI_DEVICE_ID_AMD_K8_NB_MISC  0x1103
+ #define PCI_DEVICE_ID_AMD_10H_NB_HT   0x1200
+ #define PCI_DEVICE_ID_AMD_10H_NB_MAP  0x1201
+ #define PCI_DEVICE_ID_AMD_10H_NB_DRAM 0x1202
+ #define PCI_DEVICE_ID_AMD_10H_NB_MISC 0x1203
+ #define PCI_DEVICE_ID_AMD_10H_NB_LINK 0x1204
+ #define PCI_DEVICE_ID_AMD_11H_NB_HT   0x1300
+ #define PCI_DEVICE_ID_AMD_11H_NB_MAP  0x1301
+ #define PCI_DEVICE_ID_AMD_11H_NB_DRAM 0x1302
+ #define PCI_DEVICE_ID_AMD_11H_NB_MISC 0x1303
+ #define PCI_DEVICE_ID_AMD_11H_NB_LINK 0x1304
  #define PCI_DEVICE_ID_AMD_LANCE               0x2000
  #define PCI_DEVICE_ID_AMD_LANCE_HOME  0x2001
  #define PCI_DEVICE_ID_AMD_SCSI                0x2020
  #define PCI_DEVICE_ID_MATROX_G200_PCI 0x0520
  #define PCI_DEVICE_ID_MATROX_G200_AGP 0x0521
  #define       PCI_DEVICE_ID_MATROX_G400       0x0525
+ #define       PCI_DEVICE_ID_MATROX_G200EV_PCI 0x0530
  #define PCI_DEVICE_ID_MATROX_G550     0x2527
  #define PCI_DEVICE_ID_MATROX_VIA      0x4536
  
  #define PCI_DEVICE_ID_EICON_MAESTRAQ_U        0xe013
  #define PCI_DEVICE_ID_EICON_MAESTRAP  0xe014
  
+ #define PCI_VENDOR_ID_CISCO           0x1137
  #define PCI_VENDOR_ID_ZIATECH         0x1138
  #define PCI_DEVICE_ID_ZIATECH_5550_HC 0x5550
   
  #define PCI_DEVICE_ID_MARVELL_GT64260 0x6430
  #define PCI_DEVICE_ID_MARVELL_MV64360 0x6460
  #define PCI_DEVICE_ID_MARVELL_MV64460 0x6480
- #define PCI_DEVICE_ID_MARVELL_CAFE_SD 0x4101
+ #define PCI_DEVICE_ID_MARVELL_88ALP01_NAND    0x4100
+ #define PCI_DEVICE_ID_MARVELL_88ALP01_SD      0x4101
+ #define PCI_DEVICE_ID_MARVELL_88ALP01_CCIC    0x4102
  
  #define PCI_VENDOR_ID_V3              0x11b0
  #define PCI_DEVICE_ID_V3_V960         0x0001
  
  #define PCI_VENDOR_ID_ATTANSIC                0x1969
  #define PCI_DEVICE_ID_ATTANSIC_L1     0x1048
+ #define PCI_DEVICE_ID_ATTANSIC_L2     0x2048
  
  #define PCI_VENDOR_ID_JMICRON         0x197B
  #define PCI_DEVICE_ID_JMICRON_JMB360  0x2360
  #define PCI_DEVICE_ID_3DLABS_PERMEDIA2        0x0007
  #define PCI_DEVICE_ID_3DLABS_PERMEDIA2V       0x0009
  
+ #define PCI_VENDOR_ID_NETXEN          0x4040
+ #define PCI_DEVICE_ID_NX2031_10GXSR   0x0001
+ #define PCI_DEVICE_ID_NX2031_10GCX4   0x0002
+ #define PCI_DEVICE_ID_NX2031_4GCU     0x0003
+ #define PCI_DEVICE_ID_NX2031_IMEZ     0x0004
+ #define PCI_DEVICE_ID_NX2031_HMEZ     0x0005
+ #define PCI_DEVICE_ID_NX2031_XG_MGMT  0x0024
+ #define PCI_DEVICE_ID_NX2031_XG_MGMT2 0x0025
+ #define PCI_DEVICE_ID_NX3031          0x0100
  #define PCI_VENDOR_ID_AKS             0x416c
  #define PCI_DEVICE_ID_AKS_ALADDINCARD 0x0100
  
  #define PCI_DEVICE_ID_INTEL_MCH_PC1   0x359a
  #define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e
  #define PCI_DEVICE_ID_INTEL_IOAT_CNB  0x360b
 +#define PCI_DEVICE_ID_INTEL_FBD_CNB   0x360c
  #define PCI_DEVICE_ID_INTEL_ICH10_0   0x3a14
  #define PCI_DEVICE_ID_INTEL_ICH10_1   0x3a16
  #define PCI_DEVICE_ID_INTEL_ICH10_2   0x3a18
  #define PCI_DEVICE_ID_INTEL_ICH10_3   0x3a1a
  #define PCI_DEVICE_ID_INTEL_ICH10_4   0x3a30
  #define PCI_DEVICE_ID_INTEL_ICH10_5   0x3a60
- #define PCI_DEVICE_ID_INTEL_PCH_0     0x3b10
- #define PCI_DEVICE_ID_INTEL_PCH_1     0x3b11
- #define PCI_DEVICE_ID_INTEL_PCH_2     0x3b30
+ #define PCI_DEVICE_ID_INTEL_PCH_LPC_MIN       0x3b00
+ #define PCI_DEVICE_ID_INTEL_PCH_LPC_MAX       0x3b1f
+ #define PCI_DEVICE_ID_INTEL_PCH_SMBUS 0x3b30
  #define PCI_DEVICE_ID_INTEL_IOAT_SNB  0x402f
  #define PCI_DEVICE_ID_INTEL_5100_16   0x65f0
  #define PCI_DEVICE_ID_INTEL_5100_21   0x65f5
diff --combined include/linux/pnp.h
index 05daecec16c50455e46e14bfe4d2f34bb86c5969,53b70fd1d9a535d92639a66757646ce5620e21f9..ca3c88773028046f36a807741f2f6fa16b9c65fe
@@@ -22,9 -22,11 +22,11 @@@ struct pnp_dev
   * Resource Management
   */
  #ifdef CONFIG_PNP
- struct resource *pnp_get_resource(struct pnp_dev *, unsigned int, unsigned int);
+ struct resource *pnp_get_resource(struct pnp_dev *dev, unsigned long type,
+                               unsigned int num);
  #else
- static inline struct resource *pnp_get_resource(struct pnp_dev *dev, unsigned int type, unsigned int num)
+ static inline struct resource *pnp_get_resource(struct pnp_dev *dev,
+                       unsigned long type, unsigned int num)
  {
        return NULL;
  }
@@@ -483,4 -485,14 +485,4 @@@ static inline void pnp_unregister_drive
  
  #endif /* CONFIG_PNP */
  
 -#define pnp_err(format, arg...) printk(KERN_ERR "pnp: " format "\n" , ## arg)
 -#define pnp_info(format, arg...) printk(KERN_INFO "pnp: " format "\n" , ## arg)
 -#define pnp_warn(format, arg...) printk(KERN_WARNING "pnp: " format "\n" , ## arg)
 -
 -#ifdef CONFIG_PNP_DEBUG
 -#define pnp_dbg(format, arg...) printk(KERN_DEBUG "pnp: " format "\n" , ## arg)
 -#else
 -#define pnp_dbg(format, arg...) do {} while (0)
 -#endif
 -
  #endif /* _LINUX_PNP_H */