diff options
author | Nagarjuna Kristam <nkristam@nvidia.com> | 2012-02-07 10:58:54 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-02-09 16:05:14 -0800 |
commit | faaa975f6ff8719b2f1f2d3fa7bd69066362a171 (patch) | |
tree | 8997a249a5e383f876b03819a1ccc93b1bf8136d /drivers/tty | |
parent | 2ea18f70f16e7ad815bda8bbcdb3affcea6e7f8b (diff) |
Revert "tty: serial: tegra: Add runtime PM support"
This reverts commit 944a82b32d44bae0acb56abf5fec33a1c696c362.
Bug 934678
Change-Id: Icf6cbc2cd8dc22dcd3126f2da19923e7076c0071
Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Reviewed-on: http://git-master/r/79710
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Diffstat (limited to 'drivers/tty')
-rw-r--r-- | drivers/tty/serial/tegra_hsuart.c | 46 |
1 files changed, 7 insertions, 39 deletions
diff --git a/drivers/tty/serial/tegra_hsuart.c b/drivers/tty/serial/tegra_hsuart.c index 0d5d855f97a0..04d007a03eb7 100644 --- a/drivers/tty/serial/tegra_hsuart.c +++ b/drivers/tty/serial/tegra_hsuart.c @@ -42,7 +42,6 @@ #include <linux/slab.h> #include <linux/workqueue.h> #include <linux/tegra_uart.h> -#include <linux/pm_runtime.h> #include <mach/dma.h> #include <mach/clk.h> @@ -636,12 +635,10 @@ static void tegra_uart_hw_deinit(struct tegra_uart_port *t) unsigned char lsr; unsigned char msr; unsigned char mcr; - struct uart_port *u; /* Disable interrupts */ uart_writeb(t, 0, UART_IER); - u = &t->uport; lsr = uart_readb(t, UART_LSR); if ((lsr & UART_LSR_TEMT) != UART_LSR_TEMT) { msr = uart_readb(t, UART_MSR); @@ -679,7 +676,7 @@ static void tegra_uart_hw_deinit(struct tegra_uart_port *t) spin_unlock_irqrestore(&t->uport.lock, flags); - pm_runtime_put_sync(u->dev); + clk_disable(t->clk); } static void tegra_uart_free_rx_dma_buffer(struct tegra_uart_port *t) @@ -704,7 +701,6 @@ static void tegra_uart_free_rx_dma(struct tegra_uart_port *t) static int tegra_uart_hw_init(struct tegra_uart_port *t) { unsigned char ier; - struct uart_port *u; dev_vdbg(t->uport.dev, "+tegra_uart_hw_init\n"); @@ -713,9 +709,8 @@ static int tegra_uart_hw_init(struct tegra_uart_port *t) t->lcr_shadow = 0; t->ier_shadow = 0; t->baud = 0; - u = &t->uport; - pm_runtime_get_sync(u->dev); + clk_enable(t->clk); /* Reset the UART controller to clear all previous status.*/ tegra_periph_reset_assert(t->clk); @@ -1399,39 +1394,13 @@ static int __devexit tegra_uart_remove(struct platform_device *pdev); static int tegra_uart_suspend(struct platform_device *pdev, pm_message_t state); static int tegra_uart_resume(struct platform_device *pdev); -#if defined(CONFIG_PM_RUNTIME) -static int tegra_uart_runtime_suspend(struct device *dev) -{ - struct platform_device *pdev = to_platform_device(dev); - struct tegra_uart_port *t = platform_get_drvdata(pdev); - clk_disable(t->clk); - return 0; -} - -static int tegra_uart_runtime_resume(struct device *dev) -{ - struct platform_device *pdev = to_platform_device(dev); - struct tegra_uart_port *t = platform_get_drvdata(pdev); - clk_enable(t->clk); - return 0; -} - -static const struct dev_pm_ops tegra_uart_pm_ops = { - .runtime_suspend = tegra_uart_runtime_suspend, - .runtime_resume = tegra_uart_runtime_resume, -}; -#endif - static struct platform_driver tegra_uart_platform_driver = { .remove = tegra_uart_remove, .probe = tegra_uart_probe, .suspend = tegra_uart_suspend, .resume = tegra_uart_resume, .driver = { - .name = "tegra_uart", -#if defined(CONFIG_PM_RUNTIME) - .pm = &tegra_uart_pm_ops -#endif + .name = "tegra_uart" } }; @@ -1458,7 +1427,7 @@ static int tegra_uart_suspend(struct platform_device *pdev, pm_message_t state) /* enable clock before calling suspend so that controller register can be accessible */ if (t->uart_state == TEGRA_UART_CLOCK_OFF) { - pm_runtime_get_sync(u->dev); + clk_enable(t->clk); t->uart_state = TEGRA_UART_OPENED; } @@ -1496,7 +1465,6 @@ static int __devexit tegra_uart_remove(struct platform_device *pdev) pr_err("Invalid Uart instance (%d)\n", pdev->id); u = &t->uport; - pm_runtime_disable(u->dev); uart_remove_one_port(&tegra_uart_driver, u); tegra_uart_free_rx_dma_buffer(t); @@ -1583,8 +1551,8 @@ static int tegra_uart_probe(struct platform_device *pdev) goto rx_dma_buff_fail; } } - pm_runtime_enable(u->dev); return ret; + rx_dma_buff_fail: uart_remove_one_port(&tegra_uart_driver, u); fail: @@ -1616,7 +1584,7 @@ void tegra_uart_request_clock_off(struct uart_port *uport) spin_unlock_irqrestore(&uport->lock, flags); if (is_clk_disable) - pm_runtime_put_sync(uport->dev); + clk_disable(t->clk); return; } @@ -1640,7 +1608,7 @@ void tegra_uart_request_clock_on(struct uart_port *uport) spin_unlock_irqrestore(&uport->lock, flags); if (is_clk_enable) - pm_runtime_get_sync(uport->dev); + clk_enable(t->clk); return; } |