mips: unify prom_putchar() declarations
authorAlexander Sverdlin <alexander.sverdlin@nokia.com>
Fri, 13 Jul 2018 15:51:56 +0000 (17:51 +0200)
committerPaul Burton <paul.burton@mips.com>
Tue, 17 Jul 2018 16:40:17 +0000 (09:40 -0700)
prom_putchar() is used centrally in early printk infrastructure therefore
at least MIPS should agree on the function return type.

[paul.burton@mips.com:
  - Include linux/types.h in asm/setup.h to gain the bool typedef before
    we start include asm/setup.h elsewhere.
  - Include asm/setup.h in all files that use or define prom_putchar().
  - Also standardise on signed rather than unsigned char argument.]

Signed-off-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
Signed-off-by: Paul Burton <paul.burton@mips.com>
Patchwork: https://patchwork.linux-mips.org/patch/19842/
Cc: linux-mips@linux-mips.org
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <jhogan@kernel.org>
Cc: Jonas Gorski <jonas.gorski@gmail.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Kate Stewart <kstewart@linuxfoundation.org>
Cc: Philippe Ombredanne <pombredanne@nexb.com>
28 files changed:
arch/mips/alchemy/board-gpr.c
arch/mips/alchemy/board-mtx1.c
arch/mips/alchemy/board-xxs1500.c
arch/mips/alchemy/devboards/platform.c
arch/mips/ar7/prom.c
arch/mips/ath25/early_printk.c
arch/mips/ath79/early_printk.c
arch/mips/bcm63xx/early_printk.c
arch/mips/boot/compressed/uart-prom.c
arch/mips/cavium-octeon/setup.c
arch/mips/fw/arc/arc_con.c
arch/mips/fw/arc/promlib.c
arch/mips/fw/sni/sniprom.c
arch/mips/include/asm/setup.h
arch/mips/include/asm/sgialib.h
arch/mips/include/asm/txx9/generic.h
arch/mips/kernel/early_printk.c
arch/mips/kernel/early_printk_8250.c
arch/mips/lantiq/early_printk.c
arch/mips/lasat/prom.c
arch/mips/loongson64/common/early_printk.c
arch/mips/netlogic/common/earlycons.c
arch/mips/paravirt/serial.c
arch/mips/pic32/pic32mzda/early_console.c
arch/mips/ralink/early_printk.c
arch/mips/sgi-ip27/ip27-console.c
arch/mips/sibyte/common/cfe.c
arch/mips/txx9/generic/setup.c

index fa75d75b5ba9177f669e6f61f6395a6db28563d0..ddff9a02513d57e8b86e1c862cac6810ee7976b7 100644 (file)
@@ -34,6 +34,7 @@
 #include <asm/bootinfo.h>
 #include <asm/idle.h>
 #include <asm/reboot.h>
+#include <asm/setup.h>
 #include <asm/mach-au1x00/au1000.h>
 #include <asm/mach-au1x00/gpio-au1000.h>
 #include <prom.h>
@@ -60,7 +61,7 @@ void __init prom_init(void)
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
 
-void prom_putchar(unsigned char c)
+void prom_putchar(char c)
 {
        alchemy_uart_putchar(AU1000_UART0_PHYS_ADDR, c);
 }
index aab55aaf3d62a10c5e9882f4fe56f6a32c9d2a39..d625e6f99ae78eefa8c3d15e105134d13f6152c9 100644 (file)
@@ -31,6 +31,7 @@
 #include <mtd/mtd-abi.h>
 #include <asm/bootinfo.h>
 #include <asm/reboot.h>
+#include <asm/setup.h>
 #include <asm/mach-au1x00/au1000.h>
 #include <asm/mach-au1x00/gpio-au1000.h>
 #include <asm/mach-au1x00/au1xxx_eth.h>
@@ -58,7 +59,7 @@ void __init prom_init(void)
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
 
-void prom_putchar(unsigned char c)
+void prom_putchar(char c)
 {
        alchemy_uart_putchar(AU1000_UART0_PHYS_ADDR, c);
 }
index 0fc53e08a894c94671d2b77d3af963b4ef4bef7f..5f05b8714385d062c8d744b3f324b6169751738a 100644 (file)
@@ -29,6 +29,7 @@
 #include <linux/pm.h>
 #include <asm/bootinfo.h>
 #include <asm/reboot.h>
