diff --git a/.gitignore b/.gitignore index 19d380f..8da29fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ SOURCES/intel-gpu-tools-1.9.tar.bz2 -SOURCES/xf86-video-intel-20150615.tar.bz2 +SOURCES/xf86-video-intel-20151206.tar.bz2 diff --git a/.xorg-x11-drv-intel.metadata b/.xorg-x11-drv-intel.metadata index bc921ff..3cd7de4 100644 --- a/.xorg-x11-drv-intel.metadata +++ b/.xorg-x11-drv-intel.metadata @@ -1,2 +1,2 @@ 396e9f50283681d50364b86a7af9988c56148ac8 SOURCES/intel-gpu-tools-1.9.tar.bz2 -d10a548e95276136a7a2375a3dfd3eaae9e3178e SOURCES/xf86-video-intel-20150615.tar.bz2 +de48cb5a634b1ff3948b54fbaca7d0233c2da664 SOURCES/xf86-video-intel-20151206.tar.bz2 diff --git a/SOURCES/0001-Sync-PCI-ids-with-latest-kernel-adding-SKL-GT4.patch b/SOURCES/0001-Sync-PCI-ids-with-latest-kernel-adding-SKL-GT4.patch new file mode 100644 index 0000000..9a6ca21 --- /dev/null +++ b/SOURCES/0001-Sync-PCI-ids-with-latest-kernel-adding-SKL-GT4.patch @@ -0,0 +1,48 @@ +From 3a057beca9f290854dd22cd4d2c0fed01c82dd78 Mon Sep 17 00:00:00 2001 +From: Damien Lespiau +Date: Tue, 12 Jan 2016 15:01:04 +0000 +Subject: [PATCH] Sync PCI ids with latest kernel, adding SKL GT4 + +Syncs with: + + commit 15620206ae87ba9643ffa6f5ddb5471be7192006 + Author: Mika Kuoppala + Date: Fri Nov 6 14:11:16 2015 +0200 + + drm/i915/skl: Add SKL GT4 PCI IDs + +Signed-off-by: Damien Lespiau +--- + src/i915_pciids.h | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/src/i915_pciids.h b/src/i915_pciids.h +index f1a113e..f970209 100644 +--- a/src/i915_pciids.h ++++ b/src/i915_pciids.h +@@ -279,12 +279,19 @@ + #define INTEL_SKL_GT3_IDS(info) \ + INTEL_VGA_DEVICE(0x1926, info), /* ULT GT3 */ \ + INTEL_VGA_DEVICE(0x192B, info), /* Halo GT3 */ \ +- INTEL_VGA_DEVICE(0x192A, info) /* SRV GT3 */ \ ++ INTEL_VGA_DEVICE(0x192A, info) /* SRV GT3 */ + +-#define INTEL_SKL_IDS(info) \ ++#define INTEL_SKL_GT4_IDS(info) \ ++ INTEL_VGA_DEVICE(0x1932, info), /* DT GT4 */ \ ++ INTEL_VGA_DEVICE(0x193B, info), /* Halo GT4 */ \ ++ INTEL_VGA_DEVICE(0x193D, info), /* WKS GT4 */ \ ++ INTEL_VGA_DEVICE(0x193A, info) /* SRV GT4 */ ++ ++#define INTEL_SKL_IDS(info) \ + INTEL_SKL_GT1_IDS(info), \ + INTEL_SKL_GT2_IDS(info), \ +- INTEL_SKL_GT3_IDS(info) ++ INTEL_SKL_GT3_IDS(info), \ ++ INTEL_SKL_GT4_IDS(info) + + #define INTEL_BXT_IDS(info) \ + INTEL_VGA_DEVICE(0x0A84, info), \ +-- +2.9.3 + diff --git a/SOURCES/0001-pciids-Add-more-Kabylake-PCI-IDs.patch b/SOURCES/0001-pciids-Add-more-Kabylake-PCI-IDs.patch new file mode 100644 index 0000000..3b2706d --- /dev/null +++ b/SOURCES/0001-pciids-Add-more-Kabylake-PCI-IDs.patch @@ -0,0 +1,47 @@ +From 97be00cb38ac508acc1dbbfda4835d32b0445fa4 Mon Sep 17 00:00:00 2001 +From: Rodrigo Vivi +Date: Tue, 28 Jun 2016 17:02:31 -0700 +Subject: [PATCH 1/2] pciids: Add more Kabylake PCI IDs. + +The spec has been updated adding new PCI IDs. + +In parity with kernel: +commit 33d9391d3020e069dca98fa87a604c037beb2b9e +Author: Rodrigo Vivi +Date: Thu Jun 23 14:50:35 2016 -0700 + + drm/i915: Add more Kabylake PCI IDs. + +Cc: Chris Wilson +Reviewed-by: Dhinakaran Pandiyan +Signed-off-by: Rodrigo Vivi +Signed-off-by: Chris Wilson +--- + src/i915_pciids.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/i915_pciids.h b/src/i915_pciids.h +index 9094599..87dde1c 100644 +--- a/src/i915_pciids.h ++++ b/src/i915_pciids.h +@@ -309,6 +309,7 @@ + INTEL_VGA_DEVICE(0x5906, info), /* ULT GT1 */ \ + INTEL_VGA_DEVICE(0x590E, info), /* ULX GT1 */ \ + INTEL_VGA_DEVICE(0x5902, info), /* DT GT1 */ \ ++ INTEL_VGA_DEVICE(0x5908, info), /* Halo GT1 */ \ + INTEL_VGA_DEVICE(0x590B, info), /* Halo GT1 */ \ + INTEL_VGA_DEVICE(0x590A, info) /* SRV GT1 */ + +@@ -322,7 +323,9 @@ + INTEL_VGA_DEVICE(0x591D, info) /* WKS GT2 */ + + #define INTEL_KBL_GT3_IDS(info) \ ++ INTEL_VGA_DEVICE(0x5923, info), /* ULT GT3 */ \ + INTEL_VGA_DEVICE(0x5926, info), /* ULT GT3 */ \ ++ INTEL_VGA_DEVICE(0x5927, info), /* ULT GT3 */ \ + INTEL_VGA_DEVICE(0x592B, info), /* Halo GT3 */ \ + INTEL_VGA_DEVICE(0x592A, info) /* SRV GT3 */ + +-- +2.7.4 + diff --git a/SOURCES/0002-pciids-Removing-PCI-IDs-that-are-no-longer-listed-as.patch b/SOURCES/0002-pciids-Removing-PCI-IDs-that-are-no-longer-listed-as.patch new file mode 100644 index 0000000..0523e5b --- /dev/null +++ b/SOURCES/0002-pciids-Removing-PCI-IDs-that-are-no-longer-listed-as.patch @@ -0,0 +1,55 @@ +From 784dc0228a61661ecb1c3e7b2279bf3811d1309d Mon Sep 17 00:00:00 2001 +From: Rodrigo Vivi +Date: Tue, 28 Jun 2016 17:02:32 -0700 +Subject: [PATCH 2/2] pciids: Removing PCI IDs that are no longer listed as + Kabylake. + +This is unusual. Usually IDs listed on early stages of platform +definition are kept there as reserved for later use. + +However these IDs here are not listed anymore in any of steppings +and devices IDs tables for Kabylake on configurations overview +section of BSpec. + +So it is better removing them before they become used in any +other future platform. + +It reflects kernel: +commit a922eb8d4581c883c37ce6e12dca9ff2cb1ea723 +Author: Rodrigo Vivi +Date: Thu Jun 23 14:50:36 2016 -0700 + drm/i915: Removing PCI IDs that are no longer listed as Kabylake. + +Cc: Chris Wilson +Reviewed-by: Dhinakaran Pandiyan +Signed-off-by: Rodrigo Vivi +Signed-off-by: Chris Wilson +--- + src/i915_pciids.h | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) + +diff --git a/src/i915_pciids.h b/src/i915_pciids.h +index 87dde1c..33466bf 100644 +--- a/src/i915_pciids.h ++++ b/src/i915_pciids.h +@@ -325,15 +325,10 @@ + #define INTEL_KBL_GT3_IDS(info) \ + INTEL_VGA_DEVICE(0x5923, info), /* ULT GT3 */ \ + INTEL_VGA_DEVICE(0x5926, info), /* ULT GT3 */ \ +- INTEL_VGA_DEVICE(0x5927, info), /* ULT GT3 */ \ +- INTEL_VGA_DEVICE(0x592B, info), /* Halo GT3 */ \ +- INTEL_VGA_DEVICE(0x592A, info) /* SRV GT3 */ ++ INTEL_VGA_DEVICE(0x5927, info) /* ULT GT3 */ + + #define INTEL_KBL_GT4_IDS(info) \ +- INTEL_VGA_DEVICE(0x5932, info), /* DT GT4 */ \ +- INTEL_VGA_DEVICE(0x593B, info), /* Halo GT4 */ \ +- INTEL_VGA_DEVICE(0x593A, info), /* SRV GT4 */ \ +- INTEL_VGA_DEVICE(0x593D, info) /* WKS GT4 */ ++ INTEL_VGA_DEVICE(0x593B, info) /* Halo GT4 */ + + #define INTEL_KBL_IDS(info) \ + INTEL_KBL_GT1_IDS(info), \ +-- +2.7.4 + diff --git a/SOURCES/Revert-sna-Refresh-last-detection-timestamp-on-hotpl.patch b/SOURCES/Revert-sna-Refresh-last-detection-timestamp-on-hotpl.patch new file mode 100644 index 0000000..d75f5c9 --- /dev/null +++ b/SOURCES/Revert-sna-Refresh-last-detection-timestamp-on-hotpl.patch @@ -0,0 +1,74 @@ +From 9b4fe64e39d48e15b5b4aee06d984503473251ee Mon Sep 17 00:00:00 2001 +From: Lyude Paul +Date: Wed, 18 May 2016 17:16:33 -0400 +Subject: [PATCH] Revert "sna: Refresh last detection timestamp on hotplug + notifies" + +DRM does not always update the status of each connector during a +hotplug event, and it's generally expected that userspace is supposed to +handle that by reprobing. This happens in a couple situations: +suspend/resume, MST hotplugs, and probably a few others. As a result, +making this assumption actually breaks MST hotplugging. + +Signed-off-by: Lyude +--- + src/sna/sna_display.c | 17 +++++------------ + 1 file changed, 5 insertions(+), 12 deletions(-) + +diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c +index 16d0321..6299d1e 100644 +--- a/src/sna/sna_display.c ++++ b/src/sna/sna_display.c +@@ -5038,14 +5038,11 @@ output_check_status(struct sna *sna, struct sna_output *output) + switch (compat_conn.conn.connection) { + case DRM_MODE_CONNECTED: + status = XF86OutputStatusConnected; +- break; + case DRM_MODE_DISCONNECTED: + status = XF86OutputStatusDisconnected; +- break; + default: + case DRM_MODE_UNKNOWNCONNECTION: + status = XF86OutputStatusUnknown; +- break; + } + return output->status == status; + } +@@ -5055,7 +5052,7 @@ void sna_mode_discover(struct sna *sna, bool tell) + ScreenPtr screen = xf86ScrnToScreen(sna->scrn); + xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(sna->scrn); + struct drm_mode_card_res res; +- uint32_t connectors[32], now; ++ uint32_t connectors[32]; + unsigned changed = 0; + unsigned serial; + int i, j; +@@ -5087,7 +5084,6 @@ void sna_mode_discover(struct sna *sna, bool tell) + if (serial == 0) + serial = ++sna->mode.serial; + +- now = GetTimeInMillis(); + for (i = 0; i < res.count_connectors; i++) { + DBG(("%s: connector[%d] = %d\n", __FUNCTION__, i, connectors[i])); + for (j = 0; j < sna->mode.num_real_output; j++) { +@@ -5113,13 +5109,10 @@ void sna_mode_discover(struct sna *sna, bool tell) + continue; + + if (sna_output->serial == serial) { +- if (output_check_status(sna, sna_output)) { +- DBG(("%s: output %s (id=%d), retained state\n", +- __FUNCTION__, output->name, sna_output->id)); +- sna_output->last_detect = now; +- } else { +- DBG(("%s: output %s (id=%d), changed state, reprobing\n", +- __FUNCTION__, output->name, sna_output->id)); ++ if (!output_check_status(sna, sna_output)) { ++ DBG(("%s: output %s (id=%d), changed state, reprobing]\n", ++ __FUNCTION__, output->name, sna_output->id, ++ sna_output->serial, serial)); + sna_output->last_detect = 0; + changed |= 4; + } +-- +2.5.5 + diff --git a/SOURCES/igt-stat.patch b/SOURCES/igt-stat.patch new file mode 100644 index 0000000..1465f62 --- /dev/null +++ b/SOURCES/igt-stat.patch @@ -0,0 +1,11 @@ +diff -up intel-gpu-tools-1.9/tests/testdisplay_hotplug.c.jx intel-gpu-tools-1.9/tests/testdisplay_hotplug.c +--- intel-gpu-tools-1.9/tests/testdisplay_hotplug.c.jx 2014-12-12 11:08:14.000000000 -0500 ++++ intel-gpu-tools-1.9/tests/testdisplay_hotplug.c 2015-06-03 15:43:55.127775543 -0400 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include "testdisplay.h" + #ifdef HAVE_CONFIG_H diff --git a/SOURCES/intel-gcc-pr65873.patch b/SOURCES/intel-gcc-pr65873.patch new file mode 100644 index 0000000..ed05bce --- /dev/null +++ b/SOURCES/intel-gcc-pr65873.patch @@ -0,0 +1,12 @@ +diff -up xf86-video-intel-20150520/src/sna/compiler.h.jx xf86-video-intel-20150520/src/sna/compiler.h +--- xf86-video-intel-20150520/src/sna/compiler.h.jx 2015-05-19 07:44:26.000000000 -0400 ++++ xf86-video-intel-20150520/src/sna/compiler.h 2015-05-20 12:53:54.797918726 -0400 +@@ -64,7 +64,7 @@ + #endif + + #if HAS_GCC(4, 6) && defined(__OPTIMIZE__) +-#define fast __attribute__((optimize("Ofast"))) ++#define fast __attribute__((optimize("O3"))) + #else + #define fast + #endif diff --git a/SPECS/xorg-x11-drv-intel.spec b/SPECS/xorg-x11-drv-intel.spec index 4bcce21..f106a09 100644 --- a/SPECS/xorg-x11-drv-intel.spec +++ b/SPECS/xorg-x11-drv-intel.spec @@ -1,9 +1,11 @@ %define moduledir %(pkg-config xorg-server --variable=moduledir ) %define driverdir %{moduledir}/drivers %define gputoolsver 1.9 -%define gitdate 20150615 +%define gitdate 20151206 %define gitrev .%{gitdate} +%undefine _hardened_build + %if 0%{?rhel} == 7 %define rhel7 1 %endif @@ -26,7 +28,7 @@ Summary: Xorg X11 Intel video driver Name: xorg-x11-drv-intel Version: 2.99.917 -Release: 8%{?gitrev}%{?dist} +Release: 22%{?gitrev}%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X Hardware Support @@ -40,6 +42,18 @@ Source1: make-intel-gpu-tools-snapshot.sh Source3: http://xorg.freedesktop.org/archive/individual/app/intel-gpu-tools-%{gputoolsver}.tar.bz2 Source4: make-git-snapshot.sh +Patch0: intel-gcc-pr65873.patch +Patch1: igt-stat.patch + +# Fixes for not picking up MST hotplugs +Patch2: Revert-sna-Refresh-last-detection-timestamp-on-hotpl.patch + +# KBL PCI IDs: +Patch10: 0001-pciids-Add-more-Kabylake-PCI-IDs.patch +Patch11: 0002-pciids-Removing-PCI-IDs-that-are-no-longer-listed-as.patch + +# SKL GT4 PCI IDs: +Patch20: 0001-Sync-PCI-ids-with-latest-kernel-adding-SKL-GT4.patch ExclusiveArch: %{ix86} x86_64 ia64 @@ -56,6 +70,7 @@ BuildRequires: libXrandr-devel BuildRequires: libXrender-devel BuildRequires: libXtst-devel BuildRequires: libXvMC-devel +BuildRequires: libXfont-devel BuildRequires: libxshmfence-devel BuildRequires: mesa-libGL-devel >= 6.5-9 BuildRequires: libdrm-devel >= 2.4.25 @@ -97,11 +112,21 @@ Debugging tools for Intel graphics chips %prep %setup -q -n xf86-video-intel-%{?gitdate:%{gitdate}}%{!?gitdate:%{dirsuffix}} -b3 +%patch0 -p1 -b .gcc +%patch2 -p1 -b .mst-hpd-fix + +%patch10 -p1 -b .kblid1 +%patch11 -p1 -b .kblid2 +%patch20 -p1 -b .sklgt4 + +pushd ../intel-gpu-tools-%{gputoolsver} +%patch1 -p1 -b .stat +popd %build autoreconf -f -i -v %configure %{?kmsonly:--enable-kms-only} --enable-tools -make %{?_smp_mflags} +make %{?_smp_mflags} V=1 pushd ../intel-gpu-tools-%{gputoolsver} # this is missing from the tarbal, having it empty is ok @@ -159,11 +184,59 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libI*XvMC.so %{_mandir}/man1/intel_*.1* %changelog -* Mon Jun 15 2015 Dave Airlie 2.99.917-8 -- update with newer snapshot - fixes some PRIME issues +* Tue Sep 06 2016 Adam Jackson - 2.99.917-22.20151109 +- Update more skl pci ids + +* Tue Aug 09 2016 Rob Clark - 2.99.917-21.20151109 +- update kbl pci ids + +* Wed May 18 2016 Lyude Paul - 2.99.917-20.20151109 +- Update to upstream package. +- Fix trailing whitespace +- Add some patches to fix issues with ignoring DP MST hotplugs + +* Sun Dec 06 2015 Adel Gadllah - 2.99.917-19.20151109 +- Update to 20151206 snapshot + +* Tue Nov 17 2015 Adel Gadllah - 2.99.917-18.20151109 +- Reenable DRI3 - we ship xserver 1.18 now + +* Mon Nov 09 2015 Kevin Fenzi - 2.99.917-17.20151109 +- Update to 20151109 snapshot + +* Wed Sep 16 2015 Dave Airlie - 2.99.917-16.20150729 +- 1.18 ABI rebuild + +* Wed Jul 29 2015 Dave Airlie 2.99.917-15.20150729 +- update to upstream git snapshot for ABI + +* Wed Jul 29 2015 Dave Airlie - 2.99.917-14.20150615 +- 1.15 ABI rebuild + +* Fri Jun 19 2015 Fedora Release Engineering - 2.99.917-13.20150615 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Jun 15 2015 Dave Airlie 2.99.917-12 +- you guessed it, git snap of the day +- this should bring some PRIME corruption fixes. + +* Wed Jun 03 2015 Adam Jackson 2.99.917-11 +- Today's git snap + +* Tue May 26 2015 Dave Airlie 2.99.917-10 +- update git snap +- fixes uninitialised properties crash + +* Wed May 20 2015 Adam Jackson 2.99.917-9 +- Today's git snap +- Don't force the default to DRI3, use upstream's preference +- Fix build failure due to GCC PR65873 + +* Mon Mar 02 2015 Dave Airlie 2.99.917-8 +- this time for sure, now less hardended. -* Tue May 26 2015 Dave Airlie 2.99.917-7 -- update with newer snapshot - fix some problems, use upstream DRI default +* Mon Mar 02 2015 Dave Airlie 2.99.917-7 +- remove cement, X.org drivers aren't hard enough. * Thu Feb 26 2015 Hans de Goede - 2.99.917-6 - Really really build intel-virtual-output (rhbz#1195962)