diff options
Diffstat (limited to 'drivers/scsi/mesh.c')
-rw-r--r-- | drivers/scsi/mesh.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/scsi/mesh.c b/drivers/scsi/mesh.c index fd63b06d9ef1..11aa917629ac 100644 --- a/drivers/scsi/mesh.c +++ b/drivers/scsi/mesh.c | |||
@@ -1765,7 +1765,7 @@ static int mesh_suspend(struct macio_dev *mdev, pm_message_t mesg) | |||
1765 | default: | 1765 | default: |
1766 | return 0; | 1766 | return 0; |
1767 | } | 1767 | } |
1768 | if (mesg.event == mdev->ofdev.dev.power.power_state.event) | 1768 | if (ms->phase == sleeping) |
1769 | return 0; | 1769 | return 0; |
1770 | 1770 | ||
1771 | scsi_block_requests(ms->host); | 1771 | scsi_block_requests(ms->host); |
@@ -1780,8 +1780,6 @@ static int mesh_suspend(struct macio_dev *mdev, pm_message_t mesg) | |||
1780 | disable_irq(ms->meshintr); | 1780 | disable_irq(ms->meshintr); |
1781 | set_mesh_power(ms, 0); | 1781 | set_mesh_power(ms, 0); |
1782 | 1782 | ||
1783 | mdev->ofdev.dev.power.power_state = mesg; | ||
1784 | |||
1785 | return 0; | 1783 | return 0; |
1786 | } | 1784 | } |
1787 | 1785 | ||
@@ -1790,7 +1788,7 @@ static int mesh_resume(struct macio_dev *mdev) | |||
1790 | struct mesh_state *ms = (struct mesh_state *)macio_get_drvdata(mdev); | 1788 | struct mesh_state *ms = (struct mesh_state *)macio_get_drvdata(mdev); |
1791 | unsigned long flags; | 1789 | unsigned long flags; |
1792 | 1790 | ||
1793 | if (mdev->ofdev.dev.power.power_state.event == PM_EVENT_ON) | 1791 | if (ms->phase != sleeping) |
1794 | return 0; | 1792 | return 0; |
1795 | 1793 | ||
1796 | set_mesh_power(ms, 1); | 1794 | set_mesh_power(ms, 1); |
@@ -1801,8 +1799,6 @@ static int mesh_resume(struct macio_dev *mdev) | |||
1801 | enable_irq(ms->meshintr); | 1799 | enable_irq(ms->meshintr); |
1802 | scsi_unblock_requests(ms->host); | 1800 | scsi_unblock_requests(ms->host); |
1803 | 1801 | ||
1804 | mdev->ofdev.dev.power.power_state.event = PM_EVENT_ON; | ||
1805 | |||
1806 | return 0; | 1802 | return 0; |
1807 | } | 1803 | } |
1808 | 1804 | ||