Module Name:    xsrc
Committed By:   mrg
Date:           Sun Jul 11 00:13:27 UTC 2021

Modified Files:
        xsrc/external/mit/xkeyboard-config/dist: configure
        xsrc/external/mit/xkeyboard-config/dist/symbols: Makefile.in in pl
        xsrc/external/mit/xorg-server/dist: configure configure.ac
        xsrc/external/mit/xorg-server/dist/dix: devices.c
        xsrc/external/mit/xorg-server/dist/glx: glxcmds.c
        xsrc/external/mit/xorg-server/dist/hw/xfree86/common: xf86Bus.c
            xf86Config.c xf86Helper.c xf86str.h
        xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting:
            driver.c driver.h drmmode_display.c present.c vblank.c
        xsrc/external/mit/xorg-server/dist/randr: randrstr.h
        xsrc/external/mit/xorg-server/include: dix-config.h version-config.h
            xf86Build.h xorg-config.h xorg-server.h

Log Message:
merge xorg-server 1.20.12 and xkeyboard-config 2.33.


To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 xsrc/external/mit/xkeyboard-config/dist/configure
cvs rdiff -u -r1.20 -r1.21 \
    xsrc/external/mit/xkeyboard-config/dist/symbols/Makefile.in
cvs rdiff -u -r1.15 -r1.16 xsrc/external/mit/xkeyboard-config/dist/symbols/in
cvs rdiff -u -r1.3 -r1.4 xsrc/external/mit/xkeyboard-config/dist/symbols/pl
cvs rdiff -u -r1.9 -r1.10 xsrc/external/mit/xorg-server/dist/configure
cvs rdiff -u -r1.11 -r1.12 xsrc/external/mit/xorg-server/dist/configure.ac
cvs rdiff -u -r1.11 -r1.12 xsrc/external/mit/xorg-server/dist/dix/devices.c
cvs rdiff -u -r1.13 -r1.14 xsrc/external/mit/xorg-server/dist/glx/glxcmds.c
cvs rdiff -u -r1.7 -r1.8 \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Bus.c
cvs rdiff -u -r1.15 -r1.16 \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c
cvs rdiff -u -r1.4 -r1.5 \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Helper.c
cvs rdiff -u -r1.5 -r1.6 \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86str.h
cvs rdiff -u -r1.5 -r1.6 \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.c \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.h \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/present.c
cvs rdiff -u -r1.6 -r1.7 \
    
xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/drmmode_display.c
 \
    xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/vblank.c
cvs rdiff -u -r1.6 -r1.7 xsrc/external/mit/xorg-server/dist/randr/randrstr.h
cvs rdiff -u -r1.41 -r1.42 xsrc/external/mit/xorg-server/include/dix-config.h
cvs rdiff -u -r1.12 -r1.13 \
    xsrc/external/mit/xorg-server/include/version-config.h
cvs rdiff -u -r1.11 -r1.12 xsrc/external/mit/xorg-server/include/xf86Build.h
cvs rdiff -u -r1.22 -r1.23 \
    xsrc/external/mit/xorg-server/include/xorg-config.h \
    xsrc/external/mit/xorg-server/include/xorg-server.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: xsrc/external/mit/xkeyboard-config/dist/configure
diff -u xsrc/external/mit/xkeyboard-config/dist/configure:1.20 xsrc/external/mit/xkeyboard-config/dist/configure:1.21
--- xsrc/external/mit/xkeyboard-config/dist/configure:1.20	Tue Apr 27 03:38:48 2021
+++ xsrc/external/mit/xkeyboard-config/dist/configure	Sun Jul 11 00:13:26 2021
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xkeyboard-config 2.32.
+# Generated by GNU Autoconf 2.69 for xkeyboard-config 2.33.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -577,8 +577,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='xkeyboard-config'
 PACKAGE_TARNAME='xkeyboard-config'
