Commit 9a0bcc8f authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'pm-4.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull power management fixes from Rafael Wysocki:
 "This includes a stable-candidate cpufreq-dt driver problem fix and
  annotations of tracepoints in the runtime PM framework.

  Specifics:

   - Fix the definition of the cpufreq-dt driver's machines table
     introduced during the 4.7 cycle that should be NULL-terminated, but
     the termination entry is missing from it (Wei Yongjun).

   - Annotate tracepoints in the runtime PM framework's core so as to
     allow the functions containing them to be called from the idle code
     path without causing RCU to complain about illegal usage (Paul
     McKenney)"

* tag 'pm-4.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  PM / runtime: Add _rcuidle suffix to allow rpm_idle() use from idle
  PM / runtime: Add _rcuidle suffix to allow rpm_resume() to be called from idle
  cpufreq: dt: Add terminate entry for of_device_id tables
parents 15301a57 b654c62e
...@@ -301,7 +301,7 @@ static int rpm_idle(struct device *dev, int rpmflags) ...@@ -301,7 +301,7 @@ static int rpm_idle(struct device *dev, int rpmflags)
int (*callback)(struct device *); int (*callback)(struct device *);
int retval; int retval;
trace_rpm_idle(dev, rpmflags); trace_rpm_idle_rcuidle(dev, rpmflags);
retval = rpm_check_suspend_allowed(dev); retval = rpm_check_suspend_allowed(dev);
if (retval < 0) if (retval < 0)
; /* Conditions are wrong. */ ; /* Conditions are wrong. */
...@@ -337,7 +337,7 @@ static int rpm_idle(struct device *dev, int rpmflags) ...@@ -337,7 +337,7 @@ static int rpm_idle(struct device *dev, int rpmflags)
dev->power.request_pending = true; dev->power.request_pending = true;
queue_work(pm_wq, &dev->power.work); queue_work(pm_wq, &dev->power.work);
} }
trace_rpm_return_int(dev, _THIS_IP_, 0); trace_rpm_return_int_rcuidle(dev, _THIS_IP_, 0);
return 0; return 0;
} }
...@@ -352,7 +352,7 @@ static int rpm_idle(struct device *dev, int rpmflags) ...@@ -352,7 +352,7 @@ static int rpm_idle(struct device *dev, int rpmflags)
wake_up_all(&dev->power.wait_queue); wake_up_all(&dev->power.wait_queue);
out: out:
trace_rpm_return_int(dev, _THIS_IP_, retval); trace_rpm_return_int_rcuidle(dev, _THIS_IP_, retval);
return retval ? retval : rpm_suspend(dev, rpmflags | RPM_AUTO); return retval ? retval : rpm_suspend(dev, rpmflags | RPM_AUTO);
} }
...@@ -601,7 +601,7 @@ static int rpm_resume(struct device *dev, int rpmflags) ...@@ -601,7 +601,7 @@ static int rpm_resume(struct device *dev, int rpmflags)
struct device *parent = NULL; struct device *parent = NULL;
int retval = 0; int retval = 0;
trace_rpm_resume(dev, rpmflags); trace_rpm_resume_rcuidle(dev, rpmflags);
repeat: repeat:
if (dev->power.runtime_error) if (dev->power.runtime_error)
...@@ -764,7 +764,7 @@ static int rpm_resume(struct device *dev, int rpmflags) ...@@ -764,7 +764,7 @@ static int rpm_resume(struct device *dev, int rpmflags)
spin_lock_irq(&dev->power.lock); spin_lock_irq(&dev->power.lock);
} }
trace_rpm_return_int(dev, _THIS_IP_, retval); trace_rpm_return_int_rcuidle(dev, _THIS_IP_, retval);
return retval; return retval;
} }
......
...@@ -74,6 +74,8 @@ static const struct of_device_id machines[] __initconst = { ...@@ -74,6 +74,8 @@ static const struct of_device_id machines[] __initconst = {
{ .compatible = "ti,omap5", }, { .compatible = "ti,omap5", },
{ .compatible = "xlnx,zynq-7000", }, { .compatible = "xlnx,zynq-7000", },
{ }
}; };
static int __init cpufreq_dt_platdev_init(void) static int __init cpufreq_dt_platdev_init(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment