linux/drivers/i2c/busses
Charles Haithcock 1c72e7b0b4 i2c: i801: Revert "i2c: i801: replace acpi_lock with I2C bus lock"
[ Upstream commit cfc69c2e6c ]

This reverts commit f707d6b9e7.

Under rare circumstances, multiple udev threads can collect i801 device
info on boot and walk i801_acpi_io_handler somewhat concurrently. The
first will note the area is reserved by acpi to prevent further touches.
This ultimately causes the area to be deregistered. The second will
enter i801_acpi_io_handler after the area is unregistered but before a
check can be made that the area is unregistered. i2c_lock_bus relies on
the now unregistered area containing lock_ops to lock the bus. The end
result is a kernel panic on boot with the following backtrace;

[   14.971872] ioatdma 0000:09:00.2: enabling device (0100 -> 0102)
[   14.971873] BUG: kernel NULL pointer dereference, address: 0000000000000000
[   14.971880] #PF: supervisor read access in kernel mode
[   14.971884] #PF: error_code(0x0000) - not-present page
[   14.971887] PGD 0 P4D 0
[   14.971894] Oops: 0000 [#1] PREEMPT SMP PTI
[   14.971900] CPU: 5 PID: 956 Comm: systemd-udevd Not tainted 5.14.0-611.5.1.el9_7.x86_64 #1
[   14.971905] Hardware name: XXXXXXXXXXXXXXXXXXXXXXX BIOS 1.20.10.SV91 01/30/2023
[   14.971908] RIP: 0010:i801_acpi_io_handler+0x2d/0xb0 [i2c_i801]
[   14.971929] Code: 00 00 49 8b 40 20 41 57 41 56 4d 8b b8 30 04 00 00 49 89 ce 41 55 41 89 d5 41 54 49 89 f4 be 02 00 00 00 55 4c 89 c5 53 89 fb <48> 8b 00 4c 89 c7 e8 18 61 54 e9 80 bd 80 04 00 00 00 75 09 4c 3b
[   14.971933] RSP: 0018:ffffbaa841483838 EFLAGS: 00010282
[   14.971938] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffff9685e01ba568
[   14.971941] RDX: 0000000000000008 RSI: 0000000000000002 RDI: 0000000000000000
[   14.971944] RBP: ffff9685ca22f028 R08: ffff9685ca22f028 R09: ffff9685ca22f028
[   14.971948] R10: 000000000000000b R11: 0000000000000580 R12: 0000000000000580
[   14.971951] R13: 0000000000000008 R14: ffff9685e01ba568 R15: ffff9685c222f000
[   14.971954] FS:  00007f8287c0ab40(0000) GS:ffff96a47f940000(0000) knlGS:0000000000000000
[   14.971959] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   14.971963] CR2: 0000000000000000 CR3: 0000000168090001 CR4: 00000000003706f0
[   14.971966] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   14.971968] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   14.971972] Call Trace:
[   14.971977]  <TASK>
[   14.971981]  ? show_trace_log_lvl+0x1c4/0x2df
[   14.971994]  ? show_trace_log_lvl+0x1c4/0x2df
[   14.972003]  ? acpi_ev_address_space_dispatch+0x16e/0x3c0
[   14.972014]  ? __die_body.cold+0x8/0xd
[   14.972021]  ? page_fault_oops+0x132/0x170
[   14.972028]  ? exc_page_fault+0x61/0x150
[   14.972036]  ? asm_exc_page_fault+0x22/0x30
[   14.972045]  ? i801_acpi_io_handler+0x2d/0xb0 [i2c_i801]
[   14.972061]  acpi_ev_address_space_dispatch+0x16e/0x3c0
[   14.972069]  ? __pfx_i801_acpi_io_handler+0x10/0x10 [i2c_i801]
[   14.972085]  acpi_ex_access_region+0x5b/0xd0
[   14.972093]  acpi_ex_field_datum_io+0x73/0x2e0
[   14.972100]  acpi_ex_read_data_from_field+0x8e/0x230
[   14.972106]  acpi_ex_resolve_node_to_value+0x23d/0x310
[   14.972114]  acpi_ds_evaluate_name_path+0xad/0x110
[   14.972121]  acpi_ds_exec_end_op+0x321/0x510
[   14.972127]  acpi_ps_parse_loop+0xf7/0x680
[   14.972136]  acpi_ps_parse_aml+0x17a/0x3d0
[   14.972143]  acpi_ps_execute_method+0x137/0x270
[   14.972150]  acpi_ns_evaluate+0x1f4/0x2e0
[   14.972158]  acpi_evaluate_object+0x134/0x2f0
[   14.972164]  acpi_evaluate_integer+0x50/0xe0
[   14.972173]  ? vsnprintf+0x24b/0x570
[   14.972181]  acpi_ac_get_state.part.0+0x23/0x70
[   14.972189]  get_ac_property+0x4e/0x60
[   14.972195]  power_supply_show_property+0x90/0x1f0
[   14.972205]  add_prop_uevent+0x29/0x90
[   14.972213]  power_supply_uevent+0x109/0x1d0
[   14.972222]  dev_uevent+0x10e/0x2f0
[   14.972228]  uevent_show+0x8e/0x100
[   14.972236]  dev_attr_show+0x19/0x40
[   14.972246]  sysfs_kf_seq_show+0x9b/0x100
[   14.972253]  seq_read_iter+0x120/0x4b0
[   14.972262]  ? selinux_file_permission+0x106/0x150
[   14.972273]  vfs_read+0x24f/0x3a0
[   14.972284]  ksys_read+0x5f/0xe0
[   14.972291]  do_syscall_64+0x5f/0xe0
...

