1
0
mirror of https://aur.archlinux.org/linux-vfio.git synced 2024-12-27 07:44:11 +00:00

Update to 4.17.2-1

This commit is contained in:
Mark Weiman 2018-06-24 13:40:05 -04:00
parent dd7b41abe7
commit b744ca060f
9 changed files with 369 additions and 410 deletions

View File

@ -1,5 +1,5 @@
pkgbase = linux-vfio pkgbase = linux-vfio
pkgver = 4.16.13 pkgver = 4.17.2
pkgrel = 1 pkgrel = 1
url = https://www.kernel.org/ url = https://www.kernel.org/
arch = x86_64 arch = x86_64
@ -10,35 +10,35 @@ pkgbase = linux-vfio
makedepends = bc makedepends = bc
makedepends = libelf makedepends = libelf
options = !strip options = !strip
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.16.tar.xz source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.17.tar.xz
source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.16.tar.sign source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.17.tar.sign
source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.16.13.xz source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.17.2.xz
source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.16.13.sign source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.17.2.sign
source = config source = config
source = 60-linux.hook source = 60-linux.hook
source = 90-linux.hook source = 90-linux.hook
source = linux.preset source = linux.preset
source = 0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch source = 0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
source = 0002-ACPI-watchdog-Prefer-iTCO_wdt-on-Lenovo-Z50-70.patch source = 0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
source = 0003-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch source = 0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
source = add-acs-overrides.patch source = add-acs-overrides.patch
source = i915-vga-arbiter.patch source = i915-vga-arbiter.patch
source = PCI-Add-Intel-7th-8th-Gen-mobile-to-ACS-quirks.patch source = PCI-Add-Intel-7th-8th-Gen-mobile-to-ACS-quirks.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
sha256sums = 63f6dc8e3c9f3a0273d5d6f4dca38a2413ca3a5f689329d05b750e4c87bb21b9 sha256sums = 9faa1dd896eaea961dc6e886697c0b3301277102e5bc976b2758f9a62d3ccd13
sha256sums = SKIP sha256sums = SKIP
sha256sums = 9efa0a74eb61240da53bd01a3a23759e0065811de53d22de7d679eabf847f323 sha256sums = a528b102daad9d3072b328f68d4fc7b4eff7641ad301d1a54e5b8f5385efeb0b
sha256sums = SKIP sha256sums = SKIP
sha256sums = 8566a49997faf3f8678440c52578a7a0ee901e598d3b67d3bee3799fb92e8f86 sha256sums = 0269d9a56f0d0306c9bd5c179a7e32214b0a1c082d3bca581661203b27305f17
sha256sums = ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21 sha256sums = ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21
sha256sums = 75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919 sha256sums = 75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919
sha256sums = ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65 sha256sums = ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65
sha256sums = 8d6a5f34b3d79e75b0cb888c6bcf293f84c5cbb2757f7bdadafee7e0ea77d7dd sha256sums = e3c08f9b91611186e5ec579187ecea2a0143e5c2dc7ffc30ac6ea6e2b6d130fd
sha256sums = 2454c1ee5e0f5aa119fafb4c8d3b402c5e4e10b2e868fe3e4ced3b1e2aa48446 sha256sums = 5403dead9161344b2c01027526146a250147680f4a2d32a54d40c55fc1becc8a
sha256sums = 8114295b8c07795a15b9f8eafb0f515c34661a1e05512da818a34581dd30f87e sha256sums = d55e7de60b12bca26ded4c1bb8eb5860a9092374914a201a0f6a0ed2849d099f
sha256sums = abe269c6596b54a412bd8415472153f419026d4f367fa3ee1ebc8693ac66915d sha256sums = 8ab566ab93723bb1c372e8f62f8cd714e6a16fc414d703ba4d255f132cffadd8
sha256sums = fe3d47fe6f54d4a82c869fd29484d3f097b5906ef4d456409961a8dd647daad0 sha256sums = fc1734c1d24aca66015d93f8636afd52afa0f939516d83efb3457da6b5044944
sha256sums = 429ed1161b9b178df97e53dc6439f770e5198b5544f7421d0e48a3dd77fe371f sha256sums = 429ed1161b9b178df97e53dc6439f770e5198b5544f7421d0e48a3dd77fe371f
pkgname = linux-vfio pkgname = linux-vfio

View File

