[arch-commits] Commit in linux-lts/trunk (2 files)

Jan Steffens heftig at archlinux.org
Sat Oct 17 14:41:36 UTC 2020


    Date: Saturday, October 17, 2020 @ 14:41:35
  Author: heftig
Revision: 398503

5.4.72-1

Added:
  linux-lts/trunk/0003-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch
Modified:
  linux-lts/trunk/PKGBUILD

-----------------------------------------------------------------+
 0003-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch |   70 ++++++++++
 PKGBUILD                                                        |    6 
 2 files changed, 74 insertions(+), 2 deletions(-)

Added: 0003-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch
===================================================================
--- 0003-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch	                        (rev 0)
+++ 0003-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch	2020-10-17 14:41:35 UTC (rev 398503)
@@ -0,0 +1,70 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede at redhat.com>
+Date: Wed, 14 Oct 2020 16:41:58 +0200
+Subject: [PATCH] i2c: core: Restore acpi_walk_dep_device_list() getting called
+ after registering the ACPI i2c devs
+
+Commit 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler()
+before i2c_acpi_register_devices()")'s intention was to only move the
+acpi_install_address_space_handler() call to the point before where
+the ACPI declared i2c-children of the adapter where instantiated by
+i2c_acpi_register_devices().
+
+But i2c_acpi_install_space_handler() had a call to
+acpi_walk_dep_device_list() hidden (that is I missed it) at the end
+of it, so as an unwanted side-effect now acpi_walk_dep_device_list()
+was also being called before i2c_acpi_register_devices().
+
+Move the acpi_walk_dep_device_list() call to the end of
+i2c_acpi_register_devices(), so that it is once again called *after*
+the i2c_client-s hanging of the adapter have been created.
+
+This fixes the Microsoft Surface Go 2 hanging at boot.
+
+Fixes: 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()")
+Suggested-by: Maximilian Luz <luzmaximilian at gmail.com>
+Reported-and-tested-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
+Signed-off-by: Hans de Goede <hdegoede at redhat.com>
+---
+ drivers/i2c/i2c-core-acpi.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
+index ce70b5288472..c70983780ae7 100644
+--- a/drivers/i2c/i2c-core-acpi.c
++++ b/drivers/i2c/i2c-core-acpi.c
+@@ -264,16 +264,26 @@ static acpi_status i2c_acpi_add_device(acpi_handle handle, u32 level,
+ void i2c_acpi_register_devices(struct i2c_adapter *adap)
+ {
+ 	acpi_status status;
++	acpi_handle handle;
+ 
+ 	if (!has_acpi_companion(&adap->dev))
+ 		return;
+ 
+ 	status = acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT,
+ 				     I2C_ACPI_MAX_SCAN_DEPTH,
+ 				     i2c_acpi_add_device, NULL,
+ 				     adap, NULL);
+ 	if (ACPI_FAILURE(status))
+ 		dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
++
++	if (!adap->dev.parent)
++		return;
++
++	handle = ACPI_HANDLE(adap->dev.parent);
++	if (!handle)
++		return;
++
++	acpi_walk_dep_device_list(handle);
+ }
+ 
+ const struct acpi_device_id *
+@@ -737,7 +747,6 @@ int i2c_acpi_install_space_handler(struct i2c_adapter *adapter)
+ 		return -ENOMEM;
+ 	}
+ 
+-	acpi_walk_dep_device_list(handle);
+ 	return 0;
+ }
+ 

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2020-10-17 13:36:18 UTC (rev 398502)
+++ PKGBUILD	2020-10-17 14:41:35 UTC (rev 398503)
@@ -1,7 +1,7 @@
 # Maintainer: Andreas Radke <andyrtr at archlinux.org>
 
 pkgbase=linux-lts
-pkgver=5.4.71
+pkgver=5.4.72
 pkgrel=1
 pkgdesc='LTS Linux'
 url="https://www.kernel.org/"
@@ -18,6 +18,7 @@
   config         # the main kernel config file
   0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
   0002-virt-vbox-Add-support-for-the-new-VBG_IOCTL_ACQUIRE_.patch
+  0003-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch
   sphinx-workaround.patch
 )
 validpgpkeys=(
@@ -25,11 +26,12 @@
   '647F28654894E3BD457199BE38DBBDC86092693E'  # Greg Kroah-Hartman
 )
 # https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc
-sha256sums=('737049ef3cf38d46ee3b377354336cdbc1c4dd95b4e54975a70716f96c8d6cc7'
+sha256sums=('0e24645bd56fe5b55a7a662895f5562c103d71b54d097281f0c9c71ff22c1172'
             'SKIP'
             '6a2ee8f822810f594921aa85087e4cf0a17c68518d395586fd9c56b6c7e63dad'
             '0279e6c1a7f233110393995eccca1371edf11680fa5d6b8916dcb9ce098fb7fb'
             '4fd74bb2a7101d700fba91806141339d8c9e46a14f8fc1fe276cfb68f1eec0f5'
+            'f1e849d9e0cd07d527f60fed5aebbb76d7dd0c77a504786f4d0d09c20445f8f1'
             'b7c814c8183e4645947a6dcc3cbf80431de8a8fd4e895b780f9a5fd92f82cb8e')
 
 export KBUILD_BUILD_HOST=archlinux



More information about the arch-commits mailing list