summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO14
-rw-r--r--0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch4
-rw-r--r--0002-HID-apple-Properly-handle-function-keys-on-Keychron-.patch4
-rw-r--r--0003-soundwire-Raise-DEFAULT_PROBE_TIMEOUT-to-10000-ms.patch4
-rw-r--r--0004-drm-i915-psr-Use-full-update-In-case-of-area-calcula.patch65
-rw-r--r--0005-drm-i915-Ensure-damage-clip-area-is-within-pipe-area.patch121
-rw-r--r--PKGBUILD10
7 files changed, 204 insertions, 18 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 0a667faddbda..e5c29b8b9ca8 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,5 +1,5 @@
pkgbase = linux-ck
- pkgver = 5.18.14
+ pkgver = 5.18.15
pkgrel = 1
url = https://wiki.archlinux.org/index.php/Linux-ck
arch = x86_64
@@ -11,8 +11,8 @@ pkgbase = linux-ck
makedepends = tar
makedepends = xz
options = !strip
- source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.18.14.tar.xz
- source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.18.14.tar.sign
+ source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.18.15.tar.xz
+ source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.18.15.tar.sign
source = config
source = more-uarches-20220315.tar.gz::https://github.com/graysky2/kernel_compiler_patch/archive/20220315.tar.gz
source = ck-hrtimer-5d3a0424bdbfdf2fc4cca389bf0f1ee4876e782d.tar.gz::https://github.com/graysky2/linux-patches/archive/5d3a0424bdbfdf2fc4cca389bf0f1ee4876e782d.tar.gz
@@ -21,14 +21,14 @@ pkgbase = linux-ck
source = 0003-soundwire-Raise-DEFAULT_PROBE_TIMEOUT-to-10000-ms.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
- sha256sums = e17d46451133d3a3099b09e200839e875100b48403171923ab71b6a9b39856af
+ sha256sums = 69804febdc388a69dfb64493b7b58d402853de3a14144ea8db7fd67c30dcbe3c
sha256sums = SKIP
sha256sums = 6f0fd44dd87dd0ad23f782a26752bb7200d0d163e3a50df6ad3cf5cec7fe948e
sha256sums = 5a29d172d442a3f31a402d7d306aaa292b0b5ea29139d05080a55e2425f48c5c
sha256sums = 0506bdad4255ccc8165e39b2567450a3b12de2759ed7b42c0c90de1c57b1a283
- sha256sums = 0799f30e1d6e2d4c8b4f62bcc391c09eabdea988e479ea3861d32289bc9e205e
- sha256sums = ccb4f283d47a6c5e0109fbf27e7cde266a09d19c151a52f67f8e85e1d50cd0c1
- sha256sums = 6e5499f68f6d3cc23ba259790cb37c0e860ece6faa30f9e8814ea329d7c58368
+ sha256sums = 2d3fd3973c12b8ce3259d57329c6a97b83b605280248394029e8fe40b1df2eed
+ sha256sums = d66cdd20e73baa8a0e7c11a0a0d723f688b7ba14c5929626d9fcdc3342b11398
+ sha256sums = 43ef109032171e22604d582935c2988b5ed0b00390c7c45979ae58d281782396
pkgname = linux-ck
pkgdesc = The Linux kernel and modules with ck's hrtimer patches
diff --git a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
index 62a6a21ca27c..1abcc46778ae 100644
--- a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
+++ b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
@@ -1,7 +1,7 @@
-From 63cec1d1efdb31caeef17411c7560e8b0f941073 Mon Sep 17 00:00:00 2001
+From 9655d73f39ad3d0d7de3448d8f46e03dc0aac1b8 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
Date: Mon, 16 Sep 2019 04:53:20 +0200
-Subject: [PATCH 1/4] ZEN: Add sysctl and CONFIG to disallow unprivileged
+Subject: [PATCH 1/6] ZEN: Add sysctl and CONFIG to disallow unprivileged
CLONE_NEWUSER
Our default behavior continues to match the vanilla kernel.
diff --git a/0002-HID-apple-Properly-handle-function-keys-on-Keychron-.patch b/0002-HID-apple-Properly-handle-function-keys-on-Keychron-.patch
index 0d6ed6e22205..cf1aac6c5a51 100644
--- a/0002-HID-apple-Properly-handle-function-keys-on-Keychron-.patch
+++ b/0002-HID-apple-Properly-handle-function-keys-on-Keychron-.patch
@@ -1,7 +1,7 @@
-From 4b81eecd4c636d953aaf4ebafd8171716f4c61fe Mon Sep 17 00:00:00 2001
+From 9b9cf90b52a77f6383905b0e168783253a373e5a Mon Sep 17 00:00:00 2001
From: Bryan Cain <bryancain3@gmail.com>
Date: Thu, 5 May 2022 13:12:21 -0600
-Subject: [PATCH 2/4] HID: apple: Properly handle function keys on Keychron
+Subject: [PATCH 2/6] HID: apple: Properly handle function keys on Keychron
keyboards
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
diff --git a/0003-soundwire-Raise-DEFAULT_PROBE_TIMEOUT-to-10000-ms.patch b/0003-soundwire-Raise-DEFAULT_PROBE_TIMEOUT-to-10000-ms.patch
index f2a14582ac2b..7c2b8c57f7f1 100644
--- a/0003-soundwire-Raise-DEFAULT_PROBE_TIMEOUT-to-10000-ms.patch
+++ b/0003-soundwire-Raise-DEFAULT_PROBE_TIMEOUT-to-10000-ms.patch
@@ -1,7 +1,7 @@
-From 2da21cf28e573b84e5a5baecc1eda7372322375d Mon Sep 17 00:00:00 2001
+From a0a284a686aa758ede28630ce0b97b2e8cd45634 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
Date: Sat, 23 Jul 2022 11:14:46 +0200
-Subject: [PATCH 3/4] soundwire: Raise DEFAULT_PROBE_TIMEOUT to 10000 ms
+Subject: [PATCH 3/6] soundwire: Raise DEFAULT_PROBE_TIMEOUT to 10000 ms
See: https://github.com/thesofproject/linux/issues/3777#issuecomment-1192655300
---
diff --git a/0004-drm-i915-psr-Use-full-update-In-case-of-area-calcula.patch b/0004-drm-i915-psr-Use-full-update-In-case-of-area-calcula.patch
new file mode 100644
index 000000000000..4438360d9966
--- /dev/null
+++ b/0004-drm-i915-psr-Use-full-update-In-case-of-area-calcula.patch
@@ -0,0 +1,65 @@
+From 069920514fa8ff3c89c526d8876cabbdff6fbc1f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jouni=20H=C3=B6gander?= <jouni.hogander@intel.com>
+Date: Fri, 13 May 2022 17:28:10 +0300
+Subject: [PATCH 4/6] drm/i915/psr: Use full update In case of area calculation
+ fails
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Currently we have some corner cases where area calculation fails. For
+these sel fetch area calculation ends up having update area as y1 = 0,
+y2 = 4. Instead of these values safer option is full update.
+
+One of such for example is big fb with offset. We don't have usable
+offset in psr2_sel_fetch_update. Currently it's open what is the
+proper way to fix this corner case. Use full update for now.
+
+v2: Commit message modified
+v3: Print out debug info once when area calculation fails
+v4: Use drm_info_once
+v5: pipeA -> "pipe %c", pipe_name(crtc-pipe)
+
+Cc: José Roberto de Souza <jose.souza@intel.com>
+Cc: Mika Kahola <mika.kahola@intel.com>
+Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
+Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
+---
+ drivers/gpu/drm/i915/display/intel_psr.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
+index 6c9e6e7f0afd..43dc4a9bc702 100644
+--- a/drivers/gpu/drm/i915/display/intel_psr.c
++++ b/drivers/gpu/drm/i915/display/intel_psr.c
+@@ -1655,6 +1655,7 @@ static bool psr2_sel_fetch_pipe_state_supported(const struct intel_crtc_state *c
+ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+ struct intel_crtc *crtc)
+ {
++ struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+ struct intel_crtc_state *crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
+ struct drm_rect pipe_clip = { .x1 = 0, .y1 = -1, .x2 = INT_MAX, .y2 = -1 };
+ struct intel_plane_state *new_plane_state, *old_plane_state;
+@@ -1740,6 +1741,19 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+ clip_area_update(&pipe_clip, &damaged_area);
+ }
+
++ /*
++ * TODO: For now we are just using full update in case
++ * selective fetch area calculation fails. To optimize this we
++ * should identify cases where this happens and fix the area
++ * calculation for those.
++ */
++ if (pipe_clip.y1 == -1) {
++ drm_info_once(&dev_priv->drm,
++ "Selective fetch area calculation failed in pipe %c\n",
++ pipe_name(crtc->pipe));
++ full_update = true;
++ }
++
+ if (full_update)
+ goto skip_sel_fetch_set_loop;
+
+--
+2.37.1
+
diff --git a/0005-drm-i915-Ensure-damage-clip-area-is-within-pipe-area.patch b/0005-drm-i915-Ensure-damage-clip-area-is-within-pipe-area.patch
new file mode 100644
index 000000000000..16ed6035bcdf
--- /dev/null
+++ b/0005-drm-i915-Ensure-damage-clip-area-is-within-pipe-area.patch
@@ -0,0 +1,121 @@
+From b7c36a998b8027386b5ea43ecff46057c83655cb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jouni=20H=C3=B6gander?= <jouni.hogander@intel.com>
+Date: Fri, 13 May 2022 17:28:11 +0300
+Subject: [PATCH 5/6] drm/i915: Ensure damage clip area is within pipe area
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Current update area calculation is not handling situation where
+e.g. cursor plane is fully or partially outside pipe area.
+
+Fix this by checking damage area against pipe_src area using
+drm_rect_intersect.
+
+v2: Set x1 and x2 in damaged_area initialization
+v3: Move drm_rect_intersect into clip_area_update
+v4: draw_area -> pipe_src
+
+Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5440
+Cc: José Roberto de Souza <jose.souza@intel.com>
+Cc: Mika Kahola <mika.kahola@intel.com>
+
+Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
+Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
+
+Backported to 5.18.
+---
+ drivers/gpu/drm/i915/display/intel_psr.c | 23 ++++++++++++++++-------
+ 1 file changed, 16 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
+index 43dc4a9bc702..cdc968d5c630 100644
+--- a/drivers/gpu/drm/i915/display/intel_psr.c
++++ b/drivers/gpu/drm/i915/display/intel_psr.c
+@@ -1588,8 +1588,12 @@ static void psr2_man_trk_ctl_calc(struct intel_crtc_state *crtc_state,
+ }
+
+ static void clip_area_update(struct drm_rect *overlap_damage_area,
+- struct drm_rect *damage_area)
++ struct drm_rect *damage_area,
++ struct drm_rect *pipe_src)
+ {
++ if (!drm_rect_intersect(damage_area, pipe_src))
++ return;
++
+ if (overlap_damage_area->y1 == -1) {
+ overlap_damage_area->y1 = damage_area->y1;
+ overlap_damage_area->y2 = damage_area->y2;
+@@ -1658,6 +1662,7 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+ struct drm_i915_private *dev_priv = to_i915(state->base.dev);
+ struct intel_crtc_state *crtc_state = intel_atomic_get_new_crtc_state(state, crtc);
+ struct drm_rect pipe_clip = { .x1 = 0, .y1 = -1, .x2 = INT_MAX, .y2 = -1 };
++ struct drm_rect pipe_src = { .x1 = 0, .y1 = 0 };
+ struct intel_plane_state *new_plane_state, *old_plane_state;
+ struct intel_plane *plane;
+ bool full_update = false;
+@@ -1671,6 +1676,9 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+ goto skip_sel_fetch_set_loop;
+ }
+
++ pipe_src.x2 = crtc_state->pipe_src_w;
++ pipe_src.y2 = crtc_state->pipe_src_h;
++
+ /*
+ * Calculate minimal selective fetch area of each plane and calculate
+ * the pipe damaged area.
+@@ -1679,7 +1687,8 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+ */
+ for_each_oldnew_intel_plane_in_state(state, plane, old_plane_state,
+ new_plane_state, i) {
+- struct drm_rect src, damaged_area = { .y1 = -1 };
++ struct drm_rect src, damaged_area = { .x1 = 0, .y1 = -1,
++ .x2 = INT_MAX };
+ struct drm_atomic_helper_damage_iter iter;
+ struct drm_rect clip;
+
+@@ -1706,20 +1715,20 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+ if (old_plane_state->uapi.visible) {
+ damaged_area.y1 = old_plane_state->uapi.dst.y1;
+ damaged_area.y2 = old_plane_state->uapi.dst.y2;
+- clip_area_update(&pipe_clip, &damaged_area);
++ clip_area_update(&pipe_clip, &damaged_area, &pipe_src);
+ }
+
+ if (new_plane_state->uapi.visible) {
+ damaged_area.y1 = new_plane_state->uapi.dst.y1;
+ damaged_area.y2 = new_plane_state->uapi.dst.y2;
+- clip_area_update(&pipe_clip, &damaged_area);
++ clip_area_update(&pipe_clip, &damaged_area, &pipe_src);
+ }
+ continue;
+ } else if (new_plane_state->uapi.alpha != old_plane_state->uapi.alpha) {
+ /* If alpha changed mark the whole plane area as damaged */
+ damaged_area.y1 = new_plane_state->uapi.dst.y1;
+ damaged_area.y2 = new_plane_state->uapi.dst.y2;
+- clip_area_update(&pipe_clip, &damaged_area);
++ clip_area_update(&pipe_clip, &damaged_area, &pipe_src);
+ continue;
+ }
+
+@@ -1730,7 +1739,7 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+ &new_plane_state->uapi);
+ drm_atomic_for_each_plane_damage(&iter, &clip) {
+ if (drm_rect_intersect(&clip, &src))
+- clip_area_update(&damaged_area, &clip);
++ clip_area_update(&damaged_area, &clip, &pipe_src);
+ }
+
+ if (damaged_area.y1 == -1)
+@@ -1738,7 +1747,7 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state,
+
+ damaged_area.y1 += new_plane_state->uapi.dst.y1 - src.y1;
+ damaged_area.y2 += new_plane_state->uapi.dst.y1 - src.y1;
+- clip_area_update(&pipe_clip, &damaged_area);
++ clip_area_update(&pipe_clip, &damaged_area, &pipe_src);
+ }
+
+ /*
+--
+2.37.1
+
diff --git a/PKGBUILD b/PKGBUILD
index fbb4786c2071..e0026e064f5a 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -68,7 +68,7 @@ _subarch=
### IMPORTANT: Do no edit below this line unless you know what you're doing
pkgbase=linux-ck
-pkgver=5.18.14
+pkgver=5.18.15
pkgrel=1
arch=(x86_64)
url="https://wiki.archlinux.org/index.php/Linux-ck"
@@ -98,14 +98,14 @@ validpgpkeys=(
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
)
-sha256sums=('e17d46451133d3a3099b09e200839e875100b48403171923ab71b6a9b39856af'
+sha256sums=('69804febdc388a69dfb64493b7b58d402853de3a14144ea8db7fd67c30dcbe3c'
'SKIP'
'6f0fd44dd87dd0ad23f782a26752bb7200d0d163e3a50df6ad3cf5cec7fe948e'
'5a29d172d442a3f31a402d7d306aaa292b0b5ea29139d05080a55e2425f48c5c'
'0506bdad4255ccc8165e39b2567450a3b12de2759ed7b42c0c90de1c57b1a283'
- '0799f30e1d6e2d4c8b4f62bcc391c09eabdea988e479ea3861d32289bc9e205e'
- 'ccb4f283d47a6c5e0109fbf27e7cde266a09d19c151a52f67f8e85e1d50cd0c1'
- '6e5499f68f6d3cc23ba259790cb37c0e860ece6faa30f9e8814ea329d7c58368')
+ '2d3fd3973c12b8ce3259d57329c6a97b83b605280248394029e8fe40b1df2eed'
+ 'd66cdd20e73baa8a0e7c11a0a0d723f688b7ba14c5929626d9fcdc3342b11398'
+ '43ef109032171e22604d582935c2988b5ed0b00390c7c45979ae58d281782396')
prepare() {
cd linux-${pkgver}