diff options
author | Anuj Mittal <anuj.mittal@intel.com> | 2018-11-02 14:58:52 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-11-14 11:14:39 +0000 |
commit | 621e043b8dad96d334f88cadebc5f2548fff333c (patch) | |
tree | 5d2546b65036bb439564e54ef04f1b2c67f55f28 /meta/recipes-graphics/xorg-driver/xf86-video-intel | |
parent | dc804276ef79bee3818deb1a6586ba65cc7b4a3a (diff) | |
download | poky-621e043b8dad96d334f88cadebc5f2548fff333c.tar.gz |
xf86-video-intel: update to latest
For changes, please see:
https://cgit.freedesktop.org/xorg/driver/xf86-video-intel/log/?qt=range&q=e4fe79cf0d9a05ee3f3a027148ef0aeb2b1b34e1...0932a6b37ba6d5c9e916a1cb6ab89c3205b81a0c
Enable sna by default and remove upstreamed patches.
Also include a patch from fedora to fix compile issues when using
qemux86 which doesn't enable sse2 leading to gcc refusing to
inline vertex_emit_2s in emit_vertex because they are defined as:
static __attribute__((always_inline)) void
vertex_emit_2s(struct sna *sna, int16_t x, int16_t y)
__attribute__((target("sse2,fpmath=sse"))) __attribute__((always_inline))
static void emit_vertex(/* omitted */)
leading to errors like:
| In file included from ../../../git/src/sna/gen4_vertex.c:34:
| ../../../git/src/sna/gen4_vertex.c: In function 'emit_vertex':
| ../../../git/src/sna/sna_render_inline.h:40:26: error: inlining failed in call to always_inline 'vertex_emit_2s': target specific option mismatch
| static force_inline void vertex_emit_2s(struct sna *sna, int16_t x, int16_t y)
| ^~~~~~~~~~~~~~
| ../../../git/src/sna/gen4_vertex.c:308:25: note: called from here
| #define OUT_VERTEX(x,y) vertex_emit_2s(sna, x,y) /* XXX assert(!too_large(x, y)); */
| ^~~~~~~~~~~~~~~~~~~~~~~~
| ../../../git/src/sna/gen4_vertex.c:360:2: note: in expansion of macro 'OUT_VERTEX'
| OUT_VERTEX(dstX, dstY);
| ^~~~~~~~~~
(From OE-Core rev: a181b36bf2357c5f7d5835df2f828ff1e0007dc6)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-graphics/xorg-driver/xf86-video-intel')
3 files changed, 55 insertions, 141 deletions
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch deleted file mode 100644 index 06ef10501a..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Add-Coffeelake-PCI-IDs-for-S-Skus.patch +++ /dev/null | |||
@@ -1,116 +0,0 @@ | |||
1 | From 96d4e8e7b8a699f0ef77fa7b210d4de5f1c703d0 Mon Sep 17 00:00:00 2001 | ||
2 | From: Liwei Song <liwei.song@windriver.com> | ||
3 | Date: Wed, 22 Nov 2017 08:59:03 +0000 | ||
4 | Subject: [PATCH] Add Coffeelake PCI IDs for S Skus | ||
5 | |||
6 | Add the Coffeelake PCI IDs based on the following kernel patches: | ||
7 | |||
8 | commit b056f8f3d6b900e8afd19f312719160346d263b4 | ||
9 | Author: Anusha Srivatsa <anusha.srivatsa@intel.com> | ||
10 | Date: Thu Jun 8 16:41:05 2017 -0700 | ||
11 | |||
12 | drm/i915/cfl: Add Coffee Lake PCI IDs for S Skus. | ||
13 | |||
14 | Upstream-Status: Submitted [https://patchwork.kernel.org/patch/10139905] | ||
15 | |||
16 | Signed-off-by: Liwei Song <liwei.song@windriver.com> | ||
17 | --- | ||
18 | src/i915_pciids.h | 7 +++++++ | ||
19 | src/intel_module.c | 13 +++++++++++++ | ||
20 | src/sna/gen9_render.c | 12 ++++++++++++ | ||
21 | 3 files changed, 32 insertions(+) | ||
22 | |||
23 | diff --git a/src/i915_pciids.h b/src/i915_pciids.h | ||
24 | index 0370f830c541..11ccfa9c047a 100644 | ||
25 | --- a/src/i915_pciids.h | ||
26 | +++ b/src/i915_pciids.h | ||
27 | @@ -340,4 +340,11 @@ | ||
28 | INTEL_VGA_DEVICE(0x3184, info), \ | ||
29 | INTEL_VGA_DEVICE(0x3185, info) | ||
30 | |||
31 | +#define INTEL_CFL_S_IDS(info) \ | ||
32 | + INTEL_VGA_DEVICE(0x3E90, info), /* SRV GT1 */ \ | ||
33 | + INTEL_VGA_DEVICE(0x3E93, info), /* SRV GT1 */ \ | ||
34 | + INTEL_VGA_DEVICE(0x3E91, info), /* SRV GT2 */ \ | ||
35 | + INTEL_VGA_DEVICE(0x3E92, info), /* SRV GT2 */ \ | ||
36 | + INTEL_VGA_DEVICE(0x3E96, info) /* SRV GT2 */ | ||
37 | + | ||
38 | #endif /* _I915_PCIIDS_H */ | ||
39 | diff --git a/src/intel_module.c b/src/intel_module.c | ||
40 | index 6b04857e2853..4827a67255f0 100644 | ||
41 | --- a/src/intel_module.c | ||
42 | +++ b/src/intel_module.c | ||
43 | @@ -138,6 +138,10 @@ static const struct intel_device_info intel_geminilake_info = { | ||
44 | .gen = 0113, | ||
45 | }; | ||
46 | |||
47 | +static const struct intel_device_info intel_coffeelake_info = { | ||
48 | + .gen = 0114, | ||
49 | +}; | ||
50 | + | ||
51 | static const SymTabRec intel_chipsets[] = { | ||
52 | {PCI_CHIP_I810, "i810"}, | ||
53 | {PCI_CHIP_I810_DC100, "i810-dc100"}, | ||
54 | @@ -303,6 +307,13 @@ static const SymTabRec intel_chipsets[] = { | ||
55 | {0x5916, "HD Graphics 620"}, | ||
56 | {0x591E, "HD Graphics 615"}, | ||
57 | |||
58 | + /*Coffeelake*/ | ||
59 | + {0x3E90, "HD Graphics"}, | ||
60 | + {0x3E93, "HD Graphics"}, | ||
61 | + {0x3E91, "HD Graphics"}, | ||
62 | + {0x3E92, "HD Graphics"}, | ||
63 | + {0x3E96, "HD Graphics"}, | ||
64 | + | ||
65 | /* When adding new identifiers, also update: | ||
66 | * 1. intel_identify() | ||
67 | * 2. man/intel.man | ||
68 | @@ -368,6 +379,8 @@ static const struct pci_id_match intel_device_match[] = { | ||
69 | |||
70 | INTEL_GLK_IDS(&intel_geminilake_info), | ||
71 | |||
72 | + INTEL_CFL_S_IDS(&intel_coffeelake_info), | ||
73 | + | ||
74 | INTEL_VGA_DEVICE(PCI_MATCH_ANY, &intel_generic_info), | ||
75 | #endif | ||
76 | |||
77 | diff --git a/src/sna/gen9_render.c b/src/sna/gen9_render.c | ||
78 | index e5f12c723956..7f49052c5ec1 100644 | ||
79 | --- a/src/sna/gen9_render.c | ||
80 | +++ b/src/sna/gen9_render.c | ||
81 | @@ -245,6 +245,11 @@ static const struct gt_info glk_gt_info = { | ||
82 | .urb = { .max_vs_entries = 320 }, | ||
83 | }; | ||
84 | |||
85 | +static const struct gt_info cfl_gt_info = { | ||
86 | + .name = "Coffeelake (gen9)", | ||
87 | + .urb = { .max_vs_entries = 960 }, | ||
88 | +}; | ||
89 | + | ||
90 | static bool is_skl(struct sna *sna) | ||
91 | { | ||
92 | return sna->kgem.gen == 0110; | ||
93 | @@ -265,6 +270,11 @@ static bool is_glk(struct sna *sna) | ||
94 | return sna->kgem.gen == 0113; | ||
95 | } | ||
96 | |||
97 | +static bool is_cfl(struct sna *sna) | ||
98 | +{ | ||
99 | + return sna->kgem.gen == 0114; | ||
100 | +} | ||
101 | + | ||
102 | |||
103 | static inline bool too_large(int width, int height) | ||
104 | { | ||
105 | @@ -4040,6 +4050,8 @@ static bool gen9_render_setup(struct sna *sna) | ||
106 | state->info = &kbl_gt_info; | ||
107 | if (is_glk(sna)) | ||
108 | state->info = &glk_gt_info; | ||
109 | + if (is_cfl(sna)) | ||
110 | + state->info = &cfl_gt_info; | ||
111 | |||
112 | sna_static_stream_init(&general); | ||
113 | |||
114 | -- | ||
115 | 2.13.3 | ||
116 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch new file mode 100644 index 0000000000..52916f8b4a --- /dev/null +++ b/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch | |||
@@ -0,0 +1,55 @@ | |||
1 | From a414d4e24461da1cb4cef8ee910bc57bab360ceb Mon Sep 17 00:00:00 2001 | ||
2 | From: Adam Jackson <ajax@redhat.com> | ||
3 | Date: Tue, 6 Mar 2018 12:07:46 -0500 | ||
4 | Subject: [PATCH] Fix build on i686 | ||
5 | |||
6 | Presumably this only matters for i686 because amd64 implies sse2, but: | ||
7 | |||
8 | BUILDSTDERR: In file included from gen4_vertex.c:34: | ||
9 | BUILDSTDERR: gen4_vertex.c: In function 'emit_vertex': | ||
10 | BUILDSTDERR: sna_render_inline.h:40:26: error: inlining failed in call to always_inline 'vertex_emit_2s': target specific option mismatch | ||
11 | BUILDSTDERR: static force_inline void vertex_emit_2s(struct sna *sna, int16_t x, int16_t y) | ||
12 | BUILDSTDERR: ^~~~~~~~~~~~~~ | ||
13 | BUILDSTDERR: gen4_vertex.c:308:25: note: called from here | ||
14 | BUILDSTDERR: #define OUT_VERTEX(x,y) vertex_emit_2s(sna, x,y) /* XXX assert(!too_large(x, y)); */ | ||
15 | BUILDSTDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ | ||
16 | BUILDSTDERR: gen4_vertex.c:360:2: note: in expansion of macro 'OUT_VERTEX' | ||
17 | BUILDSTDERR: OUT_VERTEX(dstX, dstY); | ||
18 | BUILDSTDERR: ^~~~~~~~~~ | ||
19 | |||
20 | The bug here appears to be that emit_vertex() is declared 'sse2' but | ||
21 | vertex_emit_2s is merely always_inline. gcc8 decides that since you said | ||
22 | always_inline you need to have explicitly cloned it for every | ||
23 | permutation of targets. Merely saying inline seems to do the job of | ||
24 | cloning vertex_emit_2s as much as necessary. | ||
25 | |||
26 | So to reiterate: if you say always-inline, it won't, but if you just say | ||
27 | maybe inline, it will. Thanks gcc, that's helpful. | ||
28 | |||
29 | - ajax | ||
30 | |||
31 | Patch taken from Fedora. | ||
32 | |||
33 | Upstream-Status: Pending | ||
34 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
35 | |||
36 | --- | ||
37 | src/sna/compiler.h | 2 +- | ||
38 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
39 | |||
40 | diff --git a/src/sna/compiler.h b/src/sna/compiler.h | ||
41 | index 3c176a16..bc447c7a 100644 | ||
42 | --- a/src/sna/compiler.h | ||
43 | +++ b/src/sna/compiler.h | ||
44 | @@ -32,7 +32,7 @@ | ||
45 | #define likely(expr) (__builtin_expect (!!(expr), 1)) | ||
46 | #define unlikely(expr) (__builtin_expect (!!(expr), 0)) | ||
47 | #define noinline __attribute__((noinline)) | ||
48 | -#define force_inline inline __attribute__((always_inline)) | ||
49 | +#define force_inline inline | ||
50 | #define fastcall __attribute__((regparm(3))) | ||
51 | #define must_check __attribute__((warn_unused_result)) | ||
52 | #define constant __attribute__((const)) | ||
53 | -- | ||
54 | 2.16.2 | ||
55 | |||
diff --git a/meta/recipes-graphics/xorg-driver/xf86-video-intel/glibc.patch b/meta/recipes-graphics/xorg-driver/xf86-video-intel/glibc.patch deleted file mode 100644 index ada9eb5e52..0000000000 --- a/meta/recipes-graphics/xorg-driver/xf86-video-intel/glibc.patch +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | Add a missing include needed for glibc 2.28 to avoid: | ||
2 | |||
3 | | ../../git/tools/backlight_helper.c: In function 'main': | ||
4 | | ../../git/tools/backlight_helper.c:54:34: error: implicit declaration of function 'major' [-Werror=implicit-function-declaration] | ||
5 | | if (fd < 0 || fstat(fd, &st) || major(st.st_dev)) | ||
6 | | ^~~~~ | ||
7 | | ../../git/tools/backlight_helper.c:54:34: warning: nested extern declaration of 'major' [-Wnested-externs] | ||
8 | | cc1: some warnings being treated as errors | ||
9 | | Makefile:666: recipe for target 'backlight_helper.o' failed | ||
10 | |||
11 | Upstream-Status: Pending | ||
12 | RP 2018/8/12 | ||
13 | |||
14 | Index: git/tools/backlight_helper.c | ||
15 | =================================================================== | ||
16 | --- git.orig/tools/backlight_helper.c | ||
17 | +++ git/tools/backlight_helper.c | ||
18 | @@ -8,6 +8,7 @@ | ||
19 | |||
20 | #include <sys/types.h> | ||
21 | #include <sys/stat.h> | ||
22 | +#include <sys/sysmacros.h> | ||
23 | |||
24 | #if MAJOR_IN_MKDEV | ||
25 | #include <sys/mkdev.h> | ||