Hi, On 05/11/2015 15:07, Sergei Shtylyov wrote: > Hello. > > On 11/5/2015 5:59 AM, John Crispin wrote: > >> MT7688 has several uarts that can be used for console. There are several >> boards in the wild, that use ttyS1 or ttyS2. This patch applies a simply >> autodetection routine to figure out which ttyS the bootloader used as >> console. The uarts come up in 6 bit mode by default. The bootloader will >> have set 8 bit mode on the console. Find that 8bit tty and use it. >> >> Signed-off-by: John Crispin <blogic@xxxxxxxxxxx> >> --- >> Changes in V2: >> * remove superflous inline definition >> >> arch/mips/ralink/early_printk.c | 26 ++++++++++++++++++++++++++ >> 1 file changed, 26 insertions(+) >> >> diff --git a/arch/mips/ralink/early_printk.c >> b/arch/mips/ralink/early_printk.c >> index 255d695..3c59ffe 100644 >> --- a/arch/mips/ralink/early_printk.c >> +++ b/arch/mips/ralink/early_printk.c > [...] >> @@ -47,8 +49,32 @@ static inline int soc_is_mt7628(void) >> (__raw_readl(chipid_membase) == MT7628_CHIP_NAME1); >> } >> >> +static void find_uart_base(void) >> +{ >> + int i; >> + >> + if (!soc_is_mt7628()) >> + return; >> + >> + for (i = 0; i < 3; i++) { >> + u32 reg = uart_r32(UART_REG_LCR + (0x100 * i)); > > Inner parens not needed, the operator precedence is natural. > "not needed" means "should be removed" or "not needed". checkpatch.pl certainly did not complain and a quick look around instantly yielded lots of places in the kernel where this is done. imho the brackets make it more readable John >> + >> + if (!reg) >> + continue; >> + >> + uart_membase = (__iomem void *) KSEG1ADDR(EARLY_UART_BASE + >> + (0x100 * i)); > > Likewise. > Sorry for not noticing this before. > > MBR, Sergei > >