kernel_samsung_a53x/drivers/i2c/busses
Jian Zhang 53fa188f64 i2c: aspeed: Fix i2c bus hang in slave read
commit 54f1840ddee9bbdc8dd89fbbfdfa632401244146 upstream.

When the `CONFIG_I2C_SLAVE` option is enabled and the device operates
as a slave, a situation arises where the master sends a START signal
without the accompanying STOP signal. This action results in a
persistent I2C bus timeout. The core issue stems from the fact that
the i2c controller remains in a slave read state without a timeout
mechanism. As a consequence, the bus perpetually experiences timeouts.

In this case, the i2c bus will be reset, but the slave_state reset is
missing.

Fixes: fee465150b45 ("i2c: aspeed: Reset the i2c controller when timeout occurs")
Signed-off-by: Jian Zhang <zhangjian.3032@bytedance.com>
Acked-by: Andi Shyti <andi.shyti@kernel.org>
Tested-by: Andrew Jeffery <andrew@codeconstruct.com.au>
Reviewed-by: Andrew Jeffery <andrew@codeconstruct.com.au>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-18 10:58:31 +01:00
..
acpm-mfd-bus.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-acorn.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-ali15x3.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-ali1535.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-ali1563.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-altera.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-amd-mp2-pci.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-amd-mp2-plat.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-amd-mp2.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-amd756-s4882.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-amd756.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-amd8111.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-aspeed.c i2c: aspeed: Fix i2c bus hang in slave read 2024-11-18 10:58:31 +01:00
i2c-at91-core.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-at91-master.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-at91-slave.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-at91.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-au1550.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-axxia.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-bcm-iproc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-bcm-kona.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-bcm2835.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-brcmstb.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-cadence.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-cbus-gpio.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-cht-wc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-cpm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-cros-ec-tunnel.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-davinci.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-designware-baytrail.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-designware-common.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-designware-core.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-designware-master.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-designware-pcidrv.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-designware-platdrv.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-designware-slave.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-digicolor.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-diolan-u2c.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-dln2.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-efm32.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-eg20t.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-elektor.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-emev2.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-exynos5.c i2c: exynos5: Silence noisy error and info logs 2024-11-17 17:45:37 +01:00
i2c-exynos5.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-fsi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-gpio.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-highlander.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-hix5hd2.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-hydra.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-i801.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-ibm_iic.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-ibm_iic.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-icy.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-img-scb.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-imx-lpi2c.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-imx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-iop3xx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-iop3xx.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-isch.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-ismt.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-jz4780.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-kempld.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-lpc2k.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-meson.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-mlxbf.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-mlxcpld.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-mpc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-mt65xx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-mt7621.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-mv64xxx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-mxs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-nforce2-s4985.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-nforce2.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-nomadik.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-npcm7xx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-nvidia-gpu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-ocores.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-octeon-core.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-octeon-core.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-octeon-platdrv.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-omap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-opal.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-owl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-parport.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-pasemi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-pca-isa.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-pca-platform.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-piix4.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-pmcmsp.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-pnx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-powermac.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-pxa-pci.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-pxa.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-qcom-cci.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-qcom-geni.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-qup.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-rcar.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-riic.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-rk3x.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-robotfuzz-osif.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-s3c2410.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-scmi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-sh7760.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-sh_mobile.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-sibyte.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-simtec.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-sirf.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-sis96x.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-sis630.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-sis5595.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-sprd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-st.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-stm32.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-stm32.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-stm32f4.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-stm32f7.c i2c: stm32f7: Fix PEC handling in case of SMBUS transfers 2024-11-18 10:58:31 +01:00
i2c-stu300.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-sun6i-p2wi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-synquacer.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-taos-evm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-tegra-bpmp.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-tegra.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-thunderx-pcidrv.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-tiny-usb.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-uniphier-f.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-uniphier.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-versatile.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-via.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-viapro.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-viperboard.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-wmt.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-xgene-slimpro.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-xiic.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-xlp9xx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-xlr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
i2c-zx2967.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
scx200_acb.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00