Browse Source

PM / devfreq: Send the DEVFREQ_POSTCHANGE notification when target() is failed

This patch sends the DEVFREQ_POSTCHANGE notification when
devfreq->profile->targer() is failed. The PRECHANGE/POSTCHANGE
should be paired.

Fixes: 0fe3a66410a3 (PM / devfreq: Add new DEVFREQ_TRANSITION_NOTIFIER notifier)
Reported-by: Lin Huang <hl@rock-chips.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Chanwoo Choi 9 years ago
parent
commit
0d37189e80
1 changed files with 4 additions and 1 deletions
  1. 4 1
      drivers/devfreq/devfreq.c

+ 4 - 1
drivers/devfreq/devfreq.c

@@ -268,8 +268,11 @@ int update_devfreq(struct devfreq *devfreq)
 	devfreq_notify_transition(devfreq, &freqs, DEVFREQ_PRECHANGE);
 	devfreq_notify_transition(devfreq, &freqs, DEVFREQ_PRECHANGE);
 
 
 	err = devfreq->profile->target(devfreq->dev.parent, &freq, flags);
 	err = devfreq->profile->target(devfreq->dev.parent, &freq, flags);
-	if (err)
+	if (err) {
+		freqs.new = cur_freq;
+		devfreq_notify_transition(devfreq, &freqs, DEVFREQ_POSTCHANGE);
 		return err;
 		return err;
+	}
 
 
 	freqs.new = freq;
 	freqs.new = freq;
 	devfreq_notify_transition(devfreq, &freqs, DEVFREQ_POSTCHANGE);
 	devfreq_notify_transition(devfreq, &freqs, DEVFREQ_POSTCHANGE);