component(developer/golang-123): Add Component
[oi-userland.git] / components / x11 / xorg-server / patches / 12-nvidia-autoconfig.patch
blob231598f9dc6df50f11a0eda99cf4224f6012f4ab
1 # Copyright (c) 2006, 2009, Oracle and/or its affiliates. All rights reserved.
3 # Permission is hereby granted, free of charge, to any person obtaining a
4 # copy of this software and associated documentation files (the "Software"),
5 # to deal in the Software without restriction, including without limitation
6 # the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 # and/or sell copies of the Software, and to permit persons to whom the
8 # Software is furnished to do so, subject to the following conditions:
10 # The above copyright notice and this permission notice (including the next
11 # paragraph) shall be included in all copies or substantial portions of the
12 # Software.
14 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 # DEALINGS IN THE SOFTWARE.
21 --- xorg-server-1.18.4/hw/xfree86/common/xf86Config.c.orig 2016-09-17 00:07:50.879400615 +0200
22 +++ xorg-server-1.18.4/hw/xfree86/common/xf86Config.c 2016-09-17 00:08:09.608273665 +0200
23 @@ -559,13 +559,34 @@
24 static void
25 fixup_video_driver_list(const char **drivers)
27 - const char **end;
28 + const char **end, **drv;
29 + const char *x;
31 /* walk to the end of the list */
32 for (end = drivers; *end && **end; end++);
33 end--;
35 qsort(drivers, end - drivers, sizeof(const char *), driver_sort);
37 + /*
38 + * Since the nvidia kernel driver interferes with the nv Xorg driver,
39 + * make sure to prefer nvidia if it's installed
40 + */
41 + for (drv = drivers; drv != end; drv++) {
42 + char **nv, **nvidia;
43 + if (!strcmp(*drv, "nv")) {
44 + nv = drv;
45 + for (drv = nv; drv != end; drv++) {
46 + if (!strcmp(*drv, "nvidia")) {
47 + nvidia = drv;
48 + x = *nvidia; *nvidia = *nv; *nv = x;
49 + break;
50 + }
51 + }
52 + /* if we get here, nvidia was already ahead of nv */
53 + break;
54 + }
55 + }
58 static const char **