summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2020-09-09 12:32:33 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-10-01 13:14:50 +0200
commit8216a3852ae50f52e482c15b3a8fcfc4cb312f1e (patch)
tree818acdfeaa68063fc74470d6828957d4ea9d2f57
parentce81be26d33f32b5e6edf02abade4259165223c9 (diff)
downloadlinux-stable-8216a3852ae50f52e482c15b3a8fcfc4cb312f1e.tar.gz
linux-stable-8216a3852ae50f52e482c15b3a8fcfc4cb312f1e.tar.bz2
linux-stable-8216a3852ae50f52e482c15b3a8fcfc4cb312f1e.zip
i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()
[ Upstream commit 21653a4181ff292480599dad996a2b759ccf050f ] Some ACPI i2c-devices _STA method (which is used to detect if the device is present) use autodetection code which probes which device is present over i2c. This requires the I2C ACPI OpRegion handler to be registered before we enumerate i2c-clients under the i2c-adapter. This fixes the i2c touchpad on the Lenovo ThinkBook 14-IIL and ThinkBook 15 IIL not getting an i2c-client instantiated and thus not working. BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1842039 Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Wolfram Sang <wsa@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/i2c/i2c-core-base.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index f225bef1e043..41dd0a08a625 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -1292,8 +1292,8 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
/* create pre-declared device nodes */
of_i2c_register_devices(adap);
- i2c_acpi_register_devices(adap);
i2c_acpi_install_space_handler(adap);
+ i2c_acpi_register_devices(adap);
if (adap->nr < __i2c_first_dynamic_bus_num)
i2c_scan_static_board_info(adap);