linux/drivers
Stephen Warren 8d353b6d2f serial: 8250: enable UART_BUG_NOMSR for Tegra
commit 3685f19e07 upstream.

Tegra chips have 4 or 5 identical UART modules embedded. UARTs C..E have
their MODEM-control signals tied off to a static state. However UARTs A
and B can optionally route those signals to/from package pins, depending
on the exact pinmux configuration.

When these signals are not routed to package pins, false interrupts may
trigger either temporarily, or permanently, all while not showing up in
the IIR; it will read as NO_INT. This will eventually lead to the UART
IRQ being disabled due to unhandled interrupts. When this happens, the
kernel may print e.g.:

    irq 68: nobody cared (try booting with the "irqpoll" option)

In order to prevent this, enable UART_BUG_NOMSR. This prevents
UART_IER_MSI from being enabled, which prevents the false interrupts
from triggering.

In practice, this is not needed under any of the following conditions:

* On Tegra chips after Tegra30, since the HW bug has apparently been
  fixed.

* On UARTs C..E since their MODEM control signals are tied to the correct
  static state which doesn't trigger the issue.

* On UARTs A..B if the MODEM control signals are routed out to package
  pins, since they will then carry valid signals.

However, we ignore these exceptions for now, since they are only relevant
if a board actually hooks up more than a 4-wire UART, and no currently
supported board does this. If we ever support a board that does, we can
refine the algorithm that enables UART_BUG_NOMSR to take those exceptions
into account, and/or read a flag from DT/... that indicates that the
board has hooked up and pinmux'd more than a 4-wire UART.

