Messages in this thread | | | Subject | Re: [PATCH 2/2] MIPS: Add custom serial.h with BASE_BAUD override for generic kernel | From | Matt Redfearn <> | Date | Tue, 28 Nov 2017 15:20:08 +0000 |
| |
On 28/11/17 14:35, Greg Kroah-Hartman wrote: > 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@vger.kernel.org> # 4.14 >> Signed-off-by: Matt Redfearn <matt.redfearn@mips.com> >> >> --- >> >> 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 :)
Good point - thanks!
Matt
> > thanks, > > greg k-h >
| |