linux/drivers/pci
Lukas Wunner 630b3aff8a treewide: Consolidate Apple DMI checks
We're about to amend ACPI bus scan with DMI checks whether we're running
on a Mac to support Apple device properties in AML.  The DMI checks are
performed for every single device, adding overhead for everything x86
that isn't Apple, which is the majority.  Rafael and Andy therefore
request to perform the DMI match only once and cache the result.

Outside of ACPI various other Apple DMI checks exist and it seems
reasonable to use the cached value there as well.  Rafael, Andy and
Darren suggest performing the DMI check in arch code and making it
available with a header in include/linux/platform_data/x86/.

To this end, add early_platform_quirks() to arch/x86/kernel/quirks.c
to perform the DMI check and invoke it from setup_arch().  Switch over
all existing Apple DMI checks, thereby fixing two deficiencies:

* They are now #defined to false on non-x86 arches and can thus be
  optimized away if they're located in cross-arch code.

* Some of them only match "Apple Inc." but not "Apple Computer, Inc.",
  which is used by BIOSes released between January 2006 (when the first
  x86 Macs started shipping) and January 2007 (when the company name
  changed upon introduction of the iPhone).

Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Suggested-by: Darren Hart <dvhart@infradead.org>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-08-03 23:26:22 +02:00
..
dwc Merge branch 'pci/host-qcom' into next 2017-07-04 11:00:57 -05:00
endpoint PCI: endpoint: Select CRC32 to fix test build error 2017-06-12 15:46:13 -05:00
host PCI: rockchip: Check for pci_scan_root_bus_bridge() failure correctly 2017-07-12 12:50:11 -05:00
hotplug Annotation of module parameters that specify device settings 2017-05-10 19:13:03 -07:00
pcie Merge branch 'pm-pci' 2017-07-14 13:15:49 +02:00
switch Merge branch 'pci/switchtec' into next 2017-07-02 18:51:10 -05:00
access.c PCI: Provide Kconfig option for lockless config space accessors 2017-06-28 22:32:56 +02:00
ats.c PCI: Restore PRI and PASID state after Function-Level Reset 2017-05-30 15:40:50 -05:00
bus.c
ecam.c PCI: ECAM: Map config region with pci_remap_cfgspace() 2017-04-24 13:53:14 -05:00
host-bridge.c
hotplug-pci.c
htirq.c
iov.c PCI: Protect pci_driver->sriov_configure() usage with device_lock() 2017-06-14 17:41:19 -05:00
irq.c pci-v4.12-changes 2017-05-08 19:03:25 -07:00
Kconfig PCI: Provide Kconfig option for lockless config space accessors 2017-06-28 22:32:56 +02:00
Makefile PCI: Build setup-irq.o on all arches 2017-07-02 16:14:27 -05:00
mmap.c PCI: Add I/O BAR support to generic pci_mmap_resource_range() 2017-04-20 08:47:47 -05:00
msi.c pci-v4.13-changes 2017-07-08 15:51:57 -07:00
of.c
pci-acpi.c PM / core: Drop run_wake flag from struct dev_pm_info 2017-06-28 01:52:52 +02:00
pci-driver.c Merge branch 'pm-pci' 2017-07-14 13:15:49 +02:00
pci-label.c pci-v4.13-changes 2017-07-08 15:51:57 -07:00
pci-mid.c PCI / PM: Simplify device wakeup settings code 2017-06-28 01:52:45 +02:00
pci-stub.c
pci-sysfs.c Merge branch 'pci/virtualization' into next 2017-07-03 08:00:29 -05:00
pci.c Merge branch 'pm-pci' 2017-07-14 13:15:49 +02:00
pci.h Merge branch 'pm-pci' 2017-07-14 13:15:49 +02:00
probe.c Merge branch 'pci/irq-fixups' into next 2017-07-03 08:00:29 -05:00
proc.c PCI: Add BAR index argument to pci_mmap_page_range() 2017-04-20 08:47:47 -05:00
quirks.c treewide: Consolidate Apple DMI checks 2017-08-03 23:26:22 +02:00
remove.c
rom.c
search.c PCI: Add device flag PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT 2017-04-13 18:49:50 -05:00
setup-bus.c PCI: Fix calculation of bridge window's size and alignment 2017-04-18 14:47:20 -05:00
setup-irq.c PCI: Add pci_assign_irq() function and have pci_fixup_irqs() use it 2017-07-02 16:14:28 -05:00
setup-res.c PCI: Make PCI_ROM_ADDRESS_MASK a 32-bit constant 2017-04-18 14:46:57 -05:00
slot.c
syscall.c
vc.c
vpd.c
xen-pcifront.c