linux-stable/drivers/mfd
Mika Westerberg d9018976cd mfd: lpc_ich: Do not touch SPI-NOR write protection bit on Haswell/Broadwell
At least on Lenovo Thinkpad Yoga, the BIOS seems to monitor the SPI-NOR
write protection bit and if it is flipped to read/write it assumes the
BIOS configuration was changed on next reboot. It then, for unknown
reasons, resets the BIOS settings back to default.

We can prevent this by just leaving the write protection bit intact and
let the SPI-NOR driver know whether the device is writable or not. In
case of this particular Lenovo the SPI-NOR flash will be exposed as
read-only.

Fixes: ff00d7a32a ("mfd: lpc_ich: Add support for SPI serial flash host controller")
Link: https://bugzilla.kernel.org/show_bug.cgi?id=195951
Reported-by: Abdó Roig-Marange <abdo.roig@gmail.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
2017-09-05 08:46:01 +01:00
..
88pm80x.c mfd: Use to_i2c_client() instead of open-coding it 2016-01-14 08:43:50 +00:00
88pm800.c
88pm805.c
88pm860x-core.c mfd: 88pm860x: Move over to new I2C device .probe() call 2016-11-17 16:10:24 +01:00
88pm860x-i2c.c
Kconfig mfd: Add ROHM BD9571MWV-M MFD PMIC driver 2017-09-05 08:46:00 +01:00
Makefile mfd: Add ROHM BD9571MWV-M MFD PMIC driver 2017-09-05 08:46:00 +01:00
aat2870-core.c mfd: aat2870-core: Remove unnecessary 'out of memory' message 2016-01-14 08:43:52 +00:00
ab3100-core.c mfd: ab3100-core: Make it explicitly non-modular 2016-11-29 08:21:29 +00:00
ab3100-otp.c mfd: ab2100-otp: Remove pointless 'out of memory' error message 2016-01-14 08:43:53 +00:00
ab8500-core.c mfd: ab8500-core: Constify attribute_group structures 2017-09-05 08:46:00 +01:00
ab8500-debugfs.c mfd: ab8500-debugfs: Make it explicitly non-modular 2016-11-29 08:21:30 +00:00
ab8500-gpadc.c mfd: ab8500-gpadc: Make it explicitly non-modular 2016-11-29 08:21:31 +00:00
ab8500-sysctrl.c mfd: ab8500-sysctrl: Handle probe deferral 2017-02-13 09:29:43 +00:00
abx500-core.c mfd: abx500-core: drop unused MODULE_ tags from non-modular code 2016-11-29 08:21:32 +00:00
ac100.c mfd: ac100: Add driver for X-Powers AC100 audio codec / RTC combo IC 2016-08-08 12:53:26 +01:00
act8945a.c mfd: act8945a: Add .of_compatible for act8945a-charger 2016-10-04 15:48:03 +01:00
adp5520.c mfd: adp5520: Some trivial 'no space before tab' fixes 2016-01-14 08:43:57 +00:00
altera-a10sr.c mfd: altr_a10sr: Add Arria10 DevKit Reset Controller 2017-04-27 09:25:04 +01:00
arizona-core.c mfd: arizona: Fix typo using hard-coded register 2017-06-06 10:17:42 +01:00
arizona-i2c.c mfd: arizona-i2c: Add blank line formatting after declaration 2016-01-14 08:43:58 +00:00
arizona-irq.c mfd: arizona: Correctly clean up after IRQs 2017-02-13 09:29:40 +00:00
arizona-spi.c mfd: arizona: Support Cirrus Logic CS47L24 and WM1831 2015-12-04 08:46:39 +00:00
arizona.h mfd: arizona: Remove totally unused forward declaration 2017-02-13 09:29:40 +00:00
as3711.c mfd: as3711: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:54:50 +01:00
as3722.c mfd: as3722: Use devm_mfd_add_devices and devm_regmap_add_irq_chip 2016-05-09 08:24:46 +01:00
asic3.c mfd: asic3: Make use of raw_spinlock variants 2017-04-27 09:25:05 +01:00
atmel-flexcom.c mfd: atmel: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
atmel-hlcdc.c mfd: atmel-hlcdc: Do not sleep in atomic context 2016-10-04 15:48:04 +01:00
atmel-smc.c mfd: syscon: atmel-smc: Add helper to retrieve register layout 2017-09-05 08:46:01 +01:00
axp20x-i2c.c mfd: axp20x-i2c: Add i2c-ids to fix module auto-loading 2016-11-29 08:21:25 +00:00
axp20x-rsb.c mfd: axp20x: Add support for AXP813 PMIC 2017-09-05 08:46:00 +01:00
axp20x.c mfd: axp20x: Use correct platform device ID for many PEK 2017-09-05 08:46:01 +01:00
bcm590xx.c mfd: bcm590xx: Simplify a test 2016-11-29 08:21:33 +00:00
bd9571mwv.c mfd: Add ROHM BD9571MWV-M MFD PMIC driver 2017-09-05 08:46:00 +01:00
cros_ec.c chrome-platform-for-linus-4.13 2017-07-11 09:55:47 -07:00
cros_ec_acpi_gpe.c mfd: cros_ec: Add ACPI GPE handler for LID0 devices 2017-04-27 09:25:03 +01:00
cros_ec_i2c.c mfd: cros_ec_i2c: Fix trivial 'tabs before spaces' whitespace issue. 2016-01-14 08:44:01 +00:00
cros_ec_spi.c mfd: cros ec: spi: Increase wait time to 200ms 2017-04-27 09:25:04 +01:00
cs47l24-tables.c mfd: arizona: Mark AIFx_TX_BCLK_RATE as readable for cs47l24 2016-11-21 13:00:18 +00:00
cs5535-mfd.c mfd: cs5535-mfd: Add missing line spacing and make local array static 2016-01-14 08:44:02 +00:00
da903x.c mfd: da903x: Fix white space and split string issues 2016-01-14 08:44:03 +00:00
da9052-core.c mfd: da9052: Fix manual ADC read after timed out read 2017-09-05 08:46:00 +01:00
da9052-i2c.c mfd: da9052-i2c: Fix tabbing/whitespace issue 2016-01-14 08:44:03 +00:00
da9052-irq.c mfd: da9052-irq: Fix trivial 'space before comma' error 2016-01-14 08:44:04 +00:00
da9052-spi.c - New Device Support 2015-11-06 10:23:50 -08:00
da9055-core.c
da9055-i2c.c
da9062-core.c Revert "mfd: da9061: Fix to remove BBAT_CONT register from chip model" 2017-08-22 09:03:00 +01:00
da9063-core.c mfd: da9063: Update author information to remove incorrect e-mail addresses 2016-10-04 15:48:01 +01:00
da9063-i2c.c mfd: da9063: Update author information to remove incorrect e-mail addresses 2016-10-04 15:48:01 +01:00
da9063-irq.c mfd: da9063: Update author information to remove incorrect e-mail addresses 2016-10-04 15:48:01 +01:00
da9150-core.c mfd: da9150: Use DEFINE_RES_IRQ_NAMED() help macro for IRQ resource 2015-10-13 11:28:36 +01:00
davinci_voicecodec.c mfd: davinci_voicecodec: Tidyup header difinitions 2016-11-29 08:21:27 +00:00
db8500-prcmu.c mfd: Convert remaining uses of pr_warning to pr_warn 2017-04-27 09:25:05 +01:00
dbx500-prcmu-regs.h
dln2.c
dm355evm_msp.c mfd: dm355evm_msp: Move header file out of I2C realm 2017-08-15 08:06:14 +01:00
exynos-lpass.c mfd: exynos: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
ezx-pcap.c Merge remote-tracking branches 'spi/topic/omap-100k', 'spi/topic/omap-uwire', 'spi/topic/owner', 'spi/topic/pxa' and 'spi/topic/pxa2xx' into spi-next 2015-11-04 11:02:12 +00:00
fsl-imx25-tsadc.c mfd: fsl-imx25: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
hi655x-pmic.c mfd: hi655x: Add the clock cell to provide WiFi and Bluetooth 2017-04-27 11:54:43 +01:00
hi6421-pmic-core.c mfd: hi6421-pmic: Add support for HiSilicon Hi6421v530 2017-09-05 08:46:00 +01:00
htc-i2cpld.c mfd: htc-i2cpld: Use gpiochip data pointer 2016-04-19 07:58:30 +01:00
htc-pasic3.c
intel-lpss-acpi.c mfd: intel-lpss: Remove left over variable 2017-04-27 09:25:04 +01:00
intel-lpss-pci.c mfd: intel-lpss: Add Intel Cannonlake PCI IDs 2017-07-06 08:29:11 +01:00
intel-lpss.c mfd: intel-lpss: Do not put device in reset state on suspend 2016-11-16 09:50:25 +00:00
intel-lpss.h device property: don't bother the drivers with struct property_set 2016-04-09 03:10:50 +02:00
intel_msic.c mfd: intel_msic: Make it explicitly non-modular 2016-10-04 15:48:03 +01:00
intel_quark_i2c_gpio.c mfd: intel_quark_i2c_gpio: Add support for SIMATIC IOT2000 platform 2017-07-06 08:29:12 +01:00
intel_soc_pmic_bxtwc.c mfd: intel_soc_pmic_bxtwc: Use chained IRQs for second level IRQ chips 2017-06-19 15:45:01 +01:00
intel_soc_pmic_chtwc.c mfd: Add Cherry Trail Whiskey Cove PMIC driver 2017-07-06 08:29:13 +01:00
intel_soc_pmic_core.c mfd: intel_soc_pmic_core: Fix unchecked return value 2017-04-27 11:54:47 +01:00
intel_soc_pmic_core.h
intel_soc_pmic_crc.c
ipaq-micro.c mfd: ipaq-micro: Dump debugging hexdumps 2017-07-06 08:29:11 +01:00
janz-cmodio.c
jz4740-adc.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
kempld-core.c mfd: Add support for several boards to Kontron PLD driver 2017-02-13 09:29:44 +00:00
lm3533-core.c mfd: lm3533: Fix unused variable build warning 2015-10-30 17:19:52 +00:00
lm3533-ctrlbank.c
lp873x.c mfd: lp873x: Remove unused mutex lock from struct lp873x 2016-10-04 15:48:04 +01:00
lp3943.c mfd: lp3943: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:55:23 +01:00
lp8788-irq.c mfd: lp8788-irq: Uninitialized variable in irq handler 2016-04-11 13:31:40 +01:00
lp8788.c
lp87565.c mfd: Add LP87565 PMIC support 2017-07-06 08:29:13 +01:00
lpc_ich.c mfd: lpc_ich: Do not touch SPI-NOR write protection bit on Haswell/Broadwell 2017-09-05 08:46:01 +01:00
lpc_sch.c
max8907.c
max8925-core.c
max8925-i2c.c mfd: max8925-i2c: Drop unnecessary static 2017-09-05 08:46:00 +01:00
max8997-irq.c mfd: max8997-irq: 'inline' should be at the beginning of the declaration 2016-10-04 15:48:05 +01:00
max8997.c mfd: max8997: Make it explicitly non-modular 2016-06-29 10:14:30 +01:00
max8998-irq.c mfd: max899x: Avoid redundant irq_data lookup 2015-08-11 15:09:08 +01:00
max8998.c mfd: max8998: Fix potential NULL pointer dereference 2017-09-05 08:46:00 +01:00
max14577.c mfd: max14577: Change Krzysztof Kozlowski's email to kernel.org 2016-10-04 15:48:02 +01:00
max77620.c treewide: Fix printk() message errors 2016-12-14 10:54:27 +01:00
max77686.c mfd: max77686: Remove I2C device ID table 2017-02-13 09:29:43 +00:00
max77693.c mfd: max77686/max77693: Fix misspelled Samsung address 2016-04-19 07:59:14 +01:00
max77843.c mfd: max77843: Make it explicitly non-modular 2016-06-29 10:14:28 +01:00
mc13xxx-core.c mfd: mc13xxx-core: Use of_property_read_bool() 2015-12-04 08:45:54 +00:00
mc13xxx-i2c.c
mc13xxx-spi.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
mc13xxx.h
mcp-core.c
mcp-sa11x0.c
menelaus.c mfd: menelaus: Remove obsolete local_irq_disable() and local_irq_enable() 2017-04-27 11:54:46 +01:00
menf21bmc.c mfd: menf21bmc: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:55:30 +01:00
mfd-core.c mfd: core: Fix device reference leak in mfd_clone_cell 2016-11-29 08:21:34 +00:00
motorola-cpcap.c mfd: motorola-cpcap: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
mt6397-core.c mfd: mt6397: Align the placement at which the mfd_cell of LED is defined 2017-04-27 09:25:05 +01:00
mxs-lradc.c mfd: mxs-lradc: Add support for mxs-lradc 2017-03-23 12:28:28 +00:00
omap-usb-host.c mfd: omap-usb-host: Return value is not 'const int' 2016-10-04 15:48:05 +01:00
omap-usb-tll.c mfd: omap-usb-tll: Configure ULPIAUTOIDLE 2017-04-27 11:54:45 +01:00
omap-usb.h
palmas.c mfd: palmas: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
pcf50633-adc.c
pcf50633-core.c
pcf50633-gpio.c
pcf50633-irq.c mfd: pcf50633: Remove unneded ret variable 2015-10-30 17:19:42 +00:00
qcom-pm8xxx.c mfd: pm8xxx: add support to pm8821 2016-11-29 08:21:36 +00:00
qcom-spmi-pmic.c mfd: qcom-spmi-pmic: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
qcom_rpm.c mfd: qcom_rpm: Handle message RAM clock 2016-10-04 15:48:02 +01:00
rc5t583-irq.c mfd: rc5t583: Use devm_mfd_add_devices and devm_request_threaded_irq 2016-05-09 13:27:38 +01:00
rc5t583.c mfd: rc5t583: Use devm_mfd_add_devices and devm_request_threaded_irq 2016-05-09 13:27:38 +01:00
rdc321x-southbridge.c mfd: rdc321x: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:55:52 +01:00
retu-mfd.c mfd: retu: Add OF device ID table 2017-07-18 08:27:18 +01:00
rk808.c mfd: rk808: Add RK805 power key support 2017-08-21 08:54:56 +01:00
rn5t618.c mfd: rn5t618: Unregister restart handler on remove 2017-07-06 08:29:11 +01:00
rt5033.c mfd: rt5033: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:56:17 +01:00
rtl8411.c
rts5209.c mfd: rtsx: Simplify function return logic 2015-10-30 17:19:44 +00:00
rts5227.c mfd: rtsx: Add support for rts522A 2015-10-30 17:19:51 +00:00
rts5229.c mfd: rtsx: Simplify function return logic 2015-10-30 17:19:44 +00:00
rts5249.c mfd: rtsx: Simplify function return logic 2015-10-30 17:19:44 +00:00
rtsx_pcr.c mfd: rtsx: Make arrays depth and cd_mask static const 2017-09-05 08:45:59 +01:00
rtsx_pcr.h mfd: rtsx: Add support for rts522A 2015-10-30 17:19:51 +00:00
rtsx_usb.c mfd: rtsx_usb: Avoid setting ucr->current_sg.status 2016-10-04 15:48:02 +01:00
sec-core.c mfd: sec: Use devm_mfd_add_devices and devm_regmap_add_irq_chip 2016-05-09 13:27:38 +01:00
sec-irq.c mfd: sec: Use devm_mfd_add_devices and devm_regmap_add_irq_chip 2016-05-09 13:27:38 +01:00
si476x-cmd.c
si476x-i2c.c mfd: si476x-i2c: Fix spelling mistakes "Failet" and "gett" 2016-11-29 08:21:29 +00:00
si476x-prop.c
sky81452.c mfd: sky81452: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:56:28 +01:00
sm501.c mfd: sm501: Constify gpio_chip structures 2016-10-04 15:48:03 +01:00
smsc-ece1099.c mfd: smsc-ece: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
ssbi.c
sta2x11-mfd.c mfd: Convert remaining uses of pr_warning to pr_warn 2017-04-27 09:25:05 +01:00
stm32-lptimer.c mfd: Add STM32 LPTimer driver 2017-09-04 14:49:04 +01:00
stm32-timers.c mfd: stm32-timers: Use devm_of_platform_populate() 2017-07-06 08:29:12 +01:00
stmpe-i2c.c mfd: Add STMPE1600 support 2016-08-10 09:25:18 +01:00
stmpe-spi.c spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
stmpe.c mfd: stmpe: Fix bit clearing on STMPE1600 2017-04-27 09:25:07 +01:00
stmpe.h mfd: Add STMPE1600 support 2016-08-10 09:25:18 +01:00
stw481x.c mfd: stw481x: Use devm_mfd_add_devices() for mfd_device registration 2016-04-19 07:56:35 +01:00
sun4i-gpadc.c mfd: sun4i-gpadc: Fix 'cast from pointer to integer of different size' warning 2016-11-29 08:21:26 +00:00
sun6i-prcm.c mfd: sun6i-prcm: Add codec analog controls sub-device for Allwinner A23 2017-02-13 09:29:40 +00:00
syscon.c mfd: syscon: Support native-endian regmaps 2016-11-29 08:21:25 +00:00
t7l66xb.c mfd: t7l66xb: Make use of raw_spinlock variants 2017-04-27 09:25:05 +01:00
tc3589x.c mfd: tc3589x: Improve function-level documentation 2016-11-29 08:21:19 +00:00
tc6387xb.c
tc6393xb.c mfd: tc6393xb: Handle return value of clk_prepare_enable 2017-07-06 08:29:12 +01:00
ti-lmu.c mfd: Add TI LMU driver 2017-04-27 09:25:04 +01:00
ti_am335x_tscadc.c mfd: ti_am335x_tscadc: store physical address 2016-11-05 17:30:51 +00:00
timberdale.c Input: tsc2007 - move header file out of I2C realm 2017-05-22 17:26:58 -07:00
timberdale.h
tmio_core.c
tps6105x.c mfd: tps6105x: Add OF device ID table 2017-07-18 08:27:37 +01:00
tps6507x.c mfd: tps6507: Fix white space warnings reported by checkpatch 2016-06-29 10:14:35 +01:00
tps6586x.c
tps65010.c mfd: tps65010: Move header file out of I2C realm 2017-08-15 08:27:22 +01:00
tps65086.c mfd: tps65086: Add driver for the TPS65086 PMIC 2016-03-16 08:50:15 +00:00
tps65090.c mfd: tps65090: Set regmap config reg counts properly 2016-03-16 08:50:36 +00:00
tps65217.c mfd: tps65217: Support an interrupt pin as the system wakeup 2016-11-29 08:21:40 +00:00
tps65218.c mfd: tps65218: Use mfd_add_devices instead of of_platform_populate 2016-10-26 10:30:29 +01:00
tps65910.c regulator: tps65910: wire up sleep control configuration 2017-06-15 18:23:27 +01:00
tps65911-comparator.c
tps65912-core.c mfd: tps65912: Move regmap config into core driver 2016-11-29 08:21:21 +00:00
tps65912-i2c.c mfd: tps65912: Export OF device ID table as module aliases 2017-02-13 09:29:43 +00:00
tps65912-spi.c mfd: tps65912: Fix variable name for SPI remove 2017-04-27 09:25:04 +01:00
tps80031.c
twl-core.c mfd: twl-core: Improve the documentation 2017-09-05 08:45:59 +01:00
twl-core.h
twl4030-audio.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
twl4030-irq.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
twl4030-power.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
twl6030-irq.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
twl6040.c mfd: twl6040: Register child device for twl6040-pdmclk 2016-10-04 15:48:05 +01:00
ucb1x00-assabet.c
ucb1x00-core.c mfd: ucb1x00: Remove NO_IRQ check 2016-10-04 15:48:03 +01:00
ucb1x00-ts.c
ucb1400_core.c
vexpress-sysreg.c mfd: vexpress-sysreg: Switch to gpiochip_add_data() 2016-04-19 07:59:06 +01:00
viperboard.c
vx855.c
wl1273-core.c mfd: wl1273-core: Use devm_mfd_add_devices() for mfd_device registration 2016-05-09 13:27:39 +01:00
wm831x-auxadc.c
wm831x-core.c mfd: wm831x: Remove redundant !pdata checks 2017-07-06 08:29:11 +01:00
wm831x-i2c.c mfd: wm831x-i2c: Add NULL check before pointer dereference 2017-07-06 08:29:11 +01:00
wm831x-irq.c mfd: wm831x: Add basic device tree binding 2017-03-23 11:45:50 +00:00
wm831x-otp.c mfd: wm831x: Fix broken wm831x_unique_id_show 2016-01-11 06:23:21 +00:00
wm831x-spi.c mfd: wm831x-spi: Add NULL check before pointer dereference 2017-07-06 08:29:11 +01:00
wm5102-tables.c mfd: wm5102: Remove spurious trailing spaces 2016-11-29 08:21:26 +00:00
wm5110-tables.c mfd: wm5110: ARIZONA_CLOCK_CONTROL should be volatile 2016-05-09 15:41:35 +01:00
wm8350-core.c
wm8350-gpio.c
wm8350-i2c.c
wm8350-irq.c
wm8350-regmap.c
wm8400-core.c mfd: Use IS_ENABLED(CONFIG_FOO) instead of checking FOO || FOO_MODULE 2016-05-09 08:23:56 +01:00
wm8994-core.c mfd: wm8994-core: Don't use managed regulator bulk get API 2016-11-29 08:21:27 +00:00
wm8994-irq.c mfd: wm8994: Fix NULL pointer exception on missing pdata 2015-08-11 15:09:13 +01:00
wm8994-regmap.c
wm8994.h
wm8997-tables.c sound updates for 4.3-rc1 2015-09-04 11:46:02 -07:00
wm8998-tables.c mfd: wm8998: Fix defaults array based on testing 2016-03-16 08:50:22 +00:00