diff options
author | Thorsten Leemhuis <fedora@leemhuis.info> | 2018-11-23 09:39:55 +0100 |
---|---|---|
committer | Thorsten Leemhuis <fedora@leemhuis.info> | 2018-11-23 09:39:55 +0100 |
commit | 89f63e8765d926436ba49e743a0d70ae8a279414 (patch) | |
tree | d05a382ebe1d73f47155b89132d6b6a0d58524fc | |
parent | 6170ddccfa9a93dc053d3e1a4f8d1880e4baa799 (diff) | |
parent | 2281e330306024985e3be5a0e0e8da81f5b76a88 (diff) | |
download | kernel-89f63e8765d926436ba49e743a0d70ae8a279414.tar.gz kernel-89f63e8765d926436ba49e743a0d70ae8a279414.tar.xz kernel-89f63e8765d926436ba49e743a0d70ae8a279414.zip |
Merge remote-tracking branch 'origin/f28' into f28-user-thl-vanilla-fedora
-rw-r--r-- | 0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch | 104 | ||||
-rw-r--r-- | CI-1-6-drm-i915-dp-Fix-link-retraining-comment-in-intel_dp_long_pulse.patch | 60 | ||||
-rw-r--r-- | CI-2-6-drm-i915-dp-Restrict-link-retrain-workaround-to-external-monitors.patch | 55 | ||||
-rw-r--r-- | cdrom-fix-improper-type-cast-which-can-leat-to-information-leak.patch | 35 | ||||
-rw-r--r-- | configs/fedora/generic/x86/CONFIG_PINCTRL_GEMINILAKE | 2 | ||||
-rw-r--r-- | iio-accel-kxcjk1013-Add-more-hardware-ids.patch | 63 | ||||
-rw-r--r-- | kernel-i686-debug.config | 2 | ||||
-rw-r--r-- | kernel-i686.config | 2 | ||||
-rw-r--r-- | kernel-x86_64-debug.config | 2 | ||||
-rw-r--r-- | kernel-x86_64.config | 2 | ||||
-rw-r--r-- | kernel.spec | 21 |
11 files changed, 186 insertions, 162 deletions
diff --git a/0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch b/0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch new file mode 100644 index 000000000..822e497af --- /dev/null +++ b/0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch @@ -0,0 +1,104 @@ +From 5afcaee5ee71ba730fde8f66da7e320fb7e674d2 Mon Sep 17 00:00:00 2001 +From: Hans de Goede <hdegoede@redhat.com> +Date: Mon, 19 Nov 2018 17:38:59 +0100 +Subject: [PATCH 4.20 regression fix] ACPI / platform: Add SMB0001 HID to + forbidden_id_list + +Many HP AMD based laptops contain an SMB0001 device like this: + +Device (SMBD) +{ + Name (_HID, "SMB0001") // _HID: Hardware ID + Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + { + IO (Decode16, + 0x0B20, // Range Minimum + 0x0B20, // Range Maximum + 0x20, // Alignment + 0x20, // Length + ) + IRQ (Level, ActiveLow, Shared, ) + {7} + }) +} + +The legacy style IRQ resource here causes acpi_dev_get_irqresource() to +be called with legacy=true and this message to show in dmesg: +ACPI: IRQ 7 override to edge, high + +This causes issues when later on the AMD0030 GPIO device gets enumerated: + +Device (GPIO) +{ + Name (_HID, "AMDI0030") // _HID: Hardware ID + Name (_CID, "AMDI0030") // _CID: Compatible ID + Name (_UID, Zero) // _UID: Unique ID + Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, ) + { + 0x00000007, + } + Memory32Fixed (ReadWrite, + 0xFED81500, // Address Base + 0x00000400, // Address Length + ) + }) + Return (RBUF) /* \_SB_.GPIO._CRS.RBUF */ + } +} + +Now acpi_dev_get_irqresource() gets called with legacy=false, but because +of the earlier override of the trigger-type acpi_register_gsi() returns +-EBUSY (because we try to register the same interrupt with a different +trigger-type) and we end up setting IORESOURCE_DISABLED in the flags. + +The setting of IORESOURCE_DISABLED causes platform_get_irq() to call +acpi_irq_get() which is not implemented on x86 and returns -EINVAL. +resulting in the following in dmesg: + +amd_gpio AMDI0030:00: Failed to get gpio IRQ: -22 +amd_gpio: probe of AMDI0030:00 failed with error -22 + +The SMB0001 is a "virtual" device in the sense that the only way the OS +interacts with it is through calling a couple of methods to do SMBus +transfers. As such it is weird that it has IO and IRQ resources at all, +because the driver for it is not expected to ever access the hardware +directly. + +The Linux driver for the SMB0001 device directly binds to the acpi_device +through the acpi_bus, so we do not need to instantiate a platform_device +for this ACPI device. This commit adds the SMB0001 HID to the +forbidden_id_list, avoiding the instantiating of a platform_device for it. +Not instantiating a platform_device means we will no longer call +acpi_dev_get_irqresource() for the legacy IRQ resource fixing the probe of +the AMDI0030 device failing. + +BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1644013 +BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=198715 +BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=199523 +Reported-by: Lukas Kahnert <openproggerfreak@gmail.com> +Tested-by: Marc <suaefar@googlemail.com> +Cc: stable@vger.kernel.org +Signed-off-by: Hans de Goede <hdegoede@redhat.com> +--- + drivers/acpi/acpi_platform.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c +index eaa60c94205a..1f32caa87686 100644 +--- a/drivers/acpi/acpi_platform.c ++++ b/drivers/acpi/acpi_platform.c +@@ -30,6 +30,7 @@ static const struct acpi_device_id forbidden_id_list[] = { + {"PNP0200", 0}, /* AT DMA Controller */ + {"ACPI0009", 0}, /* IOxAPIC */ + {"ACPI000A", 0}, /* IOAPIC */ ++ {"SMB0001", 0}, /* ACPI SMBUS virtual device */ + {"", 0}, + }; + +-- +2.19.1 + diff --git a/CI-1-6-drm-i915-dp-Fix-link-retraining-comment-in-intel_dp_long_pulse.patch b/CI-1-6-drm-i915-dp-Fix-link-retraining-comment-in-intel_dp_long_pulse.patch deleted file mode 100644 index 2888fb6de..000000000 --- a/CI-1-6-drm-i915-dp-Fix-link-retraining-comment-in-intel_dp_long_pulse.patch +++ /dev/null @@ -1,60 +0,0 @@ -From patchwork Thu Sep 27 20:57:30 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit -Subject: [CI, 1/6] drm/i915/dp: Fix link retraining comment in - intel_dp_long_pulse() -From: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> -X-Patchwork-Id: 253516 -Message-Id: <20180927205735.16651-1-dhinakaran.pandiyan@intel.com> -To: intel-gfx@lists.freedesktop.org -Date: Thu, 27 Sep 2018 13:57:30 -0700 - -Comment claims link needs to be retrained because the connected sink raised -a long pulse to indicate link loss. If the sink did so, -intel_dp_hotplug() would have handled link retraining. Looking at the -logs in Bugzilla referenced in commit '3cf71bc9904d ("drm/i915: Re-apply -Perform link quality check, unconditionally during long pulse"")', the -issue is that the sink does not trigger an interrupt. What we want is -->detect() from user space to check link status and retrain. Ville's -review for the original patch also indicates the same root cause. So, -rewrite the comment. - -v2: Patch split and rewrote comment. - -Cc: Lyude Paul <lyude@redhat.com> -Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> -Cc: Jani Nikula <jani.nikula@linux.intel.com> -Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> -Cc: Jan-Marek Glogowski <glogow@fbihome.de> -References: 3cf71bc9904d ("drm/i915: Re-apply "Perform link quality check, unconditionally during long pulse"") -Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> -Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> ---- - drivers/gpu/drm/i915/intel_dp.c | 13 +++---------- - 1 file changed, 3 insertions(+), 10 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 256a71c8c093..207b3ea2ed1a 100644 ---- a/drivers/gpu/drm/i915/intel_dp.c -+++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -5074,16 +5074,9 @@ intel_dp_long_pulse(struct intel_connector *connector, - goto out; - } else { - /* -- * If display is now connected check links status, -- * there has been known issues of link loss triggering -- * long pulse. -- * -- * Some sinks (eg. ASUS PB287Q) seem to perform some -- * weird HPD ping pong during modesets. So we can apparently -- * end up with HPD going low during a modeset, and then -- * going back up soon after. And once that happens we must -- * retrain the link to get a picture. That's in case no -- * userspace component reacted to intermittent HPD dip. -+ * Some external monitors do not signal loss of link -+ * synchronization with an IRQ_HPD, so force a link status -+ * check. - */ - struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; - diff --git a/CI-2-6-drm-i915-dp-Restrict-link-retrain-workaround-to-external-monitors.patch b/CI-2-6-drm-i915-dp-Restrict-link-retrain-workaround-to-external-monitors.patch deleted file mode 100644 index bb9106d05..000000000 --- a/CI-2-6-drm-i915-dp-Restrict-link-retrain-workaround-to-external-monitors.patch +++ /dev/null @@ -1,55 +0,0 @@ -From patchwork Thu Sep 27 20:57:31 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 8bit -Subject: [CI, 2/6] drm/i915/dp: Restrict link retrain workaround to external - monitors -From: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> -X-Patchwork-Id: 253514 -Message-Id: <20180927205735.16651-2-dhinakaran.pandiyan@intel.com> -To: intel-gfx@lists.freedesktop.org -Date: Thu, 27 Sep 2018 13:57:31 -0700 - -Commit '3cf71bc9904d ("drm/i915: Re-apply "Perform link quality check, -unconditionally during long pulse"")' applies a work around for sinks -that don't signal link loss. The work around does not need to have to be -that broad as the issue was seen with only one particular monitor; limit -this only for external displays as eDP features like PSR turn off the link -and the driver ends up retraining the link seeeing that link is not -synchronized. - -Cc: Lyude Paul <lyude@redhat.com> -Cc: Jan-Marek Glogowski <glogow@fbihome.de> -Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> -Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> -References: 3cf71bc9904d ("drm/i915: Re-apply "Perform link quality check, unconditionally during long pulse"") -Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> -Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> ---- - drivers/gpu/drm/i915/intel_dp.c | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index 207b3ea2ed1a..4e0870f3a4a5 100644 ---- a/drivers/gpu/drm/i915/intel_dp.c -+++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -5072,12 +5072,13 @@ intel_dp_long_pulse(struct intel_connector *connector, - */ - status = connector_status_disconnected; - goto out; -- } else { -- /* -- * Some external monitors do not signal loss of link -- * synchronization with an IRQ_HPD, so force a link status -- * check. -- */ -+ } -+ -+ /* -+ * Some external monitors do not signal loss of link synchronization -+ * with an IRQ_HPD, so force a link status check. -+ */ -+ if (!intel_dp_is_edp(intel_dp)) { - struct intel_encoder *encoder = &dp_to_dig_port(intel_dp)->base; - - intel_dp_retrain_link(encoder, ctx); diff --git a/cdrom-fix-improper-type-cast-which-can-leat-to-information-leak.patch b/cdrom-fix-improper-type-cast-which-can-leat-to-information-leak.patch deleted file mode 100644 index ea594f4a6..000000000 --- a/cdrom-fix-improper-type-cast-which-can-leat-to-information-leak.patch +++ /dev/null @@ -1,35 +0,0 @@ -From e4f3aa2e1e67bb48dfbaaf1cad59013d5a5bc276 Mon Sep 17 00:00:00 2001 -From: Young_X <YangX92@hotmail.com> -Date: Wed, 3 Oct 2018 12:54:29 +0000 -Subject: cdrom: fix improper type cast, which can leat to information leak. - -From: Young_X <YangX92@hotmail.com> - -commit e4f3aa2e1e67bb48dfbaaf1cad59013d5a5bc276 upstream. - -There is another cast from unsigned long to int which causes -a bounds check to fail with specially crafted input. The value is -then used as an index in the slot array in cdrom_slot_status(). - -This issue is similar to CVE-2018-16658 and CVE-2018-10940. - -Signed-off-by: Young_X <YangX92@hotmail.com> -Signed-off-by: Jens Axboe <axboe@kernel.dk> -Cc: Ben Hutchings <ben.hutchings@codethink.co.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- - drivers/cdrom/cdrom.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/cdrom/cdrom.c -+++ b/drivers/cdrom/cdrom.c -@@ -2445,7 +2445,7 @@ static int cdrom_ioctl_select_disc(struc - return -ENOSYS; - - if (arg != CDSL_CURRENT && arg != CDSL_NONE) { -- if ((int)arg >= cdi->capacity) -+ if (arg >= cdi->capacity) - return -EINVAL; - } - diff --git a/configs/fedora/generic/x86/CONFIG_PINCTRL_GEMINILAKE b/configs/fedora/generic/x86/CONFIG_PINCTRL_GEMINILAKE index deb3b301d..fca1ee23a 100644 --- a/configs/fedora/generic/x86/CONFIG_PINCTRL_GEMINILAKE +++ b/configs/fedora/generic/x86/CONFIG_PINCTRL_GEMINILAKE @@ -1 +1 @@ -# CONFIG_PINCTRL_GEMINILAKE is not set +CONFIG_PINCTRL_GEMINILAKE=m diff --git a/iio-accel-kxcjk1013-Add-more-hardware-ids.patch b/iio-accel-kxcjk1013-Add-more-hardware-ids.patch new file mode 100644 index 000000000..d3e5eef2f --- /dev/null +++ b/iio-accel-kxcjk1013-Add-more-hardware-ids.patch @@ -0,0 +1,63 @@ +From e90e897b3cac4038d49b38397ab044498c1d7adc Mon Sep 17 00:00:00 2001 +From: Hans de Goede <hdegoede@redhat.com> +Date: Tue, 2 Oct 2018 20:05:34 +0200 +Subject: [PATCH 4.20 regression fix] iio: accel: kxcjk1013: Add KIOX0009 ACPI + Hardware-ID + +Add KIOX0009 ACPI HID, this is used e.g. on the Acer One 10. + +Signed-off-by: Hans de Goede <hdegoede@redhat.com> +--- + drivers/iio/accel/kxcjk-1013.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c +index af53a1084ee5..8600e4be88ad 100644 +--- a/drivers/iio/accel/kxcjk-1013.c ++++ b/drivers/iio/accel/kxcjk-1013.c +@@ -1489,6 +1489,7 @@ static const struct acpi_device_id kx_acpi_match[] = { + {"KXCJ1013", KXCJK1013}, + {"KXCJ1008", KXCJ91008}, + {"KXCJ9000", KXCJ91008}, ++ {"KIOX0009", KXTJ21009}, + {"KIOX000A", KXCJ91008}, + {"KXTJ1009", KXTJ21009}, + {"SMO8500", KXCJ91008}, +-- +2.19.1 + +From e45a7af34a700c99f91f50e021c187f05552f2f4 Mon Sep 17 00:00:00 2001 +From: Hans de Goede <hdegoede@redhat.com> +Date: Tue, 20 Nov 2018 11:39:45 +0100 +Subject: [PATCH 4.20 regression fix] iio: accel: kxcjk1013: Add KIOX010A ACPI + Hardware-ID + +Various 2-in-1's use KIOX010A and KIOX020A as HIDs for 2 KXCJ91008 +accelerometers. The KIOX010A HID is for the one in the base and the +KIOX020A for the accelerometer in the keyboard. + +Since userspace does not have a way yet to deal with (or ignore) the +accelerometer in the keyboard, this commit just adds the KIOX010A HID +for now so that display rotation will work. + +Related: https://github.com/hadess/iio-sensor-proxy/issues/166 +Signed-off-by: Hans de Goede <hdegoede@redhat.com> +--- + drivers/iio/accel/kxcjk-1013.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c +index 8600e4be88ad..210742584041 100644 +--- a/drivers/iio/accel/kxcjk-1013.c ++++ b/drivers/iio/accel/kxcjk-1013.c +@@ -1491,6 +1491,7 @@ static const struct acpi_device_id kx_acpi_match[] = { + {"KXCJ9000", KXCJ91008}, + {"KIOX0009", KXTJ21009}, + {"KIOX000A", KXCJ91008}, ++ {"KIOX010A", KXCJ91008}, /* KXCJ91008 inside the display of a 2-in-1 */ + {"KXTJ1009", KXTJ21009}, + {"SMO8500", KXCJ91008}, + { }, +-- +2.19.1 + diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config index 9086da6f0..e19d0e557 100644 --- a/kernel-i686-debug.config +++ b/kernel-i686-debug.config @@ -4292,7 +4292,7 @@ CONFIG_PINCTRL_CANNONLAKE=m CONFIG_PINCTRL_CEDARFORK=m CONFIG_PINCTRL_CHERRYVIEW=y CONFIG_PINCTRL_DENVERTON=m -# CONFIG_PINCTRL_GEMINILAKE is not set +CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_ICELAKE=m # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_LEWISBURG=m diff --git a/kernel-i686.config b/kernel-i686.config index 52cb1e4a9..9189a14b7 100644 --- a/kernel-i686.config +++ b/kernel-i686.config @@ -4269,7 +4269,7 @@ CONFIG_PINCTRL_CANNONLAKE=m CONFIG_PINCTRL_CEDARFORK=m CONFIG_PINCTRL_CHERRYVIEW=y CONFIG_PINCTRL_DENVERTON=m -# CONFIG_PINCTRL_GEMINILAKE is not set +CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_ICELAKE=m # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_LEWISBURG=m diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config index 8cac6f51f..a4a6e1457 100644 --- a/kernel-x86_64-debug.config +++ b/kernel-x86_64-debug.config @@ -4335,7 +4335,7 @@ CONFIG_PINCTRL_CANNONLAKE=m CONFIG_PINCTRL_CEDARFORK=m CONFIG_PINCTRL_CHERRYVIEW=y CONFIG_PINCTRL_DENVERTON=m -# CONFIG_PINCTRL_GEMINILAKE is not set +CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_ICELAKE=m # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_LEWISBURG=m diff --git a/kernel-x86_64.config b/kernel-x86_64.config index 61cf24554..147f27dd0 100644 --- a/kernel-x86_64.config +++ b/kernel-x86_64.config @@ -4312,7 +4312,7 @@ CONFIG_PINCTRL_CANNONLAKE=m CONFIG_PINCTRL_CEDARFORK=m CONFIG_PINCTRL_CHERRYVIEW=y CONFIG_PINCTRL_DENVERTON=m -# CONFIG_PINCTRL_GEMINILAKE is not set +CONFIG_PINCTRL_GEMINILAKE=m CONFIG_PINCTRL_ICELAKE=m # CONFIG_PINCTRL_IPQ8074 is not set CONFIG_PINCTRL_LEWISBURG=m diff --git a/kernel.spec b/kernel.spec index 88fcf91d3..37d46f8fc 100644 --- a/kernel.spec +++ b/kernel.spec @@ -635,16 +635,15 @@ Patch501: Fix-for-module-sig-verification.patch # rhbz 1431375 Patch502: input-rmi4-remove-the-need-for-artifical-IRQ.patch -# Fix known regression -Patch504: CI-1-6-drm-i915-dp-Fix-link-retraining-comment-in-intel_dp_long_pulse.patch -Patch505: CI-2-6-drm-i915-dp-Restrict-link-retrain-workaround-to-external-monitors.patch - -# CVE-2018-18710 rhbz 1645140 1648485 -Patch506: cdrom-fix-improper-type-cast-which-can-leat-to-information-leak.patch - # rhbz 1526312, patch is in 4.20, can be dropped on rebase Patch507: 0001-HID-i2c-hid-override-HID-descriptors-for-certain-dev.patch +# rhbz 1644013, patch pending upstream +Patch509: 0001-ACPI-platform-Add-SMB0001-HID-to-forbidden_id_list.patch + +# rhbz 1526312 (accelerometer part of the bug), patches pending upstream +Patch510: iio-accel-kxcjk1013-Add-more-hardware-ids.patch + # END OF PATCH DEFINITIONS %endif @@ -1899,6 +1898,14 @@ fi # # %changelog +* Wed Nov 21 2018 Jeremy Cline <jcline@redhat.com> - 4.19.3-300 +- Linux v4.19.3 + +* Tue Nov 20 2018 Hans de Goede <hdegoede@redhat.com> +- Turn on CONFIG_PINCTRL_GEMINILAKE on x86_64 (rhbz#1639155) +- Add a patch fixing touchscreens on HP AMD based laptops (rhbz#1644013) +- Add a patch fixing KIOX010A accelerometers (rhbz#1526312) + * Sat Nov 17 2018 Peter Robinson <pbrobinson@fedoraproject.org> - Fix WiFi on Raspberry Pi 3 on aarch64 (rhbz 1649344) - Fixes for Raspberry Pi hwmon driver and firmware interface |