Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6481f2b5 authored by Saeed Bishara's avatar Saeed Bishara Committed by Jeff Garzik
Browse files

sata_mv: add power management support for the platform driver

parent c77a2f4e
Loading
Loading
Loading
Loading

drivers/ata/sata_mv.c

100644 → 100755
+43 −0
Original line number Diff line number Diff line
@@ -4112,9 +4112,52 @@ static int __devexit mv_platform_remove(struct platform_device *pdev)
	return 0;
}

#ifdef CONFIG_PM
static int mv_platform_suspend(struct platform_device *pdev, pm_message_t state)
{
	struct ata_host *host = dev_get_drvdata(&pdev->dev);
	if (host)
		return ata_host_suspend(host, state);
	else
		return 0;
}

static int mv_platform_resume(struct platform_device *pdev)
{
	struct ata_host *host = dev_get_drvdata(&pdev->dev);
	int ret;

	if (host) {
		struct mv_host_priv *hpriv = host->private_data;
		const struct mv_sata_platform_data *mv_platform_data = \
			pdev->dev.platform_data;
		/*
		 * (Re-)program MBUS remapping windows if we are asked to.
		 */
		if (mv_platform_data->dram != NULL)
			mv_conf_mbus_windows(hpriv, mv_platform_data->dram);

		/* initialize adapter */
		ret = mv_init_host(host, chip_soc);
		if (ret) {
			printk(KERN_ERR DRV_NAME ": Error during HW init\n");
			return ret;
		}
		ata_host_resume(host);
	}

	return 0;
}
#else
#define mv_platform_suspend NULL
#define mv_platform_resume NULL
#endif

static struct platform_driver mv_platform_driver = {
	.probe			= mv_platform_probe,
	.remove			= __devexit_p(mv_platform_remove),
	.suspend		= mv_platform_suspend,
	.resume			= mv_platform_resume,
	.driver			= {
				   .name = DRV_NAME,
				   .owner = THIS_MODULE,