Merge branch 'linus' into release
Len Brown [Fri, 9 Jan 2009 08:39:43 +0000 (03:39 -0500)]
19 files changed:
1  2 
Documentation/kernel-parameters.txt
arch/ia64/kernel/acpi.c
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/e820.c
drivers/acpi/acpica/acmacros.h
drivers/acpi/acpica/exprep.c
drivers/acpi/acpica/exresolv.c
drivers/acpi/acpica/exstore.c
drivers/acpi/acpica/rscreate.c
drivers/acpi/acpica/utobject.c
drivers/ata/libata-acpi.c
drivers/ide/ide-acpi.c
drivers/misc/Kconfig
drivers/pci/hotplug/acpi_pcihp.c
drivers/pci/hotplug/pciehp.h
drivers/pci/pci-acpi.c
include/acpi/actypes.h
include/linux/pci_hotplug.h
kernel/power/disk.c

Simple merge
Simple merge
@@@ -1359,18 -1374,18 +1374,29 @@@ static void __init acpi_process_madt(vo
                               "Invalid BIOS MADT, disabling ACPI\n");
                        disable_acpi();
                }
 +      } else {
 +              /*
 +               * ACPI found no MADT, and so ACPI wants UP PIC mode.
 +               * In the event an MPS table was found, forget it.
 +               * Boot with "acpi=off" to use MPS on such a system.
 +               */
 +              if (smp_found_config) {
 +                      printk(KERN_WARNING PREFIX
 +                              "No APIC-table, disabling MPS\n");
 +                      smp_found_config = 0;
 +              }
        }
+       /*
+        * ACPI supports both logical (e.g. Hyper-Threading) and physical
+        * processors, where MPS only supports physical.
+        */
+       if (acpi_lapic && acpi_ioapic)
+               printk(KERN_INFO "Using ACPI (MADT) for SMP configuration "
+                      "information\n");
+       else if (acpi_lapic)
+               printk(KERN_INFO "Using ACPI for processor (LAPIC) "
+                      "configuration information\n");
  #endif
        return;
  }
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -217,13 -217,26 +217,25 @@@ struct hpc_ops 
  #ifdef CONFIG_ACPI
  #include <acpi/acpi.h>
  #include <acpi/acpi_bus.h>
 -#include <acpi/actypes.h>
  #include <linux/pci-acpi.h>
  
+ extern void __init pciehp_acpi_slot_detection_init(void);
+ extern int pciehp_acpi_slot_detection_check(struct pci_dev *dev);
+ static inline void pciehp_firmware_init(void)
+ {
+       pciehp_acpi_slot_detection_init();
+ }
  static inline int pciehp_get_hp_hw_control_from_firmware(struct pci_dev *dev)
  {
+       int retval;
        u32 flags = (OSC_PCI_EXPRESS_NATIVE_HP_CONTROL |
                     OSC_PCI_EXPRESS_CAP_STRUCTURE_CONTROL);
-       return acpi_get_hp_hw_control_from_firmware(dev, flags);
+       retval = acpi_get_hp_hw_control_from_firmware(dev, flags);
+       if (retval)
+               return retval;
+       return pciehp_acpi_slot_detection_check(dev);
  }
  
  static inline int pciehp_get_hp_params_from_firmware(struct pci_dev *dev,
Simple merge
Simple merge
Simple merge
@@@ -257,9 -256,10 +256,9 @@@ static int create_image(int platform_mo
  
  int hibernation_snapshot(int platform_mode)
  {
-       int error, ftrace_save;
+       int error;
  
 -      /* Free memory before shutting down devices. */
 -      error = swsusp_shrink_memory();
 +      error = platform_begin(platform_mode);
        if (error)
                return error;