+#include <asm/setup.h>
 #include <asm/mach-au1x00/au1000.h>
 #include <prom.h>
 
@@ -55,7 +56,7 @@ void __init prom_init(void)
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
 
-void prom_putchar(unsigned char c)
+void prom_putchar(char c)
 {
        alchemy_uart_putchar(AU1000_UART0_PHYS_ADDR, c);
 }
index 203854ddd1bb34df9ff90eae917c72515524aa41..8d4b65c3268a5eef08f8fe10518af69468bc2b00 100644 (file)
@@ -14,6 +14,7 @@
 #include <asm/bootinfo.h>
 #include <asm/idle.h>
 #include <asm/reboot.h>
+#include <asm/setup.h>
 #include <asm/mach-au1x00/au1000.h>
 #include <asm/mach-db1x00/bcsr.h>
 
@@ -36,7 +37,7 @@ void __init prom_init(void)
        add_memory_region(0, memsize, BOOT_MEM_RAM);
 }
 
-void prom_putchar(unsigned char c)
+void prom_putchar(char c)
 {
        if (alchemy_get_cputype() == ALCHEMY_CPU_AU1300)
                alchemy_uart_putchar(AU1300_UART2_PHYS_ADDR, c);
index dd53987a690ffdc12c5f87fd8ebade8d156faab5..2ec8d9ac91ec146107165de974fd095a11e7c5ab 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/string.h>
 #include <linux/io.h>
 #include <asm/bootinfo.h>
+#include <asm/setup.h>
 
 #include <asm/mach-ar7/ar7.h>
 #include <asm/mach-ar7/prom.h>
@@ -259,10 +260,9 @@ static inline void serial_out(int offset, int value)
        writel(value, (void *)PORT(offset));
 }
 
-int prom_putchar(char c)
+void prom_putchar(char c)
 {
        while ((serial_in(UART_LSR) & UART_LSR_TEMT) == 0)
                ;
        serial_out(UART_TX, c);
-       return 1;
 }
index 36035b628161cc8bb07a52bf5b14ca3dd40d43fa..d534761e9cdaafaf07a4686a4b105e72c22a3a73 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/mm.h>
 #include <linux/io.h>
 #include <linux/serial_reg.h>
+#include <asm/setup.h>
 
 #include "devices.h"
 #include "ar2315_regs.h"
@@ -25,7 +26,7 @@ static inline unsigned char prom_uart_rr(void __iomem *base, unsigned reg)
        return __raw_readl(base + 4 * reg);
 }
 
-void prom_putchar(unsigned char ch)
+void prom_putchar(char ch)
 {
        static void __iomem *base;
 
@@ -38,7 +39,7 @@ void prom_putchar(unsigned char ch)
 
        while ((prom_uart_rr(base, UART_LSR) & UART_LSR_THRE) == 0)
                ;
-       prom_uart_wr(base, UART_TX, ch);
+       prom_uart_wr(base, UART_TX, (unsigned char)ch);
        while ((prom_uart_rr(base, UART_LSR) & UART_LSR_THRE) == 0)
                ;
 }
index d1adc59af5bfeb251f436dfa4f029145152875b5..de8c91198ac5cc408dfd3cb3efef9a6ba08a6412 100644 (file)
 #include <linux/errno.h>
 #include <linux/serial_reg.h>
 #include <asm/addrspace.h>
+#include <asm/setup.h>
 
 #include <asm/mach-ath79/ath79.h>
 #include <asm/mach-ath79/ar71xx_regs.h>
 #include <asm/mach-ath79/ar933x_uart.h>
 
