kernel_optimize_test/drivers/acpi
Christopher Covington d8a4995bce tty: pl011: Work around QDF2400 E44 stuck BUSY bit
The Qualcomm Datacenter Technologies QDF2400 family of SoCs contains a
custom (non-PrimeCell) implementation of the SBSA UART. Occasionally the
BUSY bit in the Flag Register gets stuck as 1, erratum 44 for both 2432v1
and 2400v1 SoCs.Checking that the Transmit FIFO Empty (TXFE) bit is 0,
instead of checking that the BUSY bit is 1, works around the issue.

To facilitate this substitution of flags and values, introduce
vendor-specific inversion of Feature Register bits when UART AMBA Port
(UAP) data is available. For the earlycon case, prior to UAP availability,
implement alternative putc and early_write functions.

Similar to what how ARMv8 ACPI PCI quirks are detected during MCFG parsing,
check the OEM fields of the Serial Port Console Redirection (SPCR) ACPI
table to determine if the current platform is known to be affected by the
erratum.

Signed-off-by: Christopher Covington <cov@codeaurora.org>
Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Acked-by: Timur Tabi <timur@codeaurora.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-02-15 14:46:43 -08:00
..
acpica ACPICA: Tables: Allow FADT to be customized with virtual address 2016-12-21 02:36:38 +01:00
apei ACPI / APEI / ARM64: APEI initial support for ARM64 2016-12-02 00:24:34 +01:00
arm64 ACPI/IORT: Make dma masks set-up IORT specific 2016-12-06 16:57:33 +01:00
dptf ACPI / platform: Add support for build-in properties 2016-11-10 00:30:29 +01:00
nfit Merge branches 'acpica' and 'acpi-scan' 2016-12-22 14:34:24 +01:00
pmic ACPI / PMIC: remove modular references from non-modular code 2016-07-16 03:03:14 +02:00
ac.c
acpi_amba.c ACPI / amba: Remove CLK_IS_ROOT 2016-04-27 23:42:57 +02:00
acpi_apd.c Merge branches 'acpi-soc', 'acpi-battery', 'acpi-video', 'acpi-cppc' and 'acpi-apei' 2016-12-12 20:48:01 +01:00
acpi_cmos_rtc.c char/genrtc: x86: remove remnants of asm/rtc.h 2016-06-04 00:20:07 +02:00
acpi_configfs.c ACPI: Rename configfs.c to acpi_configfs.c to prevent link error 2016-07-11 15:13:36 +02:00
acpi_dbg.c ACPI / debugger: Fix regression introduced by IS_ERR_VALUE() removal 2016-07-05 23:02:34 +02:00
acpi_extlog.c
acpi_ipmi.c
acpi_lpat.c ACPI / lpat: make it explicitly non-modular 2016-07-16 03:08:10 +02:00
acpi_lpss.c Merge branches 'acpi-soc', 'acpi-battery', 'acpi-video', 'acpi-cppc' and 'acpi-apei' 2016-12-12 20:48:01 +01:00
acpi_memhotplug.c
acpi_pad.c ACPI / PAD: don't register acpi_pad driver if running as Xen dom0 2016-10-12 21:44:04 +02:00
acpi_platform.c Merge branch 'device-properties' 2016-11-11 23:23:02 +01:00
acpi_pnp.c ACPI / PNP: constify device IDs 2016-01-04 22:10:30 +01:00
acpi_processor.c acpi: Validate processor id when mapping the processor 2016-09-21 21:18:40 +02:00
acpi_video.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
acpi_watchdog.c ACPI / watchdog: Print out error number when device creation fails 2016-12-26 23:21:56 +01:00
battery.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
battery.h
bgrt.c drivers/acpi: make bgrt driver explicitly non-modular 2016-03-09 23:46:07 +01:00
blacklist.c ACPI / blacklist: Make Dell Latitude 3350 ethernet work 2016-11-16 23:01:29 +01:00
bus.c Merge branches 'acpica' and 'acpi-scan' 2016-12-22 14:34:24 +01:00
button.c ACPI / button: Fix an issue in button.lid_init_state=ignore mode 2016-08-31 01:06:20 +02:00
cm_sbs.c
container.c
cppc_acpi.c ACPI / CPPC: Fix per-CPU pointer management in acpi_cppc_processor_probe() 2016-12-12 23:52:34 +01:00
custom_method.c
debugfs.c
device_pm.c ACPI / PM: Export acpi_device_fix_up_power() 2016-05-20 15:54:01 +02:00
device_sysfs.c ACPI / property: Hierarchical properties support update 2016-11-24 02:43:47 +01:00
dock.c ACPI / dock: make dock explicitly non-modular 2016-07-16 03:08:08 +02:00
ec_sys.c ACPI / EC: Deny write access unless requested by module param 2016-03-09 23:26:15 +01:00
ec.c ACPI / EC: Fix unused function warning when CONFIG_PM_SLEEP=n 2016-10-10 02:22:20 +02:00
event.c genetlink: mark families as __ro_after_init 2016-10-27 16:16:09 -04:00
evged.c ACPI / GED: make evged.c explicitly non-modular 2016-05-09 22:59:25 +02:00
fan.c ACPI / fan: Fix error reading cur_state 2016-10-10 02:20:43 +02:00
glue.c ACPI / scan: Prefer devices without _HID/_CID for _ADR matching 2017-01-02 22:21:59 +01:00
gsi.c ACPI: Rename acpi_gsi_get_irq_type to acpi_dev_get_irq_type and export symbol 2016-01-01 03:20:25 +01:00
hed.c
internal.h ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding 2016-12-26 23:16:39 +01:00
ioapic.c x86/ioapic: Fix IOAPIC failing to request resource 2016-08-18 11:45:19 +02:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-12-14 11:12:25 -08:00
Makefile TTY/Serial patches for 4.9-rc1 2016-10-03 20:11:49 -07:00
numa.c ACPI/NUMA: Do not map pxm to node when NUMA is turned off 2016-12-15 11:32:32 +01:00
nvs.c
osi.c ACPI / osi: Collect _OSI handling into one single file 2016-05-05 00:13:53 +02:00
osl.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
pci_irq.c ACPI / PCI: fix GIC irq model default PCI IRQ polarity 2016-09-10 02:50:50 +02:00
pci_link.c ACPI/PCI: pci_link: Include PIRQ_PENALTY_PCI_USING for ISA IRQs 2016-10-24 14:18:14 +02:00
pci_mcfg.c PCI: Add MCFG quirks for X-Gene host controller 2016-12-06 13:45:50 -06:00
pci_root.c x86/ioapic: Support hot-removal of IOAPICs present during boot 2016-08-18 11:45:18 +02:00
pci_slot.c ACPI / PCI: make pci_slot explicitly non-modular 2016-07-16 03:05:29 +02:00
power.c
proc.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
processor_core.c ACPI / osl: Remove acpi_get_table_with_size()/early_acpi_os_unmap_memory() users 2016-12-21 02:36:38 +01:00
processor_driver.c Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-10-03 19:43:08 -07:00
processor_idle.c x86/amd: Simplify AMD E400 aware idle routine 2016-12-09 21:23:21 +01:00
processor_pdc.c
processor_perflib.c ACPI / processor: Make acpi_processor_ppc_has_changed() void 2016-11-21 14:35:42 +01:00
processor_thermal.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
processor_throttling.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
property.c ACPI / property: Hierarchical properties support update 2016-11-24 02:43:47 +01:00
reboot.c
resource.c ACPI: Add acpi_resource_consumer() to find device that claims a resource 2016-12-01 14:59:32 -06:00
sbs.c ACPI / SBS: fix inconsistent indenting inside if statement 2016-01-04 22:14:27 +01:00
sbshc.c
sbshc.h
scan.c ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding 2016-12-26 23:16:39 +01:00
sleep.c Merge branches 'pm-sleep' and 'powercap' 2016-12-12 20:46:35 +01:00
sleep.h ACPICA: Drop Linux-specific waking vector functions 2016-01-04 22:05:20 +01:00
spcr.c tty: pl011: Work around QDF2400 E44 stuck BUSY bit 2017-02-15 14:46:43 -08:00
sysfs.c ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding 2016-12-26 23:16:39 +01:00
tables.c ACPI / osl: Remove acpi_get_table_with_size()/early_acpi_os_unmap_memory() users 2016-12-21 02:36:38 +01:00
thermal.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
utils.c nfit: make DIMM DSMs optional 2016-07-19 12:32:39 -07:00
video_detect.c ACPI / video: Add force_native quirk for HP Pavilion dv6 2016-11-29 23:27:17 +01:00
wakeup.c