linux/drivers/i2c/busses
Roman Vivchar deb35336b5
i2c: mediatek: fix WRRD for SoCs without auto_restart option
MediaTek mt65xx family SoCs have no auto restart, however, they still
support the WRRD mode in the hardware. Because auto_restart is set to 0,
the WRRD mode will be never enabled, leading to read errors.

Fix this by removing auto_restart check from the WRRD enable path.

Fixes: b492183652 ("i2c: mediatek: fix potential incorrect use of I2C_MASTER_WRRD")
Signed-off-by: Roman Vivchar <rva333@protonmail.com>
Cc: <stable@vger.kernel.org> # v6.18+
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260709-6572-6595-i2c-v2-1-b2fb8510d1d3@protonmail.com
2026-07-15 00:21:51 +02:00
..
i2c-acorn.c
i2c-ali15x3.c i2c: ali15x3: Fix an error handling path in ali15x3_probe() 2025-03-12 12:24:52 +01:00
i2c-ali1535.c i2c: ali1535: Fix an error handling path in ali1535_probe() 2025-03-12 12:24:52 +01:00
i2c-ali1563.c i2c: add missing MODULE_DESCRIPTION() macros 2024-07-09 00:46:06 +02:00
i2c-altera.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-amd-asf-plat.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
i2c-amd-mp2-pci.c i2c: amd-mp2: clean up amd_mp2_find_device() 2026-01-16 13:45:05 +01:00
i2c-amd-mp2-plat.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-amd-mp2.h i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-amd756.c i2c: amd756: Remove superfluous TODO 2025-01-14 11:09:47 +01:00
i2c-amd8111.c i2c: amd8111: switch to devm_ functions 2026-02-07 01:20:04 +01:00
i2c-aspeed.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-at91-core.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-at91-master.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-at91-slave.c i2c: at91: Fix the functionality flags of the slave-only interface 2024-06-12 17:07:33 +01:00
i2c-at91.h
i2c-au1550.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-axxia.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-bcm-iproc.c i2c: bcm-iproc: Fix Wvoid-pointer-to-enum-cast warning 2025-12-17 00:28:43 +01:00
i2c-bcm-kona.c i2c: bcm-kona: fix spelling mistake in timeout-check comment 2026-06-09 08:40:21 +02:00
i2c-bcm2835.c i2c: busses: bcm2835: convert from round_rate() to determine_rate() 2025-10-27 14:17:14 +01:00
i2c-brcmstb.c i2c: brcmstb: Use i2c_10bit_addr_*_from_msg() helpers 2025-03-18 21:53:54 +01:00
i2c-cadence.c i2c: cadence: Add shutdown handler 2026-06-09 08:30:47 +02:00
i2c-cbus-gpio.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-ccgx-ucsi.c i2c: add missing MODULE_DESCRIPTION() macros 2024-07-09 00:46:06 +02:00
i2c-ccgx-ucsi.h
i2c-cgbc.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-cht-wc.c i2c: Switch to irq_domain_create_linear() 2025-05-16 21:06:09 +02:00
i2c-cp2615.c i2c-for-7.1-rc1-part1 2026-04-18 09:44:22 -07:00
i2c-cpm.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-cros-ec-tunnel.c i2c: cros-ec-tunnel: defer probe if parent EC is not present 2025-04-13 21:33:44 +02:00
i2c-davinci.c i2c: davinci: Unregister cpufreq notifier on probe failure 2026-06-16 14:40:00 +02:00
i2c-designware-amdisp.c i2c: designware: amdisp: Fix resume-probe race condition issue 2026-03-27 13:51:21 +01:00
i2c-designware-amdpsp.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-designware-baytrail.c
i2c-designware-common.c i2c: designware: Handle active target cleanly 2026-05-29 00:39:12 +02:00
i2c-designware-core.h i2c: designware: Introduce shutdown exported function 2026-05-29 00:39:00 +02:00
i2c-designware-master.c i2c: designware: Handle active target cleanly 2026-05-29 00:39:12 +02:00
i2c-designware-pcidrv.c i2c: designware-pcidrv: Consistently define pci_device_ids using named initializers 2026-06-09 08:44:21 +02:00
i2c-designware-platdrv.c i2c: designware: Add ACPI ID LECA0003 for LECARC SoCs 2026-05-29 00:50:31 +02:00
i2c-designware-slave.c i2c: designware: Enable mode swapping 2026-01-22 14:43:51 +01:00
i2c-digicolor.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-diolan-u2c.c i2c: diolan-u2c: drop redundant device reference 2026-03-09 12:58:56 +01:00
i2c-dln2.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-eg20t.c i2c: eg20t: Consistently define pci_device_ids using named initializers 2026-06-09 08:44:26 +02:00
i2c-elektor.c i2c: Don't let i2c adapters declare I2C_CLASS_SPD support if they support I2C_CLASS_HWMON 2024-01-18 21:10:41 +01:00
i2c-emev2.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-exynos5.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-fsi.c i2c: fsi: Fix a potential leak in fsi_i2c_probe() 2026-03-19 23:45:06 +01:00
i2c-gpio.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-gxp.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
i2c-highlander.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-hisi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
i2c-hix5hd2.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-hydra.c
i2c-i801.c i2c: i801: fix hardware state machine corruption in error path 2026-06-23 17:53:08 +02:00
i2c-ibm_iic.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-ibm_iic.h
i2c-icy.c i2c: icy: Use named initializer for zorro_device_id arrays 2026-05-29 00:19:03 +02:00
i2c-img-scb.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-imx-lpi2c.c i2c: imx-lpi2c: mark I2C adapter when hardware is powered down 2026-06-17 11:07:50 +02:00
i2c-imx.c i2c: imx: fix locked bus on SMBus block-read of 0 (IRQ) 2026-07-14 16:40:20 +02:00
i2c-iop3xx.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-iop3xx.h
i2c-isch.c i2c: isch: Convert comma to semicolon 2025-01-07 23:46:10 +01:00
i2c-ismt.c i2c: ismt: Use non-hybrid PCI devres API 2025-05-19 22:23:57 +02:00
i2c-jz4780.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-k1.c i2c: spacemit: fix spurious IRQ handling returning IRQ_HANDLED 2026-07-14 17:38:13 +02:00
i2c-keba.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-kempld.c i2c: kempld: Use i2c_10bit_addr_*_from_msg() helpers 2025-03-18 21:53:54 +01:00
i2c-ljca.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
i2c-lpc2k.c i2c: lpc2k: Add check for clk_enable() 2025-05-19 22:23:54 +02:00
i2c-ls2x-v2.c i2c: ls2x-v2: return IRQ_HANDLED after servicing an error 2026-06-17 01:19:53 +02:00
i2c-ls2x.c i2c: ls2x: Fix frequency division register access 2025-02-26 23:23:33 +01:00
i2c-mchp-pci1xxxx.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-meson.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-microchip-corei2c.c i2c: microchip-core: re-fix fake detections w/ i2cdetect 2025-07-01 18:37:38 +02:00
i2c-mlxbf.c i2c: mlxbf: Fix use-after-free in mlxbf_i2c_init_resource() 2026-07-14 23:50:12 +02:00
i2c-mlxcpld.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-mpc.c i2c: mpc: Fix timeout calculations 2026-06-23 17:28:25 +02:00
i2c-mt65xx.c i2c: mediatek: fix WRRD for SoCs without auto_restart option 2026-07-15 00:21:51 +02:00
i2c-mt7621.c i2c: mt7621: Use i2c_10bit_addr_*_from_msg() helpers 2025-03-18 21:53:54 +01:00
i2c-mv64xxx.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-mxs.c i2c: mxs: add missing kernel-doc for struct mxs_i2c_dev members 2026-06-10 23:10:34 +02:00
i2c-nct6694.c i2c: Add Nuvoton NCT6694 I2C support 2025-09-16 14:41:57 +01:00
i2c-nforce2.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-nomadik.c i2c: nomadik: Use HZ_PER_GHZ constant instead of plain number 2026-01-13 18:34:29 +01:00
i2c-npcm7xx.c i2c: npcm7xx: Use NULL instead of 0 for pointer 2026-03-20 00:12:10 +01:00
i2c-nvidia-gpu.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-ocores.c i2c: ocores: Use read_poll_timeout_atomic to avoid false poll timeouts 2026-03-27 14:53:25 +01:00
i2c-octeon-core.c i2c: octeon: add block-mode i2c operations 2025-05-19 22:23:55 +02:00
i2c-octeon-core.h i2c: octeon: add block-mode i2c operations 2025-05-19 22:23:55 +02:00
i2c-octeon-platdrv.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-omap.c i2c: omap: switch to new generic helper for getting selected mux-state 2026-03-09 13:44:45 +01:00
i2c-opal.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-owl.c i2c: owl: reword according to newest specification 2024-07-11 15:14:17 +02:00
i2c-parport.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-pasemi-core.c i2c: pasemi: Log bus reset causes 2025-05-19 22:23:57 +02:00
i2c-pasemi-core.h
i2c-pasemi-pci.c i2c: pasemi: Sort includes alphabetically 2025-05-19 22:23:55 +02:00
i2c-pasemi-platform.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-pca-isa.c i2c: rename wait_for_completion callback to wait_for_completion_cb 2025-10-04 18:52:58 +02:00
i2c-pca-platform.c i2c: rename wait_for_completion callback to wait_for_completion_cb 2025-10-04 18:52:58 +02:00
i2c-piix4.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-piix4.h i2c: piix4: Export i2c_piix4 driver functions as library 2024-11-13 23:29:46 +01:00
i2c-pnx.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-powermac.c i2c: powermac: convert of_node usage to fwnode 2025-05-20 22:49:21 +02:00
i2c-pxa-pci.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-pxa.c i2c: pxa: Use named initializers for the platform_device_id array 2026-06-18 12:08:49 +02:00
i2c-qcom-cci.c i2c: qcom-cci: Remove overcautious disable_irq() calls 2026-06-16 14:40:00 +02:00
i2c-qcom-geni.c i2c: qcom-geni: Use pm_runtime_force_{suspend,resume} helpers 2026-06-09 20:17:12 +02:00
i2c-qup.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-rcar.c i2c: rcar: Fix Wvoid-pointer-to-enum-cast warning 2025-12-17 00:28:50 +01:00
i2c-riic.c i2c: riic: fix refcount leak in riic_i2c_resume_noirq() 2026-06-08 17:35:03 +02:00
i2c-rk3x.c i2c: rk3x: Use HZ_PER_GHZ constant instead of plain number 2026-01-13 18:34:33 +01:00
i2c-robotfuzz-osif.c i2c: robotfuzz-osif: drop redundant device reference 2026-03-09 12:54:03 +01:00
i2c-rtl9300.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
i2c-rzv2m.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
i2c-s3c2410.c i2c: s3c24xx: check the size of the SMBUS message before using it 2026-03-25 18:13:39 +01:00
i2c-scmi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-sh_mobile.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-sh7760.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-sibyte.c i2c: Don't let i2c adapters declare I2C_CLASS_SPD support if they support I2C_CLASS_HWMON 2024-01-18 21:10:41 +01:00
i2c-simtec.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-sis96x.c i2c: sis96x: Replace dev_err() with dev_err_probe() in probe function 2026-05-29 00:05:06 +02:00
i2c-sis630.c i2c: sis630: Replace dev_err() with dev_err_probe() in probe function 2026-05-29 00:05:10 +02:00
i2c-sis5595.c i2c: sis5595: reword according to newest specification 2024-07-11 15:14:20 +02:00
i2c-sprd.c i2c: sprd: Replace dev_err() with dev_err_probe() in probe function 2026-05-29 00:05:03 +02:00
i2c-st.c i2c: st: Replace dev_err() with dev_err_probe() in probe function 2026-05-29 00:05:00 +02:00
i2c-stm32.c i2c: stm32: Replace dev_err() with dev_err_probe() in probe function 2026-05-29 00:04:57 +02:00
i2c-stm32.h
i2c-stm32f4.c i2c: stm32f4: Replace dev_err() with dev_err_probe() in probe function 2026-05-29 00:04:53 +02:00
i2c-stm32f7.c i2c: stm32f7: truncate clock period instead of rounding it 2026-06-17 10:33:05 +02:00
i2c-sun6i-p2wi.c i2c: sun6i-p2wi: Replace dev_err() with dev_err_probe() in probe function 2026-05-28 23:49:42 +02:00
i2c-synquacer.c i2c: synquacer: Use HZ_PER_GHZ constant instead of plain number 2026-01-13 18:34:43 +01:00
i2c-taos-evm.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
i2c-tegra-bpmp.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-tegra.c i2c for v7.2 2026-06-16 07:43:29 +05:30
i2c-thunderx-pcidrv.c i2c: thunderx: Use non-hybrid PCI devres API 2025-05-19 22:23:57 +02:00
i2c-tiny-usb.c i2c: tiny-usb: Replace dev_err() with dev_err_probe() in probe function 2026-05-28 23:26:43 +02:00
i2c-uniphier-f.c i2c: uniphier(-f): Replace dev_err() with dev_err_probe() in probe function 2025-05-19 22:23:55 +02:00
i2c-uniphier.c i2c: uniphier: Replace dev_err() with dev_err_probe() in probe function 2025-05-19 22:23:55 +02:00
i2c-usbio.c i2c: usbio: Add ACPI device-id for NVL platforms 2026-04-10 23:08:42 +02:00
i2c-versatile.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-via.c i2c: via: Replace dev_err() with dev_err_probe() in probe function 2025-05-19 22:23:55 +02:00
i2c-viai2c-common.c i2c: viai2c: reword according to newest specification 2024-07-11 15:14:24 +02:00
i2c-viai2c-common.h i2c: viai2c: turn common code into a proper module 2024-06-26 16:07:21 +02:00
i2c-viai2c-wmt.c i2c: viai2c-wmt: Replace dev_err() with dev_err_probe() in probe function 2025-05-23 10:02:27 +02:00
i2c-viai2c-zhaoxin.c i2c: viai2c: reword according to newest specification 2024-07-11 15:14:24 +02:00
i2c-viapro.c i2c: viapro: Replace dev_err() with dev_err_probe() in probe function 2025-05-19 22:23:55 +02:00
i2c-viperboard.c i2c: busses: Fix some spelling errors 2025-09-25 23:49:08 +02:00
i2c-virtio.c i2c: virtio: mark device ready before registering the adapter 2026-05-30 15:56:07 +02:00
i2c-xgene-slimpro.c i2c: xgene-slimpro: Replace dev_err() with dev_err_probe() in probe function 2025-05-23 10:02:27 +02:00
i2c-xiic.c i2c: xiic: skip input clock setup on non-OF systems 2026-04-02 01:28:03 +02:00
i2c-xlp9xx.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
Kconfig i2c: qcom: Unify user-visible "Qualcomm" name 2026-06-17 01:29:02 +02:00
Makefile i2c: ls2x-v2: Add driver for Loongson-2K0300 I2C controller 2026-04-27 12:35:35 +02:00
scx200_acb.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00