Merge tag 'pm+acpi-3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 4 Jun 2014 15:57:16 +0000 (08:57 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 4 Jun 2014 15:57:16 +0000 (08:57 -0700)
Pull ACPI and power management updates from Rafael Wysocki:
 "ACPICA is the leader this time (63 commits), followed by cpufreq (28
  commits), devfreq (15 commits), system suspend/hibernation (12
  commits), ACPI video and ACPI device enumeration (10 commits each).

  We have no major new features this time, but there are a few
  significant changes of how things work.  The most visible one will
  probably be that we are now going to create platform devices rather
  than PNP devices by default for ACPI device objects with _HID.  That
  was long overdue and will be really necessary to be able to use the
  same drivers for the same hardware blocks on ACPI and DT-based systems
  going forward.  We're not expecting fallout from this one (as usual),
  but it's something to watch nevertheless.

  The second change having a chance to be visible is that ACPI video
  will now default to using native backlight rather than the ACPI
  backlight interface which should generally help systems with broken
  Win8 BIOSes.  We're hoping that all problems with the native backlight
  handling that we had previously have been addressed and we are in a
  good enough shape to flip the default, but this change should be easy
  enough to revert if need be.

  In addition to that, the system suspend core has a new mechanism to
  allow runtime-suspended devices to stay suspended throughout system
  suspend/resume transitions if some extra conditions are met
  (generally, they are related to coordination within device hierarchy).
  However, enabling this feature requires cooperation from the bus type
  layer and for now it has only been implemented for the ACPI PM domain
  (used by ACPI-enumerated platform devices mostly today).

  Also, the acpidump utility that was previously shipped as a separate
  tool will now be provided by the upstream ACPICA along with the rest
  of ACPICA code, which will allow it to be more up to date and better
  supported, and we have one new cpuidle driver (ARM clps711x).

  The rest is improvements related to certain specific use cases,
  cleanups and fixes all over the place.

  Specifics:

   - ACPICA update to upstream version 20140424.  That includes a number
     of fixes and improvements related to things like GPE handling,
     table loading, headers, memory mapping and unmapping, DSDT/SSDT
     overriding, and the Unload() operator.  The acpidump utility from
     upstream ACPICA is included too.  From Bob Moore, Lv Zheng, David
     Box, David Binderman, and Colin Ian King.

   - Fixes and cleanups related to ACPI video and backlight interfaces
     from Hans de Goede.  That includes blacklist entries for some new
     machines and using native backlight by default.

   - ACPI device enumeration changes to create platform devices rather
     than PNP devices for ACPI device objects with _HID by default.  PNP
     devices will still be created for the ACPI device object with
     device IDs corresponding to real PNP devices, so that change should
     not break things left and right, and we're expecting to see more
     and more ACPI-enumerated platform devices in the future.  From
     Zhang Rui and Rafael J Wysocki.

   - Updates for the ACPI LPSS (Low-Power Subsystem) driver allowing it
     to handle system suspend/resume on Asus T100 correctly.  From
     Heikki Krogerus and Rafael J Wysocki.

   - PM core update introducing a mechanism to allow runtime-suspended
     devices to stay suspended over system suspend/resume transitions if
     certain additional conditions related to coordination within device
     hierarchy are met.  Related PM documentation update and ACPI PM
     domain support for the new feature.  From Rafael J Wysocki.

   - Fixes and improvements related to the "freeze" sleep state.  They
     affect several places including cpuidle, PM core, ACPI core, and
     the ACPI battery driver.  From Rafael J Wysocki and Zhang Rui.

   - Miscellaneous fixes and updates of the ACPI core from Aaron Lu,
     Bjørn Mork, Hanjun Guo, Lan Tianyu, and Rafael J Wysocki.

   - Fixes and cleanups for the ACPI processor and ACPI PAD (Processor
     Aggregator Device) drivers from Baoquan He, Manuel Schölling, Tony
     Camuso, and Toshi Kani.

   - System suspend/resume optimization in the ACPI battery driver from
     Lan Tianyu.

   - OPP (Operating Performance Points) subsystem updates from Chander
     Kashyap, Mark Brown, and Nishanth Menon.

   - cpufreq core fixes, updates and cleanups from Srivatsa S Bhat,
     Stratos Karafotis, and Viresh Kumar.

   - Updates, fixes and cleanups for the Tegra, powernow-k8, imx6q,
     s5pv210, nforce2, and powernv cpufreq drivers from Brian Norris,
     Jingoo Han, Paul Bolle, Philipp Zabel, Stratos Karafotis, and
     Viresh Kumar.

   - intel_pstate driver fixes and cleanups from Dirk Brandewie, Doug
     Smythies, and Stratos Karafotis.

   - Enabling the big.LITTLE cpufreq driver on arm64 from Mark Brown.

   - Fix for the cpuidle menu governor from Chander Kashyap.

   - New ARM clps711x cpuidle driver from Alexander Shiyan.

   - Hibernate core fixes and cleanups from Chen Gang, Dan Carpenter,
     Fabian Frederick, Pali Rohár, and Sebastian Capella.

   - Intel RAPL (Running Average Power Limit) driver updates from Jacob
     Pan.

   - PNP subsystem updates from Bjorn Helgaas and Fabian Frederick.

   - devfreq core updates from Chanwoo Choi and Paul Bolle.

   - devfreq updates for exynos4 and exynos5 from Chanwoo Choi and
     Bartlomiej Zolnierkiewicz.

   - turbostat tool fix from Jean Delvare.

   - cpupower tool updates from Prarit Bhargava, Ramkumar Ramachandra
     and Thomas Renninger.

   - New ACPI ec_access.c tool for poking at the EC in a safe way from
     Thomas Renninger"

