kernel_optimize_test/drivers/acpi
Tomasz Nowicki 5b69b85ba1 PCI/ACPI: Check for platform-specific MCFG quirks
The PCIe spec (r3.0, sec 7.2.2) specifies an "Enhanced Configuration Access
Mechanism" (ECAM) for memory-mapped access to configuration space.  ECAM is
required for PCIe systems unless there's a standard firmware interface for
config access.

In the absence of a firmware interface, we use pci_generic_ecam_ops, and on
ACPI systems, we discover the ECAM space via the MCFG table and/or the _CBA
method.

Unfortunately some systems provide MCFG but don't implement ECAM according
to spec, so we need a mechanism for quirks to make those systems work.

Add an MCFG quirk mechanism to override the config accessor functions
and/or the memory-mapped address space.

A quirk is selected if it matches all of the following:

  - OEM ID
  - OEM Table ID
  - OEM Revision
  - PCI segment (from _SEG)
  - PCI bus number range (from _CRS, wildcard allowed)

If the quirk specifies config accessor functions or a memory-mapped address
range, these override the defaults.

[bhelgaas: changelog, reorder quirk matching, fix oem_revision typo per
Duc, add under #ifdef CONFIG_PCI_QUIRKS]
Signed-off-by: Tomasz Nowicki <tn@semihalf.com>
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
Signed-off-by: Christopher Covington <cov@codeaurora.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2016-12-06 13:45:48 -06:00
..
acpica ACPICA: Parser: Fix a regression in LoadTable support 2016-09-24 02:16:53 +02:00
apei PCI changes for the v4.9 merge window: 2016-10-07 11:46:37 -07:00
arm64 ACPI: Add new IORT functions to support MSI domain handling 2016-09-12 20:32:40 +01:00
dptf ACPI / DPTF: move int340x_thermal.c to the DPTF folder 2016-07-21 13:42:46 +02:00
nfit Merge branch 'for-4.9/libnvdimm' into libnvdimm-for-next 2016-10-07 16:46:24 -07: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_apd.c ACPI / APD: constify local structures 2016-09-13 03:13:30 +02: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 ACPI / LPSS: Provide build-in properties of the UART 2016-08-31 01:18:57 +02: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 ACPI / platform: Pay attention to parent device's resources 2016-09-17 01:17:17 +02:00
acpi_pnp.c
acpi_processor.c acpi: Validate processor id when mapping the processor 2016-09-21 21:18:40 +02:00
acpi_video.c ACPI / video: skip evaluating _DOD when it does not exist 2016-06-22 02:00:04 +02:00
acpi_watchdog.c ACPI / watchdog: Add support for WDAT hardware watchdog 2016-09-24 02:10:04 +02:00
battery.c ACPI / battery: Add sysfs representation after checking _BST 2016-08-31 00:35:16 +02:00
battery.h
bgrt.c
blacklist.c
bus.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-10-03 19:10:15 -07: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: Support PCC with interrupt flag 2016-09-17 01:14:24 +02: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
dock.c ACPI / dock: make dock explicitly non-modular 2016-07-16 03:08:08 +02:00
ec_sys.c
ec.c ACPI / EC: Fix unused function warning when CONFIG_PM_SLEEP=n 2016-10-10 02:22:20 +02:00
event.c
evged.c
fan.c ACPI / fan: Fix error reading cur_state 2016-10-10 02:20:43 +02:00
glue.c
gsi.c
hed.c
internal.h Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-10-03 15:36:06 -07:00
ioapic.c x86/ioapic: Fix IOAPIC failing to request resource 2016-08-18 11:45:19 +02:00
Kconfig TTY/Serial patches for 4.9-rc1 2016-10-03 20:11:49 -07:00
Makefile TTY/Serial patches for 4.9-rc1 2016-10-03 20:11:49 -07:00
numa.c ACPI / NUMA: Enable ACPI based NUMA on ARM64 2016-06-22 01:36:59 +02:00
nvs.c
osi.c
osl.c acpi_os_vprintf: Use printk_get_level() to avoid unnecessary KERN_CONT 2016-10-12 21:46:37 +02: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,IRQ: separate ISA penalty calculation 2016-07-02 01:38:34 +02:00
pci_mcfg.c PCI/ACPI: Check for platform-specific MCFG quirks 2016-12-06 13:45:48 -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
processor_core.c acpi: Fix broken error check in map_processor() 2016-09-23 18:04:56 +02: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 nmi_backtrace: generate one-line reports for idle cpus 2016-10-07 18:46:30 -07:00
processor_pdc.c
processor_perflib.c
processor_thermal.c
processor_throttling.c ACPI/processor: Convert to hotplug state machine 2016-09-19 21:44:29 +02:00
property.c ACPI / property: Allow holes in reference properties 2016-10-11 22:44:00 +02: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
sbshc.c
sbshc.h
scan.c Merge branches 'acpi-wdat' and 'acpi-ec' 2016-10-02 01:40:07 +02:00
sleep.c Merge branches 'acpi-wdat' and 'acpi-ec' 2016-10-02 01:40:07 +02:00
sleep.h
spcr.c ACPI: parse SPCR and enable matching console 2016-09-28 17:46:46 +02:00
sysfs.c ACPI / sysfs: Update sysfs signature handling code 2016-09-17 01:12:34 +02:00
tables.c ACPI / tables: Remove duplicated include from tables.c 2016-09-17 01:03:32 +02:00
thermal.c thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
utils.c nfit: make DIMM DSMs optional 2016-07-19 12:32:39 -07:00
video_detect.c ACPI / video: Thinkpad X201 Tablet needs video_detect_force_video 2016-06-22 01:59:03 +02:00
wakeup.c