1
0
mirror of https://aur.archlinux.org/linux-vfio.git synced 2024-12-25 15:54:09 +00:00

Update to 5.19.12.arch1-1

This commit is contained in:
Mark King 2022-09-29 14:45:39 -04:00
parent c895812ae9
commit c863fd2acb
4 changed files with 858 additions and 585 deletions

View File

@ -1,12 +1,11 @@
pkgbase = linux-vfio
pkgdesc = Linux
pkgver = 5.17.4.arch1
pkgver = 5.19.12.arch1
pkgrel = 1
url = https://github.com/archlinux/linux/commits/v5.17.4-arch1
url = https://github.com/archlinux/linux/commits/v5.19.12-arch1
arch = x86_64
license = GPL2
makedepends = bc
makedepends = kmod
makedepends = libelf
makedepends = pahole
makedepends = cpio
@ -18,9 +17,10 @@ pkgbase = linux-vfio
makedepends = python-sphinx_rtd_theme
makedepends = graphviz
makedepends = imagemagick
makedepends = texlive-latexextra
makedepends = git
options = !strip
source = archlinux-linux::git+https://github.com/archlinux/linux?signed#tag=v5.17.4-arch1
source = archlinux-linux::git+https://github.com/archlinux/linux?signed#tag=v5.19.12-arch1
source = config
source = add-acs-overrides.patch
source = i915-vga-arbiter.patch
@ -29,16 +29,16 @@ pkgbase = linux-vfio
validpgpkeys = A2FF3A36AAA56654109064AB19802F8B0D70FC30
validpgpkeys = C7E7849466FE2358343588377258734B41C31549
sha256sums = SKIP
sha256sums = 3f02a0f2fe820f678d15fb0efce04e3716bdc7590d452317bf1b0b63f3b31cd2
sha256sums = 1e07bdd94abe73ac2074b151729cd9b73c7fa7a615a3a331a89dcb0da42649f8
sha256sums = b90be7b79652be61f7d50691000f6a8c75a240dc2eee2667b68d984f67583f77
sha256sums = d502ffaea89becded796ba79b7ff5aded8e5f86a479161c89214848871e49ed1
sha256sums = 5092c62db5ca8f6b806996ba3db0f610d9ad73d499384394e16823dda097f9cd
pkgname = linux-vfio
pkgdesc = The Linux kernel and modules
depends = coreutils
depends = kmod
depends = initramfs
optdepends = crda: to set the correct wireless channels of your country
optdepends = wireless-regdb: to set the correct wireless channels of your country
optdepends = linux-firmware: firmware images needed for some devices
provides = VIRTUALBOX-GUEST-MODULES
provides = WIREGUARD-MODULE

View File

