Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ffb1ba6f authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "tty: serial: msm: Move request_irq to the end of startup"

parents 81d23dac 04ed8080
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -1166,26 +1166,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);

@@ -1213,12 +1204,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;
}