OpenCloudOS-Kernel/drivers/i2c
Qiuxu Zhuo bfd4473b85 i2c: i801: Restore the presence state of P2SB PCI device after reading BAR
Sun, Yunying reported the following failure on Denverton micro-server:

 EDAC DEBUG: pnd2_init:
 EDAC DEBUG: pnd2_probe:
 EDAC DEBUG: dnv_rd_reg: Read b_cr_tolud_pci=00000000_80000000
 EDAC DEBUG: dnv_rd_reg: Read b_cr_touud_lo_pci=00000000_80000000
 EDAC DEBUG: dnv_rd_reg: Read b_cr_touud_hi_pci=00000000_00000004
 EDAC DEBUG: dnv_rd_reg: Read b_cr_asym_mem_region0_mchbar=00000000_00000000
 EDAC DEBUG: dnv_rd_reg: Read b_cr_asym_mem_region1_mchbar=00000000_00000000
 EDAC DEBUG: dnv_rd_reg: Read b_cr_mot_out_base_mchbar=00000000_00000000
 EDAC DEBUG: dnv_rd_reg: Read b_cr_mot_out_mask_mchbar=00000000_00000000
 EDAC pnd2: Failed to register device with error -19.

On Denverton micro-server, the presence of the P2SB bridge PCI device is
enabled or disabled by the item 'RelaxSecConf' in BIOS setup menu. When
'RelaxSecConf' is enabled, the P2SB PCI device is present and the pnd2_edac
EDAC driver also uses it to get BAR. Hiding the P2SB PCI device caused the
pnd2_edac EDAC driver failed to get BAR then reported the above failure.

Therefor, store the presence state of P2SB PCI device before unhiding it
for reading BAR and restore the presence state after reading BAR.

Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Reported-by: Yunying Sun <yunying.sun@intel.com>
Tested-by: Yunying Sun <yunying.sun@intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2017-08-28 17:29:48 +02:00
..
algos i2c: algo-bit: add support for I2C_M_STOP 2017-06-23 20:45:43 +02:00
busses i2c: i801: Restore the presence state of P2SB PCI device after reading BAR 2017-08-28 17:29:48 +02:00
muxes Merge branch 'i2c-mux/for-next' of https://github.com/peda-r/i2c-mux into i2c/for-4.14 2017-08-27 15:14:49 +02:00
Kconfig Merge branch 'i2c/for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-12-15 12:56:35 -08:00
Makefile i2c: break out ACPI support into separate file 2017-05-31 21:01:04 +02:00
i2c-boardinfo.c i2c: allow attaching IRQ resources to i2c_board_info 2017-04-01 09:36:19 -07:00
i2c-core-acpi.c i2c: acpi: Do not create i2c-clients for LNXVIDEO ACPI devices 2017-07-04 15:57:34 +02:00
i2c-core-base.c i2c: reformat core-base file header 2017-05-31 21:01:06 +02:00
i2c-core-of.c i2c: Convert to using %pOF instead of full_name 2017-07-31 17:19:35 +02:00
i2c-core-slave.c i2c: break out slave support into separate file 2017-05-31 21:01:03 +02:00
i2c-core-smbus.c i2c: break out smbus support into separate file 2017-05-31 21:01:03 +02:00
i2c-core.h i2c: break out ACPI support into separate file 2017-05-31 21:01:04 +02:00
i2c-dev.c i2c: fix kernel memory disclosure in dev interface 2017-01-12 20:06:10 +01:00
i2c-mux.c i2c: mux: only print failure message on error 2017-05-15 18:49:11 +02:00
i2c-slave-eeprom.c i2c: Drop owner assignment from i2c_driver 2015-08-10 08:37:35 +02:00
i2c-smbus.c i2c: use an IRQ to report Host Notify events, not alert 2016-11-24 16:22:06 +01:00
i2c-stub.c i2c: stub: fix build warning regression 2017-06-15 23:22:11 +02:00