1. 27 Dec, 2011 2 commits
  2. 25 Dec, 2011 11 commits
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-domains' into pm-for-linus · 6d10463b
      Rafael J. Wysocki authored
      * pm-domains:
        PM / shmobile: Allow the A4R domain to be turned off at run time
        PM / input / touchscreen: Make st1232 use device PM QoS constraints
        PM / QoS: Introduce dev_pm_qos_add_ancestor_request()
        PM / shmobile: Remove the stay_on flag from SH7372's PM domains
        PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume
        PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode
        ARM: S3C64XX: Implement basic power domain support
        PM / shmobile: Use common always on power domain governor
        PM / Domains: Provide an always on power domain governor
        PM / Domains: Fix default system suspend/resume operations
        PM / Domains: Make it possible to assign names to generic PM domains
        PM / Domains: fix compilation failure for CONFIG_PM_GENERIC_DOMAINS unset
        PM / Domains: Automatically update overoptimistic latency information
        PM / Domains: Add default power off governor function (v4)
        PM / Domains: Add device stop governor function (v4)
        PM / Domains: Rework system suspend callback routines (v2)
        PM / Domains: Introduce "save/restore state" device callbacks
        PM / Domains: Make it possible to use per-device domain callbacks
      6d10463b
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-runtime' into pm-for-linus · 0015afaa
      Rafael J. Wysocki authored
      * pm-runtime:
        PM / Runtime: Use device PM QoS constraints (v2)
      0015afaa
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-sleep' into pm-for-linus · b7ba68c4
      Rafael J. Wysocki authored
      * pm-sleep: (51 commits)
        PM: Drop generic_subsys_pm_ops
        PM / Sleep: Remove forward-only callbacks from AMBA bus type
        PM / Sleep: Remove forward-only callbacks from platform bus type
        PM: Run the driver callback directly if the subsystem one is not there
        PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers
        PM / Sleep: Merge internal functions in generic_ops.c
        PM / Sleep: Simplify generic system suspend callbacks
        PM / Hibernate: Remove deprecated hibernation snapshot ioctls
        PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled()
        PM / Sleep: Recommend [un]lock_system_sleep() over using pm_mutex directly
        PM / Sleep: Replace mutex_[un]lock(&pm_mutex) with [un]lock_system_sleep()
        PM / Sleep: Make [un]lock_system_sleep() generic
        PM / Sleep: Use the freezer_count() functions in [un]lock_system_sleep() APIs
        PM / Freezer: Remove the "userspace only" constraint from freezer[_do_not]_count()
        PM / Hibernate: Replace unintuitive 'if' condition in kernel/power/user.c with 'else'
        Freezer / sunrpc / NFS: don't allow TASK_KILLABLE sleeps to block the freezer
        PM / Sleep: Unify diagnostic messages from device suspend/resume
        ACPI / PM: Do not save/restore NVS on Asus K54C/K54HR
        PM / Hibernate: Remove deprecated hibernation test modes
        PM / Hibernate: Thaw processes in SNAPSHOT_CREATE_IMAGE ioctl test path
        ...
      
      Conflicts:
      	kernel/kmod.c
      b7ba68c4
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-devfreq' into pm-for-linus · 8d274ab7
      Rafael J. Wysocki authored
      * pm-devfreq:
        PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.
        PM / devfreq: separate error paths from successful path
      8d274ab7
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-misc' into pm-for-linus · 3e68001b
      Rafael J. Wysocki authored
      * pm-misc:
        CPU: Add right qualifiers for alloc_frozen_cpus() and cpu_hotplug_pm_sync_init()
        PM / Usermodehelper: Cleanup remnants of usermodehelper_pm_callback()
      3e68001b
    • Rafael J. Wysocki's avatar
      PM / shmobile: Allow the A4R domain to be turned off at run time · a8cf27be
      Rafael J. Wysocki authored
      After adding PM QoS constraints for the I2C controller in the A4R
      domain, that domain can be allowed to be turned off and on by runtime
      PM, so remove the "always on" governor from it.
      
      However, the A4R domain has to be "on" when suspend_device_irqs() and
      resume_device_irqs() are executed during system suspend and resume,
      respectively, so that those functions don't crash while accessing the
      INTCS.  For this reason, add a PM notifier to the SH7372 PM code and
      make it restore power to A4R before system suspend and remove power
      from all unused PM domains after system resume.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarMagnus Damm <damm@opensource.se>
      a8cf27be
    • Rafael J. Wysocki's avatar
      PM / input / touchscreen: Make st1232 use device PM QoS constraints · 9ee27ffb
      Rafael J. Wysocki authored
      Make the st1232 driver use dev_pm_qos_add_ancestor_request() to
      add a device PM QoS latency constraint for the controller it
      depends on, so that the controller won't go into an overly deep
      low-power state when the touchscreen has to be particularly
      responsive (e.g. when the user moves his or her finger on it).
      
      This change is based on a prototype patch from Guennadi Liakhovetski.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      9ee27ffb
    • Rafael J. Wysocki's avatar
      PM / QoS: Introduce dev_pm_qos_add_ancestor_request() · 40a5f8be
      Rafael J. Wysocki authored
      Some devices, like the I2C controller on SH7372, are not
      necessary for providing power to their children or forwarding
      wakeup signals (and generally interrupts) from them.  They are
      only needed by their children when there's some data to transfer,
      so they may be suspended for the majority of time and resumed
      on demand, when the children have data to send or receive.  For this
      purpose, however, their power.ignore_children flags have to be set,
      or the PM core wouldn't allow them to be suspended while their
      children were active.
      
      Unfortunately, in some situations it may take too much time to
      resume such devices so that they can assist their children in
      transferring data.  For example, if such a device belongs to a PM
      domain which goes to the "power off" state when that device is
      suspended, it may take too much time to restore power to the
      domain in response to the request from one of the device's
      children.  In that case, if the parent's resume time is critical,
      the domain should stay in the "power on" state, although it still may
      be desirable to power manage the parent itself (e.g. by manipulating
      its clock).
      
      In general, device PM QoS may be used to address this problem.
      Namely, if the device's children added PM QoS latency constraints
      for it, they would be able to prevent it from being put into an
      overly deep low-power state.  However, in some cases the devices
      needing to be serviced are not the immediate children of a
      "children-ignoring" device, but its grandchildren or even less
      direct descendants.  In those cases, the entity wanting to add a
      PM QoS request for a given device's ancestor that ignores its
      children will have to find it in the first place, so introduce a new
      helper function that may be used to achieve that.  This function,
      dev_pm_qos_add_ancestor_request(), will search for the first
      ancestor of the given device whose power.ignore_children flag is
      set and will add a device PM QoS latency request for that ancestor
      on behalf of the caller.  The request added this way may be removed
      with the help of dev_pm_qos_remove_request() in the future, like
      any other device PM QoS latency request.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      40a5f8be
    • Rafael J. Wysocki's avatar
      PM / shmobile: Remove the stay_on flag from SH7372's PM domains · 767c0f3a
      Rafael J. Wysocki authored
      SH7372 uses two independent mechanisms for ensuring that power
      domains will never be turned off: the stay_on flag and the "always
      on" domain governor.  Moreover, the "always on" governor is only taken
      into accout by runtime PM code paths, while the stay_on flag affects
      all attempts to turn the given domain off.  Thus setting the stay_on
      flag causes the "always on" governor to be unnecessary, which is
      quite confusing.
      
      However, the stay_on flag is currently only set for two domains: A3SP
      and A4S.  Moreover, it only is set for the A3SP domain if
      console_suspend_enabled is set, so stay_on won't be necessary for
      that domain any more if console_suspend_enabled is checked directly
      in its .suspend() routine.  [This requires domain .suspend() to
      return a result, but that is a minor modification.]  Analogously,
      stay_on won't be necessary for the A4S domain if it's .suspend()
      routine always returns an error code.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarMagnus Damm <damm@opensource.se>
      767c0f3a
    • Rafael J. Wysocki's avatar
      PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume · 0f966d74
      Rafael J. Wysocki authored
      Since the SH7372's INTCS in included into syscore suspend/resume,
      which causes the chip to be accessed when PM domains have been
      turned off during system suspend, the A4R domain containing the
      INTCS has to stay on during system sleep, which is suboptimal
      from the power consumption point of view.
      
      For this reason, add a new INTC flag, skip_syscore_suspend, to mark
      the INTCS for intc_suspend() and intc_resume(), so that they don't
      touch it.  This allows the A4R domain to be turned off during
      system suspend and the INTCS state is resrored during system
      resume by the A4R's "power on" code.
      Suggested-by: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarMagnus Damm <damm@opensource.se>
      0f966d74
    • Magnus Damm's avatar
      PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode · f7dadb37
      Magnus Damm authored
      The sh7372 contains a power domain named A4S which in turn
      contains power domains for both I/O Devices and CPU cores.
      
      At this point only System wide Suspend-to-RAM is supported,
      but the the hardware can also support CPUIdle. With more
      efforts in the future CPUIdle can work with bot A4S and A3SM.
      
      Tested on the sh7372 Mackerel board.
      
      [rjw: Rebased on top of the current linux-pm tree.]
      Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      f7dadb37
  3. 24 Dec, 2011 4 commits
  4. 23 Dec, 2011 14 commits
  5. 22 Dec, 2011 9 commits