diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-08 16:10:57 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-08 16:10:57 -0500 |
commit | eb59c505f8a5906ad2e053d14fab50eb8574fd6f (patch) | |
tree | c6e875adc12b481b916e847e8f80b8881a0fb02c /drivers/amba | |
parent | 1619ed8f60959829d070d8f39cd2f8ca0e7135ce (diff) | |
parent | c233523b3d392e530033a7587d7970dc62a02361 (diff) |
Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
* 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)
PM / Hibernate: Implement compat_ioctl for /dev/snapshot
PM / Freezer: fix return value of freezable_schedule_timeout_killable()
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
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/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.
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()
ARM: S3C64XX: Implement basic power domain support
PM / shmobile: Use common always on power domain governor
...
Fix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused
XBT_FORCE_SLEEP bit
Diffstat (limited to 'drivers/amba')
-rw-r--r-- | drivers/amba/bus.c | 136 |
1 files changed, 1 insertions, 135 deletions
diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c index 936c98cb247..54eaf96ab21 100644 --- a/drivers/amba/bus.c +++ b/drivers/amba/bus.c | |||
@@ -113,31 +113,7 @@ static int amba_legacy_resume(struct device *dev) | |||
113 | return ret; | 113 | return ret; |
114 | } | 114 | } |
115 | 115 | ||
116 | static int amba_pm_prepare(struct device *dev) | 116 | #endif /* CONFIG_PM_SLEEP */ |
117 | { | ||
118 | struct device_driver *drv = dev->driver; | ||
119 | int ret = 0; | ||
120 | |||
121 | if (drv && drv->pm && drv->pm->prepare) | ||
122 | ret = drv->pm->prepare(dev); | ||
123 | |||
124 | return ret; | ||
125 | } | ||
126 | |||
127 | static void amba_pm_complete(struct device *dev) | ||
128 | { | ||
129 | struct device_driver *drv = dev->driver; | ||
130 | |||
131 | if (drv && drv->pm && drv->pm->complete) | ||
132 | drv->pm->complete(dev); | ||
133 | } | ||
134 | |||
135 | #else /* !CONFIG_PM_SLEEP */ | ||
136 | |||
137 | #define amba_pm_prepare NULL | ||
138 | #define amba_pm_complete NULL | ||
139 | |||
140 | #endif /* !CONFIG_PM_SLEEP */ | ||
141 | 117 | ||
142 | #ifdef CONFIG_SUSPEND | 118 | #ifdef CONFIG_SUSPEND |
143 | 119 | ||
@@ -159,22 +135,6 @@ static int amba_pm_suspend(struct device *dev) | |||
159 | return ret; | 135 | return ret; |
160 | } | 136 | } |
161 | 137 | ||
162 | static int amba_pm_suspend_noirq(struct device *dev) | ||
163 | { | ||
164 | struct device_driver *drv = dev->driver; | ||
165 | int ret = 0; | ||
166 | |||
167 | if (!drv) | ||
168 | return 0; | ||
169 | |||
170 | if (drv->pm) { | ||
171 | if (drv->pm->suspend_noirq) | ||
172 | ret = drv->pm->suspend_noirq(dev); | ||
173 | } | ||
174 | |||
175 | return ret; | ||
176 | } | ||
177 | |||
178 | static int amba_pm_resume(struct device *dev) | 138 | static int amba_pm_resume(struct device *dev) |
179 | { | 139 | { |
180 | struct device_driver *drv = dev->driver; | 140 | struct device_driver *drv = dev->driver; |
@@ -193,28 +153,10 @@ static int amba_pm_resume(struct device *dev) | |||
193 | return ret; | 153 | return ret; |
194 | } | 154 | } |
195 | 155 | ||
196 | static int amba_pm_resume_noirq(struct device *dev) | ||
197 | { | ||
198 | struct device_driver *drv = dev->driver; | ||
199 | int ret = 0; | ||
200 | |||
201 | if (!drv) | ||
202 | return 0; | ||
203 | |||
204 | if (drv->pm) { | ||
205 | if (drv->pm->resume_noirq) | ||
206 | ret = drv->pm->resume_noirq(dev); | ||
207 | } | ||
208 | |||
209 | return ret; | ||
210 | } | ||
211 | |||
212 | #else /* !CONFIG_SUSPEND */ | 156 | #else /* !CONFIG_SUSPEND */ |
213 | 157 | ||
214 | #define amba_pm_suspend NULL | 158 | #define amba_pm_suspend NULL |
215 | #define amba_pm_resume NULL | 159 | #define amba_pm_resume NULL |
216 | #define amba_pm_suspend_noirq NULL | ||
217 | #define amba_pm_resume_noirq NULL | ||
218 | 160 | ||
219 | #endif /* !CONFIG_SUSPEND */ | 161 | #endif /* !CONFIG_SUSPEND */ |
220 | 162 | ||
@@ -238,22 +180,6 @@ static int amba_pm_freeze(struct device *dev) | |||
238 | return ret; | 180 | return ret; |
239 | } | 181 | } |
240 | 182 | ||
241 | static int amba_pm_freeze_noirq(struct device *dev) | ||
242 | { | ||
243 | struct device_driver *drv = dev->driver; | ||
244 | int ret = 0; | ||
245 | |||
246 | if (!drv) | ||
247 | return 0; | ||
248 | |||
249 | if (drv->pm) { | ||
250 | if (drv->pm->freeze_noirq) | ||
251 | ret = drv->pm->freeze_noirq(dev); | ||
252 | } | ||
253 | |||
254 | return ret; | ||
255 | } | ||
256 | |||
257 | static int amba_pm_thaw(struct device *dev) | 183 | static int amba_pm_thaw(struct device *dev) |
258 | { | 184 | { |
259 | struct device_driver *drv = dev->driver; | 185 | struct device_driver *drv = dev->driver; |
@@ -272,22 +198,6 @@ static int amba_pm_thaw(struct device *dev) | |||
272 | return ret; | 198 | return ret; |
273 | } | 199 | } |
274 | 200 | ||
275 | static int amba_pm_thaw_noirq(struct device *dev) | ||
276 | { | ||
277 | struct device_driver *drv = dev->driver; | ||
278 | int ret = 0; | ||
279 | |||
280 | if (!drv) | ||
281 | return 0; | ||
282 | |||
283 | if (drv->pm) { | ||
284 | if (drv->pm->thaw_noirq) | ||
285 | ret = drv->pm->thaw_noirq(dev); | ||
286 | } | ||
287 | |||
288 | return ret; | ||
289 | } | ||
290 | |||
291 | static int amba_pm_poweroff(struct device *dev) | 201 | static int amba_pm_poweroff(struct device *dev) |
292 | { | 202 | { |
293 | struct device_driver *drv = dev->driver; | 203 | struct device_driver *drv = dev->driver; |
@@ -306,22 +216,6 @@ static int amba_pm_poweroff(struct device *dev) | |||
306 | return ret; | 216 | return ret; |
307 | } | 217 | } |
308 | 218 | ||
309 | static int amba_pm_poweroff_noirq(struct device *dev) | ||
310 | { | ||
311 | struct device_driver *drv = dev->driver; | ||
312 | int ret = 0; | ||
313 | |||
314 | if (!drv) | ||
315 | return 0; | ||
316 | |||
317 | if (drv->pm) { | ||
318 | if (drv->pm->poweroff_noirq) | ||
319 | ret = drv->pm->poweroff_noirq(dev); | ||
320 | } | ||
321 | |||
322 | return ret; | ||
323 | } | ||
324 | |||
325 | static int amba_pm_restore(struct device *dev) | 219 | static int amba_pm_restore(struct device *dev) |
326 | { | 220 | { |
327 | struct device_driver *drv = dev->driver; | 221 | struct device_driver *drv = dev->driver; |
@@ -340,32 +234,12 @@ static int amba_pm_restore(struct device *dev) | |||
340 | return ret; | 234 | return ret; |
341 | } | 235 | } |
342 | 236 | ||
343 | static int amba_pm_restore_noirq(struct device *dev) | ||
344 | { | ||
345 | struct device_driver *drv = dev->driver; | ||
346 | int ret = 0; | ||
347 | |||
348 | if (!drv) | ||
349 | return 0; | ||
350 | |||
351 | if (drv->pm) { | ||
352 | if (drv->pm->restore_noirq) | ||
353 | ret = drv->pm->restore_noirq(dev); | ||
354 | } | ||
355 | |||
356 | return ret; | ||
357 | } | ||
358 | |||
359 | #else /* !CONFIG_HIBERNATE_CALLBACKS */ | 237 | #else /* !CONFIG_HIBERNATE_CALLBACKS */ |
360 | 238 | ||
361 | #define amba_pm_freeze NULL | 239 | #define amba_pm_freeze NULL |
362 | #define amba_pm_thaw NULL | 240 | #define amba_pm_thaw NULL |
363 | #define amba_pm_poweroff NULL | 241 | #define amba_pm_poweroff NULL |
364 | #define amba_pm_restore NULL | 242 | #define amba_pm_restore NULL |
365 | #define amba_pm_freeze_noirq NULL | ||
366 | #define amba_pm_thaw_noirq NULL | ||
367 | #define amba_pm_poweroff_noirq NULL | ||
368 | #define amba_pm_restore_noirq NULL | ||
369 | 243 | ||
370 | #endif /* !CONFIG_HIBERNATE_CALLBACKS */ | 244 | #endif /* !CONFIG_HIBERNATE_CALLBACKS */ |
371 | 245 | ||
@@ -406,20 +280,12 @@ static int amba_pm_runtime_resume(struct device *dev) | |||
406 | #ifdef CONFIG_PM | 280 | #ifdef CONFIG_PM |
407 | 281 | ||
408 | static const struct dev_pm_ops amba_pm = { | 282 | static const struct dev_pm_ops amba_pm = { |
409 | .prepare = amba_pm_prepare, | ||
410 | .complete = amba_pm_complete, | ||
411 | .suspend = amba_pm_suspend, | 283 | .suspend = amba_pm_suspend, |
412 | .resume = amba_pm_resume, | 284 | .resume = amba_pm_resume, |
413 | .freeze = amba_pm_freeze, | 285 | .freeze = amba_pm_freeze, |
414 | .thaw = amba_pm_thaw, | 286 | .thaw = amba_pm_thaw, |
415 | .poweroff = amba_pm_poweroff, | 287 | .poweroff = amba_pm_poweroff, |
416 | .restore = amba_pm_restore, | 288 | .restore = amba_pm_restore, |
417 | .suspend_noirq = amba_pm_suspend_noirq, | ||
418 | .resume_noirq = amba_pm_resume_noirq, | ||
419 | .freeze_noirq = amba_pm_freeze_noirq, | ||
420 | .thaw_noirq = amba_pm_thaw_noirq, | ||
421 | .poweroff_noirq = amba_pm_poweroff_noirq, | ||
422 | .restore_noirq = amba_pm_restore_noirq, | ||
423 | SET_RUNTIME_PM_OPS( | 289 | SET_RUNTIME_PM_OPS( |
424 | amba_pm_runtime_suspend, | 290 | amba_pm_runtime_suspend, |
425 | amba_pm_runtime_resume, | 291 | amba_pm_runtime_resume, |