Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9221a53b authored by Jason A. Donenfeld's avatar Jason A. Donenfeld Committed by Greg Kroah-Hartman
Browse files

MIPS: pic32: treat port as signed integer



[ Upstream commit 648060902aa302331b5d6e4f26d8ee0761d239ab ]

get_port_from_cmdline() returns an int, yet is assigned to a char, which
is wrong in its own right, but also, with char becoming unsigned, this
poses problems, because -1 is used as an error value. Further
complicating things, fw_init_early_console() is only ever called with a
-1 argument. Fix this up by removing the unused argument from
fw_init_early_console() and treating port as a proper signed integer.

Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent dff9b25c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -26,6 +26,6 @@ extern char *fw_getcmdline(void);
extern void fw_meminit(void);
extern char *fw_getenv(char *name);
extern unsigned long fw_getenvl(char *name);
extern void fw_init_early_console(char port);
extern void fw_init_early_console(void);

#endif /* __ASM_FW_H_ */
+6 −7
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@
#define U_BRG(x)	(UART_BASE(x) + 0x40)

static void __iomem *uart_base;
static char console_port = -1;
static int console_port = -1;

static int __init configure_uart_pins(int port)
{
@@ -47,7 +47,7 @@ static int __init configure_uart_pins(int port)
	return 0;
}

static void __init configure_uart(char port, int baud)
static void __init configure_uart(int port, int baud)
{
	u32 pbclk;

@@ -60,7 +60,7 @@ static void __init configure_uart(char port, int baud)
		     uart_base + PIC32_SET(U_STA(port)));
}

static void __init setup_early_console(char port, int baud)
static void __init setup_early_console(int port, int baud)
{
	if (configure_uart_pins(port))
		return;
@@ -130,15 +130,14 @@ static int __init get_baud_from_cmdline(char *arch_cmdline)
	return baud;
}

void __init fw_init_early_console(char port)
void __init fw_init_early_console(void)
{
	char *arch_cmdline = pic32_getcmdline();
	int baud = -1;
	int baud, port;

	uart_base = ioremap_nocache(PIC32_BASE_UART, 0xc00);

	baud = get_baud_from_cmdline(arch_cmdline);
	if (port == -1)
	port = get_port_from_cmdline(arch_cmdline);

	if (port == -1)
+1 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ void __init plat_mem_setup(void)
		strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE);

#ifdef CONFIG_EARLY_PRINTK
	fw_init_early_console(-1);
	fw_init_early_console();
#endif
	pic32_config_init();
}