atheros[uart]: use 32-bit aligned I/O
[openwrt/openwrt.git] / target / linux / atheros / patches-3.10 / 101-early-printk-support.patch
index dc5f3a8dc88bd861cc24e67f7df6f3b7e0db7fb3..be68025a5c7c69699d92aa5ee94aea62d4844d36 100644 (file)
@@ -1,6 +1,6 @@
 --- /dev/null
 +++ b/arch/mips/ar231x/early_printk.c
-@@ -0,0 +1,44 @@
+@@ -0,0 +1,46 @@
 +/*
 + * This file is subject to the terms and conditions of the GNU General Public
 + * License.  See the file "COPYING" in the main directory of this archive
 +static inline void prom_uart_wr(void __iomem *base, unsigned reg,
 +                              unsigned char ch)
 +{
-+      __raw_writeb(ch, base + 4 * reg);
++      __raw_writel(ch, base + 4 * reg);
 +}
 +
 +static inline unsigned char prom_uart_rr(void __iomem *base, unsigned reg)
 +{
-+      return __raw_readb(base + 4 * reg);
++      return __raw_readl(base + 4 * reg);
 +}
 +
 +void prom_putchar(unsigned char ch)
 +                      base = (void __iomem *)(KSEG1ADDR(AR531X_UART0));
 +      }
 +
-+      while ((prom_uart_rr(base, UART_LSR) & UART_LSR_THRE) == 0);
++      while ((prom_uart_rr(base, UART_LSR) & UART_LSR_THRE) == 0)
++              ;
 +      prom_uart_wr(base, UART_TX, ch);
-+      while ((prom_uart_rr(base, UART_LSR) & UART_LSR_THRE) == 0);
++      while ((prom_uart_rr(base, UART_LSR) & UART_LSR_THRE) == 0)
++              ;
 +}
 +
 --- a/arch/mips/ar231x/Makefile
@@ -58,7 +60,7 @@
  obj-$(CONFIG_ATHEROS_AR2315) += ar2315.o
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -147,6 +147,7 @@ config ATHEROS_AR231X
+@@ -148,6 +148,7 @@ config ATHEROS_AR231X
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_32BIT_KERNEL
        select ARCH_REQUIRE_GPIOLIB