linux_dsm_epyc7002/drivers/i2c/busses
Mika Westerberg 17a76b4b32 i2c-designware: always set the STOP bit after last byte
If IC_EMPTYFIFO_HOLD_MASTER_EN is set to one, the DesignWare I2C controller
doesn't generate STOP on the bus when the FIFO is empty. This violates the
rules of Linux I2C stack as it requires that the STOP is issued once the
i2c_transfer() is finished.

However, there is no way to detect this from the hardware registers, so we
must make sure that the STOP bit is always set once the last byte of the
last message is transferred.

This patch is based on the work of Dirk Brandewie.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
2013-01-28 05:26:42 +01:00
..
i2c-acorn.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
i2c-ali15x3.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-ali1535.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-ali1563.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-amd756-s4882.c i2c: Use snprintf to set adapter names 2009-01-07 14:29:18 +01:00
i2c-amd756.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-amd8111.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-at91.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-au1550.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-bfin-twi.c i2c: i2c-bfin-twi: Move blackfin TWI register access Macro to head file. 2012-07-13 08:37:31 +02:00
i2c-cbus-gpio.c i2c: i2c-cbus-gpio: introduce driver 2012-11-19 09:57:16 +01:00
i2c-cpm.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-davinci.c Merge branch 'i2c-embedded/for-next' of git://git.pengutronix.de/git/wsa/linux 2012-10-11 10:27:51 +09:00
i2c-designware-core.c i2c-designware: always set the STOP bit after last byte 2013-01-28 05:26:42 +01:00
i2c-designware-core.h i2c: designware: Add support for 16bit register access 2012-05-12 14:28:11 +02:00
i2c-designware-pcidrv.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-designware-platdrv.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-diolan-u2c.c i2c: diolan-u2c: Fix master_xfer return code 2012-08-18 12:27:27 +02:00
i2c-eg20t.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-elektor.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-gpio.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-highlander.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-hydra.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-i801.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-ibm_iic.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-ibm_iic.h i2c-ibm_iic: Whitespace cleanup 2008-01-27 18:14:45 +01:00
i2c-imx.c i2c: imx: remove cpu_is_xxx by using platform_device_id 2012-10-15 10:03:15 +08:00
i2c-intel-mid.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-iop3xx.c i2c: iop3xx: use standard gpiolib functions 2012-07-25 09:26:41 -05:00
i2c-iop3xx.h i2c-iop3xx: add iomem annotation 2011-01-04 00:53:37 +00:00
i2c-isch.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-mpc.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-mv64xxx.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-mxs.c i2c: mxs: Fix type of error code 2013-01-22 09:54:23 +01:00
i2c-nforce2-s4985.c i2c: Fix oops on bus multiplexer driver loading 2008-08-10 22:56:15 +02:00
i2c-nforce2.c i2c: nforce2: fix coding style issues 2013-01-28 05:26:42 +01:00
i2c-nomadik.c i2c: nomadik: Fix the usage of wait_for_completion_timeout 2012-11-12 18:21:55 +01:00
i2c-nuc900.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-ocores.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-octeon.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-omap.c i2c: omap: fix draining irq handling 2013-01-22 16:17:05 +01:00
i2c-parport-light.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-parport.c i2c-parport: i2c_parport_irq can be static 2012-10-05 22:23:53 +02:00
i2c-parport.h i2c-parport: Various cleanups 2011-05-24 20:58:49 +02:00
i2c-pasemi.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +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: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-piix4.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-pmcmsp.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-pnx.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-powermac.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-puv3.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-pxa-pci.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-pxa.c i2c/i2c-pxa: remove conditional compilation of clk code 2012-07-30 17:25:12 -07:00
i2c-rcar.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-s3c2410.c Merge branch 'i2c-embedded/for-next' of git://git.pengutronix.de/git/wsa/linux 2012-12-18 16:51:10 -08:00
i2c-s6000.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-s6000.h i2c: Change mail address of Oskar Schirmer 2012-05-17 15:15:56 +02:00
i2c-scmi.c i2c-scmi: convert to module_acpi_driver() 2012-09-21 13:39:56 -04:00
i2c-sh7760.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-sh_mobile.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01: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/busses: Use module_platform_driver() 2012-01-12 20:32:04 +01:00
i2c-sirf.c i2c: sirf: register i2c_client from dt child-nodes in probe entry 2013-01-22 09:54:31 +01:00
i2c-sis96x.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-sis630.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-sis5595.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-stu300.c i2c: stu300: use devm managed resources 2012-07-16 13:48:51 +02:00
i2c-taos-evm.c i2c-taos-evm: Fix log messages 2011-06-29 11:36:10 +02:00
i2c-tegra.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-tiny-usb.c i2c-tiny-usb: Add support for the Robofuzz OSIF USB/I2C converter 2012-07-24 14:13:59 +02:00
i2c-versatile.c i2c: Dynamically assign adapter id if it wasn't explictly specified 2012-05-12 14:28:11 +02:00
i2c-via.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-viapro.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-viperboard.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-xiic.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
i2c-xlr.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
Kconfig Merge branch 'i2c-embedded/for-next' of git://git.pengutronix.de/git/wsa/linux 2012-12-18 16:51:10 -08:00
Makefile Merge branch 'i2c-embedded/for-next' of git://git.pengutronix.de/git/wsa/linux 2012-12-18 16:51:10 -08:00
scx200_acb.c i2c: remove __dev* attributes from subsystem 2012-12-22 20:13:45 +01:00
scx200_i2c.c i2c/scx200_*: Replace printks with pr_<level>s 2012-10-05 22:23:52 +02:00