diff options
Diffstat (limited to 'drivers/ata/pata_mpc52xx.c')
-rw-r--r-- | drivers/ata/pata_mpc52xx.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/ata/pata_mpc52xx.c b/drivers/ata/pata_mpc52xx.c index 368fac7d168b..182e83c9047b 100644 --- a/drivers/ata/pata_mpc52xx.c +++ b/drivers/ata/pata_mpc52xx.c | |||
@@ -467,13 +467,27 @@ mpc52xx_ata_remove(struct of_device *op) | |||
467 | static int | 467 | static int |
468 | mpc52xx_ata_suspend(struct of_device *op, pm_message_t state) | 468 | mpc52xx_ata_suspend(struct of_device *op, pm_message_t state) |
469 | { | 469 | { |
470 | return 0; /* FIXME : What to do here ? */ | 470 | struct ata_host *host = dev_get_drvdata(&op->dev); |
471 | |||
472 | return ata_host_suspend(host, state); | ||
471 | } | 473 | } |
472 | 474 | ||
473 | static int | 475 | static int |
474 | mpc52xx_ata_resume(struct of_device *op) | 476 | mpc52xx_ata_resume(struct of_device *op) |
475 | { | 477 | { |
476 | return 0; /* FIXME : What to do here ? */ | 478 | struct ata_host *host = dev_get_drvdata(&op->dev); |
479 | struct mpc52xx_ata_priv *priv = host->private_data; | ||
480 | int rv; | ||
481 | |||
482 | rv = mpc52xx_ata_hw_init(priv); | ||
483 | if (rv) { | ||
484 | printk(KERN_ERR DRV_NAME ": Error during HW init\n"); | ||
485 | return rv; | ||
486 | } | ||
487 | |||
488 | ata_host_resume(host); | ||
489 | |||
490 | return 0; | ||
477 | } | 491 | } |
478 | 492 | ||
479 | #endif | 493 | #endif |