[PATCH] MIPS: Fix CPS SMP NS16550 UART defaults

From: James Hogan
Date: Mon Nov 20 2017 - 19:04:21 EST

From: James Hogan <jhogan@xxxxxxxxxx>

The MIPS_CPS_NS16550_BASE and MIPS_CPS_NS16550_SHIFT options have no
defaults for non-Malta platforms which select SYS_SUPPORTS_MIPS_CPS
(i.e. the pistachio and generic platforms). This is problematic for
automated allyesconfig and allmodconfig builds based on these platforms,
since make silentoldconfig tries to ask the user for values, and
especially since v4.15 where the default platform was switched to

Default these options to 0 and arrange for MIPS_CPS_NS16550 to be no
when using that default base address, so that the option only has an
effect when the default is provided (i.e. Malta) or when a value is
provided by the user.

Fixes: 609cf6f2291a ("MIPS: CPS: Early debug using an ns16550-compatible UART")
Signed-off-by: James Hogan <jhogan@xxxxxxxxxx>
Reviewed-by: Paul Burton <paul.burton@xxxxxxxx>
Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
Cc: Guenter Roeck <linux@xxxxxxxxxxxx>
Cc: linux-mips@xxxxxxxxxxxxxx
Guenter: I'm guessing this is the problem you're referring to.
arch/mips/Kconfig.debug | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug
index 464af5e025d6..0749c3724543 100644
--- a/arch/mips/Kconfig.debug
+++ b/arch/mips/Kconfig.debug
@@ -124,30 +124,36 @@ config SCACHE_DEBUGFS

If unsure, say N.

-menuconfig MIPS_CPS_NS16550
+menuconfig MIPS_CPS_NS16550_BOOL
bool "CPS SMP NS16550 UART output"
depends on MIPS_CPS
Output debug information via an ns16550 compatible UART if exceptions
occur early in the boot process of a secondary core.

-if MIPS_CPS_NS16550
+config MIPS_CPS_NS16550
+ def_bool MIPS_CPS_NS16550_BASE != 0

config MIPS_CPS_NS16550_BASE
hex "UART Base Address"
default 0x1b0003f8 if MIPS_MALTA
+ default 0
The base address of the ns16550 compatible UART on which to output
debug information from the early stages of core startup.

+ This is only used if non-zero.
config MIPS_CPS_NS16550_SHIFT
int "UART Register Shift"
- default 0 if MIPS_MALTA
+ default 0
The number of bits to shift ns16550 register indices by in order to
form their addresses. That is, log base 2 of the span between
adjacent ns16550 registers in the system.

-endif # MIPS_CPS_NS16550
+endif # MIPS_CPS_NS16550_BOOL