serial: 8250_pxa: avoid autodetecting the port type
authorLubomir Rintel <lkundrak@v3.sk>
Wed, 19 Feb 2020 08:01:30 +0000 (09:01 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Feb 2020 10:38:57 +0000 (11:38 +0100)
If we're unlucky enough that this drivers binds to a mrvl,mmp-uart device
on a MMP3, the port type gets detected as 16550A instead of XScale, and it
won't work. Other drivers that may bind to the same hardware are 8250_of
and, god forbid, serial_pxa.

Force the port type, we know it's a PORT_XSCALE.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Link: https://lore.kernel.org/r/20200219080130.4334-1-lkundrak@v3.sk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_pxa.c

index c47188860e32577f1833d3711cfabd28227c25c4..11612d174716f4ebf0f464a990e89b422c8991dc 100644 (file)
@@ -123,7 +123,7 @@ static int serial_pxa_probe(struct platform_device *pdev)
        uart.port.regshift = 2;
        uart.port.irq = irqres->start;
        uart.port.fifosize = 64;
-       uart.port.flags = UPF_IOREMAP | UPF_SKIP_TEST;
+       uart.port.flags = UPF_IOREMAP | UPF_SKIP_TEST | UPF_FIXED_TYPE;
        uart.port.dev = &pdev->dev;
        uart.port.uartclk = clk_get_rate(data->clk);
        uart.port.pm = serial_pxa_pm;