diff options
author | Ezekeel <notezekeel@googlemail.com> | 2011-12-18 07:09:00 +0100 |
---|---|---|
committer | Ezekeel <notezekeel@googlemail.com> | 2011-12-18 07:09:00 +0100 |
commit | d948ec4839368c01b6ba401e942abb42d040c8f7 (patch) | |
tree | eb107008d96ef1c8ce752d7d9ba41dee7727d0e6 /drivers/tty | |
parent | 969f111be540ade5c88357a20565052cccbac2d6 (diff) | |
download | kernel_samsung_crespo-d948ec4839368c01b6ba401e942abb42d040c8f7.zip kernel_samsung_crespo-d948ec4839368c01b6ba401e942abb42d040c8f7.tar.gz kernel_samsung_crespo-d948ec4839368c01b6ba401e942abb42d040c8f7.tar.bz2 |
Add power saving state DEEP IDLE version 2.
Diffstat (limited to 'drivers/tty')
-rw-r--r-- | drivers/tty/serial/samsung.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index 0026196..c7de749 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c @@ -448,6 +448,16 @@ static int s3c24xx_serial_startup(struct uart_port *port) /* power power management control */ +#ifdef CONFIG_CPU_DIDLE +static bool gps_running = false; + +bool gps_is_running(void) +{ + return gps_running; +} +EXPORT_SYMBOL(gps_is_running); +#endif + static void s3c24xx_serial_pm(struct uart_port *port, unsigned int level, unsigned int old) { @@ -462,13 +472,21 @@ static void s3c24xx_serial_pm(struct uart_port *port, unsigned int level, if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL) clk_disable(ourport->baudclk); - +#ifdef CONFIG_CPU_DIDLE + if (ourport->port.irq == IRQ_S3CUART_RX1) + gps_running = false; +#endif clk_disable(ourport->clk); + break; case 0: - clk_enable(ourport->clk); + clk_enable(ourport->clk); +#ifdef CONFIG_CPU_DIDLE + if (ourport->port.irq == IRQ_S3CUART_RX1) + gps_running = true; +#endif if (!IS_ERR(ourport->baudclk) && ourport->baudclk != NULL) clk_enable(ourport->baudclk); |