* tag 'pm+acpi-3.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (187 commits)
  ACPICA: Namespace: Remove _PRP method support.
  intel_pstate: Improve initial busy calculation
  intel_pstate: add sample time scaling
  intel_pstate: Correct rounding in busy calculation
  intel_pstate: Remove C0 tracking
  PM / hibernate: fixed typo in comment
  ACPI: Fix x86 regression related to early mapping size limitation
  ACPICA: Tables: Add mechanism to control early table checksum verification.
  ACPI / scan: use platform bus type by default for _HID enumeration
  ACPI / scan: always register ACPI LPSS scan handler
  ACPI / scan: always register memory hotplug scan handler
  ACPI / scan: always register container scan handler
  ACPI / scan: Change the meaning of missing .attach() in scan handlers
  ACPI / scan: introduce platform_id device PNP type flag
  ACPI / scan: drop unsupported serial IDs from PNP ACPI scan handler ID list
  ACPI / scan: drop IDs that do not comply with the ACPI PNP ID rule
  ACPI / PNP: use device ID list for PNPACPI device enumeration
  ACPI / scan: .match() callback for ACPI scan handlers
  ACPI / battery: wakeup the system only when necessary
  power_supply: allow power supply devices registered w/o wakeup source
  ...

1  2 
Documentation/kernel-parameters.txt
MAINTAINERS
drivers/acpi/acpi_lpss.c
drivers/clk/Makefile
drivers/cpufreq/Kconfig.arm
drivers/cpufreq/exynos-cpufreq.c
drivers/cpufreq/exynos-cpufreq.h
drivers/cpuidle/Kconfig.arm
drivers/cpuidle/Makefile

Simple merge
diff --cc MAINTAINERS
Simple merge
index d79c6d7f598e618a028187a130dbe94efa238823,51069b2605184261ddc8034d87c72cb1113fd552..63407d264885a200db03d8b152d53efcfae13cbe
@@@ -174,21 -194,20 +194,21 @@@ static const struct acpi_device_id acpi
        { "INT33C7", },
  
        /* BayTrail LPSS devices */
-       { "80860F09", (unsigned long)&byt_pwm_dev_desc },
-       { "80860F0A", (unsigned long)&byt_uart_dev_desc },
-       { "80860F0E", (unsigned long)&byt_spi_dev_desc },
-       { "80860F14", (unsigned long)&byt_sdio_dev_desc },
-       { "80860F41", (unsigned long)&byt_i2c_dev_desc },
+       { "80860F09", LPSS_ADDR(byt_pwm_dev_desc) },
+       { "80860F0A", LPSS_ADDR(byt_uart_dev_desc) },
+       { "80860F0E", LPSS_ADDR(byt_spi_dev_desc) },
+       { "80860F14", LPSS_ADDR(byt_sdio_dev_desc) },
+       { "80860F41", LPSS_ADDR(byt_i2c_dev_desc) },
        { "INT33B2", },
 +      { "INT33FC", },
  
