From 7b29dca636d7f8ec31157382e26c514ca7f79249 Mon Sep 17 00:00:00 2001 From: Kiran Gunda Date: Fri, 24 Jan 2014 13:02:12 +0530 Subject: 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 Signed-off-by: Dilip Kota --- drivers/tty/serial/msm_serial_hs.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'drivers/tty') 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 */ -- cgit v1.2.3