-PACKAGE_VERSION='2.32'
-PACKAGE_STRING='xkeyboard-config 2.32'
+PACKAGE_VERSION='2.33'
+PACKAGE_STRING='xkeyboard-config 2.33'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -717,6 +717,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -807,6 +808,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1059,6 +1061,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1196,7 +1207,7 @@ fi
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1309,7 +1320,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xkeyboard-config 2.32 to adapt to many kinds of systems.
+\`configure' configures xkeyboard-config 2.33 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1349,6 +1360,7 @@ Fine tuning of the installation director
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -1380,7 +1392,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xkeyboard-config 2.32:";;
+     short | recursive ) echo "Configuration of xkeyboard-config 2.33:";;
    esac
   cat <<\_ACEOF
 
@@ -1497,7 +1509,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xkeyboard-config configure 2.32
+xkeyboard-config configure 2.33
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1677,7 +1689,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xkeyboard-config $as_me 2.32, which was
+It was created by xkeyboard-config $as_me 2.33, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2542,7 +2554,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='xkeyboard-config'
- VERSION='2.32'
+ VERSION='2.33'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3226,7 +3238,7 @@ $as_echo_n "checking for $am_display_PYT
 if ${am_cv_python_version+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
+  am_cv_python_version=`$PYTHON -c "import sys; print('%u.%u' % sys.version_info[:2])"`
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
 $as_echo "$am_cv_python_version" >&6; }
@@ -7634,7 +7646,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xkeyboard-config $as_me 2.32, which was
+This file was extended by xkeyboard-config $as_me 2.33, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7691,7 +7703,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xkeyboard-config config.status 2.32
+xkeyboard-config config.status 2.33
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Index: xsrc/external/mit/xkeyboard-config/dist/symbols/Makefile.in
diff -u xsrc/external/mit/xkeyboard-config/dist/symbols/Makefile.in:1.20 xsrc/external/mit/xkeyboard-config/dist/symbols/Makefile.in:1.21
--- xsrc/external/mit/xkeyboard-config/dist/symbols/Makefile.in:1.20	Tue Apr 27 03:38:48 2021
+++ xsrc/external/mit/xkeyboard-config/dist/symbols/Makefile.in	Sun Jul 11 00:13:26 2021
@@ -348,6 +348,7 @@ program_transform_name = @program_transf
 psdir = @psdir@
 pyexecdir = @pyexecdir@
 pythondir = @pythondir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@

Index: xsrc/external/mit/xkeyboard-config/dist/symbols/in
diff -u xsrc/external/mit/xkeyboard-config/dist/symbols/in:1.15 xsrc/external/mit/xkeyboard-config/dist/symbols/in:1.16
--- xsrc/external/mit/xkeyboard-config/dist/symbols/in:1.15	Tue Apr 27 03:38:48 2021
+++ xsrc/external/mit/xkeyboard-config/dist/symbols/in	Sun Jul 11 00:13:26 2021
@@ -16,7 +16,7 @@
 // - Indic INSCRIPT keyboard layout diagrams:
 //     http://java.sun.com/products/jfc/tsc/articles/InputMethod/indiclayout.html
 // - Bangla Baishakhi (Bangla layouts):
-// - Bangla Baishakhi Inscript (Bangla layouts):
+// - Bangla Baishakhi InScript (Bangla layouts):
 // - Bangla Bornona (Bangla layouts):
 // - Uni Gitanjali (Bangla layouts):
 //     http://nltr.org
@@ -319,7 +319,7 @@ xkb_symbols "ben_probhat" {
     include "rupeesign(4)"
 };
 
-// Bangla Baishakhi, Bangla Baishakhi Inscript, Bangla Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal <promathesh812...@gmail.com>
+// Bangla Baishakhi, Bangla Baishakhi InScript, Bangla Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal <promathesh812...@gmail.com>
 
 xkb_symbols "ben_baishakhi" {
  name[Group1]= "Bangla (India, Baishakhi)";
@@ -397,7 +397,7 @@ xkb_symbols "ben_baishakhi" {
 };
 
 xkb_symbols "ben_inscript" {
-    name[Group1]= "Bangla (India, Baishakhi Inscript)";
+    name[Group1]= "Bangla (India, Baishakhi InScript)";
 
       // Mainly numbers.
       key <TLDE> { [      0x100200D, 0x100200C	] 	};
@@ -682,7 +682,7 @@ xkb_symbols "guj" {
 partial alphanumeric_keys
 xkb_symbols "kan" {
 
-    // Inscript layout for Kannada  
+    // InScript layout for Kannada  
     // Author : G Karunakar <karuna...@freedomink.org>
     // Date   : Wed Nov 13 17:22:58 IST 2002
     // Kannada digits mapped in basic only
@@ -984,7 +984,7 @@ xkb_symbols "olck" {
 
 partial alphanumeric_keys
 xkb_symbols "ori" {
-    // Inscript layout for Oriya  
+    // InScript layout for Oriya  
     // Author: G Karunakar <karuna...@freedomink.org>
     // Date: Wed Nov 13 18:16:19 IST 2002
 
@@ -1046,10 +1046,133 @@ xkb_symbols "ori" {
     include "level3(ralt_switch)"
 };
 
+// Phonetic layout for Oriya like Hindi Bolnagiri
+// Author: Lalit Mishra
+// Date: 3rd March, 2021.
+partial alphanumeric_keys
+xkb_symbols "ori-bolnagri" {
+     name[Group1] = "Oriya (Bolnagri)";
+     key.type="FOUR_LEVEL";
+    // Roman digits
+    key <TLDE>  { [   U0B02,     U0B01,       grave,    asciitilde ] }; // grave: anusvara, candrabindu
+    key <AE01>  { [   U0B67,     exclam,      1         ] };
+    key <AE02>  { [   U0B68,     at,          2,        U20AC      ] };
+    key <AE03>  { [   U0B69,     numbersign,  3,        U00A3      ] };
+    key <AE04>  { [   U0B6A,     dollar,      4,        U20B9      ] }; // Rupee symbol on Shift+AltGr+4
+    key <AE05>  { [   U0B6B,     percent,     5         ] };
+    key <AE06>  { [   U0B6C,     asciicircum, 6         ] };
+    key <AE07>  { [   U0B6D,     ampersand,   7         ] };
+    key <AE08>  { [   U0B6E,     asterisk,    8         ] };
+    key <AE09>  { [   U0B6F,     parenleft,   9         ] };
+    key <AE10>  { [   U0B66,     parenright,  0         ] };
+    key <AE11>  { [   minus,     underscore             ] };
+    key <AE12>  { [   equal,     plus                   ] };
+    key <BKSL>  { [   U0964,     U0965,       U007C,    U005C      ] }; //pipe : danda, double danda
+    //Q Row
+    key <AD01>  { [   U200C,     U200D        ] };                      // Q: ZWNJ, ZWJ
+    key <AD02>  { [   U0B71,     U0B35        ] };                      // W: wa
+    key <AD03>  { [   U0B47,     U0B48,       U0B0F,    U0B10      ] }; // E: e, ai matras
+    key <AD04>  { [   U0B30,     U0B43,       U0B0B,    U0B60      ] }; // R: ra, vocalic Ri
+    key <AD05>  { [   U0B24,     U0B25        ] };                      // T: ta, tha
+    key <AD06>  { [   U0B2f,     U0B5F,       U0B1E     ] };            // Y: ya, nya
+    key <AD07>  { [   U0B41,     U0B42,       U0B09,    U0B0A      ] }; // U: u, uu matras
+    key <AD08>  { [   U0B3F,     U0B40,       U0B07,    U0B08      ] }; // I: i, ii matras
+    key <AD09>  { [   U0B4B,     U0B4C,       U0B13,    U0B14      ] }; // O: o, au matras
+    key <AD10>  { [   U0B2A,     U0B2B        ] };                      // P: pa, pha
+    key <AD11>  { [   bracketleft,  braceleft ] };
+    key <AD12>  { [   bracketright, braceright] };
+    //A Row
+    key <AC01>  { [   U0B3E,      U0B06,      U0B05,    U0B06      ] }; // A: aa, full A, AA
+    key <AC02>  { [   U0B38,      U0B37       ] };                      // S: sa, ssa
+    key <AC03>  { [   U0B26,      U0B27       ] };                      // D: da, dha
+    key <AC04>  { [   U0B1F,      U0B20       ] };                      // F: TA, THA
+    key <AC05>  { [   U0B17,      U0B18       ] };                      // G: ga, gha
+    key <AC06>  { [   U0B39,      U0B03       ] };                      // H: ha, visarg
+    key <AC07>  { [   U0B1C,      U0B1D       ] };                      // J: ja, jha
+    key <AC08>  { [   U0B15,      U0B16       ] };                      // K: ka, kha
+    key <AC09>  { [   U0B32,      U0B33,      U0B62,    U0B0C      ] }; // L: la, vocalic L or lru matra
+    key <AC10>  { [   semicolon,  colon       ] };
+    key <AC11>  { [   apostrophe, quotedbl    ] };
+    //Z Row
+    key <AB01>  { [   U0B36       ] };                                  // Z: sha, akaar candra
+    key <AB02>  { [   U0B4D       ] };                                  // X: halant, aakaar candra, chandra A
+    key <AB03>  { [   U0B1A,      U0B1B       ] };                      // C: ca, cha
+    key <AB04>  { [   U0B21,      U0B22       ] };                      // V: da, dha
+    key <AB05>  { [   U0B2C,      U0B2D       ] };                      // B: ba, bha
+    key <AB06>  { [   U0B28,      U0B23       ] };                      // N: na, nna
+    key <AB07>  { [   U0B2E,      U0B19,      U0B3D     ] };            // M: ma, nga, avagraha
+    key <AB08>  { [   comma,      U0B70,      U0B44,    U0B61    ] };   // comma: comma, dev abbreviation sign
+    key <AB09>  { [   period,     U0B3C,      U0B55     ] };            // period: period, nukta
+    key <AB10>  { [   slash,      question    ] };
+
+//    modifier_map Shift  { Shift_L };
+//    modifier_map Lock   { Caps_Lock };
+//    modifier_map Control{ Control_L };
+//    modifier_map Mod3   { Mode_switch };
+
+  include "level3(ralt_switch)"
+};
+
+// Phonetic layout for Oriya like Hindi Wx
+// Author: Lalit Mishra
+// Date: 3rd March, 2021.
+partial alphanumeric_keys
+xkb_symbols "ori-wx" {
+    name[Group1]= "Oriya (Wx)";
+      key <TLDE> {   [      grave,        asciitilde,  0x100200C, 0x100200D ] };
+      key <AE01> {   [      0x1000B67,    exclam,      1 ] };
+      key <AE02> {   [      0x1000B68,    at,          2,         0x10020AC  ] };
+      key <AE03> {   [      0x1000B69,    numbersign,  3,         0x10000A3  ] };
+      key <AE04> {   [      0x1000B6A,    dollar,      4,         0x10020B9  ] };
+      key <AE05> {   [      0x1000B6B,    percent,     5 ] };
+      key <AE06> {   [      0x1000B6C,    asciicircum, 6 ] };
+      key <AE07> {   [      0x1000B6D,    ampersand,   7 ] };
+      key <AE08> {   [      0x1000B6e,    asterisk,    8 ] };
+      key <AE09> {   [      0x1000B6F,    parenleft,   9 ] };
+      key <AE10> {   [      0x1000B66,    parenright,  0 ] };
+      key <AE11> {   [      minus,        underscore   ] };
+      key <AE12> {   [      equal,        plus         ] };
+      key <AD01> {   [      0x1000B43,    0x1000B44,   0x1000B0B, 0x1000B60 ] };
+      key <AD02> {   [      0x1000B24,    0x1000B25    ] };
+      key <AD03> {   [      0x1000B47,    0x1000B48,   0x1000B0F, 0x1000B10 ] };
+      key <AD04> {   [      0x1000B30,    0x1000B37    ] };
+      key <AD05> {   [      0x1000B1F,    0x1000B20    ] };
+      key <AD06> {   [      0x1000B2F,    0x1000B5F    ] };
+      key <AD07> {   [      0x1000B41,    0x1000B42,   0x1000B09, 0x1000B0A ] };
+      key <AD08> {   [      0x1000B3F,    0x1000B40,   0x1000B07, 0x1000B08 ] };
+      key <AD09> {   [      0x1000B4B,    0x1000B4C,   0x1000B13, 0x1000B14 ] };
+      key <AD10> {   [      0x1000B2A,    0x1000B2B    ] };
+      key <AD11> {   [      bracketleft,  braceleft    ] };
+      key <AD12> {   [      bracketright, braceright   ] };
+      key <BKSL> {   [      0x1000964,    0x1000965,   backslash, bar       ] };
+      key <AC01> {   [      0x1000B4D,    0x1000B3E,   0x1000B05, 0x1000B06 ] };
+      key <AC02> {   [      0x1000B38,    0x1000B36    ] };
+      key <AC03> {   [      0x1000B21,    0x1000B22    ] };
+      key <AC04> {   [      0x1000B19,    0x1000B1E    ] };
+      key <AC05> {   [      0x1000B17,    0x1000B18    ] };
+      key <AC06> {   [      0x1000B39,    0x1000B03    ] };
+      key <AC07> {   [      0x1000B1C,    0x1000B1D    ] };
+      key <AC08> {   [      0x1000B15,    0x1000B16    ] };
+      key <AC09> {   [      0x1000B32,    0x1000B62,   0x1000B33, 0x1000B0C ] };
+      key <AC10> {   [      semicolon,    colon        ] };
+      key <AC11> {   [      apostrophe,   quotedbl     ] };
+      key <AB01> {   [      0x1000B01,    0x1000B3C,   0x1000B3D  ] };
+      key <AB02> {   [      0x1000B26,    0x1000B27    ] };
+      key <AB03> {   [      0x1000B1A,    0x1000B1B    ] };
+      key <AB04> {   [      0x1000B71,    0x1000B35    ] };
+      key <AB05> {   [      0x1000B2C,    0x1000B2D    ] };
+      key <AB06> {   [      0x1000B28,    0x1000B23    ] };
+      key <AB07> {   [      0x1000B2E,    0x1000B02    ] };
+      key <AB08> {   [      comma,        less         ] };
+      key <AB09> {   [      period,       greater      ] };
+      key <AB10> {   [      slash,        question     ] };
+
+  include "level3(ralt_switch)"
+};
 
 partial alphanumeric_keys
 xkb_symbols "tam" {
-      name[Group1]= "Tamil (Inscript)";
+      name[Group1]= "Tamil (InScript)";
 
       key <TLDE> { [      U0BCA, U0B92	]	};
 
@@ -1359,7 +1482,7 @@ xkb_symbols "tam_tamilnet_TAB" {
 partial alphanumeric_keys
 xkb_symbols "tel" {
 
-    // Inscript layout for Telugu using Unicode 
+    // InScript layout for Telugu using Unicode 
     // Author: G Karunakar <karuna...@freedomink.org>
     // Date:
     // See layout at http://www.indlinux.org/keymap/telugu.php
@@ -1584,10 +1707,10 @@ xkb_symbols "guru" {
     include "level3(ralt_switch)"
 };
 
-//Name		:	Jhelum (Refind Inscript)
+//Name		:	Jhelum (Refind InScript)
 //Description	:	A Jhelum keyboard layout for Gurmukhi (Punjabi)
 //			http://www.satluj.org/Jhelum.html
-//Modified for Inscript to make
+//Modified for InScript to make
 //Original Author :	Amanpreet Singh Alam <apreet.a...@gmail.com
 
 partial alphanumeric_keys
@@ -1804,13 +1927,13 @@ xkb_symbols "eng" {
 // Author      : Mahesh T Pai <paiva...@gmail.com>
 // Date        : March, 2011
 // Source      : http://www.nongnu.org/smc/docs/images/ml_inscript_layout.jpg
-// Comment     : Based on the Inscript Keyboard created by M Baiju
+// Comment     : Based on the InScript Keyboard created by M Baiju
 // Mapping:
 
 partial alphanumeric_keys
 xkb_symbols "mal_enhanced" {
 
-    name[Group1] = "Malayalam (enhanced Inscript, with rupee)";
+    name[Group1] = "Malayalam (enhanced InScript, with rupee)";
 
    //From grave to backslash (\)
 
@@ -2264,7 +2387,7 @@ xkb_symbols "iipa" {
 // Contact - niranjanvikasta...@gmail.com
 
 xkb_symbols "marathi" {
-	name[Group1]="Marathi (enhanced Inscript)";
+	name[Group1]="Marathi (enhanced InScript)";
 	key <TLDE> { [ U0962, U090C,   grave, asciitilde  ] }; // Added  ॢ & ऌ
 	key <AE01> { [ U0967, exclam,       1, exclam      ] }; // Added exclamation mark
 	key <AE02> { [ U0968, U0945,       2, at          ] }; // Added ॅ
@@ -2454,3 +2577,11 @@ xkb_symbols "modi-kagapa" {
 
     include "level3(ralt_switch)"
 };
+
+// Navees, a phonetic keyboard layout for Urdu
+// https://saadatm.github.io/navees
+partial alphanumeric_keys
+xkb_symbols "urd-navees" {
+    include "pk(urd-navees)"
+    name[Group1]= "Urdu (Navees)";
+};

Index: xsrc/external/mit/xkeyboard-config/dist/symbols/pl
diff -u xsrc/external/mit/xkeyboard-config/dist/symbols/pl:1.3 xsrc/external/mit/xkeyboard-config/dist/symbols/pl:1.4
--- xsrc/external/mit/xkeyboard-config/dist/symbols/pl:1.3	Tue Apr 27 03:38:48 2021
+++ xsrc/external/mit/xkeyboard-config/dist/symbols/pl	Sun Jul 11 00:13:26 2021
@@ -518,7 +518,7 @@ xkb_symbols "colemak_dh" {
 };
 
 partial alphanumeric_keys
-       xkb_symbols "sun_type6" {
+xkb_symbols "sun_type6" {
        include "sun_vndr/pl(sun_type6)"
 };
 

Index: xsrc/external/mit/xorg-server/dist/configure
diff -u xsrc/external/mit/xorg-server/dist/configure:1.9 xsrc/external/mit/xorg-server/dist/configure:1.10
--- xsrc/external/mit/xorg-server/dist/configure:1.9	Tue Apr 27 04:01:25 2021
+++ xsrc/external/mit/xorg-server/dist/configure	Sun Jul 11 00:13:26 2021
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xorg-server 1.20.11.
+# Generated by GNU Autoconf 2.69 for xorg-server 1.20.12.
 #
 # Report bugs to <https://gitlab.freedesktop.org/xorg/xserver/issues>.
 #
@@ -651,8 +651,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='xorg-server'
 PACKAGE_TARNAME='xorg-server'
-PACKAGE_VERSION='1.20.11'
-PACKAGE_STRING='xorg-server 1.20.11'
+PACKAGE_VERSION='1.20.12'
+PACKAGE_STRING='xorg-server 1.20.12'
 PACKAGE_BUGREPORT='https://gitlab.freedesktop.org/xorg/xserver/issues'
 PACKAGE_URL=''
 
@@ -2045,7 +2045,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xorg-server 1.20.11 to adapt to many kinds of systems.
+\`configure' configures xorg-server 1.20.12 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2116,7 +2116,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xorg-server 1.20.11:";;
+     short | recursive ) echo "Configuration of xorg-server 1.20.12:";;
    esac
   cat <<\_ACEOF
 
@@ -2307,10 +2307,10 @@ Optional Packages:
                           org.x)
   --with-bundle-version=VERSION
                           Version to use for X11.app's CFBundleVersion
-                          (default: 1.20.11)
+                          (default: 1.20.12)
   --with-bundle-version-string=VERSION
                           Version to use for X11.app's
-                          CFBundleShortVersionString (default: 1.20.11)
+                          CFBundleShortVersionString (default: 1.20.12)
   --with-sparkle-feed-url=URL
                           URL for the Sparkle feed (default:
                           https://www.xquartz.org/releases/sparkle/release.xml)
@@ -2567,7 +2567,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xorg-server configure 1.20.11
+xorg-server configure 1.20.12
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3276,7 +3276,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xorg-server $as_me 1.20.11, which was
+It was created by xorg-server $as_me 1.20.12, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3624,8 +3624,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLA
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-RELEASE_DATE="2021-04-13"
-RELEASE_NAME="Arroz con Pollo"
+RELEASE_DATE="2021-07-08"
+RELEASE_NAME="Lemon Pepper Chicken"
 
 
 am__api_version='1.16'
@@ -3833,12 +3833,7 @@ program_transform_name=`$as_echo "$progr
 am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\	*)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
