]> Git Repo - linux.git/commitdiff
Merge tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
authorLinus Torvalds <[email protected]>
Tue, 17 May 2016 02:41:41 +0000 (19:41 -0700)
committerLinus Torvalds <[email protected]>
Tue, 17 May 2016 02:41:41 +0000 (19:41 -0700)
Pull ACPI updates from Rafael Wysocki:
 "The new features here are ACPI 6.1 support (and some previously
  missing bits of ACPI 6.0 support) in ACPICA and two new drivers, a
  driver for the ACPI Generic Event Device (GED) feature introduced by
  ACPI 6.1 and the INT3406 thermal driver for display thermal
  management.  Also the value returned by the _HRV (hardware revision)
  ACPI object will be exported to user space via sysfs now.

  In addition to that, ACPI on ARM64 will not depend on EXPERT any more.

  The rest is mostly fixes and cleanups and some code reorganization.

  Specifics:

   - In-kernel ACPICA code update to the upstream release 20160422
     adding support for ACPI 6.1 along with some previously missing bits
     of ACPI 6.0 support, making a fair amount of fixes and cleanups and
     reducing divergences between the upstream ACPICA and the in-kernel
     code (Bob Moore, Lv Zheng, Al Stone, Aleksey Makarov, Will Miles)

   - ACPI Generic Event Device (GED) support and a fix for it (Sinan
     Kaya, Paul Gortmaker)

   - INT3406 thermal driver for display thermal management and ACPI
     backlight support code reorganization related to it (Aaron Lu, Arnd
     Bergmann)

   - Support for exporting the value returned by the _HRV (hardware
     revision) ACPI object via sysfs (Betty Dall)

   - Removal of the EXPERT dependency for ACPI on ARM64 (Mark Brown)

   - Rework of the handling of ACPI _OSI mechanism allowing the
     _OSI("Darwin") support to be overridden from the kernel command
     line among other things (Lv Zheng, Chen Yu)

   - Rework of the ACPI tables override mechanism to prepare it for the
     introduction of overlays support going forward (Lv Zheng, Rafael
     Wysocki)

   - Fixes related to the ECDT support and module-level execution of AML
     (Lv Zheng)

   - ACPI PCI interrupts management update to make it work better on
     ARM64 mostly (Sinan Kaya)

   - ACPI SRAT handling update to make the code process all entires in
     the table order regardless of the entry type (Lukasz Anaczkowski)

   - EFI power off support for full-hardware ACPI platforms that don't
     support ACPI S5 (Chen Yu)

   - Fixes and cleanups related to the ACPI core's sysfs interface (Dan
     Carpenter, Betty Dall)

   - acpi_dev_present() API rework to reduce possible confusion related
     to it (Lukas Wunner)

   - Removal of CLK_IS_ROOT from two ACPI drivers (Stephen Boyd)"

* tag 'acpi-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (82 commits)
  ACPI / video: mark acpi_video_get_levels() inline
  Thermal / ACPI / video: add INT3406 thermal driver
  ACPI / GED: make evged.c explicitly non-modular
  ACPI / tables: Fix DSDT override mechanism
  ACPI / sysfs: fix error code in get_status()
  ACPICA: Update version to 20160422
  ACPICA: Move all ASCII utilities to a common file
  ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support for acpi_hw_write()
  ACPICA: ACPI 2.0, Hardware: Add access_width/bit_offset support in acpi_hw_read()
  ACPICA: Executer: Introduce a set of macros to handle bit width mask generation
  ACPICA: Hardware: Add optimized access bit width support
  ACPICA: Utilities: Add ACPI_IS_ALIGNED() macro
  ACPICA: Renamed some #defined flag constants for clarity
  ACPICA: ACPI 6.0, tools/iasl: Add support for new resource descriptors
  ACPICA: ACPI 6.0: Update _BIX support for new package element
  ACPICA: ACPI 6.1: Support for new PCCT subtable
  ACPICA: Refactor evaluate_object to reduce nesting
  ACPICA: Divergence: remove unwanted spaces for typedef
  ACPI,PCI,IRQ: remove SCI penalize function
  ACPI,PCI,IRQ: remove redundant code in acpi_irq_penalty_init()
  ..

1  2 
Documentation/kernel-parameters.txt
arch/x86/kernel/acpi/boot.c
arch/x86/platform/efi/quirks.c

