1
0
mirror of https://aur.archlinux.org/linux-vfio.git synced 2025-02-22 21:19:34 +00:00
This commit is contained in:
xiota 2025-01-27 05:55:16 +00:00
parent de08d14fee
commit 716938a797
4 changed files with 122 additions and 107 deletions

View File

@ -1,6 +1,6 @@
pkgbase = linux-vfio pkgbase = linux-vfio
pkgdesc = Linux pkgdesc = Linux
pkgver = 6.12.10 pkgver = 6.13
pkgrel = 1 pkgrel = 1
url = https://www.kernel.org url = https://www.kernel.org
arch = x86_64 arch = x86_64
@ -21,21 +21,21 @@ pkgbase = linux-vfio
makedepends = texlive-latexextra makedepends = texlive-latexextra
options = !debug options = !debug
options = !strip options = !strip
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.10.tar.xz source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.13.tar.xz
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.10.tar.sign source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.13.tar.sign
source = config-6.12.10::https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/raw/main/config source = config-6.13::https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/raw/main/config
source = 1001-6.8.0-add-acs-overrides.patch source = 1001-6.13.0-add-acs-overrides.patch
source = 1002-6.8.0-i915-vga-arbiter.patch source = 1002-6.13.0-i915-vga-arbiter.patch
source = https://github.com/archlinux/linux/releases/download/v6.12.10-arch1/linux-v6.12.10-arch1.patch.zst source = https://github.com/archlinux/linux/releases/download/v6.13-arch1/linux-v6.13-arch1.patch.zst
source = https://github.com/archlinux/linux/releases/download/v6.12.10-arch1/linux-v6.12.10-arch1.patch.zst.sig source = https://github.com/archlinux/linux/releases/download/v6.13-arch1/linux-v6.13-arch1.patch.zst.sig
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
validpgpkeys = 83BC8889351B5DEBBB68416EB8AC08600F108CDF validpgpkeys = 83BC8889351B5DEBBB68416EB8AC08600F108CDF
sha256sums = 4a516e5ed748537a73cb42ec47fbbeb6df8b1298e8892c29c0e91de79095b297 sha256sums = e79dcc6eb86695c6babfb07c2861912b635d5075c6cd1cd0567d1ea155f80d6e
sha256sums = SKIP sha256sums = SKIP
sha256sums = SKIP sha256sums = SKIP
sha256sums = b35c26d5dc31fb9cfac68292de7b1ee8ca93b4647e4958efc77e2c77f586f1f2 sha256sums = 569742a1c7ce7996ee4c650c444ed13d650fff7b84f23a16e6358693e58aee9f
sha256sums = 966c15da4044a9a3b5f9d362c2cf08303f1265ad4489c9835c95973b71255d07 sha256sums = 40bb65492702d3f92dd67f8f1e424a1c686f1ff2e2d7d2566451693a7adc09f3
sha256sums = SKIP sha256sums = SKIP
sha256sums = SKIP sha256sums = SKIP
@ -44,8 +44,9 @@ pkgname = linux-vfio
depends = coreutils depends = coreutils
depends = initramfs depends = initramfs
depends = kmod depends = kmod
optdepends = wireless-regdb: to set the correct wireless channels of your country
optdepends = linux-firmware: firmware images needed for some devices optdepends = linux-firmware: firmware images needed for some devices
optdepends = scx-scheds: to use sched-ext schedulers
optdepends = wireless-regdb: to set the correct wireless channels of your country
provides = KSMBD-MODULE provides = KSMBD-MODULE
provides = VIRTUALBOX-GUEST-MODULES provides = VIRTUALBOX-GUEST-MODULES
provides = WIREGUARD-MODULE provides = WIREGUARD-MODULE

View File