-static void (*_prom_putchar) (unsigned char);
+static void (*_prom_putchar)(char);
 
 static inline void prom_putchar_wait(void __iomem *reg, u32 mask, u32 val)
 {
@@ -33,27 +34,28 @@ static inline void prom_putchar_wait(void __iomem *reg, u32 mask, u32 val)
 
 #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
 
-static void prom_putchar_ar71xx(unsigned char ch)
+static void prom_putchar_ar71xx(char ch)
 {
        void __iomem *base = (void __iomem *)(KSEG1ADDR(AR71XX_UART_BASE));
 
        prom_putchar_wait(base + UART_LSR * 4, BOTH_EMPTY, BOTH_EMPTY);
-       __raw_writel(ch, base + UART_TX * 4);
+       __raw_writel((unsigned char)ch, base + UART_TX * 4);
        prom_putchar_wait(base + UART_LSR * 4, BOTH_EMPTY, BOTH_EMPTY);
 }
 
-static void prom_putchar_ar933x(unsigned char ch)
+static void prom_putchar_ar933x(char ch)
 {
        void __iomem *base = (void __iomem *)(KSEG1ADDR(AR933X_UART_BASE));
 
        prom_putchar_wait(base + AR933X_UART_DATA_REG, AR933X_UART_DATA_TX_CSR,
                          AR933X_UART_DATA_TX_CSR);
-       __raw_writel(AR933X_UART_DATA_TX_CSR | ch, base + AR933X_UART_DATA_REG);
+       __raw_writel(AR933X_UART_DATA_TX_CSR | (unsigned char)ch,
+                    base + AR933X_UART_DATA_REG);
        prom_putchar_wait(base + AR933X_UART_DATA_REG, AR933X_UART_DATA_TX_CSR,
                          AR933X_UART_DATA_TX_CSR);
 }
 
-static void prom_putchar_dummy(unsigned char ch)
+static void prom_putchar_dummy(char ch)
 {
        /* nothing to do */
 }
@@ -92,7 +94,7 @@ static void prom_putchar_init(void)
        }
 }
 
