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

Commit c3b5d3be authored by Stephen Boyd's avatar Stephen Boyd Committed by Greg Kroah-Hartman
Browse files

msm_serial: Add support for non-GSBI UARTDM devices



Not all UARTDM hardware is part of a GSBI complex. Add support
for these devices and fix a bug where we assumed uartdm meant the
hardware was part of a GSBI complex.

Cc: David Brown <davidb@codeaurora.org>
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bfaddb7d
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -678,7 +678,7 @@ static void msm_config_port(struct uart_port *port, int flags)
		if (ret)
			return;
	}
	if (msm_port->is_uartdm)
	if (msm_port->gsbi_base)
		writel_relaxed(GSBI_PROTOCOL_UART,
				msm_port->gsbi_base + GSBI_CONTROL);
}
@@ -868,6 +868,11 @@ static struct uart_driver msm_uart_driver = {

static atomic_t msm_uart_next_id = ATOMIC_INIT(0);

static const struct of_device_id msm_uartdm_table[] = {
	{ .compatible = "qcom,msm-uartdm" },
	{ }
};

static int __init msm_serial_probe(struct platform_device *pdev)
{
	struct msm_port *msm_port;
@@ -887,7 +892,7 @@ static int __init msm_serial_probe(struct platform_device *pdev)
	port->dev = &pdev->dev;
	msm_port = UART_TO_MSM(port);

	if (platform_get_resource(pdev, IORESOURCE_MEM, 1))
	if (of_match_device(msm_uartdm_table, &pdev->dev))
		msm_port->is_uartdm = 1;
	else
		msm_port->is_uartdm = 0;
@@ -934,6 +939,7 @@ static int msm_serial_remove(struct platform_device *pdev)

static struct of_device_id msm_match_table[] = {
	{ .compatible = "qcom,msm-uart" },
	{ .compatible = "qcom,msm-uartdm" },
	{}
};