diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-05-03 03:42:37 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-05-03 03:42:36 -0700 |
| commit | 107513ced3c4f923de2d1de210913068b50cb6f3 (patch) | |
| tree | 870860986ccde1df2cf639be2b1639e68489ecc5 /drivers/tty | |
| parent | e3c33c9d53650719b2302ca34738978d9df49c49 (diff) | |
| parent | cf3e50f158501b60da7afdfad68e0e7358485581 (diff) | |
Merge "tty: serial: msm: Move request_irq to the end of startup"
Diffstat (limited to 'drivers/tty')
| -rw-r--r-- | drivers/tty/serial/msm_serial.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c index 343a32a4bad3..efaac5eb6592 100644 --- a/drivers/tty/serial/msm_serial.c +++ b/drivers/tty/serial/msm_serial.c @@ -1170,26 +1170,17 @@ static int msm_startup(struct uart_port *port) snprintf(msm_port->name, sizeof(msm_port->name), "msm_serial%d", port->line); - ret = request_irq(port->irq, msm_uart_irq, IRQF_TRIGGER_HIGH, - msm_port->name, port); - if (unlikely(ret)) - return ret; - /* * UART clk must be kept enabled to * avoid losing received character */ ret = clk_prepare_enable(msm_port->clk); - if (ret) { - goto err_clk; + if (ret) return ret; - } ret = clk_prepare_enable(msm_port->pclk); - if (ret) { + if (ret) goto err_pclk; - return ret; - } msm_serial_set_mnd_regs(port); @@ -1217,12 +1208,21 @@ static int msm_startup(struct uart_port *port) msm_request_rx_dma(msm_port, msm_port->uart.mapbase); } + ret = request_irq(port->irq, msm_uart_irq, IRQF_TRIGGER_HIGH, + msm_port->name, port); + if (unlikely(ret)) + goto err_irq; + return 0; +err_irq: + if (msm_port->is_uartdm) + msm_release_dma(msm_port); + + clk_disable_unprepare(msm_port->pclk); + err_pclk: clk_disable_unprepare(msm_port->clk); -err_clk: - free_irq(port->irq, port); return ret; } |