index 1b322c0c8dff89f314bcd0f5cc7afa508da9eaec,c48f387109e8f06884c5782e80cbc7e7e55b2e47..d3240feef367c7cacd5e64d380dc1ba3ad7eb5ff
@@@ -131,7 -131,6 +131,7 @@@ parameter is applicable
                        More X86-64 boot options can be found in
                        Documentation/x86/x86_64/boot-options.txt .
        X86     Either 32-bit or 64-bit x86 (same as X86-32+X86-64)
 +      X86_UV  SGI UV support is enabled.
        XEN     Xen support is enabled
  
  In addition, the following text indicates that the option:
@@@ -168,18 -167,16 +168,18 @@@ bytes respectively. Such letter suffixe
  
        acpi=           [HW,ACPI,X86,ARM64]
                        Advanced Configuration and Power Interface
 -                      Format: { force | off | strict | noirq | rsdt |
 +                      Format: { force | on | off | strict | noirq | rsdt |
                                  copy_dsdt }
                        force -- enable ACPI if default was off
 +                      on -- enable ACPI but allow fallback to DT [arm64]
                        off -- disable ACPI if default was on
                        noirq -- do not use ACPI for IRQ routing
                        strict -- Be less tolerant of platforms that are not
                                strictly ACPI specification compliant.
                        rsdt -- prefer RSDT over (default) XSDT
                        copy_dsdt -- copy DSDT to memory
 -                      For ARM64, ONLY "acpi=off" or "acpi=force" are available
 +                      For ARM64, ONLY "acpi=off", "acpi=on" or "acpi=force"
 +                      are available
  
                        See also Documentation/power/runtime_pm.txt, pci=noacpi
  
                        acpi_osi=!*             # remove all strings
                        acpi_osi=!              # disable all built-in OS vendor
                                                  strings
+                       acpi_osi=!!             # enable all built-in OS vendor
+                                                 strings
                        acpi_osi=               # disable all strings
  
                        'acpi_osi=!' can be used in combination with single or
                        Format: <int> (must be >=0)
                        Default: 64
  
 +      bau=            [X86_UV] Enable the BAU on SGI UV.  The default
 +                      behavior is to disable the BAU (i.e. bau=0).
 +                      Format: { "0" | "1" }
 +                      0 - Disable the BAU.
 +                      1 - Enable the BAU.
 +                      unset - Disable the BAU.
 +
        baycom_epp=     [HW,AX25]
                        Format: <io>,<mode>
  
                hwp_only
                        Only load intel_pstate on systems which support
                        hardware P state control (HWP) if available.
 +              support_acpi_ppc
 +                      Enforce ACPI _PPC performance limits. If the Fixed ACPI
 +                      Description Table, specifies preferred power management
 +                      profile as "Enterprise Server" or "Performance Server",
 +                      then this feature is turned on by default.
  
        intremap=       [X86-64, Intel-IOMMU]
                        on      enable Interrupt Remapping (default)
                        Lazy RCU callbacks are those which RCU can
                        prove do nothing more than free memory.
  
 +      rcuperf.gp_exp= [KNL]
 +                      Measure performance of expedited synchronous
 +                      grace-period primitives.
 +
 +      rcuperf.holdoff= [KNL]
 +                      Set test-start holdoff period.  The purpose of
 +                      this parameter is to delay the start of the
 +                      test until boot completes in order to avoid
 +                      interference.
 +
 +      rcuperf.nreaders= [KNL]
 +                      Set number of RCU readers.  The value -1 selects
 +                      N, where N is the number of CPUs.  A value
 +                      "n" less than -1 selects N-n+1, where N is again
 +                      the number of CPUs.  For example, -2 selects N
 +                      (the number of CPUs), -3 selects N+1, and so on.
 +                      A value of "n" less than or equal to -N selects
 +                      a single reader.
 +
 +      rcuperf.nwriters= [KNL]
 +                      Set number of RCU writers.  The values operate
 +                      the same as for rcuperf.nreaders.
 +                      N, where N is the number of CPUs
 +
 +      rcuperf.perf_runnable= [BOOT]
 +                      Start rcuperf running at boot time.
 +
 +      rcuperf.shutdown= [KNL]
 +                      Shut the system down after performance tests
 +                      complete.  This is useful for hands-off automated
 +                      testing.
 +
 +      rcuperf.perf_type= [KNL]
 +                      Specify the RCU implementation to test.
 +
 +      rcuperf.verbose= [KNL]
 +                      Enable additional printk() statements.
 +
        rcutorture.cbflood_inter_holdoff= [KNL]
                        Set holdoff time (jiffies) between successive
                        callback-flood tests.
index f115a58f7c8438c70a0cad71ec92bb29a1e0ab85,edf48404d15db912533d14fbcd0f4860bfce0a45..9414f84584e40f347c0b9bfbae31fd4688c76edc
@@@ -136,7 -136,7 +136,7 @@@ static int __init acpi_parse_madt(struc
  {
        struct acpi_table_madt *madt = NULL;
  
 -      if (!cpu_has_apic)
 +      if (!boot_cpu_has(X86_FEATURE_APIC))
                return -EINVAL;
  
        madt = (struct acpi_table_madt *)table;
@@@ -445,7 -445,6 +445,6 @@@ static void __init acpi_sci_ioapic_setu
                polarity = acpi_sci_flags & ACPI_MADT_POLARITY_MASK;
  
        mp_override_legacy_irq(bus_irq, polarity, trigger, gsi);
-       acpi_penalize_sci_irq(bus_irq, trigger, polarity);
  
        /*
         * stash over-ride to indicate we've been here
@@@ -913,15 -912,6 +912,15 @@@ late_initcall(hpet_insert_resource)
  
  static int __init acpi_parse_fadt(struct acpi_table_header *table)
  {
 +      if (!(acpi_gbl_FADT.boot_flags & ACPI_FADT_LEGACY_DEVICES)) {
 +              pr_debug("ACPI: no legacy devices present\n");
 +              x86_platform.legacy.devices.pnpbios = 0;
 +      }
 +
 +      if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_CMOS_RTC) {
 +              pr_debug("ACPI: not registering RTC platform device\n");
 +              x86_platform.legacy.rtc = 0;
 +      }
  
  #ifdef CONFIG_X86_PM_TIMER
        /* detect the location of the ACPI PM Timer */
@@@ -960,7 -950,7 +959,7 @@@ static int __init early_acpi_parse_madt
  {
        int count;
  
 -      if (!cpu_has_apic)
 +      if (!boot_cpu_has(X86_FEATURE_APIC))
                return -ENODEV;
  
        /*
@@@ -988,7 -978,7 +987,7 @@@ static int __init acpi_parse_madt_lapic
        int ret;
        struct acpi_subtable_proc madt_proc[2];
  
 -      if (!cpu_has_apic)
 +      if (!boot_cpu_has(X86_FEATURE_APIC))
                return -ENODEV;
  
        /*
@@@ -1134,7 -1124,7 +1133,7 @@@ static int __init acpi_parse_madt_ioapi
        if (acpi_disabled || acpi_noirq)
                return -ENODEV;
  
 -      if (!cpu_has_apic)
 +      if (!boot_cpu_has(X86_FEATURE_APIC))
                return -ENODEV;
  
        /*
index 097cb09d917b1f826c13d6fb498115a2dd690d31,818d12ad77619b8823ca8a5198c4103cf4aa0eb4..4480c06cade78d663f18db8ef09ff3db723dc1fe
@@@ -195,9 -195,10 +195,9 @@@ static bool can_free_region(u64 start, 
  */
  void __init efi_reserve_boot_services(void)
  {
 -      void *p;
 +      efi_memory_desc_t *md;
  
 -      for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) {
 -              efi_memory_desc_t *md = p;
 +      for_each_efi_memory_desc(md) {
                u64 start = md->phys_addr;
                u64 size = md->num_pages << EFI_PAGE_SHIFT;
                bool already_reserved;
  
  void __init efi_free_boot_services(void)
  {
 -      void *p;
 +      efi_memory_desc_t *md;
  
 -      for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) {
 -              efi_memory_desc_t *md = p;
 +      for_each_efi_memory_desc(md) {
                unsigned long long start = md->phys_addr;
                unsigned long long size = md->num_pages << EFI_PAGE_SHIFT;
  
@@@ -371,5 -373,5 +371,5 @@@ bool efi_reboot_required(void
  
  bool efi_poweroff_required(void)
  {
-       return !!acpi_gbl_reduced_hardware;
+       return acpi_gbl_reduced_hardware || acpi_no_s5;
  }
This page took 0.129889 seconds and 4 git commands to generate.