@ -4,7 +4,7 @@
# Upstream: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
pkgbase=linux-vfio
pkgver=5.17.4.arch1
pkgver=5.19.12.arch1
pkgrel=1
pkgdesc='Linux'
_srctag=v${pkgver%.*}-${pkgver##*.}
@ -12,8 +12,8 @@ url="https://github.com/archlinux/linux/commits/$_srctag"
arch=(x86_64)
license=(GPL2)
makedepends=(
bc kmod libelf pahole cpio perl tar xz
xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick
bc libelf pahole cpio perl tar xz
xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick texlive-latexextra
git
)
options=('!strip')
@ -28,12 +28,12 @@ validpgpkeys=(
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
'A2FF3A36AAA56654109064AB19802F8B0D70FC30' # Jan Alexander Steffens (heftig)
'C7E7849466FE2358343588377258734B41C31549' # David Runge <dvzrv@archlinux.org>
'C7E7849466FE2358343588377258734B41C31549' # David Runge <dvzrv@archlinux.org>
)
sha256sums=('SKIP'
'3f02a0f2fe820f678d15fb0efce04e3716bdc7590d452317bf1b0b63f3b31cd2'
'1e07bdd94abe73ac2074b151729cd9b73c7fa7a615a3a331a89dcb0da42649f8'
'b90be7b79652be61f7d50691000f6a8c75a240dc2eee2667b68d984f67583f77'
'd502ffaea89becded796ba79b7ff5aded8e5f86a479161c89214848871e49ed1')
'5092c62db5ca8f6b806996ba3db0f610d9ad73d499384394e16823dda097f9cd')
export KBUILD_BUILD_HOST=archlinux
export KBUILD_BUILD_USER=$pkgbase
@ -67,14 +67,13 @@ prepare() {
build() {
cd $_srcname
make all
make htmldocs
make htmldocs all
}
_package() {
pkgdesc="The $pkgdesc kernel and modules"
depends=(coreutils kmod initramfs)
optdepends=('crda: to set the correct wireless channels of your country'
optdepends=('wireless-regdb: to set the correct wireless channels of your country'
'linux-firmware: firmware images needed for some devices')
provides=(VIRTUALBOX-GUEST-MODULES WIREGUARD-MODULE)
replaces=(virtualbox-guest-modules-arch wireguard-arch)
@ -92,7 +91,8 @@ _package() {
echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase"
echo "Installing modules..."
make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 modules_install
make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 \
DEPMOD=/doesnt/exist modules_install # Suppress depmod
# remove build and source links
rm "$modulesdir"/{source,build}

1283
config

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,9 @@
From a59b6ecac96eab5e80fa5ee918ddbc8e2fad3a7a Mon Sep 17 00:00:00 2001
From: Mark Weiman <mark.weiman@markzz.com>
Date: Wed, 27 Jan 2021 13:28:46 -0500
From 07af9476bf0b340df883f558a5c5c1ecad05b406 Mon Sep 17 00:00:00 2001
From: Mark King <mweiman@merit.edu>
Date: Thu, 29 Sep 2022 10:30:20 -0400
Subject: [PATCH] i915: Add module option to support VGA arbiter on HD devices
(5.14)
(5.19)
Updated version of Mark Weiman's i915 patch for 5.14.
Original patch messages follow.
---
This is an updated version of Alex Williamson's patch from:
https://lkml.org/lkml/2014/5/9/517
@ -40,74 +36,74 @@ This also rolls in reverted commit 6e1b4fda, which corrected an
ordering issue with 81b5c7bc by delaying the disabling of VGA memory
until after vgacon->fbcon handoff.
---
drivers/gpu/drm/i915/display/intel_display.c | 15 +++++++--
drivers/gpu/drm/i915/display/intel_display.c | 15 ++++++++--
drivers/gpu/drm/i915/display/intel_display.h | 1 +
drivers/gpu/drm/i915/display/intel_vga.c | 32 ++++++++++++++++++++
drivers/gpu/drm/i915/display/intel_vga.c | 31 ++++++++++++++++++++
drivers/gpu/drm/i915/display/intel_vga.h | 4 +++
drivers/gpu/drm/i915/i915_params.c | 3 ++
drivers/gpu/drm/i915/i915_params.h | 1 +
6 files changed, 53 insertions(+), 3 deletions(-)
6 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index aabf09f89cad..528c6886a0b5 100644
index 806d50b302ab..8b07e45c9693 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -12304,9 +12304,11 @@
intel_bios_init(i915);
@@ -9581,9 +9581,11 @@ int intel_modeset_init_noirq(struct drm_i915_private *i915)
intel_bios_init(i915);
- ret = intel_vga_register(i915);
- if (ret)
+ if (!i915_modparams.enable_hd_vgaarb || !HAS_PCH_SPLIT(i915)) {
+ ret = intel_vga_register(i915);
+ if (ret)
goto cleanup_bios;
+ }
/* FIXME: completely on the wrong abstraction layer */
intel_power_domains_init_hw(i915, false);
@@ -12476,6 +12478,12 @@
if (ret)
return ret;
+ /*
+ * Must do this after fbcon init so that
+ * vgacon_save_screen() works during the handover.
+ */
+ intel_vga_disable_mem(i915);
- goto cleanup_bios;
+ if (!i915_modparams.enable_hd_vgaarb || !HAS_PCH_SPLIT(i915)) {
+ ret = intel_vga_register(i915);
+ if (ret)
+ goto cleanup_bios;
+ }
/* FIXME: completely on the wrong abstraction layer */
intel_power_domains_init_hw(i915, false);
@@ -9734,6 +9736,12 @@ int intel_modeset_init(struct drm_i915_private *i915)
if (ret)
return ret;
+ /*
+ * Must do this after fbcon init so that
+ * vgacon_save_screen() works during the handover.
+ */
+ intel_vga_disable_mem(i915);
+
/* Only enable hotplug handling once the fbdev is fully set up. */
intel_hpd_init(i915);
intel_hpd_poll_disable(i915);
@@ -13375,6 +13383,7 @@
if (!HAS_DISPLAY(i915))
return;
+ intel_vga_enable_mem(i915);
flush_workqueue(i915->flip_wq);
flush_workqueue(i915->modeset_wq);
/* Only enable hotplug handling once the fbdev is fully set up. */
intel_hpd_init(i915);
intel_hpd_poll_disable(i915);
@@ -10467,6 +10475,7 @@ void intel_modeset_driver_remove(struct drm_i915_private *i915)
if (!HAS_DISPLAY(i915))
return;
+ intel_vga_enable_mem(i915);
flush_workqueue(i915->flip_wq);
flush_workqueue(i915->modeset_wq);
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index d10b7c8cde3f..3daaa0bd3b60 100644
index 187910d94ec6..82b17d7fee91 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -564,6 +564,7 @@ int vlv_get_hpll_vco(struct drm_i915_private *dev_priv);
@@ -568,6 +568,7 @@ void i830_disable_pipe(struct drm_i915_private *dev_priv, enum pipe pipe);
int vlv_get_hpll_vco(struct drm_i915_private *dev_priv);
int vlv_get_cck_clock(struct drm_i915_private *dev_priv,
const char *name, u32 reg, int ref_freq);
+extern void intel_vga_disable_mem(struct drm_i915_private *dev_priv);
int vlv_get_cck_clock_hpll(struct drm_i915_private *dev_priv,
const char *name, u32 reg);
+extern void intel_vga_disable_mem(struct drm_i915_private *dev_priv);
void intel_init_display_hooks(struct drm_i915_private *dev_priv);
unsigned int intel_fb_xy_to_linear(int x, int y,
const struct intel_plane_state *state,
diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c
index be333699c515..a76aa52cde76 100644
index b5d058404c14..ad23732a9f21 100644
--- a/drivers/gpu/drm/i915/display/intel_vga.c
+++ b/drivers/gpu/drm/i915/display/intel_vga.c
@@ -41,6 +41,37 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
@@ -45,6 +45,36 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
intel_de_posting_read(dev_priv, vga_reg);
}
+
+void intel_vga_enable_mem(struct drm_i915_private *dev_priv)
+{
+ struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
@ -115,7 +111,7 @@ index be333699c515..a76aa52cde76 100644
+ /* Enable VGA memory on Intel HD */
+ if (i915_modparams.enable_hd_vgaarb && HAS_PCH_SPLIT(dev_priv)) {
+ vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
+ outb(inb(VGA_MSR_READ) | VGA_MSR_MEM_EN, VGA_MSR_WRITE);
+ outb(inb(VGA_MIS_R) | (1 << 1), VGA_MIS_W);
+ vga_set_legacy_decoding(pdev, VGA_RSRC_LEGACY_IO |
+ VGA_RSRC_LEGACY_MEM |
+ VGA_RSRC_NORMAL_IO |
@ -130,7 +126,7 @@ index be333699c515..a76aa52cde76 100644
+ /* Disable VGA memory on Intel HD */
+ if (i915_modparams.enable_hd_vgaarb && HAS_PCH_SPLIT(dev_priv)) {
+ vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
+ outb(inb(VGA_MSR_READ) & ~VGA_MSR_MEM_EN, VGA_MSR_WRITE);
+ outb(inb(VGA_MIS_R) & ~(1 << 1), VGA_MIS_W);
+ vga_set_legacy_decoding(pdev, VGA_RSRC_LEGACY_IO |
+ VGA_RSRC_NORMAL_IO |
+ VGA_RSRC_NORMAL_MEM);
@ -141,7 +137,7 @@ index be333699c515..a76aa52cde76 100644
void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv)
{
i915_reg_t vga_reg = intel_vga_cntrl_reg(dev_priv);
@@ -49,6 +80,7 @@ void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv)
@@ -53,6 +83,7 @@ void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv)
drm_dbg_kms(&dev_priv->drm,
"Something enabled VGA plane, disabling it\n");
intel_vga_disable(dev_priv);
@ -163,31 +159,31 @@ index ba5b55b917f0..7e2af7924e99 100644
+
#endif /* __INTEL_VGA_H__ */
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
index 7f139ea4a90b..f23476551569 100644
index 701fbc98afa0..4c3701e18a4a 100644
--- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c
@@ -140,6 +140,9 @@ i915_param_named_unsafe(invert_brightness, int, 0400,
@@ -142,6 +142,9 @@ i915_param_named_unsafe(invert_brightness, int, 0400,
i915_param_named(disable_display, bool, 0400,
"Disable display (default: false)");
+i915_param_named(enable_hd_vgaarb, bool, 0444,
+ "Enable support for VGA arbitration on Intel HD IGD. (default: false)");
+ "Enable support for VGA arbitration on Intel HD IGD. (default: false)");
+
i915_param_named(mmio_debug, int, 0400,
"Enable the MMIO debug code for the first N failures (default: off). "
"This may negatively affect performance.");
i915_param_named(memtest, bool, 0400,
"Perform a read/write test of all device memory on module load (default: off)");
diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h
index 330c03e2b4f7..b44a4b7dba4d 100644
index b5e7ea45d191..82d0a75da970 100644
--- a/drivers/gpu/drm/i915/i915_params.h
+++ b/drivers/gpu/drm/i915/i915_params.h
@@ -72,6 +72,7 @@ struct drm_printer;
param(char *, force_probe, CONFIG_DRM_I915_FORCE_PROBE, 0400) \
param(unsigned long, fake_lmem_start, 0, 0400) \
@@ -75,6 +75,7 @@ struct drm_printer;
param(unsigned int, request_timeout_ms, CONFIG_DRM_I915_REQUEST_TIMEOUT, CONFIG_DRM_I915_REQUEST_TIMEOUT ? 0600 : 0) \
param(unsigned int, lmem_size, 0, 0400) \
/* leave bools at the end to not create holes */ \
+ param(bool, enable_hd_vgaarb, false, 0600) \
param(bool, enable_hangcheck, true, 0600) \
param(bool, load_detect_test, false, 0600) \
param(bool, force_reset_modeset_test, false, 0600) \
--
2.30.0
2.37.3