@ -1,7 +1,7 @@
From 6d05bc1343b9ecce154f551ee09c15e0e9db70bb Mon Sep 17 00:00:00 2001 From bca709f513eff78dbd976ff8dc7e64df5107ac37 Mon Sep 17 00:00:00 2001
From: xiota <> From: xiota <>
Date: Wed, 13 Mar 2024 02:36:37 +0000 Date: Wed, 13 Mar 2024 02:36:37 +0000
Subject: [PATCH 1/2] add-acs-overrides Subject: [PATCH] add-acs-overrides
--- ---
.../admin-guide/kernel-parameters.txt | 8 ++ .../admin-guide/kernel-parameters.txt | 8 ++
@ -9,10 +9,10 @@ Subject: [PATCH 1/2] add-acs-overrides
2 files changed, 110 insertions(+) 2 files changed, 110 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 31b3a2568..b8ab436d1 100644 index 3872bc6..b8cb3e3 100644
--- a/Documentation/admin-guide/kernel-parameters.txt --- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -4370,6 +4370,14 @@ @@ -4481,6 +4481,14 @@
nomsi [MSI] If the PCI_MSI kernel config parameter is nomsi [MSI] If the PCI_MSI kernel config parameter is
enabled, this kernel boot option can be used to enabled, this kernel boot option can be used to
disable the use of MSI interrupts system-wide. disable the use of MSI interrupts system-wide.
@ -28,10 +28,10 @@ index 31b3a2568..b8ab436d1 100644
Safety option to keep boot IRQs enabled. This Safety option to keep boot IRQs enabled. This
should never be necessary. should never be necessary.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index d797df6e5..9b41773bf 100644 index 76f4df7..49150a2 100644
--- a/drivers/pci/quirks.c --- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c
@@ -4996,6 +4996,106 @@ static int pci_quirk_wangxun_nic_acs(struct pci_dev *dev, u16 acs_flags) @@ -5017,6 +5017,106 @@ static int pci_quirk_wangxun_nic_acs(struct pci_dev *dev, u16 acs_flags)
return false; return false;
} }
@ -138,7 +138,7 @@ index d797df6e5..9b41773bf 100644
static const struct pci_dev_acs_enabled { static const struct pci_dev_acs_enabled {
u16 vendor; u16 vendor;
u16 device; u16 device;
@@ -5143,6 +5243,8 @@ static const struct pci_dev_acs_enabled { @@ -5170,6 +5270,8 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs }, { PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
/* Wangxun nics */ /* Wangxun nics */
{ PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs }, { PCI_VENDOR_ID_WANGXUN, PCI_ANY_ID, pci_quirk_wangxun_nic_acs },
@ -148,5 +148,5 @@ index d797df6e5..9b41773bf 100644
}; };
-- --
2.44.0 2.48.1

View File

@ -1,22 +1,23 @@
From 6f123acf4fecf575970c8b3ab0994ea0563fd41e Mon Sep 17 00:00:00 2001 From 32d421bf11726bac8f1bbf105095db02023117d5 Mon Sep 17 00:00:00 2001
From: xiota <> From: xiota <>
Date: Wed, 13 Mar 2024 02:48:53 +0000 Date: Mon, 27 Jan 2025 05:45:27 +0000
Subject: [PATCH 2/2] i915-vga-arbiter Subject: [PATCH] i915-vga-arbiter
--- ---
.../drm/i915/display/intel_display_driver.c | 17 ++++++++-- .../drm/i915/display/intel_display_driver.c | 20 +++++++++--
.../drm/i915/display/intel_display_driver.h | 1 + .../drm/i915/display/intel_display_driver.h | 1 +
.../drm/i915/display/intel_display_params.c | 3 ++ .../drm/i915/display/intel_display_params.c | 3 ++
.../drm/i915/display/intel_display_params.h | 1 + .../drm/i915/display/intel_display_params.h | 1 +
drivers/gpu/drm/i915/display/intel_vga.c | 32 +++++++++++++++++++ drivers/gpu/drm/i915/display/intel_vga.c | 33 +++++++++++++++++++
drivers/gpu/drm/i915/display/intel_vga.h | 4 +++ drivers/gpu/drm/i915/display/intel_vga.h | 4 +++
6 files changed, 55 insertions(+), 3 deletions(-) .../gpu/drm/xe/compat-i915-headers/i915_drv.h | 7 ++++
7 files changed, 66 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 diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c
index 9df9097a0..2c467daf8 100644 index 56b78cf6b..b787f82dc 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.c --- a/drivers/gpu/drm/i915/display/intel_display_driver.c
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.c +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c
@@ -29,6 +29,7 @@ @@ -30,6 +30,7 @@
#include "intel_display_debugfs.h" #include "intel_display_debugfs.h"
#include "intel_display_driver.h" #include "intel_display_driver.h"
#include "intel_display_irq.h" #include "intel_display_irq.h"
@ -24,81 +25,87 @@ index 9df9097a0..2c467daf8 100644
#include "intel_display_power.h" #include "intel_display_power.h"
#include "intel_display_types.h" #include "intel_display_types.h"
#include "intel_display_wa.h" #include "intel_display_wa.h"
@@ -215,9 +216,11 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915) @@ -221,9 +222,11 @@ int intel_display_driver_probe_noirq(struct drm_i915_private *i915)
intel_bios_init(i915); intel_bios_init(display);
- ret = intel_vga_register(i915); - ret = intel_vga_register(display);
- if (ret) - if (ret)
- goto cleanup_bios; - goto cleanup_bios;
+ if (!i915->display.params.enable_hd_vgaarb || !HAS_PCH_SPLIT(i915)) { + if (!display->params.enable_hd_vgaarb || !HAS_PCH_SPLIT(i915)) {
+ ret = intel_vga_register(i915); + ret = intel_vga_register(display);
+ if (ret) + if (ret)
+ goto cleanup_bios; + goto cleanup_bios;
+ } + }
/* FIXME: completely on the wrong abstraction layer */ /* FIXME: completely on the wrong abstraction layer */
ret = intel_power_domains_init(i915); ret = intel_power_domains_init(i915);
@@ -372,6 +375,12 @@ int intel_display_driver_probe(struct drm_i915_private *i915) @@ -520,6 +523,12 @@ int intel_display_driver_probe(struct drm_i915_private *i915)
if (ret)
return ret; intel_overlay_setup(i915);
+ /* + /*
+ * Must do this after fbcon init so that + * Must do this after fbcon init so that
+ * vgacon_save_screen() works during the handover. + * vgacon_save_screen() works during the handover.
+ */ + */
+ intel_vga_disable_mem(i915); + intel_vga_disable_mem(display);
+ +
/* Only enable hotplug handling once the fbdev is fully set up. */ /* Only enable hotplug handling once the fbdev is fully set up. */
intel_hpd_init(i915); intel_hpd_init(i915);
intel_hpd_poll_disable(i915);
@@ -423,6 +432,7 @@ void intel_display_driver_remove(struct drm_i915_private *i915) @@ -566,9 +575,13 @@ void intel_display_driver_register(struct drm_i915_private *i915)
/* part #1: call before irq uninstall */
void intel_display_driver_remove(struct drm_i915_private *i915)
{
+ struct intel_display *display = &i915->display;
+
if (!HAS_DISPLAY(i915)) if (!HAS_DISPLAY(i915))
return; return;
+ intel_vga_enable_mem(i915); + intel_vga_enable_mem(display);
+
flush_workqueue(i915->display.wq.flip); flush_workqueue(i915->display.wq.flip);
flush_workqueue(i915->display.wq.modeset); flush_workqueue(i915->display.wq.modeset);
@@ -452,6 +462,7 @@ void intel_display_driver_remove_noirq(struct drm_i915_private *i915) @@ -599,6 +612,7 @@ void intel_display_driver_remove_noirq(struct drm_i915_private *i915)
intel_unregister_dsm_handler(); intel_unregister_dsm_handler();
/* flush any delayed tasks or pending work */ /* flush any delayed tasks or pending work */
+ intel_vga_enable_mem(i915); + intel_vga_enable_mem(display);
flush_workqueue(i915->unordered_wq); flush_workqueue(i915->unordered_wq);
intel_hdcp_component_fini(i915); intel_hdcp_component_fini(display);
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.h b/drivers/gpu/drm/i915/display/intel_display_driver.h diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.h b/drivers/gpu/drm/i915/display/intel_display_driver.h
index c276a58ee..54b752a93 100644 index 42cc4af6d..3b233969b 100644
--- a/drivers/gpu/drm/i915/display/intel_display_driver.h --- a/drivers/gpu/drm/i915/display/intel_display_driver.h
+++ b/drivers/gpu/drm/i915/display/intel_display_driver.h +++ b/drivers/gpu/drm/i915/display/intel_display_driver.h
@@ -13,6 +13,7 @@ struct drm_i915_private; @@ -13,6 +13,7 @@ struct drm_i915_private;
struct drm_modeset_acquire_ctx; struct drm_modeset_acquire_ctx;
struct pci_dev; struct pci_dev;
+extern void intel_vga_disable_mem(struct drm_i915_private *dev_priv); +extern void intel_vga_disable_mem(struct intel_display *display);
bool intel_display_driver_probe_defer(struct pci_dev *pdev); 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_init_hw(struct drm_i915_private *i915);
void intel_display_driver_early_probe(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 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 index 024de8abc..efc57e90c 100644
--- a/drivers/gpu/drm/i915/display/intel_display_params.c --- a/drivers/gpu/drm/i915/display/intel_display_params.c
+++ b/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, @@ -94,6 +94,9 @@ intel_display_param_named_unsafe(force_reset_modeset_test, bool, 0400,
intel_display_param_named(disable_display, bool, 0400, intel_display_param_named(disable_display, bool, 0400,
"Disable display (default: false)"); "Disable display (default: false)");
+intel_display_param_named(enable_hd_vgaarb, bool, 0444, +intel_display_param_named(enable_hd_vgaarb, bool, 0400,
+ "Enable support for VGA arbitration on Intel HD IGD. (default: false)"); + "Enable support for VGA arbitration on Intel HD IGD. (default: false)");
+ +
intel_display_param_named(verbose_state_checks, bool, 0400, intel_display_param_named(verbose_state_checks, bool, 0400,
"Enable verbose logs (ie. WARN_ON()) in case of unexpected hw state conditions."); "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 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 index dcb6face9..1900b9ff9 100644
--- a/drivers/gpu/drm/i915/display/intel_display_params.h --- a/drivers/gpu/drm/i915/display/intel_display_params.h
+++ b/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; @@ -40,6 +40,7 @@ struct drm_printer;
param(bool, load_detect_test, false, 0600) \ param(bool, load_detect_test, false, 0600) \
param(bool, force_reset_modeset_test, false, 0600) \ param(bool, force_reset_modeset_test, false, 0600) \
param(bool, disable_display, false, 0400) \ param(bool, disable_display, false, 0400) \
@ -107,27 +114,27 @@ index 6206cc51d..bfbc49c53 100644
param(bool, nuclear_pageflip, false, 0400) \ param(bool, nuclear_pageflip, false, 0400) \
param(bool, enable_dp_mst, true, 0600) \ 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 diff --git a/drivers/gpu/drm/i915/display/intel_vga.c b/drivers/gpu/drm/i915/display/intel_vga.c
index 4b98833bf..25a729c95 100644 index fd18dd07a..a587c5bc2 100644
--- a/drivers/gpu/drm/i915/display/intel_vga.c --- a/drivers/gpu/drm/i915/display/intel_vga.c
+++ b/drivers/gpu/drm/i915/display/intel_vga.c +++ b/drivers/gpu/drm/i915/display/intel_vga.c
@@ -11,6 +11,7 @@ @@ -12,6 +12,7 @@
#include "i915_drv.h" #include "i915_drv.h"
#include "i915_reg.h" #include "i915_reg.h"
#include "intel_de.h" #include "intel_de.h"
+#include "intel_display_params.h" +#include "intel_display_params.h"
#include "intel_vga.h" #include "intel_vga.h"
static i915_reg_t intel_vga_cntrl_reg(struct drm_i915_private *i915) static i915_reg_t intel_vga_cntrl_reg(struct intel_display *display)
@@ -45,6 +46,36 @@ void intel_vga_disable(struct drm_i915_private *dev_priv) @@ -46,6 +47,37 @@ void intel_vga_disable(struct intel_display *display)
intel_de_posting_read(dev_priv, vga_reg); intel_de_posting_read(display, vga_reg);
} }
+void intel_vga_enable_mem(struct drm_i915_private *dev_priv) +void intel_vga_enable_mem(struct intel_display *display)
+{ +{
+ struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); + struct pci_dev *pdev = to_pci_dev(display->drm->dev);
+ + struct drm_i915_private *i915 = pdev_to_i915(pdev);
+ /* Enable VGA memory on Intel HD */ + /* Enable VGA memory on Intel HD */
+ if (dev_priv->display.params.enable_hd_vgaarb && HAS_PCH_SPLIT(dev_priv)) { + if (display->params.enable_hd_vgaarb && HAS_PCH_SPLIT(i915)) {
+ vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO); + vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
+ outb(inb(VGA_MIS_R) | (1 << 1), VGA_MIS_W); + outb(inb(VGA_MIS_R) | (1 << 1), VGA_MIS_W);
+ vga_set_legacy_decoding(pdev, VGA_RSRC_LEGACY_IO | + vga_set_legacy_decoding(pdev, VGA_RSRC_LEGACY_IO |
@ -138,11 +145,12 @@ index 4b98833bf..25a729c95 100644
+ } + }
+} +}
+ +
+void intel_vga_disable_mem(struct drm_i915_private *dev_priv) +void intel_vga_disable_mem(struct intel_display *display)
+{ +{
+ struct pci_dev *pdev = to_pci_dev(dev_priv->drm.dev); + struct pci_dev *pdev = to_pci_dev(display->drm->dev);
+ struct drm_i915_private *i915 = pdev_to_i915(pdev);
+ /* Disable VGA memory on Intel HD */ + /* Disable VGA memory on Intel HD */
+ if (dev_priv->display.params.enable_hd_vgaarb && HAS_PCH_SPLIT(dev_priv)) { + if (display->params.enable_hd_vgaarb && HAS_PCH_SPLIT(i915)) {
+ vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO); + vga_get_uninterruptible(pdev, VGA_RSRC_LEGACY_IO);
+ outb(inb(VGA_MIS_R) & ~(1 << 1), VGA_MIS_W); + outb(inb(VGA_MIS_R) & ~(1 << 1), VGA_MIS_W);
+ vga_set_legacy_decoding(pdev, VGA_RSRC_LEGACY_IO | + vga_set_legacy_decoding(pdev, VGA_RSRC_LEGACY_IO |
@ -152,30 +160,48 @@ index 4b98833bf..25a729c95 100644
+ } + }
+} +}
+ +
void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv) void intel_vga_redisable_power_on(struct intel_display *display)
{ {
i915_reg_t vga_reg = intel_vga_cntrl_reg(dev_priv); i915_reg_t vga_reg = intel_vga_cntrl_reg(display);
@@ -53,6 +84,7 @@ void intel_vga_redisable_power_on(struct drm_i915_private *dev_priv) @@ -54,6 +86,7 @@ void intel_vga_redisable_power_on(struct intel_display *display)
drm_dbg_kms(&dev_priv->drm, drm_dbg_kms(display->drm,
"Something enabled VGA plane, disabling it\n"); "Something enabled VGA plane, disabling it\n");
intel_vga_disable(dev_priv); intel_vga_disable(display);
+ intel_vga_disable_mem(dev_priv); + intel_vga_disable_mem(display);
} }
} }
diff --git a/drivers/gpu/drm/i915/display/intel_vga.h b/drivers/gpu/drm/i915/display/intel_vga.h diff --git a/drivers/gpu/drm/i915/display/intel_vga.h b/drivers/gpu/drm/i915/display/intel_vga.h
index ba5b55b91..7e2af7924 100644 index 824dfc32a..ebe2c89d9 100644
--- a/drivers/gpu/drm/i915/display/intel_vga.h --- a/drivers/gpu/drm/i915/display/intel_vga.h
+++ b/drivers/gpu/drm/i915/display/intel_vga.h +++ b/drivers/gpu/drm/i915/display/intel_vga.h
@@ -15,4 +15,8 @@ void intel_vga_redisable_power_on(struct drm_i915_private *i915); @@ -15,4 +15,8 @@ void intel_vga_redisable_power_on(struct intel_display *display);
int intel_vga_register(struct drm_i915_private *i915); int intel_vga_register(struct intel_display *display);
void intel_vga_unregister(struct drm_i915_private *i915); void intel_vga_unregister(struct intel_display *display);
+/* i915 vga arb patch */ +/* i915 vga arb patch */
+void intel_vga_enable_mem(struct drm_i915_private *i915); +void intel_vga_enable_mem(struct intel_display *display);
+void intel_vga_disable_mem(struct drm_i915_private *i915); +void intel_vga_disable_mem(struct intel_display *display);
+ +
#endif /* __INTEL_VGA_H__ */ #endif /* __INTEL_VGA_H__ */
diff --git a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
index 84b0991b3..a908e706e 100644
--- a/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
+++ b/drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h
@@ -22,6 +22,13 @@ static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
return container_of(dev, struct drm_i915_private, drm);
}
+static inline struct drm_i915_private *pdev_to_i915(struct pci_dev *pdev)
+{
+ struct drm_device *drm = pci_get_drvdata(pdev);
+
+ return drm ? to_i915(drm) : NULL;
+}
+
#define IS_PLATFORM(xe, x) ((xe)->info.platform == x)
#define INTEL_INFO(dev_priv) (&((dev_priv)->info))
#define IS_I830(dev_priv) (dev_priv && 0)
-- --
2.44.0 2.48.1

