]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
serial: 8250_of: assume reg-shift of 2 for mrvl,mmp-uart
authorLubomir Rintel <lkundrak@v3.sk>
Sun, 24 Feb 2019 12:00:53 +0000 (13:00 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 9 Jul 2019 21:04:08 +0000 (22:04 +0100)
commit f4817843e39ce78aace0195a57d4e8500a65a898 upstream.

There are two other drivers that bind to mrvl,mmp-uart and both of them
assume register shift of 2 bits. There are device trees that lack the
property and rely on that assumption.

If this driver wins the race to bind to those devices, it should behave
the same as the older deprecated driver.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[bwh: Backported to 3.16: adjust filename]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/tty/serial/of_serial.c

index 3197872f307b731c9287023d59a312bb86f4abb1..0052e4fe09a8727fc8a7ab081ce502a60b56e7bd 100644 (file)
@@ -93,6 +93,10 @@ static int of_platform_serial_setup(struct platform_device *ofdev,
        if (of_property_read_u32(np, "reg-offset", &prop) == 0)
                port->mapbase += prop;
 
+       /* Compatibility with the deprecated pxa driver and 8250_pxa drivers. */
+       if (of_device_is_compatible(np, "mrvl,mmp-uart"))
+               port->regshift = 2;
+
        /* Check for registers offset within the devices address range */
        if (of_property_read_u32(np, "reg-shift", &prop) == 0)
                port->regshift = prop;