diff options
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch | 4 | ||||
-rw-r--r-- | 0002-HID-apple-Properly-handle-function-keys-on-Keychron-.patch | 4 | ||||
-rw-r--r-- | 0003-soundwire-Raise-DEFAULT_PROBE_TIMEOUT-to-10000-ms.patch | 4 | ||||
-rw-r--r-- | 0004-drm-i915-psr-Use-full-update-In-case-of-area-calcula.patch | 65 | ||||
-rw-r--r-- | 0005-drm-i915-Ensure-damage-clip-area-is-within-pipe-area.patch | 121 | ||||
-rw-r--r-- | PKGBUILD | 10 |
7 files changed, 204 insertions, 18 deletions
@@ -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 + @@ -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} |