View File

@ -8,25 +8,24 @@
: ${_build_arch_patch:=true} : ${_build_arch_patch:=true}
: ${_build_clang:=false} : ${_build_clang:=false}
: ${_build_tracer:=true}
: ${_build_numa:=true}
: ${_build_vfio:=true} : ${_build_vfio:=true}
: ${_build_lts:=false} : ${_build_lts:=false}
: ${_build_v3:=false} : ${_build_level:=1}
: ${_cksum:=4a516e5ed748537a73cb42ec47fbbeb6df8b1298e8892c29c0e91de79095b297} : ${_cksum:=e79dcc6eb86695c6babfb07c2861912b635d5075c6cd1cd0567d1ea155f80d6e}
unset _pkgtype unset _pkgtype
[[ "${_build_vfio::1}" == "t" ]] && _pkgtype+="-vfio" [[ ${_build_vfio::1} == "t" ]] && _pkgtype+="-vfio"
[[ "${_build_lts::1}" == "t" ]] && _pkgtype+="-lts" [[ ${_build_lts::1} == "t" ]] && _pkgtype+="-lts"
[[ "${_build_v3::1}" == "t" ]] && _pkgtype+="-x64v3" [[ ${_build_level::1} == "2" ]] && _pkgtype+="-x64v2"
[[ ${_build_level::1} == "3" ]] && _pkgtype+="-x64v3"
[[ ${_build_level::1} == "4" ]] && _pkgtype+="-x64v4"
## basic info
_gitname="linux" _gitname="linux"
_pkgname="$_gitname${_pkgtype:-}" _pkgname="$_gitname${_pkgtype:-}"
pkgbase="$_pkgname" pkgbase="$_pkgname"
pkgver=6.12.10 pkgver=6.13
pkgrel=1 pkgrel=1
pkgdesc='Linux' pkgdesc='Linux'
url='https://www.kernel.org' url='https://www.kernel.org'
@ -72,12 +71,12 @@ validpgpkeys=(
if [[ ${_build_vfio::1} == "t" ]]; then if [[ ${_build_vfio::1} == "t" ]]; then
source+=( source+=(
1001-6.8.0-add-acs-overrides.patch # updated from https://lkml.org/lkml/2013/5/30/513 1001-6.13.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 1002-6.13.0-i915-vga-arbiter.patch # updated from https://lkml.org/lkml/2014/5/9/517
) )
sha256sums+=( sha256sums+=(
'b35c26d5dc31fb9cfac68292de7b1ee8ca93b4647e4958efc77e2c77f586f1f2' '569742a1c7ce7996ee4c650c444ed13d650fff7b84f23a16e6358693e58aee9f'
'966c15da4044a9a3b5f9d362c2cf08303f1265ad4489c9835c95973b71255d07' '40bb65492702d3f92dd67f8f1e424a1c686f1ff2e2d7d2566451693a7adc09f3'
) )
fi fi
@ -101,8 +100,8 @@ if [[ ${_build_clang::1} == "t" ]]; then
export LLVM_IAS=1 export LLVM_IAS=1
fi fi
if [[ "${_build_v3::1}" == "t" ]]; then if [[ ${_build_level::1} =~ ^[2-4]$ ]]; then
export KCFLAGS="-march=x86-64-v3 -mtune=generic -O3" export KCFLAGS="-march=x86-64-v${_build_level::1} -mtune=generic -O3"
fi fi
export KBUILD_BUILD_HOST=archlinux export KBUILD_BUILD_HOST=archlinux
@ -113,23 +112,10 @@ _prepare_extra() {
# remove extra version suffix # remove extra version suffix
sed -E 's&^(EXTRAVERSION =).*$&\1&' -i Makefile sed -E 's&^(EXTRAVERSION =).*$&\1&' -i Makefile
if [[ "${_build_clang::1}" == "t" ]]; then if [[ ${_build_clang::1} == "t" ]]; then
scripts/config --disable LTO_CLANG_FULL scripts/config --disable LTO_CLANG_FULL
scripts/config --enable LTO_CLANG_THIN scripts/config --enable LTO_CLANG_THIN
fi fi
if [[ "${_build_clang::1}" == "t" ]] || [[ "${_build_tracer::1}" != "t" ]]; then
echo "Disabling Tracers..."
scripts/config \
--disable CONFIG_FTRACE \
--disable CONFIG_FUNCTION_TRACER \
--disable CONFIG_STACK_TRACER
fi
if [[ "${_build_numa::1}" != "t" ]]; then
echo "Disabling NUMA..."
scripts/config --disable CONFIG_NUMA
fi
} }
prepare() { prepare() {
@ -147,9 +133,9 @@ prepare() {
src="${src##*/}" src="${src##*/}"
src="${src%.zst}" src="${src%.zst}"
[[ $src = *.patch ]] || continue [[ $src = *.patch ]] || continue
echo
echo "Applying patch $src..." echo "Applying patch $src..."
patch -Np1 -F100 -i "../$src" patch -Np1 -F100 -i "../$src"
echo
done done
echo "Setting config..." echo "Setting config..."
@ -178,8 +164,9 @@ _package() {
kmod kmod
) )
optdepends=( optdepends=(
'wireless-regdb: to set the correct wireless channels of your country'
'linux-firmware: firmware images needed for some devices' 'linux-firmware: firmware images needed for some devices'
'scx-scheds: to use sched-ext schedulers'
'wireless-regdb: to set the correct wireless channels of your country'
) )
provides=( provides=(
KSMBD-MODULE KSMBD-MODULE
@ -215,10 +202,11 @@ _package-headers() {
echo "Installing build files..." echo "Installing build files..."
install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \ install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \
localversion.* version vmlinux localversion.* version vmlinux tools/bpf/bpftool/vmlinux.h
install -Dt "$builddir/kernel" -m644 kernel/Makefile install -Dt "$builddir/kernel" -m644 kernel/Makefile
install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile
cp -t "$builddir" -a scripts cp -t "$builddir" -a scripts
ln -srt "$builddir" "$builddir/scripts/gdb/vmlinux-gdb.py"
# required when STACK_VALIDATION is enabled # required when STACK_VALIDATION is enabled
install -Dt "$builddir/tools/objtool" tools/objtool/objtool install -Dt "$builddir/tools/objtool" tools/objtool/objtool