Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'i2c-for-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux

Pull i2c fixes from Wolfram Sang:
"I2C core fix replacing IS_ENABLED() with IS_REACHABLE()

For host drivers, there are two fixes:

- Tegra I2C Controller: Addresses a potential double-locking issue
during probe. ACPI devices are not IRQ-safe when invoking runtime
suspend and resume functions, so the irq_safe flag should not be
set.

- Qualcomm GENI I2C Controller: Fixes an oversight in the exit path
of the runtime_resume() function, which was missed in the previous
release"

* tag 'i2c-for-6.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
i2c: tegra: Do not mark ACPI devices as irq safe
i2c: Use IS_REACHABLE() for substituting empty ACPI functions
i2c: qcom-geni: Add missing geni_icc_disable in geni_i2c_runtime_resume

+6 -4
+3 -1
drivers/i2c/busses/i2c-qcom-geni.c
··· 986 986 return ret; 987 987 988 988 ret = clk_prepare_enable(gi2c->core_clk); 989 - if (ret) 989 + if (ret) { 990 + geni_icc_disable(&gi2c->se); 990 991 return ret; 992 + } 991 993 992 994 ret = geni_se_resources_on(&gi2c->se); 993 995 if (ret) {
+2 -2
drivers/i2c/busses/i2c-tegra.c
··· 1802 1802 * domain. 1803 1803 * 1804 1804 * VI I2C device shouldn't be marked as IRQ-safe because VI I2C won't 1805 - * be used for atomic transfers. 1805 + * be used for atomic transfers. ACPI device is not IRQ safe also. 1806 1806 */ 1807 - if (!IS_VI(i2c_dev)) 1807 + if (!IS_VI(i2c_dev) && !has_acpi_companion(i2c_dev->dev)) 1808 1808 pm_runtime_irq_safe(i2c_dev->dev); 1809 1809 1810 1810 pm_runtime_enable(i2c_dev->dev);
+1 -1
include/linux/i2c.h
··· 1066 1066 struct acpi_resource; 1067 1067 struct acpi_resource_i2c_serialbus; 1068 1068 1069 - #if IS_ENABLED(CONFIG_ACPI) && IS_ENABLED(CONFIG_I2C) 1069 + #if IS_REACHABLE(CONFIG_ACPI) && IS_REACHABLE(CONFIG_I2C) 1070 1070 bool i2c_acpi_get_i2c_resource(struct acpi_resource *ares, 1071 1071 struct acpi_resource_i2c_serialbus **i2c); 1072 1072 int i2c_acpi_client_count(struct acpi_device *adev);