diff options
author | Kiran Gunda <kgunda@codeaurora.org> | 2014-01-24 13:02:12 +0530 |
---|---|---|
committer | Dilip Kota <c_dkota@codeaurora.org> | 2014-03-11 14:05:17 +0530 |
commit | 7b29dca636d7f8ec31157382e26c514ca7f79249 (patch) | |
tree | 947d32d283a35cd6b23d79e4f759108fd18420e2 /drivers/tty | |
parent | 5f318d6ea59608913a7935252c83feacd9218381 (diff) |
msm_serial_hs: Manage UART irq in clock on/clock off
XO shutdown doesn't happen as long as the
uart port is kept open even though uart clocks
are switched off. This is because the uart core
interrupt is configured in port open and free'd
in port close.
To avoid this issue uart irq is disabled and
enabled in clock off and clock on respectively.
CRs-Fixed: 606931
Change-Id: I8a8b733b860bfc373fc38c9550955d571d3a70bf
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
Signed-off-by: Dilip Kota <c_dkota@codeaurora.org>
Diffstat (limited to 'drivers/tty')
-rw-r--r-- | drivers/tty/serial/msm_serial_hs.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/tty/serial/msm_serial_hs.c b/drivers/tty/serial/msm_serial_hs.c index 2ad8d40b3293..647535d60213 100644 --- a/drivers/tty/serial/msm_serial_hs.c +++ b/drivers/tty/serial/msm_serial_hs.c @@ -2205,6 +2205,7 @@ static int msm_hs_check_clock_off(struct uart_port *uport) msm_uport->wakeup.ignore = 1; enable_irq(msm_uport->wakeup.irq); } + disable_irq(uport->irq); wake_unlock(&msm_uport->dma_wake_lock); spin_unlock_irqrestore(&uport->lock, flags); @@ -2399,6 +2400,7 @@ void msm_hs_request_clock_on(struct uart_port *uport) mutex_lock(&msm_uport->clk_mutex); spin_lock_irqsave(&uport->lock, flags); + enable_irq(uport->irq); if (msm_uport->clk_state == MSM_HS_CLK_REQUEST_OFF) { /* Pulling RFR line high */ |