Loading drivers/tty/serial/msm_serial.c +27 −13 Original line number Diff line number Diff line Loading @@ -1160,15 +1160,6 @@ static int msm_set_baud_rate(struct uart_port *port, unsigned int baud, return baud; } static void msm_init_clock(struct uart_port *port) { struct msm_port *msm_port = UART_TO_MSM(port); clk_prepare_enable(msm_port->clk); clk_prepare_enable(msm_port->pclk); msm_serial_set_mnd_regs(port); } static int msm_startup(struct uart_port *port) { struct msm_port *msm_port = UART_TO_MSM(port); Loading @@ -1178,7 +1169,19 @@ static int msm_startup(struct uart_port *port) snprintf(msm_port->name, sizeof(msm_port->name), "msm_serial%d", port->line); msm_init_clock(port); /* * UART clk must be kept enabled to * avoid losing received character */ ret = clk_prepare_enable(msm_port->clk); if (ret) return ret; ret = clk_prepare_enable(msm_port->pclk); if (ret) goto err_pclk; msm_serial_set_mnd_regs(port); if (likely(port->fifosize > 12)) rfr_level = port->fifosize - 12; Loading Loading @@ -1217,6 +1220,8 @@ static int msm_startup(struct uart_port *port) clk_disable_unprepare(msm_port->pclk); clk_disable_unprepare(msm_port->clk); err_pclk: clk_disable_unprepare(msm_port->clk); return ret; } Loading @@ -1231,6 +1236,7 @@ static void msm_shutdown(struct uart_port *port) if (msm_port->is_uartdm) msm_release_dma(msm_port); clk_disable_unprepare(msm_port->pclk); clk_disable_unprepare(msm_port->clk); free_irq(port->irq, port); Loading Loading @@ -1397,8 +1403,16 @@ static void msm_power(struct uart_port *port, unsigned int state, switch (state) { case 0: clk_prepare_enable(msm_port->clk); clk_prepare_enable(msm_port->pclk); /* * UART clk must be kept enabled to * avoid losing received character */ if (clk_prepare_enable(msm_port->clk)) return; if (clk_prepare_enable(msm_port->pclk)) { clk_disable_unprepare(msm_port->clk); return; } break; case 3: clk_disable_unprepare(msm_port->clk); Loading Loading @@ -1670,7 +1684,7 @@ static int __init msm_console_setup(struct console *co, char *options) if (unlikely(!port->membase)) return -ENXIO; msm_init_clock(port); msm_serial_set_mnd_regs(port); if (options) uart_parse_options(options, &baud, &parity, &bits, &flow); Loading Loading
drivers/tty/serial/msm_serial.c +27 −13 Original line number Diff line number Diff line Loading @@ -1160,15 +1160,6 @@ static int msm_set_baud_rate(struct uart_port *port, unsigned int baud, return baud; } static void msm_init_clock(struct uart_port *port) { struct msm_port *msm_port = UART_TO_MSM(port); clk_prepare_enable(msm_port->clk); clk_prepare_enable(msm_port->pclk); msm_serial_set_mnd_regs(port); } static int msm_startup(struct uart_port *port) { struct msm_port *msm_port = UART_TO_MSM(port); Loading @@ -1178,7 +1169,19 @@ static int msm_startup(struct uart_port *port) snprintf(msm_port->name, sizeof(msm_port->name), "msm_serial%d", port->line); msm_init_clock(port); /* * UART clk must be kept enabled to * avoid losing received character */ ret = clk_prepare_enable(msm_port->clk); if (ret) return ret; ret = clk_prepare_enable(msm_port->pclk); if (ret) goto err_pclk; msm_serial_set_mnd_regs(port); if (likely(port->fifosize > 12)) rfr_level = port->fifosize - 12; Loading Loading @@ -1217,6 +1220,8 @@ static int msm_startup(struct uart_port *port) clk_disable_unprepare(msm_port->pclk); clk_disable_unprepare(msm_port->clk); err_pclk: clk_disable_unprepare(msm_port->clk); return ret; } Loading @@ -1231,6 +1236,7 @@ static void msm_shutdown(struct uart_port *port) if (msm_port->is_uartdm) msm_release_dma(msm_port); clk_disable_unprepare(msm_port->pclk); clk_disable_unprepare(msm_port->clk); free_irq(port->irq, port); Loading Loading @@ -1397,8 +1403,16 @@ static void msm_power(struct uart_port *port, unsigned int state, switch (state) { case 0: clk_prepare_enable(msm_port->clk); clk_prepare_enable(msm_port->pclk); /* * UART clk must be kept enabled to * avoid losing received character */ if (clk_prepare_enable(msm_port->clk)) return; if (clk_prepare_enable(msm_port->pclk)) { clk_disable_unprepare(msm_port->clk); return; } break; case 3: clk_disable_unprepare(msm_port->clk); Loading Loading @@ -1670,7 +1684,7 @@ static int __init msm_console_setup(struct console *co, char *options) if (unlikely(!port->membase)) return -ENXIO; msm_init_clock(port); msm_serial_set_mnd_regs(port); if (options) uart_parse_options(options, &baud, &parity, &bits, &flow); Loading