b4a29b9480
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>
48 lines
2.0 KiB
Makefile
48 lines
2.0 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the 8250 serial device drivers.
|
|
#
|
|
|
|
obj-$(CONFIG_SERIAL_8250) += 8250.o 8250_base.o
|
|
8250-y := 8250_core.o
|
|
8250-$(CONFIG_ALPHA_GENERIC) += 8250_alpha.o
|
|
8250-$(CONFIG_ALPHA_JENSEN) += 8250_alpha.o
|
|
8250-$(CONFIG_SERIAL_8250_PNP) += 8250_pnp.o
|
|
8250_base-y := 8250_port.o
|
|
8250_base-$(CONFIG_SERIAL_8250_DMA) += 8250_dma.o
|
|
8250_base-$(CONFIG_SERIAL_8250_DWLIB) += 8250_dwlib.o
|
|
8250_base-$(CONFIG_SERIAL_8250_FINTEK) += 8250_fintek.o
|
|
obj-$(CONFIG_SERIAL_8250_GSC) += 8250_gsc.o
|
|
obj-$(CONFIG_SERIAL_8250_PCI) += 8250_pci.o
|
|
obj-$(CONFIG_SERIAL_8250_EXAR) += 8250_exar.o
|
|
obj-$(CONFIG_SERIAL_8250_HP300) += 8250_hp300.o
|
|
obj-$(CONFIG_SERIAL_8250_CS) += serial_cs.o
|
|
obj-$(CONFIG_SERIAL_8250_ACORN) += 8250_acorn.o
|
|
obj-$(CONFIG_SERIAL_8250_ASPEED_VUART) += 8250_aspeed_vuart.o
|
|
obj-$(CONFIG_SERIAL_8250_BCM2835AUX) += 8250_bcm2835aux.o
|
|
obj-$(CONFIG_SERIAL_8250_CONSOLE) += 8250_early.o
|
|
obj-$(CONFIG_SERIAL_8250_FOURPORT) += 8250_fourport.o
|
|
obj-$(CONFIG_SERIAL_8250_ACCENT) += 8250_accent.o
|
|
obj-$(CONFIG_SERIAL_8250_BOCA) += 8250_boca.o
|
|
obj-$(CONFIG_SERIAL_8250_EXAR_ST16C554) += 8250_exar_st16c554.o
|
|
obj-$(CONFIG_SERIAL_8250_HUB6) += 8250_hub6.o
|
|
obj-$(CONFIG_SERIAL_8250_FSL) += 8250_fsl.o
|
|
obj-$(CONFIG_SERIAL_8250_MEN_MCB) += 8250_men_mcb.o
|
|
obj-$(CONFIG_SERIAL_8250_DW) += 8250_dw.o
|
|
obj-$(CONFIG_SERIAL_8250_EM) += 8250_em.o
|
|
obj-$(CONFIG_SERIAL_8250_IOC3) += 8250_ioc3.o
|
|
obj-$(CONFIG_SERIAL_8250_OMAP) += 8250_omap.o
|
|
obj-$(CONFIG_SERIAL_8250_LPC18XX) += 8250_lpc18xx.o
|
|
obj-$(CONFIG_SERIAL_8250_MT6577) += 8250_mtk.o
|
|
obj-$(CONFIG_SERIAL_8250_UNIPHIER) += 8250_uniphier.o
|
|
obj-$(CONFIG_SERIAL_8250_INGENIC) += 8250_ingenic.o
|
|
obj-$(CONFIG_SERIAL_8250_LPSS) += 8250_lpss.o
|
|
obj-$(CONFIG_SERIAL_8250_MID) += 8250_mid.o
|
|
obj-$(CONFIG_SERIAL_8250_PERICOM) += 8250_pericom.o
|
|
obj-$(CONFIG_SERIAL_8250_PXA) += 8250_pxa.o
|
|
obj-$(CONFIG_SERIAL_8250_TEGRA) += 8250_tegra.o
|
|
obj-$(CONFIG_SERIAL_8250_BCM7271) += 8250_bcm7271.o
|
|
obj-$(CONFIG_SERIAL_OF_PLATFORM) += 8250_of.o
|
|
|
|
CFLAGS_8250_ingenic.o += -I$(srctree)/scripts/dtc/libfdt
|