1. 09 Sep, 2013 1 commit
    • Rafael J. Wysocki's avatar
      ACPI / hotplug / PCI: Avoid parent bus rescans on spurious device checks · a47d8c8e
      Rafael J. Wysocki authored
      In the current ACPIPHP notify handler we always go directly for a
      rescan of the parent bus if we get a device check notification for
      a device that is not a bridge.  However, this obviously is
      overzealous if nothing really changes, because this way we may rescan
      the whole PCI hierarchy pretty much in vain.
      
      That happens on Alex Williamson's machine whose ACPI tables contain
      device objects that are supposed to coresspond to PCIe root ports,
      but those ports aren't physically present (or at least they aren't
      visible in the PCI config space to us).  The BIOS generates multiple
      device check notifies for those objects during boot and for each of
      them we go straight for the parent bus rescan, but the parent bus is
      the root bus in this particular case.  In consequence, we rescan the
      whole PCI bus from the top several times in a row, which is
      completely unnecessary, increases boot time by 50% (after previous
      fixes) and generates excess dmesg output from the PCI subsystem.
      
      Fix the problem by checking if we can find anything new in the
      slot corresponding to the device we've got a device check notify
      for and doing nothig if that's not the case.
      
      The spec (ACPI 5.0, Section 5.6.6) appears to mandate this behavior,
      as it says:
      
        Device Check. Used to notify OSPM that the device either appeared
        or disappeared. If the device has appeared, OSPM will re-enumerate
        from the parent. If the device has disappeared, OSPM will
        invalidate the state of the device. OSPM may optimize out
        re-enumeration.
      
      Therefore, according to the spec, we are free to do nothing if
      nothing changes.
      
      References: https://bugzilla.kernel.org/show_bug.cgi?id=60865Reported-and-tested-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a47d8c8e
  2. 07 Sep, 2013 2 commits
  3. 05 Sep, 2013 1 commit
    • Rafael J. Wysocki's avatar
      ACPI / hotplug / PCI: Don't trim devices before scanning the namespace · 89ec2f2e
      Rafael J. Wysocki authored
      In acpiphp_bus_add() we first remove device objects corresponding to
      the given handle and the ACPI namespace branch below it, which are
      then re-created by acpi_bus_scan().  This used to be done to clean
      up after surprise removals, but now we do the cleanup through
      trim_stale_devices() which checks if the devices in question are
      actually gone before removing them, so the device hierarchy trimming
      in acpiphp_bus_add() is not necessary any more and, moreover, it may
      lead to problems if it removes device objects corresponding to
      devices that are actually present.
      
      For this reason, remove the leftover acpiphp_bus_trim() from
      acpiphp_bus_add().
      Reported-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      89ec2f2e
  4. 30 Aug, 2013 4 commits
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · f41b8312
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq: Don't use smp_processor_id() in preemptible context
        cpufreq: governor: Fix typos in comments
        cpufreq: governors: Remove duplicate check of target freq in supported range
        cpufreq: Fix timer/workqueue corruption due to double queueing
        cpufreq: imx6q: Fix clock enable balance
        cpufreq: tegra: fix the wrong clock name
      f41b8312
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpuidle' · 499aa70a
      Rafael J. Wysocki authored
      * pm-cpuidle:
        cpuidle: coupled: fix race condition between pokes and safe state
        cpuidle: coupled: abort idle if pokes are pending
        cpuidle: coupled: disable interrupts after entering safe state
      499aa70a
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-hotplug' · 7bc583d1
      Rafael J. Wysocki authored
      * acpi-hotplug:
        ACPI / hotplug: Remove containers synchronously
        driver core / ACPI: Avoid device hot remove locking issues
      7bc583d1
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-assorted' · da48afb2
      Rafael J. Wysocki authored
      * acpi-assorted:
        ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT
        ACPI / thermal: Add check of "_TZD" availability and evaluating result
      da48afb2
  5. 29 Aug, 2013 6 commits
    • Stephen Boyd's avatar
      cpufreq: Don't use smp_processor_id() in preemptible context · 69320783
      Stephen Boyd authored
      Workqueues are preemptible even if works are queued on them with
      queue_work_on(). Let's use raw_smp_processor_id() here to silence
      the warning.
      
      BUG: using smp_processor_id() in preemptible [00000000] code: kworker/3:2/674
      caller is gov_queue_work+0x28/0xb0
      CPU: 0 PID: 674 Comm: kworker/3:2 Tainted: G        W    3.10.0 #30
      Workqueue: events od_dbs_timer
      [<c010c178>] (unwind_backtrace+0x0/0x11c) from [<c0109dec>] (show_stack+0x10/0x14)
      [<c0109dec>] (show_stack+0x10/0x14) from [<c03885a4>] (debug_smp_processor_id+0xbc/0xf0)
      [<c03885a4>] (debug_smp_processor_id+0xbc/0xf0) from [<c0635864>] (gov_queue_work+0x28/0xb0)
      [<c0635864>] (gov_queue_work+0x28/0xb0) from [<c0635618>] (od_dbs_timer+0x108/0x134)
      [<c0635618>] (od_dbs_timer+0x108/0x134) from [<c01aa8f8>] (process_one_work+0x25c/0x444)
      [<c01aa8f8>] (process_one_work+0x25c/0x444) from [<c01aaf88>] (worker_thread+0x200/0x344)
      [<c01aaf88>] (worker_thread+0x200/0x344) from [<c01b03bc>] (kthread+0xa0/0xb0)
      [<c01b03bc>] (kthread+0xa0/0xb0) from [<c01061b8>] (ret_from_fork+0x14/0x3c)
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      69320783
    • Colin Cross's avatar
      cpuidle: coupled: fix race condition between pokes and safe state · 9e19b73c
      Colin Cross authored
      The coupled cpuidle waiting loop clears pending pokes before
      entering the safe state.  If a poke arrives just before the
      pokes are cleared, but after the while loop condition checks,
      the poke will be lost and the cpu will stay in the safe state
      until another interrupt arrives.  This may cause the cpu that
      sent the poke to spin in the ready loop with interrupts off
      until another cpu receives an interrupt, and if no other cpus
      have interrupts routed to them it can spin forever.
      
      Change the return value of cpuidle_coupled_clear_pokes to
      return if a poke was cleared, and move the need_resched()
      checks into the callers.  In the waiting loop, if
      a poke was cleared restart the loop to repeat the while
      condition checks.
      Reported-by: default avatarNeil Zhang <zhangwm@marvell.com>
      Signed-off-by: default avatarColin Cross <ccross@android.com>
      Cc: 3.6+ <stable@vger.kernel.org> # 3.6+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      9e19b73c
    • Colin Cross's avatar
      cpuidle: coupled: abort idle if pokes are pending · f983827b
      Colin Cross authored
      Joseph Lo <josephl@nvidia.com> reported a lockup on Tegra20 caused
      by a race condition in coupled cpuidle.  When two or more cpus
      enter idle at the same time, the first cpus to arrive may go to the
      ready loop without processing pending pokes from the last cpu to
      arrive.
      
      This patch adds a check for pending pokes once all cpus have been
      synchronized in the ready loop and resets the coupled state and
      retries if any cpus failed to handle their pending poke.
      
      Retrying on all cpus may trigger the same issue again, so this patch
      also adds a check to ensure that each cpu has received at least one
      poke between when it enters the waiting loop and when it moves on to
      the ready loop.
      Reported-and-tested-by: default avatarJoseph Lo <josephl@nvidia.com>
      Tested-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarColin Cross <ccross@android.com>
      Cc: 3.6+ <stable@vger.kernel.org> # 3.6+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f983827b
    • Colin Cross's avatar
      cpuidle: coupled: disable interrupts after entering safe state · 59e99856
      Colin Cross authored
      Calling cpuidle_enter_state is expected to return with interrupts
      enabled, but interrupts must be disabled before starting the
      ready loop synchronization stage.  Call local_irq_disable after
      each call to cpuidle_enter_state for the safe state.
      Tested-by: default avatarStephen Warren <swarren@nvidia.com>
      Signed-off-by: default avatarColin Cross <ccross@android.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      59e99856
    • Rafael J. Wysocki's avatar
      ACPI / hotplug: Remove containers synchronously · f943db40
      Rafael J. Wysocki authored
      The current protocol for handling hot remove of containers is very
      fragile and causes acpi_eject_store() to acquire acpi_scan_lock
      which may deadlock with the removal of the device that it is called
      for (the reason is that device sysfs attributes cannot be removed
      while their callbacks are being executed and ACPI device objects
      are removed under acpi_scan_lock).
      
      The problem is related to the fact that containers are handled by
      acpi_bus_device_eject() in a special way, which is to emit an
      offline uevent instead of just removing the container.  Then, user
      space is expected to handle that uevent and use the container's
      "eject" attribute to actually remove it.  That is fragile, because
      user space may fail to complete the ejection (for example, by not
      using the container's "eject" attribute at all) leaving the BIOS
      kind of in a limbo.  Moreover, if the eject event is not signaled
      for a container itself, but for its parent device object (or
      generally, for an ancestor above it in the ACPI namespace), the
      container will be removed straight away without doing that whole
      dance.
      
      For this reason, modify acpi_bus_device_eject() to remove containers
      synchronously like any other objects (user space will get its uevent
      anyway in case it does some other things in response to it) and
      remove the eject_pending ACPI device flag that is not used any more.
      This way acpi_eject_store() doesn't have a reason to acquire
      acpi_scan_lock any more and one possible deadlock scenario goes
      away (plus the code is simplified a bit).
      Reported-and-tested-by: default avatarGu Zheng <guz.fnst@cn.fujitsu.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
      f943db40
    • Rafael J. Wysocki's avatar
      driver core / ACPI: Avoid device hot remove locking issues · 5e33bc41
      Rafael J. Wysocki authored
      device_hotplug_lock is held around the acpi_bus_trim() call in
      acpi_scan_hot_remove() which generally removes devices (it removes
      ACPI device objects at least, but it may also remove "physical"
      device objects through .detach() callbacks of ACPI scan handlers).
      Thus, potentially, device sysfs attributes are removed under that
      lock and to remove those attributes it is necessary to hold the
      s_active references of their directory entries for writing.
      
      On the other hand, the execution of a .show() or .store() callback
      from a sysfs attribute is carried out with that attribute's s_active
      reference held for reading.  Consequently, if any device sysfs
      attribute that may be removed from within acpi_scan_hot_remove()
      through acpi_bus_trim() has a .store() or .show() callback which
      acquires device_hotplug_lock, the execution of that callback may
      deadlock with the removal of the attribute.  [Unfortunately, the
      "online" device attribute of CPUs and memory blocks is one of them.]
      
      To avoid such deadlocks, make all of the sysfs attribute callbacks
      that need to lock device hotplug, for example store_online(), use
      a special function, lock_device_hotplug_sysfs(), to lock device
      hotplug and return the result of that function immediately if it is
      not zero.  This will cause the s_active reference of the directory
      entry in question to be released and the syscall to be restarted
      if device_hotplug_lock cannot be acquired.
      
      [show_online() actually doesn't need to lock device hotplug, but
      it is useful to serialize it with respect to device_offline() and
      device_online() for the same device (in case user space attempts to
      run them concurrently) which can be done with the help of
      device_lock().]
      Reported-by: default avatarYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Reported-and-tested-by: default avatarGu Zheng <guz.fnst@cn.fujitsu.com>
      Suggested-by: default avatarTejun Heo <tj@kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
      5e33bc41
  6. 28 Aug, 2013 5 commits
    • Stratos Karafotis's avatar
      cpufreq: governor: Fix typos in comments · c4afc410
      Stratos Karafotis authored
       - 'Governer' should be 'Governor'.
       - 'S' is used for Siemens (electrical conductance) in SI units,
         so use small 's' for seconds.
      Signed-off-by: default avatarStratos Karafotis <stratosk@semaphore.gr>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      c4afc410
    • Stratos Karafotis's avatar
      cpufreq: governors: Remove duplicate check of target freq in supported range · 934dac1e
      Stratos Karafotis authored
      Function __cpufreq_driver_target() checks if target_freq is within
      policy->min and policy->max range. generic_powersave_bias_target() also
      checks if target_freq is valid via a cpufreq_frequency_table_target()
      call. So, drop the unnecessary duplicate check in *_check_cpu().
      Signed-off-by: default avatarStratos Karafotis <stratosk@semaphore.gr>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      934dac1e
    • Stephen Boyd's avatar
      cpufreq: Fix timer/workqueue corruption due to double queueing · 3617f2ca
      Stephen Boyd authored
      When a CPU is hot removed we'll cancel all the delayed work items
      via gov_cancel_work(). Normally this will just cancels a delayed
      timer on each CPU that the policy is managing and the work won't
      run, but if the work is already running the workqueue code will
      wait for the work to finish before continuing to prevent the
      work items from re-queuing themselves like they normally do. This
      scheme will work most of the time, except for the case where the
      work function determines that it should adjust the delay for all
      other CPUs that the policy is managing. If this scenario occurs,
      the canceling CPU will cancel its own work but queue up the other
      CPUs works to run. For example:
      
       CPU0                                        CPU1
       ----                                        ----
       cpu_down()
        ...
        __cpufreq_remove_dev()
         cpufreq_governor_dbs()
          case CPUFREQ_GOV_STOP:
           gov_cancel_work(dbs_data, policy);
            cpu0 work is canceled
             timer is canceled
             cpu1 work is canceled                    <work runs>
             <waits for cpu1>                         od_dbs_timer()
                                                       gov_queue_work(*, *, true);
       						  cpu0 work queued
       						  cpu1 work queued
      						  cpu2 work queued
      						  ...
             cpu1 work is canceled
             cpu2 work is canceled
             ...
      
      At the end of the GOV_STOP case cpu0 still has a work queued to
      run although the code is expecting all of the works to be
      canceled. __cpufreq_remove_dev() will then proceed to
      re-initialize all the other CPUs works except for the CPU that is
      going down. The CPUFREQ_GOV_START case in cpufreq_governor_dbs()
      will trample over the queued work and debugobjects will spit out
      a warning:
      
      WARNING: at lib/debugobjects.c:260 debug_print_object+0x94/0xbc()
      ODEBUG: init active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x10
      Modules linked in:
      CPU: 0 PID: 1491 Comm: sh Tainted: G        W    3.10.0 #19
      [<c010c178>] (unwind_backtrace+0x0/0x11c) from [<c0109dec>] (show_stack+0x10/0x14)
      [<c0109dec>] (show_stack+0x10/0x14) from [<c01904cc>] (warn_slowpath_common+0x4c/0x6c)
      [<c01904cc>] (warn_slowpath_common+0x4c/0x6c) from [<c019056c>] (warn_slowpath_fmt+0x2c/0x3c)
      [<c019056c>] (warn_slowpath_fmt+0x2c/0x3c) from [<c0388a7c>] (debug_print_object+0x94/0xbc)
      [<c0388a7c>] (debug_print_object+0x94/0xbc) from [<c0388e34>] (__debug_object_init+0x2d0/0x340)
      [<c0388e34>] (__debug_object_init+0x2d0/0x340) from [<c019e3b0>] (init_timer_key+0x14/0xb0)
      [<c019e3b0>] (init_timer_key+0x14/0xb0) from [<c0635f78>] (cpufreq_governor_dbs+0x3e8/0x5f8)
      [<c0635f78>] (cpufreq_governor_dbs+0x3e8/0x5f8) from [<c06325a0>] (__cpufreq_governor+0xdc/0x1a4)
      [<c06325a0>] (__cpufreq_governor+0xdc/0x1a4) from [<c0633704>] (__cpufreq_remove_dev.isra.10+0x3b4/0x434)
      [<c0633704>] (__cpufreq_remove_dev.isra.10+0x3b4/0x434) from [<c08989f4>] (cpufreq_cpu_callback+0x60/0x80)
      [<c08989f4>] (cpufreq_cpu_callback+0x60/0x80) from [<c08a43c0>] (notifier_call_chain+0x38/0x68)
      [<c08a43c0>] (notifier_call_chain+0x38/0x68) from [<c01938e0>] (__cpu_notify+0x28/0x40)
      [<c01938e0>] (__cpu_notify+0x28/0x40) from [<c0892ad4>] (_cpu_down+0x7c/0x2c0)
      [<c0892ad4>] (_cpu_down+0x7c/0x2c0) from [<c0892d3c>] (cpu_down+0x24/0x40)
      [<c0892d3c>] (cpu_down+0x24/0x40) from [<c0893ea8>] (store_online+0x2c/0x74)
      [<c0893ea8>] (store_online+0x2c/0x74) from [<c04519d8>] (dev_attr_store+0x18/0x24)
      [<c04519d8>] (dev_attr_store+0x18/0x24) from [<c02a69d4>] (sysfs_write_file+0x100/0x148)
      [<c02a69d4>] (sysfs_write_file+0x100/0x148) from [<c0255c18>] (vfs_write+0xcc/0x174)
      [<c0255c18>] (vfs_write+0xcc/0x174) from [<c0255f70>] (SyS_write+0x38/0x64)
      [<c0255f70>] (SyS_write+0x38/0x64) from [<c0106120>] (ret_fast_syscall+0x0/0x30)
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      3617f2ca
    • Lan Tianyu's avatar
      ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT · 524f42fa
      Lan Tianyu authored
      The ECDT of ASUSTEK L4R doesn't provide correct command and data
      I/O ports.  The DSDT provides the correct information instead.
      
      For this reason, add this machine to quirk list for ECDT validation
      and use the EC information from the DSDT.
      
      [rjw: Changelog]
      References: https://bugzilla.kernel.org/show_bug.cgi?id=60765Reported-and-tested-by: default avatarDaniele Esposti <expo@expobrain.net>
      Signed-off-by: default avatarLan Tianyu <tianyu.lan@intel.com>
      Cc: All <stable@vger.kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      524f42fa
    • Lan Tianyu's avatar
      ACPI / thermal: Add check of "_TZD" availability and evaluating result · 668e0200
      Lan Tianyu authored
      Some machines don't provide _TZD, so check the availability of it
      before carrying out futher operations.
      
      If _TZD is present, also check the result of its evaluation.
      
      [rjw: Changelog]
      Signed-off-by: default avatarLan Tianyu <tianyu.lan@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      668e0200
  7. 27 Aug, 2013 1 commit
  8. 26 Aug, 2013 16 commits
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · 7a330a54
      Rafael J. Wysocki authored
      * pm-cpufreq: (60 commits)
        cpufreq: pmac32-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: pmac64-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: maple-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: arm_big_little: remove device tree parsing for cpu nodes
        cpufreq: kirkwood-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: spear-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: highbank-cpufreq: remove device tree parsing for cpu nodes
        cpufreq: cpufreq-cpu0: remove device tree parsing for cpu nodes
        cpufreq: imx6q-cpufreq: remove device tree parsing for cpu nodes
        drivers/bus: arm-cci: avoid parsing DT for cpu device nodes
        ARM: mvebu: remove device tree parsing for cpu nodes
        ARM: topology: remove hwid/MPIDR dependency from cpu_capacity
        of/device: add helper to get cpu device node from logical cpu index
        driver/core: cpu: initialize of_node in cpu's device struture
        ARM: DT/kernel: define ARM specific arch_match_cpu_phys_id
        of: move of_get_cpu_node implementation to DT core library
        powerpc: refactor of_get_cpu_node to support other architectures
        openrisc: remove undefined of_get_cpu_node declaration
        microblaze: remove undefined of_get_cpu_node declaration
        cpufreq: fix bad unlock balance on !CONFIG_SMP
        ...
      7a330a54
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpuidle' · c7878810
      Rafael J. Wysocki authored
      * pm-cpuidle: (25 commits)
        cpuidle: Change struct menu_device field types
        cpuidle: Add a comment warning about possible overflow
        cpuidle: Fix variable domains in get_typical_interval()
        cpuidle: Fix menu_device->intervals type
        cpuidle: CodingStyle: Break up multiple assignments on single line
        cpuidle: Check called function parameter in get_typical_interval()
        cpuidle: Rearrange code and comments in get_typical_interval()
        cpuidle: Ignore interval prediction result when timer is shorter
        cpuidle-kirkwood.c: simplify use of devm_ioremap_resource()
        cpuidle: kirkwood: Make kirkwood_cpuidle_remove function static
        cpuidle: calxeda: Add missing __iomem annotation
        SH: cpuidle: Add missing parameter for cpuidle_register()
        ARM: ux500: cpuidle: Move ux500 cpuidle driver to drivers/cpuidle
        ARM: ux500: cpuidle: Remove pointless include
        ARM: ux500: cpuidle: Instantiate the driver from platform device
        ARM: davinci: cpuidle: Fix target residency
        cpuidle: Add Kconfig.arm and move calxeda, kirkwood and zynq
        cpuidle: Check if device is already registered
        cpuidle: Introduce __cpuidle_device_init()
        cpuidle: Introduce __cpuidle_unregister_device()
        ...
      c7878810
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-opp' · 95b6fcb0
      Rafael J. Wysocki authored
      * pm-opp:
        PM / OPP: Export opp_add()
      95b6fcb0
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-sleep' · e894245c
      Rafael J. Wysocki authored
      * pm-sleep:
        PM / Sleep: new trace event to print device suspend and resume times
        PM / Sleep: increase ftrace coverage in suspend/resume
      e894245c
    • Rafael J. Wysocki's avatar
      Merge branch 'pnp' · ce63e186
      Rafael J. Wysocki authored
      * pnp:
        PNP: convert PNP driver bus legacy pm_ops to dev_pm_ops
      ce63e186
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-video' · 8a3a53ea
      Rafael J. Wysocki authored
      * acpi-video:
        ACPI: blacklist win8 OSI for buggy laptops
        ACPI: blacklist win8 OSI for ASUS Zenbook Prime UX31A
        ACPI / video: drop unused fields from struct acpi_video_brightness_flags
        ACPI / video: remove unnecessary type casting
        ACPI / video: trivial style cleanups
        ACPI / video: trivial costmetic cleanups
      
      Conflicts:
      	drivers/acpi/video.c
      8a3a53ea
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-processor' · 551f5c74
      Rafael J. Wysocki authored
      * acpi-processor:
        ACPI / processor: Acquire writer lock to update CPU maps
        ACPI / processor: Remove acpi_processor_get_limit_info()
      551f5c74
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-bind' · 8462d9df
      Rafael J. Wysocki authored
      * acpi-bind:
        ACPI: Print diagnostic messages if device links cannot be created
        ACPI: Drop unnecessary label from acpi_bind_one()
        ACPI: Clean up error code path in acpi_unbind_one()
        ACPI: Use list_for_each_entry() in acpi_unbind_one()
        ACPI: acpi_bind_one()/acpi_unbind_one() whitespace cleanups
        ACPI: Create symlinks in acpi_bind_one() under physical_node_lock
        ACPI: Reduce acpi_bind_one()/acpi_unbind_one() code duplication
        ACPI: Do not fail acpi_bind_one() if device is already bound correctly
      8462d9df
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-assorted' · 0c581415
      Rafael J. Wysocki authored
      * acpi-assorted:
        ACPI / osl: Kill macro INVALID_TABLE().
        earlycpio.c: Fix the confusing comment of find_cpio_data().
        ACPI / x86: Print Hot-Pluggable Field in SRAT.
        ACPI / thermal: Use THERMAL_TRIPS_NONE macro to replace number
        ACPI / thermal: Remove unused macros in the driver/acpi/thermal.c
        ACPI / thermal: Remove the unused lock of struct acpi_thermal
        ACPI / osl: Fix osi_setup_entries[] __initdata attribute location
        ACPI / numa: Fix __init attribute location in slit_valid()
        ACPI / dock: Fix __init attribute location in find_dock_and_bay()
        ACPI / Sleep: Fix incorrect placement of __initdata
        ACPI / processor: Fix incorrect placement of __initdata
        ACPI / EC: Fix incorrect placement of __initdata
        ACPI / scan: Drop unnecessary label from acpi_create_platform_device()
        ACPI: Move acpi_bus_get_device() from bus.c to scan.c
        ACPI / scan: Allow platform device creation without any IO resources
        ACPI: Cleanup sparse warning on acpi_os_initialize1()
        platform / thinkpad: Remove deprecated hotkey_report_mode parameter
        ACPI: Remove the old /proc/acpi/event interface
      0c581415
    • Rafael J. Wysocki's avatar
      Merge branch 'acpica' · afdca01c
      Rafael J. Wysocki authored
      * acpica:
        ACPICA: Update version to 20130725.
        ACPICA: Update names for walk_namespace callbacks to clarify usage.
        ACPICA: Return error if DerefOf resolves to a null package element.
        ACPICA: Make ACPI Power Management Timer (PM Timer) optional.
        ACPICA: Fix divergences of the commit - ACPICA: Expose OSI version.
        ACPICA: Fix possible fault for methods that optionally have no return value.
        ACPICA: DeRefOf operator: Update to fully resolve FieldUnit and BufferField refs.
        ACPICA: Emit all unresolved method externals in a text block
        ACPICA: Export acpi_tb_validate_rsdp().
        ACPI: Add facility to remove all _OSI strings
        ACPI: Add facility to disable all _OSI OS vendor strings
        ACPICA: Add acpi_update_interfaces() public interface
        ACPICA: Update version to 20130626
        ACPICA: Fix compiler warnings for casting issues (only some compilers)
        ACPICA: Remove restriction of 256 maximum GPEs in any GPE block
        ACPICA: Disassembler: Expand maximum output string length to 64K
        ACPICA: TableManager: Export acpi_tb_scan_memory_for_rsdp()
        ACPICA: Update comments about behavior when _STA does not exist
      afdca01c
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-sleep' · 4b319f29
      Rafael J. Wysocki authored
      * acpi-sleep:
        x86 / tboot / ACPI: Fail extended mode reduced hardware sleep
        xen / ACPI: notify xen when reduced hardware sleep is available
        ACPI / sleep: Introduce acpi_os_prepare_extended_sleep() for extended sleep path
      4b319f29
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-pm' · 0ad4c9a9
      Rafael J. Wysocki authored
      * acpi-pm:
        ACPI / PM: Add state information to error message in acpi_device_set_power()
        ACPI / PM: Remove redundant power manageable check from acpi_bus_set_power()
        ACPI / PM: Use ACPI_STATE_D3_COLD instead of ACPI_STATE_D3 everywhere
        ACPI / PM: Make messages in acpi_device_set_power() print device names
        ACPI / PM: Only set power states of devices that are power manageable
      0ad4c9a9
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-pci-hotplug' · abe5430e
      Rafael J. Wysocki authored
      * acpi-pci-hotplug: (34 commits)
        ACPI / PM: Hold acpi_scan_lock over system PM transitions
        ACPI / hotplug / PCI: Fix NULL pointer dereference in cleanup_bridge()
        PCI / ACPI: Use dev_dbg() instead of dev_info() in acpi_pci_set_power_state()
        ACPI / hotplug / PCI: Get rid of check_sub_bridges()
        ACPI / hotplug / PCI: Clean up bridge_mutex usage
        ACPI / hotplug / PCI: Redefine enable_device() and disable_device()
        ACPI / hotplug / PCI: Sanitize acpiphp_get_(latch)|(adapter)_status()
        ACPI / hotplug / PCI: Get rid of unused constants in acpiphp.h
        ACPI / hotplug / PCI: Check for new devices on enabled slots
        ACPI / hotplug / PCI: Allow slots without new devices to be rescanned
        ACPI / hotplug / PCI: Do not check SLOT_ENABLED in enable_device()
        ACPI / hotplug / PCI: Do not exectute _PS0 and _PS3 directly
        ACPI / hotplug / PCI: Do not queue up event handling work items in vain
        ACPI / hotplug / PCI: Consolidate slot disabling and ejecting
        ACPI / hotplug / PCI: Drop redundant checks from check_hotplug_bridge()
        ACPI / hotplug / PCI: Rework namespace scanning and trimming routines
        ACPI / hotplug / PCI: Store parent in functions and bus in slots
        ACPI / hotplug / PCI: Drop handle field from struct acpiphp_bridge
        ACPI / hotplug / PCI: Drop handle field from struct acpiphp_func
        ACPI / hotplug / PCI: Embed function struct into struct acpiphp_context
        ...
      abe5430e
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-cleanup' · c92f56cb
      Rafael J. Wysocki authored
      * acpi-cleanup: (21 commits)
        ACPI / dock: fix error return code in dock_add()
        ACPI / dock: Drop unnecessary local variable from dock_add()
        ACPI / dock / PCI: Drop ACPI dock notifier chain
        ACPI / dock: Do not check CONFIG_ACPI_DOCK_MODULE
        ACPI / dock: Do not leak memory on falilures to add a dock station
        ACPI: Drop ACPI bus notifier call chain
        ACPI / dock: Rework the handling of notifications
        ACPI / dock: Simplify dock_init_hotplug() and dock_release_hotplug()
        ACPI / dock: Walk list in reverse order during removal of devices
        ACPI / dock: Rework and simplify find_dock_devices()
        ACPI / dock: Drop the hp_lock mutex from struct dock_station
        ACPI: simplify acpiphp driver with new helper functions
        ACPI: simplify dock driver with new helper functions
        ACPI: Export acpi_(bay)|(dock)_match() from scan.c
        ACPI: introduce two helper functions for _EJ0 and _LCK
        ACPI: introduce helper function acpi_execute_simple_method()
        ACPI: introduce helper function acpi_has_method()
        ACPI / dock: simplify dock_create_acpi_device()
        ACPI / dock: mark initialization functions with __init
        ACPI / dock: drop redundant spin lock in dock station object
        ...
      c92f56cb
    • Sascha Hauer's avatar
      cpufreq: imx6q: Fix clock enable balance · fae19b84
      Sascha Hauer authored
      For changing the cpu frequency the i.MX6q has to be switched to some
      intermediate clock during the PLL reprogramming. The driver tries
      to be clever to keep the enable count correct but gets it wrong. If
      the cpufreq is increased it calls clk_disable_unprepare twice
      on pll2_pfd2_396m. This puts all other devices which get their clock
      from pll2_pfd2_396m into a nonworking state.
      
      Fix this by removing the clk enabling/disabling altogether since the
      clk core will do this automatically during a reparent.
      Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
      Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
      fae19b84
    • Linus Torvalds's avatar
      Linux 3.11-rc7 · d8dfad38
      Linus Torvalds authored
      d8dfad38
  9. 25 Aug, 2013 4 commits