linux/drivers/i2c/busses
Ricardo Ribalda 701dc207bf i2c: piix4: Avoid race conditions with IMC
On AMD's SB800 and upwards, the SMBus is shared with the Integrated
Micro Controller (IMC).

The platform provides a hardware semaphore to avoid race conditions
among them. (Check page 288 of the SB800-Series Southbridges Register
Reference Guide http://support.amd.com/TechDocs/45482.pdf)

Without this patch, many access to the SMBus end with an invalid
transaction or even with the bus stalled.

Reported-by: Alexandre Desnoyers <alex@qtec.com>
Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>:
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2017-01-12 20:52:12 +01:00
..
Kconfig i2c: cadence: Allow Cadence I2C to be selected for Cadence Xtensa CPUs 2016-12-11 22:56:30 +01:00
Makefile i2c: imx-lpi2c: add low power i2c bus driver 2016-12-01 23:44:13 +01:00
i2c-acorn.c i2c: acorn: is tristate and should use module.h 2014-01-24 18:21:11 +01:00
i2c-ali15x3.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-ali1535.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-ali1563.c i2c: ali1563: fix checkpatch.pl issues 2014-05-22 10:09:21 +02:00
i2c-amd756-s4882.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-amd756.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-amd8111.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-at91.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-au1550.c i2c: au1550: Convert to devm_kzalloc and devm_ioremap_resource 2015-10-23 23:31:11 +02:00
i2c-axxia.c i2c: constify i2c_adapter_quirks structures 2016-11-18 02:05:03 +01:00
i2c-bcm-iproc.c i2c: constify i2c_adapter_quirks structures 2016-11-18 02:05:03 +01:00
i2c-bcm-kona.c Merge branch 'i2c/for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-10-07 14:12:21 -07:00
i2c-bcm2835.c i2c: bcm2835: Add support for dynamic clock 2016-11-07 01:48:32 +01:00
i2c-bfin-twi.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-brcmstb.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-cadence.c Merge branch 'i2c/for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-10-07 14:12:21 -07:00
i2c-cbus-gpio.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-cpm.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-cros-ec-tunnel.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-davinci.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-designware-baytrail.c i2c: designware-platform: Drop duplicate module information 2016-02-12 20:40:13 +01:00
i2c-designware-core.c 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
i2c-designware-core.h i2c: designware: Consolidate default functionality bits 2016-11-29 20:19:56 +01:00
i2c-designware-pcidrv.c i2c: designware-pcidrv: Add 10bit address feature to medfield/merrifield 2016-12-01 23:38:43 +01:00
i2c-designware-platdrv.c i2c: designware: fix wrong Tx/Rx FIFO for ACPI 2016-12-17 19:38:03 +01:00
i2c-digicolor.c i2c: digicolor: use clk_disable_unprepare instead of clk_unprepare 2016-11-18 01:48:01 +01:00
i2c-diolan-u2c.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-dln2.c i2c: constify i2c_adapter_quirks structures 2016-11-18 02:05:03 +01:00
i2c-efm32.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-eg20t.c i2c-eg20t: fix race between i2c init and interrupt enable 2016-09-21 18:07:51 +02:00
i2c-elektor.c i2c: elektor: Utilize the module_isa_driver macro 2016-06-19 19:45:43 +02:00
i2c-emev2.c i2c: emev2: add slave support 2015-12-05 19:55:36 +01:00
i2c-exynos5.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-gpio.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-highlander.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-hix5hd2.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-hydra.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-i801.c i2c: use an IRQ to report Host Notify events, not alert 2016-11-24 16:22:06 +01:00
i2c-ibm_iic.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-ibm_iic.h
i2c-img-scb.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-imx-lpi2c.c i2c: fsl-lpi2c: read lpi2c fifo size in probe() 2016-12-11 23:06:39 +01:00
i2c-imx.c i2c: imx: defer probe if bus recovery GPIOs are not ready 2016-10-25 12:15:00 +02:00
i2c-iop3xx.c i2c: iop3xx: use new 8 bit address helper function 2016-04-11 18:54:59 +02:00
i2c-iop3xx.h i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-isch.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-ismt.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-jz4780.c i2c: jz4780: Fix module autoload 2016-10-25 11:48:58 +02:00
i2c-kempld.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-lpc2k.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-meson.c i2c: meson: add gxbb compatible string 2016-09-15 21:37:16 +02:00
i2c-mlxcpld.c i2c: mlxcpld: add master driver for mellanox systems 2016-11-24 16:21:42 +01:00
i2c-mpc.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-mt65xx.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-mv64xxx.c i2c: mv64xxx: remove CONFIG_HAVE_CLK conditionals 2016-04-27 19:03:15 +02:00
i2c-mxs.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-nforce2-s4985.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-nforce2.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-nomadik.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-ocores.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-octeon-core.c i2c: octeon: thunderx: Limit register access retries 2016-12-17 19:27:44 +01:00
i2c-octeon-core.h i2c: octeon: thunderx: Limit register access retries 2016-12-17 19:27:44 +01:00
i2c-octeon-platdrv.c i2c: octeon: Sort include files alphabetically 2016-08-26 00:41:58 +02:00
i2c-omap.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-opal.c powerpc/opal: Add inline function to get rc from an ASYNC_COMP opal_msg 2016-06-29 17:33:18 +10:00
i2c-parport-light.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
i2c-parport.c i2c: parport: start using pr_fmt 2015-08-10 08:37:28 +02:00
i2c-parport.h i2c: parport: Add VCT-jig adapter 2015-08-10 08:37:34 +02:00
i2c-pasemi.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-pca-isa.c i2c: pca-isa: Utilize the module_isa_driver macro 2016-06-19 19:49:29 +02:00
i2c-pca-platform.c i2c: pca-platform: fix broken email address 2015-04-23 19:35:30 +02:00
i2c-piix4.c i2c: piix4: Avoid race conditions with IMC 2017-01-12 20:52:12 +01:00
i2c-pmcmsp.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-pnx.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-powermac.c i2c: powermac: use new 8 bit address helper function 2016-04-11 18:54:59 +02:00
i2c-puv3.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-pxa-pci.c i2c: i2c-pxa-pci; make explicitly non-modular 2016-11-18 01:44:38 +01:00
i2c-pxa.c i2c: pxa: Add support for the I2C units found in Armada 3700 2016-12-01 23:34:33 +01:00
i2c-qup.c i2c: qup: support SMBus block read 2016-11-29 22:43:38 +01:00
i2c-rcar.c i2c: rcar: Add per-Generation fallback bindings 2016-12-11 22:48:53 +01:00
i2c-riic.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-rk3x.c i2c: rk3x: Give the tuning value 0 during rk3x_i2c_v0_calc_timings 2016-10-25 11:11:46 +02:00
i2c-robotfuzz-osif.c i2c: robotfuzz-osif: Constify osif_table 2016-06-13 22:32:09 +02:00
i2c-s3c2410.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-scmi.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-sh7760.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-sh_mobile.c i2c: sh_mobile: Add per-Generation fallback bindings 2016-12-11 22:52:28 +01:00
i2c-sibyte.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-simtec.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
i2c-sirf.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-sis96x.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sis630.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sis5595.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-st.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-stu300.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-sun6i-p2wi.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-taos-evm.c i2c: taos-evm: replace simple_strtoul by kstrtou8 2015-11-30 18:37:22 +01:00
i2c-tegra.c i2c: tegra: Fix assignment of boolean variables 2016-09-08 22:36:18 +02:00
i2c-thunderx-pcidrv.c i2c: octeon,thunderx: Move register offsets to struct 2016-08-26 00:41:57 +02:00
i2c-tiny-usb.c i2c: i2c-tiny-usb: Remove RobotFuzz USB vendor:product ID 2014-01-13 13:56:52 +01:00
i2c-uniphier-f.c i2c: uniphier-f: rename jump label to follow coding style guideline 2016-11-18 02:16:08 +01:00
i2c-uniphier.c i2c: uniphier: rename jump label to follow coding style guideline 2016-11-18 02:13:11 +01:00
i2c-versatile.c i2c: versatile: Convert to use resource managed devm_* APIs 2016-07-14 21:21:56 +09:00
i2c-via.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-viapro.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-viperboard.c i2c: constify i2c_adapter_quirks structures 2016-11-18 02:05:03 +01:00
i2c-wmt.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-xgene-slimpro.c i2c: xgene: Fix missing code of DTB support 2016-12-17 19:35:41 +01:00
i2c-xiic.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-xlp9xx.c i2c: xlp9xx: ACPI support for I2C clients 2016-11-18 02:25:38 +01:00
i2c-xlr.c i2c: xlr: Fix module autoload for OF registration 2016-10-25 11:49:00 +02:00
scx200_acb.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00