On Wed, Nov 22, 2017 at 09:57:29AM +0000, Matt Redfearn wrote: > Add a custom serial.h header for MIPS, allowing platforms to override > the asm-generic version if required. > > The generic platform uses this header to set BASE_BAUD to 0. The > generic platform supports multiple boards, which may have different > UART clocks. Also one of the boards supported is the Boston FPGA board, > where the UART clock depends on the loaded FPGA bitfile. As such there > is no way that the generic kernel can set a compile time default > BASE_BAUD. > > Commit 31cb9a8575ca ("earlycon: initialise baud field of earlycon device > structure") changed the behavior of of_setup_earlycon such that any baud > rate set in the device tree is now set in the earlycon structure. The > UART driver will then calculate a divisor based on BASE_BAUD and set it. > With MIPS generic kernels this resulted in garbage output due to the > incorrect uart clock rate being used to calculate a divisor. This > commit, combined with "serial: 8250_early: Only set divisor if valid clk > & baud" prevents the earlycon code setting a bad divisor and restores > earlycon output. > > Fixes: 31cb9a8575ca ("earlycon: initialise baud field of earlycon device structure") > Cc: stable <stable@xxxxxxxxxxxxxxx> # 4.14 > Signed-off-by: Matt Redfearn <matt.redfearn@xxxxxxxx> > > --- > > arch/mips/include/asm/Kbuild | 1 - > arch/mips/include/asm/serial.h | 21 +++++++++++++++++++++ > 2 files changed, 21 insertions(+), 1 deletion(-) > create mode 100644 arch/mips/include/asm/serial.h > > diff --git a/arch/mips/include/asm/Kbuild b/arch/mips/include/asm/Kbuild > index 7c8aab23bce8..b1f66699677d 100644 > --- a/arch/mips/include/asm/Kbuild > +++ b/arch/mips/include/asm/Kbuild > @@ -16,7 +16,6 @@ generic-y += qrwlock.h > generic-y += qspinlock.h > generic-y += sections.h > generic-y += segment.h > -generic-y += serial.h > generic-y += trace_clock.h > generic-y += unaligned.h > generic-y += user.h > diff --git a/arch/mips/include/asm/serial.h b/arch/mips/include/asm/serial.h > new file mode 100644 > index 000000000000..30be5cd8efdb > --- /dev/null > +++ b/arch/mips/include/asm/serial.h > @@ -0,0 +1,21 @@ > +/* > + * 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 > + * for more details. Which version of the GPL? As it is, this means "GPL v1 and all others". I doubt you want that :) thanks, greg k-h