Commit b61c5ed5 authored by James Hogan's avatar James Hogan Committed by Greg Kroah-Hartman
Browse files

tty: serial: 8250_dw: Implement suspend/resume



Implement suspend and resume callbacks for DesignWare 8250 driver.
They're simple wrappers around serial8250_{suspend,resume}_port.

Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 59c2e855
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -161,6 +161,29 @@ static int __devexit dw8250_remove(struct platform_device *pdev)
	return 0;
}

#ifdef CONFIG_PM
static int dw8250_suspend(struct platform_device *pdev, pm_message_t state)
{
	struct dw8250_data *data = platform_get_drvdata(pdev);

	serial8250_suspend_port(data->line);

	return 0;
}

static int dw8250_resume(struct platform_device *pdev)
{
	struct dw8250_data *data = platform_get_drvdata(pdev);

	serial8250_resume_port(data->line);

	return 0;
}
#else
#define dw8250_suspend NULL
#define dw8250_resume NULL
#endif /* CONFIG_PM */

static const struct of_device_id dw8250_match[] = {
	{ .compatible = "snps,dw-apb-uart" },
	{ /* Sentinel */ }
@@ -175,6 +198,8 @@ static struct platform_driver dw8250_platform_driver = {
	},
	.probe			= dw8250_probe,
	.remove			= __devexit_p(dw8250_remove),
	.suspend		= dw8250_suspend,
	.resume			= dw8250_resume,
};

module_platform_driver(dw8250_platform_driver);