Lukas Wunner b4a29b9480 serial: 8250: Move Alpha-specific quirk out of the core
struct uart_8250_port contains mcr_mask and mcr_force members whose
sole purpose is to work around an Alpha-specific quirk.  This code
doesn't belong in the core where it is executed by everyone else,
so move it to a proper ->set_mctrl callback which is used on the
affected Alpha machine only.

The quirk was introduced in January 1995:
https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/diff/drivers/char/serial.c?h=1.1.83

The members in struct uart_8250_port were added in 2002:
https://git.kernel.org/history/history/c/4524aad27854

The quirk applies to non-PCI Alphas and arch/alpha/Kconfig specifies
"select FORCE_PCI if !ALPHA_JENSEN".  So apparently the only affected
machine is the EISA-based Jensen that Linus was working on back then:
https://lore.kernel.org/all/CAHk-=wj1JWZ3sCrGz16nxEj7=0O+srMg6Ah3iPTDXSPKEws_SA@mail.gmail.com/

Up until now the quirk is not applied unless CONFIG_PCI is disabled.
If users forget to do that or run a generic Alpha kernel, the serial
ports aren't usable on Jensen.  Avoid by confining the quirk to
CONFIG_ALPHA_JENSEN instead of !CONFIG_PCI.  On generic Alpha kernels,
auto-detect at runtime whether the quirk needs to be applied.

Cc: Russell King <rmk+kernel@armlinux.org.uk>
Cc: Ulrich Teichert <krypton@ulrich-teichert.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Link: https://lore.kernel.org/r/b83d069cb516549b8a5420e097bb6bdd806f36fc.1640695609.git.lukas@wunner.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-12-30 13:23:44 +01:00
..
2021-11-26 19:45:31 +01:00
2021-12-09 10:49:56 -08:00
2021-11-06 14:36:12 -07:00
2021-12-04 08:38:25 -08:00
2021-11-01 10:09:14 -07:00
2021-11-03 17:00:52 -07:00
2021-11-06 14:36:12 -07:00
2021-11-08 11:49:48 -08:00
2021-12-13 13:18:48 +05:30
2021-11-05 08:42:02 -07:00
2021-11-04 13:56:55 -07:00
2021-12-06 09:32:47 +01:00
2021-11-26 22:54:47 +01:00
2021-12-17 11:46:07 -08:00
2021-11-22 14:58:57 -08:00
2021-11-06 14:36:12 -07:00
2021-11-10 11:36:43 -08:00
2021-10-26 19:12:01 +02:00
2021-12-20 10:00:30 +01:00
2021-11-10 10:56:02 -08:00
2021-10-18 09:29:27 +02:00
2021-11-02 06:20:58 -07:00
2021-11-02 15:58:39 -07:00
2021-12-07 10:10:20 -08:00
2021-11-08 12:07:52 -08:00
2021-11-10 09:07:26 -08:00
2021-11-12 11:44:31 -08:00
2021-12-17 13:55:03 -08:00
2021-12-16 15:02:26 +01:00
2021-11-18 14:35:41 -08:00
2021-11-30 11:41:49 -07:00
2021-12-05 09:13:20 -08:00
2021-11-10 09:41:22 -08:00
2021-12-08 14:53:15 -05:00