Timo Aaltonen pushed to branch upstream-unstable at X Strike Force / driver / xserver-xorg-video-vesa
Commits:
-
782c9800
by Alan Coopersmith at 2022-01-30T08:52:56-08:00
-
5e8eb2d8
by Alan Coopersmith at 2022-01-30T08:53:56-08:00
-
942499a7
by Alan Coopersmith at 2022-01-30T08:57:14-08:00
-
5dee3ce8
by Alan Coopersmith at 2022-10-17T11:35:16-07:00
-
2f2436b4
by Alan Coopersmith at 2022-10-17T11:36:55-07:00
-
e285658e
by Alan Coopersmith at 2022-10-17T11:48:57-07:00
-
f1895cc6
by Jocelyn Falempe at 2022-10-27T00:15:32+02:00
-
f6f1013d
by Alan Coopersmith at 2022-12-09T12:24:33-08:00
4 changed files:
Changes:
1 | +# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml:
|
|
2 | +#
|
|
3 | +# This CI uses the freedesktop.org ci-templates.
|
|
4 | +# Please see the ci-templates documentation for details:
|
|
5 | +# https://freedesktop.pages.freedesktop.org/ci-templates/
|
|
6 | + |
|
7 | +.templates_sha: &template_sha 34f4ade99434043f88e164933f570301fd18b125 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
|
8 | + |
|
9 | + |
|
10 | +include:
|
|
11 | + # Arch container builder template
|
|
12 | + - project: 'freedesktop/ci-templates'
|
|
13 | + ref: *template_sha
|
|
14 | + file: '/templates/arch.yml'
|
|
15 | + - project: 'freedesktop/ci-templates'
|
|
16 | + ref: *template_sha
|
|
17 | + file: '/templates/ci-fairy.yml'
|
|
18 | + - template: Security/SAST.gitlab-ci.yml
|
|
19 | + |
|
20 | + |
|
21 | +stages:
|
|
22 | + - prep # prep work like rebuilding the container images if there is a change
|
|
23 | + - build # for actually building and testing things in a container
|
|
24 | + - test
|
|
25 | + - deploy
|
|
26 | + |
|
27 | + |
|
28 | +variables:
|
|
29 | + FDO_UPSTREAM_REPO: 'xorg/driver/xf86-video-vesa'
|
|
30 | + # The tag should be updated each time the list of packages is updated.
|
|
31 | + # Changing a tag forces the associated image to be rebuilt.
|
|
32 | + # Note: the tag has no meaning, we use a date format purely for readability
|
|
33 | + FDO_DISTRIBUTION_TAG: '2022-01-30.0'
|
|
34 | + FDO_DISTRIBUTION_PACKAGES: 'git gcc pkgconf autoconf automake make xorg-util-macros xorgproto xorg-server-devel pixman libpciaccess'
|
|
35 | + |
|
36 | + |
|
37 | +#
|
|
38 | +# Verify that commit messages are as expected
|
|
39 | +#
|
|
40 | +check-commits:
|
|
41 | + extends:
|
|
42 | + - .fdo.ci-fairy
|
|
43 | + stage: prep
|
|
44 | + script:
|
|
45 | + - ci-fairy check-commits --junit-xml=results.xml
|
|
46 | + except:
|
|
47 | + - master@xorg/driver/xf86-video-vesa
|
|
48 | + variables:
|
|
49 | + GIT_DEPTH: 100
|
|
50 | + artifacts:
|
|
51 | + reports:
|
|
52 | + junit: results.xml
|
|
53 | + |
|
54 | +#
|
|
55 | +# Verify that the merge request has the allow-collaboration checkbox ticked
|
|
56 | +#
|
|
57 | +check-merge-request:
|
|
58 | + extends:
|
|
59 | + - .fdo.ci-fairy
|
|
60 | + stage: deploy
|
|
61 | + script:
|
|
62 | + - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
|
|
63 | + artifacts:
|
|
64 | + when: on_failure
|
|
65 | + reports:
|
|
66 | + junit: results.xml
|
|
67 | + allow_failure: true
|
|
68 | + |
|
69 | + |
|
70 | +#
|
|
71 | +# Build a container with the given tag and the packages pre-installed.
|
|
72 | +# This only happens if the tag changes, otherwise the existing image is
|
|
73 | +# re-used.
|
|
74 | +#
|
|
75 | +container-prep:
|
|
76 | + extends:
|
|
77 | + - .fdo.container-build@arch
|
|
78 | + stage: prep
|
|
79 | + variables:
|
|
80 | + GIT_STRATEGY: none
|
|
81 | + |
|
82 | + |
|
83 | +#
|
|
84 | +# The default build, runs on the image built above.
|
|
85 | +#
|
|
86 | +build:
|
|
87 | + stage: build
|
|
88 | + extends:
|
|
89 | + - .fdo.distribution-image@arch
|
|
90 | + script:
|
|
91 | + - autoreconf -ivf
|
|
92 | + - mkdir _builddir
|
|
93 | + - pushd _builddir > /dev/null
|
|
94 | + - ../configure --disable-silent-rules
|
|
95 | + - make
|
|
96 | + - make check
|
|
97 | + - make distcheck
|
|
98 | + - popd > /dev/null |
... | ... | @@ -6,7 +6,7 @@ Xorg mailing list: |
6 | 6 | |
7 | 7 | https://lists.x.org/mailman/listinfo/xorg
|
8 | 8 | |
9 | -The master development code repository can be found at:
|
|
9 | +The primary development code repository can be found at:
|
|
10 | 10 | |
11 | 11 | https://gitlab.freedesktop.org/xorg/driver/xf86-video-vesa
|
12 | 12 |
... | ... | @@ -23,15 +23,15 @@ |
23 | 23 | # Initialize Autoconf
|
24 | 24 | AC_PREREQ([2.60])
|
25 | 25 | AC_INIT([xf86-video-vesa],
|
26 | - [2.5.0],
|
|
27 | - [https://gitlab.freedesktop.org/xorg/driver/xf86-video-vesa/issues],
|
|
26 | + [2.6.0],
|
|
27 | + [https://gitlab.freedesktop.org/xorg/driver/xf86-video-vesa/-/issues],
|
|
28 | 28 | [xf86-video-vesa])
|
29 | 29 | AC_CONFIG_SRCDIR([Makefile.am])
|
30 | 30 | AC_CONFIG_HEADERS([config.h])
|
31 | 31 | AC_CONFIG_AUX_DIR(.)
|
32 | 32 | |
33 | 33 | # Initialize Automake
|
34 | -AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
|
34 | +AM_INIT_AUTOMAKE([foreign dist-xz])
|
|
35 | 35 | |
36 | 36 | # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
|
37 | 37 | m4_ifndef([XORG_MACROS_VERSION],
|
... | ... | @@ -44,6 +44,7 @@ |
44 | 44 | |
45 | 45 | #include <string.h>
|
46 | 46 | #include <unistd.h>
|
47 | +#include <dirent.h>
|
|
47 | 48 | #include "vesa.h"
|
48 | 49 | |
49 | 50 | /* All drivers initialising the SW cursor need this */
|
... | ... | @@ -186,7 +187,7 @@ static IsaChipsets VESAISAchipsets[] = { |
186 | 187 | /*
|
187 | 188 | * This contains the functions needed by the server after loading the
|
188 | 189 | * driver module. It must be supplied, and gets added the driver list by
|
189 | - * the Module Setup funtion in the dynamic case. In the static case a
|
|
190 | + * the Module Setup function in the dynamic case. In the static case a
|
|
190 | 191 | * reference to this is compiled in, and this requires that the name of
|
191 | 192 | * this DriverRec be an upper-case version of the driver name.
|
192 | 193 | */
|
... | ... | @@ -353,8 +354,6 @@ VESAValidMode(SCRN_ARG_TYPE arg, DisplayModePtr p, Bool flag, int pass) |
353 | 354 | DisplayModePtr mode;
|
354 | 355 | float v;
|
355 | 356 | |
356 | - pVesa = VESAGetRec(pScrn);
|
|
357 | - |
|
358 | 357 | if (pass != MODECHECK_FINAL) {
|
359 | 358 | if (!warned) {
|
360 | 359 | xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "VESAValidMode called unexpectedly\n");
|
... | ... | @@ -439,12 +438,40 @@ VESAInitScrn(ScrnInfoPtr pScrn) |
439 | 438 | pScrn->FreeScreen = VESAFreeScreen;
|
440 | 439 | }
|
441 | 440 | |
441 | +#ifdef XSERVER_LIBPCIACCESS
|
|
442 | +#ifdef __linux__
|
|
443 | +/*
|
|
444 | + * check if a file exist in directory
|
|
445 | + * should be equivalent to a glob ${directory}/${prefix}*
|
|
446 | + */
|
|
447 | + |
|
448 | +static Bool
|
|
449 | +VESAFileExistsPrefix(const char *directory, const char *prefix) {
|
|
450 | + DIR *dir;
|
|
451 | + struct dirent *entry;
|
|
452 | + Bool found = FALSE;
|
|
453 | + int len = strlen(prefix);
|
|
454 | +
|
|
455 | + dir = opendir(directory);
|
|
456 | + if (!dir)
|
|
457 | + return FALSE;
|
|
458 | + |
|
459 | + while ((entry = readdir(dir)) != NULL) {
|
|
460 | + if (strlen(entry->d_name) > len &&
|
|
461 | + !memcmp(entry->d_name, prefix, len)) {
|
|
462 | + found = TRUE;
|
|
463 | + break;
|
|
464 | + }
|
|
465 | + }
|
|
466 | + closedir(dir);
|
|
467 | + return found;
|
|
468 | +}
|
|
469 | +#endif
|
|
470 | + |
|
442 | 471 | /*
|
443 | 472 | * This function is called once, at the start of the first server generation to
|
444 | 473 | * do a minimal probe for supported hardware.
|
445 | 474 | */
|
446 | - |
|
447 | -#ifdef XSERVER_LIBPCIACCESS
|
|
448 | 475 | static Bool
|
449 | 476 | VESAPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev,
|
450 | 477 | intptr_t match_data)
|
... | ... | @@ -452,9 +479,9 @@ VESAPciProbe(DriverPtr drv, int entity_num, struct pci_device *dev, |
452 | 479 | ScrnInfoPtr pScrn;
|
453 | 480 | |
454 | 481 | #ifdef __linux__
|
455 | - if (access("/sys/devices/platform/efi-framebuffer.0", F_OK) == 0 ||
|
|
456 | - access("/sys/devices/platform/efifb.0", F_OK) == 0) {
|
|
457 | - ErrorF("vesa: Refusing to run on UEFI\n");
|
|
482 | + if (VESAFileExistsPrefix("/dev", "fb") ||
|
|
483 | + VESAFileExistsPrefix("/dev/dri", "card")) {
|
|
484 | + ErrorF("vesa: Refusing to run, Framebuffer or dri device present\n");
|
|
458 | 485 | return FALSE;
|
459 | 486 | }
|
460 | 487 | #endif
|
... | ... | @@ -1787,7 +1814,6 @@ static Bool |
1787 | 1814 | VESADGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode)
|
1788 | 1815 | {
|
1789 | 1816 | DisplayModePtr pMode;
|
1790 | - int scrnIdx = pScrn->pScreen->myNum;
|
|
1791 | 1817 | int frameX0, frameY0;
|
1792 | 1818 | |
1793 | 1819 | if (pDGAMode) {
|