linux-stable/include/linux/platform_data
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
..
media [media] ir-rx51: port to rc-core 2017-01-30 14:25:04 -02:00
x86 treewide: Consolidate Apple DMI checks 2017-08-03 23:26:22 +02:00
ad5449.h
ad5755.h
ad5761.h iio: add ad5761 DAC driver 2016-01-24 14:46:21 +00:00
ad7266.h
ad7291.h
ad7298.h
ad7303.h
ad7791.h
ad7793.h
ad7879.h Input: ad7879 - move header to platform_data directory 2016-03-08 10:51:10 -08:00
ad7887.h
adau17x1.h ASoC: adau17x1: Correct typos in file headers 2016-02-24 13:14:05 +09:00
adau1977.h
adp5588.h gpio: adp5588: move header file out of I2C realm 2017-05-29 13:36:45 +02:00
adp8860.h backlight: adp8860: Move header file out of I2C realm 2017-07-06 08:56:08 +01:00
adp8870.h video: adp8870: move header file out of I2C realm 2017-07-06 08:58:39 +01:00
ads1015.h hwmon: (ads1015) move header file out of I2C realm 2017-06-11 17:08:19 -07:00
ads7828.h
apds990x.h misc: apds990x: move header file out of I2C realm 2017-05-25 18:25:00 +02:00
arm-ux500-pm.h
asoc-imx-ssi.h
asoc-kirkwood.h
asoc-mx27vis.h
asoc-palm27x.h
asoc-s3c.h ASoC: samsung: Remove tests of member address 2016-12-15 11:42:42 +00:00
asoc-s3c24xx_simtec.h
asoc-ti-mcbsp.h ARM: OMAP2+: McBSP: Remove the old iclk allow/deny idle code 2016-06-10 05:07:25 -07:00
asoc-ux500-msp.h
at24.h eeprom: at24: add support for at24mac series 2016-07-17 19:58:00 +02:00
at91_adc.h
ata-pxa.h
ata-samsung_cf.h
atmel.h ARM: SoC platform updates 2017-07-04 14:34:51 -07:00
atmel_mxt_ts.h
b53.h net: dsa: b53: Add support for Broadcom RoboSwitch 2016-06-09 22:21:29 -07:00
bcmgenet.h
bd6107.h
bfin_rotary.h
bh1770glc.h misc: bh1770glc: move header file out of I2C realm 2017-05-25 18:25:00 +02:00
brcmfmac.h brcmfmac: switch to new platform data 2016-03-07 14:15:50 +02:00
bt-nokia-h4p.h
clk-integrator.h
clk-lpss.h
clk-u300.h
cpuidle-exynos.h
crypto-atmel.h
crypto-ux500.h
cyttsp4.h
davinci_asp.h
db8500_thermal.h
dma-atmel.h
dma-coh901318.h
dma-dw.h dmaengine: dw: add support of iDMA 32-bit hardware 2017-01-25 11:51:40 +05:30
dma-ep93xx.h
dma-hsu.h
dma-imx-sdma.h
dma-imx.h
dma-mmp_tdma.h dmaengine: mmp_tdma: enable COMPILE_TEST 2016-09-26 22:31:04 +05:30
dma-mv_xor.h
dma-s3c24xx.h dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices 2016-09-26 23:13:04 +05:30
dma-ste-dma40.h
dmtimer-omap.h
ds620.h hwmon: (ds620) move header file out of I2C realm 2017-06-11 17:08:19 -07:00
dwc3-omap.h
edma.h dmaengine updates for 4.5-rc1 2016-01-13 10:59:52 -08:00
efm32-spi.h
efm32-uart.h
ehci-sh.h
elm.h
emif_plat.h
eth-netx.h
fsa9480.h
g762.h
gpio-ath79.h
gpio-davinci.h gpio: davinci: Add support for multiple GPIO controllers 2017-01-26 10:00:22 +01:00
gpio-dwapb.h gpio: dwapb: convert device node to fwnode 2016-04-29 11:23:53 +02:00
gpio-htc-egpio.h mfd/gpio: Move HTC GPIO driver to GPIO subsystem 2016-09-28 09:28:34 -07:00
gpio-omap.h
gpio-ts5500.h
gpio_backlight.h
gpmc-omap.h ARM: OMAP2+: gpmc: Add gpmc timings and settings to platform data 2016-04-15 11:51:02 +03:00
hsmmc-omap.h mmc: host: omap_hsmmc: remove unused platform callbacks 2017-07-17 15:05:52 +02:00
hwmon-s3c.h
i2c-cbus-gpio.h
i2c-davinci.h
i2c-designware.h
i2c-hid.h HID: i2c-hid: move header file out of I2C realm 2017-05-22 14:00:31 +02:00
i2c-imx.h
i2c-mux-reg.h
i2c-nuc900.h
i2c-s3c2410.h
ina2xx.h
intel-mid_wdt.h
intel-spi.h spi-nor: Add support for Intel SPI serial flash controller 2017-01-03 17:33:36 +00:00
invensense_mpu6050.h iio:imu:mpu6050: enhance mounting matrix support 2016-04-23 22:16:01 +01:00
iommu-omap.h iommu/omap: Move data structures to omap-iommu.h 2017-04-20 16:33:58 +02:00
irda-pxaficp.h
irda-sa11x0.h
isl9305.h regulator: isl9305: fix array size 2017-04-10 17:31:17 +01:00
itco_wdt.h watchdog: iTCO_wdt: Add PMC specific noreboot update api 2017-04-28 21:51:28 +03:00
keyboard-pxa930_rotary.h
keyboard-spear.h
keypad-ep93xx.h
keypad-nomadik-ske.h
keypad-omap.h
keypad-pxa27x.h
keypad-w90p910.h
keyscan-davinci.h
lcd-mipid.h
leds-kirkwood-netxbig.h
leds-kirkwood-ns2.h
leds-lm355x.h
leds-lm3642.h
leds-lp55xx.h
leds-omap.h
leds-pca963x.h leds: pca963x: Add bindings to invert polarity 2017-05-14 13:01:29 +02:00
leds-s3c24xx.h
lm3630a_bl.h
lm3639_bl.h
lm8323.h Input: lm8323 - move header file out of I2C realm 2017-05-22 17:23:46 -07:00
lp855x.h
lp8727.h
lp8755.h
ltc4245.h hwmon: (ltc4245) move header file out of I2C realm 2017-06-11 17:08:19 -07:00
lv5207lp.h
macb.h net: macb: Added PCI wrapper for Platform Driver. 2016-12-17 10:24:33 -05:00
max197.h
max732x.h gpio: max732x: move header file out of I2C realm 2017-05-23 11:33:59 +02:00
max3421-hcd.h
max6639.h hwmon: (max6639) move header file out of I2C realm 2017-06-11 17:08:19 -07:00
max6697.h
mcs.h Input: mcs - move header file out of I2C realm 2017-05-22 17:26:57 -07:00
mdio-gpio.h
mfd-mcp-sa11x0.h
microchip-ksz.h dsa: add DSA switch driver for Microchip KSZ9477 2017-05-31 20:56:31 -04:00
mlxcpld-hotplug.h platform/x86: Introduce support for Mellanox hotplug driver 2016-10-23 07:52:57 -07:00
mmc-davinci.h
mmc-esdhc-imx.h mmc: sdhci-esdhc-imx: support setting tuning start point 2016-07-25 10:34:54 +02:00
mmc-mxcmmc.h mmc: mxcmmc: Include interrupt.h in the platform data header 2017-02-13 13:20:14 +01:00
mmc-omap.h
mmc-pxamci.h
mmc-s3cmci.h
mmc-sdhci-s3c.h
mmp_audio.h
mmp_dma.h dmaengine: mmp-pdma: add number of requestors 2016-02-26 22:56:52 +01:00
mms114.h Input: mms114 - move header file out of I2C realm 2017-05-22 17:26:58 -07:00
mouse-pxa930_trkball.h
mtd-davinci-aemif.h
mtd-davinci.h
mtd-mxc_nand.h
mtd-nand-omap2.h mtd: nand: omap2: Implement NAND ready using gpiolib 2016-04-15 11:55:37 +03:00
mtd-nand-pxa3xx.h
mtd-nand-s3c2410.h mtd: s3c2410: parse the device configuration from OF node 2016-11-07 14:48:36 +01:00
mtd-onenand-omap2.h
mtd-orion_nand.h
mv_usb.h
net-cw1200.h
nfcmrvl.h NFC: nfcmrvl: allow gpio 0 for reset signalling 2017-06-18 23:58:00 +02:00
ntc_thermistor.h hwmon: (ntc_thermistor) Add support for ncpXXxh103 2016-03-05 06:25:34 -08:00
nxp-nci.h
omap-twl4030.h
omap-wd-timer.h
omap1_bl.h
omap_drm.h
omapdss.h drm: omapdrm: Remove unused default display name support 2017-06-02 10:57:10 +03:00
pca953x.h
pcf857x.h gpio: pcf857x: move header file out of I2C realm 2017-05-23 11:35:02 +02:00
pcmcia-pxa2xx_viper.h
pinctrl-adi2.h
pinctrl-single.h
pixcir_i2c_ts.h
pwm_omap_dmtimer.h ARM: OMAP2+: Add more functions to pwm pdata for ir-rx51 2016-04-28 14:26:32 -07:00
pxa2xx_udc.h
pxa_sdhci.h
regulator-haptic.h
remoteproc-omap.h remoteproc/omap: fix various code formatting issues 2016-08-12 21:27:50 -07:00
rtc-ds2404.h rtc: ds2404: move rtc-ds2404.h to platform_data 2016-06-27 10:48:28 +02:00
rtc-v3020.h rtc: v3020: move rtc-v3020.h to platform_data 2016-07-09 10:24:21 +02:00
s3c-hsotg.h
s3c-hsudc.h
sa11x0-serial.h serial: sa1100: make sa1100_register_uart_fns a function 2016-03-07 16:11:14 -08:00
sc18is602.h
sdhci-pic32.h MIPS: Add support for PIC32MZDA platform 2016-01-24 02:53:28 +01:00
serial-imx.h
serial-omap.h ARM: OMAP: serial: Rename DRIVER_NAME 2016-02-06 23:13:30 -08:00
serial-sccnxp.h
sh_ipmmu.h
shmob_drm.h
sht3x.h hwmon: add support for Sensirion SHT3x sensors 2016-06-27 18:58:03 -07:00
sht15.h
shtc1.h
si5351.h
simplefb.h
sky81452-backlight.h
spi-clps711x.h
spi-davinci.h
spi-ep93xx.h spi: spi-ep93xx: simplify GPIO chip selects 2017-02-16 20:10:26 +00:00
spi-imx.h
spi-mt65xx.h spi: mediatek: adjust register to enhance time accuracy 2017-06-13 19:42:31 +01:00
spi-nuc900.h
spi-omap2-mcspi.h
spi-s3c64xx.h ARM: s3c64xx: Drop unused DMA fields from struct s3c64xx_spi_csinfo 2016-11-17 15:51:29 +05:30
ssm2518.h
st33zp24.h tpm/st33zp24: Extend Copyright headers 2016-06-25 17:21:42 +03:00
st1232_pdata.h
st_sensors_pdata.h iio: st_sensors: support open drain mode 2016-04-19 19:58:13 +01:00
syscon.h
ti-aemif.h memory: aemif: allow passing device lookup table as platform data 2017-01-19 12:42:25 +01:00
touchscreen-s3c2410.h ARM: s3c64xx: use new adc/touchscreen driver 2015-12-01 21:50:25 +01:00
tsc2007.h Input: tsc2007 - move header file out of I2C realm 2017-05-22 17:26:58 -07:00
tsl2563.h
uio_dmem_genirq.h
uio_pruss.h
usb-davinci.h ARM: davinci: da8xx: Remove duplicated defines 2016-10-31 16:51:56 +05:30
usb-ehci-mxc.h
usb-ehci-orion.h
usb-musb-ux500.h
usb-mx2.h
usb-ohci-pxa27x.h
usb-ohci-s3c2410.h ARM: samsung: usb-ohci: move inline before return type 2017-07-12 16:26:05 -07:00
usb-omap.h
usb-omap1.h
usb-pxa3xx-ulpi.h
usb-s3c2410_udc.h
usb3503.h
ux500_wdt.h
video-clcd-versatile.h
video-ep93xx.h
video-imxfb.h video: fbdev: imxfb: support AUS mode 2017-04-21 16:47:11 +02:00
video-mx3fb.h
video-nuc900fb.h
video-pxafb.h
video_s3c.h
voltage-omap.h
wiznet.h
wkup_m3.h
zforce_ts.h