@ -1,5 +1,5 @@
From ee91df95bf010fad44be5d2564e7d40038987f19 Mon Sep 17 00:00:00 2001 From 9a5adbc45b1c7d43fe4b27936f2a6939660617a1 Mon Sep 17 00:00:00 2001
Message-Id: <ee91df95bf010fad44be5d2564e7d40038987f19.1527290717.git.jan.steffens@gmail.com> Message-Id: <9a5adbc45b1c7d43fe4b27936f2a6939660617a1.1528777685.git.jan.steffens@gmail.com>
From: Serge Hallyn <serge.hallyn@canonical.com> From: Serge Hallyn <serge.hallyn@canonical.com>
Date: Fri, 31 May 2013 19:12:12 +0100 Date: Fri, 31 May 2013 19:12:12 +0100
Subject: [PATCH 1/3] add sysctl to disallow unprivileged CLONE_NEWUSER by Subject: [PATCH 1/3] add sysctl to disallow unprivileged CLONE_NEWUSER by
@ -15,7 +15,7 @@ Signed-off-by: Daniel Micay <danielmicay@gmail.com>
3 files changed, 30 insertions(+) 3 files changed, 30 insertions(+)
diff --git a/kernel/fork.c b/kernel/fork.c diff --git a/kernel/fork.c b/kernel/fork.c
index e5d9d405ae4e..c4be89c51f25 100644 index a5d21c42acfc..675eb3f3a1d1 100644
--- a/kernel/fork.c --- a/kernel/fork.c
+++ b/kernel/fork.c +++ b/kernel/fork.c
@@ -103,6 +103,11 @@ @@ -103,6 +103,11 @@
@ -30,7 +30,7 @@ index e5d9d405ae4e..c4be89c51f25 100644
/* /*
* Minimum number of threads to boot the kernel * Minimum number of threads to boot the kernel
@@ -1591,6 +1596,10 @@ static __latent_entropy struct task_struct *copy_process( @@ -1592,6 +1597,10 @@ static __latent_entropy struct task_struct *copy_process(
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
@ -41,7 +41,7 @@ index e5d9d405ae4e..c4be89c51f25 100644
/* /*
* Thread groups must share signals as well, and detached threads * Thread groups must share signals as well, and detached threads
* can only be started up within the thread group. * can only be started up within the thread group.
@@ -2385,6 +2394,12 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) @@ -2386,6 +2395,12 @@ int ksys_unshare(unsigned long unshare_flags)
if (unshare_flags & CLONE_NEWNS) if (unshare_flags & CLONE_NEWNS)
unshare_flags |= CLONE_FS; unshare_flags |= CLONE_FS;
@ -55,7 +55,7 @@ index e5d9d405ae4e..c4be89c51f25 100644
if (err) if (err)
goto bad_unshare_out; goto bad_unshare_out;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index f98f28c12020..7256d339a32a 100644 index 6a78cf70761d..35a1d24282f4 100644
--- a/kernel/sysctl.c --- a/kernel/sysctl.c
+++ b/kernel/sysctl.c +++ b/kernel/sysctl.c
@@ -105,6 +105,9 @@ extern int core_uses_pid; @@ -105,6 +105,9 @@ extern int core_uses_pid;
@ -68,7 +68,7 @@ index f98f28c12020..7256d339a32a 100644
extern int pid_max; extern int pid_max;
extern int pid_max_min, pid_max_max; extern int pid_max_min, pid_max_max;
extern int percpu_pagelist_fraction; extern int percpu_pagelist_fraction;
@@ -515,6 +518,15 @@ static struct ctl_table kern_table[] = { @@ -519,6 +522,15 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec, .proc_handler = proc_dointvec,
}, },
#endif #endif
@ -99,5 +99,5 @@ index 246d4d4ce5c7..f64432b45cec 100644
static DEFINE_MUTEX(userns_state_mutex); static DEFINE_MUTEX(userns_state_mutex);
-- --
2.17.0 2.17.1

View File

@ -1,125 +0,0 @@
From f593e0bde601ff2b4f84b7363e4dfcbbda652e6d Mon Sep 17 00:00:00 2001
Message-Id: <f593e0bde601ff2b4f84b7363e4dfcbbda652e6d.1527290717.git.jan.steffens@gmail.com>
In-Reply-To: <ee91df95bf010fad44be5d2564e7d40038987f19.1527290717.git.jan.steffens@gmail.com>
References: <ee91df95bf010fad44be5d2564e7d40038987f19.1527290717.git.jan.steffens@gmail.com>
From: Mika Westerberg <mika.westerberg@linux.intel.com>
Date: Mon, 23 Apr 2018 14:16:03 +0300
Subject: [PATCH 2/3] ACPI / watchdog: Prefer iTCO_wdt on Lenovo Z50-70
WDAT table on Lenovo Z50-70 is using RTC SRAM (ports 0x70 and 0x71) to
store state of the timer. This conflicts with Linux RTC driver
(rtc-cmos.c) who fails to reserve those ports for itself preventing RTC
from functioning. In addition the WDAT table seems not to be fully
functional because it does not reset the system when the watchdog times
out.
On this system iTCO_wdt works just fine so we simply prefer to use it
instead of WDAT. This makes RTC working again and also results working
watchdog via iTCO_wdt.
Reported-by: Peter Milley <pbmilley@gmail.com>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=199033
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/acpi_watchdog.c | 59 ++++++++++++++++++++++++++++++------
1 file changed, 49 insertions(+), 10 deletions(-)
diff --git a/drivers/acpi/acpi_watchdog.c b/drivers/acpi/acpi_watchdog.c
index ebb626ffb5fa..4bde16fb97d8 100644
--- a/drivers/acpi/acpi_watchdog.c
+++ b/drivers/acpi/acpi_watchdog.c
@@ -12,41 +12,80 @@
#define pr_fmt(fmt) "ACPI: watchdog: " fmt
#include <linux/acpi.h>
+#include <linux/dmi.h>
#include <linux/ioport.h>
#include <linux/platform_device.h>
#include "internal.h"
+static const struct dmi_system_id acpi_watchdog_skip[] = {
+ {
+ /*
+ * On Lenovo Z50-70 there are two issues with the WDAT
+ * table. First some of the instructions use RTC SRAM
+ * to store persistent information. This does not work well
+ * with Linux RTC driver. Second, more important thing is
+ * that the instructions do not actually reset the system.
+ *
+ * On this particular system iTCO_wdt seems to work just
+ * fine so we prefer that over WDAT for now.
+ *
+ * See also https://bugzilla.kernel.org/show_bug.cgi?id=199033.
+ */
+ .ident = "Lenovo Z50-70",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "20354"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Z50-70"),
+ },
+ },
+ {}
+};
+
+static const struct acpi_table_wdat *acpi_watchdog_get_wdat(void)
+{
+ const struct acpi_table_wdat *wdat = NULL;
+ acpi_status status;
+
+ if (acpi_disabled)
+ return NULL;
+
+ if (dmi_check_system(acpi_watchdog_skip))
+ return NULL;
+
+ status = acpi_get_table(ACPI_SIG_WDAT, 0,
+ (struct acpi_table_header **)&wdat);
+ if (ACPI_FAILURE(status)) {
+ /* It is fine if there is no WDAT */
+ return NULL;
+ }
+
+ return wdat;
+}
+
/**
* Returns true if this system should prefer ACPI based watchdog instead of
* the native one (which are typically the same hardware).
*/
bool acpi_has_watchdog(void)
{
- struct acpi_table_header hdr;
-
- if (acpi_disabled)
- return false;
-
- return ACPI_SUCCESS(acpi_get_table_header(ACPI_SIG_WDAT, 0, &hdr));
+ return !!acpi_watchdog_get_wdat();
}
EXPORT_SYMBOL_GPL(acpi_has_watchdog);
void __init acpi_watchdog_init(void)
{
const struct acpi_wdat_entry *entries;
const struct acpi_table_wdat *wdat;
struct list_head resource_list;
struct resource_entry *rentry;
struct platform_device *pdev;
struct resource *resources;
size_t nresources = 0;
- acpi_status status;
int i;
- status = acpi_get_table(ACPI_SIG_WDAT, 0,
- (struct acpi_table_header **)&wdat);
- if (ACPI_FAILURE(status)) {
+ wdat = acpi_watchdog_get_wdat();
+ if (!wdat) {
/* It is fine if there is no WDAT */
return;
}
--
2.17.0

View File

@ -1,10 +1,10 @@
From b7438d9dd645801027ab11470850033da0521338 Mon Sep 17 00:00:00 2001 From 6cc33158e691a70111672a6105c7a37e66e6d3c3 Mon Sep 17 00:00:00 2001
Message-Id: <b7438d9dd645801027ab11470850033da0521338.1527290717.git.jan.steffens@gmail.com> Message-Id: <6cc33158e691a70111672a6105c7a37e66e6d3c3.1528777685.git.jan.steffens@gmail.com>
In-Reply-To: <ee91df95bf010fad44be5d2564e7d40038987f19.1527290717.git.jan.steffens@gmail.com> In-Reply-To: <9a5adbc45b1c7d43fe4b27936f2a6939660617a1.1528777685.git.jan.steffens@gmail.com>
References: <ee91df95bf010fad44be5d2564e7d40038987f19.1527290717.git.jan.steffens@gmail.com> References: <9a5adbc45b1c7d43fe4b27936f2a6939660617a1.1528777685.git.jan.steffens@gmail.com>
From: Jani Nikula <jani.nikula@intel.com> From: Jani Nikula <jani.nikula@intel.com>
Date: Wed, 16 May 2018 11:01:10 +0300 Date: Wed, 16 May 2018 11:01:10 +0300
Subject: [PATCH 3/3] Revert "drm/i915/edp: Allow alternate fixed mode for eDP Subject: [PATCH 2/3] Revert "drm/i915/edp: Allow alternate fixed mode for eDP
if available." if available."
This reverts commit dc911f5bd8aacfcf8aabd5c26c88e04c837a938e. This reverts commit dc911f5bd8aacfcf8aabd5c26c88e04c837a938e.
@ -61,10 +61,10 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20180516080110.22770-1-jani.
6 files changed, 8 insertions(+), 45 deletions(-) 6 files changed, 8 insertions(+), 45 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 79521da5d11d..de0d0f83551e 100644 index b7b4cfdeb974..48cb8df5ae97 100644
--- a/drivers/gpu/drm/i915/intel_dp.c --- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -1584,23 +1584,6 @@ static int intel_dp_compute_bpp(struct intel_dp *intel_dp, @@ -1671,23 +1671,6 @@ static int intel_dp_compute_bpp(struct intel_dp *intel_dp,
return bpp; return bpp;
} }
@ -88,7 +88,7 @@ index 79521da5d11d..de0d0f83551e 100644
bool bool
intel_dp_compute_config(struct intel_encoder *encoder, intel_dp_compute_config(struct intel_encoder *encoder,
struct intel_crtc_state *pipe_config, struct intel_crtc_state *pipe_config,
@@ -1647,16 +1630,8 @@ intel_dp_compute_config(struct intel_encoder *encoder, @@ -1734,16 +1717,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON; pipe_config->has_audio = intel_conn_state->force_audio == HDMI_AUDIO_ON;
if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) { if (intel_dp_is_edp(intel_dp) && intel_connector->panel.fixed_mode) {
@ -107,7 +107,7 @@ index 79521da5d11d..de0d0f83551e 100644
if (INTEL_GEN(dev_priv) >= 9) { if (INTEL_GEN(dev_priv) >= 9) {
int ret; int ret;
@@ -5821,7 +5796,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, @@ -6121,7 +6096,6 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
struct drm_i915_private *dev_priv = to_i915(dev); struct drm_i915_private *dev_priv = to_i915(dev);
struct drm_connector *connector = &intel_connector->base; struct drm_connector *connector = &intel_connector->base;
struct drm_display_mode *fixed_mode = NULL; struct drm_display_mode *fixed_mode = NULL;
@ -115,7 +115,7 @@ index 79521da5d11d..de0d0f83551e 100644
struct drm_display_mode *downclock_mode = NULL; struct drm_display_mode *downclock_mode = NULL;
bool has_dpcd; bool has_dpcd;
struct drm_display_mode *scan; struct drm_display_mode *scan;
@@ -5876,14 +5850,13 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, @@ -6176,14 +6150,13 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
} }
intel_connector->edid = edid; intel_connector->edid = edid;
@ -132,7 +132,7 @@ index 79521da5d11d..de0d0f83551e 100644
} }
} }
@@ -5920,8 +5893,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, @@ -6220,8 +6193,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
pipe_name(pipe)); pipe_name(pipe));
} }
@ -143,10 +143,10 @@ index 79521da5d11d..de0d0f83551e 100644
intel_panel_setup_backlight(connector, pipe); intel_panel_setup_backlight(connector, pipe);
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 30f791f89d64..9b75b82a2956 100644 index a80fbad9be0f..7f3e83f17adb 100644
--- a/drivers/gpu/drm/i915/intel_drv.h --- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -264,7 +264,6 @@ struct intel_encoder { @@ -269,7 +269,6 @@ struct intel_encoder {
struct intel_panel { struct intel_panel {
struct drm_display_mode *fixed_mode; struct drm_display_mode *fixed_mode;
@ -154,7 +154,7 @@ index 30f791f89d64..9b75b82a2956 100644
struct drm_display_mode *downclock_mode; struct drm_display_mode *downclock_mode;
/* backlight */ /* backlight */
@@ -1720,7 +1719,6 @@ void intel_overlay_reset(struct drm_i915_private *dev_priv); @@ -1820,7 +1819,6 @@ void intel_overlay_reset(struct drm_i915_private *dev_priv);
/* intel_panel.c */ /* intel_panel.c */
int intel_panel_init(struct intel_panel *panel, int intel_panel_init(struct intel_panel *panel,
struct drm_display_mode *fixed_mode, struct drm_display_mode *fixed_mode,
@ -163,10 +163,10 @@ index 30f791f89d64..9b75b82a2956 100644
void intel_panel_fini(struct intel_panel *panel); void intel_panel_fini(struct intel_panel *panel);
void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode, void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode,
diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
index f67d321376e4..551bf1c14093 100644 index 51a1d6868b1e..cf39ca90d887 100644
--- a/drivers/gpu/drm/i915/intel_dsi.c --- a/drivers/gpu/drm/i915/intel_dsi.c
+++ b/drivers/gpu/drm/i915/intel_dsi.c +++ b/drivers/gpu/drm/i915/intel_dsi.c
@@ -1851,7 +1851,7 @@ void intel_dsi_init(struct drm_i915_private *dev_priv) @@ -1846,7 +1846,7 @@ void intel_dsi_init(struct drm_i915_private *dev_priv)
connector->display_info.width_mm = fixed_mode->width_mm; connector->display_info.width_mm = fixed_mode->width_mm;
connector->display_info.height_mm = fixed_mode->height_mm; connector->display_info.height_mm = fixed_mode->height_mm;
@ -176,10 +176,10 @@ index f67d321376e4..551bf1c14093 100644
intel_dsi_add_properties(intel_connector); intel_dsi_add_properties(intel_connector);
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
index 754baa00bea9..05bd65e37cb5 100644 index eb0c559b2715..a70d767313aa 100644
--- a/drivers/gpu/drm/i915/intel_dvo.c --- a/drivers/gpu/drm/i915/intel_dvo.c
+++ b/drivers/gpu/drm/i915/intel_dvo.c +++ b/drivers/gpu/drm/i915/intel_dvo.c
@@ -537,7 +537,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv) @@ -536,7 +536,7 @@ void intel_dvo_init(struct drm_i915_private *dev_priv)
*/ */
intel_panel_init(&intel_connector->panel, intel_panel_init(&intel_connector->panel,
intel_dvo_get_current_mode(intel_encoder), intel_dvo_get_current_mode(intel_encoder),
@ -189,10 +189,10 @@ index 754baa00bea9..05bd65e37cb5 100644
} }
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 7ed6f7b69556..ab5a63f007eb 100644 index e125d16a1aa7..d278f24ba6ae 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c --- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -1128,8 +1128,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv) @@ -1175,8 +1175,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
out: out:
mutex_unlock(&dev->mode_config.mutex); mutex_unlock(&dev->mode_config.mutex);
@ -203,10 +203,10 @@ index 7ed6f7b69556..ab5a63f007eb 100644
lvds_encoder->is_dual_link = compute_is_dual_link_lvds(lvds_encoder); lvds_encoder->is_dual_link = compute_is_dual_link_lvds(lvds_encoder);
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
index fa6831f8c004..c0ac6d6bf8ef 100644 index 41d00b1603e3..b443278e569c 100644
--- a/drivers/gpu/drm/i915/intel_panel.c --- a/drivers/gpu/drm/i915/intel_panel.c
+++ b/drivers/gpu/drm/i915/intel_panel.c +++ b/drivers/gpu/drm/i915/intel_panel.c
@@ -1924,30 +1924,24 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel) @@ -1928,30 +1928,24 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel)
int intel_panel_init(struct intel_panel *panel, int intel_panel_init(struct intel_panel *panel,
struct drm_display_mode *fixed_mode, struct drm_display_mode *fixed_mode,
@ -238,5 +238,5 @@ index fa6831f8c004..c0ac6d6bf8ef 100644
drm_mode_destroy(intel_connector->base.dev, drm_mode_destroy(intel_connector->base.dev,
panel->downclock_mode); panel->downclock_mode);
-- --
2.17.0 2.17.1

View File

@ -0,0 +1,132 @@
From 1e45a10dbea00f3a9ead21a9b3d25ad00021261d Mon Sep 17 00:00:00 2001
Message-Id: <1e45a10dbea00f3a9ead21a9b3d25ad00021261d.1528777685.git.jan.steffens@gmail.com>
In-Reply-To: <9a5adbc45b1c7d43fe4b27936f2a6939660617a1.1528777685.git.jan.steffens@gmail.com>
References: <9a5adbc45b1c7d43fe4b27936f2a6939660617a1.1528777685.git.jan.steffens@gmail.com>
From: Mika Westerberg <mika.westerberg@linux.intel.com>
Date: Tue, 22 May 2018 14:16:50 +0300
Subject: [PATCH 3/3] ACPI / watchdog: Prefer iTCO_wdt always when WDAT table
uses RTC SRAM
After we added quirk for Lenovo Z50-70 it turns out there are at least
two more systems where WDAT table includes instructions accessing RTC
SRAM. Instead of quirking each system separately, look for such
instructions in the table and automatically prefer iTCO_wdt if found.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=199033
Reported-by: Arnold Guy <aurnoldg@gmail.com>
Reported-by: Alois Nespor <nespor@fssp.cz>
Reported-by: Yury Pakin <zxwarior@gmail.com>
Reported-by: Ihor Chyhin <ihorchyhin@ukr.net>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Guenter Roeck <linux@roeck-us.net>
---
drivers/acpi/acpi_watchdog.c | 72 ++++++++++++++++++++++--------------
1 file changed, 45 insertions(+), 27 deletions(-)
diff --git a/drivers/acpi/acpi_watchdog.c b/drivers/acpi/acpi_watchdog.c
index 4bde16fb97d8..95600309ce42 100644
--- a/drivers/acpi/acpi_watchdog.c
+++ b/drivers/acpi/acpi_watchdog.c
@@ -12,54 +12,72 @@
#define pr_fmt(fmt) "ACPI: watchdog: " fmt
#include <linux/acpi.h>
-#include <linux/dmi.h>
#include <linux/ioport.h>
#include <linux/platform_device.h>
#include "internal.h"
-static const struct dmi_system_id acpi_watchdog_skip[] = {
- {
- /*
- * On Lenovo Z50-70 there are two issues with the WDAT
- * table. First some of the instructions use RTC SRAM
- * to store persistent information. This does not work well
- * with Linux RTC driver. Second, more important thing is
- * that the instructions do not actually reset the system.
- *
- * On this particular system iTCO_wdt seems to work just
- * fine so we prefer that over WDAT for now.
- *
- * See also https://bugzilla.kernel.org/show_bug.cgi?id=199033.
- */
- .ident = "Lenovo Z50-70",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
- DMI_MATCH(DMI_PRODUCT_NAME, "20354"),
- DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Z50-70"),
- },
- },
- {}
-};
+#ifdef CONFIG_RTC_MC146818_LIB
+#include <linux/mc146818rtc.h>
+
+/*
+ * There are several systems where the WDAT table is accessing RTC SRAM to
+ * store persistent information. This does not work well with the Linux RTC
+ * driver so on those systems we skip WDAT driver and prefer iTCO_wdt
+ * instead.
+ *
+ * See also https://bugzilla.kernel.org/show_bug.cgi?id=199033.
+ */
+static bool acpi_watchdog_uses_rtc(const struct acpi_table_wdat *wdat)
+{
+ const struct acpi_wdat_entry *entries;
+ int i;
+
+ entries = (struct acpi_wdat_entry *)(wdat + 1);
+ for (i = 0; i < wdat->entries; i++) {
+ const struct acpi_generic_address *gas;
+
+ gas = &entries[i].register_region;
+ if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_IO) {
+ switch (gas->address) {
+ case RTC_PORT(0):
+ case RTC_PORT(1):
+ case RTC_PORT(2):
+ case RTC_PORT(3):
+ return true;
+ }
+ }
+ }
+
+ return false;
+}
+#else
+static bool acpi_watchdog_uses_rtc(const struct acpi_table_wdat *wdat)
+{
+ return false;
+}
+#endif
static const struct acpi_table_wdat *acpi_watchdog_get_wdat(void)
{
const struct acpi_table_wdat *wdat = NULL;
acpi_status status;
if (acpi_disabled)
return NULL;
- if (dmi_check_system(acpi_watchdog_skip))
- return NULL;
-
status = acpi_get_table(ACPI_SIG_WDAT, 0,
(struct acpi_table_header **)&wdat);
if (ACPI_FAILURE(status)) {
/* It is fine if there is no WDAT */
return NULL;
}
+ if (acpi_watchdog_uses_rtc(wdat)) {
+ pr_info("Skipping WDAT on this system because it uses RTC SRAM\n");
+ return NULL;
+ }
+
return wdat;
}
--
2.17.1

View File

@ -2,8 +2,8 @@
# Maintainer: Mark Weiman <markzz@archlinux.net> # Maintainer: Mark Weiman <markzz@archlinux.net>
pkgbase=linux-vfio pkgbase=linux-vfio
_srcname=linux-4.16 _srcname=linux-4.17
pkgver=4.16.13 pkgver=4.17.2
pkgrel=1 pkgrel=1
arch=('x86_64') arch=('x86_64')
url="https://www.kernel.org/" url="https://www.kernel.org/"
@ -18,8 +18,8 @@ source=(
90-linux.hook # pacman hook for initramfs regeneration 90-linux.hook # pacman hook for initramfs regeneration
linux.preset # standard config files for mkinitcpio ramdisk linux.preset # standard config files for mkinitcpio ramdisk
0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch 0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
0002-ACPI-watchdog-Prefer-iTCO_wdt-on-Lenovo-Z50-70.patch 0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
0003-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch 0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
# patches for pci passthrough # patches for pci passthrough
add-acs-overrides.patch add-acs-overrides.patch
i915-vga-arbiter.patch i915-vga-arbiter.patch
@ -29,19 +29,19 @@ validpgpkeys=(
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
) )
sha256sums=('63f6dc8e3c9f3a0273d5d6f4dca38a2413ca3a5f689329d05b750e4c87bb21b9' sha256sums=('9faa1dd896eaea961dc6e886697c0b3301277102e5bc976b2758f9a62d3ccd13'
'SKIP' 'SKIP'
'9efa0a74eb61240da53bd01a3a23759e0065811de53d22de7d679eabf847f323' 'a528b102daad9d3072b328f68d4fc7b4eff7641ad301d1a54e5b8f5385efeb0b'
'SKIP' 'SKIP'
'8566a49997faf3f8678440c52578a7a0ee901e598d3b67d3bee3799fb92e8f86' '0269d9a56f0d0306c9bd5c179a7e32214b0a1c082d3bca581661203b27305f17'
'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21' 'ae2e95db94ef7176207c690224169594d49445e04249d2499e9d2fbc117a0b21'
'75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919' '75f99f5239e03238f88d1a834c50043ec32b1dc568f2cc291b07d04718483919'
'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65' 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65'
'8d6a5f34b3d79e75b0cb888c6bcf293f84c5cbb2757f7bdadafee7e0ea77d7dd' 'e3c08f9b91611186e5ec579187ecea2a0143e5c2dc7ffc30ac6ea6e2b6d130fd'
'2454c1ee5e0f5aa119fafb4c8d3b402c5e4e10b2e868fe3e4ced3b1e2aa48446' '5403dead9161344b2c01027526146a250147680f4a2d32a54d40c55fc1becc8a'
'8114295b8c07795a15b9f8eafb0f515c34661a1e05512da818a34581dd30f87e' 'd55e7de60b12bca26ded4c1bb8eb5860a9092374914a201a0f6a0ed2849d099f'
'abe269c6596b54a412bd8415472153f419026d4f367fa3ee1ebc8693ac66915d' '8ab566ab93723bb1c372e8f62f8cd714e6a16fc414d703ba4d255f132cffadd8'
'fe3d47fe6f54d4a82c869fd29484d3f097b5906ef4d456409961a8dd647daad0' 'fc1734c1d24aca66015d93f8636afd52afa0f939516d83efb3457da6b5044944'
'429ed1161b9b178df97e53dc6439f770e5198b5544f7421d0e48a3dd77fe371f') '429ed1161b9b178df97e53dc6439f770e5198b5544f7421d0e48a3dd77fe371f')
_kernelname=${pkgbase#linux} _kernelname=${pkgbase#linux}
@ -59,11 +59,11 @@ prepare() {
# disable USER_NS for non-root users by default # disable USER_NS for non-root users by default
patch -Np1 -i ../0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch patch -Np1 -i ../0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch
# https://bugs.archlinux.org/task/56780
patch -Np1 -i ../0002-ACPI-watchdog-Prefer-iTCO_wdt-on-Lenovo-Z50-70.patch
# https://bugs.archlinux.org/task/56711 # https://bugs.archlinux.org/task/56711
patch -Np1 -i ../0003-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch patch -Np1 -i ../0002-Revert-drm-i915-edp-Allow-alternate-fixed-mode-for-e.patch
# https://bugs.archlinux.org/task/56780
patch -Np1 -i ../0003-ACPI-watchdog-Prefer-iTCO_wdt-always-when-WDAT-table.patch
# patches for vga arbiter fix in intel systems # patches for vga arbiter fix in intel systems
patch -p1 -i "${srcdir}/i915-vga-arbiter.patch" patch -p1 -i "${srcdir}/i915-vga-arbiter.patch"

View File

@ -1,7 +1,8 @@
From 8afeb76790377fe42c4c91c9cb7d311078e9a7ae Mon Sep 17 00:00:00 2001 From 220e23ae8d0d346e1b16d843649dd137ba76861c Mon Sep 17 00:00:00 2001
From: Mark Weiman <mark.weiman@markzz.com> From: Mark Weiman <mark.weiman@markzz.com>
Date: Fri, 20 Apr 2018 13:17:23 -0400 Date: Sun, 24 Jun 2018 12:31:25 -0400
Subject: [PATCH] pci: Enable overrides for missing ACS capabilities (4.16) Subject: [PATCH] [PATCH] pci: Enable overrides for missing ACS capabilities
(4.17)
This an updated version of Alex Williamson's patch from: This an updated version of Alex Williamson's patch from:
https://lkml.org/lkml/2013/5/30/513 https://lkml.org/lkml/2013/5/30/513
@ -52,10 +53,10 @@ Signed-off-by: Mark Weiman <mark.weiman@markzz.com>
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 1d1d53f85ddd..fa7110ca99e2 100644 index f2040d46f095..33ccd3daa8bc 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
@@ -2983,6 +2983,15 @@ @@ -3019,6 +3019,15 @@
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.
@ -72,10 +73,10 @@ index 1d1d53f85ddd..fa7110ca99e2 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 46d47bd6ca1f..90aaf6ae8544 100644 index 2990ad1e7c99..962372b61e26 100644
--- a/drivers/pci/quirks.c --- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c
@@ -3687,6 +3687,106 @@ static int __init pci_apply_final_quirks(void) @@ -3533,6 +3533,106 @@ static int __init pci_apply_final_quirks(void)
fs_initcall_sync(pci_apply_final_quirks); fs_initcall_sync(pci_apply_final_quirks);
@ -182,14 +183,14 @@ index 46d47bd6ca1f..90aaf6ae8544 100644
/* /*
* Following are device-specific reset methods which can be used to * Following are device-specific reset methods which can be used to
* reset a single function if other methods (e.g. FLR, PM D0->D3) are * reset a single function if other methods (e.g. FLR, PM D0->D3) are
@@ -4523,6 +4623,7 @@ static const struct pci_dev_acs_enabled { @@ -4372,6 +4472,7 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs }, { PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
/* APM X-Gene */ /* APM X-Gene */
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs }, { PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides }, + { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides },
{ 0 } /* Ampere Computing */
}; { PCI_VENDOR_ID_AMPERE, 0xE005, pci_quirk_xgene_acs },
{ PCI_VENDOR_ID_AMPERE, 0xE006, pci_quirk_xgene_acs },
-- --
2.17.0 2.17.1

326
config

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
From 5918c8e3a6d12e391f05ea85b24a19a899dd16b1 Mon Sep 17 00:00:00 2001 From d6c4ee204c18e0f15ac425928c594ec4e901d0c8 Mon Sep 17 00:00:00 2001
From: Mark Weiman <mark.weiman@markzz.com> From: Mark Weiman <mark.weiman@markzz.com>
Date: Fri, 20 Apr 2018 13:16:39 -0400 Date: Sun, 24 Jun 2018 12:43:14 -0400
Subject: [PATCH] i915: Add module option to support VGA arbiter on HD devices Subject: [PATCH] [PATCH] i915: Add module option to support VGA arbiter on HD
(4.16) devices (4.17)
This is an updated version of Alex Williamson's patch from: This is an updated version of Alex Williamson's patch from:
https://lkml.org/lkml/2014/5/9/517 https://lkml.org/lkml/2014/5/9/517
@ -37,18 +37,18 @@ until after vgacon->fbcon handoff.
Signed-off-by: Mark Weiman <mark.weiman@markzz.com> Signed-off-by: Mark Weiman <mark.weiman@markzz.com>
--- ---
drivers/gpu/drm/i915/i915_drv.c | 22 ++++++++++++++++--- drivers/gpu/drm/i915/i915_drv.c | 23 +++++++++++++++----
drivers/gpu/drm/i915/i915_params.c | 3 +++ drivers/gpu/drm/i915/i915_params.c | 3 +++
drivers/gpu/drm/i915/i915_params.h | 1 + drivers/gpu/drm/i915/i915_params.h | 1 +
drivers/gpu/drm/i915/intel_display.c | 33 ++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_display.c | 33 ++++++++++++++++++++++++++++
drivers/gpu/drm/i915/intel_drv.h | 1 + drivers/gpu/drm/i915/intel_drv.h | 1 +
5 files changed, 57 insertions(+), 3 deletions(-) 5 files changed, 57 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 2f5209de0391..7c875c651236 100644 index 3b4daafebdcb..1c79e6c3c54e 100644
--- a/drivers/gpu/drm/i915/i915_drv.c --- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -647,10 +647,20 @@ static int i915_load_modeset_init(struct drm_device *dev) @@ -665,11 +665,20 @@ static int i915_load_modeset_init(struct drm_device *dev)
* If we are a secondary display controller (!PCI_DISPLAY_CLASS_VGA), * If we are a secondary display controller (!PCI_DISPLAY_CLASS_VGA),
* then we do not take part in VGA arbitration and the * then we do not take part in VGA arbitration and the
* vga_client_register() fails with -ENODEV. * vga_client_register() fails with -ENODEV.
@ -63,16 +63,17 @@ index 2f5209de0391..7c875c651236 100644
- ret = vga_client_register(pdev, dev_priv, NULL, i915_vga_set_decode); - ret = vga_client_register(pdev, dev_priv, NULL, i915_vga_set_decode);
- if (ret && ret != -ENODEV) - if (ret && ret != -ENODEV)
- goto out; - goto out;
-
+ if (!i915_modparams.enable_hd_vgaarb || !HAS_PCH_SPLIT(dev_priv)) { + if (!i915_modparams.enable_hd_vgaarb || !HAS_PCH_SPLIT(dev_priv)) {
+ ret = vga_client_register(pdev, dev, NULL, + ret = vga_client_register(pdev, dev, NULL,
+ i915_vga_set_decode); + i915_vga_set_decode);
+ if (ret && ret != -ENODEV) + if (ret && ret != -ENODEV)
+ goto out; + goto out;
+ } + }
intel_register_dsm_handler(); intel_register_dsm_handler();
@@ -692,6 +702,12 @@ static int i915_load_modeset_init(struct drm_device *dev) ret = vga_switcheroo_register_client(pdev, &i915_switcheroo_ops, false);
@@ -710,6 +719,12 @@ static int i915_load_modeset_init(struct drm_device *dev)
if (ret) if (ret)
goto cleanup_gem; goto cleanup_gem;
@ -86,7 +87,7 @@ index 2f5209de0391..7c875c651236 100644
intel_hpd_init(dev_priv); intel_hpd_init(dev_priv);
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
index b5f3eb4fa8a3..8fe95b729c22 100644 index 08108ce5be21..9b0f44dcfb37 100644
--- a/drivers/gpu/drm/i915/i915_params.c --- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c
@@ -133,6 +133,9 @@ i915_param_named(disable_display, bool, 0400, @@ -133,6 +133,9 @@ i915_param_named(disable_display, bool, 0400,
@ -100,22 +101,22 @@ index b5f3eb4fa8a3..8fe95b729c22 100644
"Enable the MMIO debug code for the first N failures (default: off). " "Enable the MMIO debug code for the first N failures (default: off). "
"This may negatively affect performance."); "This may negatively affect performance.");
diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h
index c96360398072..f76b34e91ea0 100644 index 430f5f9d0ff4..52e9081ad39d 100644
--- a/drivers/gpu/drm/i915/i915_params.h --- a/drivers/gpu/drm/i915/i915_params.h
+++ b/drivers/gpu/drm/i915/i915_params.h +++ b/drivers/gpu/drm/i915/i915_params.h
@@ -58,6 +58,7 @@ struct drm_printer; @@ -58,6 +58,7 @@ struct drm_printer;
/* leave bools at the end to not create holes */ \ /* leave bools at the end to not create holes */ \
param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \ param(bool, alpha_support, IS_ENABLED(CONFIG_DRM_I915_ALPHA_SUPPORT)) \
param(bool, enable_cmd_parser, true) \ param(bool, enable_cmd_parser, true) \
+ param(bool, enable_hd_vgaarb, false) \ + param(bool, enable_hd_vgaarb, false) \
param(bool, enable_hangcheck, true) \ param(bool, enable_hangcheck, true) \
param(bool, fastboot, false) \ param(bool, fastboot, false) \
param(bool, prefault_disable, false) \ param(bool, prefault_disable, false) \
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index f288bcc7be22..9d6e3d35a2ff 100644 index 56004ffbd8bb..16bc85180ec3 100644
--- a/drivers/gpu/drm/i915/intel_display.c --- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c
@@ -14335,6 +14335,36 @@ static void i915_disable_vga(struct drm_i915_private *dev_priv) @@ -14506,6 +14506,36 @@ static void i915_disable_vga(struct drm_i915_private *dev_priv)
POSTING_READ(vga_reg); POSTING_READ(vga_reg);
} }
@ -152,28 +153,28 @@ index f288bcc7be22..9d6e3d35a2ff 100644
void intel_modeset_init_hw(struct drm_device *dev) void intel_modeset_init_hw(struct drm_device *dev)
{ {
struct drm_i915_private *dev_priv = to_i915(dev); struct drm_i915_private *dev_priv = to_i915(dev);
@@ -14854,6 +14884,7 @@ void i915_redisable_vga_power_on(struct drm_i915_private *dev_priv) @@ -15025,6 +15055,7 @@ void i915_redisable_vga_power_on(struct drm_i915_private *dev_priv)
if (!(I915_READ(vga_reg) & VGA_DISP_DISABLE)) { if (!(I915_READ(vga_reg) & VGA_DISP_DISABLE)) {
DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n"); DRM_DEBUG_KMS("Something enabled VGA plane, disabling it\n");
i915_disable_vga(dev_priv); i915_disable_vga(dev_priv);
+ i915_disable_vga_mem(dev_priv); + i915_disable_vga_mem(dev_priv);
} }
} }
@@ -15225,6 +15256,8 @@ void intel_modeset_cleanup(struct drm_device *dev) @@ -15402,6 +15433,8 @@ void intel_modeset_cleanup(struct drm_device *dev)
{ {
struct drm_i915_private *dev_priv = to_i915(dev); struct drm_i915_private *dev_priv = to_i915(dev);
+ i915_enable_vga_mem(dev_priv); + i915_enable_vga_mem(dev_priv);
+ +
flush_work(&dev_priv->atomic_helper.free_work); flush_work(&dev_priv->atomic_helper.free_work);
WARN_ON(!llist_empty(&dev_priv->atomic_helper.free_list)); WARN_ON(!llist_empty(&dev_priv->atomic_helper.free_list));
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 30f791f89d64..a922629bf376 100644 index a80fbad9be0f..1bc005cc168b 100644
--- a/drivers/gpu/drm/i915/intel_drv.h --- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1348,6 +1348,7 @@ int vlv_get_cck_clock_hpll(struct drm_i915_private *dev_priv, @@ -1441,6 +1441,7 @@ int vlv_get_cck_clock_hpll(struct drm_i915_private *dev_priv,
const char *name, u32 reg); const char *name, u32 reg);
void lpt_disable_pch_transcoder(struct drm_i915_private *dev_priv); void lpt_disable_pch_transcoder(struct drm_i915_private *dev_priv);
void lpt_disable_iclkip(struct drm_i915_private *dev_priv); void lpt_disable_iclkip(struct drm_i915_private *dev_priv);
@ -182,5 +183,5 @@ index 30f791f89d64..a922629bf376 100644
unsigned int intel_fb_xy_to_linear(int x, int y, unsigned int intel_fb_xy_to_linear(int x, int y,
const struct intel_plane_state *state, const struct intel_plane_state *state,
-- --
2.17.0 2.17.1