1. 17 10月, 2011 4 次提交
    • B
      PM / Hibernate: Add resumewait param to support MMC-like devices as resume file · 6f8d7022
      Barry Song 提交于
      Some devices like MMC are async detected very slow. For example,
      drivers/mmc/host/sdhci.c launches a 200ms delayed work to detect
      MMC partitions then add disk.
      
      We have wait_for_device_probe() and scsi_complete_async_scans()
      before calling swsusp_check(), but it is not enough to wait for MMC.
      
      This patch adds resumewait kernel param just like rootwait so
      that we have enough time to wait until MMC is ready. The difference is
      that we wait for resume partition whereas rootwait waits for rootfs
      partition (which may be on a different device).
      
      This patch will make hibernation support many embedded products
      without SCSI devices, but with devices like MMC.
      
      [rjw: Modified the changelog slightly.]
      Signed-off-by: NBarry Song <Baohua.Song@csr.com>
      Reviewed-by: NValdis Kletnieks <valdis.kletnieks@vt.edu>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      6f8d7022
    • R
      PM / Hibernate: Freeze kernel threads after preallocating memory · 2aede851
      Rafael J. Wysocki 提交于
      There is a problem with the current ordering of hibernate code which
      leads to deadlocks in some filesystems' memory shrinkers.  Namely,
      some filesystems use freezable kernel threads that are inactive when
      the hibernate memory preallocation is carried out.  Those same
      filesystems use memory shrinkers that may be triggered by the
      hibernate memory preallocation.  If those memory shrinkers wait for
      the frozen kernel threads, the hibernate process deadlocks (this
      happens with XFS, for one example).
      
      Apparently, it is not technically viable to redesign the filesystems
      in question to avoid the situation described above, so the only
      possible solution of this issue is to defer the freezing of kernel
      threads until the hibernate memory preallocation is done, which is
      implemented by this change.
      
      Unfortunately, this requires the memory preallocation to be done
      before the "prepare" stage of device freeze, so after this change the
      only way drivers can allocate additional memory for their freeze
      routines in a clean way is to use PM notifiers.
      Reported-by: NChristoph <cr2005@u-club.de>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      2aede851
    • A
      PM: Update the policy on default wakeup settings · 8f88893c
      Alan Stern 提交于
      This patch (as1485) documents a change to the kernel's default wakeup
      policy.  Devices that forward wakeup requests between buses should be
      enabled for wakeup by default.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      8f88893c
    • S
      PM / Suspend: Add statistics debugfs file for suspend to RAM · 2a77c46d
      ShuoX Liu 提交于
      Record S3 failure time about each reason and the latest two failed
      devices' names in S3 progress.
      We can check it through 'suspend_stats' entry in debugfs.
      
      The motivation of the patch:
      
      We are enabling power features on Medfield. Comparing with PC/notebook,
      a mobile enters/exits suspend-2-ram (we call it s3 on Medfield) far
      more frequently. If it can't enter suspend-2-ram in time, the power
      might be used up soon.
      
      We often find sometimes, a device suspend fails. Then, system retries
      s3 over and over again. As display is off, testers and developers
      don't know what happens.
      
      Some testers and developers complain they don't know if system
      tries suspend-2-ram, and what device fails to suspend. They need
      such info for a quick check. The patch adds suspend_stats under
      debugfs for users to check suspend to RAM statistics quickly.
      
      If not using this patch, we have other methods to get info about
      what device fails. One is to turn on  CONFIG_PM_DEBUG, but users
      would get too much info and testers need recompile the system.
      
      In addition, dynamic debug is another good tool to dump debug info.
      But it still doesn't match our utilization scenario closely.
      1) user need write a user space parser to process the syslog output;
      2) Our testing scenario is we leave the mobile for at least hours.
         Then, check its status. No serial console available during the
         testing. One is because console would be suspended, and the other
         is serial console connecting with spi or HSU devices would consume
         power. These devices are powered off at suspend-2-ram.
      Signed-off-by: NShuoX Liu <shuox.liu@intel.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      2a77c46d
  2. 11 10月, 2011 1 次提交
  3. 07 10月, 2011 1 次提交
  4. 05 10月, 2011 1 次提交
  5. 02 10月, 2011 2 次提交
    • M
      PM / devfreq: Add basic governors · ce26c5bb
      MyungJoo Ham 提交于
      Four cpufreq-like governors are provided as examples.
      
      powersave: use the lowest frequency possible. The user (device) should
      set the polling_ms as 0 because polling is useless for this governor.
      
      performance: use the highest freqeuncy possible. The user (device)
      should set the polling_ms as 0 because polling is useless for this
      governor.
      
      userspace: use the user specified frequency stored at
      devfreq.user_set_freq. With sysfs support in the following patch, a user
      may set the value with the sysfs interface.
      
      simple_ondemand: simplified version of cpufreq's ondemand governor.
      
      When a user updates OPP entries (enable/disable/add), OPP framework
      automatically notifies devfreq to update operating frequency
      accordingly. Thus, devfreq users (device drivers) do not need to update
      devfreq manually with OPP entry updates or set polling_ms for powersave
      , performance, userspace, or any other "static" governors.
      
      Note that these are given only as basic examples for governors and any
      devices with devfreq may implement their own governors with the drivers
      and use them.
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Reviewed-by: NMike Turquette <mturquette@ti.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      ce26c5bb
    • M
      PM / devfreq: Add common sysfs interfaces · 9005b650
      MyungJoo Ham 提交于
      Device specific sysfs interface /sys/devices/.../power/devfreq_*
      - governor	R: name of governor
      - cur_freq	R: current frequency
      - polling_interval	R: polling interval in ms given with devfreq profile
      			W: update polling interval.
      - central_polling	R: 1 if polling is managed by devfreq framework
      Signed-off-by: NMyungJoo Ham <myungjoo.ham@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Reviewed-by: NMike Turquette <mturquette@ti.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      --
       Documentation/ABI/testing/sysfs-class-devfreq |   44 ++++++++++++++++
       drivers/devfreq/devfreq.c                     |   69 ++++++++++++++++++++++++++
       2 files changed, 113 insertions(+)
       create mode 100644 Documentation/ABI/testing/sysfs-class-devfreq
      9005b650
  6. 30 9月, 2011 1 次提交
  7. 28 9月, 2011 1 次提交
  8. 23 9月, 2011 1 次提交
  9. 22 9月, 2011 3 次提交
    • G
      hwmon: (coretemp) Don't use threshold registers for tempX_max · f4af6fd6
      Guenter Roeck 提交于
      With commit c814a4c7, the meaning of tempX_max
      was changed. It no longer returns the value of bits 8:15 of
      MSR_IA32_TEMPERATURE_TARGET, but instead returns the value of CPU threshold
      register T1. tempX_max_hyst was added to reflect the value of temperature
      threshold register T0.
      
      As it turns out, T0 and T1 are used on some systems, presumably by the BIOS.
      Also, T0 and T1 don't have a well defined meaning. The thresholds may be used
      as upper or lower limits, and it is not guaranteed that T0 <= T1. Thus, the new
      attribute mapping does not reflect the actual usage of the threshold registers.
      Also, register contents are changed during runtime by an entity other than the
      hwmon driver, meaning the values cached by the driver do not reflect actual
      register contents.
      
      Revert most of c814a4c7 to address the problem.
      Support for T0 and T1 will be added back in with a separate commit, using new
      attribute names.
      Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Durgadoss R <durgadoss.r@intel.com>
      Acked-by: NJean Delvare <khali@linux-fr.org>
      f4af6fd6
    • J
      hwmon: (coretemp) Let the user force TjMax · a45a8c85
      Jean Delvare 提交于
      On old CPUs (and even some recent Atom CPUs) TjMax can't be read from
      the CPU registers, so it is guessed by the driver using a complex
      heuristic which isn't reliable. So let users who know their CPU's
      TjMax pass it as a module parameter.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: "R, Durgadoss" <durgadoss.r@intel.com>
      Cc: Guenter Roeck <guenter.roeck@ericsson.com>
      Cc: Alexander Stein <alexander.stein@systec-electronic.com>
      Acked-by: NFenghua Yu <fenghua.yu@intel.com>
      Signed-off-by: NGuenter Roeck <guenter.roeck@ericsson.com>
      a45a8c85
    • M
      PM / Runtime: pm_runtime_idle() can be called in atomic context · 2e6ba515
      Ming Lei 提交于
      Add to pm_runtime_idle the list of functions that can be called
      in atomic context if pm_runtime_irq_safe() has been called for the
      device.
      Signed-off-by: NMing Lei <tom.leiming@gmail.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      2e6ba515
  10. 16 9月, 2011 1 次提交
  11. 15 9月, 2011 1 次提交
  12. 13 9月, 2011 1 次提交
  13. 11 9月, 2011 1 次提交
  14. 06 9月, 2011 1 次提交
  15. 25 8月, 2011 2 次提交
  16. 24 8月, 2011 1 次提交
  17. 23 8月, 2011 1 次提交
  18. 20 8月, 2011 1 次提交
  19. 19 8月, 2011 1 次提交
  20. 15 8月, 2011 2 次提交
  21. 14 8月, 2011 11 次提交
  22. 12 8月, 2011 1 次提交