1
0
mirror of https://aur.archlinux.org/linux-vfio.git synced 2024-12-25 05:24:10 +00:00
This commit is contained in:
xiota 2024-03-17 03:00:50 +00:00
parent a2456015b8
commit d93bc23cab
4 changed files with 99 additions and 95 deletions

View File

@ -1,6 +1,6 @@
pkgbase = linux-vfio
pkgdesc = Linux
pkgver = 6.8
pkgver = 6.8.1
pkgrel = 1
url = https://www.kernel.org
arch = x86_64
@ -17,23 +17,24 @@ pkgbase = linux-vfio
makedepends = graphviz
makedepends = imagemagick
makedepends = python-sphinx
makedepends = python-yaml
makedepends = texlive-latexextra
options = !strip
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.tar.xz
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.tar.sign
source = config-6.8::https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/raw/main/config
source = 1001-6.6.7-add-acs-overrides.patch
source = 1002-6.6.7-i915-vga-arbiter.patch
source = https://github.com/archlinux/linux/releases/download/v6.8-arch1/linux-v6.8-arch1.patch.zst
source = https://github.com/archlinux/linux/releases/download/v6.8-arch1/linux-v6.8-arch1.patch.zst.sig
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.1.tar.xz
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.1.tar.sign
source = config-6.8.1::https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/raw/main/config
source = 1001-6.8.0-add-acs-overrides.patch
source = 1002-6.8.0-i915-vga-arbiter.patch
source = https://github.com/archlinux/linux/releases/download/v6.8.1-arch1/linux-v6.8.1-arch1.patch.zst
source = https://github.com/archlinux/linux/releases/download/v6.8.1-arch1/linux-v6.8.1-arch1.patch.zst.sig
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
validpgpkeys = 83BC8889351B5DEBBB68416EB8AC08600F108CDF
sha256sums = c969dea4e8bb6be991bbf7c010ba0e0a5643a3a8d8fb0a2aaa053406f1e965f3
sha256sums = 8d0c8936e3140a0fbdf511ad7a9f21121598f3656743898f47bb9052d37cff68
sha256sums = SKIP
sha256sums = SKIP
sha256sums = f342986bd27980c96c952b0dd8103d3e21a942d87f18df1308fab370e20010fb
sha256sums = 2a3c732d4d61a631c98b2a3e4afb1fa5dbf8be5c43519b2a59d0e65170c9d8db
sha256sums = b35c26d5dc31fb9cfac68292de7b1ee8ca93b4647e4958efc77e2c77f586f1f2
sha256sums = 966c15da4044a9a3b5f9d362c2cf08303f1265ad4489c9835c95973b71255d07
sha256sums = SKIP
sha256sums = SKIP

View File

@ -1,6 +1,6 @@
From 8079e9e3accd28bc20b7c2ebbf87c478f4288475 Mon Sep 17 00:00:00 2001
From 6d05bc1343b9ecce154f551ee09c15e0e9db70bb Mon Sep 17 00:00:00 2001
From: xiota <>
Date: Fri, 29-Dec-2023 12:34:56 +0000
Date: Wed, 13 Mar 2024 02:36:37 +0000
Subject: [PATCH 1/2] add-acs-overrides
---
@ -9,10 +9,10 @@ Subject: [PATCH 1/2] add-acs-overrides
2 files changed, 110 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 41644336e..a3319b714 100644
index 31b3a2568..b8ab436d1 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -4287,6 +4287,14 @@
@@ -4370,6 +4370,14 @@
nomsi [MSI] If the PCI_MSI kernel config parameter is
enabled, this kernel boot option can be used to
disable the use of MSI interrupts system-wide.
@ -28,12 +28,12 @@ index 41644336e..a3319b714 100644
Safety option to keep boot IRQs enabled. This
should never be necessary.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index ae95d0950..aaf28aa0b 100644
index d797df6e5..9b41773bf 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -287,6 +287,106 @@ static int __init pci_apply_final_quirks(void)
@@ -4996,6 +4996,106 @@ static int pci_quirk_wangxun_nic_acs(struct pci_dev *dev, u16 acs_flags)
return false;
}
fs_initcall_sync(pci_apply_final_quirks);
+static bool acs_on_downstream;
+static bool acs_on_multifunction;
@ -135,10 +135,10 @@ index ae95d0950..aaf28aa0b 100644
+ return -ENOTTY;
+}
+
/*
* Decoding should be disabled for a PCI device during BAR sizing to avoid
* conflict. But doing so may cause problems on host bridge and perhaps other
@@ -5116,6 +5216,8 @@ static const struct pci_dev_acs_enabled {
static const struct pci_dev_acs_enabled {
u16 vendor;
u16 device;
@@ -5143,6 +5243,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
/* Wangxun nics */
{ PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs },
@ -148,5 +148,5 @@ index ae95d0950..aaf28aa0b 100644
};
--
2.43.0
2.44.0

