summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--SOURCES/0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch70
-rw-r--r--SPECS/kernel.spec21
2 files changed, 85 insertions, 6 deletions
diff --git a/SOURCES/0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch b/SOURCES/0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch
new file mode 100644
index 0000000..85c6114
--- /dev/null
+++ b/SOURCES/0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch
@@ -0,0 +1,70 @@
+From c342deae0807d249020e1edda9920255d76b58a1 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Wed, 14 Oct 2020 13:59:06 +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@gmail.com>
+Reported-and-tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
+Signed-off-by: Hans de Goede <hdegoede@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 2ade99b..bbf8dd4 100644
+--- a/drivers/i2c/i2c-core-acpi.c
++++ b/drivers/i2c/i2c-core-acpi.c
+@@ -264,6 +264,7 @@ 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;
+@@ -274,6 +275,15 @@ void i2c_acpi_register_devices(struct i2c_adapter *adap)
+ 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 *
+@@ -729,7 +739,6 @@ int i2c_acpi_install_space_handler(struct i2c_adapter *adapter)
+ return -ENOMEM;
+ }
+
+- acpi_walk_dep_device_list(handle);
+ return 0;
+ }
+
+--
+2.28.0
+
diff --git a/SPECS/kernel.spec b/SPECS/kernel.spec
index a6be295..bcede8b 100644
--- a/SPECS/kernel.spec
+++ b/SPECS/kernel.spec
@@ -80,7 +80,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be appended after the rcX and
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
#
-%global baserelease 202
+%global baserelease 201
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@@ -92,7 +92,7 @@ Summary: The Linux kernel
%if 0%{?released_kernel}
# Do we have a -stable update to apply?
-%define stable_update 15
+%define stable_update 16
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev %{stable_update}
@@ -881,8 +881,11 @@ Patch118: arm64-rockchip-pinebookpro-add-fuel-gauge.patch
# CVE-2020-16119 rhbz 1886374 1888083
Patch119: CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch
-# CVE-2020-12351 CVE-2020-12352 rhbz 1886521 1888439 1886529 1888440
-Patch122: bluetooth_cves.patch
+# Surface Go series not booting regression fix (rhbz 1886249)
+# Also fixes some touchscreen regressions:
+# https://bugzilla.kernel.org/show_bug.cgi?id=209627
+# Pending for inclusion into stable series
+Patch123: 0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch
# Linux-tkg patches - https://github.com/Frogging-Family/linux-tkg/blob/master/linux57-tkg
Patch200: 0007-v5.8-fsync.patch
@@ -3000,8 +3003,14 @@ fi
#
#
%changelog
-* Sat Oct 17 2020 Jan Drögehoff <sentrycraft123@gmail.com> - 5.8.15-202.fsync
-- Linux v5.8.15 fsync
+* Sat Oct 24 2020 Jan Drögehoff <sentrycraft123@gmail.com> - 5.8.16-201.fsync
+- Linux v5.8.16 fsync
+
+* Mon Oct 19 07:15:06 CDT 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.16-200
+- Linux v5.8.16
+
+* Fri Oct 16 2020 Hans de Goede <hdegoede@redhat.com>
+- Fix Micrsoft Surface Go series boot regression (rhbz 1886249)
* Thu Oct 15 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.15-201
- Fix BleedingTooth CVE-2020-12351 CVE-2020-12352 (rhbz 1886521 1888439 1886529 1888440)