Reported-by: Olof Johansson <olof@lixom.net> # autotester
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-02-06 11:08:14 -08:00
..
accessibility
acpi ACPI / Battery: Add a _BIX quirk for NEC LZ750/LS 2014-01-15 15:28:53 -08:00
amba
ata ahci: add PCI ID for Marvell 88SE9170 SATA controller 2014-01-15 15:28:52 -08:00
atm atm: idt77252: fix dev refcnt leak 2013-12-08 07:29:25 -08:00
auxdisplay
base PM / runtime: Use pm_runtime_put_sync() in __device_release_driver() 2013-12-04 10:56:59 -08:00
bcma bcma: add more core IDs 2013-05-17 14:31:05 -04:00
block rbd: fix error handling from rbd_snap_name() 2014-01-09 12:24:26 -08:00
bluetooth Bluetooth: Add support for BCM20702A0 [0b05, 17cb] 2013-10-13 16:08:32 -07:00
bus
cdrom drivers/cdrom/cdrom.c: use kzalloc() for failing hardware 2013-07-13 11:42:26 -07:00
char ACPI / TPM: fix memory leak when walking ACPI namespace 2014-01-15 15:28:52 -08:00
clk clk: exynos5250: fix sysmmu_mfc{l,r} gate clocks 2014-01-15 15:28:52 -08:00
clocksource clocksource: em_sti: Set cpu_possible_mask to fix SMP broadcast 2014-01-15 15:28:45 -08:00
connector connector: improved unaligned access error fix 2013-12-08 07:29:25 -08:00
cpufreq intel_pstate: Add X86_FEATURE_APERFMPERF to cpu match parameters. 2014-01-15 15:28:53 -08:00
cpuidle cpuidle: coupled: fix race condition between pokes and safe state 2013-09-26 17:18:02 -07:00
crypto crypto: caam - Fixed the memory out of bound overwrite issue 2013-08-04 16:50:57 +08:00
dca
devfreq
dio
dma net_dma: mark broken 2014-01-09 12:24:21 -08:00
edac e752x_edac: Fix pci_dev usage count 2014-02-06 11:08:12 -08:00
eisa
extcon
firewire firewire: sbp2: bring back WRITE SAME support 2014-01-09 12:24:21 -08:00
firmware dmi: add support for exact DMI matches in addition to substring matching 2013-11-29 11:11:53 -08:00
gpio gpio-rcar: R-Car GPIO IRQ share interrupt 2014-01-15 15:28:45 -08:00
gpu drm/nouveau/bios: fix offset calculation for BMPv1 bioses 2014-02-06 11:08:12 -08:00
hid HID: Revert "Revert "HID: Fix logitech-dj: missing Unifying device issue"" 2014-01-15 15:28:45 -08:00
hsi
hv Drivers: hv: balloon: Do not post pressure status if interrupted 2013-08-04 16:50:58 +08:00
hwmon hwmon: (k10temp) Add support for Kaveri CPUs 2014-02-06 11:08:14 -08:00
hwspinlock
i2c i2c: mux: gpio: use gpio_set_value_cansleep() 2013-12-04 10:55:50 -08:00
ide
idle x86 idle: Repair large-server 50-watt idle-power regression 2014-01-09 12:24:21 -08:00
iio iio:adc:ad7887 Fix channel reported endianness from cpu to big endian 2014-01-09 12:24:20 -08:00
infiniband iser-target: fix error return code in isert_create_device_ib_res() 2014-01-09 12:24:20 -08:00
input Input: allocate absinfo data when setting ABS capability 2014-01-09 12:24:24 -08:00
iommu iommu: Remove stack trace from broken irq remapping warning 2013-12-08 07:29:27 -08:00
ipack
irqchip irqchip: renesas-irqc: Fix irqc_probe error handling 2014-01-15 15:28:45 -08:00
isdn net: rework recvmsg handler msg_name and msg_namelen logic 2013-12-08 07:29:25 -08:00
leds leds: wm831x-status: Request a REG resource 2013-09-26 17:18:27 -07:00
lguest
macintosh powerpc/windfarm: Fix noisy slots-fan on Xserve (rm31) 2013-08-11 18:35:20 -07:00
mailbox
md md/raid5: fix long-standing problem with bitmap handling on write failure. 2014-02-06 11:08:12 -08:00
media cxd2820r_core: fix sparse warnings 2013-12-20 07:45:11 -08:00
memory drivers/memory: don't check resource with devm_ioremap_resource 2013-05-18 11:55:52 +02:00
memstick
message
mfd mfd: rtsx_pcr: Disable interrupts before cancelling delayed works 2014-01-15 15:28:52 -08:00
misc mei: add 9 series PCH mei device ids 2013-12-11 22:36:28 -08:00
mmc mmc: block: fix a bug of error handling in MMC driver 2013-12-08 07:29:27 -08:00
mtd mtd: gpmi: fix kernel BUG due to racing DMA operations 2013-12-04 10:56:23 -08:00
net b43: fix the wrong assignment of status.freq in b43_rx() 2014-02-06 11:08:14 -08:00
nfc NFC: mei: Do not disable MEI devices from their remove routine 2013-05-21 10:48:41 +02:00
ntb NTB: Correct debugfs to work with more than 1 NTB Device 2013-11-13 12:05:35 +09:00
nubus
of Revert "of/address: Handle #address-cells > 2 specially" 2014-01-09 12:24:23 -08:00
oprofile
parisc parisc: Fix interrupt routing for C8000 serial ports 2013-08-11 18:35:21 -07:00
parport parisc: parport0: fix this legacy no-device port driver! 2013-06-01 14:46:42 +02:00
pci PCI: Disable Bus Master only on kexec reboot 2013-12-20 07:45:08 -08:00
pcmcia pcmcia: at91_cf: fix gpio_get_value in at91_cf_get_status 2013-07-21 18:21:25 -07:00
pinctrl pinctrl: dove: unset twsi option3 for gconfig as well 2013-12-04 10:55:49 -08:00
platform drivers/platform/olpc/olpc-ec.c: initialise earlier 2013-08-29 09:47:38 -07:00
pnp
power charger-manager: Ensure event is not used as format string 2013-07-13 11:42:26 -07:00
pps
ps3
ptp ptp_pch: fix error handling in pch_probe() 2013-05-25 21:24:15 -07:00
pwm drivers/pwm: don't check resource with devm_ioremap_resource 2013-05-18 11:55:58 +02:00
rapidio RAPIDIO: IDT_GEN2: Fix build error. 2013-07-28 16:30:07 -07:00
regulator mfd: tps6586x: correct device name of the regulator cell 2013-06-24 12:37:47 +01:00
remoteproc
reset
rpmsg
rtc drivers/rtc/rtc-at91rm9200.c: correct alarm over day/month wrap 2013-12-20 07:45:09 -08:00
s390 s390/3270: fix allocation of tty3270_screen structure 2014-01-09 12:24:24 -08:00
sbus
scsi SCSI: sd: Reduce buffer size for vpd request 2014-01-15 15:28:53 -08:00
sfi
sh
sn
spi spi: spi-davinci: Fix direction in dma_map_single() 2013-08-11 18:35:25 -07:00
ssb
ssbi
staging staging: vt6656: CARDqGetNextTBTT correct uLowNextTBTT 2014-02-06 11:08:14 -08:00
target target/file: Update hw_max_sectors based on current block_size 2014-01-09 12:24:20 -08:00
tc
thermal drivers/thermal: don't check resource with devm_ioremap_resource 2013-05-18 11:57:30 +02:00
tty serial: 8250: enable UART_BUG_NOMSR for Tegra 2014-02-06 11:08:14 -08:00
uio Fix a few incorrectly checked [io_]remap_pfn_range() calls 2013-11-13 12:05:33 +09:00
usb usb: ehci: add freescale imx28 special write register method 2014-02-06 11:08:13 -08:00
uwb
vfio vfio: fix crash on rmmod 2013-06-05 08:54:16 -06:00
vhost vhost/scsi: Fix incorrect usage of get_user_pages_fast write parameter 2013-11-13 12:05:32 +09:00
video video: kyro: fix incorrect sizes when copying to userspace 2013-12-08 07:29:27 -08:00
virt
virtio virtio: support unlocked queue poll 2013-07-28 16:29:55 -07:00
vlynq
vme
w1 drivers/w1/masters: don't check resource with devm_ioremap_resource 2013-05-18 11:58:03 +02:00
watchdog sc1200_wdt: Fix oops 2013-12-20 07:45:11 -08:00
xen xen/gnttab: leave lazy MMU mode in the case of a m2p override failure 2013-12-11 22:36:27 -08:00
zorro
Kconfig
Makefile