diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/base/power/main.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index 30f0ceebd36c..df04cb4a3611 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c | |||
| @@ -372,14 +372,11 @@ static int device_resume_noirq(struct device *dev, pm_message_t state) | |||
| 372 | TRACE_DEVICE(dev); | 372 | TRACE_DEVICE(dev); |
| 373 | TRACE_RESUME(0); | 373 | TRACE_RESUME(0); |
| 374 | 374 | ||
| 375 | if (!dev->bus) | 375 | if (dev->bus && dev->bus->pm) { |
| 376 | goto End; | ||
| 377 | |||
| 378 | if (dev->bus->pm) { | ||
| 379 | pm_dev_dbg(dev, state, "EARLY "); | 376 | pm_dev_dbg(dev, state, "EARLY "); |
| 380 | error = pm_noirq_op(dev, dev->bus->pm, state); | 377 | error = pm_noirq_op(dev, dev->bus->pm, state); |
| 381 | } | 378 | } |
| 382 | End: | 379 | |
| 383 | TRACE_RESUME(error); | 380 | TRACE_RESUME(error); |
| 384 | return error; | 381 | return error; |
| 385 | } | 382 | } |
| @@ -615,10 +612,7 @@ static int device_suspend_noirq(struct device *dev, pm_message_t state) | |||
| 615 | { | 612 | { |
| 616 | int error = 0; | 613 | int error = 0; |
| 617 | 614 | ||
| 618 | if (!dev->bus) | 615 | if (dev->bus && dev->bus->pm) { |
| 619 | return 0; | ||
| 620 | |||
| 621 | if (dev->bus->pm) { | ||
| 622 | pm_dev_dbg(dev, state, "LATE "); | 616 | pm_dev_dbg(dev, state, "LATE "); |
| 623 | error = pm_noirq_op(dev, dev->bus->pm, state); | 617 | error = pm_noirq_op(dev, dev->bus->pm, state); |
| 624 | } | 618 | } |