-void prom_putchar(unsigned char ch)
+void prom_putchar(char ch)
 {
        if (!_prom_putchar)
                prom_putchar_init();
index 6092226a6d766e07bb4f5bc9ae47a0be341de6e7..9e9ec27c282f8209254a61a16885f78f30105825 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <bcm63xx_io.h>
 #include <linux/serial_bcm63xx.h>
+#include <asm/setup.h>
 
 static void wait_xfered(void)
 {
index d6f0fee0a151a62329738428395d5e84bbc6029d..a8a0a32e05d1b3139f6b108556ae75d6694d21ec 100644 (file)
@@ -1,6 +1,5 @@
 // SPDX-License-Identifier: GPL-2.0
-
-extern void prom_putchar(unsigned char ch);
+#include <asm/setup.h>
 
 void putc(char c)
 {
index a8034d0dcadeb5ce361bfd23dc737a6f48d6f5b4..6c437486af3971ea195b30eb4db8e6b2e6e20a5f 100644 (file)
@@ -36,6 +36,7 @@
 #include <asm/mipsregs.h>
 #include <asm/bootinfo.h>
 #include <asm/sections.h>
+#include <asm/setup.h>
 #include <asm/time.h>
 
 #include <asm/octeon/octeon.h>
@@ -1108,7 +1109,7 @@ void __init plat_mem_setup(void)
  * Emit one character to the boot UART.         Exported for use by the
  * watchdog timer.
  */
-int prom_putchar(char c)
+void prom_putchar(char c)
 {
        uint64_t lsrval;
 
@@ -1119,7 +1120,6 @@ int prom_putchar(char c)
 
        /* Write the byte */
        cvmx_write_csr(CVMX_MIO_UARTX_THR(octeon_uart), c & 0xffull);
-       return 1;
 }
 EXPORT_SYMBOL(prom_putchar);
 
index 769d4b9ac82e1b14e2dde98ad0ce3b0b49621865..365e3913231ef0ed581710b95407685a304063a2 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/init.h>
 #include <linux/console.h>
 #include <linux/fs.h>
+#include <asm/setup.h>
 #include <asm/sgialib.h>
 
 static void prom_console_write(struct console *co, const char *s,
index 7e8ba5ce95be0778c958d2772a2015e0450aaf85..be381307fbb0157d91527af37b507f3ba475442a 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/kernel.h>
 #include <asm/sgialib.h>
 #include <asm/bcache.h>
+#include <asm/setup.h>
 
 /*
  * IP22 boardcache is not compatible with board caches.         Thus we disable it
index 6aa264b9856ac99b71b88d54fae19cea27d782de..8772617b64cefec0835523fe107a2febdaa778ab 100644 (file)
@@ -19,6 +19,7 @@
 #include <asm/mipsprom.h>
 #include <asm/mipsregs.h>
 #include <asm/bootinfo.h>
+#include <asm/setup.h>
 
 /* special SNI prom calls */
 /*
index d49d247d48a114a3f2a301a7796d848b677f0c07..bb36a400203df50d8a76a74420213bad6b61b45c 100644 (file)
@@ -2,8 +2,10 @@
 #ifndef _MIPS_SETUP_H
 #define _MIPS_SETUP_H
 
+#include <linux/types.h>
 #include <uapi/asm/setup.h>
 
+extern void prom_putchar(char);
 extern void setup_early_printk(void);
 
 #ifdef CONFIG_EARLY_PRINTK_8250
index 195db5045ae57fa972096417a41ba76b4048a4e5..0d9fad5915fe647747111d6d41da4e0a147b07ef 100644 (file)
@@ -31,7 +31,6 @@ extern int prom_flags;
 #define PROM_FLAG_DONT_FREE_TEMP       4
 
 /* Simple char-by-char console I/O. */
-extern void prom_putchar(char c);
 extern char prom_getchar(void);
 
 /* Get next memory descriptor after CURR, returns first descriptor
index 64887d3c7ec3200d8e812d8befbd5c5537d28ce5..9a2c47bf3c4045e79d913d0528f2803e1dcbe01f 100644 (file)
@@ -49,7 +49,6 @@ void txx9_spi_init(int busid, unsigned long base, int irq);
 void txx9_ethaddr_init(unsigned int id, unsigned char *ethaddr);
 void txx9_sio_init(unsigned long baseaddr, int irq,
                   unsigned int line, unsigned int sclk, int nocts);
-void prom_putchar(char c);
 #ifdef CONFIG_EARLY_PRINTK
 extern void (*txx9_prom_putchar)(char c);
 void txx9_sio_putchar_init(unsigned long baseaddr);
index 505cb77d12805c7d80610abea5c0919320d5ed61..4a1647ddfbd94cc40974a1643f655d6f1da9af2b 100644 (file)
@@ -14,8 +14,6 @@
 
 #include <asm/setup.h>
 
-extern void prom_putchar(char);
-
 static void early_console_write(struct console *con, const char *s, unsigned n)
 {
        while (n-- && *s) {
index 83cea376755697b77adb9208a984ff0e74a7d6d8..ea26614afac60bcc8e909dce162d8240a9ccd718 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/io.h>
 #include <linux/serial_core.h>
 #include <linux/serial_reg.h>
+#include <asm/setup.h>
 
 static void __iomem *serial8250_base;
 static unsigned int serial8250_reg_shift;
index 44bccaee822b1f6ebcb827f039cc73eab2b7f634..c4aa140b7c919830afec124c9595055a43ab0295 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <linux/cpu.h>
 #include <lantiq_soc.h>
+#include <asm/setup.h>
 
 #define ASC_BUF                1024
 #define LTQ_ASC_FSTAT  ((u32 *)(LTQ_EARLY_ASC + 0x0048))
index 17e15b50a551fbaa75891ef626e0daf873dae7cf..37b8fc5b9ac9e82da57918d6eff5e0872d276e72 100644 (file)
@@ -13,6 +13,7 @@
 #include <asm/bootinfo.h>
 #include <asm/lasat/lasat.h>
 #include <asm/cpu.h>
+#include <asm/setup.h>
 
 #include "at93c.h"
 #include <asm/lasat/eeprom.h>
index 6ca632e529dc265f1014b5502ce52302f3f64dcb..a782e2b247475f6be6836de609f6f79230a91e96 100644 (file)
@@ -10,6 +10,7 @@
  *  option) any later version.
  */
 #include <linux/serial_reg.h>
+#include <asm/setup.h>
 
 #include <loongson.h>
 
index 769f93032c5331f3628e33b42c621db462e07717..8f5bc15975505f3e308585e8efa8ef59468bb87f 100644 (file)
@@ -36,6 +36,7 @@
 #include <linux/serial_reg.h>
 
 #include <asm/mipsregs.h>
+#include <asm/setup.h>
 #include <asm/netlogic/haldefs.h>
 #include <asm/netlogic/common.h>
 
index 02b665c022721e73f66ce0c586d0ef911e69e02a..a37b6f9f0ede1228abf925524cd392ad6ee7268e 100644 (file)
@@ -9,16 +9,15 @@
 #include <linux/kernel.h>
 #include <linux/virtio_console.h>
 #include <linux/kvm_para.h>
+#include <asm/setup.h>
 
 /*
  * Emit one character to the boot console.
  */
-int prom_putchar(char c)
+void prom_putchar(char c)
 {
        kvm_hypercall3(KVM_HC_MIPS_CONSOLE_OUTPUT, 0 /*  port 0 */,
                (unsigned long)&c, 1 /* len == 1 */);
-
-       return 1;
 }
 
 #ifdef CONFIG_VIRTIO_CONSOLE
index d7b783463fac1b3af66ff02a1ad16a0c375eec84..8ed4961b1271fc0b0d3292a87712ca5ef298b11e 100644 (file)
@@ -13,6 +13,7 @@
  */
 #include <asm/mach-pic32/pic32.h>
 #include <asm/fw/fw.h>
+#include <asm/setup.h>
 
 #include "pic32mzda.h"
 #include "early_pin.h"
@@ -157,7 +158,7 @@ void __init fw_init_early_console(char port)
        setup_early_console(port, baud);
 }
 
-int prom_putchar(char c)
+void prom_putchar(char c)
 {
        if (console_port >= 0) {
                while (__raw_readl(
@@ -166,6 +167,4 @@ int prom_putchar(char c)
 
                __raw_writel(c, uart_base + U_TXR(console_port));
        }
-
-       return 1;
 }
index 3c59ffe5f5f54116785a501ad39abaccd1ad11a5..ecd30ddfb3dbdffde9b4108e5aba60ead9693997 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/serial_reg.h>
 
 #include <asm/addrspace.h>
+#include <asm/setup.h>
 
 #ifdef CONFIG_SOC_RT288X
 #define EARLY_UART_BASE                0x300c00
@@ -68,7 +69,7 @@ static void find_uart_base(void)
        }
 }
 
-void prom_putchar(unsigned char ch)
+void prom_putchar(char ch)
 {
        if (!init_complete) {
                find_uart_base();
@@ -76,13 +77,13 @@ void prom_putchar(unsigned char ch)
        }
 
        if (IS_ENABLED(CONFIG_SOC_MT7621) || soc_is_mt7628()) {
-               uart_w32(ch, UART_TX);
+               uart_w32((unsigned char)ch, UART_TX);
                while ((uart_r32(UART_REG_LSR) & UART_LSR_THRE) == 0)
                        ;
        } else {
                while ((uart_r32(UART_REG_LSR_RT2880) & UART_LSR_THRE) == 0)
                        ;
-               uart_w32(ch, UART_REG_TX);
+               uart_w32((unsigned char)ch, UART_REG_TX);
                while ((uart_r32(UART_REG_LSR_RT2880) & UART_LSR_THRE) == 0)
                        ;
        }
index 45fdfbcbd4c612149353db396eb648860df0a5ef..6bdb48d412762c9ab1816b0fd6ec71426efd8ed8 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include <asm/page.h>
+#include <asm/setup.h>
 #include <asm/sn/addrs.h>
 #include <asm/sn/sn0/hub.h>
 #include <asm/sn/klconfig.h>
index 115399202eab18a252f8a304cfcf791836c3e95f..092fb2a6ec4a04415bb6ed72db53552ede93da35 100644 (file)
@@ -27,6 +27,7 @@
 
 #include <asm/bootinfo.h>
 #include <asm/reboot.h>
+#include <asm/setup.h>
 #include <asm/sibyte/board.h>
 #include <asm/smp-ops.h>
 
index 1791a44ee570a05987d95015cad5854c88ef641b..dde4dc859f79c05a4a3417e43de356d6580361ad 100644 (file)
@@ -32,6 +32,7 @@
 #include <asm/reboot.h>
 #include <asm/r4kcache.h>
 #include <asm/sections.h>
+#include <asm/setup.h>
 #include <asm/txx9/generic.h>
 #include <asm/txx9/pci.h>
 #include <asm/txx9tmr.h>