On 05/11/2015 18:21, Sergei Shtylyov wrote: > On 11/05/2015 05:27 PM, 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". > > That's completely up to you. > >> 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 > > Do you really always write 2 + (3 * 4) when you e.g. use scientific > calculator? no that would be silly. when using a calculator i know what i am typing. unless there is someone looking over my shoulder i am the only one that needs to understand. when i write software that others are supposed to read which has "register + (bank * bank offset)" constructs in it then i tend to add brackets. John > > [...] > > MBR, Sergei