+  MISSING="\${SHELL} '$am_aux_dir/missing'"
 fi
 # Use eval to expand $SHELL
 if eval "$MISSING --is-lightweight"; then
@@ -4143,7 +4138,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='xorg-server'
- VERSION='1.20.11'
+ VERSION='1.20.12'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -23778,7 +23773,7 @@ _ACEOF
 if test "${with_bundle_version+set}" = set; then :
   withval=$with_bundle_version;  BUNDLE_VERSION="${withval}"
 else
-   BUNDLE_VERSION="1.20.11"
+   BUNDLE_VERSION="1.20.12"
 fi
 
 
@@ -31304,7 +31299,7 @@ if test "x$DMX" = xyes; then
 	fi
 	DMX_INCLUDES="$XEXT_INC $RENDER_INC $RECORD_INC"
 	XDMX_CFLAGS="$DMXMODULES_CFLAGS"
-	XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $RANDR_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB"
+	XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $RANDR_LIB $RENDER_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB"
 	XDMX_SYS_LIBS="$DMXMODULES_LIBS"
 
 
@@ -33623,7 +33618,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xorg-server $as_me 1.20.11, which was
+This file was extended by xorg-server $as_me 1.20.12, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -33689,7 +33684,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xorg-server config.status 1.20.11
+xorg-server config.status 1.20.12
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Index: xsrc/external/mit/xorg-server/dist/configure.ac
diff -u xsrc/external/mit/xorg-server/dist/configure.ac:1.11 xsrc/external/mit/xorg-server/dist/configure.ac:1.12
--- xsrc/external/mit/xorg-server/dist/configure.ac:1.11	Tue Apr 27 04:01:25 2021
+++ xsrc/external/mit/xorg-server/dist/configure.ac	Sun Jul 11 00:13:26 2021
@@ -26,12 +26,12 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.60)
-AC_INIT([xorg-server], 1.20.11, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
-RELEASE_DATE="2021-04-13"
-RELEASE_NAME="Arroz con Pollo"
+AC_INIT([xorg-server], 1.20.12, [https://gitlab.freedesktop.org/xorg/xserver/issues], xorg-server)
+RELEASE_DATE="2021-07-08"
+RELEASE_NAME="Lemon Pepper Chicken"
 AC_CONFIG_SRCDIR([Makefile.am])
 AC_CONFIG_MACRO_DIR([m4])
-AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AM_INIT_AUTOMAKE([foreign dist-xz])
 AC_USE_SYSTEM_EXTENSIONS
 
 # Require xorg-macros minimum of 1.14 for XORG_COMPILER_BRAND in XORG_DEFAULT_OPTIONS
@@ -2236,7 +2236,7 @@ if test "x$DMX" = xyes; then
 	fi
 	DMX_INCLUDES="$XEXT_INC $RENDER_INC $RECORD_INC"
 	XDMX_CFLAGS="$DMXMODULES_CFLAGS"
-	XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $RANDR_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB"
+	XDMX_LIBS="$FB_LIB $MI_LIB $XEXT_LIB $RENDER_LIB $RECORD_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $DRI3_LIB $PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_SHADOW_LIB $MIEXT_DAMAGE_LIB $COMPOSITE_LIB $DAMAGE_LIB $MAIN_LIB $DIX_LIB $RANDR_LIB $RENDER_LIB $CONFIG_LIB $OS_LIB $FIXES_LIB"
 	XDMX_SYS_LIBS="$DMXMODULES_LIBS"
 	AC_SUBST([XDMX_CFLAGS])
 	AC_SUBST([XDMX_LIBS])

Index: xsrc/external/mit/xorg-server/dist/dix/devices.c
diff -u xsrc/external/mit/xorg-server/dist/dix/devices.c:1.11 xsrc/external/mit/xorg-server/dist/dix/devices.c:1.12
--- xsrc/external/mit/xorg-server/dist/dix/devices.c:1.11	Sat Dec  5 20:34:04 2020
+++ xsrc/external/mit/xorg-server/dist/dix/devices.c	Sun Jul 11 00:13:27 2021
@@ -2261,6 +2261,9 @@ ProcChangePointerControl(ClientPtr clien
     REQUEST(xChangePointerControlReq);
     REQUEST_SIZE_MATCH(xChangePointerControlReq);
 
+    /* If the device has no PtrFeedbackPtr, the xserver has a bug */
+    BUG_RETURN_VAL (!mouse->ptrfeed, BadImplementation);
+
     ctrl = mouse->ptrfeed->ctrl;
     if ((stuff->doAccel != xTrue) && (stuff->doAccel != xFalse)) {
         client->errorValue = stuff->doAccel;

Index: xsrc/external/mit/xorg-server/dist/glx/glxcmds.c
diff -u xsrc/external/mit/xorg-server/dist/glx/glxcmds.c:1.13 xsrc/external/mit/xorg-server/dist/glx/glxcmds.c:1.14
--- xsrc/external/mit/xorg-server/dist/glx/glxcmds.c:1.13	Sun Feb 23 10:26:22 2020
+++ xsrc/external/mit/xorg-server/dist/glx/glxcmds.c	Sun Jul 11 00:13:27 2021
@@ -473,8 +473,15 @@ __glXGetDrawable(__GLXcontext * glxc, GL
     __GLXscreen *pGlxScreen;
     int rc;
 
-    if (validGlxDrawable(client, drawId, GLX_DRAWABLE_ANY,
-                         DixWriteAccess, &pGlxDraw, &rc)) {
+    rc = dixLookupResourceByType((void **)&pGlxDraw, drawId,
+                                 __glXDrawableRes, client, DixWriteAccess);
+    if (rc == Success &&
+        /* If pGlxDraw->drawId == drawId, drawId is a valid GLX drawable.
+         * Otherwise, if pGlxDraw->type == GLX_DRAWABLE_WINDOW, drawId is
+         * an X window, but the client has already created a GLXWindow
+         * associated with it, so we don't want to create another one. */
+        (pGlxDraw->drawId == drawId ||
+         pGlxDraw->type == GLX_DRAWABLE_WINDOW)) {
         if (glxc != NULL &&
             glxc->config != NULL &&
             glxc->config != pGlxDraw->config) {
@@ -641,10 +648,11 @@ xorgGlxMakeCurrent(ClientPtr client, GLX
             glxc->readPriv = NULL;
             return __glXError(GLXBadContext);
         }
+    }
 
+    glxServer.setContextTagPrivate(client, newContextTag, glxc);
+    if (glxc)
         glxc->currentClient = client;
-        glxServer.setContextTagPrivate(client, newContextTag, glxc);
-    }
 
     if (prevglxc) {
         prevglxc->currentClient = NULL;

Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Bus.c
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Bus.c:1.7 xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Bus.c:1.8
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Bus.c:1.7	Mon Dec 31 09:50:00 2018
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Bus.c	Sun Jul 11 00:13:27 2021
@@ -525,8 +525,8 @@ xf86GetDevFromEntity(int entityIndex, in
 
     for (i = 0; i < xf86Entities[entityIndex]->numInstances; i++)
         if (xf86Entities[entityIndex]->devices[i]->screen == instance)
-            break;
-    return xf86Entities[entityIndex]->devices[i];
+            return xf86Entities[entityIndex]->devices[i];
+    return NULL;
 }
 
 /*

Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c:1.15 xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c:1.16
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c:1.15	Mon Dec 31 09:50:00 2018
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Config.c	Sun Jul 11 00:13:27 2021
@@ -1771,31 +1771,30 @@ configScreen(confScreenPtr screenp, XF86
         count++;
         dispptr = (XF86ConfDisplayPtr) dispptr->list.next;
     }
-    screenp->displays = xnfallocarray(count, sizeof(DispRec));
+    screenp->displays = xnfallocarray(count, sizeof(DispPtr));
     screenp->numdisplays = count;
 
-    /* Fill in the default Virtual size, if any */
-    if (conf_screen->scrn_virtualX && conf_screen->scrn_virtualY) {
-        for (count = 0, dispptr = conf_screen->scrn_display_lst;
-             dispptr;
-             dispptr = (XF86ConfDisplayPtr) dispptr->list.next, count++) {
-            screenp->displays[count].virtualX = conf_screen->scrn_virtualX;
-            screenp->displays[count].virtualY = conf_screen->scrn_virtualY;
+    for (count = 0, dispptr = conf_screen->scrn_display_lst;
+         dispptr;
+         dispptr = (XF86ConfDisplayPtr) dispptr->list.next, count++) {
+
+        /* Allocate individual Display records */
+        screenp->displays[count] = xnfcalloc(1, sizeof(DispRec));
+
+        /* Fill in the default Virtual size, if any */
+        if (conf_screen->scrn_virtualX && conf_screen->scrn_virtualY) {
+            screenp->displays[count]->virtualX = conf_screen->scrn_virtualX;
+            screenp->displays[count]->virtualY = conf_screen->scrn_virtualY;
         }
-    }
 
-    /* Now do the per-Display Virtual sizes */
-    count = 0;
-    dispptr = conf_screen->scrn_display_lst;
-    while (dispptr) {
-        configDisplay(&(screenp->displays[count]), dispptr);
-        count++;
-        dispptr = (XF86ConfDisplayPtr) dispptr->list.next;
+        /* Now do the per-Display Virtual sizes */
+        configDisplay(screenp->displays[count], dispptr);
     }
 
     /*
      * figure out how many videoadaptor references there are and fill them in
      */
+    count = 0;
     conf_adaptor = conf_screen->scrn_adaptor_lst;
     while (conf_adaptor) {
         count++;

Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Helper.c
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Helper.c:1.4 xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Helper.c:1.5
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Helper.c:1.4	Mon Dec 31 09:50:00 2018
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86Helper.c	Sun Jul 11 00:13:27 2021
@@ -525,8 +525,8 @@ xf86SetDepthBpp(ScrnInfoPtr scrp, int de
      * Find the Display subsection matching the depth/fbbpp and initialise
      * scrp->display with it.
      */
-    for (i = 0, disp = scrp->confScreen->displays;
-         i < scrp->confScreen->numdisplays; i++, disp++) {
+    for (i = 0; i < scrp->confScreen->numdisplays; i++) {
+        disp = scrp->confScreen->displays[i];
         if ((disp->depth == scrp->depth && disp->fbbpp == scrp->bitsPerPixel)
             || (disp->depth == scrp->depth && disp->fbbpp <= 0)
             || (disp->fbbpp == scrp->bitsPerPixel && disp->depth <= 0)) {
@@ -540,8 +540,8 @@ xf86SetDepthBpp(ScrnInfoPtr scrp, int de
      * depth or fbbpp specified.
      */
     if (i == scrp->confScreen->numdisplays) {
-        for (i = 0, disp = scrp->confScreen->displays;
-             i < scrp->confScreen->numdisplays; i++, disp++) {
+        for (i = 0; i < scrp->confScreen->numdisplays; i++) {
+            disp = scrp->confScreen->displays[i];
             if (disp->depth <= 0 && disp->fbbpp <= 0) {
                 scrp->display = disp;
                 break;
@@ -556,24 +556,25 @@ xf86SetDepthBpp(ScrnInfoPtr scrp, int de
         scrp->confScreen->numdisplays++;
         scrp->confScreen->displays =
             xnfreallocarray(scrp->confScreen->displays,
-                            scrp->confScreen->numdisplays, sizeof(DispRec));
+                            scrp->confScreen->numdisplays, sizeof(DispPtr));
         xf86DrvMsg(scrp->scrnIndex, X_INFO,
                    "Creating default Display subsection in Screen section\n"
                    "\t\"%s\" for depth/fbbpp %d/%d\n",
                    scrp->confScreen->id, scrp->depth, scrp->bitsPerPixel);
-        memset(&scrp->confScreen->displays[i], 0, sizeof(DispRec));
-        scrp->confScreen->displays[i].blackColour.red = -1;
-        scrp->confScreen->displays[i].blackColour.green = -1;
-        scrp->confScreen->displays[i].blackColour.blue = -1;
-        scrp->confScreen->displays[i].whiteColour.red = -1;
-        scrp->confScreen->displays[i].whiteColour.green = -1;
-        scrp->confScreen->displays[i].whiteColour.blue = -1;
-        scrp->confScreen->displays[i].defaultVisual = -1;
-        scrp->confScreen->displays[i].modes = xnfalloc(sizeof(char *));
-        scrp->confScreen->displays[i].modes[0] = NULL;
-        scrp->confScreen->displays[i].depth = depth;
-        scrp->confScreen->displays[i].fbbpp = fbbpp;
-        scrp->display = &scrp->confScreen->displays[i];
+        scrp->confScreen->displays[i] = xnfcalloc(1, sizeof(DispRec));
+        memset(scrp->confScreen->displays[i], 0, sizeof(DispRec));
+        scrp->confScreen->displays[i]->blackColour.red = -1;
+        scrp->confScreen->displays[i]->blackColour.green = -1;
+        scrp->confScreen->displays[i]->blackColour.blue = -1;
+        scrp->confScreen->displays[i]->whiteColour.red = -1;
+        scrp->confScreen->displays[i]->whiteColour.green = -1;
+        scrp->confScreen->displays[i]->whiteColour.blue = -1;
+        scrp->confScreen->displays[i]->defaultVisual = -1;
+        scrp->confScreen->displays[i]->modes = xnfalloc(sizeof(char *));
+        scrp->confScreen->displays[i]->modes[0] = NULL;
+        scrp->confScreen->displays[i]->depth = depth;
+        scrp->confScreen->displays[i]->fbbpp = fbbpp;
+        scrp->display = scrp->confScreen->displays[i];
     }
 
     /*

Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86str.h
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86str.h:1.5 xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86str.h:1.6
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86str.h:1.5	Mon Dec 31 09:50:00 2018
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/common/xf86str.h	Sun Jul 11 00:13:27 2021
@@ -350,7 +350,7 @@ typedef struct _confscreenrec {
     MonPtr monitor;
     GDevPtr device;
     int numdisplays;
-    DispPtr displays;
+    DispPtr *displays;
     int numxvadaptors;
     confXvAdaptorPtr xvadaptors;
     void *options;

Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.c
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.c:1.5 xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.c:1.6
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.c:1.5	Sat Dec  5 20:34:04 2020
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.c	Sun Jul 11 00:13:27 2021
@@ -1747,28 +1747,41 @@ ScreenInit(ScreenPtr pScreen, int argc, 
                        "Failed to initialize the DRI2 extension.\n");
         }
 
-        if (!(ms->drmmode.present_enable = ms_present_screen_init(pScreen))) {
-            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                       "Failed to initialize the Present extension.\n");
-        }
         /* enable reverse prime if we are a GPU screen, and accelerated, and not
-         * i915. i915 is happy scanning out from sysmem. */
+         * i915, evdi or udl. i915 is happy scanning out from sysmem.
+         * evdi and udl are virtual drivers scanning out from sysmem
+         * backed dumb buffers.
+         */
         if (pScreen->isGPU) {
             drmVersionPtr version;
 
             /* enable if we are an accelerated GPU screen */
             ms->drmmode.reverse_prime_offload_mode = TRUE;
 
-            /* disable if we detect i915 */
             if ((version = drmGetVersion(ms->drmmode.fd))) {
                 if (!strncmp("i915", version->name, version->name_len)) {
                     ms->drmmode.reverse_prime_offload_mode = FALSE;
                 }
+                if (!strncmp("evdi", version->name, version->name_len)) {
+                    ms->drmmode.reverse_prime_offload_mode = FALSE;
+                }
+                if (!strncmp("udl", version->name, version->name_len)) {
+                    ms->drmmode.reverse_prime_offload_mode = FALSE;
+                }
+                if (!ms->drmmode.reverse_prime_offload_mode) {
+                    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                       "Disable reverse prime offload mode for %s.\n", version->name);
+                }
                 drmFreeVersion(version);
             }
         }
     }
 #endif
+    if (!(ms->drmmode.present_enable = ms_present_screen_init(pScreen))) {
+        xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+                   "Failed to initialize the Present extension.\n");
+    }
+
 
     pScrn->vtSema = TRUE;
 
Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.h
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.h:1.5 xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.h:1.6
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.h:1.5	Sat Dec  5 20:34:04 2020
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/driver.h	Sun Jul 11 00:13:27 2021
@@ -146,7 +146,7 @@ void ms_drm_abort(ScrnInfoPtr scrn,
                   void *match_data);
 void ms_drm_abort_seq(ScrnInfoPtr scrn, uint32_t seq);
 
-Bool ms_crtc_on(xf86CrtcPtr crtc);
+Bool xf86_crtc_on(xf86CrtcPtr crtc);
 
 xf86CrtcPtr ms_dri2_crtc_covering_drawable(DrawablePtr pDraw);
 RRCrtcPtr   ms_randr_crtc_covering_drawable(DrawablePtr pDraw);
Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/present.c
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/present.c:1.5 xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/present.c:1.6
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/present.c:1.5	Sat Dec  5 20:34:04 2020
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/present.c	Sun Jul 11 00:13:27 2021
@@ -244,7 +244,7 @@ ms_present_check_unflip(RRCrtcPtr crtc,
         if (drmmode_crtc->rotate_bo.gbm)
             return FALSE;
 
-        if (ms_crtc_on(config->crtc[i]))
+        if (xf86_crtc_on(config->crtc[i]))
             num_crtcs_on++;
     }
 

Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/drmmode_display.c
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/drmmode_display.c:1.6 xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/drmmode_display.c:1.7
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/drmmode_display.c:1.6	Sat Dec  5 20:34:04 2020
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/drmmode_display.c	Sun Jul 11 00:13:27 2021
@@ -3001,9 +3001,9 @@ drmmode_output_init(ScrnInfoPtr pScrn, d
     output->driver_private = drmmode_output;
     output->non_desktop = nonDesktop;
 
-    output->possible_crtcs = 0x7f;
+    output->possible_crtcs = 0;
     for (i = 0; i < koutput->count_encoders; i++) {
-        output->possible_crtcs &= kencoders[i]->possible_crtcs >> crtcshift;
+        output->possible_crtcs |= (kencoders[i]->possible_crtcs >> crtcshift) & 0x7f;
     }
     /* work out the possible clones later */
     output->possible_clones = 0;
@@ -3025,8 +3025,14 @@ drmmode_output_init(ScrnInfoPtr pScrn, d
                                 "DPMS");
     }
 
-    if (dynamic)
+    if (dynamic) {
         output->randr_output = RROutputCreate(xf86ScrnToScreen(pScrn), output->name, strlen(output->name), output);
+        if (output->randr_output) {
+            drmmode_output_create_resources(output);
+            RRPostPendingProperties(output->randr_output);
+        }
+    }
+
     return 1;
 
  out_free_encoders:
Index: xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/vblank.c
diff -u xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/vblank.c:1.6 xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/vblank.c:1.7
--- xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/vblank.c:1.6	Sat Dec  5 20:34:04 2020
+++ xsrc/external/mit/xorg-server/dist/hw/xfree86/drivers/modesetting/vblank.c	Sun Jul 11 00:13:27 2021
@@ -49,7 +49,7 @@
 static struct xorg_list ms_drm_queue;
 static uint32_t ms_drm_seq;
 
-static void ms_box_intersect(BoxPtr dest, BoxPtr a, BoxPtr b)
+static void box_intersect(BoxPtr dest, BoxPtr a, BoxPtr b)
 {
     dest->x1 = a->x1 > b->x1 ? a->x1 : b->x1;
     dest->x2 = a->x2 < b->x2 ? a->x2 : b->x2;
@@ -64,20 +64,7 @@ static void ms_box_intersect(BoxPtr dest
         dest->x1 = dest->x2 = dest->y1 = dest->y2 = 0;
 }
 
-static void ms_crtc_box(xf86CrtcPtr crtc, BoxPtr crtc_box)
-{
-    if (crtc->enabled) {
-        crtc_box->x1 = crtc->x;
-        crtc_box->x2 =
-            crtc->x + xf86ModeWidth(&crtc->mode, crtc->rotation);
-        crtc_box->y1 = crtc->y;
-        crtc_box->y2 =
-            crtc->y + xf86ModeHeight(&crtc->mode, crtc->rotation);
-    } else
-        crtc_box->x1 = crtc_box->x2 = crtc_box->y1 = crtc_box->y2 = 0;
-}
-
-static void ms_randr_crtc_box(RRCrtcPtr crtc, BoxPtr crtc_box)
+static void rr_crtc_box(RRCrtcPtr crtc, BoxPtr crtc_box)
 {
     if (crtc->mode) {
         crtc_box->x1 = crtc->x;
@@ -99,133 +86,44 @@ static void ms_randr_crtc_box(RRCrtcPtr 
         crtc_box->x1 = crtc_box->x2 = crtc_box->y1 = crtc_box->y2 = 0;
 }
 
-static int ms_box_area(BoxPtr box)
+static int box_area(BoxPtr box)
 {
     return (int)(box->x2 - box->x1) * (int)(box->y2 - box->y1);
 }
 
+static Bool rr_crtc_on(RRCrtcPtr crtc, Bool crtc_is_xf86_hint)
+{
+    if (!crtc) {
+        return FALSE;
+    }
+    if (crtc_is_xf86_hint && crtc->devPrivate) {
+         return xf86_crtc_on(crtc->devPrivate);
+    } else {
+        return !!crtc->mode;
+    }
+}
+
 Bool
-ms_crtc_on(xf86CrtcPtr crtc)
+xf86_crtc_on(xf86CrtcPtr crtc)
 {
     drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
 
     return crtc->enabled && drmmode_crtc->dpms_mode == DPMSModeOn;
 }
 
-/*
- * Return the first output which is connected to an active CRTC on this screen.
- *
- * RRFirstOutput() will return an output from a slave screen if it is primary,
- * which is not the behavior that ms_covering_crtc() wants.
- */
-
-static RROutputPtr ms_first_output(ScreenPtr pScreen)
-{
-    rrScrPriv(pScreen);
-    RROutputPtr output;
-    int i, j;
-
-    if (!pScrPriv)
-        return NULL;
-
-    if (pScrPriv->primaryOutput && pScrPriv->primaryOutput->crtc &&
-        (pScrPriv->primaryOutput->pScreen == pScreen)) {
-        return pScrPriv->primaryOutput;
-    }
-
-    for (i = 0; i < pScrPriv->numCrtcs; i++) {
-        RRCrtcPtr crtc = pScrPriv->crtcs[i];
-
-        for (j = 0; j < pScrPriv->numOutputs; j++) {
-            output = pScrPriv->outputs[j];
-            if (output->crtc == crtc)
-                return output;
-        }
-    }
-    return NULL;
-}
 
 /*
  * Return the crtc covering 'box'. If two crtcs cover a portion of
  * 'box', then prefer the crtc with greater coverage.
  */
-
-static xf86CrtcPtr
-ms_covering_xf86_crtc(ScreenPtr pScreen, BoxPtr box, Bool screen_is_ms)
-{
-    ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen);
-    xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
-    xf86CrtcPtr crtc, best_crtc;
-    int coverage, best_coverage;
-    int c;
-    BoxRec crtc_box, cover_box;
-    Bool crtc_on;
-
-    best_crtc = NULL;
-    best_coverage = 0;
-
-    if (!xf86_config)
-        return NULL;
-
-    for (c = 0; c < xf86_config->num_crtc; c++) {
-        crtc = xf86_config->crtc[c];
-
-        if (screen_is_ms)
-            crtc_on = ms_crtc_on(crtc);
-        else
-            crtc_on = crtc->enabled;
-
-        /* If the CRTC is off, treat it as not covering */
-        if (!crtc_on)
-            continue;
-
-        ms_crtc_box(crtc, &crtc_box);
-        ms_box_intersect(&cover_box, &crtc_box, box);
-        coverage = ms_box_area(&cover_box);
-        if (coverage > best_coverage) {
-            best_crtc = crtc;
-            best_coverage = coverage;
-        }
-    }
-
-    /* Fallback to primary crtc for drawable's on slave outputs */
-    if (best_crtc == NULL && !pScreen->isGPU) {
-        RROutputPtr primary_output = NULL;
-        ScreenPtr slave;
-
-        if (dixPrivateKeyRegistered(rrPrivKey))
-            primary_output = ms_first_output(scrn->pScreen);
-        if (!primary_output || !primary_output->crtc)
-            return NULL;
-
-        crtc = primary_output->crtc->devPrivate;
-        if (!ms_crtc_on(crtc))
-            return NULL;
-
-        xorg_list_for_each_entry(slave, &pScreen->slave_list, slave_head) {
-            if (!slave->is_output_slave)
-                continue;
-
-            if (ms_covering_xf86_crtc(slave, box, FALSE)) {
-                /* The drawable is on a slave output, return primary crtc */
-                return crtc;
-            }
-        }
-    }
-
-    return best_crtc;
-}
-
 static RRCrtcPtr
-ms_covering_randr_crtc(ScreenPtr pScreen, BoxPtr box, Bool screen_is_ms)
+rr_crtc_covering_box(ScreenPtr pScreen, BoxPtr box, Bool screen_is_xf86_hint)
 {
-    ScrnInfoPtr scrn = xf86ScreenToScrn(pScreen);
     rrScrPrivPtr pScrPriv;
     RRCrtcPtr crtc, best_crtc;
     int coverage, best_coverage;
     int c;
     BoxRec crtc_box, cover_box;
-    Bool crtc_on;
 
     best_crtc = NULL;
     best_coverage = 0;
@@ -241,57 +139,47 @@ ms_covering_randr_crtc(ScreenPtr pScreen
     for (c = 0; c < pScrPriv->numCrtcs; c++) {
         crtc = pScrPriv->crtcs[c];
 
-        if (screen_is_ms) {
-            crtc_on = ms_crtc_on((xf86CrtcPtr) crtc->devPrivate);
-        } else {
-            crtc_on = !!crtc->mode;
-        }
-
         /* If the CRTC is off, treat it as not covering */
-        if (!crtc_on)
+        if (!rr_crtc_on(crtc, screen_is_xf86_hint))
             continue;
 
-        ms_randr_crtc_box(crtc, &crtc_box);
-        ms_box_intersect(&cover_box, &crtc_box, box);
-        coverage = ms_box_area(&cover_box);
+        rr_crtc_box(crtc, &crtc_box);
+        box_intersect(&cover_box, &crtc_box, box);
+        coverage = box_area(&cover_box);
         if (coverage > best_coverage) {
             best_crtc = crtc;
             best_coverage = coverage;
         }
     }
 
-    /* Fallback to primary crtc for drawable's on slave outputs */
-    if (best_crtc == NULL && !pScreen->isGPU) {
-        RROutputPtr primary_output = NULL;
-        ScreenPtr slave;
+    return best_crtc;
+}
 
-        if (dixPrivateKeyRegistered(rrPrivKey))
-            primary_output = ms_first_output(scrn->pScreen);
-        if (!primary_output || !primary_output->crtc)
-            return NULL;
-
-        crtc = primary_output->crtc;
-        if (!ms_crtc_on((xf86CrtcPtr) crtc->devPrivate))
-            return NULL;
+static RRCrtcPtr
+rr_crtc_covering_box_on_slave(ScreenPtr pScreen, BoxPtr box)
+{
+    if (!pScreen->isGPU) {
+        ScreenPtr slave;
+        RRCrtcPtr crtc = NULL;
 
         xorg_list_for_each_entry(slave, &pScreen->slave_list, slave_head) {
             if (!slave->is_output_slave)
                 continue;
 
-            if (ms_covering_randr_crtc(slave, box, FALSE)) {
-                /* The drawable is on a slave output, return primary crtc */
+            crtc = rr_crtc_covering_box(slave, box, FALSE);
+            if (crtc)
                 return crtc;
-            }
         }
     }
 
-    return best_crtc;
+    return NULL;
 }
 
 xf86CrtcPtr
 ms_dri2_crtc_covering_drawable(DrawablePtr pDraw)
 {
     ScreenPtr pScreen = pDraw->pScreen;
+    RRCrtcPtr crtc = NULL;
     BoxRec box;
 
     box.x1 = pDraw->x;
@@ -299,13 +187,18 @@ ms_dri2_crtc_covering_drawable(DrawableP
     box.x2 = box.x1 + pDraw->width;
     box.y2 = box.y1 + pDraw->height;
 
-    return ms_covering_xf86_crtc(pScreen, &box, TRUE);
+    crtc = rr_crtc_covering_box(pScreen, &box, TRUE);
+    if (crtc) {
+        return crtc->devPrivate;
+    }
+    return NULL;
 }
 
 RRCrtcPtr
 ms_randr_crtc_covering_drawable(DrawablePtr pDraw)
 {
     ScreenPtr pScreen = pDraw->pScreen;
+    RRCrtcPtr crtc = NULL;
     BoxRec box;
 
     box.x1 = pDraw->x;
@@ -313,7 +206,11 @@ ms_randr_crtc_covering_drawable(Drawable
     box.x2 = box.x1 + pDraw->width;
     box.y2 = box.y1 + pDraw->height;
 
-    return ms_covering_randr_crtc(pScreen, &box, TRUE);
+    crtc = rr_crtc_covering_box(pScreen, &box, TRUE);
+    if (!crtc) {
+        crtc = rr_crtc_covering_box_on_slave(pScreen, &box);
+    }
+    return crtc;
 }
 
 static Bool

Index: xsrc/external/mit/xorg-server/dist/randr/randrstr.h
diff -u xsrc/external/mit/xorg-server/dist/randr/randrstr.h:1.6 xsrc/external/mit/xorg-server/dist/randr/randrstr.h:1.7
--- xsrc/external/mit/xorg-server/dist/randr/randrstr.h:1.6	Wed Jan 23 16:57:01 2019
+++ xsrc/external/mit/xorg-server/dist/randr/randrstr.h	Sun Jul 11 00:13:27 2021
@@ -650,6 +650,11 @@ extern _X_EXPORT void
 extern _X_EXPORT RRCrtcPtr RRCrtcCreate(ScreenPtr pScreen, void *devPrivate);
 
 /*
+ * Tests if findCrtc belongs to pScreen or slave screens
+ */
+extern _X_EXPORT Bool RRCrtcExists(ScreenPtr pScreen, RRCrtcPtr findCrtc);
+
+/*
  * Set the allowed rotations on a CRTC
  */
 extern _X_EXPORT void

Index: xsrc/external/mit/xorg-server/include/dix-config.h
diff -u xsrc/external/mit/xorg-server/include/dix-config.h:1.41 xsrc/external/mit/xorg-server/include/dix-config.h:1.42
--- xsrc/external/mit/xorg-server/include/dix-config.h:1.41	Tue Apr 27 04:01:42 2021
+++ xsrc/external/mit/xorg-server/include/dix-config.h	Sun Jul 11 00:13:27 2021
@@ -355,7 +355,7 @@
 #define XINERAMA 1
 
 /* Current Xorg version */
-#define XORG_VERSION_CURRENT (((1) * 10000000) + ((20) * 100000) + ((11) * 1000) + 0)
+#define XORG_VERSION_CURRENT (((1) * 10000000) + ((20) * 100000) + ((12) * 1000) + 0)
 
 /* Build Xv Extension */
 #define XvExtension 1

Index: xsrc/external/mit/xorg-server/include/version-config.h
diff -u xsrc/external/mit/xorg-server/include/version-config.h:1.12 xsrc/external/mit/xorg-server/include/version-config.h:1.13
--- xsrc/external/mit/xorg-server/include/version-config.h:1.12	Tue Apr 27 04:01:42 2021
+++ xsrc/external/mit/xorg-server/include/version-config.h	Sun Jul 11 00:13:27 2021
@@ -5,13 +5,13 @@
 #define VERSION_CONFIG_H
 
 /* Vendor man version */
-#define VENDOR_MAN_VERSION "Version 1.20.11"
+#define VENDOR_MAN_VERSION "Version 1.20.12"
 
 /* Vendor name */
 /* #define VENDOR_NAME "The X.Org Foundation" */
 
 /* Vendor release */
-#define VENDOR_RELEASE (((1) * 10000000) + ((20) * 100000) + ((11) * 1000) + 0)
+#define VENDOR_RELEASE (((1) * 10000000) + ((20) * 100000) + ((12) * 1000) + 0)
 
 #endif /* VERSION_CONFIG_H */
 

Index: xsrc/external/mit/xorg-server/include/xf86Build.h
diff -u xsrc/external/mit/xorg-server/include/xf86Build.h:1.11 xsrc/external/mit/xorg-server/include/xf86Build.h:1.12
--- xsrc/external/mit/xorg-server/include/xf86Build.h:1.11	Sun Feb 23 10:26:56 2020
+++ xsrc/external/mit/xorg-server/include/xf86Build.h	Sun Jul 11 00:13:27 2021
@@ -1,2 +1,2 @@
-#define BUILD_DATE 20200223
-#define BUILD_TIME 71123
+#define BUILD_DATE 20210709
+#define BUILD_TIME 171111

Index: xsrc/external/mit/xorg-server/include/xorg-config.h
diff -u xsrc/external/mit/xorg-server/include/xorg-config.h:1.22 xsrc/external/mit/xorg-server/include/xorg-config.h:1.23
--- xsrc/external/mit/xorg-server/include/xorg-config.h:1.22	Tue Apr 27 04:01:42 2021
+++ xsrc/external/mit/xorg-server/include/xorg-config.h	Sun Jul 11 00:13:27 2021
@@ -17,7 +17,7 @@
 #define XORGSERVER 1
 
 /* Current X.Org version. */
-#define XORG_VERSION_CURRENT (((1) * 10000000) + ((20) * 100000) + ((11) * 1000) + 0)
+#define XORG_VERSION_CURRENT (((1) * 10000000) + ((20) * 100000) + ((12) * 1000) + 0)
 
 /* Name of X server. */
 #define __XSERVERNAME__ "Xorg"
Index: xsrc/external/mit/xorg-server/include/xorg-server.h
diff -u xsrc/external/mit/xorg-server/include/xorg-server.h:1.22 xsrc/external/mit/xorg-server/include/xorg-server.h:1.23
--- xsrc/external/mit/xorg-server/include/xorg-server.h:1.22	Tue Apr 27 04:01:42 2021
+++ xsrc/external/mit/xorg-server/include/xorg-server.h	Sun Jul 11 00:13:27 2021
@@ -140,7 +140,7 @@
 #define XORGSERVER 1
 
 /* Current Xorg version */
-#define XORG_VERSION_CURRENT (((1) * 10000000) + ((20) * 100000) + ((11) * 1000) + 0)
+#define XORG_VERSION_CURRENT (((1) * 10000000) + ((20) * 100000) + ((12) * 1000) + 0)
 
 /* Build Xv Extension */
 #define XvExtension 1

Reply via email to