1. 18 Feb, 2013 18 commits
  2. 17 Feb, 2013 1 commit
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · fdbe0946
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq / intel_pstate: Add kernel command line option disable intel_pstate.
        cpufreq / intel_pstate: Change to disallow module build
      fdbe0946
  3. 15 Feb, 2013 8 commits
    • Dirk Brandewie's avatar
      cpufreq / intel_pstate: Add kernel command line option disable intel_pstate. · 6be26498
      Dirk Brandewie authored
      When intel_pstate is configured into the kernel it will become the
      preferred scaling driver for processors that it supports.  Allow the
      user to override this by adding:
         intel_pstate=disable
      on the kernel command line.
      Signed-off-by: default avatarDirk Brandewie <dirk.j.brandewie@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      6be26498
    • Dirk Brandewie's avatar
      cpufreq / intel_pstate: Change to disallow module build · da0d9fda
      Dirk Brandewie authored
      Load order is important in order for intel_pstate to take over as the
      default scaling driver from acpi-cpufreq.
      
      If both are built-in, acpi-cpufreq uses late_initcall() and
      intel_pstate uses device_initcall() so it will be able to register as
      the scaling before acpi-cpufreq for the processors supported by
      intel_pstate.
      
      If acpi-cpufreq is built as a module then intel_pstate still gets
      first option to become the scaling driver.
      Signed-off-by: default avatarDirk Brandewie <dirk.j.brandewie@intel.com>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      da0d9fda
    • Rafael J. Wysocki's avatar
      Merge branch 'next/cpufreq-exynos' of... · 60a406d1
      Rafael J. Wysocki authored
      Merge branch 'next/cpufreq-exynos' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung
      
      * 'next/cpufreq-exynos' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
        cpufreq: exynos: Fix hang in pm handler due to frequency mismatch
        cpufreq: exynos: Initialize return variable
        cpufreq: exynos: Fix unsigned variable being checked for negative value
        cpufreq: exynos: Get booting freq value in exynos_cpufreq_init
        cpufreq: exynos: Show list of available frequencies
        cpufreq: exynos: Add missing static
        cpufreq: exynos: Split exynos_target function into two functions
        cpufreq: exynos: Use APLL_FREQ macro for cpu divider value
        cpufreq: exynos: Check old & new frequency early
        cpufreq: exynos: Remove unused variable & IS_ERR
      60a406d1
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · 4419fbd4
      Rafael J. Wysocki authored
      * pm-cpufreq: (55 commits)
        cpufreq / intel_pstate: Fix 32 bit build
        cpufreq: conservative: Fix typos in comments
        cpufreq: ondemand: Fix typos in comments
        cpufreq: exynos: simplify .init() for setting policy->cpus
        cpufreq: kirkwood: Add a cpufreq driver for Marvell Kirkwood SoCs
        cpufreq/x86: Add P-state driver for sandy bridge.
        cpufreq_stats: do not remove sysfs files if frequency table is not present
        cpufreq: Do not track governor name for scaling drivers with internal governors.
        cpufreq: Only call cpufreq_out_of_sync() for driver that implement cpufreq_driver.target()
        cpufreq: Retrieve current frequency from scaling drivers with internal governors
        cpufreq: Fix locking issues
        cpufreq: Create a macro for unlock_policy_rwsem{read,write}
        cpufreq: Remove unused HOTPLUG_CPU code
        cpufreq: governors: Fix WARN_ON() for multi-policy platforms
        cpufreq: ondemand: Replace down_differential tuner with adj_up_threshold
        cpufreq / stats: Get rid of CPUFREQ_STATDEVICE_ATTR
        cpufreq: Don't check cpu_online(policy->cpu)
        cpufreq: add imx6q-cpufreq driver
        cpufreq: Don't remove sysfs link for policy->cpu
        cpufreq: Remove unnecessary use of policy->shared_type
        ...
      4419fbd4
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-tools' · 95ecb407
      Rafael J. Wysocki authored
      * pm-tools:
        ACPI tools / acpidump: must be run as root - install it into /usr/sbin
      95ecb407
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-assorted' · 7113fe74
      Rafael J. Wysocki authored
      * pm-assorted:
        suspend: enable freeze timeout configuration through sys
        ACPI: enable ACPI SCI during suspend
        PM: Introduce suspend state PM_SUSPEND_FREEZE
        PM / Runtime: Add new helper function: pm_runtime_active()
        PM / tracing: remove deprecated power trace API
        PM: don't use [delayed_]work_pending()
        PM / Domains: don't use [delayed_]work_pending()
      7113fe74
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-assorted' · a68d3532
      Rafael J. Wysocki authored
      * acpi-assorted:
        ACPI: Add DMI entry for Sony VGN-FW41E_H
        ACPI: fix obsolete comment in custom_method.c
        ACPI / thermal: Use mode to enable/disable kernel thermal processing
        ACPI thermal: remove unnecessary newline from exception message
        ACPI sysfs: remove unnecessary newline from exception
        ACPI video: remove unnecessary newline from error messages
        ACPI: SRAT: report non-volatile memory in debug
        ACPI: Rework acpi_get_child() to be more efficient
      a68d3532
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-cleanup' · e8f71df7
      Rafael J. Wysocki authored
      * acpi-cleanup: (21 commits)
        ACPI / hotplug: Fix concurrency issues and memory leaks
        ACPI: Remove the use of CONFIG_ACPI_CONTAINER_MODULE
        ACPI / scan: Full transition to D3cold in acpi_device_unregister()
        ACPI / scan: Make acpi_bus_hot_remove_device() acquire the scan lock
        ACPI: Drop the container.h header file
        ACPI / Documentation: refer to correct file for acpi_platform_device_ids[] table
        ACPI / scan: Make container driver use struct acpi_scan_handler
        ACPI / scan: Remove useless #ifndef from acpi_eject_store()
        ACPI: Unbind ACPI drv when probe failed
        ACPI: sysfs eject support for ACPI scan handlers
        ACPI / scan: Follow priorities of IDs when matching scan handlers
        ACPI / PCI: pci_slot: replace printk(KERN_xxx) with pr_xxx()
        ACPI / dock: Fix acpi_bus_get_device() check in drivers/acpi/dock.c
        ACPI / scan: Clean up acpi_bus_get_parent()
        ACPI / platform: Use struct acpi_scan_handler for creating devices
        ACPI / PCI: Make PCI IRQ link driver use struct acpi_scan_handler
        ACPI / PCI: Make PCI root driver use struct acpi_scan_handler
        ACPI / scan: Introduce struct acpi_scan_handler
        ACPI / scan: Make scanning of fixed devices follow the general scheme
        ACPI: Drop device start operation that is not used
        ...
      e8f71df7
  4. 13 Feb, 2013 13 commits
    • Len Brown's avatar
      tools/power turbostat: display SMI count by default · 1ed51011
      Len Brown authored
      The SMI counter is popular -- so display it by default
      rather than requiring an option.  What the heck,
      we've blown the 80 column budget on many systems already...
      
      Note that the value displayed is the delta
      during the measurement interval.
      The absolute value of the counter can still be seen with
      the generic 32-bit MSR option, ie.  -m 0x34
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      1ed51011
    • Len Brown's avatar
      intel_idle: export both C1 and C1E · 32e95180
      Len Brown authored
      Here we disable HW promotion of C1 to C1E
      and export both C1 and C1E and distinct C-states.
      
      This allows a cpuidle governor to choose a lower latency
      C-state than C1E when necessary to satisfy performance
      and QOS constraints -- and still save power versus polling.
      This also corrects the erroneous latency previously reported
      for C1E -- it is 10usec, not 1usec.
      
      Note that if you use "intel_idle.max_cstate=N",
      then you must increment N by 1 to get the same behavior
      after this change.
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      32e95180
    • Rafael J. Wysocki's avatar
      ACPI / hotplug: Fix concurrency issues and memory leaks · 3757b948
      Rafael J. Wysocki authored
      This changeset is aimed at fixing a few different but related
      problems in the ACPI hotplug infrastructure.
      
      First of all, since notify handlers may be run in parallel with
      acpi_bus_scan(), acpi_bus_trim() and acpi_bus_hot_remove_device()
      and some of them are installed for ACPI handles that have no struct
      acpi_device objects attached (i.e. before those objects are created),
      those notify handlers have to take acpi_scan_lock to prevent races
      from taking place (e.g. a struct acpi_device is found to be present
      for the given ACPI handle, but right after that it is removed by
      acpi_bus_trim() running in parallel to the given notify handler).
      Moreover, since some of them call acpi_bus_scan() and
      acpi_bus_trim(), this leads to the conclusion that acpi_scan_lock
      should be acquired by the callers of these two funtions rather by
      these functions themselves.
      
      For these reasons, make all notify handlers that can handle device
      addition and eject events take acpi_scan_lock and remove the
      acpi_scan_lock locking from acpi_bus_scan() and acpi_bus_trim().
      Accordingly, update all of their users to make sure that they
      are always called under acpi_scan_lock.
      
      Furthermore, since eject operations are carried out asynchronously
      with respect to the notify events that trigger them, with the help
      of acpi_bus_hot_remove_device(), even if notify handlers take the
      ACPI scan lock, it still is possible that, for example,
      acpi_bus_trim() will run between acpi_bus_hot_remove_device() and
      the notify handler that scheduled its execution and that
      acpi_bus_trim() will remove the device node passed to
      acpi_bus_hot_remove_device() for ejection.  In that case, the struct
      acpi_device object obtained by acpi_bus_hot_remove_device() will be
      invalid and not-so-funny things will ensue.  To protect agaist that,
      make the users of acpi_bus_hot_remove_device() run get_device() on
      ACPI device node objects that are about to be passed to it and make
      acpi_bus_hot_remove_device() run put_device() on them and check if
      their ACPI handles are not NULL (make acpi_device_unregister() clear
      the device nodes' ACPI handles for that check to work).
      
      Finally, observe that acpi_os_hotplug_execute() actually can fail,
      in which case its caller ought to free memory allocated for the
      context object to prevent leaks from happening.  It also needs to
      run put_device() on the device node that it ran get_device() on
      previously in that case.  Modify the code accordingly.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarYinghai Lu <yinghai@kernel.org>
      3757b948
    • Toshi Kani's avatar
      ACPI: Remove the use of CONFIG_ACPI_CONTAINER_MODULE · 64fd7401
      Toshi Kani authored
      config ACPI_CONTAINER has been changed to bool (y/n), and its
      module option is no longer valid.  So, remove the use of
      CONFIG_ACPI_CONTAINER_MODULE.
      Signed-off-by: default avatarToshi Kani <toshi.kani@hp.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      64fd7401
    • Rafael J. Wysocki's avatar
      ACPI / scan: Full transition to D3cold in acpi_device_unregister() · 0aa120a0
      Rafael J. Wysocki authored
      In order to drop reference counts of all power resources used by an
      ACPI device node being removed, acpi_device_unregister() calls
      acpi_power_transition(device, ACPI_STATE_D3_COLD), which effectively
      transitions the device node into D3cold if it uses any power
      resources.  However, for some device nodes it may not be appropriate
      to remove power from them entirely before putting them into D3hot
      before.  On the other hand, executing _PS3 for devices that don't
      use power resources before removing them shouldn't really hurt.
      In fact, that is done by acpi_bus_hot_remove_device(), but this is
      not the right place to do it, because the bus trimming may have
      caused power to be removed from the device node in question already
      before.
      
      For these reasons, make acpi_device_unregister() carry out full
      power-off transition for all device nodes supporting that and remove
      the direct evaluation of _PS3 from acpi_bus_hot_remove_device().
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0aa120a0
    • Rafael J. Wysocki's avatar
      ACPI / scan: Make acpi_bus_hot_remove_device() acquire the scan lock · f058cdf4
      Rafael J. Wysocki authored
      The ACPI scan lock has been introduced to prevent acpi_bus_scan()
      and acpi_bus_trim() from running in parallel with each other for
      overlapping ACPI namespace scopes.  However, it is not sufficient
      to do that, because if acpi_bus_scan() is run (for an overlapping
      namespace scope) right after the acpi_bus_trim() in
      acpi_bus_hot_remove_device(), the subsequent eject will remove
      devices without removing the corresponding struct acpi_device
      objects (and possibly companion "physical" device objects).
      Therefore acpi_bus_hot_remove_device() has to acquire the scan
      lock before carrying out the bus trimming and hold it through
      the evaluation of _EJ0, so make that happen.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
      f058cdf4
    • Rafael J. Wysocki's avatar
      ACPI: Drop the container.h header file · 87d4a4da
      Rafael J. Wysocki authored
      The include/acpi/container.h only contains a definition of a
      structure that is not used any more, so drop it entirely.
      
      Similar change was proposed earlier by Toshi Kani.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
      87d4a4da
    • Mika Westerberg's avatar
      ACPI / Documentation: refer to correct file for acpi_platform_device_ids[] table · e253673e
      Mika Westerberg authored
      When the ACPI platform device code was converted to the new ACPI scan
      handler facility, the the acpi_platform_device_ids[] was moved to
      drivers/acpi/acpi_platform.c. Update the documentation accordingly.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      e253673e
    • Rafael J. Wysocki's avatar
      ACPI / scan: Make container driver use struct acpi_scan_handler · 737f1a9f
      Rafael J. Wysocki authored
      Make the ACPI container driver use struct acpi_scan_handler for
      representing the object used to initialize ACPI containers and remove
      the ACPI driver structure used previously and the data structures
      created by it, since in fact they were not used for any purpose.
      
      This simplifies the code and reduces the kernel's memory footprint by
      avoiding the registration of a struct device_driver object with the
      driver core and creation of its sysfs directory which is unnecessary.
      
      In addition to that, make the namespace walk callback used for
      installing the notify handlers for ACPI containers more
      straightforward.
      
      This change includes fixes from Toshi Kani.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarYinghai Lu <yinghai@kernel.org>
      Acked-by: default avatarYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Tested-by: default avatarYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Reviewed-by: default avatarToshi Kani <toshi.kani@hp.com>
      Tested-by: default avatarToshi Kani <toshi.kani@hp.com>
      737f1a9f
    • Rafael J. Wysocki's avatar
      ACPI / scan: Remove useless #ifndef from acpi_eject_store() · 38475b3b
      Rafael J. Wysocki authored
      Since the FORCE_EJECT symbol is never defined, the
      #ifndef FORCE_EJECT in acpi_eject_store() is always true, so drop it.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Tested-by: default avatarYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Reviewed-by: default avatarToshi Kani <toshi.kani@hp.com>
      Tested-by: default avatarToshi Kani <toshi.kani@hp.com>
      38475b3b
    • Toshi Kani's avatar
      ACPI: Unbind ACPI drv when probe failed · 5f27ee8e
      Toshi Kani authored
      When acpi_device_install_notify_handler() failed in acpi_device_probe(),
      it calls acpi_drv->ops.remove() and fails the probe.  However, the ACPI
      driver is left bound to the acpi_device.  Fix it by clearing the driver
      and driver_data fields.
      Signed-off-by: default avatarToshi Kani <toshi.kani@hp.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      5f27ee8e
    • Toshi Kani's avatar
      ACPI: sysfs eject support for ACPI scan handlers · ce7685ad
      Toshi Kani authored
      Changed sysfs eject, acpi_eject_store(), so that it doesn't return
      error codes for devices nodes with ACPI scan handlers attached and
      no ACPI drivers.
      
      [rjw: Changelog]
      Signed-off-by: default avatarToshi Kani <toshi.kani@hp.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      ce7685ad
    • Rafael J. Wysocki's avatar
      ACPI / scan: Follow priorities of IDs when matching scan handlers · 87b85b3c
      Rafael J. Wysocki authored
      The IDs of ACPI device nodes stored in their pnp.ids member arrays
      are sorted by decreasing priority (i.e. the highest-priority ID is
      the first entry).  This means that when matching scan handlers to
      device nodes, the namespace scanning code should walk the list of
      scan handlers for each device node ID instead of walking the list
      of device node IDs for each handler (the latter causes the first
      handler matching any of the device node IDs to be chosen, although
      there may be another handler matching an ID of a higher priority
      which should be preferred).  Make the code follow this observation.
      
      This change has been suggested and justified by Toshi Kani.
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
      87b85b3c