1. 07 7月, 2015 2 次提交
  2. 16 6月, 2015 2 次提交
    • G
      PM / clk: Print acquired clock name in addition to con_id · f17f4adf
      Geert Uytterhoeven 提交于
      Currently the con_id of the acquired clock is printed for debugging
      purposes.  But in several cases, the con_id is NULL, which doesn't
      provide much debugging information when printed.  These cases are:
        - When explicitly passing a NULL con_id (which means the first clock
          tied to the device, if available),
        - When not using pm_clk_add(), but pm_clk_add_clk() (which takes a
          "struct clk *" directly).
      
      Hence print the actual clock name in addition to (and not instead of;
      thanks Grygorii Strashko!) the con_id.
      
      Note that the clock name is not available with legacy clock frameworks,
      and the hex pointer address will be printed instead.
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: NGrygorii Strashko <grygorii.strashko@linaro.org>
      Reviewed-by: NUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      f17f4adf
    • G
      PM / Domains: Skip timings during syscore suspend/resume · a4630c61
      Geert Uytterhoeven 提交于
      The PM Domain code uses ktime_get() to perform various latency
      measurements.  However, if ktime_get() is called while timekeeping is
      suspended, the following warning is printed:
      
          WARNING: CPU: 0 PID: 1340 at kernel/time/timekeeping.c:576 ktime_get+0x3
      
      This happens when resuming the PM Domain that contains the clock events
      source, which calls pm_genpd_syscore_poweron(). Chain of operations is:
      
          timekeeping_resume()
          {
      	clockevents_resume()
      	    sh_cmt_clock_event_resume()
      		pm_genpd_syscore_poweron()
      		    pm_genpd_sync_poweron()
      			genpd_syscore_switch()
      			    genpd_power_on()
      				ktime_get(), but timekeeping_suspended == 1
      	...
      	timekeeping_suspended = 0;
          }
      
      Fix this by adding a "timed" parameter to genpd_power_{on,off}() and
      pm_genpd_sync_power{off,on}(), to indicate whether latency measurements
      are allowed.  This parameter is passed as false in
      genpd_syscore_switch() (i.e. during syscore suspend/resume), and true in
      all other cases.
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      a4630c61
  3. 10 6月, 2015 1 次提交
  4. 20 5月, 2015 2 次提交
    • T
      PM / Wakeirq: Add automated device wake IRQ handling · 4990d4fe
      Tony Lindgren 提交于
      Turns out we can automate the handling for the device_may_wakeup()
      quite a bit by using the kernel wakeup source list as suggested
      by Rafael J. Wysocki <rjw@rjwysocki.net>.
      
      And as some hardware has separate dedicated wake-up interrupt
      in addition to the IO interrupt, we can automate the handling by
      adding a generic threaded interrupt handler that just calls the
      device PM runtime to wake up the device.
      
      This allows dropping code from device drivers as we currently
      are doing it in multiple ways, and often wrong.
      
      For most drivers, we should be able to drop the following
      boilerplate code from runtime_suspend and runtime_resume
      functions:
      
      	...
      	device_init_wakeup(dev, true);
      	...
      	if (device_may_wakeup(dev))
      		enable_irq_wake(irq);
      	...
      	if (device_may_wakeup(dev))
      		disable_irq_wake(irq);
      	...
      	device_init_wakeup(dev, false);
      	...
      
      We can replace it with just the following init and exit
      time code:
      
      	...
      	device_init_wakeup(dev, true);
      	dev_pm_set_wake_irq(dev, irq);
      	...
      	dev_pm_clear_wake_irq(dev);
      	device_init_wakeup(dev, false);
      	...
      
      And for hardware with dedicated wake-up interrupts:
      
      	...
      	device_init_wakeup(dev, true);
      	dev_pm_set_dedicated_wake_irq(dev, irq);
      	...
      	dev_pm_clear_wake_irq(dev);
      	device_init_wakeup(dev, false);
      	...
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4990d4fe
    • T
      PM / Runtime: Update last_busy in rpm_resume · 56f487c7
      Tony Lindgren 提交于
      If we don't update last_busy in rpm_resume, devices can go back
      to sleep immediately after resume. This happens at least in
      cases where the device has been powered off and does not have
      any interrupt pending until there's something in the FIFO.
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      56f487c7
  5. 19 5月, 2015 2 次提交
  6. 13 5月, 2015 1 次提交
  7. 08 5月, 2015 1 次提交
  8. 16 4月, 2015 1 次提交
  9. 24 3月, 2015 1 次提交
  10. 23 3月, 2015 3 次提交
  11. 18 3月, 2015 1 次提交
  12. 05 3月, 2015 1 次提交
  13. 04 3月, 2015 1 次提交
  14. 12 2月, 2015 1 次提交
  15. 04 2月, 2015 10 次提交
  16. 24 1月, 2015 6 次提交
  17. 18 12月, 2014 3 次提交
  18. 17 12月, 2014 1 次提交