Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
[firefly-linux-kernel-4.4.55.git] / drivers / serial / of_serial.c
index 2af8fd1131234be29fd612b207da23543c78870b..17849dcb9adc7e0e5090231192eef1778faeb8bb 100644 (file)
@@ -31,8 +31,8 @@ static int __devinit of_platform_serial_setup(struct platform_device *ofdev,
 {
        struct resource resource;
        struct device_node *np = ofdev->dev.of_node;
-       const unsigned int *clk, *spd;
-       const u32 *prop;
+       const __be32 *clk, *spd;
+       const __be32 *prop;
        int ret, prop_size;
 
        memset(port, 0, sizeof *port);
@@ -55,23 +55,23 @@ static int __devinit of_platform_serial_setup(struct platform_device *ofdev,
        /* Check for shifted address mapping */
        prop = of_get_property(np, "reg-offset", &prop_size);
        if (prop && (prop_size == sizeof(u32)))
-               port->mapbase += *prop;
+               port->mapbase += be32_to_cpup(prop);
 
        /* Check for registers offset within the devices address range */
        prop = of_get_property(np, "reg-shift", &prop_size);
        if (prop && (prop_size == sizeof(u32)))
-               port->regshift = *prop;
+               port->regshift = be32_to_cpup(prop);
 
        port->irq = irq_of_parse_and_map(np, 0);
        port->iotype = UPIO_MEM;
        port->type = type;
-       port->uartclk = *clk;
+       port->uartclk = be32_to_cpup(clk);
        port->flags = UPF_SHARE_IRQ | UPF_BOOT_AUTOCONF | UPF_IOREMAP
                | UPF_FIXED_PORT | UPF_FIXED_TYPE;
        port->dev = &ofdev->dev;
        /* If current-speed was set, then try not to change it. */
        if (spd)
-               port->custom_divisor = *clk / (16 * (*spd));
+               port->custom_divisor = be32_to_cpup(clk) / (16 * (be32_to_cpup(spd)));
 
        return 0;
 }