View File

@ -1,29 +1,37 @@
From 33d2dbe323583bb2f344c857a100f1116fad70d9 Mon Sep 17 00:00:00 2001
From 6f123acf4fecf575970c8b3ab0994ea0563fd41e Mon Sep 17 00:00:00 2001
From: xiota <>
Date: Fri, 29-Dec-2023 12:34:56 +0000
Date: Wed, 13 Mar 2024 02:48:53 +0000
Subject: [PATCH 2/2] i915-vga-arbiter
---
.../drm/i915/display/intel_display_driver.c | 16 ++++++++--
.../drm/i915/display/intel_display_driver.c | 17 ++++++++--
.../drm/i915/display/intel_display_driver.h | 1 +
drivers/gpu/drm/i915/display/intel_vga.c | 31 +++++++++++++++++++
.../drm/i915/display/intel_display_params.c | 3 ++
.../drm/i915/display/intel_display_params.h | 1 +
drivers/gpu/drm/i915/display/intel_vga.c | 32 +++++++++++++++++++
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, 55 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
index 8f144d4d3..915a5ec47 100644
index 9df9097a0..2c467daf8 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -205,9 +205,11 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
@@ -29,6 +29,7 @@
#include "intel_display_debugfs.h"
#include "intel_display_driver.h"
#include "intel_display_irq.h"
+#include "intel_display_params.h"
#include "intel_display_power.h"
#include "intel_display_types.h"
#include "intel_display_wa.h"
@@ -215,9 +216,11 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
intel_bios_init(i915);
- ret = intel_vga_register(i915);
- if (ret)
- goto cleanup_bios;
+ if (!i915_modparams.enable_hd_vgaarb || !HAS_PCH_SPLIT(i915)) {
+ if (!i915->display.params.enable_hd_vgaarb || !HAS_PCH_SPLIT(i915)) {
+ ret = intel_vga_register(i915);
+ if (ret)
+ goto cleanup_bios;
@ -31,7 +39,7 @@ index 8f144d4d3..915a5ec47 100644
/* FIXME: completely on the wrong abstraction layer */
ret = intel_power_domains_init(i915);
@@ -366,6 +368,12 @@ int intel_display_driver_probe(struct drm_i915_private *i915)
@@ -372,6 +375,12 @@ int intel_display_driver_probe(struct drm_i915_private *i915)
if (ret)
return ret;
@ -44,7 +52,7 @@ index 8f144d4d3..915a5ec47 100644
/* Only enable hotplug handling once the fbdev is fully set up. */
intel_hpd_init(i915);
intel_hpd_poll_disable(i915);
@@ -412,6 +420,7 @@ void intel_display_driver_remove(struct drm_i915_private *i915)
@@ -423,6 +432,7 @@ void intel_display_driver_remove(struct drm_i915_private *i915)
if (!HAS_DISPLAY(i915))
return;
@ -52,7 +60,7 @@ index 8f144d4d3..915a5ec47 100644
flush_workqueue(i915->display.wq.flip);
flush_workqueue(i915->display.wq.modeset);
@@ -444,6 +453,7 @@ void intel_display_driver_remove_noirq(struct drm_i915_private *i915)
@@ -452,6 +462,7 @@ void intel_display_driver_remove_noirq(struct drm_i915_private *i915)
intel_unregister_dsm_handler();
/* flush any delayed tasks or pending work */
@ -72,11 +80,45 @@ index c276a58ee..54b752a93 100644
bool intel_display_driver_probe_defer(struct pci_dev *pdev);
void intel_display_driver_init_hw(struct drm_i915_private *i915);
void intel_display_driver_early_probe(struct drm_i915_private *i915);
diff --git a/drivers/gpu/drm/i915/display/intel_display_params.c b/drivers/gpu/drm/i915/display/intel_display_params.c
index 11e03cfb7..8895be132 100644
--- a/drivers/gpu/drm/i915/display/intel_display_params.c
+++ b/drivers/gpu/drm/i915/display/intel_display_params.c
@@ -87,6 +87,9 @@ intel_display_param_named_unsafe(force_reset_modeset_test, bool, 0400,
intel_display_param_named(disable_display, bool, 0400,
"Disable display (default: false)");
+intel_display_param_named(enable_hd_vgaarb, bool, 0444,
+ "Enable support for VGA arbitration on Intel HD IGD. (default: false)");
+
intel_display_param_named(verbose_state_checks, bool, 0400,
"Enable verbose logs (ie. WARN_ON()) in case of unexpected hw state conditions.");
diff --git a/drivers/gpu/drm/i915/display/intel_display_params.h b/drivers/gpu/drm/i915/display/intel_display_params.h
index 6206cc51d..bfbc49c53 100644
--- a/drivers/gpu/drm/i915/display/intel_display_params.h
+++ b/drivers/gpu/drm/i915/display/intel_display_params.h
@@ -39,6 +39,7 @@ struct drm_i915_private;
param(bool, load_detect_test, false, 0600) \
param(bool, force_reset_modeset_test, false, 0600) \
param(bool, disable_display, false, 0400) \
+ param(bool, enable_hd_vgaarb, false, 0600) \
param(bool, verbose_state_checks, true, 0400) \
param(bool, nuclear_pageflip, false, 0400) \
param(bool, enable_dp_mst, true, 0600) \
diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c
index 286a0bdd2..18d30ee84 100644
index 4b98833bf..25a729c95 100644
--- a/drivers/gpu/drm/i915/display/intel_vga.c
+++ b/drivers/gpu/drm/i915/display/intel_vga.c
@@ -47,6 +47,36 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
@@ -11,6 +11,7 @@
#include "i915_drv.h"
#include "i915_reg.h"
#include "intel_de.h"
+#include "intel_display_params.h"
#include "intel_vga.h"
static i915_reg_t intel_vga_cntrl_reg(struct drm_i915_private *i915)
@@ -45,6 +46,36 @@ void intel_vga_disable(struct drm_i915_private *dev_priv)
intel_de_posting_read(dev_priv, vga_reg);
}
@ -85,7 +127,7 @@ index 286a0bdd2..18d30ee84 100644
+ struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
+
+ /* Enable VGA memory on Intel HD */
+ if (i915_modparams.enable_hd_vgaarb && HAS_PCH_SPLIT(dev_priv)) {
+ if (dev_priv->display.params.enable_hd_vgaarb && HAS_PCH_SPLIT(dev_priv)) {
+ vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
+ outb(inb(VGA_MIS_R) | (1 << 1), VGA_MIS_W);
+ vga_set_legacy_decoding(pdev, VGA_RSRC_LEGACY_IO |
@ -100,7 +142,7 @@ index 286a0bdd2..18d30ee84 100644
+{
+ struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev);
+ /* Disable VGA memory on Intel HD */
+ if (i915_modparams.enable_hd_vgaarb && HAS_PCH_SPLIT(dev_priv)) {
+ if (dev_priv->display.params.enable_hd_vgaarb && HAS_PCH_SPLIT(dev_priv)) {
+ vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
+ outb(inb(VGA_MIS_R) & ~(1 << 1), VGA_MIS_W);
+ vga_set_legacy_decoding(pdev, VGA_RSRC_LEGACY_IO |
@ -113,7 +155,7 @@ index 286a0bdd2..18d30ee84 100644
void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv)
{
i915_reg_t vga_reg = intel_vga_cntrl_reg(dev_priv);
@@ -55,6 +85,7 @@ void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv)
@@ -53,6 +84,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);
@ -134,32 +176,6 @@ index ba5b55b91..7e2af7924 100644
+void intel_vga_disable_mem(struct drm_i915_private *i915);
+
#endif /* __INTEL_VGA_H__ */
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
index 0a171b57f..739d31067 100644
--- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c
@@ -160,6 +160,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)");
+
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 68abf0ad6..507d29c52 100644
--- a/drivers/gpu/drm/i915/i915_params.h
+++ b/drivers/gpu/drm/i915/i915_params.h
@@ -79,6 +79,7 @@ struct drm_printer;
param(unsigned int, lmem_size, 0, 0400) \
param(unsigned int, lmem_bar_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.43.0
2.44.0

View File

@ -24,12 +24,13 @@ unset _pkgtype
_gitname="linux"
_pkgname="$_gitname${_pkgtype:-}"
pkgbase="$_pkgname"
pkgver=6.8
pkgver=6.8.1
pkgrel=1
pkgdesc='Linux'
url='https://www.kernel.org'
arch=(x86_64)
license=(GPL-2.0-or-later)
license=('GPL-2.0-or-later')
arch=('x86_64')
makedepends=(
bc
cpio
@ -45,6 +46,7 @@ makedepends=(
graphviz
imagemagick
python-sphinx
python-yaml
texlive-latexextra
)
options=('!strip')
@ -54,7 +56,7 @@ source+=(
"config-$pkgver"::https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/raw/main/config
)
sha256sums+=(
'c969dea4e8bb6be991bbf7c010ba0e0a5643a3a8d8fb0a2aaa053406f1e965f3'
'8d0c8936e3140a0fbdf511ad7a9f21121598f3656743898f47bb9052d37cff68'
'SKIP'
'SKIP'
)
@ -66,12 +68,12 @@ validpgpkeys=(
if [[ ${_build_vfio::1} == "t" ]] ; then
source+=(
1001-6.6.7-add-acs-overrides.patch # updated from https://lkml.org/lkml/2013/5/30/513
1002-6.6.7-i915-vga-arbiter.patch # updated from https://lkml.org/lkml/2014/5/9/517
1001-6.8.0-add-acs-overrides.patch # updated from https://lkml.org/lkml/2013/5/30/513
1002-6.8.0-i915-vga-arbiter.patch # updated from https://lkml.org/lkml/2014/5/9/517
)
sha256sums+=(
'f342986bd27980c96c952b0dd8103d3e21a942d87f18df1308fab370e20010fb'
'2a3c732d4d61a631c98b2a3e4afb1fa5dbf8be5c43519b2a59d0e65170c9d8db'
'b35c26d5dc31fb9cfac68292de7b1ee8ca93b4647e4958efc77e2c77f586f1f2'
'966c15da4044a9a3b5f9d362c2cf08303f1265ad4489c9835c95973b71255d07'
)
fi
@ -96,30 +98,14 @@ fi
if [[ ${_build_clang::1} == "t" ]] ; then
makedepends+=(clang llvm lld)
export CC=clang
export LD=ld.lld
export AR=llvm-ar
export NM=llvm-nm
export STRIP=llvm-strip
export OBJCOPY=llvm-objcopy
export OBJDUMP=llvm-objdump
export READELF=llvm-readelf
export HOSTCC=clang
export HOSTCXX=clang++
export HOSTAR=llvm-ar
export HOSTLD=ld.lld
export LLVM=1
export LLVM_IAS=1
export CXX=clang++
export LDFLAGS+=" -fuse-ld=lld"
fi
if [[ "${_build_v3::1}" == "t" ]] ; then
export CFLAGS="$(echo "$CFLAGS" | sed -E 's@(\s*-(march|mtune)=\S+\s*)@ @g;s@\s*-O[0-9]\s*@ @g;s@\s+@ @g') -march=x86-64-v3 -mtune=generic -O3"
export CXXFLAGS="$(echo "$CXXFLAGS" | sed -E 's@(\s*-(march|mtune)=\S+\s*)@ @g;s@\s*-O[0-9]\s*@ @g;s@\s+@ @g') -march=x86-64-v3 -mtune=generic -O3"}
export RUSTFLAGS+=" -Ctarget-cpu=x86-64-v3"
export KCFLAGS="-march=x86-64-v3 -mtune=generic -O3"
export HOSTCFLAGS="-march=x86-64-v3 -mtune=generic -O3"
export HOSTCXXFLAGS="-march=x86-64-v3 -mtune=generic -O3"
fi
export KBUILD_BUILD_HOST=archlinux
@ -183,6 +169,7 @@ prepare() {
build() {
cd $_srcname
make all
make -C tools/bpf/bpftool vmlinux.h feature-clang-bpf-co-re=1
#make htmldocs
}