The kernel panic is mitigated by setting limiting the count of udev
children to 1. Revert to using the acpi_lock to continue protecting
marking the area as owned by firmware without relying on a lock in
a potentially unmapped region of memory.

Fixes: f707d6b9e7 ("i2c: i801: replace acpi_lock with I2C bus lock")
Signed-off-by: Charles Haithcock <chaithco@redhat.com>
[wsa: added Fixes-tag and updated comment stating the importance of the lock]
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2026-03-12 07:09:56 -04:00
..
i2c-acorn.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
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 i2c: amd-asf: Set cmd variable when encountering an error 2025-03-18 21:53:53 +01:00
i2c-amd-mp2-pci.c i2c: amd-mp2: fix reference leak in MP2 PCI device 2026-01-02 12:57:30 +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: 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-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: at91: remove legacy DMA left overs 2020-11-03 21:34:40 +01:00
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: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-bcm-kona.c i2c: bcm-kona: Use i2c_10bit_addr_*_from_msg() helpers 2025-03-18 21:53:54 +01:00
i2c-bcm2835.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58: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: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +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: Introduce common module to instantiate CCGx UCSI 2022-02-15 10:04:53 +01:00
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: cp2615: reword according to newest specification 2024-07-11 15:13:30 +02:00
i2c-cpm.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01: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: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-designware-amdisp.c i2c: amd-isp: Initialize unique adapter name 2025-06-25 23:38:33 +02:00
i2c-designware-amdpsp.c i2c: amd: Switch to guard(mutex) 2025-03-18 21:53:53 +01:00
i2c-designware-baytrail.c i2c: designware: Add AMD PSP I2C bus support 2022-02-11 15:38:23 +01:00
i2c-designware-common.c i2c: designware: Don't warn about missing get_clk_rate_khz 2025-05-23 10:02:27 +02:00
i2c-designware-core.h i2c: designware: Disable SMBus interrupts to prevent storms from mis-configured firmware 2026-01-02 12:57:03 +01:00
i2c-designware-master.c i2c: designware: Disable SMBus interrupts to prevent storms from mis-configured firmware 2026-01-02 12:57:03 +01:00
i2c-designware-pcidrv.c i2c: designware: Fix an error handling path in i2c_dw_pci_probe() 2025-05-14 17:28:24 +02:00
i2c-designware-platdrv.c i2c: designware: Add disabling clocks when probe fails 2025-09-26 09:38:58 +02:00
i2c-designware-slave.c i2c: designware: convert to dev_err_probe() on request IRQ error 2025-09-25 23:49:08 +02: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: reword according to newest specification 2024-07-11 15:14:08 +02:00
i2c-dln2.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-eg20t.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +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: reword according to newest specification 2024-07-11 15:14:09 +02:00
i2c-gpio.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-gxp.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-highlander.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-hisi.c i2c: hisi: reword according to newest specification 2024-07-11 15:14:10 +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 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
i2c-i801.c i2c: i801: Revert "i2c: i801: replace acpi_lock with I2C bus lock" 2026-03-12 07:09:56 -04:00
i2c-ibm_iic.c i2c: ibm_iic: Use i2c_*bit_addr*_from_msg() helpers 2025-03-18 21:53:54 +01:00
i2c-ibm_iic.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
i2c-icy.c i2c: move drivers from strlcpy to strscpy 2022-08-11 23:02:51 +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: fix SMBus block read NACK after byte count 2026-03-04 07:21:25 -05:00
i2c-imx.c i2c: imx: preserve error state in block data length handler 2026-02-11 13:42:00 +01:00
i2c-iop3xx.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-iop3xx.h Merge branch 'i2c/for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2019-07-15 21:10:39 -07:00
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: drop IRQF_ONESHOT flag from IRQ request 2026-01-30 10:32:14 +01: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.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: avoid 64-bit division 2025-05-23 10:02:27 +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: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-mt65xx.c i2c: mt65xx: convert set_speed function to void 2025-10-04 18:55:44 +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: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-nct6694.c i2c: Add Nuvoton NCT6694 I2C support 2025-09-16 14:41:57 +01:00
i2c-nforce2.c i2c: Drop legacy muxing pseudo-drivers 2024-11-17 11:58:14 +01:00
i2c-nomadik.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-npcm7xx.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02: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: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +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: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02: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 parport: Remove parport_driver.devmodel 2024-07-03 16:44:22 +02: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: PASemi I2C controller IRQ enablement 2022-11-12 21:30:16 +01:00
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 Move FCH header to a location accessible by all archs 2025-06-30 13:42:11 +03: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 i2c: don't use ',' after delimiters 2024-09-10 00:33:52 +02:00
i2c-pxa.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-qcom-cci.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-qcom-geni.c i2c: qcom-geni: make sure I2C hub controllers can't use SE DMA 2026-01-23 11:21:22 +01: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: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-riic.c i2c: riic: Move suspend handling to NOIRQ phase 2026-01-23 11:21:28 +01:00
i2c-rk3x.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-robotfuzz-osif.c i2c: robotfuzz-osif: disable zero-length read messages 2025-06-25 22:45:48 +02:00
i2c-rtl9300.c i2c: rtl9300: add support for RTL9310 I2C controller 2025-10-04 11:43:41 +02:00
i2c-rzv2m.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-s3c2410.c i2c: s3c2410: Drop S3C2410 OF support 2025-09-25 02:03:20 +02:00
i2c-scmi.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-sh7760.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-sh_mobile.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02: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 i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-sis96x.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-sis630.c i2c: sis630: Fix an error handling path in sis630_probe() 2025-03-12 12:24:53 +01:00
i2c-sis5595.c i2c: sis5595: reword according to newest specification 2024-07-11 15:14:20 +02:00
i2c-sprd.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-st.c i2c: busses: Fix some spelling errors 2025-09-25 23:49:08 +02:00
i2c-stm32.c i2c: stm32: fix the device used for the DMA map 2025-07-10 11:58:33 +02:00
i2c-stm32.h i2c: stm32: Use the correct style for SPDX License Identifier 2019-08-14 14:56:54 +02:00
i2c-stm32f4.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-stm32f7.c i2c: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-sun6i-p2wi.c i2c: Switch back to struct platform_driver::remove() 2024-11-17 11:58:14 +01:00
i2c-synquacer.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
i2c-taos-evm.c i2c: taos-evm: reword according to newest specification 2024-07-11 15:14:22 +02: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: tegra: Add Tegra256 support 2025-09-13 00:33:00 +02:00
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: disable zero-length read messages 2025-06-25 22:49:57 +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 MTL-CVF devices 2025-10-14 13:54:43 +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: Avoid hang by using interruptible completion wait 2025-07-24 00:38:01 +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: Remove redundant pm_runtime_mark_last_busy() calls 2025-10-14 13:51:07 +02:00
i2c-xlp9xx.c i2c: use inclusive callbacks in struct i2c_algorithm 2025-06-12 10:05:31 +02:00
Kconfig USB/Thunderbolt changes for 6.18-rc1 2025-10-04 16:07:08 -07:00
Makefile USB/Thunderbolt changes for 6.18-rc1 2025-10-04 16:07:08 -07:00
scx200_acb.c i2c: scx200_acb: Replace dev_err() with dev_err_probe() in probe function 2025-05-19 22:23:55 +02:00