--- /dev/null
+From 71833e79a42178d8a50b5081c98c78ace9325628 Mon Sep 17 00:00:00 2001
+From: Richard Fitzgerald <rf@opensource.cirrus.com>
+Date: Wed, 14 Aug 2024 13:16:49 +0100
+Subject: i2c: Use IS_REACHABLE() for substituting empty ACPI functions
+
+From: Richard Fitzgerald <rf@opensource.cirrus.com>
+
+commit 71833e79a42178d8a50b5081c98c78ace9325628 upstream.
+
+Replace IS_ENABLED() with IS_REACHABLE() to substitute empty stubs for:
+ i2c_acpi_get_i2c_resource()
+ i2c_acpi_client_count()
+ i2c_acpi_find_bus_speed()
+ i2c_acpi_new_device_by_fwnode()
+ i2c_adapter *i2c_acpi_find_adapter_by_handle()
+ i2c_acpi_waive_d0_probe()
+
+commit f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI
+functions") partially fixed this conditional to depend on CONFIG_I2C,
+but used IS_ENABLED(), which is wrong since CONFIG_I2C is tristate.
+
+CONFIG_ACPI is boolean but let's also change it to use IS_REACHABLE()
+to future-proof it against becoming tristate.
+
+Somehow despite testing various combinations of CONFIG_I2C and CONFIG_ACPI
+we missed the combination CONFIG_I2C=m, CONFIG_ACPI=y.
+
+Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
+Fixes: f17c06c6608a ("i2c: Fix conditional for substituting empty ACPI functions")
+Reported-by: kernel test robot <lkp@intel.com>
+Closes: https://lore.kernel.org/oe-kbuild-all/202408141333.gYnaitcV-lkp@intel.com/
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/linux/i2c.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/linux/i2c.h
++++ b/include/linux/i2c.h
+@@ -991,7 +991,7 @@ static inline int of_i2c_get_board_info(
+ struct acpi_resource;
+ struct acpi_resource_i2c_serialbus;
+
+-#if IS_ENABLED(CONFIG_ACPI) && IS_ENABLED(CONFIG_I2C)
++#if IS_REACHABLE(CONFIG_ACPI) && IS_REACHABLE(CONFIG_I2C)
+ bool i2c_acpi_get_i2c_resource(struct acpi_resource *ares,
+ struct acpi_resource_i2c_serialbus **i2c);
+ u32 i2c_acpi_find_bus_speed(struct device *dev);