-       { "INT3430", (unsigned long)&lpt_dev_desc },
-       { "INT3431", (unsigned long)&lpt_dev_desc },
-       { "INT3432", (unsigned long)&lpt_dev_desc },
-       { "INT3433", (unsigned long)&lpt_dev_desc },
-       { "INT3434", (unsigned long)&lpt_uart_dev_desc },
-       { "INT3435", (unsigned long)&lpt_uart_dev_desc },
-       { "INT3436", (unsigned long)&lpt_sdio_dev_desc },
+       { "INT3430", LPSS_ADDR(lpt_dev_desc) },
+       { "INT3431", LPSS_ADDR(lpt_dev_desc) },
+       { "INT3432", LPSS_ADDR(lpt_i2c_dev_desc) },
+       { "INT3433", LPSS_ADDR(lpt_i2c_dev_desc) },
+       { "INT3434", LPSS_ADDR(lpt_uart_dev_desc) },
+       { "INT3435", LPSS_ADDR(lpt_uart_dev_desc) },
+       { "INT3436", LPSS_ADDR(lpt_sdio_dev_desc) },
        { "INT3437", },
  
        { }
Simple merge
Simple merge
index 348c8bafe436247d8368989af5e9a35e3bb33057,c3e55aa28cf87de7da5bbad69ff74f2385578f84..1e0ec57bf6e35074ac00ff0b58252e2e7077d7e0
@@@ -162,22 -163,16 +162,24 @@@ static int exynos_cpufreq_probe(struct 
        if (!exynos_info)
                return -ENOMEM;
  
 -      if (soc_is_exynos4210())
+       exynos_info->dev = &pdev->dev;
 +      if (of_machine_is_compatible("samsung,exynos4210")) {
 +              exynos_info->type = EXYNOS_SOC_4210;
                ret = exynos4210_cpufreq_init(exynos_info);
 -      else if (soc_is_exynos4212() || soc_is_exynos4412())
 +      } else if (of_machine_is_compatible("samsung,exynos4212")) {
 +              exynos_info->type = EXYNOS_SOC_4212;
 +              ret = exynos4x12_cpufreq_init(exynos_info);
 +      } else if (of_machine_is_compatible("samsung,exynos4412")) {
 +              exynos_info->type = EXYNOS_SOC_4412;
                ret = exynos4x12_cpufreq_init(exynos_info);
 -      else if (soc_is_exynos5250())
 +      } else if (of_machine_is_compatible("samsung,exynos5250")) {
 +              exynos_info->type = EXYNOS_SOC_5250;
                ret = exynos5250_cpufreq_init(exynos_info);
 -      else
 -              return 0;
 +      } else {
 +              pr_err("%s: Unknown SoC type\n", __func__);
 +              return -ENODEV;
 +      }
  
        if (ret)
                goto err_vdd_arm;
index 51af42e1b7feb6eb2f9499bb63f28ca9944741cf,b72ff10a040ef1ddebf73d7d57aec7eddb1b94ca..9f2062a7cc02ea2500be4f1d54218f0b78d6c127
@@@ -41,7 -34,7 +41,8 @@@ struct apll_freq 
  };
  
  struct exynos_dvfs_info {
 +      enum exynos_soc_type type;
+       struct device   *dev;
        unsigned long   mpll_freq_khz;
        unsigned int    pll_safe_idx;
        struct clk      *cpu_clk;
Simple merge
index cd3ab59f84614d561d3fba325d2c82b86f40984a,534fff5758235cd406130d84576fc8894a8a0a76..9b5b2b560d705d27b251065a01b16a6809710099
@@@ -7,8 -7,8 +7,9 @@@ obj-$(CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLE
  
  ##################################################################################
  # ARM SoC drivers
 +obj-$(CONFIG_ARM_ARMADA_370_XP_CPUIDLE) += cpuidle-armada-370-xp.o
  obj-$(CONFIG_ARM_BIG_LITTLE_CPUIDLE)  += cpuidle-big_little.o
+ obj-$(CONFIG_ARM_CLPS711X_CPUIDLE)    += cpuidle-clps711x.o
  obj-$(CONFIG_ARM_HIGHBANK_CPUIDLE)    += cpuidle-calxeda.o
  obj-$(CONFIG_ARM_KIRKWOOD_CPUIDLE)    += cpuidle-kirkwood.o
  obj-$(CONFIG_ARM_ZYNQ_CPUIDLE)                += cpuidle-zynq.o