From 54679ec7f793cadaba432b2e364ea113348e77cb Mon Sep 17 00:00:00 2001 From: jc_gargma Date: Wed, 18 Dec 2019 17:30:54 -0800 Subject: Updated to 5.4.5 --- ...s2idle-Rework-ACPI-events-synchronization.patch | 78 ++++++++++++++++++++++ ...ALSA-hda-Fix-regression-by-strip-mask-fix.patch | 60 +++++++++++++++++ ...15-fbc-Disable-fbc-by-default-on-all-glk+.patch | 44 ++++++++++++ PKGBUILD | 15 ++++- config | 2 +- 5 files changed, 195 insertions(+), 4 deletions(-) create mode 100644 0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch create mode 100644 0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch create mode 100644 0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk+.patch diff --git a/0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch b/0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch new file mode 100644 index 0000000..daefbd8 --- /dev/null +++ b/0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch @@ -0,0 +1,78 @@ +From 3c3e5ada50e5a54dd267deef040365b8c1c59529 Mon Sep 17 00:00:00 2001 +From: "Rafael J. Wysocki" +Date: Thu, 28 Nov 2019 23:50:40 +0100 +Subject: ACPI: PM: s2idle: Rework ACPI events synchronization + +Note that the EC GPE processing need not be synchronized in +acpi_s2idle_wake() after invoking acpi_ec_dispatch_gpe(), because +that function checks the GPE status and dispatches its handler if +need be and the SCI action handler is not going to run anyway at +that point. + +Moreover, it is better to drain all of the pending ACPI events +before restoring the working-state configuration of GPEs in +acpi_s2idle_restore(), because those events are likely to be related +to system wakeup, in which case they will not be relevant going +forward. + +Rework the code to take these observations into account. + +Signed-off-by: Rafael J. Wysocki +--- + drivers/acpi/sleep.c | 26 +++++++++++++++++++------- + 1 file changed, 19 insertions(+), 7 deletions(-) + +diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c +index 2af937a8b1c5..6747a279621b 100644 +--- a/drivers/acpi/sleep.c ++++ b/drivers/acpi/sleep.c +@@ -977,6 +977,16 @@ static int acpi_s2idle_prepare_late(void) + return 0; + } + ++static void acpi_s2idle_sync(void) ++{ ++ /* ++ * The EC driver uses the system workqueue and an additional special ++ * one, so those need to be flushed too. ++ */ ++ acpi_ec_flush_work(); ++ acpi_os_wait_events_complete(); /* synchronize Notify handling */ ++} ++ + static void acpi_s2idle_wake(void) + { + /* +@@ -1001,13 +1011,8 @@ static void acpi_s2idle_wake(void) + * should be missed by canceling the wakeup here. + */ + pm_system_cancel_wakeup(); +- /* +- * The EC driver uses the system workqueue and an additional +- * special one, so those need to be flushed too. +- */ +- acpi_os_wait_events_complete(); /* synchronize EC GPE processing */ +- acpi_ec_flush_work(); +- acpi_os_wait_events_complete(); /* synchronize Notify handling */ ++ ++ acpi_s2idle_sync(); + + rearm_wake_irq(acpi_sci_irq); + } +@@ -1024,6 +1029,13 @@ static void acpi_s2idle_restore_early(void) + + static void acpi_s2idle_restore(void) + { ++ /* ++ * Drain pending events before restoring the working-state configuration ++ * of GPEs. ++ */ ++ acpi_os_wait_events_complete(); /* synchronize GPE processing */ ++ acpi_s2idle_sync(); ++ + s2idle_wakeup = false; + + acpi_enable_all_runtime_gpes(); +-- +cgit v1.2.1-1-g437b + diff --git a/0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch b/0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch new file mode 100644 index 0000000..07b11cc --- /dev/null +++ b/0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch @@ -0,0 +1,60 @@ +From 04fe3cc1f00622bf3ff356dca7f122768a14bdbc Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Sat, 14 Dec 2019 18:52:17 +0100 +Subject: ALSA: hda: Fix regression by strip mask fix + +The commit e38e486d66e2 ("ALSA: hda: Modify stream stripe mask only +when needed") tried to address the regression by the unconditional +application of the stripe mask, but this caused yet another +regression for the previously working devices. Namely, the patch +clears the azx_dev->stripe flag at snd_hdac_stream_clear(), but this +may be called multiple times before restarting the stream, so this +ended up with clearance of the flag for the whole time. + +This patch fixes the regression by moving the azx_dev->stripe flag +clearance at the counter-part, the close callback of HDMI codec +driver instead. + +Fixes: e38e486d66e2 ("ALSA: hda: Modify stream stripe mask only when needed") +BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=205855 +BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204477 +Cc: +Link: https://lore.kernel.org/r/20191214175217.31852-1-tiwai@suse.de +Signed-off-by: Takashi Iwai +--- + sound/hda/hdac_stream.c | 4 +--- + sound/pci/hda/patch_hdmi.c | 2 ++ + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c +index f9707fb05efe..682ed39f79b0 100644 +--- a/sound/hda/hdac_stream.c ++++ b/sound/hda/hdac_stream.c +@@ -120,10 +120,8 @@ void snd_hdac_stream_clear(struct hdac_stream *azx_dev) + snd_hdac_stream_updateb(azx_dev, SD_CTL, + SD_CTL_DMA_START | SD_INT_MASK, 0); + snd_hdac_stream_writeb(azx_dev, SD_STS, SD_INT_MASK); /* to be sure */ +- if (azx_dev->stripe) { ++ if (azx_dev->stripe) + snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK, 0); +- azx_dev->stripe = 0; +- } + azx_dev->running = false; + } + EXPORT_SYMBOL_GPL(snd_hdac_stream_clear); +diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c +index 4dafc864d765..488c17c9f375 100644 +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -1983,6 +1983,8 @@ static int hdmi_pcm_close(struct hda_pcm_stream *hinfo, + per_cvt->assigned = 0; + hinfo->nid = 0; + ++ azx_stream(get_azx_dev(substream))->stripe = 0; ++ + mutex_lock(&spec->pcm_lock); + snd_hda_spdif_ctls_unassign(codec, pcm_idx); + clear_bit(pcm_idx, &spec->pcm_in_use); +-- +cgit v1.2.1-1-g437b + diff --git a/0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk+.patch b/0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk+.patch new file mode 100644 index 0000000..d88f33e --- /dev/null +++ b/0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk+.patch @@ -0,0 +1,44 @@ +From 1960609cc201fd1c99c17cade6956de06b3d3856 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= +Date: Wed, 27 Nov 2019 22:12:09 +0200 +Subject: drm/i915/fbc: Disable fbc by default on all glk+ +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We're missing a workaround in the fbc code for all glk+ platforms +which can cause corruption around the top of the screen. So +enabling fbc by default is a bad idea. I'm not keen to backport +the w/a so let's start by disabling fbc by default on all glk+. +We'll lift the restriction once the w/a is in place. + +Cc: stable@vger.kernel.org +Cc: Daniel Drake +Cc: Paulo Zanoni +Cc: Jian-Hong Pan +Cc: Maarten Lankhorst +Signed-off-by: Ville Syrjälä +Link: https://patchwork.freedesktop.org/patch/msgid/20191127201222.16669-2-ville.syrjala@linux.intel.com +Reviewed-by: Maarten Lankhorst +(cherry picked from commit cd8c021b36a66833cefe2c90a79a9e312a2a5690) +Signed-off-by: Joonas Lahtinen +--- + drivers/gpu/drm/i915/display/intel_fbc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c +index 16ed44bfd734..07a038f21619 100644 +--- a/drivers/gpu/drm/i915/display/intel_fbc.c ++++ b/drivers/gpu/drm/i915/display/intel_fbc.c +@@ -1284,7 +1284,7 @@ static int intel_sanitize_fbc_option(struct drm_i915_private *dev_priv) + return 0; + + /* https://bugs.freedesktop.org/show_bug.cgi?id=108085 */ +- if (IS_GEMINILAKE(dev_priv)) ++ if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) + return 0; + + if (IS_BROADWELL(dev_priv) || INTEL_GEN(dev_priv) >= 9) +-- +cgit v1.2.1-1-g437b + diff --git a/PKGBUILD b/PKGBUILD index 8e4340e..801b052 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -17,7 +17,7 @@ pkgbase=linux-ck _supver=5 _majver=4 -_minver=2 +_minver=5 _gccpatchver='20190822' _ckpatchversion=ck1 if [ "$_minver" == "0" ]; then @@ -44,6 +44,9 @@ source=( 0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch 0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch 0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch + 0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch + 0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch + 0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk+.patch linux-ck-patch-${_supver}.${_majver}-${_ckpatchversion}.xz::http://ck.kolivas.org/patches/${_supver}.0/${_supver}.${_majver}/${_supver}.${_majver}-${_ckpatchversion}/patch-${_supver}.${_majver}-${_ckpatchversion}.xz graysky_bdver2-hotfix.patch kernel_gcc_patch-${_gccpatchver}.tar.gz::https://github.com/graysky2/kernel_gcc_patch/archive/${_gccpatchver}.tar.gz @@ -56,19 +59,22 @@ validpgpkeys=( '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) # https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc -sha256sums=('32f98256877ca6b016715ffffcf184f1603df9e17a324787f252cd602e03a557' +sha256sums=('3fa2aad785f8031246b25362d7542dac46aaaa91546fb41b6419fb759e43e6c2' 'SKIP' 'e862ecd2cb0b20e1859ec3e47616457a9a3acb111cd5a86094f9ed1dbd7f42ac' '6fd45ccc07747f177b83550d397c16f8c32fa49985eab790be9792bcb0adf8fd' 'd7257a252b7912cd9a5e96fb9eedadd6fa0744f5ea2ac52c135de7c28dac9c98' '5c783631f63bb87f8f8a7b98d4fc5eb2a650a4c101e877f0b58815f2538ec481' '657fd313fb16cb6a6ce6cff4bc6ad96069b500514e6998442aed95573ab4083a' + '25d72c2c88088d78afa1658fc16c8d4ad98f4140ec69fa0ade49abfe27e8f722' + '4e8a9a6757d7ebea8352b8f7b26f007d6c370ea83f67b83f1f49fa54cc52b4c9' + '739eb4dfefbc01d57419be4dcb6331b219c52185df36907fd82cfdcb036d927f' 'f445eea4d0ec2015a25f1ad625c848f4f2252099795966fa4105e0aa29674c5c' 'c5405139aa0a90a6f68f6a13e066a2bd0600c970f9f525cd3aa114b044a7f73b' '8c11086809864b5cef7d079f930bd40da8d0869c091965fa62e95de9a0fe13b5' 'e7ebf050c22bcec0028c0b3c79fd6d3913b0370ecc6a23dfe78ce475630cf503' '0f81d6e4158b7beeb0eb514f1b9401f7e23699cb0f7b0d513e25dae1815daaeb' - 'b865644d79936c856d68567a22d7309a864bd55d545a77c6ab130a162775b0ea') + '8f5bcac15a23686d02d3c9324b03a51a8ac3caebd1e731ab6df3f007aea3b4f1') #export KBUILD_BUILD_HOST=arc4linux export KBUILD_BUILD_USER=$pkgbase @@ -91,6 +97,9 @@ prepare() { patch -p1 -i ../0003-mfd-intel-lpss-Use-devm_ioremap_uc-for-MMIO.patch patch -p1 -i ../0004-PCI-pciehp-Do-not-disable-interrupt-twice-on-suspend.patch patch -p1 -i ../0005-PCI-pciehp-Prevent-deadlock-on-disconnect.patch + patch -p1 -i ../0006-ACPI-PM-s2idle-Rework-ACPI-events-synchronization.patch + patch -p1 -i ../0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch + patch -p1 -i ../0008-drm-i915-fbc-Disable-fbc-by-default-on-all-glk+.patch # fix naming schema in EXTRAVERSION of ck patch set diff --git a/config b/config index d2b263d..4cac3b3 100644 --- a/config +++ b/config @@ -6745,7 +6745,7 @@ CONFIG_SND_YMFPCI=m # CONFIG_SND_HDA=m CONFIG_SND_HDA_INTEL=m -CONFIG_SND_HDA_INTEL_DETECT_DMIC=y +# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y -- cgit v1.2.1