linux_dsm_epyc7002/drivers/i2c/busses
Valentin Longchamp d49019a069 i2c: mpc: insert DR read in i2c_fixup()
The mpc_i2c_fixup function is called when the bus is not released by a
slave. The function generates 9 pulses that should lead the slave
to release the bus.

The sequence that generates the pulses disables/enables the I2C module
that controls the blocked bus. We have found out on the P2041 SoC that
this could cause the CPU to hang (for a short delay).

To avoid this, this patch introduces a read to the I2CDR register
between the re-enablement of the I2C module in master mode and its
returning to the slave mode instead of the delay (the final delay,
between the pulses is kept), as proposed in procedure from the P2041
reference manual (16.6.2.3), and the other manuals from the mpc83xx and
mpc85xx families.

Signed-off-by: Rainer Boschung <rainer.boschung@keymile.com>
Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2014-06-03 14:24:16 +02: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 DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-ali1535.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-ali1563.c i2c: ali1563: fix checkpatch.pl issues 2014-05-22 10:09:21 +02:00
i2c-amd756-s4882.c Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-amd756.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-amd8111.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-at91.c i2c: at91: Add device tree property to set clock-frequency 2014-03-12 08:26:04 +01:00
i2c-au1550.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-bcm2835.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-bcm-kona.c i2c: i2c-bcm-kona: Fix module build 2013-11-26 14:00:57 +01:00
i2c-bfin-twi.c i2c: bfin: turn to Resource-managed API in probe function 2014-06-03 10:28:19 +02:00
i2c-cadence.c i2c: Add driver for Cadence I2C controller 2014-04-06 17:47:19 +02:00
i2c-cbus-gpio.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-cpm.c i2c: cpm: Fix build by adding of_address.h and of_irq.h 2014-03-24 14:54:21 +01:00
i2c-davinci.c i2c: i2c-davinci: deprecate class based instantiation 2014-03-28 08:53:43 +01:00
i2c-designware-core.c i2c: designware: Mask all interrupts during i2c controller enable 2014-05-14 18:14:20 +02:00
i2c-designware-core.h i2c: designware: make SCL and SDA falling time configurable 2014-03-09 09:29:08 +01:00
i2c-designware-pcidrv.c i2c: designware-pci: Add Haswell PCI IDs 2014-06-02 19:18:40 +02:00
i2c-designware-platdrv.c i2c: designware: Add runtime PM hooks 2014-06-02 19:18:39 +02:00
i2c-diolan-u2c.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-efm32.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-eg20t.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-elektor.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-exynos5.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-gpio.c i2c: gpio: Use devm_gpio_request() 2014-05-22 10:09:25 +02:00
i2c-highlander.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-hydra.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-i801.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-ibm_iic.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-ibm_iic.h i2c-ibm_iic: Whitespace cleanup 2008-01-27 18:14:45 +01:00
i2c-imx.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-iop3xx.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-iop3xx.h i2c-iop3xx: add iomem annotation 2011-01-04 00:53:37 +00:00
i2c-isch.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-ismt.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-kempld.c i2c: Fix Kontron PLD prescaler calculation 2013-08-05 10:31:18 +02:00
i2c-mpc.c i2c: mpc: insert DR read in i2c_fixup() 2014-06-03 14:24:16 +02:00
i2c-mv64xxx.c i2c: mv64xxx: Change i2c compatibles for sunxi 2014-05-22 10:09:21 +02:00
i2c-mxs.c i2c: mxs: Use devm_ioremap_resource() 2014-03-10 08:29:37 +01:00
i2c-nforce2-s4985.c Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-nforce2.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-nomadik.c i2c: nomadik: Fixup system suspend 2014-05-22 10:09:21 +02:00
i2c-ocores.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-octeon.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-omap.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-parport-light.c Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-parport.c Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-parport.h Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-pasemi.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-pca-isa.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-pca-platform.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-piix4.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-pmcmsp.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-pnx.c i2c: pnx: Use devm_*() functions 2014-01-16 11:15:50 +01:00
i2c-powermac.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-puv3.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-pxa-pci.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-pxa.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-qup.c i2c: qup: Fix pm_runtime_get_sync usage 2014-05-14 18:14:49 +02:00
i2c-rcar.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-riic.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-robotfuzz-osif.c i2c: Add bus driver for for OSIF USB i2c device. 2014-01-13 13:56:56 +01:00
i2c-s3c2410.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-s6000.c i2c: use dev_get_platdata() 2013-08-19 19:46:30 +02:00
i2c-s6000.h i2c: Change mail address of Oskar Schirmer 2012-05-17 15:15:56 +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: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-sh_mobile.c i2c: sh_mobile: add compatibles for additional SoC 2014-06-01 22:22:08 +02:00
i2c-sibyte.c i2c/mips: Fix error return codes from Sibyte i2c bus driver 2010-07-10 09:42:47 +02:00
i2c-simtec.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-sirf.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-sis96x.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-sis630.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-sis5595.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-st.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-stu300.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-taos-evm.c Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-tegra.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +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-versatile.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-via.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-viapro.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-viperboard.c i2c: viperboard: remove superfluous assignment 2014-01-09 22:18:33 +01:00
i2c-wmt.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-xiic.c i2c: i2c-xiic: deprecate class based instantiation 2014-03-28 08:55:04 +01:00
i2c-xlr.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
Kconfig i2c: nuc900: remove driver 2014-06-02 19:18:37 +02:00
Makefile i2c: nuc900: remove driver 2014-06-02 19:18:37 +02:00
scx200_acb.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
scx200_i2c.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00