From c9092b96ef4f2fd32f7b7ae8bdefd0880ecf3964 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 19:49:46 +0000
Subject: perl-sys-cpu: initial inclusion. dep of zoneminder

---
 abs/core/perl_modules/perl-sys-cpu/PKGBUILD | 30 +++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-sys-cpu/PKGBUILD

diff --git a/abs/core/perl_modules/perl-sys-cpu/PKGBUILD b/abs/core/perl_modules/perl-sys-cpu/PKGBUILD
new file mode 100644
index 0000000..325fd89
--- /dev/null
+++ b/abs/core/perl_modules/perl-sys-cpu/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Chris Kitching <chriskitching@linux.com>
+# Essentially stolen from Nathan Hulse <nat.hulse@gmail.com>
+# Oddly it disappeared from the AUR, and I want creduce, so I dug it
+# up and mopped the blood off.
+
+pkgname=perl-sys-cpu
+pkgver=0.61
+pkgrel=1
+pkgdesc="Perl extension for getting CPU information. Currently only number of CPU's supported."
+arch=('any')
+url="http://search.cpan.org/~mkoderer/Sys-CPU-$pkgver/"
+license=('GPL' 'PerlArtistic')
+depends=('perl>=5.10.0')
+options=(!emptydirs)
+source=(https://cpan.metacpan.org/authors/id/M/MZ/MZSANFORD/Sys-CPU-$pkgver.tar.gz)
+md5sums=(f43a3a50ac2dca6c1485a859ebef09b2)
+
+build() {
+  cd "$srcdir/Sys-CPU-$pkgver"
+
+  # Install module in vendor directories.
+  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+  make
+}
+
+package() {
+  cd "$srcdir/Sys-CPU-$pkgver"
+  make install DESTDIR="$pkgdir/"
+}
+
-- 
cgit v0.12


From 2b2bd3bad6de87608e3ba8e257384072d3d5059a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 19:50:18 +0000
Subject: perl-sys-meminfo: initial inclusion. dep of zoneminder

---
 abs/core/perl_modules/perl-sys-meminfo/PKGBUILD | 50 +++++++++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-sys-meminfo/PKGBUILD

diff --git a/abs/core/perl_modules/perl-sys-meminfo/PKGBUILD b/abs/core/perl_modules/perl-sys-meminfo/PKGBUILD
new file mode 100644
index 0000000..05ef17d
--- /dev/null
+++ b/abs/core/perl_modules/perl-sys-meminfo/PKGBUILD
@@ -0,0 +1,50 @@
+# Contributor: Francesco Di Battista <teme.[nospace]84 -_AT_- the domain name google offers a mail service at ending in dot com>
+# Generator  : CPANPLUS::Dist::Arch 1.25
+
+pkgname='perl-sys-meminfo'
+pkgver='0.98'
+pkgrel='1'
+pkgdesc="Perl extension for return the total amount of physical memory"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl')
+makedepends=()
+url='http://search.cpan.org/dist/Sys-MemInfo'
+source=('http://search.cpan.org/CPAN/authors/id/S/SC/SCRESTO/Sys-MemInfo-0.98.tar.gz')
+md5sums=('a5636cf6ae8f1b32253b3ca6fa63653b')
+sha512sums=('06f3d5d5678832c688dae6b50392cfe549a105359be5d868d020bbb34839216ded7138cac1788d398330deaf260789e91a7a2c3f4998af1ddedf33006c31e1d4')
+_distdir="Sys-MemInfo-0.98"
+
+build() {
+  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""                 \
+      PERL_AUTOINSTALL=--skipdeps                            \
+      PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'"     \
+      PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+      MODULEBUILDRC=/dev/null
+
+    cd "$srcdir/$_distdir"
+    /usr/bin/perl Makefile.PL
+    make
+  )
+}
+
+check() {
+  cd "$srcdir/$_distdir"
+  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+    make test
+  )
+}
+
+package() {
+  cd "$srcdir/$_distdir"
+  make install
+
+  find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From 5fffd23a74587a7d6510a071c298594248fb605e Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 20:05:36 +0000
Subject: zoneminder: update to 1.30.2.r45

---
 abs/core/zoneminder/PKGBUILD | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/abs/core/zoneminder/PKGBUILD b/abs/core/zoneminder/PKGBUILD
index e48da09..5fea7e4 100644
--- a/abs/core/zoneminder/PKGBUILD
+++ b/abs/core/zoneminder/PKGBUILD
@@ -11,7 +11,7 @@
 # Orginally based on a Debian Squeeze package
 _pkgname=zoneminder
 pkgname=zoneminder
-pkgver=1.30.0.r107.g66ae5c5
+pkgver=1.30.2.r45.ga43adc2
 pkgrel=1
 pkgdesc='Capture, analyse, record and monitor video security cameras'
 arch=( i686 x86_64 mips64el arm armv7h )
@@ -26,6 +26,7 @@ depends=(
     gnutls polkit
     perl-expect perl-archive-zip perl-date-manip
     perl-mime-lite perl-mime-tools
+    perl-sys-cpu perl-sys-meminfo
 )
 makedepends=(
     cmake make gcc netpbm
-- 
cgit v0.12


From 23fc529512749cd93ce1a049360038514c719ad0 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 20:07:28 +0000
Subject: nano: update to 2.7.5

---
 abs/core/nano/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core/nano/PKGBUILD b/abs/core/nano/PKGBUILD
index 6b63833..38fda47 100644
--- a/abs/core/nano/PKGBUILD
+++ b/abs/core/nano/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: Judd <judd@archlinux.org>
 
 pkgname=nano
-pkgver=2.7.3
+pkgver=2.7.5
 pkgrel=1
 pkgdesc="Pico editor clone with enhancements"
 arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ groups=('base')
 depends=('ncurses' 'file' 'sh')
 backup=('etc/nanorc')
 source=(https://www.nano-editor.org/dist/v2.7/${pkgname}-${pkgver}.tar.gz{,.asc})
-sha256sums=('3574d4594d051f3b572c47d63bfc3763fb1148c50b811ba7a016bacd94887a88'
+sha256sums=('226be22f46359007aa76499623739f4a7d5fa294a2899c70b21bc09b8d81d907'
             'SKIP')
 validpgpkeys=('8DA6FE7BFA7A418AB3CB2354BCB356DF91009FA7' # "Chris Allegretta <chrisa@asty.org>"
               'A7F6A64A67DA09EF92782DD79DF4862AF1175C5B' # "Benno Schulenberg <bensberg@justemail.net>"
@@ -33,5 +33,5 @@ build() {
 package() {
   cd ${pkgname}-${pkgver}
   make DESTDIR=${pkgdir} install
-  install -DTm644 ${srcdir}/${pkgname}-${pkgver}/doc/nanorc.sample ${pkgdir}/etc/nanorc
+  install -DTm644 ${srcdir}/${pkgname}-${pkgver}/doc/sample.nanorc ${pkgdir}/etc/nanorc
 }
-- 
cgit v0.12


From 9a6cac766f06faffb74c48124033fbaa6cf8bab7 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 20:21:44 +0000
Subject: enlightenment: update to 1.0.17

---
 abs/core/enlightenment/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core/enlightenment/PKGBUILD b/abs/core/enlightenment/PKGBUILD
index a0004f9..137a84b 100644
--- a/abs/core/enlightenment/PKGBUILD
+++ b/abs/core/enlightenment/PKGBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Eric Bélanger <eric@archlinux.org>
 
 pkgname=enlightenment
-pkgver=1.0.15
+pkgver=1.0.17
 _themever=1.0.1
 pkgrel=1
 pkgdesc="A fast, flexible, and very extensible Window Manager"
@@ -35,5 +35,5 @@ package() {
 #  make DESTDIR="${pkgdir}" install
 #  chown -R root:root "${pkgdir}"/usr/share/*
 }
-md5sums=('a3ab3a965d73109b4a929368b5cd4ae7'
+md5sums=('29bc6aeaabd081bb1138abda3d6eb958'
          '0098d0a6469ec539bf12eeda2171d540')
-- 
cgit v0.12


From 865f6baab2179c8a13637d5d22ce0facbcf2b2a6 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 20:43:53 +0000
Subject: tzdata: update to 2017a

---
 abs/core/tzdata/PKGBUILD | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/abs/core/tzdata/PKGBUILD b/abs/core/tzdata/PKGBUILD
index f380cab..0606eaf 100644
--- a/abs/core/tzdata/PKGBUILD
+++ b/abs/core/tzdata/PKGBUILD
@@ -2,16 +2,18 @@
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
 pkgname=tzdata
-pkgver=2014i
+pkgver=2017a
 pkgrel=1
 pkgdesc="Sources for time zone and daylight saving time data"
 arch=('any')
 url="http://www.iana.org/time-zones"
 license=('GPL')
 options=('!emptydirs')
-source=(http://www.iana.org/time-zones/repository/releases/${pkgname}${pkgver}.tar.gz{,.asc})
-sha1sums=('4e44c5ff587a8afd187275338510aeabeaaf2181'
-          'SKIP')
+# new signing key is not available via public keyservers
+source=(https://www.iana.org/time-zones/repository/releases/${pkgname}${pkgver}.tar.gz{,.asc})
+sha512sums=('fe57930711998a0755749a2bf1b32fdbc9e6ee249762017beea52eae7e521236396300fe2d79298fd81eb6d73fb7567884c35995ed248be06188329d937e3873'
+            'SKIP')
+validpgpkeys=('7E3792A9D8ACF7D633BC1588ED97E90E62AA7E34') # Paul Eggert <eggert@cs.ucla.edu>
 
 timezones=('africa' 'antarctica' 'asia' 'australasia'
            'europe' 'northamerica' 'southamerica'
-- 
cgit v0.12


From 5f42a80dbe79e095d079b4fe8bdf34722bdc19d3 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 21:10:37 +0000
Subject: findutils: update to 4.6.0

---
 abs/core/findutils/PKGBUILD          | 15 ++++++++-------
 abs/core/findutils/findutils.install | 22 ----------------------
 2 files changed, 8 insertions(+), 29 deletions(-)
 delete mode 100644 abs/core/findutils/findutils.install

diff --git a/abs/core/findutils/PKGBUILD b/abs/core/findutils/PKGBUILD
index e8d3d8c..4fd7789 100644
--- a/abs/core/findutils/PKGBUILD
+++ b/abs/core/findutils/PKGBUILD
@@ -1,19 +1,18 @@
-# $Id: PKGBUILD 142108 2011-11-05 10:13:34Z tpowa $
+# $Id$
 # Maintainer:
 
 pkgname=findutils
-pkgver=4.4.2
-pkgrel=4
+pkgver=4.6.0
+pkgrel=2
 pkgdesc="GNU utilities to locate files"
 arch=('i686' 'x86_64')
 license=('GPL3')
-groups=('base')
+groups=('base' 'base-devel')
 depends=('glibc' 'sh')
 url="http://www.gnu.org/software/findutils"
 source=(ftp://ftp.gnu.org/pub/gnu/findutils/${pkgname}-${pkgver}.tar.gz)
-install=findutils.install
-sha1sums=('e8dd88fa2cc58abffd0bfc1eddab9020231bb024')
-
+sha1sums=('f18e8aaee3f3d4173a1f598001003be8706d28b0')
+#validpgpkeys=('A15B725964A95EE5') # James Youngman <james@youngman.org>
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
 
@@ -22,6 +21,8 @@ build() {
   sed -i '/^SUBDIRS/s/locate//' Makefile.in
 
   ./configure --prefix=/usr
+  # don't build locate, but the docs want a file in there.
+  make -C locate dblocation.texi
   make
 }
 
diff --git a/abs/core/findutils/findutils.install b/abs/core/findutils/findutils.install
deleted file mode 100644
index e42d782..0000000
--- a/abs/core/findutils/findutils.install
+++ /dev/null
@@ -1,22 +0,0 @@
-infodir=/usr/share/info
-filelist=(find-maint.info find.info)
-
-post_install() {
-  [ -x usr/bin/install-info ] || return 0
-  for file in ${filelist[@]}; do
-    install-info $infodir/$file.gz $infodir/dir 2> /dev/null
-  done
-}
-
-post_upgrade() {
-  post_install $1
-}
-
-pre_remove() {
-  [ -x usr/bin/install-info ] || return 0
-  for file in ${filelist[@]}; do
-    install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
-  done
-}
-
-# vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From 6780b753c095ee4b0cedc203a459b9ea3af5277b Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 21:14:05 +0000
Subject: hwids: update to 20161103

---
 abs/core/hwids/PKGBUILD | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/abs/core/hwids/PKGBUILD b/abs/core/hwids/PKGBUILD
index ea682a7..c900b05 100644
--- a/abs/core/hwids/PKGBUILD
+++ b/abs/core/hwids/PKGBUILD
@@ -1,17 +1,20 @@
-# $Id: PKGBUILD 163600 2012-07-16 16:55:13Z tomegun $
+# $Id$
 # Maintainer: Tom Gundersen <teg@jklm.no>
 pkgname=hwids
-pkgver=20120711
+pkgver=20161103
 pkgrel=1
 pkgdesc="hardware identification databases"
+makedepends=('git')
 url=https://github.com/gentoo/hwids
 license=('GPL2')
 arch=('any')
-source=("https://github.com/gentoo/${pkgname}/tarball/${pkgname}-${pkgver}")
+source=("git://github.com/gentoo/hwids.git#tag=${pkgname}-${pkgver}")
 
 package() {
-  cd ${srcdir}/*
-  mkdir -p "${pkgdir}/usr/share/hwdata"
-  cp pci.ids usb.ids "${pkgdir}/usr/share/hwdata/"
+  cd hwids
+
+  for ids in pci.ids usb.ids; do
+    install -Dm644 "$ids" "${pkgdir}/usr/share/hwdata/${ids}"
+  done
 }
-md5sums=('f28b77e9793330ed1cd3568a8f715237')
+md5sums=('SKIP')
-- 
cgit v0.12


From fbe697dac8a14460cd80c4d7f447a9d3b218fcb2 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 21:22:01 +0000
Subject: libusb: update to 1.0.21

---
 abs/core/libusb/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core/libusb/PKGBUILD b/abs/core/libusb/PKGBUILD
index 01b8d34..2702179 100644
--- a/abs/core/libusb/PKGBUILD
+++ b/abs/core/libusb/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: Tobias Powalowski <tpowa@archlinux.org>
 
 pkgname=libusb
-pkgver=1.0.20
+pkgver=1.0.21
 pkgrel=1
 pkgdesc='Library that provides generic access to USB devices'
 arch=('i686' 'x86_64')
@@ -13,8 +13,8 @@ depends=('glibc' 'systemd')
 replaces=('libusb1' 'libusbx')
 provides=("libusbx=$pkgver")
 conflicts=('libusbx')
-source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
-md5sums=('1d4eb194eaaa2bcfbba28102768c7dbf')
+source=(https://github.com/libusb/libusb/releases/download/v$pkgver/libusb-$pkgver.tar.bz2)
+md5sums=('1da9ea3c27b3858fa85c5f4466003e44')
 
 build() {
   cd $pkgname-$pkgver
-- 
cgit v0.12


From fa15de64ae2055fcd56e4e6d50381d2a0228035d Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 22 Mar 2017 21:27:12 +0000
Subject: usbutils: update to 008

---
 abs/core/usbutils/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core/usbutils/PKGBUILD b/abs/core/usbutils/PKGBUILD
index ae06500..afece66 100644
--- a/abs/core/usbutils/PKGBUILD
+++ b/abs/core/usbutils/PKGBUILD
@@ -4,7 +4,7 @@
 # Contributor: Judd Vinet <jvinet@zeroflux.org>
 # Contributor: Curtis Campbell <curtisjamescampbell@hotmail.com>
 pkgname=usbutils
-pkgver=007
+pkgver=008
 pkgrel=1
 pkgdesc="USB Device Utilities"
 arch=(i686 x86_64)
@@ -16,7 +16,7 @@ optdepends=('python2: for lsusb.py usage'
 url="http://linux-usb.sourceforge.net/"
 source=("http://www.kernel.org/pub/linux/utils/usb/usbutils/${pkgname}-${pkgver}.tar.xz"
         fix-python2.patch)
-md5sums=('c9df5107ae9d26b10a1736a261250139'
+md5sums=('2780b6ae21264c888f8f30fb2aab1259'
          '45766196895b4cc50b53cd56e1bbf3d1')
 
 build() {
-- 
cgit v0.12


From d0bf508ec661ea3a076720e971536048a6f637ae Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 16:09:45 +0000
Subject: perl-data-uuid: initial inclusion. dep of zoneminder

---
 abs/core/perl_modules/perl-data-uuid/PKGBUILD | 51 +++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-data-uuid/PKGBUILD

diff --git a/abs/core/perl_modules/perl-data-uuid/PKGBUILD b/abs/core/perl_modules/perl-data-uuid/PKGBUILD
new file mode 100644
index 0000000..a20fbe4
--- /dev/null
+++ b/abs/core/perl_modules/perl-data-uuid/PKGBUILD
@@ -0,0 +1,51 @@
+# CPAN Name  : Data-UUID
+# Contributor: Anonymous
+# Generator  : CPANPLUS::Dist::Arch 1.30
+
+pkgname='perl-data-uuid'
+pkgver='1.221'
+pkgrel='1'
+pkgdesc="Globally/Universally Unique Identifiers (GUIDs/UUIDs)"
+arch=('i686' 'x86_64')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl>=0')
+makedepends=()
+url='https://metacpan.org/release/Data-UUID'
+source=('http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Data-UUID-1.221.tar.gz')
+md5sums=('7619929e8fe205a7fb83bc1c29ecbf99')
+sha512sums=('fa40219890f9adeb486a7ff636603d8695d81765ee858e396130100aaba96b524d80eef76e0c06eac2086fe3bb2d26114d94459466d29ddc82a7a7fcb2f5adac')
+_distdir="Data-UUID-1.221"
+
+build() {
+  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""                 \
+      PERL_AUTOINSTALL=--skipdeps                            \
+      PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'"     \
+      PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+      MODULEBUILDRC=/dev/null
+
+    cd "$srcdir/$_distdir"
+    /usr/bin/perl Makefile.PL
+    make
+  )
+}
+
+check() {
+  cd "$srcdir/$_distdir"
+  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+    make test
+  )
+}
+
+package() {
+  cd "$srcdir/$_distdir"
+  make install
+
+  find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From 86153d8ec2a51f6f26f0d5b7351346c2449b7f8f Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 16:10:14 +0000
Subject: perl-class-std: initial inclusion. dep of zoneminder

---
 abs/core/perl_modules/perl-class-std/PKGBUILD | 49 +++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-class-std/PKGBUILD

diff --git a/abs/core/perl_modules/perl-class-std/PKGBUILD b/abs/core/perl_modules/perl-class-std/PKGBUILD
new file mode 100644
index 0000000..dafacbc
--- /dev/null
+++ b/abs/core/perl_modules/perl-class-std/PKGBUILD
@@ -0,0 +1,49 @@
+# Contributor: John D Jones III <j[nospace]n[nospace]b[nospace]e[nospace]k[nospace]1972 -_AT_- the domain name google offers a mail service at ending in dot com>
+# Generator  : CPANPLUS::Dist::Arch 1.25
+
+pkgname='perl-class-std'
+pkgver='0.013'
+pkgrel='1'
+pkgdesc="Support for creating standard \"inside-out\" classes"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl')
+makedepends=()
+url='http://search.cpan.org/dist/Class-Std'
+source=('http://search.cpan.org/CPAN/authors/id/C/CH/CHORNY/Class-Std-0.013.tar.gz')
+_distdir="Class-Std-$pkgver"
+
+build() {
+  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""                 \
+      PERL_AUTOINSTALL=--skipdeps                            \
+      PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'"     \
+      PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+      MODULEBUILDRC=/dev/null
+
+    cd "$srcdir/$_distdir"
+    /usr/bin/perl Makefile.PL
+    make
+  )
+}
+
+check() {
+  cd "$srcdir/$_distdir"
+  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+    make test
+  )
+}
+
+package() {
+  cd "$srcdir/$_distdir"
+  make install
+
+  find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+
+# Local Variables:
+# mode: shell-script
+# sh-basic-offset: 2
+# End:
+# vim:set ts=2 sw=2 et:
+md5sums=('82bcc56d9769edce671b0bd0e183ec3a')
-- 
cgit v0.12


From 4a1f42eb677daa566ce121461d0f7487e2e1deaf Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 16:10:43 +0000
Subject: perl-class-std-fast: initial inclusion. dep of zoneminder

---
 abs/core/perl_modules/perl-class-std-fast/PKGBUILD | 40 ++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-class-std-fast/PKGBUILD

diff --git a/abs/core/perl_modules/perl-class-std-fast/PKGBUILD b/abs/core/perl_modules/perl-class-std-fast/PKGBUILD
new file mode 100644
index 0000000..71878e6
--- /dev/null
+++ b/abs/core/perl_modules/perl-class-std-fast/PKGBUILD
@@ -0,0 +1,40 @@
+pkgname='perl-class-std-fast'
+pkgver='0.0.8'
+pkgrel='1'
+pkgdesc="Class::Std::Fast allows you to use the beautiful API of Class::Std in a faster way than Class::Std"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl' 'perl-class-std')
+makedepends=()
+url='http://search.cpan.org/~acid/Class-Std-Fast/'
+source=('http://search.cpan.org/CPAN/authors/id/A/AC/ACID/Class-Std-Fast-v0.0.8.tar.gz')
+_distdir="Class-Std-Fast-v0.0.8"
+
+build() {
+  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""                 \
+      PERL_AUTOINSTALL=--skipdeps                            \
+      PERL_MM_OPT="INSTALLDIRS=vendor DESTDIR='$pkgdir'"     \
+      PERL_MB_OPT="--installdirs vendor --destdir '$pkgdir'" \
+      MODULEBUILDRC=/dev/null
+
+    cd "$srcdir/$_distdir"
+    /usr/bin/perl Makefile.PL
+    make
+  )
+}
+
+check() {
+  cd "$srcdir/$_distdir"
+  ( export PERL_MM_USE_DEFAULT=1 PERL5LIB=""
+    make test
+  )
+}
+
+package() {
+  cd "$srcdir/$_distdir"
+  make install
+
+  find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
+}
+md5sums=('d06d084cb84f295b0aabf2eee78ef746')
-- 
cgit v0.12


From 74ea800185b1548a3fe62511f46231712e023022 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 16:15:47 +0000
Subject: perl-data-dump: initial inclusion. dep of zoneminder

---
 abs/core/perl_modules/perl-data-dump/PKGBUILD | 31 +++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-data-dump/PKGBUILD

diff --git a/abs/core/perl_modules/perl-data-dump/PKGBUILD b/abs/core/perl_modules/perl-data-dump/PKGBUILD
new file mode 100644
index 0000000..a40b423
--- /dev/null
+++ b/abs/core/perl_modules/perl-data-dump/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id$
+# Maintainer:
+
+pkgname=perl-data-dump
+pkgver=1.23
+pkgrel=1
+pkgdesc="Pretty printing of data structures"
+arch=(any)
+url="https://metacpan.org/release/Data-Dump"
+license=(PerlArtistic GPL)
+depends=('perl')
+options=(!emptydirs)
+source=("http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Data-Dump-${pkgver}.tar.gz")
+sha1sums=('7da875cde34b6fe32b680eaa0c70121e4b69f09b')
+sha1sums=('3f5c0d4a15c8dd6befbcdceb41fe15b9aef1b741')
+
+build() {
+  cd Data-Dump-${pkgver}
+  perl Makefile.PL INSTALLDIRS=vendor
+  make
+}
+
+check() {
+  cd Data-Dump-${pkgver}
+  make test
+}
+
+package() {
+  cd Data-Dump-${pkgver}
+  make DESTDIR="$pkgdir" install
+}
-- 
cgit v0.12


From 2010f48cbd7a1017a1736c33567e25730f29a5f8 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 16:33:21 +0000
Subject: perl-soap-lite: update to 1.20

---
 abs/core/perl_modules/perl-soap-lite/PKGBUILD | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/core/perl_modules/perl-soap-lite/PKGBUILD b/abs/core/perl_modules/perl-soap-lite/PKGBUILD
index d885fcb..f5e8ee2 100644
--- a/abs/core/perl_modules/perl-soap-lite/PKGBUILD
+++ b/abs/core/perl_modules/perl-soap-lite/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 163581 2012-07-16 06:21:11Z giovanni $
+# $Id$
 # Maintainer: Giovanni Scafora <giovanni@archlinux.org>
 # Contributor: François Charette <firmicus ατ gmx δοτ net>
 
 pkgname=perl-soap-lite
-pkgver=0.715
+pkgver=1.20
 pkgrel=1
 pkgdesc="Client and server side SOAP implementation"
 arch=('any')
@@ -42,8 +42,8 @@ provides=(
     perl-xmlrpc-transport-pop3
     perl-xmlrpc-transport-tcp
 )
-source=("http://www.cpan.org/authors/id/M/MK/MKUTTER/SOAP-Lite-${pkgver}.tar.gz")
-md5sums=('a44c41291ddddaa19c02a72cd554327b')
+source=("http://search.cpan.org/CPAN/authors/id/P/PH/PHRED/SOAP-Lite-${pkgver}.tar.gz")
+md5sums=('b49632017cb5ba43c85d60cbe638af07')
 
 build() {
   cd  "${srcdir}/SOAP-Lite-${pkgver}"
-- 
cgit v0.12


From 3045bc810ec080626d5d3fe9e565bf635163c51b Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 17:39:40 +0000
Subject: perl-appconfig: initial addition. dep of perl-template-toolkit

---
 abs/core/perl_modules/perl-appconfig/PKGBUILD | 33 +++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-appconfig/PKGBUILD

diff --git a/abs/core/perl_modules/perl-appconfig/PKGBUILD b/abs/core/perl_modules/perl-appconfig/PKGBUILD
new file mode 100644
index 0000000..41f9422
--- /dev/null
+++ b/abs/core/perl_modules/perl-appconfig/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: eric <eric@archlinux.org>
+# Contributor: Eric Johnson <eric@coding-zone.com>
+
+pkgname=perl-appconfig
+_realname=AppConfig
+pkgver=1.71
+pkgrel=1
+pkgdesc="Perl/CPAN AppConfig module - Read configuration files and parse command line arguments"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+url="http://search.cpan.org/dist/${_realname}/"
+depends=('perl')
+options=('!emptydirs')
+source=("http://www.cpan.org/authors/id/N/NE/NEILB/${_realname}-${pkgver}.tar.gz")
+md5sums=('7747d9241561ed5567d5e134b8648707')
+
+build() {
+  cd "${srcdir}/${_realname}-${pkgver}"
+  perl Makefile.PL INSTALLDIRS=vendor
+  make
+}
+
+check() {
+  cd "${srcdir}/${_realname}-${pkgver}"
+  make test
+}
+
+package() {
+  cd "${srcdir}/${_realname}-${pkgver}"
+  make install DESTDIR="${pkgdir}"
+}
-- 
cgit v0.12


From 7ca5ff288db1ce65d6b4ecdd5374a6a02ed0e007 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 17:41:29 +0000
Subject: perl-template-toolkit: initial inclusion. dep of perl-wsdl

---
 .../perl_modules/perl-template-toolkit/PKGBUILD    | 40 ++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-template-toolkit/PKGBUILD

diff --git a/abs/core/perl_modules/perl-template-toolkit/PKGBUILD b/abs/core/perl_modules/perl-template-toolkit/PKGBUILD
new file mode 100644
index 0000000..157cad2
--- /dev/null
+++ b/abs/core/perl_modules/perl-template-toolkit/PKGBUILD
@@ -0,0 +1,40 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Firmicus <francois.archlinux.org>
+# Contributor: Tom Killian <tomk@runbox.com>
+# Contributor: FJ <joostef@gmail.com>
+
+pkgname=perl-template-toolkit
+pkgver=2.26
+pkgrel=3
+pkgdesc="Perl template processing system"
+arch=('i686' 'x86_64')
+url="http://search.cpan.org/dist/Template-Toolkit/"
+license=('PerlArtistic')
+depends=('perl-appconfig' 'perl')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/A/AB/ABW/Template-Toolkit-$pkgver.tar.gz)
+md5sums=('4c289856ebee446ebbe2629b24f0734b')
+
+build() {
+  cd Template-Toolkit-$pkgver
+  perl Makefile.PL INSTALLDIRS=vendor TT_ACCEPT=y
+  make
+}
+
+check() {
+  cd Template-Toolkit-$pkgver
+  make test
+}
+
+package() {
+  cd Template-Toolkit-$pkgver
+  make install DESTDIR="${pkgdir}"
+# template start; name=perl-binary-module-dependency; version=1;
+if [[ $(find "$pkgdir/usr/lib/perl5/" -name "*.so") ]]; then
+	_perlver_min=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]);')
+	_perlver_max=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]+1);')
+	depends+=("perl>=$_perlver_min" "perl<$_perlver_max")
+fi
+# template end;
+}
-- 
cgit v0.12


From c57dddb5025603ee431374f9d33de07f27eed6cb Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 17:54:24 +0000
Subject: perl-wsdl: initial inclusion. dep of zoneminder

---
 abs/core/perl_modules/perl-wsdl/PKGBUILD | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-wsdl/PKGBUILD

diff --git a/abs/core/perl_modules/perl-wsdl/PKGBUILD b/abs/core/perl_modules/perl-wsdl/PKGBUILD
new file mode 100644
index 0000000..e2c580f
--- /dev/null
+++ b/abs/core/perl_modules/perl-wsdl/PKGBUILD
@@ -0,0 +1,26 @@
+pkgname=perl-wsdl
+pkgver=3.003
+pkgrel=1
+pkgdesc="SOAP-WSDL provides a SOAP client with WSDL support"
+arch=(any)
+url="http://search.cpan.org/~swalters/SOAP-WSDL/"
+license=('GPL' 'PerlArtistic')
+depends=('perl' 'perl-class-load' 'perl-class-std-fast' 'perl-template-toolkit'
+         'perl-term-readkey' 'perl-timedate' 'perl-uri' 'perl-libwww' 'perl-xml-parser')
+options=('!emptydirs')
+source=(http://search.cpan.org/CPAN/authors/id/S/SW/SWALTERS/SOAP-WSDL-3.003.tar.gz)
+_distdir="SOAP-WSDL-$pkgver"
+
+build() {
+  cd "$srcdir/$_distdir"
+  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+  make
+}
+
+package() {
+  cd "$srcdir/$_distdir"
+  make install DESTDIR=$pkgdir
+  find $pkgdir -name '.packlist' -delete
+  find $pkgdir -name '*.pod' -delete
+}
+md5sums=('454b0d4f71d211c77eb27f1eb7f33a1e')
-- 
cgit v0.12


From ad829ff83184244b4b0c95aaf38462069dea9a6c Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 18:03:50 +0000
Subject: perl-io-socket-multicast: initial inclusion. dep of zoneminder

---
 .../perl_modules/perl-io-socket-multicast/PKGBUILD | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 abs/core/perl_modules/perl-io-socket-multicast/PKGBUILD

diff --git a/abs/core/perl_modules/perl-io-socket-multicast/PKGBUILD b/abs/core/perl_modules/perl-io-socket-multicast/PKGBUILD
new file mode 100644
index 0000000..5bf7764
--- /dev/null
+++ b/abs/core/perl_modules/perl-io-socket-multicast/PKGBUILD
@@ -0,0 +1,23 @@
+pkgname=perl-io-socket-multicast
+pkgver=1.12
+pkgrel=2
+pkgdesc="IO::Socket::Multicast - Object interface to socket communications for perl"
+arch=('any')
+license=('PerlArtistic' 'GPL')
+options=('!emptydirs')
+depends=('perl')
+makedepends=()
+url="http://search.cpan.org/dist/IO-Socket-Multicast/"
+source=("http://search.cpan.org/CPAN/authors/id/B/BR/BRAMBLE/IO-Socket-Multicast-$pkgver.tar.gz")
+md5sums=('c96e6cbb367b1d11ffe7bb9fbd833540')
+
+build() {
+    cd "$srcdir/IO-Socket-Multicast-$pkgver"
+    perl Makefile.PL INSTALLDIRS=vendor
+    make
+}
+
+package() {
+    cd "$srcdir/IO-Socket-Multicast-$pkgver"
+    make DESTDIR=$pkgdir install
+}
-- 
cgit v0.12


From 29b103183bdf07dbf05f42688375d602b178dcc4 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Fri, 24 Mar 2017 18:45:46 +0000
Subject: zoneminder: update deps

---
 abs/core/zoneminder/PKGBUILD | 32 +++++++++++++++++++++++---------
 1 file changed, 23 insertions(+), 9 deletions(-)

diff --git a/abs/core/zoneminder/PKGBUILD b/abs/core/zoneminder/PKGBUILD
index 5fea7e4..c0bb186 100644
--- a/abs/core/zoneminder/PKGBUILD
+++ b/abs/core/zoneminder/PKGBUILD
@@ -12,21 +12,35 @@
 _pkgname=zoneminder
 pkgname=zoneminder
 pkgver=1.30.2.r45.ga43adc2
-pkgrel=1
+pkgrel=2
 pkgdesc='Capture, analyse, record and monitor video security cameras'
 arch=( i686 x86_64 mips64el arm armv7h )
 backup=( etc/zm.conf )
 url="https://github.com/ZoneMinder/ZoneMinder/releases"
 license=( GPL )
 depends=(
-    mysql perl-dbd-mysql perl-dbi
-    lighttpd php php-gd php-mcrypt perl-php-serialization
-    perl-libwww perl-net-sftp-foreign
-    ffmpeg perl-sys-mmap
-    gnutls polkit
-    perl-expect perl-archive-zip perl-date-manip
-    perl-mime-lite perl-mime-tools
-    perl-sys-cpu perl-sys-meminfo
+    ffmpeg gnutls lighttpd mysql
+    perl-archive-zip
+    perl-class-std-fast
+    perl-data-dump
+    perl-data-uuid
+    perl-date-manip
+    perl-dbd-mysql
+    perl-dbi
+    perl-device-serialport
+    perl-expect
+    perl-io-socket-multicast
+    perl-libwww
+    perl-mime-lite
+    perl-mime-tools
+    perl-net-sftp-foreign
+    perl-php-serialization
+    perl-sys-cpu
+    perl-sys-meminfo
+    perl-sys-mmap
+    perl-wsdl
+    php php-gd php-mcrypt
+    polkit
 )
 makedepends=(
     cmake make gcc netpbm
-- 
cgit v0.12


From 693eec0e5a830a236d185129bb89a8f823ff0a5f Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 27 Mar 2017 15:54:41 +0000
Subject: python-dateutil: initial inclusion. dep of LinHES-system:
 myth_status.py

---
 abs/core/python_modules/python-dateutil/PKGBUILD   | 43 ++++++++++++++++++++++
 .../python_modules/python-dateutil/__changelog     |  1 +
 2 files changed, 44 insertions(+)
 create mode 100644 abs/core/python_modules/python-dateutil/PKGBUILD
 create mode 100644 abs/core/python_modules/python-dateutil/__changelog

diff --git a/abs/core/python_modules/python-dateutil/PKGBUILD b/abs/core/python_modules/python-dateutil/PKGBUILD
new file mode 100644
index 0000000..5ce709f
--- /dev/null
+++ b/abs/core/python_modules/python-dateutil/PKGBUILD
@@ -0,0 +1,43 @@
+#Maintainer: Jelle van der Waa <jelle@vdwaa.nl>
+#Contributor: lilydjwg <lilydjwg@gmail.com>
+
+pkgbase=python-dateutil
+pkgname=('python2-dateutil')
+pkgver=2.6.0
+pkgrel=2
+pkgdesc="Provides powerful extensions to the standard datetime module"
+arch=('any')
+license=('custom')
+url="https://github.com/dateutil/dateutil"
+makedepends=('python2-setuptools' 'python2-six')
+source=("$pkgbase-$pkgver.tar.gz"::"https://github.com/dateutil/dateutil/archive/$pkgver.tar.gz")
+md5sums=('7ac719938274be8da1ab870c3b35941c')
+
+build() {
+  cd $srcdir
+  cp -r  dateutil-$pkgver python2-dateutil-$pkgver
+}
+
+package_python-dateutil() {
+depends=('python-six')
+  cd dateutil-$pkgver
+  python3 setup.py install --root=$pkgdir --optimize=1
+  install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
+package_python2-dateutil() {
+depends=('python2-six')
+  cd $srcdir/python2-dateutil-$pkgver
+  python2 setup.py install --root=$pkgdir --optimize=1
+  install -Dm644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+}
+
+check() {
+  cd dateutil-$pkgver
+  python3 updatezinfo.py
+  python3 setup.py test
+
+  cd $srcdir/python2-dateutil-$pkgver
+  python2 updatezinfo.py
+  python2 setup.py test
+}
diff --git a/abs/core/python_modules/python-dateutil/__changelog b/abs/core/python_modules/python-dateutil/__changelog
new file mode 100644
index 0000000..3dd9c2c
--- /dev/null
+++ b/abs/core/python_modules/python-dateutil/__changelog
@@ -0,0 +1 @@
+PKGBUILD: remove py3 python-dateutils
-- 
cgit v0.12


From e54fcad792391e6af7b2dd7872f44d95c48fbd26 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 27 Mar 2017 15:56:37 +0000
Subject: LinHES-system: myth_status.py: convert timezone pulled from db to
 local

---
 abs/core/LinHES-system/PKGBUILD       |  6 ++--
 abs/core/LinHES-system/myth_status.py | 54 ++++++++++++++++++++---------------
 2 files changed, 34 insertions(+), 26 deletions(-)

diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD
index 81b72a3..3de7853 100755
--- a/abs/core/LinHES-system/PKGBUILD
+++ b/abs/core/LinHES-system/PKGBUILD
@@ -1,13 +1,13 @@
 pkgname=LinHES-system
 pkgver=8.4
-pkgrel=23
+pkgrel=24
 arch=('i686' 'x86_64')
 install=system.install
 pkgdesc="Everything that makes LinHES an automated system"
 license=('GPL2')
 depends=('linhes-sounds' 'xdotool' 'tilda' 'keylaunch' 'dvdbackup'
         'python_aosd' 'udisks' 'LinHES-config>=2.3-59' 'sudo'
-        'python2-dbus' 'unclutter' 'wmctrl' 'archlinux-xdg-menu'
+        'python2-dateutil' 'python2-dbus' 'unclutter' 'wmctrl' 'archlinux-xdg-menu'
         'ethtool' 'gnu-netcat' 'normalize' 'ttf-overlock'
         'handbrake-cli' 'mkvtoolnix-cli' 'mplayer' 'runit-scripts>=8.1-12')
 backup=('etc/modprobe.d/alsa-base.conf' 'etc/X11/autostart/autostart.run')
@@ -90,7 +90,7 @@ md5sums=('c6e6b83a1f4c35ef4501e277657ab2ac'
          '542e670e78d117657f93141e9689f54d'
          '8da6a7f1703a002f84e66629e847d8a6'
          'bb72ab230c7a71706285bd0f31a4fb1f'
-         'f8683caddf74dca1ea5cc3db4d748764'
+         '7cc012ad0e71b40b4a376ab33a33c1cd'
          '962a3e9eaba2d1466251b7ab0956705d'
          '1758aed160de64abfafb28a3a8f3390e'
          '33fbebbd546672cedd3c5e7350ab414e'
diff --git a/abs/core/LinHES-system/myth_status.py b/abs/core/LinHES-system/myth_status.py
index 40dd3b3..0662f79 100644
--- a/abs/core/LinHES-system/myth_status.py
+++ b/abs/core/LinHES-system/myth_status.py
@@ -4,6 +4,8 @@
 
 from MythTV import MythBE,MythDB,MythLog
 import datetime,time,sys,subprocess,re
+from dateutil.parser import parse
+from dateutil import tz
 import os,glob
 from socket import gethostname;
 
@@ -48,7 +50,7 @@ def print_alerts():
         #print "    myth_status: Couldn't change dir to %s" %dir_name
 
     file_list=glob.glob("*")
-    
+
     if len(file_list) == 0:
         #print "    myth_status:  no alert files found"
         pass
@@ -67,13 +69,13 @@ def print_alerts():
             except:
                 #print "    myth_status: Couldn't open %s for reading" %alert_file
                 continue
-            
+
             for line in lines:
                 try:
                     data,value=line.split(":")
                 except:
                     continue  #exception occured try the next line
-                
+
                 if data == 'HOST':
                     datahost = value.strip()
                 elif data == 'SERVICE':
@@ -85,21 +87,21 @@ def print_alerts():
                     sec=int(datadown)
                     td_sec = datetime.timedelta(seconds=sec)
                     td_sec_formated = formatTD(td_sec)
-            
+
             out_line ="    %s on %s %s for %s \n" %(dataservice,
                                                            datahost,datacolor.upper(),
                                                            td_sec_formated)
             out_alert += out_line
-                
+
         print "System Alerts:"
         print "--------------"
         if len(out_alert) > 0:
-            print out_alert 
+            print out_alert
             print "    Go to http://%s and click Health & Maintenance for more information." %gethostname()
         else:
             print "    All systems OK"
 
-    return 
+    return
 
 
 #-------------------------------------------
@@ -107,7 +109,7 @@ def print_alerts():
 
 class tuner_recording_status:
     def __init__ (self,num_upcoming):
-        
+
         self.now = datetime.datetime.now()
         self.farout=99999999
         self.next_start_diff=datetime.timedelta(self.farout)
@@ -124,7 +126,7 @@ class tuner_recording_status:
 
     def get_db_check_status(self):
         return self.db_connection_status
-        
+
     def check_database_connection(self):
         rc=0
         try:
@@ -160,7 +162,7 @@ class tuner_recording_status:
 
     def get_tuner_status(self):
         return self.tuner_status
-    
+
     def print_tuner_status(self):
         print "Tuner Status:"
         print "-------------"
@@ -169,24 +171,26 @@ class tuner_recording_status:
                 print line
         else:
             print "    No tuners found"
-            
 #--------
     def upcoming_recordings(self):
-        
+
         a=self.be.getUpcomingRecordings()
         r=0
+        currTZ = tz.tzlocal()
         for i in a:
             r += 1
             if r > self.num_upcoming:
                 break
-            
             title_chan="%s (%s)" %(i.title, i.channame)
+            # convert timezone to local timezone
+            start_time=parse(str(i.starttime))
+            start_time=start_time.astimezone(currTZ)
+            start_time_out=start_time.strftime("%a %b %d %I:%M%p")
+            self.upcoming_list.append([start_time_out,i.hostname, title_chan])
             #remove timezone
             start_time=re.split("[-+]\d\d:\d\d",str(i.starttime))[0]
             start_time_struct=datetime.datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S")
-            start_time_out=start_time_struct.strftime("%a %b %d %I:%M%p")
-            self.upcoming_list.append([start_time_out,i.hostname, title_chan])
-            #print "    %s - %s - %s" %(start_time_out,i.hostname, title_chan)
+
             diff = start_time_struct - self.now
             if diff < self.next_start_diff :
                 self.next_start_diff = diff
@@ -195,11 +199,10 @@ class tuner_recording_status:
             self.ur="No recordings are scheduled"
         else:
             self.ur=formatTD(self.next_start_diff)
-            
 
     def get_upcoming_recordings(self):
         return self.upcoming_list
-    
+
     def print_upcoming_recordings(self):
         #print self.get_upcoming_recordings()
         print ""
@@ -215,34 +218,39 @@ class tuner_recording_status:
 
     def get_next_start_time(self):
         return self.ur
-    
+
     def print_next_start_time(self):
         print ""
         print "The next recording starts in:"
         print "-----------------------------"
         print "    %s" %(self.get_next_start_time())
         print ""
-    
+
 #-----
 
     def conflicts(self):
         a=self.be.getConflictedRecordings()
+        currTZ = tz.tzlocal()
         for i in a:
             out_line=''
             title_chan="%s (%s)" %(i.title, i.channame)
-            out_line=(i.starttime,title_chan)
+            # convert timezone to local timezone
+            start_time=parse(str(i.starttime))
+            start_time=start_time.astimezone(currTZ)
+            start_time_out=start_time.strftime("%a %b %d %I:%M%p")
+            out_line=(start_time_out,i.hostname,title_chan)
             self.conflict_list.append(out_line)
 
     def get_conflict_list(self):
         return self.conflict_list
-    
+
     def print_conflict_list(self):
         print ""
         print "Recording Conflicts:"
         print "--------------------"
         if len(self.get_conflict_list()) > 0:
             for i in self.get_conflict_list():
-                print "    %s -  %-50s " %(i[0],i[1])
+                print "    %s - %s - %s" %(i[0],i[1],i[2])
         else:
             print "    No conflicts"
 
-- 
cgit v0.12


From 06eeaf289ccab28090e8b5ca7c09030e82ee0f07 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 15:18:34 +0000
Subject: mythtv, mythplugins, mythweb: update to latest fixes

add unzip dep. closes #1010
---
 abs/core/mythtv/stable-0.28/git_src/git_hash     | 2 +-
 abs/core/mythtv/stable-0.28/git_src/git_hash_web | 2 +-
 abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD | 2 +-
 abs/core/mythtv/stable-0.28/mythtv/PKGBUILD      | 6 +++---
 abs/core/mythtv/stable-0.28/mythweb/PKGBUILD     | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/core/mythtv/stable-0.28/git_src/git_hash b/abs/core/mythtv/stable-0.28/git_src/git_hash
index a6dbc61..4576c63 100644
--- a/abs/core/mythtv/stable-0.28/git_src/git_hash
+++ b/abs/core/mythtv/stable-0.28/git_src/git_hash
@@ -1 +1 @@
-044b22b95734ee607806ff8cea04e84c5112438d
+70266230d3d3afcf9c356cf503fce210fe67ab07
diff --git a/abs/core/mythtv/stable-0.28/git_src/git_hash_web b/abs/core/mythtv/stable-0.28/git_src/git_hash_web
index 35248ef..5c91202 100644
--- a/abs/core/mythtv/stable-0.28/git_src/git_hash_web
+++ b/abs/core/mythtv/stable-0.28/git_src/git_hash_web
@@ -1 +1 @@
-7ed09ed8ed00e600a5336e571460f67034bdec6c
+d94cf0bb5e1ffb7feaab27aae68d8214371ae266
diff --git a/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD b/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
index c3c4631..b0aad15 100644
--- a/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythplugins/PKGBUILD
@@ -9,7 +9,7 @@ pkgname=('mytharchive'
          'mythweather'
          'mythzoneminder')
 pkgver=0.28.1
-pkgrel=4
+pkgrel=5
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
diff --git a/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD b/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
index 3b75471..4848244 100644
--- a/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythtv
 pkgver=0.28.1
-pkgrel=4
+pkgrel=5
 commit_hash=`cat ../git_src/git_hash`
 pkgdesc="A Homebrew PVR project $commit_hash"
 arch=('i686' 'x86_64')
@@ -13,8 +13,8 @@ depends=('avahi' 'exiv2' 'faad2' 'fftw' 'glew' 'lame' 'libass' 'libavc1394' 'lib
          'openssl' 'perl-date-manip' 'perl-dbd-mysql'
          'perl-io-socket-inet6' 'perl-libwww' 'perl-math-round'
          'perl-net-upnp' 'perl-soap-lite' 'perl-xml-sax' 'python2-pycurl'
-         'python2-lxml' 'qt5-script' 'qt5-webkit' 'sdl' 'taglib' 'urlgrabber' 'wget'
-         'xmltv')
+         'python2-lxml' 'qt5-script' 'qt5-webkit' 'sdl' 'taglib' 'unzip' 'urlgrabber'
+         'wget' 'xmltv')
 makedepends=('mesa' 'mesa-libgl' 'yasm' 'x264' 'git' 'rsync' 'qt5-tools')
 replaces=()
 groups=('pvr')
diff --git a/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD b/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD
index 4ea78e6..04b2561 100644
--- a/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD
+++ b/abs/core/mythtv/stable-0.28/mythweb/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythweb
 pkgver=0.28.1
-pkgrel=1
+pkgrel=2
 commit_hash=`cat ../git_src/git_hash_web`
 pkgdesc="Web interface for MythTV's backend, $commit_hash"
 arch=('i686' 'x86_64')
-- 
cgit v0.12


From 32f4c73fb045b8d3efe09e43f82922290d0bceab Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 18:41:22 +0000
Subject: libxfont2: initial inclusion

---
 abs/core/libxfont2/PKGBUILD | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 abs/core/libxfont2/PKGBUILD

diff --git a/abs/core/libxfont2/PKGBUILD b/abs/core/libxfont2/PKGBUILD
new file mode 100644
index 0000000..0122fcb
--- /dev/null
+++ b/abs/core/libxfont2/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id$
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=libxfont2
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="X11 font rasterisation library"
+arch=(i686 x86_64)
+url="http://xorg.freedesktop.org/"
+license=('custom')
+depends=('freetype2' 'libfontenc' 'xproto' 'fontsproto')
+makedepends=('xorg-util-macros' 'xtrans')
+source=(${url}/archive/individual/lib/libXfont2-${pkgver}.tar.bz2{,.sig})
+sha256sums=('e9fbbb475ddd171b3a6a54b989cbade1f6f874fc35d505ebc5be426bc6e4db7e'
+            'SKIP')
+validpgpkeys=('C383B778255613DFDB409D91DB221A6900000011') # Keith Packard <keithp@keithp.com>
+
+build() {
+  cd "${srcdir}/libXfont2-${pkgver}"
+  ./configure --prefix=/usr --sysconfdir=/etc --disable-static
+  make
+}
+
+package() {
+  cd "${srcdir}/libXfont2-${pkgver}"
+  make DESTDIR="${pkgdir}" install
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
-- 
cgit v0.12


From f2e5941f08994c68060b419edb6b68d78dcd9614 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 18:57:06 +0000
Subject: wayland: update to 1.13.0

---
 abs/extra/wayland/PKGBUILD | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/abs/extra/wayland/PKGBUILD b/abs/extra/wayland/PKGBUILD
index 63bef97..2bb1829 100644
--- a/abs/extra/wayland/PKGBUILD
+++ b/abs/extra/wayland/PKGBUILD
@@ -4,21 +4,24 @@
 # Contributor: Joel Teichroeb <joel@teichroeb.net>
 
 pkgname=wayland
-pkgver=1.6.0
+pkgver=1.13.0
 pkgrel=1
 pkgdesc='A computer display server protocol'
 arch=('i686' 'x86_64')
-url='http://wayland.freedesktop.org'
+url='https://wayland.freedesktop.org/'
 license=('MIT')
-depends=('libffi' 'expat')
-makedepends=('doxygen')
-source=("http://wayland.freedesktop.org/releases/$pkgname-$pkgver.tar.xz")
-sha1sums=('6183108a3bffb204c05b7f37b763b6278760572d')
+depends=('glibc' 'libffi' 'expat' 'libxml2')
+validpgpkeys=('C7223EBE4EF66513B892598911A30156E0E67611') # Bryce Harrington
+source=("https://wayland.freedesktop.org/releases/$pkgname-$pkgver.tar.xz"{,.sig})
+sha1sums=('a8575325ed2885948624043c71629310df928312'
+          'SKIP')
 
 build() {
   cd $pkgname-$pkgver
 
-  ./configure --prefix=/usr \
+  ./configure \
+    --prefix=/usr \
+    --disable-documentation \
     --disable-static
   make
 }
@@ -29,3 +32,5 @@ package() {
   make DESTDIR="$pkgdir" install
   install -Dm 644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
 }
+
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From 35fde23955ca190bd287fd0750dd866a1d37be69 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 18:59:19 +0000
Subject: wayland-protocols: update to 1.7

---
 abs/extra/wayland-protocols/PKGBUILD | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 abs/extra/wayland-protocols/PKGBUILD

diff --git a/abs/extra/wayland-protocols/PKGBUILD b/abs/extra/wayland-protocols/PKGBUILD
new file mode 100644
index 0000000..15e4059
--- /dev/null
+++ b/abs/extra/wayland-protocols/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id$
+# Maintainer: Sébastien Luttringer <seblu@seblu.net>
+
+pkgname=wayland-protocols
+pkgver=1.7
+pkgrel=1
+pkgdesc='Specifications of extended Wayland protocols'
+arch=('any')
+url='https://wayland.freedesktop.org/'
+license=('MIT')
+makedepends=('wayland')
+validpgpkeys=('8307C0A224BABDA1BABD0EB9A6EEEC9E0136164A') # Jonas Ådahl
+source=("https://wayland.freedesktop.org/releases/$pkgname-$pkgver.tar.xz"{,.sig})
+sha1sums=('c4726694daf5feb1437f5f4f13c3b2a9b94b8118'
+          'SKIP')
+
+build() {
+  cd $pkgname-$pkgver
+
+  ./configure --prefix=/usr
+  make
+}
+
+package() {
+  cd $pkgname-$pkgver
+
+  make DESTDIR="$pkgdir" install
+  install -Dm 644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
+}
+
+# vim:set ts=2 sw=2 et:
-- 
cgit v0.12


From 2ae134201e298ddad6a8494f0130dad23b8d07d1 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 19:05:19 +0000
Subject: xproto: update to 7.0.31

---
 abs/core/xproto/PKGBUILD | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/abs/core/xproto/PKGBUILD b/abs/core/xproto/PKGBUILD
index c923b54..44dc3ae 100644
--- a/abs/core/xproto/PKGBUILD
+++ b/abs/core/xproto/PKGBUILD
@@ -3,18 +3,20 @@
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xproto
-pkgver=7.0.28
+pkgver=7.0.31
 pkgrel=1
 pkgdesc="X11 core wire protocol and auxiliary headers"
 arch=(any)
 license=('custom')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 makedepends=('xorg-util-macros')
 source=(${url}/releases/individual/proto/${pkgname}-${pkgver}.tar.bz2{,.sig})
-sha256sums=('29e85568d1f68ceef8a2c081dad9bc0e5500a53cfffde24b564dc43d46ddf6ca'
+sha256sums=('c6f9747da0bd3a95f86b17fb8dd5e717c8f3ab7f0ece3ba1b247899ec1ef7747'
             'SKIP')
 validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # "Alan Coopersmith <alan.coopersmith@oracle.com>"
 validpgpkeys+=('DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3') # Adam Jackson <ajax@nwnk.net>
+validpgpkeys+=('7B27A3F1A6E18CD9588B4AE8310180050905E40C') # "Julien Cristau <julien.cristau@ens-lyon.org>"
+validpgpkeys+=('C383B778255613DFDB409D91DB221A6900000011') # Keith Packard <keithp@keithp.com>
 
 build() {
   cd ${pkgname}-${pkgver}
-- 
cgit v0.12


From f5b789a9e26229194dcafc0b7c4baac42f8bd410 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 20:47:23 +0000
Subject: mtdev: update to 1.1.5

---
 abs/core/mtdev/PKGBUILD | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/abs/core/mtdev/PKGBUILD b/abs/core/mtdev/PKGBUILD
index 50bf164..2662f36 100644
--- a/abs/core/mtdev/PKGBUILD
+++ b/abs/core/mtdev/PKGBUILD
@@ -1,18 +1,17 @@
-# $Id: PKGBUILD 168434 2012-10-11 16:11:43Z andyrtr $
+# $Id$
 # Maintainer: AndyRTR <andyrtr@archlinux.org>
 # Contributor: SpepS <dreamspepser at yahoo dot it>
 
 pkgname=mtdev
-pkgver=1.1.3
+pkgver=1.1.5
 pkgrel=1
 pkgdesc="A stand-alone library which transforms all variants of kernel MT events to the slotted type B protocol"
 arch=('i686' 'x86_64')
 url="http://bitmath.org/code/mtdev/"
 license=('custom:MIT')
 depends=('glibc')
-options=('!libtool')
 source=("$url$pkgname-$pkgver.tar.bz2")
-md5sums=('8a236569ad3dd79eaeed45f1935359be')
+md5sums=('52c9610b6002f71d1642dc1a1cca5ec1')
 
 build() {
   cd "$srcdir/$pkgname-$pkgver"
-- 
cgit v0.12


From 99a4be6ea08d4049153d9cf61ad5810b64091350 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 20:49:51 +0000
Subject: libevdev: update to 1.5.6

---
 abs/core/libevdev/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core/libevdev/PKGBUILD b/abs/core/libevdev/PKGBUILD
index 5a9a09e..0922715 100644
--- a/abs/core/libevdev/PKGBUILD
+++ b/abs/core/libevdev/PKGBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
 pkgname=libevdev
-pkgver=1.4.2
+pkgver=1.5.6
 pkgrel=1
 pkgdesc="Wrapper library for evdev devices"
 arch=(i686 x86_64)
@@ -11,8 +11,8 @@ license=(custom:X11)
 depends=('glibc')
 makedepends=('python2' 'check' 'valgrind' 'doxygen')
 #checkdepends=('kmod')
-source=(http://freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz{,.sig})
-sha256sums=('7c77b213f075706d428a2af54b66bf86b03a68e9fb390e7ec48cf55065970643'
+source=(https://freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz{,.sig})
+sha256sums=('ecec7e9d66b1d3692f10b3b20aa97fb25e874a784c5552a7b1698091fef5a688'
             'SKIP')
 validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
 
-- 
cgit v0.12


From 04718cc9061f04d2b259f220023773f0456618f1 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 20:56:14 +0000
Subject: libwacom: initial inclusion. dep of libinput

---
 abs/extra/libwacom/PKGBUILD | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 abs/extra/libwacom/PKGBUILD

diff --git a/abs/extra/libwacom/PKGBUILD b/abs/extra/libwacom/PKGBUILD
new file mode 100644
index 0000000..f8b9cf6
--- /dev/null
+++ b/abs/extra/libwacom/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+pkgname=libwacom
+pkgver=0.24
+pkgrel=1
+pkgdesc="Library to identify Wacom tablets and their features"
+arch=('x86_64' 'i686')
+url="https://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Libwacom"
+license=('MIT')
+depends=('glib2' 'systemd' 'libgudev')
+source=(https://sourceforge.net/projects/linuxwacom/files/libwacom/$pkgname-$pkgver.tar.bz2)
+sha1sums=('74d38e416fc7b91bbf3e163d40fe6ff688e6da51')
+sha256sums=('2905a0ee5cc85eceb9f5bd06109e66a051b0ed18102c3e6798717c259c8d66c3')
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr
+  make
+}
+
+check() {
+  cd $pkgname-$pkgver
+  make check
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+  install -D -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+  install -m755 -d ${pkgdir}/usr/lib/udev/rules.d
+  cd tools
+  ./generate-udev-rules > ${pkgdir}/usr/lib/udev/rules.d/65-libwacom.rules
+  
+}
-- 
cgit v0.12


From e33933d75ed88a57905a0b8ebeb115dbdcac8278 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 21:02:20 +0000
Subject: libinput: update to 1.7.0

---
 abs/extra/libinput/PKGBUILD         | 28 +++++++++++++++-------------
 abs/extra/libinput/libinput.install | 11 -----------
 2 files changed, 15 insertions(+), 24 deletions(-)
 delete mode 100644 abs/extra/libinput/libinput.install

diff --git a/abs/extra/libinput/PKGBUILD b/abs/extra/libinput/PKGBUILD
index 1d39dd9..1fa4d70 100644
--- a/abs/extra/libinput/PKGBUILD
+++ b/abs/extra/libinput/PKGBUILD
@@ -3,24 +3,21 @@
 # Maintainer: Jan de Groot
 
 pkgname=libinput
-pkgver=1.1.4
+pkgver=1.7.0
 pkgrel=1
-pkgdesc="library that handles input devices for display servers and other applications that need to directly deal with input devices."
+pkgdesc="Input device management and event handling library"
 arch=(i686 x86_64)
-url="http://www.freedesktop.org/wiki/Software/libinput/"
+url="https://www.freedesktop.org/wiki/Software/libinput/"
 license=(custom:X11)
-depends=('mtdev' 'systemd' 'libevdev')
-install=libinput.install
-options=('!libtool')
-source=(http://freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz{,.sig})
-sha256sums=('302cb76209b9c57a5a318e178f9bc446eede8ea79386103b5291cbfaa5fab5b6'
+depends=('mtdev' 'systemd' 'libevdev' 'libwacom')
+# currently no doc files to install
+makedepends=('doxygen' 'graphviz' 'gtk3')
+#checkdepends=('check' 'libunwind')
+source=(https://freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz{,.sig})
+sha512sums=('9058eab813ea3de230835155ca843f248127cbafaf1aecc9a2e209a0215b090beef0468cc863a24320f8d0db1f2863baba680e2416e9e409e958b2c1d18e43a1'
             'SKIP')
 validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
 
-prepare() {
-  cd $pkgname-$pkgver
-}
-
 build() {
   cd $pkgname-$pkgver
   ./configure --prefix=/usr --disable-static
@@ -29,11 +26,16 @@ build() {
 
 check() {
   cd $pkgname-$pkgver
-  make check
+# disabled for now:
+# https://github.com/libcheck/check/issues/18
+#  make check
 }
 
 package() {
   cd $pkgname-$pkgver
   make DESTDIR="$pkgdir" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
+  # install doc - no Makefile target
+  install -v -dm755 ${pkgdir}/usr/share/doc/libinput
+  cp -rv doc/html/* ${pkgdir}/usr/share/doc/libinput
 }
diff --git a/abs/extra/libinput/libinput.install b/abs/extra/libinput/libinput.install
deleted file mode 100644
index b9d5d0e..0000000
--- a/abs/extra/libinput/libinput.install
+++ /dev/null
@@ -1,11 +0,0 @@
-post_install() {
-  udevadm hwdb --update >/dev/null 2>&1
-}
-
-post_upgrade() {
-  post_install $1
-}
-
-post_remove() {
-  post_install $1
-}
-- 
cgit v0.12


From 5592c98d286137006d7f70988cab76b76c720ec0 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 28 Mar 2017 21:43:56 +0000
Subject: xcb-proto: update to 1.12

---
 abs/core/xcb-proto/PKGBUILD               |  22 ++-
 abs/core/xcb-proto/__changelog            |   1 +
 abs/core/xcb-proto/python-35x-fixes.patch | 250 ++++++++++++++++++++++++++++++
 3 files changed, 268 insertions(+), 5 deletions(-)
 create mode 100644 abs/core/xcb-proto/python-35x-fixes.patch

diff --git a/abs/core/xcb-proto/PKGBUILD b/abs/core/xcb-proto/PKGBUILD
index d305cd4..8fd6a62 100644
--- a/abs/core/xcb-proto/PKGBUILD
+++ b/abs/core/xcb-proto/PKGBUILD
@@ -3,15 +3,22 @@
 # Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xcb-proto
-pkgver=1.11
-pkgrel=1
+pkgver=1.12
+pkgrel=3
 pkgdesc="XML-XCB protocol descriptions"
 arch=(any)
-url="http://xcb.freedesktop.org/"
+url="https://xcb.freedesktop.org/"
 license=('custom')
 makedepends=('python2' 'libxml2')
-source=($url/dist/$pkgname-$pkgver.tar.bz2)
-sha256sums=('b4aceee6502a0ce45fc39b33c541a2df4715d00b72e660ebe8c5bb444771e32e')
+source=($url/dist/$pkgname-$pkgver.tar.bz2
+        python-35x-fixes.patch)
+sha256sums=('5922aba4c664ab7899a29d92ea91a87aa4c1fc7eb5ee550325c3216c480a4906'
+            '1802aec973b6bf5836c1b2d65aaf5fb18051323f47826df6a95cf6621cb3282a')
+
+prepare() {
+  cd $pkgname-$pkgver
+#  patch -Np1 -i ../python-35x-fixes.patch
+}
 
 build() {
   cd $pkgname-$pkgver
@@ -19,6 +26,11 @@ build() {
   make
 }
 
+check() {
+  cd $pkgname-$pkgver 
+  make -k check || /bin/true
+}
+
 package() {
   cd $pkgname-$pkgver
   make DESTDIR="$pkgdir" install
diff --git a/abs/core/xcb-proto/__changelog b/abs/core/xcb-proto/__changelog
index 8bae7de..00d33c5 100644
--- a/abs/core/xcb-proto/__changelog
+++ b/abs/core/xcb-proto/__changelog
@@ -1 +1,2 @@
 - PKGBUILD: change dep python to python2
+PKGBUILD: disable python 35 patch
diff --git a/abs/core/xcb-proto/python-35x-fixes.patch b/abs/core/xcb-proto/python-35x-fixes.patch
new file mode 100644
index 0000000..b0b1303
--- /dev/null
+++ b/abs/core/xcb-proto/python-35x-fixes.patch
@@ -0,0 +1,250 @@
+diff --git a/xcbgen/align.py b/xcbgen/align.py
+index 5e31838..d4c12ee 100644
+--- a/xcbgen/align.py
++++ b/xcbgen/align.py
+@@ -16,12 +16,12 @@ class Alignment(object):
+         return self.align == other.align and self.offset == other.offset
+ 
+     def __str__(self):
+-	return "(align=%d, offset=%d)" % (self.align, self.offset)
++        return "(align=%d, offset=%d)" % (self.align, self.offset)
+ 
+     @staticmethod
+     def for_primitive_type(size):
+-	# compute the required start_alignment based on the size of the type
+-	if size % 8 == 0:
++        # compute the required start_alignment based on the size of the type
++        if size % 8 == 0:
+             # do 8-byte primitives require 8-byte alignment in X11?
+             return Alignment(8,0)
+         elif size % 4 == 0:
+@@ -33,7 +33,7 @@ class Alignment(object):
+ 
+ 
+     def align_after_fixed_size(self, size):
+-	new_offset = (self.offset + size) % self.align
++        new_offset = (self.offset + size) % self.align
+         return Alignment(self.align, new_offset)
+ 
+ 
+@@ -41,7 +41,7 @@ class Alignment(object):
+         '''
+         Assuming the given external_align, checks whether
+         self is fulfilled for all cases.
+-	Returns True if yes, False otherwise.
++        Returns True if yes, False otherwise.
+         '''
+         if self.align == 1 and self.offset == 0:
+             # alignment 1 with offset 0 is always fulfilled
+@@ -55,9 +55,9 @@ class Alignment(object):
+             # the external align guarantees less alignment -> not guaranteed
+             return False
+ 
+-	if external_align.align % self.align != 0:
++        if external_align.align % self.align != 0:
+             # the external align cannot be divided by our align
+-	    # -> not guaranteed
++            # -> not guaranteed
+             # (this can only happen if there are alignments that are not
+             # a power of 2, which is highly discouraged. But better be
+             # safe and check for it)
+@@ -72,7 +72,7 @@ class Alignment(object):
+ 
+     def combine_with(self, other):
+         # returns the alignment that is guaranteed when
+-	# both, self or other, can happen
++        # both, self or other, can happen
+         new_align = gcd(self.align, other.align)
+         new_offset_candidate1 = self.offset % new_align
+         new_offset_candidate2 = other.offset % new_align
+@@ -83,8 +83,8 @@ class Alignment(object):
+             new_align = gcd(new_align, offset_diff)
+             new_offset_candidate1 = self.offset % new_align
+             new_offset_candidate2 = other.offset % new_align
+-	    assert new_offset_candidate1 == new_offset_candidate2
+-	    new_offset = new_offset_candidate1
++            assert new_offset_candidate1 == new_offset_candidate2
++            new_offset = new_offset_candidate1
+         # return the result
+         return Alignment(new_align, new_offset)
+ 
+@@ -92,44 +92,44 @@ class Alignment(object):
+ class AlignmentLog(object):
+ 
+     def __init__(self):
+-	self.ok_list = []
+-	self.fail_list = []
+-	self.verbosity = 1
++        self.ok_list = []
++        self.fail_list = []
++        self.verbosity = 1
+ 
+     def __str__(self):
+-	result = ""
++        result = ""
+ 
+-	# output the OK-list
+-	for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
+-	    stacksize = len(callstack)
++        # output the OK-list
++        for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
++            stacksize = len(callstack)
+             indent = '  ' * stacksize
+-	    if self.ok_callstack_is_relevant(callstack):
++            if self.ok_callstack_is_relevant(callstack):
+                 if field_name is None or field_name == "":
+-	            result += ("    %sok: %s:\n\t%sbefore: %s, after: %s\n"
+-		        % (indent, str(type_obj), indent, str(align_before), str(align_after)))
+-	        else:
+-		    result += ("    %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
+-		        % (indent, str(field_name), str(type_obj),
+-		           indent, str(align_before), str(align_after)))
++                    result += ("    %sok: %s:\n\t%sbefore: %s, after: %s\n"
++                        % (indent, str(type_obj), indent, str(align_before), str(align_after)))
++                else:
++                    result += ("    %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
++                        % (indent, str(field_name), str(type_obj),
++                           indent, str(align_before), str(align_after)))
+                 if self.verbosity >= 1:
+-		    result += self.callstack_to_str(indent, callstack)
++                    result += self.callstack_to_str(indent, callstack)
+ 
+-	# output the fail-list
+-	for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
+-	    stacksize = len(callstack)
++        # output the fail-list
++        for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
++            stacksize = len(callstack)
+             indent = '  ' * stacksize
+-	    if field_name is None or field_name == "":
+-	        result += ("    %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
+-		    % (indent, str(align_before), indent, str(type_obj), indent, reason))
+-	    else:
+-		result += ("    %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
+-		    % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
++            if field_name is None or field_name == "":
++                result += ("    %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
++                    % (indent, str(align_before), indent, str(type_obj), indent, reason))
++            else:
++                result += ("    %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
++                    % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
+ 
+             if self.verbosity >= 1:
+-	        result += self.callstack_to_str(indent, callstack)
++                result += self.callstack_to_str(indent, callstack)
+ 
+ 
+-	return result
++        return result
+ 
+ 
+     def callstack_to_str(self, indent, callstack):
+@@ -137,41 +137,41 @@ class AlignmentLog(object):
+         for stack_elem in callstack:
+             result += "\t  %s%s\n" % (indent, str(stack_elem))
+         result += "\t%s]\n" % indent
+-	return result
++        return result
+ 
+ 
+     def ok_callstack_is_relevant(self, ok_callstack):
+         # determine whether an ok callstack is relevant for logging
+-	if self.verbosity >= 2:
+-	    return True
++        if self.verbosity >= 2:
++            return True
+ 
+         # empty callstacks are always relevant
+-	if len(ok_callstack) == 0:
++        if len(ok_callstack) == 0:
+             return True
+ 
+-	# check whether the ok_callstack is a subset or equal to a fail_callstack
++        # check whether the ok_callstack is a subset or equal to a fail_callstack
+         for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list:
+             if len(ok_callstack) <= len(fail_callstack):
+                 zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)])
+-		is_subset = all([i == j for i, j in zipped])
+-		if is_subset:
++                is_subset = all([i == j for i, j in zipped])
++                if is_subset:
+                     return True
+ 
+         return False
+ 
+ 
+     def ok(self, align_before, field_name, type_obj, callstack, align_after):
+-	self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
++        self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
+ 
+     def fail(self, align_before, field_name, type_obj, callstack, reason):
+-	self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
++        self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
+ 
+     def append(self, other):
+-	self.ok_list.extend(other.ok_list)
+-	self.fail_list.extend(other.fail_list)
++        self.ok_list.extend(other.ok_list)
++        self.fail_list.extend(other.fail_list)
+ 
+     def ok_count(self):
+-	return len(self.ok_list)
++        return len(self.ok_list)
+ 
+ 
+ 
+diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py
+index c3b5758..b83b119 100644
+--- a/xcbgen/xtypes.py
++++ b/xcbgen/xtypes.py
+@@ -501,7 +501,7 @@ class ComplexType(Type):
+                 int(required_start_align_element.get('align', "4"), 0),
+                 int(required_start_align_element.get('offset', "0"), 0))
+             if verbose_align_log:
+-                print "Explicit start-align for %s: %s\n" % (self, self.required_start_align)
++                print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align))
+ 
+     def resolve(self, module):
+         if self.resolved:
+@@ -592,7 +592,7 @@ class ComplexType(Type):
+                 if verbose_align_log:
+                     print ("calc_required_start_align: %s has start-align %s"
+                         % (str(self), str(self.required_start_align)))
+-                    print "Details:\n" + str(log)
++                    print ("Details:\n" + str(log))
+                 if self.required_start_align.offset != 0:
+                     print (("WARNING: %s\n\thas start-align with non-zero offset: %s"
+                         + "\n\tsuggest to add explicit definition with:"
+@@ -619,12 +619,12 @@ class ComplexType(Type):
+             for offset in range(0,align):
+                 align_candidate = Alignment(align, offset)
+                 if verbose_align_log:
+-                    print "trying %s for %s" % (str(align_candidate), str(self))
++                    print ("trying %s for %s" % (str(align_candidate), str(self)))
+                 my_log = AlignmentLog()
+                 if self.is_possible_start_align(align_candidate, callstack, my_log):
+                     log.append(my_log)
+                     if verbose_align_log:
+-                        print "found start-align %s for %s" % (str(align_candidate), str(self))
++                        print ("found start-align %s for %s" % (str(align_candidate), str(self)))
+                     return align_candidate
+                 else:
+                     my_ok_count = my_log.ok_count()
+@@ -641,7 +641,7 @@ class ComplexType(Type):
+         # none of the candidates applies
+         # this type has illegal internal aligns for all possible start_aligns
+         if verbose_align_log:
+-            print "didn't find start-align for %s" % str(self)
++            print ("didn't find start-align for %s" % str(self))
+         log.append(best_log)
+         return None
+ 
+@@ -900,7 +900,7 @@ class SwitchType(ComplexType):
+     # aux function for unchecked_get_alignment_after
+     def get_align_for_selected_case_field(self, case_field, start_align, callstack, log):
+         if verbose_align_log:
+-            print "get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))
++            print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field)))
+         total_align = start_align
+         for field in self.bitcases:
+             my_callstack = callstack[:]
-- 
cgit v0.12


From 24706063e8d47a08f114ef946ffbdf490604767c Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 13:57:35 +0000
Subject: libxcb: update to 1.12

---
 abs/core/libxcb/PKGBUILD                          | 17 +++++----
 abs/core/libxcb/libxcb-1.1-no-pthread-stubs.patch |  2 +-
 abs/core/libxcb/python-35x-fixes.patch            | 42 +++++++++++++++++++++++
 3 files changed, 53 insertions(+), 8 deletions(-)
 create mode 100644 abs/core/libxcb/python-35x-fixes.patch

diff --git a/abs/core/libxcb/PKGBUILD b/abs/core/libxcb/PKGBUILD
index 126d0a8..92ad925 100644
--- a/abs/core/libxcb/PKGBUILD
+++ b/abs/core/libxcb/PKGBUILD
@@ -4,22 +4,25 @@
 # Contributor: Alexander Baldeck <alexander@archlinux.org>
 
 pkgname=libxcb
-pkgver=1.11
+pkgver=1.12
 pkgrel=1
 pkgdesc="X11 client-side library"
 arch=('i686' 'x86_64')
-url="http://xcb.freedesktop.org/"
-depends=('xcb-proto>=1.11' 'libxdmcp' 'libxau')
+url="https://xcb.freedesktop.org/"
+depends=('xcb-proto>=1.12' 'libxdmcp' 'libxau')
 makedepends=('libxslt' 'python2' 'xorg-util-macros')
 license=('custom')
 source=($url/dist/$pkgname-$pkgver.tar.bz2
-        libxcb-1.1-no-pthread-stubs.patch)
-sha256sums=('03635d70045b9ede90778e67516135828a57de87ac508f987024f43c03620ff7'
-            '3923bcb1930b851012968435909597d8d5251c72153511cb2982636c97100cc3')
+        libxcb-1.1-no-pthread-stubs.patch
+        python-35x-fixes.patch)
+sha256sums=('4adfb1b7c67e99bc9c2ccb110b2f175686576d2f792c8a71b9c8b19014057b5b'
+            '37debaf892235a516a50a4975e6229538d3b4696b4571a8dea05eed774004aff'
+            'e66140ac2270b47e940db82975e2d28d3536ca1bd0eae63bce3b900ed81fa517')
 
 prepare() {
   cd "$pkgname-$pkgver"
   patch -Np1 -i ../libxcb-1.1-no-pthread-stubs.patch
+#  patch -Np1 -i ../python-35x-fixes.patch
   autoreconf -vfi
 }
 
@@ -29,7 +32,7 @@ build() {
     --enable-xinput \
     --enable-xkb \
     --disable-static
-  make
+  make -j1
 }
 
 check() {
diff --git a/abs/core/libxcb/libxcb-1.1-no-pthread-stubs.patch b/abs/core/libxcb/libxcb-1.1-no-pthread-stubs.patch
index 84c7f8e..3580aa4 100644
--- a/abs/core/libxcb/libxcb-1.1-no-pthread-stubs.patch
+++ b/abs/core/libxcb/libxcb-1.1-no-pthread-stubs.patch
@@ -3,7 +3,7 @@
 @@ -43,7 +43,7 @@
  
  # Checks for pkg-config packages
- PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.11)
+ PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.12)
 -NEEDED="pthread-stubs xau >= 0.99.2"
 +NEEDED="xau >= 0.99.2"
  PKG_CHECK_MODULES(NEEDED, $NEEDED)
diff --git a/abs/core/libxcb/python-35x-fixes.patch b/abs/core/libxcb/python-35x-fixes.patch
new file mode 100644
index 0000000..88de252
--- /dev/null
+++ b/abs/core/libxcb/python-35x-fixes.patch
@@ -0,0 +1,42 @@
+diff --git a/src/c_client.py b/src/c_client.py
+index 57de3fb..043338d 100644
+--- a/src/c_client.py
++++ b/src/c_client.py
+@@ -1364,7 +1364,7 @@ def _c_serialize(context, self):
+             _c('    unsigned int xcb_align_to = 0;')
+         if self.is_switch:
+             _c('    unsigned int xcb_padding_offset = %d;',
+-	       self.get_align_offset() )
++               self.get_align_offset() )
+         prefix = [('_aux', '->', self)]
+         aux_ptr = 'xcb_out'
+ 
+@@ -1390,7 +1390,7 @@ def _c_serialize(context, self):
+         _c('    unsigned int xcb_align_to = 0;')
+         if self.is_switch:
+             _c('    unsigned int xcb_padding_offset = %d;',
+-	       self.get_align_offset() )
++               self.get_align_offset() )
+ 
+     elif 'sizeof' == context:
+         param_names = [p[2] for p in params]
+@@ -1930,14 +1930,14 @@ def _c_accessors_list(self, field):
+                     # from the request size and divide that by the member size
+                     return '(((R->length * 4) - sizeof('+ self.c_type + '))/'+'sizeof('+field.type.member.c_wiretype+'))'
+                 else:
+-		    # use the accessor to get the start of the list, then
+-		    # compute the length of it by subtracting it from
++                    # use the accessor to get the start of the list, then
++                    # compute the length of it by subtracting it from
+                     # the adress of the first byte after the end of the
+                     # request
+-		    after_end_of_request = '(((char*)R) + R->length * 4)'
+-		    start_of_list = '%s(R)' % (field.c_accessor_name)
++                    after_end_of_request = '(((char*)R) + R->length * 4)'
++                    start_of_list = '%s(R)' % (field.c_accessor_name)
+                     bytesize_of_list = '%s - (char*)(%s)' % (after_end_of_request, start_of_list)
+-		    return '(%s) / sizeof(%s)' % (bytesize_of_list, field.type.member.c_wiretype)
++                    return '(%s) / sizeof(%s)' % (bytesize_of_list, field.type.member.c_wiretype)
+             else:
+                 raise Exception(
+                     "lengthless lists with varsized members are not supported. Fieldname '%s'"
-- 
cgit v0.12


From d4edebccb1922fbec9fc82129d9494cb6f2423a6 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 14:03:15 +0000
Subject: libx11: update to 1.6.5

---
 abs/core/libx11/PKGBUILD      |  8 +++++---
 abs/core/libx11/fix_typo.diff | 27 ---------------------------
 2 files changed, 5 insertions(+), 30 deletions(-)
 delete mode 100644 abs/core/libx11/fix_typo.diff

diff --git a/abs/core/libx11/PKGBUILD b/abs/core/libx11/PKGBUILD
index 8090e48..51035ba 100644
--- a/abs/core/libx11/PKGBUILD
+++ b/abs/core/libx11/PKGBUILD
@@ -3,18 +3,20 @@
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libx11
-pkgver=1.6.3
+pkgver=1.6.5
 pkgrel=1
 pkgdesc="X11 client-side library"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 depends=('libxcb' 'xproto' 'kbproto')
 makedepends=('xorg-util-macros' 'xextproto' 'xtrans' 'inputproto')
 license=('custom')
 source=(${url}/releases/individual/lib/libX11-${pkgver}.tar.bz2{,.sig})
-sha256sums=('cf31a7c39f2f52e8ebd0db95640384e63451f9b014eed2bb7f5de03e8adc8111'
+sha256sums=('4d3890db2ba225ba8c55ca63c6409c1ebb078a2806de59fb16342768ae63435d'
             'SKIP')
 validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E')
+validpgpkeys+=('C41C985FDCF1E5364576638B687393EE37D128F8') # Matthieu Herrb <matthieu.herrb@laas.fr>
+validpgpkeys+=('3BB639E56F861FA2E86505690FDD682D974CA72A') # Matt Turner <mattst88@gmail.com>
 
 build() {
   cd "${srcdir}/libX11-${pkgver}"
diff --git a/abs/core/libx11/fix_typo.diff b/abs/core/libx11/fix_typo.diff
deleted file mode 100644
index a55a940..0000000
--- a/abs/core/libx11/fix_typo.diff
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5dcb40f28d59587597d2ff6e6ac64c71cfe6ff7b Mon Sep 17 00:00:00 2001
-From: James Cloos <cloos@jhcloos.com>
-Date: Tue, 17 Sep 2013 16:50:42 +0000
-Subject: nls/en_US.UTF-8/Compose.pre: Fix typo.
-
-Fix typo added in 215ce6a67863, s/actute/acute/.
-
-Fixes bug #69476.  Reported by Jean Krohn.
-
-Signed-off-by: James Cloos <cloos@jhcloos.com>
----
-diff --git a/nls/en_US.UTF-8/Compose.pre b/nls/en_US.UTF-8/Compose.pre
-index a741332..7314d7f 100644
---- a/nls/en_US.UTF-8/Compose.pre
-+++ b/nls/en_US.UTF-8/Compose.pre
-@@ -743,7 +743,7 @@ XCOMM Part 3
- <Multi_key> <i> <quotedbl> 		: "ï"   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
- <Multi_key> <diaeresis> <i> 		: "ï"   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
- <Multi_key> <i> <diaeresis> 		: "ï"   idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
--<dead_actute> <j>	 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
-+<dead_acute> <j>	 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
- <Multi_key> <apostrophe> <j> 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
- <Multi_key> <j> <apostrophe> 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
- <Multi_key> <acute> <j> 		: "j́"    # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
---
-cgit v0.9.0.2-2-gbebe
-
-- 
cgit v0.12


From e9373e7b1ccaee05042ccdaf6d348699fd15667a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 14:50:25 +0000
Subject: libxshmfence: update to to 1.2

---
 abs/extra/libxshmfence/PKGBUILD | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/abs/extra/libxshmfence/PKGBUILD b/abs/extra/libxshmfence/PKGBUILD
index eed460e..ec3012f 100644
--- a/abs/extra/libxshmfence/PKGBUILD
+++ b/abs/extra/libxshmfence/PKGBUILD
@@ -2,17 +2,19 @@
 # Maintainer: AndyRTR <andyrtr@archlinux.org>
 
 pkgname=libxshmfence
-pkgver=1.1
+pkgver=1.2
 pkgrel=1
 pkgdesc="a library that exposes a event API on top of Linux futexes"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('GPL')
 #groups=()
 depends=('glibc')
 makedepends=('xorg-util-macros' 'xproto')
-source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('dbc2db2925ca9f216fd1e9c63d0974db9f4d49aaf5877ffb606d2d8d7e58cebe')
+source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2{,.sig})
+sha256sums=('d21b2d1fd78c1efbe1f2c16dae1cb23f8fd231dcf891465b8debe636a9054b0c'
+            'SKIP')
+validpgpkeys=('C383B778255613DFDB409D91DB221A6900000011') # Keith Packard <keithp@keithp.com>
 
 build() {
 	cd $pkgname-$pkgver
-- 
cgit v0.12


From 9cb826b9a99592c2dc35f44f6e3859884768929d Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 15:35:18 +0000
Subject: libdrm: update to 2.4.75

---
 abs/core/libdrm/PKGBUILD | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/abs/core/libdrm/PKGBUILD b/abs/core/libdrm/PKGBUILD
index df8c56b..ad2bab9 100644
--- a/abs/core/libdrm/PKGBUILD
+++ b/abs/core/libdrm/PKGBUILD
@@ -2,19 +2,19 @@
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=libdrm
-pkgver=2.4.66
+pkgver=2.4.75
 pkgrel=1
 pkgdesc="Userspace interface to kernel DRM services"
 arch=(i686 x86_64)
 license=('custom')
-depends=('glibc' 'libpciaccess')
-makedepends=('valgrind' 'xorg-util-macros')
+depends=('libpciaccess')
+makedepends=('valgrind' 'xorg-util-macros' 'libxslt' 'docbook-xsl')
 checkdepends=('cairo')
 replaces=('libdrm-new' 'libdrm-nouveau')
 url="http://dri.freedesktop.org/"
-source=(http://dri.freedesktop.org/$pkgname/$pkgname-$pkgver.tar.bz2{,.sig}
+source=(https://dri.freedesktop.org/$pkgname/$pkgname-$pkgver.tar.bz2{,.sig}
         COPYING)
-sha256sums=('79cb8e988749794edfb2d777b298d5292eff353bbbb71ed813589e61d2bc2d76'
+sha256sums=('2d5a500eef412cc287d12268eed79d571e262d4957a2ec9258073f305985054f'
             'SKIP'
             '9631d4f694952e3e6ae5a05534c2e93e994e47d3413677a3a00e45c8cef6db93')
 validpgpkeys=('B97BD6A80CAC4981091AE547FE558C72A67013C3') # Maarten Lankhorst <maarten.lankhorst@canonical.com>
@@ -22,6 +22,10 @@ validpgpkeys+=('215DEE688925CCB965BE5DA97C03D7797B6E1AE2') # Damien Lespiau <dam
 validpgpkeys+=('10A6D91DA1B05BD29F6DEBAC0C74F35979C486BE') # David Airlie <airlied@redhat.com>
 validpgpkeys+=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov <emil.l.velikov@gmail.com>
 validpgpkeys+=('D6285B5E899299F3DA746184191C9B905522B045') # Rob Clark <robclark@freedesktop.org>
+validpgpkeys+=('E8EB5B34081CE1EEA26EFE195B5BDA071D49CC38') # Kenneth Graunke <kenneth.w.graunke@intel.com>
+validpgpkeys+=('FC9BAE1435A9F7F664B82057B5D62936D1FC9EE8') # Eric Anholt <eric@anholt.net>
+validpgpkeys+=('3BB639E56F861FA2E86505690FDD682D974CA72A') # Matt Turner <mattst88@gmail.com>
+validpgpkeys+=('C20F5C4490D7D64B4C9A09998CD1DF552975297B') # Robert Bragg <robert@sixbynine.org>
 
 prepare() {
   cd $pkgname-$pkgver
-- 
cgit v0.12


From d914020b4fb3fd3c7372644cf71026ea8e21ea94 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:10:31 +0000
Subject: libglvnd: update to 0.2.999+g4ba53457

---
 abs/extra/libglvnd/PKGBUILD | 36 ++++++++++--------------------------
 1 file changed, 10 insertions(+), 26 deletions(-)

diff --git a/abs/extra/libglvnd/PKGBUILD b/abs/extra/libglvnd/PKGBUILD
index 12011ec..a667e63 100644
--- a/abs/extra/libglvnd/PKGBUILD
+++ b/abs/extra/libglvnd/PKGBUILD
@@ -2,31 +2,20 @@
 # Maintainer: Felix Yan <felixonmars@archlinux.org>
 
 pkgname=libglvnd
-pkgver=0.1.1.20161028
-_commit=470fc824a38521a52707c6c0f59d827aa5e0f45a
-pkgrel=1
+pkgver=0.2.999+g4ba53457
+_commit=4ba5345742d6c98b528ac28fb7127006d2cc3f75
+pkgrel=2
 pkgdesc="The GL Vendor-Neutral Dispatch library"
 arch=('i686' 'x86_64')
 url="https://github.com/NVIDIA/libglvnd"
 license=('custom:BSD-like')
-depends=('libxext')
-makedepends=('libx11' 'glproto' 'git' 'python2')
+makedepends=('libxext' 'libx11' 'glproto' 'git' 'python2')
+provides=('libgl' 'libegl' 'libgles')
 #source=("git+https://github.com/NVIDIA/libglvnd.git#tag=v$pkgver"
 source=("git+https://github.com/NVIDIA/libglvnd.git#commit=$_commit"
-        LICENSE
-        https://patch-diff.githubusercontent.com/raw/NVIDIA/libglvnd/pull/110.patch
-        https://patch-diff.githubusercontent.com/raw/NVIDIA/libglvnd/pull/97.patch)
-sha1sums=('SKIP'
-          'c88e07f333fcf8dcdbef370b85372b4d88ad8a66'
-          '048e89dbdd0a6ca33441a6273208e4126d9828fc'
-          '48fac1b1248f1a6766ebae66432269c5147b5815')
-
-prepare() {
-  cd $pkgname
-  # FS#51527
-  patch -p1 -i ../97.patch
-  patch -p1 -i ../110.patch
-}
+        LICENSE)
+sha256sums=('SKIP'
+            '1a99f7487849c41fc3520e0af3dfcf28a0df05e78956d9ec58c2c52b1f20a77d')
 
 build() {
   cd $pkgname
@@ -36,15 +25,10 @@ build() {
 }
 
 package() {
+  # libglvnd needs mesa for indirect rendering
+  depends=('libxext' 'mesa' 'opengl-driver')
   cd $pkgname
   make DESTDIR="${pkgdir}" install
 
-  # For compatibility with older nvidia drivers for bumblebee
-  # Symlinks to /usr/lib will be in nvidia-libgl
-  mkdir "$pkgdir/usr/lib/nvidia"
-  for _lib in libGL.so libGLESv1_CM.so libGLESv2.so libEGL.so; do
-    mv "$pkgdir"/usr/lib/$_lib* "$pkgdir"/usr/lib/nvidia/
-  done
-
   install -Dm644 ../LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
 }
-- 
cgit v0.12


From 7593a128607420b10a7317ff1bf2be2142073d3a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:14:47 +0000
Subject: mesa: update to 17.0.2

---
 ...plement-the-libglvnd-interface-for-EGL-v2.patch | 3952 ++++++++++++++++++++
 .../0001-Fix-linkage-against-shared-glapi.patch    |   26 +
 ...1-glapi-Link-with-glapi-when-built-shared.patch |   82 +
 ...der-dri3-add-get_dri_screen-to-the-vtable.patch |   91 -
 ...mplement-the-libglvnd-interface-for-EGL-v.patch |   33 +
 ...-import-prime-buffers-in-the-currently-bo.patch |   59 -
 abs/core/mesa/PKGBUILD                             |  144 +-
 abs/core/mesa/glvnd-fix-gl-dot-pc.patch            |   12 +
 abs/core/mesa/llvm-39.patch                        |   10 -
 abs/core/mesa/remove-libpthread-stubs.patch        |   25 +-
 10 files changed, 4188 insertions(+), 246 deletions(-)
 create mode 100644 abs/core/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
 create mode 100644 abs/core/mesa/0001-Fix-linkage-against-shared-glapi.patch
 create mode 100644 abs/core/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch
 delete mode 100644 abs/core/mesa/0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch
 create mode 100644 abs/core/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
 delete mode 100644 abs/core/mesa/0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch
 create mode 100644 abs/core/mesa/glvnd-fix-gl-dot-pc.patch
 delete mode 100644 abs/core/mesa/llvm-39.patch

diff --git a/abs/core/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch b/abs/core/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
new file mode 100644
index 0000000..913a9dd
--- /dev/null
+++ b/abs/core/mesa/0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
@@ -0,0 +1,3952 @@
+From 97b447ee480a09a744094562da36b019a3eeb10f Mon Sep 17 00:00:00 2001
+From: Kyle Brenneman <kbrenneman@nvidia.com>
+Date: Wed, 4 Jan 2017 11:31:58 -0700
+Subject: [PATCH 1/2] EGL: Implement the libglvnd interface for EGL (v2)
+
+Added separate --enable-libglvnd-glx and --enable-libglvnd-egl configure
+options to enable libglvnd for GLX and EGL. The existing --enable-libglvnd
+option will now enable both EGL and GLX.
+
+The new interface mostly just sits on top of the existing library. The only
+change to the existing EGL code is to split the client extension string into
+platform extensions and everything else. On non-glvnd builds, eglQueryString
+will just concatenate the two strings.
+
+The EGL dispatch stubs are all generated. The script is based on the one used
+to generate entrypoints in libglvnd itself.
+
+v2:
+
+Rebased against master.
+
+Reworked the EGL makefile to use separate libtool targets instead of an
+automake substitution "lib@EGL_LIB@_la_*" in the variable names. Using the
+substitution broke automake's dependency tracking for "make dist".
+
+Made the EGL code generation scripts work with Python 2 or 3.
+
+Change gen_egl_dispatch.py to use argparse for the command line arguments.
+
+Assorted formatting and style cleanup in the Python scripts.
+---
+ configure.ac                         |  154 ++-
+ src/egl/Makefile.am                  |   97 +-
+ src/egl/generate/egl.xml             | 2412 ++++++++++++++++++++++++++++++++++
+ src/egl/generate/eglFunctionList.py  |  197 +++
+ src/egl/generate/egl_other.xml       |   47 +
+ src/egl/generate/genCommon.py        |  223 ++++
+ src/egl/generate/gen_egl_dispatch.py |  250 ++++
+ src/egl/main/50_mesa.json            |    6 +
+ src/egl/main/eglapi.c                |    6 +-
+ src/egl/main/egldispatchstubs.c      |  110 ++
+ src/egl/main/egldispatchstubs.h      |   26 +
+ src/egl/main/eglglobals.c            |   47 +-
+ src/egl/main/eglglobals.h            |   13 +-
+ src/egl/main/eglglvnd.c              |   82 ++
+ 14 files changed, 3576 insertions(+), 94 deletions(-)
+ create mode 100755 src/egl/generate/egl.xml
+ create mode 100644 src/egl/generate/eglFunctionList.py
+ create mode 100644 src/egl/generate/egl_other.xml
+ create mode 100644 src/egl/generate/genCommon.py
+ create mode 100755 src/egl/generate/gen_egl_dispatch.py
+ create mode 100644 src/egl/main/50_mesa.json
+ create mode 100644 src/egl/main/egldispatchstubs.c
+ create mode 100644 src/egl/main/egldispatchstubs.h
+ create mode 100644 src/egl/main/eglglvnd.c
+
+diff --git a/configure.ac b/configure.ac
+index de8af874ec..839b25c057 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -528,8 +528,6 @@ else
+    DEFINES="$DEFINES -DNDEBUG"
+ fi
+ 
+-DEFAULT_GL_LIB_NAME=GL
+-
+ dnl
+ dnl Check if linker supports -Bsymbolic
+ dnl
+@@ -627,23 +625,6 @@ esac
+ 
+ AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
+ 
+-DEFAULT_GL_LIB_NAME=GL
+-
+-dnl
+-dnl Libglvnd configuration
+-dnl
+-AC_ARG_ENABLE([libglvnd],
+-    [AS_HELP_STRING([--enable-libglvnd],
+-        [Build for libglvnd @<:@default=disabled@:>@])],
+-    [enable_libglvnd="$enableval"],
+-    [enable_libglvnd=no])
+-AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
+-#AM_COND_IF([USE_LIBGLVND_GLX], [DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"])
+-if test "x$enable_libglvnd" = xyes ; then
+-    DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
+-    DEFAULT_GL_LIB_NAME=GLX_mesa
+-fi
+-
+ dnl
+ dnl library names
+ dnl
+@@ -677,36 +658,6 @@ esac
+ 
+ AC_SUBST([LIB_EXT])
+ 
+-AC_ARG_WITH([gl-lib-name],
+-  [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
+-    [specify GL library name @<:@default=GL@:>@])],
+-  [GL_LIB=$withval],
+-  [GL_LIB="$DEFAULT_GL_LIB_NAME"])
+-AC_ARG_WITH([osmesa-lib-name],
+-  [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
+-    [specify OSMesa library name @<:@default=OSMesa@:>@])],
+-  [OSMESA_LIB=$withval],
+-  [OSMESA_LIB=OSMesa])
+-AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"])
+-AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
+-
+-dnl
+-dnl Mangled Mesa support
+-dnl
+-AC_ARG_ENABLE([mangling],
+-  [AS_HELP_STRING([--enable-mangling],
+-    [enable mangled symbols and library name @<:@default=disabled@:>@])],
+-  [enable_mangling="${enableval}"],
+-  [enable_mangling=no]
+-)
+-if test "x${enable_mangling}" = "xyes" ; then
+-  DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
+-  GL_LIB="Mangled${GL_LIB}"
+-  OSMESA_LIB="Mangled${OSMESA_LIB}"
+-fi
+-AC_SUBST([GL_LIB])
+-AC_SUBST([OSMESA_LIB])
+-
+ dnl
+ dnl potentially-infringing-but-nobody-knows-for-sure stuff
+ dnl
+@@ -1335,31 +1286,94 @@ AM_CONDITIONAL(HAVE_GALLIUM_XLIB_GLX, test "x$enable_glx" = xgallium-xlib)
+ dnl
+ dnl Libglvnd configuration
+ dnl
++
++DEFAULT_GL_LIB_NAME=GL
++
+ AC_ARG_ENABLE([libglvnd],
+     [AS_HELP_STRING([--enable-libglvnd],
+-        [Build for libglvnd @<:@default=disabled@:>@])],
++        [Build GLX and EGL for libglvnd @<:@default=disabled@:>@])],
+     [enable_libglvnd="$enableval"],
+     [enable_libglvnd=no])
+-AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd" = xyes)
+-if test "x$enable_libglvnd" = xyes ; then
+-    dnl XXX: update once we can handle more than libGL/glx.
+-    dnl Namely: we should error out if neither of the glvnd enabled libraries
+-    dnl are built
+-    case "x$enable_glx" in
+-    xno)
+-        AC_MSG_ERROR([cannot build libglvnd without GLX])
+-        ;;
+-    xxlib | xgallium-xlib )
+-        AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled])
+-        ;;
+-    xdri)
+-        ;;
+-    esac
++AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd_glx" = xyes)
++
++AC_ARG_ENABLE([libglvnd-glx],
++    [AS_HELP_STRING([--enable-libglvnd-glx],
++        [Build GLX for libglvnd @<:@default=disabled@:>@])],
++    [enable_libglvnd_glx="$enableval"],
++    [enable_libglvnd_glx="$enable_libglvnd"])
++AM_CONDITIONAL(USE_LIBGLVND_GLX, test "x$enable_libglvnd_glx" = xyes)
++
++AC_ARG_ENABLE([libglvnd-egl],
++    [AS_HELP_STRING([--enable-libglvnd-egl],
++        [Build EGL for libglvnd @<:@default=disabled@:>@])],
++    [enable_libglvnd_egl="$enableval"],
++    [enable_libglvnd_egl="$enable_libglvnd"])
++AM_CONDITIONAL(USE_LIBGLVND_EGL, test "x$enable_libglvnd_egl" = xyes)
++
++if test "x$enable_libglvnd_glx" = xyes -o "x$enable_libglvnd_egl" = xyes ; then
++    PKG_CHECK_VAR(LIBGLVND_DATADIR, libglvnd, datadir)
++    AC_SUBST([LIBGLVND_DATADIR])
++
++    if test "x$enable_libglvnd_egl" = xyes ; then
++        PKG_CHECK_MODULES([GLVND], libglvnd >= 0.2.0)
++
++        if test "x$enable_egl" != xyes ; then
++            AC_MSG_ERROR([cannot build libglvnd without EGL])
++        fi
++        DEFINES="${DEFINES} -DUSE_LIBGLVND_EGL=1"
++    else
++        PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0)
++    fi
++
++    if test "x$enable_libglvnd_glx" = xyes ; then
++        dnl XXX: update once we can handle more than libGL/glx.
++        dnl Namely: we should error out if neither of the glvnd enabled libraries
++        dnl are built
++        case "x$enable_glx" in
++        xno)
++            AC_MSG_ERROR([cannot build libglvnd without GLX])
++            ;;
++        xxlib | xgallium-xlib )
++            AC_MSG_ERROR([cannot build libgvnd when Xlib-GLX or Gallium-Xlib-GLX is enabled])
++            ;;
++        xdri)
++            ;;
++        esac
++
++        DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
++        DEFAULT_GL_LIB_NAME=GLX_mesa
++    fi
++fi
++
++AC_ARG_WITH([gl-lib-name],
++  [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
++    [specify GL library name @<:@default=GL@:>@])],
++  [GL_LIB=$withval],
++  [GL_LIB="$DEFAULT_GL_LIB_NAME"])
++AC_ARG_WITH([osmesa-lib-name],
++  [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
++    [specify OSMesa library name @<:@default=OSMesa@:>@])],
++  [OSMESA_LIB=$withval],
++  [OSMESA_LIB=OSMesa])
++AS_IF([test "x$GL_LIB" = xyes], [GL_LIB="$DEFAULT_GL_LIB_NAME"])
++AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
+ 
+-    PKG_CHECK_MODULES([GLVND], libglvnd >= 0.1.0)
+-    DEFINES="${DEFINES} -DUSE_LIBGLVND_GLX=1"
+-    DEFAULT_GL_LIB_NAME=GLX_mesa
++dnl
++dnl Mangled Mesa support
++dnl
++AC_ARG_ENABLE([mangling],
++  [AS_HELP_STRING([--enable-mangling],
++    [enable mangled symbols and library name @<:@default=disabled@:>@])],
++  [enable_mangling="${enableval}"],
++  [enable_mangling=no]
++)
++if test "x${enable_mangling}" = "xyes" ; then
++  DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
++  GL_LIB="Mangled${GL_LIB}"
++  OSMESA_LIB="Mangled${OSMESA_LIB}"
+ fi
++AC_SUBST([GL_LIB])
++AC_SUBST([OSMESA_LIB])
+ 
+ # Check for libdrm
+ PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
+@@ -2759,11 +2773,15 @@ xgallium-xlib)
+     echo "        GLX:             $enable_glx"
+     ;;
+ esac
++if test "x$enable_glx" != xno; then
++    echo "        GLX libglvnd:    $enable_libglvnd_glx"
++fi
+ 
+ dnl EGL
+ echo ""
+ echo "        EGL:             $enable_egl"
+ if test "$enable_egl" = yes; then
++    echo "        EGL libglvnd:    $enable_libglvnd_egl"
+     echo "        EGL platforms:   $egl_platforms"
+ 
+     egl_drivers=""
+diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am
+index 78cf525951..3bc62d550f 100644
+--- a/src/egl/Makefile.am
++++ b/src/egl/Makefile.am
+@@ -32,19 +32,16 @@ AM_CFLAGS = \
+ 	$(EGL_CFLAGS) \
+ 	-D_EGL_NATIVE_PLATFORM=$(EGL_NATIVE_PLATFORM)
+ 
+-lib_LTLIBRARIES = libEGL.la
+-
+-libEGL_la_SOURCES = \
++# Depending on whether libglvnd is enabled, we'll build the EGL library as
++# either libEGL.so.1 or libEGL_mesa.so.0. Using an automake substitution
++# in the variable names breaks "make dist" target, so use a conenience library
++# instead.
++noinst_LTLIBRARIES = libEGL_common.la
++libEGL_common_la_SOURCES = \
+ 	$(LIBEGL_C_FILES)
+ 
+-libEGL_la_LIBADD = \
++libEGL_common_la_LIBADD = \
+ 	$(EGL_LIB_DEPS)
+-libEGL_la_LDFLAGS = \
+-	-no-undefined \
+-	-version-number 1:0 \
+-	$(BSYMBOLIC) \
+-	$(GC_SECTIONS) \
+-	$(LD_NO_UNDEFINED)
+ 
+ dri2_backend_FILES =
+ dri3_backend_FILES =
+@@ -52,7 +49,7 @@ dri3_backend_FILES =
+ if HAVE_PLATFORM_X11
+ AM_CFLAGS += -DHAVE_X11_PLATFORM
+ AM_CFLAGS += $(XCB_DRI2_CFLAGS)
+-libEGL_la_LIBADD += $(XCB_DRI2_LIBS)
++libEGL_common_la_LIBADD += $(XCB_DRI2_LIBS)
+ dri2_backend_FILES += drivers/dri2/platform_x11.c
+ 
+ if HAVE_DRI3
+@@ -60,22 +57,22 @@ dri3_backend_FILES += \
+ 	drivers/dri2/platform_x11_dri3.c \
+ 	drivers/dri2/platform_x11_dri3.h
+ 
+-libEGL_la_LIBADD += $(top_builddir)/src/loader/libloader_dri3_helper.la
++libEGL_common_la_LIBADD += $(top_builddir)/src/loader/libloader_dri3_helper.la
+ endif
+ endif
+ 
+ if HAVE_PLATFORM_WAYLAND
+ AM_CFLAGS += -DHAVE_WAYLAND_PLATFORM
+ AM_CFLAGS += $(WAYLAND_CFLAGS)
+-libEGL_la_LIBADD += $(WAYLAND_LIBS)
+-libEGL_la_LIBADD += $(LIBDRM_LIBS)
+-libEGL_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la
++libEGL_common_la_LIBADD += $(WAYLAND_LIBS)
++libEGL_common_la_LIBADD += $(LIBDRM_LIBS)
++libEGL_common_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la
+ dri2_backend_FILES += drivers/dri2/platform_wayland.c
+ endif
+ 
+ if HAVE_EGL_PLATFORM_DRM
+ AM_CFLAGS += -DHAVE_DRM_PLATFORM
+-libEGL_la_LIBADD += $(top_builddir)/src/gbm/libgbm.la
++libEGL_common_la_LIBADD += $(top_builddir)/src/gbm/libgbm.la
+ dri2_backend_FILES += drivers/dri2/platform_drm.c
+ endif
+ 
+@@ -87,7 +84,7 @@ endif
+ if HAVE_EGL_PLATFORM_ANDROID
+ AM_CFLAGS += -DHAVE_ANDROID_PLATFORM
+ AM_CFLAGS += $(ANDROID_CFLAGS)
+-libEGL_la_LIBADD += $(ANDROID_LIBS)
++libEGL_common_la_LIBADD += $(ANDROID_LIBS)
+ dri2_backend_FILES += drivers/dri2/platform_android.c
+ endif
+ 
+@@ -101,13 +98,68 @@ AM_CFLAGS += \
+ 	-DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \
+ 	-D_EGL_BUILT_IN_DRIVER_DRI2
+ 
+-libEGL_la_SOURCES += \
++libEGL_common_la_SOURCES += \
+ 	$(dri2_backend_core_FILES) \
+ 	$(dri2_backend_FILES) \
+ 	$(dri3_backend_FILES)
+ 
+-libEGL_la_LIBADD += $(top_builddir)/src/loader/libloader.la
+-libEGL_la_LIBADD += $(DLOPEN_LIBS) $(LIBDRM_LIBS) $(CLOCK_LIB)
++libEGL_common_la_LIBADD += $(top_builddir)/src/loader/libloader.la
++libEGL_common_la_LIBADD += $(DLOPEN_LIBS) $(LIBDRM_LIBS) $(CLOCK_LIB)
++
++GLVND_GEN_DEPS = generate/gen_egl_dispatch.py \
++	generate/egl.xml generate/eglFunctionList.py generate/genCommon.py \
++	generate/egl_other.xml
++
++PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS)
++g_egldispatchstubs.c: $(GLVND_GEN_DEPS)
++	$(PYTHON_GEN) $(top_srcdir)/src/egl/generate/gen_egl_dispatch.py source \
++		$(top_srcdir)/src/egl/generate/eglFunctionList.py \
++		$(top_srcdir)/src/egl/generate/egl.xml \
++		$(top_srcdir)/src/egl/generate/egl_other.xml > $@
++
++g_egldispatchstubs.h: $(GLVND_GEN_DEPS)
++	$(PYTHON_GEN) $(top_srcdir)/src/egl/generate/gen_egl_dispatch.py header \
++		$(top_srcdir)/src/egl/generate/eglFunctionList.py \
++		$(top_srcdir)/src/egl/generate/egl.xml \
++		$(top_srcdir)/src/egl/generate/egl_other.xml > $@
++
++BUILT_SOURCES = g_egldispatchstubs.c g_egldispatchstubs.h
++CLEANFILES = $(BUILT_SOURCES)
++
++if USE_LIBGLVND_EGL
++AM_CFLAGS += \
++	$(GLVND_CFLAGS)
++
++vendorjsondir = @LIBGLVND_DATADIR@/glvnd/egl_vendor.d
++vendorjson_DATA = main/50_mesa.json
++
++lib_LTLIBRARIES = libEGL_mesa.la
++libEGL_mesa_la_SOURCES = \
++	main/eglglvnd.c \
++	main/egldispatchstubs.h \
++	main/egldispatchstubs.c \
++	g_egldispatchstubs.c
++libEGL_mesa_la_LIBADD = libEGL_common.la
++libEGL_mesa_la_LDFLAGS = \
++	-no-undefined \
++	-version-number 0 \
++	$(BSYMBOLIC) \
++	$(GC_SECTIONS) \
++	$(LD_NO_UNDEFINED)
++
++else # USE_LIBGLVND_EGL
++
++lib_LTLIBRARIES = libEGL.la
++libEGL_la_SOURCES =
++libEGL_la_LIBADD = libEGL_common.la
++libEGL_la_LDFLAGS = \
++	-no-undefined \
++	-version-number 1:0 \
++	$(BSYMBOLIC) \
++	$(GC_SECTIONS) \
++	$(LD_NO_UNDEFINED)
++
++endif # USE_LIBGLVND_EGL
+ 
+ include $(top_srcdir)/install-lib-links.mk
+ 
+@@ -133,4 +185,7 @@ EXTRA_DIST = \
+ 	SConscript \
+ 	drivers/haiku \
+ 	main/egl.def \
+-	main/README.txt
++	main/README.txt \
++	$(GLVND_GEN_DEPS) \
++	main/50_mesa.json
++
+diff --git a/src/egl/generate/egl.xml b/src/egl/generate/egl.xml
+new file mode 100755
+index 0000000000..f6dbbc0f26
+--- /dev/null
++++ b/src/egl/generate/egl.xml
+@@ -0,0 +1,2412 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<registry>
++    <!--
++    Copyright (c) 2013-2014 The Khronos Group Inc.
++
++    Permission is hereby granted, free of charge, to any person obtaining a
++    copy of this software and/or associated documentation files (the
++    "Materials"), to deal in the Materials without restriction, including
++    without limitation the rights to use, copy, modify, merge, publish,
++    distribute, sublicense, and/or sell copies of the Materials, and to
++    permit persons to whom the Materials are furnished to do so, subject to
++    the following conditions:
++
++    The above copyright notice and this permission notice shall be included
++    in all copies or substantial portions of the Materials.
++
++    THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++    IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
++    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
++    TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
++    MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
++    -->
++    <!--
++    This file, egl.xml, is the EGL API Registry. The older ".spec" file
++    format has been retired and will no longer be updated with new
++    extensions and API versions. The canonical version of the registry,
++    together with documentation, schema, and Python generator scripts used
++    to generate C header files for EGL, can be found in the Khronos Registry
++    at
++        http://www.opengl.org/registry/
++    -->
++
++    <!-- SECTION: EGL type definitions. Does not include GL types. -->
++    <types>
++            <!-- These are dependencies EGL types require to be declared legally -->
++        <type name="khrplatform">#include &lt;KHR/khrplatform.h&gt;</type>
++        <type name="eglplatform" requires="khrplatform">#include &lt;EGL/eglplatform.h&gt;</type>
++        <type name="khronos_utime_nanoseconds_t" requires="khrplatform"/>
++        <type name="khronos_uint64_t" requires="khrplatform"/>
++        <type name="khronos_ssize_t" requires="khrplatform"/>
++        <type name="EGLNativeDisplayType" requires="eglplatform"/>
++        <type name="EGLNativePixmapType" requires="eglplatform"/>
++        <type name="EGLNativeWindowType" requires="eglplatform"/>
++        <type name="EGLint" requires="eglplatform"/>
++        <type name="NativeDisplayType" requires="eglplatform"/>
++        <type name="NativePixmapType" requires="eglplatform"/>
++        <type name="NativeWindowType" requires="eglplatform"/>
++        <!-- Dummy placeholders for non-EGL types -->
++        <type name="Bool"/>
++            <!-- These are actual EGL types.  -->
++        <type>typedef unsigned int <name>EGLBoolean</name>;</type>
++        <type>typedef unsigned int <name>EGLenum</name>;</type>
++        <type requires="khrplatform">typedef intptr_t <name>EGLAttribKHR</name>;</type>
++        <type requires="khrplatform">typedef intptr_t <name>EGLAttrib</name>;</type>
++        <type>typedef void *<name>EGLClientBuffer</name>;</type>
++        <type>typedef void *<name>EGLConfig</name>;</type>
++        <type>typedef void *<name>EGLContext</name>;</type>
++        <type>typedef void *<name>EGLDeviceEXT</name>;</type>
++        <type>typedef void *<name>EGLDisplay</name>;</type>
++        <type>typedef void *<name>EGLImage</name>;</type>
++        <type>typedef void *<name>EGLImageKHR</name>;</type>
++        <type>typedef void *<name>EGLLabelKHR</name>;</type>
++        <type>typedef void *<name>EGLObjectKHR</name>;</type>
++        <type>typedef void *<name>EGLOutputLayerEXT</name>;</type>
++        <type>typedef void *<name>EGLOutputPortEXT</name>;</type>
++        <type>typedef void *<name>EGLStreamKHR</name>;</type>
++        <type>typedef void *<name>EGLSurface</name>;</type>
++        <type>typedef void *<name>EGLSync</name>;</type>
++        <type>typedef void *<name>EGLSyncKHR</name>;</type>
++        <type>typedef void *<name>EGLSyncNV</name>;</type>
++        <type>typedef void (*<name>__eglMustCastToProperFunctionPointerType</name>)(void);</type>
++        <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeKHR</name>;</type>
++        <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTime</name>;</type>
++        <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLTimeNV</name>;</type>
++        <type requires="khrplatform">typedef khronos_utime_nanoseconds_t <name>EGLuint64NV</name>;</type>
++        <type requires="khrplatform">typedef khronos_uint64_t <name>EGLuint64KHR</name>;</type>
++        <type>typedef int <name>EGLNativeFileDescriptorKHR</name>;</type>
++        <type requires="khrplatform">typedef khronos_ssize_t <name>EGLsizeiANDROID</name>;</type>
++        <type requires="EGLsizeiANDROID">typedef void (*<name>EGLSetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);</type>
++        <type requires="EGLsizeiANDROID">typedef EGLsizeiANDROID (*<name>EGLGetBlobFuncANDROID</name>) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);</type>
++        <type>struct <name>EGLClientPixmapHI</name> {
++    void  *pData;
++    EGLint iWidth;
++    EGLint iHeight;
++    EGLint iStride;
++};</type>
++        <type>typedef void (<apientry/> *<name>EGLDEBUGPROCKHR</name>)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);</type>
++    </types>
++
++    <!-- SECTION: EGL enumerant (token) definitions. -->
++
++    <!-- Bitmasks each have their own namespace, as do a few other
++         categories of enumeration -->
++
++    <enums namespace="EGLSurfaceTypeMask" type="bitmask" comment="EGL_SURFACE_TYPE bits">
++        <enum value="0x0001" name="EGL_PBUFFER_BIT"/>
++        <enum value="0x0002" name="EGL_PIXMAP_BIT"/>
++        <enum value="0x0004" name="EGL_WINDOW_BIT"/>
++        <enum value="0x0008" name="EGL_PBUFFER_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/>
++        <enum value="0x0010" name="EGL_PBUFFER_PALETTE_IMAGE_BIT_TAO" comment="Unreleased TAO extension"/>
++        <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT"/>
++        <enum value="0x0020" name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/>
++        <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/>
++        <enum value="0x0040" name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/>
++        <enum value="0x0080" name="EGL_LOCK_SURFACE_BIT_KHR"/>
++        <enum value="0x0100" name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
++        <enum value="0x0200" name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/>
++        <enum value="0x0400" name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/>
++        <enum value="0x0800" name="EGL_STREAM_BIT_KHR"/>
++            <!--
++        <enum value="0x0800"      name="EGL_STREAM_BIT_NV" comment="Draft EGL_NV_stream_producer_eglsurface extension (bug 8064)"/>
++            -->
++    </enums>
++
++    <enums namespace="EGLRenderableTypeMask" type="bitmask" comment="EGL_RENDERABLE_TYPE bits">
++        <enum value="0x0001" name="EGL_OPENGL_ES_BIT"/>
++        <enum value="0x0002" name="EGL_OPENVG_BIT"/>
++        <enum value="0x0004" name="EGL_OPENGL_ES2_BIT"/>
++        <enum value="0x0008" name="EGL_OPENGL_BIT"/>
++        <enum value="0x0010" name="EGL_INTEROP_BIT_KHR" comment="EGL_KHR_interop"/>
++        <enum value="0x0020" name="EGL_OPENMAX_IL_BIT_KHR" comment="EGL_KHR_interop"/>
++        <enum value="0x00000040" name="EGL_OPENGL_ES3_BIT"/>
++        <enum value="0x00000040" name="EGL_OPENGL_ES3_BIT_KHR" alias="EGL_OPENGL_ES3_BIT"/>
++    </enums>
++
++    <enums namespace="EGLLockUsageHintKHRMask" type="bitmask" comment="EGL_LOCK_USAGE_HINT_KHR bits">
++        <enum value="0x0001" name="EGL_READ_SURFACE_BIT_KHR"/>
++        <enum value="0x0002" name="EGL_WRITE_SURFACE_BIT_KHR"/>
++    </enums>
++
++    <enums namespace="EGLSyncFlagsKHR" type="bitmask" comment="Fence/reusable sync wait bits">
++        <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
++        <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR" alias="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
++        <enum value="0x0001" name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV" alias="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
++    </enums>
++
++    <enums namespace="EGLDRMBufferUseMESAMask" type="bitmask" comment="EGL_DRM_BUFFER_USE_MESA bits">
++        <enum value="0x00000001" name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
++        <enum value="0x00000002" name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
++    </enums>
++
++    <!-- Should be shared with GL, but aren't aren't since the
++         FORWARD_COMPATIBLE and DEBUG_BIT values are swapped in the
++         corresponding GL enums. Oops :-( -->
++    <enums namespace="EGLContextFlagMask" type="bitmask" comment="EGL_CONTEXT_FLAGS_KHR bits">
++        <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/>
++        <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/>
++        <enum value="0x00000004" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/>
++    </enums>
++
++    <enums namespace="EGLContextProfileMask" type="bitmask" comment="Shared with GL">
++        <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
++        <enum value="0x00000001" name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR" alias="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
++        <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
++        <enum value="0x00000002" name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR" alias="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
++    </enums>
++
++    <!-- The default ("API") enum namespace starts here. While some
++         assigned values may overlap, and different parts of the
++         namespace are reserved for different purposes, it is a single
++         namespace. The "class" attribute indicates some of the reserved
++         purposes but is by no means complete (and cannot be, since many
++         tokens are reused for different purposes in different
++         extensions and API versions). -->
++
++    <enums namespace="EGL" start="0x0000" end="0x2FFF" vendor="ARB"/>
++
++    <enums namespace="EGL" group="Boolean" vendor="ARB">
++        <enum value="0" name="EGL_FALSE"/>
++        <enum value="1" name="EGL_TRUE"/>
++    </enums>
++
++    <enums namespace="EGL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
++        <enum value="((EGLint)-1)" name="EGL_DONT_CARE"/>
++        <enum value="((EGLint)-1)" name="EGL_UNKNOWN"/>
++        <enum value="-1" name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/>
++        <enum value="0" name="EGL_DEPTH_ENCODING_NONE_NV"/>
++        <enum value="((EGLContext)0)" name="EGL_NO_CONTEXT"/>
++        <enum value="((EGLDeviceEXT)(0))" name="EGL_NO_DEVICE_EXT"/>
++        <enum value="((EGLDisplay)0)" name="EGL_NO_DISPLAY"/>
++        <enum value="((EGLImage)0)" name="EGL_NO_IMAGE"/>
++        <enum value="((EGLImageKHR)0)" name="EGL_NO_IMAGE_KHR"/>
++        <enum value="((EGLNativeDisplayType)0)" name="EGL_DEFAULT_DISPLAY"/>
++        <enum value="((EGLNativeFileDescriptorKHR)(-1))" name="EGL_NO_FILE_DESCRIPTOR_KHR"/>
++        <enum value="((EGLOutputLayerEXT)0)" name="EGL_NO_OUTPUT_LAYER_EXT"/>
++        <enum value="((EGLOutputPortEXT)0)" name="EGL_NO_OUTPUT_PORT_EXT"/>
++        <enum value="((EGLStreamKHR)0)" name="EGL_NO_STREAM_KHR"/>
++        <enum value="((EGLSurface)0)" name="EGL_NO_SURFACE"/>
++        <enum value="((EGLSync)0)" name="EGL_NO_SYNC"/>
++        <enum value="((EGLSyncKHR)0)" name="EGL_NO_SYNC_KHR" alias="EGL_NO_SYNC"/>
++        <enum value="((EGLSyncNV)0)" name="EGL_NO_SYNC_NV" alias="EGL_NO_SYNC"/>
++        <enum value="10000" name="EGL_DISPLAY_SCALING"/>
++        <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER" type="ull"/>
++        <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_KHR" type="ull" alias="EGL_FOREVER"/>
++        <enum value="0xFFFFFFFFFFFFFFFF" name="EGL_FOREVER_NV" type="ull" alias="EGL_FOREVER"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3000" end="0x305F" vendor="KHR">
++        <enum value="0x3000" name="EGL_SUCCESS"/>
++        <enum value="0x3001" name="EGL_NOT_INITIALIZED"/>
++        <enum value="0x3002" name="EGL_BAD_ACCESS"/>
++        <enum value="0x3003" name="EGL_BAD_ALLOC"/>
++        <enum value="0x3004" name="EGL_BAD_ATTRIBUTE"/>
++        <enum value="0x3005" name="EGL_BAD_CONFIG"/>
++        <enum value="0x3006" name="EGL_BAD_CONTEXT"/>
++        <enum value="0x3007" name="EGL_BAD_CURRENT_SURFACE"/>
++        <enum value="0x3008" name="EGL_BAD_DISPLAY"/>
++        <enum value="0x3009" name="EGL_BAD_MATCH"/>
++        <enum value="0x300A" name="EGL_BAD_NATIVE_PIXMAP"/>
++        <enum value="0x300B" name="EGL_BAD_NATIVE_WINDOW"/>
++        <enum value="0x300C" name="EGL_BAD_PARAMETER"/>
++        <enum value="0x300D" name="EGL_BAD_SURFACE"/>
++        <enum value="0x300E" name="EGL_CONTEXT_LOST"/>
++            <unused start="0x300F" end="0x301F" comment="for additional errors"/>
++        <enum value="0x3020" name="EGL_BUFFER_SIZE"/>
++        <enum value="0x3021" name="EGL_ALPHA_SIZE"/>
++        <enum value="0x3022" name="EGL_BLUE_SIZE"/>
++        <enum value="0x3023" name="EGL_GREEN_SIZE"/>
++        <enum value="0x3024" name="EGL_RED_SIZE"/>
++        <enum value="0x3025" name="EGL_DEPTH_SIZE"/>
++        <enum value="0x3026" name="EGL_STENCIL_SIZE"/>
++        <enum value="0x3027" name="EGL_CONFIG_CAVEAT"/>
++        <enum value="0x3028" name="EGL_CONFIG_ID"/>
++        <enum value="0x3029" name="EGL_LEVEL"/>
++        <enum value="0x302A" name="EGL_MAX_PBUFFER_HEIGHT"/>
++        <enum value="0x302B" name="EGL_MAX_PBUFFER_PIXELS"/>
++        <enum value="0x302C" name="EGL_MAX_PBUFFER_WIDTH"/>
++        <enum value="0x302D" name="EGL_NATIVE_RENDERABLE"/>
++        <enum value="0x302E" name="EGL_NATIVE_VISUAL_ID"/>
++        <enum value="0x302F" name="EGL_NATIVE_VISUAL_TYPE"/>
++        <enum value="0x3031" name="EGL_SAMPLES"/>
++        <enum value="0x3032" name="EGL_SAMPLE_BUFFERS"/>
++        <enum value="0x3033" name="EGL_SURFACE_TYPE"/>
++        <enum value="0x3034" name="EGL_TRANSPARENT_TYPE"/>
++        <enum value="0x3035" name="EGL_TRANSPARENT_BLUE_VALUE"/>
++        <enum value="0x3036" name="EGL_TRANSPARENT_GREEN_VALUE"/>
++        <enum value="0x3037" name="EGL_TRANSPARENT_RED_VALUE"/>
++        <enum value="0x3038" name="EGL_NONE" comment="Attribute list terminator"/>
++        <enum value="0x3039" name="EGL_BIND_TO_TEXTURE_RGB"/>
++        <enum value="0x303A" name="EGL_BIND_TO_TEXTURE_RGBA"/>
++        <enum value="0x303B" name="EGL_MIN_SWAP_INTERVAL"/>
++        <enum value="0x303C" name="EGL_MAX_SWAP_INTERVAL"/>
++        <enum value="0x303D" name="EGL_LUMINANCE_SIZE"/>
++        <enum value="0x303E" name="EGL_ALPHA_MASK_SIZE"/>
++        <enum value="0x303F" name="EGL_COLOR_BUFFER_TYPE"/>
++        <enum value="0x3040" name="EGL_RENDERABLE_TYPE"/>
++        <enum value="0x3041" name="EGL_MATCH_NATIVE_PIXMAP"/>
++        <enum value="0x3042" name="EGL_CONFORMANT"/>
++        <enum value="0x3042" name="EGL_CONFORMANT_KHR"/>
++        <enum value="0x3043" name="EGL_MATCH_FORMAT_KHR"/>
++            <unused start="0x3044" end="0x304F" comment="for additional config attributes"/>
++        <enum value="0x3050" name="EGL_SLOW_CONFIG"/>
++        <enum value="0x3051" name="EGL_NON_CONFORMANT_CONFIG"/>
++        <enum value="0x3052" name="EGL_TRANSPARENT_RGB"/>
++        <enum value="0x3053" name="EGL_VENDOR"/>
++        <enum value="0x3054" name="EGL_VERSION"/>
++        <enum value="0x3055" name="EGL_EXTENSIONS"/>
++        <enum value="0x3056" name="EGL_HEIGHT"/>
++        <enum value="0x3057" name="EGL_WIDTH"/>
++        <enum value="0x3058" name="EGL_LARGEST_PBUFFER"/>
++        <enum value="0x3059" name="EGL_DRAW"/>
++        <enum value="0x305A" name="EGL_READ"/>
++        <enum value="0x305B" name="EGL_CORE_NATIVE_ENGINE"/>
++        <enum value="0x305C" name="EGL_NO_TEXTURE"/>
++        <enum value="0x305D" name="EGL_TEXTURE_RGB"/>
++        <enum value="0x305E" name="EGL_TEXTURE_RGBA"/>
++        <enum value="0x305F" name="EGL_TEXTURE_2D"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3060-0x306F" vendor="TAO" comment="Reserved for Phil Huxley">
++        <unused start="0x3060" end="0x306F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3070-0x307F" vendor="NOK" comment="Reserved for Jani Vaarala">
++        <unused start="0x3070" end="0x307E"/>
++        <enum value="0x307F" name="EGL_Y_INVERTED_NOK"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3080-0x30AF" vendor="KHR">
++        <enum value="0x3080" name="EGL_TEXTURE_FORMAT"/>
++        <enum value="0x3081" name="EGL_TEXTURE_TARGET"/>
++        <enum value="0x3082" name="EGL_MIPMAP_TEXTURE"/>
++        <enum value="0x3083" name="EGL_MIPMAP_LEVEL"/>
++        <enum value="0x3084" name="EGL_BACK_BUFFER"/>
++        <enum value="0x3085" name="EGL_SINGLE_BUFFER"/>
++        <enum value="0x3086" name="EGL_RENDER_BUFFER"/>
++        <enum value="0x3087" name="EGL_COLORSPACE" alias="EGL_VG_COLORSPACE"/>
++        <enum value="0x3087" name="EGL_VG_COLORSPACE"/>
++        <enum value="0x3088" name="EGL_ALPHA_FORMAT" alias="EGL_VG_ALPHA_FORMAT"/>
++        <enum value="0x3088" name="EGL_VG_ALPHA_FORMAT"/>
++        <enum value="0x3089" name="EGL_COLORSPACE_sRGB"/>
++        <enum value="0x3089" name="EGL_GL_COLORSPACE_SRGB" alias="EGL_COLORSPACE_sRGB"/>
++        <enum value="0x3089" name="EGL_GL_COLORSPACE_SRGB_KHR" alias="EGL_COLORSPACE_sRGB"/>
++        <enum value="0x3089" name="EGL_VG_COLORSPACE_sRGB" alias="EGL_COLORSPACE_sRGB"/>
++        <enum value="0x308A" name="EGL_COLORSPACE_LINEAR"/>
++        <enum value="0x308A" name="EGL_GL_COLORSPACE_LINEAR" alias="EGL_COLORSPACE_LINEAR"/>
++        <enum value="0x308A" name="EGL_GL_COLORSPACE_LINEAR_KHR" alias="EGL_COLORSPACE_LINEAR"/>
++        <enum value="0x308A" name="EGL_VG_COLORSPACE_LINEAR" alias="EGL_COLORSPACE_LINEAR"/>
++        <enum value="0x308B" name="EGL_ALPHA_FORMAT_NONPRE" alias="EGL_VG_ALPHA_FORMAT_NONPRE"/>
++        <enum value="0x308B" name="EGL_VG_ALPHA_FORMAT_NONPRE"/>
++        <enum value="0x308C" name="EGL_ALPHA_FORMAT_PRE" alias="EGL_VG_ALPHA_FORMAT_PRE"/>
++        <enum value="0x308C" name="EGL_VG_ALPHA_FORMAT_PRE"/>
++        <enum value="0x308D" name="EGL_CLIENT_APIS"/>
++        <enum value="0x308E" name="EGL_RGB_BUFFER"/>
++        <enum value="0x308F" name="EGL_LUMINANCE_BUFFER"/>
++        <enum value="0x3090" name="EGL_HORIZONTAL_RESOLUTION"/>
++        <enum value="0x3091" name="EGL_VERTICAL_RESOLUTION"/>
++        <enum value="0x3092" name="EGL_PIXEL_ASPECT_RATIO"/>
++        <enum value="0x3093" name="EGL_SWAP_BEHAVIOR"/>
++        <enum value="0x3094" name="EGL_BUFFER_PRESERVED"/>
++        <enum value="0x3095" name="EGL_BUFFER_DESTROYED"/>
++        <enum value="0x3096" name="EGL_OPENVG_IMAGE"/>
++        <enum value="0x3097" name="EGL_CONTEXT_CLIENT_TYPE"/>
++        <enum value="0x3098" name="EGL_CONTEXT_CLIENT_VERSION"/>
++        <enum value="0x3098" name="EGL_CONTEXT_MAJOR_VERSION" alias="EGL_CONTEXT_CLIENT_VERSION"/>
++        <enum value="0x3098" name="EGL_CONTEXT_MAJOR_VERSION_KHR" alias="EGL_CONTEXT_CLIENT_VERSION"/>
++        <enum value="0x3099" name="EGL_MULTISAMPLE_RESOLVE"/>
++        <enum value="0x309A" name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/>
++        <enum value="0x309B" name="EGL_MULTISAMPLE_RESOLVE_BOX"/>
++        <enum value="0x309C" name="EGL_CL_EVENT_HANDLE"/>
++        <enum value="0x309C" name="EGL_CL_EVENT_HANDLE_KHR" alias="EGL_CL_EVENT_HANDLE"/>
++        <enum value="0x309D" name="EGL_GL_COLORSPACE"/>
++        <enum value="0x309D" name="EGL_GL_COLORSPACE_KHR" alias="EGL_GL_COLORSPACE"/>
++            <unused start="0x309E" end="0x309F"/>
++        <enum value="0x30A0" name="EGL_OPENGL_ES_API"/>
++        <enum value="0x30A1" name="EGL_OPENVG_API"/>
++        <enum value="0x30A2" name="EGL_OPENGL_API"/>
++            <unused start="0x30A3" end="0x30AF" comment="for additional client API names"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x30B0-0x30BF" vendor="NV" comment="Reserved for Ignacio Llamas">
++        <enum value="0x30B0" name="EGL_NATIVE_PIXMAP_KHR"/>
++        <enum value="0x30B1" name="EGL_GL_TEXTURE_2D"/>
++        <enum value="0x30B1" name="EGL_GL_TEXTURE_2D_KHR" alias="EGL_GL_TEXTURE_2D"/>
++        <enum value="0x30B2" name="EGL_GL_TEXTURE_3D"/>
++        <enum value="0x30B2" name="EGL_GL_TEXTURE_3D_KHR" alias="EGL_GL_TEXTURE_3D"/>
++        <enum value="0x30B3" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
++        <enum value="0x30B3" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
++        <enum value="0x30B4" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
++        <enum value="0x30B4" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
++        <enum value="0x30B5" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
++        <enum value="0x30B5" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
++        <enum value="0x30B6" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
++        <enum value="0x30B6" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
++        <enum value="0x30B7" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
++        <enum value="0x30B7" name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
++        <enum value="0x30B8" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
++        <enum value="0x30B8" name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR" alias="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
++        <enum value="0x30B9" name="EGL_GL_RENDERBUFFER"/>
++        <enum value="0x30B9" name="EGL_GL_RENDERBUFFER_KHR" alias="EGL_GL_RENDERBUFFER"/>
++        <enum value="0x30BA" name="EGL_VG_PARENT_IMAGE_KHR"/>
++        <enum value="0x30BC" name="EGL_GL_TEXTURE_LEVEL"/>
++        <enum value="0x30BC" name="EGL_GL_TEXTURE_LEVEL_KHR" alias="EGL_GL_TEXTURE_LEVEL"/>
++        <enum value="0x30BD" name="EGL_GL_TEXTURE_ZOFFSET"/>
++        <enum value="0x30BD" name="EGL_GL_TEXTURE_ZOFFSET_KHR" alias="EGL_GL_TEXTURE_ZOFFSET"/>
++        <enum value="0x30BE" name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/>
++        <enum value="0x30BF" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT" alias="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x30C0-0x30CF" vendor="KHR">
++        <enum value="0x30C0" name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
++        <enum value="0x30C1" name="EGL_FORMAT_RGB_565_KHR"/>
++        <enum value="0x30C2" name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
++        <enum value="0x30C3" name="EGL_FORMAT_RGBA_8888_KHR"/>
++        <enum value="0x30C4" name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
++        <enum value="0x30C5" name="EGL_LOCK_USAGE_HINT_KHR"/>
++        <enum value="0x30C6" name="EGL_BITMAP_POINTER_KHR"/>
++        <enum value="0x30C7" name="EGL_BITMAP_PITCH_KHR"/>
++        <enum value="0x30C8" name="EGL_BITMAP_ORIGIN_KHR"/>
++        <enum value="0x30C9" name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
++        <enum value="0x30CA" name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
++        <enum value="0x30CB" name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
++        <enum value="0x30CC" name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
++        <enum value="0x30CD" name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
++        <enum value="0x30CE" name="EGL_LOWER_LEFT_KHR"/>
++        <enum value="0x30CF" name="EGL_UPPER_LEFT_KHR"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x30D0" end="0x30DF" vendor="Symbian" comment="Reserved for Robert Palmer (bug #2545)">
++            <unused start="0x30D0" end="0x30D1"/>
++        <enum value="0x30D2" name="EGL_IMAGE_PRESERVED"/>
++        <enum value="0x30D2" name="EGL_IMAGE_PRESERVED_KHR"/>
++            <unused start="0x30D3" end="0x30D9"/>
++        <enum value="0x30DA" name="EGL_SHARED_IMAGE_NOK" comment="Unreleased extension"/>
++            <unused start="0x30DB" end="0x30DF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x30E0" end="0x30EF" vendor="NV" comment="Reserved for Russell Pflughaupt (bug #3314)">
++        <enum value="0x30E0" name="EGL_COVERAGE_BUFFERS_NV"/>
++        <enum value="0x30E1" name="EGL_COVERAGE_SAMPLES_NV"/>
++        <enum value="0x30E2" name="EGL_DEPTH_ENCODING_NV"/>
++        <enum value="0x30E3" name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/>
++            <unused start="0x30E4" end="0x30E5"/>
++        <enum value="0x30E6" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/>
++        <enum value="0x30E7" name="EGL_SYNC_STATUS_NV"/>
++        <enum value="0x30E8" name="EGL_SIGNALED_NV"/>
++        <enum value="0x30E9" name="EGL_UNSIGNALED_NV"/>
++        <enum value="0x30EA" name="EGL_ALREADY_SIGNALED_NV"/>
++        <enum value="0x30EB" name="EGL_TIMEOUT_EXPIRED_NV"/>
++        <enum value="0x30EC" name="EGL_CONDITION_SATISFIED_NV"/>
++        <enum value="0x30ED" name="EGL_SYNC_TYPE_NV"/>
++        <enum value="0x30EE" name="EGL_SYNC_CONDITION_NV"/>
++        <enum value="0x30EF" name="EGL_SYNC_FENCE_NV"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x30F0" end="0x30FF" vendor="KHR">
++        <enum value="0x30F0" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
++        <enum value="0x30F0" name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR" alias="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
++        <enum value="0x30F1" name="EGL_SYNC_STATUS"/>
++        <enum value="0x30F1" name="EGL_SYNC_STATUS_KHR" alias="EGL_SYNC_STATUS"/>
++        <enum value="0x30F2" name="EGL_SIGNALED"/>
++        <enum value="0x30F2" name="EGL_SIGNALED_KHR" alias="EGL_SIGNALED"/>
++        <enum value="0x30F3" name="EGL_UNSIGNALED"/>
++        <enum value="0x30F3" name="EGL_UNSIGNALED_KHR" alias="EGL_UNSIGNALED"/>
++        <enum value="0x30F5" name="EGL_TIMEOUT_EXPIRED"/>
++        <enum value="0x30F5" name="EGL_TIMEOUT_EXPIRED_KHR" alias="EGL_TIMEOUT_EXPIRED"/>
++        <enum value="0x30F6" name="EGL_CONDITION_SATISFIED"/>
++        <enum value="0x30F6" name="EGL_CONDITION_SATISFIED_KHR" alias="EGL_CONDITION_SATISFIED"/>
++        <enum value="0x30F7" name="EGL_SYNC_TYPE"/>
++        <enum value="0x30F7" name="EGL_SYNC_TYPE_KHR" alias="EGL_SYNC_TYPE"/>
++        <enum value="0x30F8" name="EGL_SYNC_CONDITION"/>
++        <enum value="0x30F8" name="EGL_SYNC_CONDITION_KHR" alias="EGL_SYNC_CONDITION"/>
++        <enum value="0x30F9" name="EGL_SYNC_FENCE"/>
++        <enum value="0x30F9" name="EGL_SYNC_FENCE_KHR" alias="EGL_SYNC_FENCE"/>
++        <enum value="0x30FA" name="EGL_SYNC_REUSABLE_KHR"/>
++        <enum value="0x30FB" name="EGL_CONTEXT_MINOR_VERSION"/>
++        <enum value="0x30FB" name="EGL_CONTEXT_MINOR_VERSION_KHR" alias="EGL_CONTEXT_MINOR_VERSION"/>
++        <enum value="0x30FC" name="EGL_CONTEXT_FLAGS_KHR"/>
++        <enum value="0x30FD" name="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
++        <enum value="0x30FD" name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR" alias="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
++        <enum value="0x30FE" name="EGL_SYNC_CL_EVENT"/>
++        <enum value="0x30FE" name="EGL_SYNC_CL_EVENT_KHR" alias="EGL_SYNC_CL_EVENT"/>
++        <enum value="0x30FF" name="EGL_SYNC_CL_EVENT_COMPLETE"/>
++        <enum value="0x30FF" name="EGL_SYNC_CL_EVENT_COMPLETE_KHR" alias="EGL_SYNC_CL_EVENT_COMPLETE"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3100" end="0x310F" vendor="IMG" comment="Reserved for Ben Bowman (Khronos bug 4748)">
++        <enum value="0x3100" name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/>
++        <enum value="0x3101" name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/>
++        <enum value="0x3102" name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/>
++        <enum value="0x3103" name="EGL_CONTEXT_PRIORITY_LOW_IMG"/>
++            <unused start="0x3104" end="0x310F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3110" end="0x311F" vendor="ATX" comment="Reserved for Tim Renouf, Antix (Khronos bug 4949)">
++        <enum value="0x3110" name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
++            <unused start="0x3111" end="0x311F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3120" end="0x312F" vendor="AMD" comment="Reserved for David Garcia (Khronos bug 5149)">
++            <unused start="0x3120" end="0x312F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3130" end="0x313F" vendor="NV" comment="Reserved for Greg Prisament (Khronos bug 5166)">
++            <unused start="0x3130"/>
++        <enum value="0x3131" name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/>
++        <enum value="0x3132" name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/>
++        <enum value="0x3133" name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/>
++        <enum value="0x3134" name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/>
++            <unused start="0x3135"/>
++        <enum value="0x3136" name="EGL_AUTO_STEREO_NV"/>
++            <unused start="0x3137"/>
++        <enum value="0x3138" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/>
++            <unused start="0x3139" end="0x313C"/>
++        <enum value="0x313D" name="EGL_BUFFER_AGE_KHR"/>
++        <enum value="0x313D" name="EGL_BUFFER_AGE_EXT" alias="EGL_BUFFER_AGE_KHR"/>
++            <unused start="0x313E" end="0x313F"/>
++        <enum value="0x313F" name="EGL_PLATFORM_DEVICE_EXT"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3140" end="0x314F" vendor="Google" comment="Reserved for Mathias Agopian (Khronos bug 5199)">
++        <enum value="0x3140" name="EGL_NATIVE_BUFFER_ANDROID"/>
++        <enum value="0x3141" name="EGL_PLATFORM_ANDROID_KHR"/>
++        <enum value="0x3142" name="EGL_RECORDABLE_ANDROID"/>
++            <unused start="0x3143"/>
++        <enum value="0x3144" name="EGL_SYNC_NATIVE_FENCE_ANDROID"/>
++        <enum value="0x3145" name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/>
++        <enum value="0x3146" name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/>
++        <enum value="0x3147" name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
++            <unused start="0x3148" end="0x314F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3150" end="0x315F" vendor="NOK" comment="Reserved for Robert Palmer (Khronos bug 5368)">
++            <unused start="0x3150" end="0x315F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3160" end="0x316F" vendor="Seaweed" comment="Reserved for Sree Sridharan (Khronos public bug 198)">
++            <unused start="0x3160" end="0x316F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3170" end="0x318F" vendor="QNX" comment="Reserved for Joel Pilon (Khronos bug 5834)">
++            <unused start="0x3170" end="0x318F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3190" end="0x31AF" vendor="FSL" comment="Reserved for Brian Murray, Freescale (Khronos bug 5939)">
++            <unused start="0x3190" end="0x31AF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x31B0" end="0x31BF" vendor="KHR" comment="Reserved for Marcus Lorentzon (Khronos bug 6437)">
++        <enum value="0x31B0" name="EGL_CONTEXT_OPENGL_DEBUG"/>
++        <enum value="0x31B1" name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE"/>
++        <enum value="0x31B2" name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
++        <enum value="0x31B3" name="EGL_CONTEXT_OPENGL_NO_ERROR_KHR"/>
++            <unused start="0x31B4" end="0x31BC" comment="0x31B3-0x31BC formerly reserved for EGL_image_stream"/>
++        <enum value="0x31BD" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR" alias="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
++        <enum value="0x31BD" name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
++        <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION"/>
++        <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_KHR" alias="EGL_NO_RESET_NOTIFICATION"/>
++        <enum value="0x31BE" name="EGL_NO_RESET_NOTIFICATION_EXT" alias="EGL_NO_RESET_NOTIFICATION"/>
++        <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET"/>
++        <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_KHR" alias="EGL_LOSE_CONTEXT_ON_RESET"/>
++        <enum value="0x31BF" name="EGL_LOSE_CONTEXT_ON_RESET_EXT" alias="EGL_LOSE_CONTEXT_ON_RESET"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x31C0" end="0x31CF" vendor="QCOM" comment="Reserved for Maurice Ribble (Khronos bug 6644) - EGL_QCOM_create_image spec TBD">
++            <unused start="0x31C0" end="0x31CF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x31D0" end="0x31DF" vendor="MESA" comment="Reserved for Kristian H&#248;gsberg (Khronos bug 6757)">
++        <enum value="0x31D0" name="EGL_DRM_BUFFER_FORMAT_MESA"/>
++        <enum value="0x31D1" name="EGL_DRM_BUFFER_USE_MESA"/>
++        <enum value="0x31D2" name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/>
++        <enum value="0x31D3" name="EGL_DRM_BUFFER_MESA"/>
++        <enum value="0x31D4" name="EGL_DRM_BUFFER_STRIDE_MESA"/>
++        <enum value="0x31D5" name="EGL_PLATFORM_X11_KHR"/>
++        <enum value="0x31D5" name="EGL_PLATFORM_X11_EXT" alias="EGL_PLATFORM_X11_KHR"/>
++        <enum value="0x31D6" name="EGL_PLATFORM_X11_SCREEN_KHR"/>
++        <enum value="0x31D6" name="EGL_PLATFORM_X11_SCREEN_EXT" alias="EGL_PLATFORM_X11_SCREEN_KHR"/>
++        <enum value="0x31D7" name="EGL_PLATFORM_GBM_KHR"/>
++        <enum value="0x31D7" name="EGL_PLATFORM_GBM_MESA" alias="EGL_PLATFORM_GBM_KHR"/>
++        <enum value="0x31D8" name="EGL_PLATFORM_WAYLAND_KHR"/>
++        <enum value="0x31D8" name="EGL_PLATFORM_WAYLAND_EXT" alias="EGL_PLATFORM_WAYLAND_KHR"/>
++            <unused start="0x31D9" end="0x31DF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x31E0" end="0x31EF" vendor="HI" comment="Reserved for Mark Callow (Khronos bug 6799)">
++            <unused start="0x31E0" end="0x31EF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x31F0" end="0x31FF" vendor="KHR">
++            <unused start="0x31F0" end="0x31FB" comment="Placeholders for draft extensions follow"/>
++        <!--
++            <enum value="0x31F0" name="EGL_IMAGE_USE_AS_OPENGL_ES1_RENDERBUFFER_KHR"        comment="Draft KHR_image_use_gl1_renderbuffer"/>
++            <enum value="0x31F1" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_2D_KHR"          comment="Draft KHR_image_use_gl1_texture_2d"/>
++            <enum value="0x31F2" name="EGL_IMAGE_USE_AS_OPENGL_ES1_TEXTURE_EXTERNAL_KHR"    comment="Draft KHR_image_use_gl1_texture_external"/>
++            <enum value="0x31F3" name="EGL_IMAGE_USE_AS_OPENGL_ES2_RENDERBUFFER_KHR"        comment="Draft KHR_image_use_gl2_renderbuffer"/>
++            <enum value="0x31F4" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_2D_KHR"          comment="Draft KHR_image_use_gl2_texture_2d"/>
++            <enum value="0x31F5" name="EGL_IMAGE_USE_AS_OPENGL_ES2_TEXTURE_EXTERNAL_KHR"    comment="Draft KHR_image_use_gl2_texture_external"/>
++            <enum value="0x31F6" name="EGL_IMAGE_USE_AS_OPENVG_IMAGE_KHR"                   comment="Draft KHR_image_use_vg_vgimage"/>
++            <enum value="0x31F7" name="EGL_STREAM_CONSUMER_ATTACHMENT_MESA"                 comment="Draft EGL_MESA_image_stream_internal"/>
++            <enum value="0x31F8" name="EGL_NO_FORMAT_MESA"                                  comment="Draft EGL_MESA_image_stream_internal"/>
++            <enum value="0x31F9" name="EGL_FORMAT_RGBA8888_MESA"                            comment="Draft EGL_MESA_image_stream_internal"/>
++            <enum value="0x31FA" name="EGL_FORMAT_RGB888_MESA"                              comment="Draft EGL_MESA_image_stream_internal"/>
++            <enum value="0x31FB" name="EGL_FORMAT_RGB565_MESA"                              comment="Draft EGL_MESA_image_stream_internal"/>
++        -->
++        <enum value="0x31FC" name="EGL_STREAM_FIFO_LENGTH_KHR"/>
++        <enum value="0x31FD" name="EGL_STREAM_TIME_NOW_KHR"/>
++        <enum value="0x31FE" name="EGL_STREAM_TIME_CONSUMER_KHR"/>
++        <enum value="0x31FF" name="EGL_STREAM_TIME_PRODUCER_KHR"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3200" end="0x320F" vendor="ANGLE" comment="Reserved for Daniel Koch, ANGLE Project (Khronos bug 7139)">
++        <enum value="0x3200" name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
++        <enum value="0x3201" name="EGL_FIXED_SIZE_ANGLE"/>
++            <unused start="0x3202" end="0x320F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3210" end="0x321F" vendor="KHR">
++        <enum value="0x3210" name="EGL_CONSUMER_LATENCY_USEC_KHR"/>
++            <unused start="0x3211"/>
++        <enum value="0x3212" name="EGL_PRODUCER_FRAME_KHR"/>
++        <enum value="0x3213" name="EGL_CONSUMER_FRAME_KHR"/>
++        <enum value="0x3214" name="EGL_STREAM_STATE_KHR"/>
++        <enum value="0x3215" name="EGL_STREAM_STATE_CREATED_KHR"/>
++        <enum value="0x3216" name="EGL_STREAM_STATE_CONNECTING_KHR"/>
++        <enum value="0x3217" name="EGL_STREAM_STATE_EMPTY_KHR"/>
++        <enum value="0x3218" name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/>
++        <enum value="0x3219" name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/>
++        <enum value="0x321A" name="EGL_STREAM_STATE_DISCONNECTED_KHR"/>
++        <enum value="0x321B" name="EGL_BAD_STREAM_KHR"/>
++        <enum value="0x321C" name="EGL_BAD_STATE_KHR"/>
++        <enum value="0x321D" name="EGL_BUFFER_COUNT_NV" comment="From EGL_NV_stream_producer_eglsurface, which has no known specification and was replaced by a KHR extension"/>
++        <enum value="0x321E" name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/>
++        <enum value="0x321F" name="EGL_SYNC_NEW_FRAME_NV"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3220" end="0x325F" vendor="NV" comment="Reserved for Greg Roth (Bug 8220)">
++            <unused start="0x3220" end="0x322A"/>
++        <enum value="0x322B" name="EGL_BAD_DEVICE_EXT"/>
++        <enum value="0x322C" name="EGL_DEVICE_EXT"/>
++        <enum value="0x322D" name="EGL_BAD_OUTPUT_LAYER_EXT"/>
++        <enum value="0x322E" name="EGL_BAD_OUTPUT_PORT_EXT"/>
++        <enum value="0x322F" name="EGL_SWAP_INTERVAL_EXT"/>
++            <unused start="0x3230" end="0x3232"/>
++        <enum value="0x3233" name="EGL_DRM_DEVICE_FILE_EXT"/>
++        <enum value="0x3234" name="EGL_DRM_CRTC_EXT"/>
++        <enum value="0x3235" name="EGL_DRM_PLANE_EXT"/>
++        <enum value="0x3236" name="EGL_DRM_CONNECTOR_EXT"/>
++        <enum value="0x3237" name="EGL_OPENWF_DEVICE_ID_EXT"/>
++        <enum value="0x3238" name="EGL_OPENWF_PIPELINE_ID_EXT"/>
++        <enum value="0x3239" name="EGL_OPENWF_PORT_ID_EXT"/>
++        <enum value="0x323A" name="EGL_CUDA_DEVICE_NV"/>
++        <enum value="0x323B" name="EGL_CUDA_EVENT_HANDLE_NV"/>
++        <enum value="0x323C" name="EGL_SYNC_CUDA_EVENT_NV"/>
++        <enum value="0x323D" name="EGL_SYNC_CUDA_EVENT_COMPLETE_NV"/>
++            <unused start="0x323E" end="0x325F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3260" end="0x326F" vendor="BCOM" comment="Reserved for Gary Sweet, Broadcom (Public bug 620)">
++            <unused start="0x3260" end="0x326F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3270" end="0x328F" vendor="ARM" comment="Reserved for Tom Cooksey (Bug 9963)">
++        <enum value="0x3270" name="EGL_LINUX_DMA_BUF_EXT"/>
++        <enum value="0x3271" name="EGL_LINUX_DRM_FOURCC_EXT"/>
++        <enum value="0x3272" name="EGL_DMA_BUF_PLANE0_FD_EXT"/>
++        <enum value="0x3273" name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/>
++        <enum value="0x3274" name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/>
++        <enum value="0x3275" name="EGL_DMA_BUF_PLANE1_FD_EXT"/>
++        <enum value="0x3276" name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/>
++        <enum value="0x3277" name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/>
++        <enum value="0x3278" name="EGL_DMA_BUF_PLANE2_FD_EXT"/>
++        <enum value="0x3279" name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/>
++        <enum value="0x327A" name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/>
++        <enum value="0x327B" name="EGL_YUV_COLOR_SPACE_HINT_EXT"/>
++        <enum value="0x327C" name="EGL_SAMPLE_RANGE_HINT_EXT"/>
++        <enum value="0x327D" name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/>
++        <enum value="0x327E" name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/>
++        <enum value="0x327F" name="EGL_ITU_REC601_EXT"/>
++        <enum value="0x3280" name="EGL_ITU_REC709_EXT"/>
++        <enum value="0x3281" name="EGL_ITU_REC2020_EXT"/>
++        <enum value="0x3282" name="EGL_YUV_FULL_RANGE_EXT"/>
++        <enum value="0x3283" name="EGL_YUV_NARROW_RANGE_EXT"/>
++        <enum value="0x3284" name="EGL_YUV_CHROMA_SITING_0_EXT"/>
++        <enum value="0x3285" name="EGL_YUV_CHROMA_SITING_0_5_EXT"/>
++        <enum value="0x3286" name="EGL_DISCARD_SAMPLES_ARM"/>
++            <unused start="0x3287" end="0x328F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3290" end="0x329F" vendor="MESA" comment="Reserved for John K&#229;re Alsaker (Public bug 757)">
++            <unused start="0x3290" end="0x329F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x32A0" end="0x32AF" vendor="Samsung" comment="Reserved for Dongyeon Kim (Public bug 880)">
++        <enum value="0x32A0" name="EGL_NATIVE_BUFFER_TIZEN"/>
++        <enum value="0x32A1" name="EGL_NATIVE_SURFACE_TIZEN"/>
++            <unused start="0x32A2" end="0x32AF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x32B0" end="0x32BF" vendor="QCOM" comment="Reserved for Jeff Vigil (Bug 10663) - EGL_QCOM_lock_image spec TBD">
++            <unused start="0x32B0" end="0x32BF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x32C0" end="0x32CF" vendor="Vivante" comment="Reserved for Yanjun Zhang (Bug 11498)">
++        <enum value="0x32C0" name="EGL_PROTECTED_CONTENT_EXT"/>
++            <unused start="0x32C1" end="0x32CF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x32D0" end="0x32EF" vendor="QCOM" comment="Reserved for Jeff Vigil (Bug 11735) - EGL_QCOM_gpu_perf spec TBD + Bug 12286 - EGL_QCOM_content_protection spec TBD">
++            <unused start="0x32D0" end="0x32EF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x32F0" end="0x32FF" vendor="BCOM" comment="Reserved for Gary Sweet, Broadcom (Bug 12870)">
++            <unused start="0x32F0" end="0x32FF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3300" end="0x331F" vendor="QCOM" comment="Reserved for Jeff Vigil (Bugs 12973,12849) - EGL_EXT_yuv_surface spec TBD">
++        <enum value="0x3300" name="EGL_YUV_BUFFER_EXT"/>
++        <enum value="0x3301" name="EGL_YUV_ORDER_EXT"/>
++        <enum value="0x3302" name="EGL_YUV_ORDER_YUV_EXT"/>
++        <enum value="0x3303" name="EGL_YUV_ORDER_YVU_EXT"/>
++        <enum value="0x3304" name="EGL_YUV_ORDER_YUYV_EXT"/>
++        <enum value="0x3305" name="EGL_YUV_ORDER_UYVY_EXT"/>
++        <enum value="0x3306" name="EGL_YUV_ORDER_YVYU_EXT"/>
++        <enum value="0x3307" name="EGL_YUV_ORDER_VYUY_EXT"/>
++        <enum value="0x3308" name="EGL_YUV_ORDER_AYUV_EXT"/>
++            <unused start="0x3309"/>
++        <enum value="0x330A" name="EGL_YUV_CSC_STANDARD_EXT"/>
++        <enum value="0x330B" name="EGL_YUV_CSC_STANDARD_601_EXT"/>
++        <enum value="0x330C" name="EGL_YUV_CSC_STANDARD_709_EXT"/>
++        <enum value="0x330D" name="EGL_YUV_CSC_STANDARD_2020_EXT"/>
++            <unused start="0x330E" end="0x3310"/>
++        <enum value="0x3311" name="EGL_YUV_NUMBER_OF_PLANES_EXT"/>
++        <enum value="0x3312" name="EGL_YUV_SUBSAMPLE_EXT"/>
++        <enum value="0x3313" name="EGL_YUV_SUBSAMPLE_4_2_0_EXT"/>
++        <enum value="0x3314" name="EGL_YUV_SUBSAMPLE_4_2_2_EXT"/>
++        <enum value="0x3315" name="EGL_YUV_SUBSAMPLE_4_4_4_EXT"/>
++            <unused start="0x3316"/>
++        <enum value="0x3317" name="EGL_YUV_DEPTH_RANGE_EXT"/>
++        <enum value="0x3318" name="EGL_YUV_DEPTH_RANGE_LIMITED_EXT"/>
++        <enum value="0x3319" name="EGL_YUV_DEPTH_RANGE_FULL_EXT"/>
++        <enum value="0x331A" name="EGL_YUV_PLANE_BPP_EXT"/>
++        <enum value="0x331B" name="EGL_YUV_PLANE_BPP_0_EXT"/>
++        <enum value="0x331C" name="EGL_YUV_PLANE_BPP_8_EXT"/>
++        <enum value="0x331D" name="EGL_YUV_PLANE_BPP_10_EXT"/>
++            <unused start="0x331E" end="0x331F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x3320" end="0x339F" vendor="NV" comment="Reserved for James Jones (Bug 13209)">
++            <unused start="0x3320" end="0x339F"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x33A0" end="0x33AF" vendor="ANGLE" comment="Reserved for Shannon Woods (Bug 13175)">
++        <enum value="0x33A0" name="EGL_D3D9_DEVICE_ANGLE"/>
++        <enum value="0x33A1" name="EGL_D3D11_DEVICE_ANGLE"/>
++            <unused start="0x33A2" end="0x33AF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x33B0" end="0x33BF" vendor="KHR" comment="Reserved for EGL_KHR_debug / Jeff Vigil (Bug 13357)">
++        <enum value="0x33B0" name="EGL_OBJECT_THREAD_KHR"/>
++        <enum value="0x33B1" name="EGL_OBJECT_DISPLAY_KHR"/>
++        <enum value="0x33B2" name="EGL_OBJECT_CONTEXT_KHR"/>
++        <enum value="0x33B3" name="EGL_OBJECT_SURFACE_KHR"/>
++        <enum value="0x33B4" name="EGL_OBJECT_IMAGE_KHR"/>
++        <enum value="0x33B5" name="EGL_OBJECT_SYNC_KHR"/>
++        <enum value="0x33B6" name="EGL_OBJECT_STREAM_KHR"/>
++            <unused start="0x33B7"/>
++        <enum value="0x33B8" name="EGL_DEBUG_CALLBACK_KHR"/>
++        <enum value="0x33B9" name="EGL_DEBUG_MSG_CRITICAL_KHR"/>
++        <enum value="0x33BA" name="EGL_DEBUG_MSG_ERROR_KHR"/>
++        <enum value="0x33BB" name="EGL_DEBUG_MSG_WARN_KHR"/>
++        <enum value="0x33BC" name="EGL_DEBUG_MSG_INFO_KHR"/>
++            <unused start="0x33BD" end="0x33BF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x33C0" end="0x33DF" vendor="BCOM" comment="Reserved for Gary Sweet (Bug 12203)">
++            <unused start="0x33C0" end="0x33DF"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x33E0" end="0x342F" vendor="QCOM" comment="Reserved for Jeff Vigil (Bugs 10663,13364)">
++            <unused start="0x33E0" end="0x342F"/>
++    </enums>
++
++<!-- Please remember that new enumerant allocations must be obtained by
++     request to the Khronos API registrar (see comments at the top of this
++     file) File requests in the Khronos Bugzilla, EGL project, Registry
++     component. Also note that some EGL enum values are shared with other
++     Khronos APIs, and new ranges should be allocated with such overlaps in
++     mind. -->
++
++<!-- Reservable for future use. To generate a new range, allocate multiples
++     of 16 starting at the lowest available point in this block. -->
++    <enums namespace="EGL" start="0x3420" end="0x3FFF" vendor="KHR">
++            <unused start="0x3420" end="0x3FFF" comment="Reserved for future use"/>
++    </enums>
++
++    <enums namespace="EGL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with GL.">
++        <enum value="0x8F70" name="EGL_COLOR_FORMAT_HI"/>
++        <enum value="0x8F71" name="EGL_COLOR_RGB_HI"/>
++        <enum value="0x8F72" name="EGL_COLOR_RGBA_HI"/>
++        <enum value="0x8F73" name="EGL_COLOR_ARGB_HI"/>
++        <enum value="0x8F74" name="EGL_CLIENT_PIXMAP_POINTER_HI"/>
++    </enums>
++
++    <!-- SECTION: EGL command definitions. -->
++    <commands namespace="EGL">
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglBindAPI</name></proto>
++            <param><ptype>EGLenum</ptype> <name>api</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglBindTexImage</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> <name>buffer</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglChooseConfig</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++            <param><ptype>EGLConfig</ptype> *<name>configs</name></param>
++            <param><ptype>EGLint</ptype> <name>config_size</name></param>
++            <param><ptype>EGLint</ptype> *<name>num_config</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLint</ptype> <name>eglClientWaitSync</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSync</ptype> <name>sync</name></param>
++            <param><ptype>EGLint</ptype> <name>flags</name></param>
++            <param><ptype>EGLTime</ptype> <name>timeout</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
++            <param><ptype>EGLint</ptype> <name>flags</name></param>
++            <param><ptype>EGLTimeKHR</ptype> <name>timeout</name></param>
++            <alias name="eglClientWaitSync"/>
++        </command>
++        <command>
++            <proto><ptype>EGLint</ptype> <name>eglClientWaitSyncNV</name></proto>
++            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
++            <param><ptype>EGLint</ptype> <name>flags</name></param>
++            <param><ptype>EGLTimeNV</ptype> <name>timeout</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglCopyBuffers</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLNativePixmapType</ptype> <name>target</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLContext</ptype> <name>eglCreateContext</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param><ptype>EGLContext</ptype> <name>share_context</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLImageKHR</ptype> <name>eglCreateDRMImageMESA</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSyncNV</ptype> <name>eglCreateFenceSyncNV</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLenum</ptype> <name>condition</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLImage</ptype> <name>eglCreateImage</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
++            <param><ptype>EGLenum</ptype> <name>target</name></param>
++            <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
++            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLImageKHR</ptype> <name>eglCreateImageKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
++            <param><ptype>EGLenum</ptype> <name>target</name></param>
++            <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferFromClientBuffer</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLenum</ptype> <name>buftype</name></param>
++            <param><ptype>EGLClientBuffer</ptype> <name>buffer</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreatePbufferSurface</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurface</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param><ptype>EGLNativePixmapType</ptype> <name>pixmap</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreatePixmapSurfaceHI</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param>struct <ptype>EGLClientPixmapHI</ptype> *<name>pixmap</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformPixmapSurface</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param>void *<name>native_pixmap</name></param>
++            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformPixmapSurfaceEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param>void *<name>native_pixmap</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformWindowSurface</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param>void *<name>native_window</name></param>
++            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreatePlatformWindowSurfaceEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param>void *<name>native_window</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamFromFileDescriptorKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLNativeFileDescriptorKHR</ptype> <name>file_descriptor</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLStreamKHR</ptype> <name>eglCreateStreamKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreateStreamProducerSurfaceKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateStreamSyncNV</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++            <param><ptype>EGLenum</ptype> <name>type</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSync</ptype> <name>eglCreateSync</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLenum</ptype> <name>type</name></param>
++            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateSyncKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLenum</ptype> <name>type</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLSyncKHR</ptype> <name>eglCreateSync64KHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLenum</ptype> <name>type</name></param>
++            <param>const <ptype>EGLAttribKHR</ptype> *<name>attrib_list</name></param>
++            <alias name="eglCreateSync"/>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglCreateWindowSurface</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param><ptype>EGLNativeWindowType</ptype> <name>win</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLint</ptype> <name>eglDebugMessageControlKHR</name></proto>
++            <param><ptype>EGLDEBUGPROCKHR</ptype> <name>callback</name></param>
++            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglDestroyContext</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglDestroyImage</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLImage</ptype> <name>image</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglDestroyImageKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
++            <alias name="eglDestroyImage"/>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglDestroyStreamKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglDestroySurface</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglDestroySync</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSync</ptype> <name>sync</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
++            <alias name="eglDestroySync"/>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglDestroySyncNV</name></proto>
++            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLint</ptype> <name>eglDupNativeFenceFDANDROID</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglExportDMABUFImageMESA</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
++            <param>int *<name>fds</name></param>
++            <param><ptype>EGLint</ptype> *<name>strides</name></param>
++            <param><ptype>EGLint</ptype> *<name>offsets</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglExportDMABUFImageQueryMESA</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
++            <param>int *<name>fourcc</name></param>
++            <param>int *<name>num_planes</name></param>
++            <param><ptype>EGLuint64KHR</ptype> *<name>modifiers</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglExportDRMImageMESA</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
++            <param><ptype>EGLint</ptype> *<name>name</name></param>
++            <param><ptype>EGLint</ptype> *<name>handle</name></param>
++            <param><ptype>EGLint</ptype> *<name>stride</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglFenceNV</name></proto>
++            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigAttrib</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> <name>config</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLint</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglGetConfigs</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLConfig</ptype> *<name>configs</name></param>
++            <param><ptype>EGLint</ptype> <name>config_size</name></param>
++            <param><ptype>EGLint</ptype> *<name>num_config</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLContext</ptype> <name>eglGetCurrentContext</name></proto>
++        </command>
++        <command>
++            <proto><ptype>EGLDisplay</ptype> <name>eglGetCurrentDisplay</name></proto>
++        </command>
++        <command>
++            <proto><ptype>EGLSurface</ptype> <name>eglGetCurrentSurface</name></proto>
++            <param><ptype>EGLint</ptype> <name>readdraw</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLDisplay</ptype> <name>eglGetDisplay</name></proto>
++            <param><ptype>EGLNativeDisplayType</ptype> <name>display_id</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLint</ptype> <name>eglGetError</name></proto>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglGetOutputLayersEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
++            <param><ptype>EGLOutputLayerEXT</ptype> *<name>layers</name></param>
++            <param><ptype>EGLint</ptype> <name>max_layers</name></param>
++            <param><ptype>EGLint</ptype> *<name>num_layers</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglGetOutputPortsEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
++            <param><ptype>EGLOutputPortEXT</ptype> *<name>ports</name></param>
++            <param><ptype>EGLint</ptype> <name>max_ports</name></param>
++            <param><ptype>EGLint</ptype> *<name>num_ports</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLDisplay</ptype> <name>eglGetPlatformDisplay</name></proto>
++            <param><ptype>EGLenum</ptype> <name>platform</name></param>
++            <param>void *<name>native_display</name></param>
++            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLDisplay</ptype> <name>eglGetPlatformDisplayEXT</name></proto>
++            <param><ptype>EGLenum</ptype> <name>platform</name></param>
++            <param>void *<name>native_display</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>__eglMustCastToProperFunctionPointerType</ptype> <name>eglGetProcAddress</name></proto>
++            <param>const char *<name>procname</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLNativeFileDescriptorKHR</ptype> <name>eglGetStreamFileDescriptorKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttrib</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSync</ptype> <name>sync</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLint</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglGetSyncAttribNV</name></proto>
++            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLint</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeFrequencyNV</name></proto>
++        </command>
++        <command>
++            <proto><ptype>EGLuint64NV</ptype> <name>eglGetSystemTimeNV</name></proto>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglInitialize</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLint</ptype> *<name>major</name></param>
++            <param><ptype>EGLint</ptype> *<name>minor</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLint</ptype> <name>eglLabelObjectKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>display</name></param>
++            <param><ptype>EGLenum</ptype> <name>objectType</name></param>
++            <param><ptype>EGLObjectKHR</ptype> <name>object</name></param>
++            <param><ptype>EGLLabelKHR</ptype> <name>label</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglLockSurfaceKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>attrib_list</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglMakeCurrent</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>draw</name></param>
++            <param><ptype>EGLSurface</ptype> <name>read</name></param>
++            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglOutputLayerAttribEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLAttrib</ptype> <name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglOutputPortAttribEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLAttrib</ptype> <name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglPostSubBufferNV</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> <name>x</name></param>
++            <param><ptype>EGLint</ptype> <name>y</name></param>
++            <param><ptype>EGLint</ptype> <name>width</name></param>
++            <param><ptype>EGLint</ptype> <name>height</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLenum</ptype> <name>eglQueryAPI</name></proto>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryContext</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLContext</ptype> <name>ctx</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLint</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDebugKHR</name></proto>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDeviceAttribEXT</name></proto>
++            <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto>const char *<name>eglQueryDeviceStringEXT</name></proto>
++            <param><ptype>EGLDeviceEXT</ptype> <name>device</name></param>
++            <param><ptype>EGLint</ptype> <name>name</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDevicesEXT</name></proto>
++            <param><ptype>EGLint</ptype> <name>max_devices</name></param>
++            <param><ptype>EGLDeviceEXT</ptype> *<name>devices</name></param>
++            <param><ptype>EGLint</ptype> *<name>num_devices</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryDisplayAttribEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeDisplayNV</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLNativeDisplayType</ptype> *<name>display_id</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativePixmapNV</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surf</name></param>
++            <param><ptype>EGLNativePixmapType</ptype> *<name>pixmap</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryNativeWindowNV</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surf</name></param>
++            <param><ptype>EGLNativeWindowType</ptype> *<name>window</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryOutputLayerAttribEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto>const char *<name>eglQueryOutputLayerStringEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
++            <param><ptype>EGLint</ptype> <name>name</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryOutputPortAttribEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLAttrib</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto>const char *<name>eglQueryOutputPortStringEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLOutputPortEXT</ptype> <name>port</name></param>
++            <param><ptype>EGLint</ptype> <name>name</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++            <param><ptype>EGLenum</ptype> <name>attribute</name></param>
++            <param><ptype>EGLint</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamTimeKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++            <param><ptype>EGLenum</ptype> <name>attribute</name></param>
++            <param><ptype>EGLTimeKHR</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQueryStreamu64KHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++            <param><ptype>EGLenum</ptype> <name>attribute</name></param>
++            <param><ptype>EGLuint64KHR</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto>const char *<name>eglQueryString</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLint</ptype> <name>name</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurface</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLint</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurface64KHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLAttribKHR</ptype> *<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglQuerySurfacePointerANGLE</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param>void **<name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglReleaseTexImage</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> <name>buffer</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglReleaseThread</name></proto>
++        </command>
++        <command>
++            <proto>void <name>eglSetBlobCacheFuncsANDROID</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSetBlobFuncANDROID</ptype> <name>set</name></param>
++            <param><ptype>EGLGetBlobFuncANDROID</ptype> <name>get</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSetDamageRegionKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> *<name>rects</name></param>
++            <param><ptype>EGLint</ptype> <name>n_rects</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
++            <param><ptype>EGLenum</ptype> <name>mode</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSignalSyncNV</name></proto>
++            <param><ptype>EGLSyncNV</ptype> <name>sync</name></param>
++            <param><ptype>EGLenum</ptype> <name>mode</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglStreamAttribKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++            <param><ptype>EGLenum</ptype> <name>attribute</name></param>
++            <param><ptype>EGLint</ptype> <name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerAcquireKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerGLTextureExternalKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerOutputEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++            <param><ptype>EGLOutputLayerEXT</ptype> <name>layer</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglStreamConsumerReleaseKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLStreamKHR</ptype> <name>stream</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSurfaceAttrib</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLint</ptype> <name>value</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffers</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithDamageEXT</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> *<name>rects</name></param>
++            <param><ptype>EGLint</ptype> <name>n_rects</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersWithDamageKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> *<name>rects</name></param>
++            <param><ptype>EGLint</ptype> <name>n_rects</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersRegionNOK</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> <name>numRects</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSwapBuffersRegion2NOK</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLint</ptype> <name>numRects</name></param>
++            <param>const <ptype>EGLint</ptype> *<name>rects</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglSwapInterval</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLint</ptype> <name>interval</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglTerminate</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglUnlockSurfaceKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglWaitClient</name></proto>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglWaitGL</name></proto>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglWaitNative</name></proto>
++            <param><ptype>EGLint</ptype> <name>engine</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLBoolean</ptype> <name>eglWaitSync</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSync</ptype> <name>sync</name></param>
++            <param><ptype>EGLint</ptype> <name>flags</name></param>
++        </command>
++        <command>
++            <proto><ptype>EGLint</ptype> <name>eglWaitSyncKHR</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLSyncKHR</ptype> <name>sync</name></param>
++            <param><ptype>EGLint</ptype> <name>flags</name></param>
++        </command>
++    </commands>
++
++    <!-- SECTION: EGL API interface definitions. -->
++    <feature api="egl" name="EGL_VERSION_1_0" number="1.0">
++        <require>
++            <enum name="EGL_ALPHA_SIZE"/>
++            <enum name="EGL_BAD_ACCESS"/>
++            <enum name="EGL_BAD_ALLOC"/>
++            <enum name="EGL_BAD_ATTRIBUTE"/>
++            <enum name="EGL_BAD_CONFIG"/>
++            <enum name="EGL_BAD_CONTEXT"/>
++            <enum name="EGL_BAD_CURRENT_SURFACE"/>
++            <enum name="EGL_BAD_DISPLAY"/>
++            <enum name="EGL_BAD_MATCH"/>
++            <enum name="EGL_BAD_NATIVE_PIXMAP"/>
++            <enum name="EGL_BAD_NATIVE_WINDOW"/>
++            <enum name="EGL_BAD_PARAMETER"/>
++            <enum name="EGL_BAD_SURFACE"/>
++            <enum name="EGL_BLUE_SIZE"/>
++            <enum name="EGL_BUFFER_SIZE"/>
++            <enum name="EGL_CONFIG_CAVEAT"/>
++            <enum name="EGL_CONFIG_ID"/>
++            <enum name="EGL_CORE_NATIVE_ENGINE"/>
++            <enum name="EGL_DEPTH_SIZE"/>
++            <enum name="EGL_DONT_CARE"/>
++            <enum name="EGL_DRAW"/>
++            <enum name="EGL_EXTENSIONS"/>
++            <enum name="EGL_FALSE"/>
++            <enum name="EGL_GREEN_SIZE"/>
++            <enum name="EGL_HEIGHT"/>
++            <enum name="EGL_LARGEST_PBUFFER"/>
++            <enum name="EGL_LEVEL"/>
++            <enum name="EGL_MAX_PBUFFER_HEIGHT"/>
++            <enum name="EGL_MAX_PBUFFER_PIXELS"/>
++            <enum name="EGL_MAX_PBUFFER_WIDTH"/>
++            <enum name="EGL_NATIVE_RENDERABLE"/>
++            <enum name="EGL_NATIVE_VISUAL_ID"/>
++            <enum name="EGL_NATIVE_VISUAL_TYPE"/>
++            <enum name="EGL_NONE"/>
++            <enum name="EGL_NON_CONFORMANT_CONFIG"/>
++            <enum name="EGL_NOT_INITIALIZED"/>
++            <enum name="EGL_NO_CONTEXT"/>
++            <enum name="EGL_NO_DISPLAY"/>
++            <enum name="EGL_NO_SURFACE"/>
++            <enum name="EGL_PBUFFER_BIT"/>
++            <enum name="EGL_PIXMAP_BIT"/>
++            <enum name="EGL_READ"/>
++            <enum name="EGL_RED_SIZE"/>
++            <enum name="EGL_SAMPLES"/>
++            <enum name="EGL_SAMPLE_BUFFERS"/>
++            <enum name="EGL_SLOW_CONFIG"/>
++            <enum name="EGL_STENCIL_SIZE"/>
++            <enum name="EGL_SUCCESS"/>
++            <enum name="EGL_SURFACE_TYPE"/>
++            <enum name="EGL_TRANSPARENT_BLUE_VALUE"/>
++            <enum name="EGL_TRANSPARENT_GREEN_VALUE"/>
++            <enum name="EGL_TRANSPARENT_RED_VALUE"/>
++            <enum name="EGL_TRANSPARENT_RGB"/>
++            <enum name="EGL_TRANSPARENT_TYPE"/>
++            <enum name="EGL_TRUE"/>
++            <enum name="EGL_VENDOR"/>
++            <enum name="EGL_VERSION"/>
++            <enum name="EGL_WIDTH"/>
++            <enum name="EGL_WINDOW_BIT"/>
++            <command name="eglChooseConfig"/>
++            <command name="eglCopyBuffers"/>
++            <command name="eglCreateContext"/>
++            <command name="eglCreatePbufferSurface"/>
++            <command name="eglCreatePixmapSurface"/>
++            <command name="eglCreateWindowSurface"/>
++            <command name="eglDestroyContext"/>
++            <command name="eglDestroySurface"/>
++            <command name="eglGetConfigAttrib"/>
++            <command name="eglGetConfigs"/>
++            <command name="eglGetCurrentDisplay"/>
++            <command name="eglGetCurrentSurface"/>
++            <command name="eglGetDisplay"/>
++            <command name="eglGetError"/>
++            <command name="eglGetProcAddress"/>
++            <command name="eglInitialize"/>
++            <command name="eglMakeCurrent"/>
++            <command name="eglQueryContext"/>
++            <command name="eglQueryString"/>
++            <command name="eglQuerySurface"/>
++            <command name="eglSwapBuffers"/>
++            <command name="eglTerminate"/>
++            <command name="eglWaitGL"/>
++            <command name="eglWaitNative"/>
++        </require>
++    </feature>
++    <feature api="egl" name="EGL_VERSION_1_1" number="1.1">
++        <require>
++            <enum name="EGL_BACK_BUFFER"/>
++            <enum name="EGL_BIND_TO_TEXTURE_RGB"/>
++            <enum name="EGL_BIND_TO_TEXTURE_RGBA"/>
++            <enum name="EGL_CONTEXT_LOST"/>
++            <enum name="EGL_MIN_SWAP_INTERVAL"/>
++            <enum name="EGL_MAX_SWAP_INTERVAL"/>
++            <enum name="EGL_MIPMAP_TEXTURE"/>
++            <enum name="EGL_MIPMAP_LEVEL"/>
++            <enum name="EGL_NO_TEXTURE"/>
++            <enum name="EGL_TEXTURE_2D"/>
++            <enum name="EGL_TEXTURE_FORMAT"/>
++            <enum name="EGL_TEXTURE_RGB"/>
++            <enum name="EGL_TEXTURE_RGBA"/>
++            <enum name="EGL_TEXTURE_TARGET"/>
++            <command name="eglBindTexImage"/>
++            <command name="eglReleaseTexImage"/>
++            <command name="eglSurfaceAttrib"/>
++            <command name="eglSwapInterval"/>
++        </require>
++    </feature>
++    <feature api="egl" name="EGL_VERSION_1_2" number="1.2">
++        <require>
++            <enum name="EGL_ALPHA_FORMAT"/>
++            <enum name="EGL_ALPHA_FORMAT_NONPRE"/>
++            <enum name="EGL_ALPHA_FORMAT_PRE"/>
++            <enum name="EGL_ALPHA_MASK_SIZE"/>
++            <enum name="EGL_BUFFER_PRESERVED"/>
++            <enum name="EGL_BUFFER_DESTROYED"/>
++            <enum name="EGL_CLIENT_APIS"/>
++            <enum name="EGL_COLORSPACE"/>
++            <enum name="EGL_COLORSPACE_sRGB"/>
++            <enum name="EGL_COLORSPACE_LINEAR"/>
++            <enum name="EGL_COLOR_BUFFER_TYPE"/>
++            <enum name="EGL_CONTEXT_CLIENT_TYPE"/>
++            <enum name="EGL_DISPLAY_SCALING"/>
++            <enum name="EGL_HORIZONTAL_RESOLUTION"/>
++            <enum name="EGL_LUMINANCE_BUFFER"/>
++            <enum name="EGL_LUMINANCE_SIZE"/>
++            <enum name="EGL_OPENGL_ES_BIT"/>
++            <enum name="EGL_OPENVG_BIT"/>
++            <enum name="EGL_OPENGL_ES_API"/>
++            <enum name="EGL_OPENVG_API"/>
++            <enum name="EGL_OPENVG_IMAGE"/>
++            <enum name="EGL_PIXEL_ASPECT_RATIO"/>
++            <enum name="EGL_RENDERABLE_TYPE"/>
++            <enum name="EGL_RENDER_BUFFER"/>
++            <enum name="EGL_RGB_BUFFER"/>
++            <enum name="EGL_SINGLE_BUFFER"/>
++            <enum name="EGL_SWAP_BEHAVIOR"/>
++            <enum name="EGL_UNKNOWN"/>
++            <enum name="EGL_VERTICAL_RESOLUTION"/>
++            <command name="eglBindAPI"/>
++            <command name="eglQueryAPI"/>
++            <command name="eglCreatePbufferFromClientBuffer"/>
++            <command name="eglReleaseThread"/>
++            <command name="eglWaitClient"/>
++        </require>
++    </feature>
++    <feature api="egl" name="EGL_VERSION_1_3" number="1.3">
++        <require>
++            <enum name="EGL_CONFORMANT"/>
++            <enum name="EGL_CONTEXT_CLIENT_VERSION"/>
++            <enum name="EGL_MATCH_NATIVE_PIXMAP"/>
++            <enum name="EGL_OPENGL_ES2_BIT"/>
++            <enum name="EGL_VG_ALPHA_FORMAT"/>
++            <enum name="EGL_VG_ALPHA_FORMAT_NONPRE"/>
++            <enum name="EGL_VG_ALPHA_FORMAT_PRE"/>
++            <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT"/>
++            <enum name="EGL_VG_COLORSPACE"/>
++            <enum name="EGL_VG_COLORSPACE_sRGB"/>
++            <enum name="EGL_VG_COLORSPACE_LINEAR"/>
++            <enum name="EGL_VG_COLORSPACE_LINEAR_BIT"/>
++        </require>
++    </feature>
++    <feature api="egl" name="EGL_VERSION_1_4" number="1.4">
++        <require>
++            <enum name="EGL_DEFAULT_DISPLAY"/>
++            <enum name="EGL_MULTISAMPLE_RESOLVE_BOX_BIT"/>
++            <enum name="EGL_MULTISAMPLE_RESOLVE"/>
++            <enum name="EGL_MULTISAMPLE_RESOLVE_DEFAULT"/>
++            <enum name="EGL_MULTISAMPLE_RESOLVE_BOX"/>
++            <enum name="EGL_OPENGL_API"/>
++            <enum name="EGL_OPENGL_BIT"/>
++            <enum name="EGL_SWAP_BEHAVIOR_PRESERVED_BIT"/>
++            <command name="eglGetCurrentContext"/>
++        </require>
++    </feature>
++    <feature api="egl" name="EGL_VERSION_1_5" number="1.5">
++        <require comment="EGL_KHR_create_context features">
++            <enum name="EGL_CONTEXT_MAJOR_VERSION"/>
++            <enum name="EGL_CONTEXT_MINOR_VERSION"/>
++            <enum name="EGL_CONTEXT_OPENGL_PROFILE_MASK"/>
++            <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
++            <enum name="EGL_NO_RESET_NOTIFICATION"/>
++            <enum name="EGL_LOSE_CONTEXT_ON_RESET"/>
++            <enum name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT"/>
++            <enum name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT"/>
++            <enum name="EGL_CONTEXT_OPENGL_DEBUG"/>
++            <enum name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE"/>
++            <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
++            <enum name="EGL_OPENGL_ES3_BIT"/>
++        </require>
++        <require comment="EGL_EXT_create_context_robustness">
++            <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS"/>
++            <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY"/>
++        </require>
++        <require comment="EGL_EXT_client_extensions"/>
++        <require comment="EGL_KHR_cl_event2">
++            <enum name="EGL_CL_EVENT_HANDLE"/>
++            <enum name="EGL_SYNC_CL_EVENT"/>
++            <enum name="EGL_SYNC_CL_EVENT_COMPLETE"/>
++        </require>
++        <require comment="EGL_KHR_fence_sync">
++            <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE"/>
++            <enum name="EGL_SYNC_TYPE"/>
++            <enum name="EGL_SYNC_STATUS"/>
++            <enum name="EGL_SYNC_CONDITION"/>
++            <enum name="EGL_SIGNALED"/>
++            <enum name="EGL_UNSIGNALED"/>
++            <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT"/>
++            <enum name="EGL_FOREVER"/>
++            <enum name="EGL_TIMEOUT_EXPIRED"/>
++            <enum name="EGL_CONDITION_SATISFIED"/>
++            <enum name="EGL_NO_SYNC"/>
++            <enum name="EGL_SYNC_FENCE"/>
++            <command name="eglCreateSync"/>
++            <command name="eglDestroySync"/>
++            <command name="eglClientWaitSync"/>
++            <command name="eglGetSyncAttrib"/>
++        </require>
++        <require comment="EGL_KHR_get_all_proc_addresses"/>
++        <require comment="EGL_KHR_client_get_all_proc_addresses"/>
++        <require comment="EGL_KHR_gl_colorspace">
++            <enum name="EGL_GL_COLORSPACE"/>
++            <enum name="EGL_GL_COLORSPACE_SRGB"/>
++            <enum name="EGL_GL_COLORSPACE_LINEAR"/>
++        </require>
++        <require comment="EGL_KHR_gl_renderbuffer_image">
++            <enum name="EGL_GL_RENDERBUFFER"/>
++        </require>
++        <require comment="EGL_KHR_gl_texture_2D_image">
++            <enum name="EGL_GL_TEXTURE_2D"/>
++            <enum name="EGL_GL_TEXTURE_LEVEL"/>
++        </require>
++        <require comment="EGL_KHR_gl_texture_3D_image">
++            <enum name="EGL_GL_TEXTURE_3D"/>
++            <enum name="EGL_GL_TEXTURE_ZOFFSET"/>
++        </require>
++        <require comment="EGL_KHR_gl_texture_cubemap_image">
++            <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
++            <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
++            <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
++            <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
++            <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
++            <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
++        </require>
++        <require comment="EGL_KHR_image_base">
++            <enum name="EGL_IMAGE_PRESERVED"/>
++            <enum name="EGL_NO_IMAGE"/>
++            <command name="eglCreateImage"/>
++            <command name="eglDestroyImage"/>
++        </require>
++        <require comment="EGL_EXT_platform_base">
++            <command name="eglGetPlatformDisplay"/>
++            <command name="eglCreatePlatformWindowSurface"/>
++            <command name="eglCreatePlatformPixmapSurface"/>
++        </require>
++        <require comment="EGL_KHR_surfaceless_context - just relaxes an error condition"/>
++        <require comment="EGL_KHR_wait_sync">
++            <command name="eglWaitSync"/>
++        </require>
++    </feature>
++
++    <!-- SECTION: EGL extension interface definitions -->
++    <extensions>
++        <extension name="EGL_ANDROID_blob_cache" supported="egl">
++            <require>
++                <command name="eglSetBlobCacheFuncsANDROID"/>
++            </require>
++        </extension>
++        <extension name="EGL_ANDROID_framebuffer_target" supported="egl">
++            <require>
++                <enum name="EGL_FRAMEBUFFER_TARGET_ANDROID"/>
++            </require>
++        </extension>
++        <extension name="EGL_ANDROID_image_native_buffer" supported="egl">
++            <require>
++                <enum name="EGL_NATIVE_BUFFER_ANDROID"/>
++            </require>
++        </extension>
++        <extension name="EGL_ANDROID_native_fence_sync" supported="egl">
++            <require>
++                <enum name="EGL_SYNC_NATIVE_FENCE_ANDROID"/>
++                <enum name="EGL_SYNC_NATIVE_FENCE_FD_ANDROID"/>
++                <enum name="EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID"/>
++                <enum name="EGL_NO_NATIVE_FENCE_FD_ANDROID"/>
++                <command name="eglDupNativeFenceFDANDROID"/>
++            </require>
++        </extension>
++        <extension name="EGL_ANDROID_recordable" supported="egl">
++            <require>
++                <enum name="EGL_RECORDABLE_ANDROID"/>
++            </require>
++        </extension>
++        <extension name="EGL_ANGLE_d3d_share_handle_client_buffer" supported="egl">
++            <require>
++                <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
++            </require>
++        </extension>
++        <extension name="EGL_ANGLE_device_d3d" supported="egl">
++            <require>
++                <enum name="EGL_D3D9_DEVICE_ANGLE"/>
++                <enum name="EGL_D3D11_DEVICE_ANGLE"/>
++            </require>
++        </extension>
++        <extension name="EGL_ANGLE_query_surface_pointer" supported="egl">
++            <require>
++                <command name="eglQuerySurfacePointerANGLE"/>
++            </require>
++        </extension>
++        <extension name="EGL_ANGLE_surface_d3d_texture_2d_share_handle" supported="egl">
++            <require>
++                <enum name="EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE"/>
++            </require>
++        </extension>
++        <extension name="EGL_ANGLE_window_fixed_size" supported="egl">
++            <require>
++                <enum name="EGL_FIXED_SIZE_ANGLE"/>
++            </require>
++        </extension>
++        <extension name="EGL_ARM_pixmap_multisample_discard" supported="egl">
++            <require>
++                <enum name="EGL_DISCARD_SAMPLES_ARM"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_buffer_age" supported="egl">
++            <require>
++                <enum name="EGL_BUFFER_AGE_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_client_extensions" supported="egl"/>
++        <extension name="EGL_EXT_create_context_robustness" supported="egl">
++            <require>
++                <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT"/>
++                <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT"/>
++                <enum name="EGL_NO_RESET_NOTIFICATION_EXT"/>
++                <enum name="EGL_LOSE_CONTEXT_ON_RESET_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_device_base" supported="egl">
++            <require>
++                <enum name="EGL_NO_DEVICE_EXT"/>
++                <enum name="EGL_BAD_DEVICE_EXT"/>
++                <enum name="EGL_DEVICE_EXT"/>
++                <command name="eglQueryDeviceAttribEXT"/>
++                <command name="eglQueryDeviceStringEXT"/>
++                <command name="eglQueryDevicesEXT"/>
++                <command name="eglQueryDisplayAttribEXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_device_drm" supported="egl">
++            <require>
++                <enum name="EGL_DRM_DEVICE_FILE_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_device_enumeration" supported="egl">
++            <require>
++                <command name="eglQueryDevicesEXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_device_openwf" supported="egl">
++            <require>
++                <enum name="EGL_OPENWF_DEVICE_ID_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_device_query" supported="egl">
++            <require>
++                <enum name="EGL_NO_DEVICE_EXT"/>
++                <enum name="EGL_BAD_DEVICE_EXT"/>
++                <enum name="EGL_DEVICE_EXT"/>
++                <command name="eglQueryDeviceAttribEXT"/>
++                <command name="eglQueryDeviceStringEXT"/>
++                <command name="eglQueryDisplayAttribEXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_image_dma_buf_import" supported="egl">
++            <require>
++                <enum name="EGL_LINUX_DMA_BUF_EXT"/>
++                <enum name="EGL_LINUX_DRM_FOURCC_EXT"/>
++                <enum name="EGL_DMA_BUF_PLANE0_FD_EXT"/>
++                <enum name="EGL_DMA_BUF_PLANE0_OFFSET_EXT"/>
++                <enum name="EGL_DMA_BUF_PLANE0_PITCH_EXT"/>
++                <enum name="EGL_DMA_BUF_PLANE1_FD_EXT"/>
++                <enum name="EGL_DMA_BUF_PLANE1_OFFSET_EXT"/>
++                <enum name="EGL_DMA_BUF_PLANE1_PITCH_EXT"/>
++                <enum name="EGL_DMA_BUF_PLANE2_FD_EXT"/>
++                <enum name="EGL_DMA_BUF_PLANE2_OFFSET_EXT"/>
++                <enum name="EGL_DMA_BUF_PLANE2_PITCH_EXT"/>
++                <enum name="EGL_YUV_COLOR_SPACE_HINT_EXT"/>
++                <enum name="EGL_SAMPLE_RANGE_HINT_EXT"/>
++                <enum name="EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT"/>
++                <enum name="EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT"/>
++                <enum name="EGL_ITU_REC601_EXT"/>
++                <enum name="EGL_ITU_REC709_EXT"/>
++                <enum name="EGL_ITU_REC2020_EXT"/>
++                <enum name="EGL_YUV_FULL_RANGE_EXT"/>
++                <enum name="EGL_YUV_NARROW_RANGE_EXT"/>
++                <enum name="EGL_YUV_CHROMA_SITING_0_EXT"/>
++                <enum name="EGL_YUV_CHROMA_SITING_0_5_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_multiview_window" supported="egl">
++            <require>
++                <enum name="EGL_MULTIVIEW_VIEW_COUNT_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_output_base" supported="egl">
++            <require>
++                <type name="EGLOutputLayerEXT"/>
++                <type name="EGLOutputPortEXT"/>
++                <enum name="EGL_NO_OUTPUT_LAYER_EXT"/>
++                <enum name="EGL_NO_OUTPUT_PORT_EXT"/>
++                <enum name="EGL_BAD_OUTPUT_LAYER_EXT"/>
++                <enum name="EGL_BAD_OUTPUT_PORT_EXT"/>
++                <enum name="EGL_SWAP_INTERVAL_EXT"/>
++                <command name="eglGetOutputLayersEXT"/>
++                <command name="eglGetOutputPortsEXT"/>
++                <command name="eglOutputLayerAttribEXT"/>
++                <command name="eglQueryOutputLayerAttribEXT"/>
++                <command name="eglQueryOutputLayerStringEXT"/>
++                <command name="eglOutputPortAttribEXT"/>
++                <command name="eglQueryOutputPortAttribEXT"/>
++                <command name="eglQueryOutputPortStringEXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_output_drm" supported="egl">
++            <require>
++                <enum name="EGL_DRM_CRTC_EXT"/>
++                <enum name="EGL_DRM_PLANE_EXT"/>
++                <enum name="EGL_DRM_CONNECTOR_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_output_openwf" supported="egl">
++            <require>
++                <enum name="EGL_OPENWF_PIPELINE_ID_EXT"/>
++                <enum name="EGL_OPENWF_PORT_ID_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_platform_base" supported="egl">
++            <require>
++                <command name="eglGetPlatformDisplayEXT"/>
++                <command name="eglCreatePlatformWindowSurfaceEXT"/>
++                <command name="eglCreatePlatformPixmapSurfaceEXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_platform_device" supported="egl">
++            <require>
++                <enum name="EGL_PLATFORM_DEVICE_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_platform_wayland" supported="egl">
++            <require>
++                <enum name="EGL_PLATFORM_WAYLAND_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_platform_x11" supported="egl">
++            <require>
++                <enum name="EGL_PLATFORM_X11_EXT"/>
++                <enum name="EGL_PLATFORM_X11_SCREEN_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_protected_surface" supported="egl">
++            <require>
++                <enum name="EGL_PROTECTED_CONTENT_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_stream_consumer_egloutput" supported="egl">
++            <require>
++                <command name="eglStreamConsumerOutputEXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_swap_buffers_with_damage" supported="egl">
++            <require>
++                <command name="eglSwapBuffersWithDamageEXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_EXT_yuv_surface" supported="egl">
++            <require>
++                <enum name="EGL_YUV_ORDER_EXT"/>
++                <enum name="EGL_YUV_NUMBER_OF_PLANES_EXT"/>
++                <enum name="EGL_YUV_SUBSAMPLE_EXT"/>
++                <enum name="EGL_YUV_DEPTH_RANGE_EXT"/>
++                <enum name="EGL_YUV_CSC_STANDARD_EXT"/>
++                <enum name="EGL_YUV_PLANE_BPP_EXT"/>
++                <enum name="EGL_YUV_BUFFER_EXT"/>
++                <enum name="EGL_YUV_ORDER_YUV_EXT"/>
++                <enum name="EGL_YUV_ORDER_YVU_EXT"/>
++                <enum name="EGL_YUV_ORDER_YUYV_EXT"/>
++                <enum name="EGL_YUV_ORDER_UYVY_EXT"/>
++                <enum name="EGL_YUV_ORDER_YVYU_EXT"/>
++                <enum name="EGL_YUV_ORDER_VYUY_EXT"/>
++                <enum name="EGL_YUV_ORDER_AYUV_EXT"/>
++                <enum name="EGL_YUV_SUBSAMPLE_4_2_0_EXT"/>
++                <enum name="EGL_YUV_SUBSAMPLE_4_2_2_EXT"/>
++                <enum name="EGL_YUV_SUBSAMPLE_4_4_4_EXT"/>
++                <enum name="EGL_YUV_DEPTH_RANGE_LIMITED_EXT"/>
++                <enum name="EGL_YUV_DEPTH_RANGE_FULL_EXT"/>
++                <enum name="EGL_YUV_CSC_STANDARD_601_EXT"/>
++                <enum name="EGL_YUV_CSC_STANDARD_709_EXT"/>
++                <enum name="EGL_YUV_CSC_STANDARD_2020_EXT"/>
++                <enum name="EGL_YUV_PLANE_BPP_0_EXT"/>
++                <enum name="EGL_YUV_PLANE_BPP_8_EXT"/>
++                <enum name="EGL_YUV_PLANE_BPP_10_EXT"/>
++            </require>
++        </extension>
++        <extension name="EGL_HI_clientpixmap" supported="egl">
++            <require>
++                <enum name="EGL_CLIENT_PIXMAP_POINTER_HI"/>
++                <command name="eglCreatePixmapSurfaceHI"/>
++            </require>
++        </extension>
++        <extension name="EGL_HI_colorformats" supported="egl">
++            <require>
++                <enum name="EGL_COLOR_FORMAT_HI"/>
++                <enum name="EGL_COLOR_RGB_HI"/>
++                <enum name="EGL_COLOR_RGBA_HI"/>
++                <enum name="EGL_COLOR_ARGB_HI"/>
++            </require>
++        </extension>
++        <extension name="EGL_IMG_context_priority" supported="egl">
++            <require>
++                <enum name="EGL_CONTEXT_PRIORITY_LEVEL_IMG"/>
++                <enum name="EGL_CONTEXT_PRIORITY_HIGH_IMG"/>
++                <enum name="EGL_CONTEXT_PRIORITY_MEDIUM_IMG"/>
++                <enum name="EGL_CONTEXT_PRIORITY_LOW_IMG"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_cl_event" supported="egl">
++            <require>
++                <enum name="EGL_CL_EVENT_HANDLE_KHR"/>
++                <enum name="EGL_SYNC_CL_EVENT_KHR"/>
++                <enum name="EGL_SYNC_CL_EVENT_COMPLETE_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_cl_event2" supported="egl">
++            <require>
++                <enum name="EGL_CL_EVENT_HANDLE_KHR"/>
++                <enum name="EGL_SYNC_CL_EVENT_KHR"/>
++                <enum name="EGL_SYNC_CL_EVENT_COMPLETE_KHR"/>
++                <command name="eglCreateSync64KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_config_attribs" supported="egl">
++            <require>
++                <enum name="EGL_CONFORMANT_KHR"/>
++                <enum name="EGL_VG_COLORSPACE_LINEAR_BIT_KHR"/>
++                <enum name="EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_client_get_all_proc_addresses" supported="egl" comment="Alias of EGL_KHR_get_all_proc_addresses"/>
++        <extension name="EGL_KHR_create_context" supported="egl">
++            <require>
++                <enum name="EGL_CONTEXT_MAJOR_VERSION_KHR"/>
++                <enum name="EGL_CONTEXT_MINOR_VERSION_KHR"/>
++                <enum name="EGL_CONTEXT_FLAGS_KHR"/>
++                <enum name="EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR"/>
++                <enum name="EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR"/>
++                <enum name="EGL_NO_RESET_NOTIFICATION_KHR"/>
++                <enum name="EGL_LOSE_CONTEXT_ON_RESET_KHR"/>
++                <enum name="EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR"/>
++                <enum name="EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR"/>
++                <enum name="EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR"/>
++                <enum name="EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR"/>
++                <enum name="EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR"/>
++                <enum name="EGL_OPENGL_ES3_BIT"/>
++                <enum name="EGL_OPENGL_ES3_BIT_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_create_context_no_error" supported="egl">
++            <require>
++                <enum name="EGL_CONTEXT_OPENGL_NO_ERROR_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_debug" supported="egl">
++            <require>
++                    <!-- Explicit dependencies require to get EGLDEBUGPROCKHR dependencies correct -->
++                <type name="EGLLabelKHR"/>
++                <type name="EGLObjectKHR"/>
++                <enum name="EGL_OBJECT_THREAD_KHR"/>
++                <enum name="EGL_OBJECT_DISPLAY_KHR"/>
++                <enum name="EGL_OBJECT_CONTEXT_KHR"/>
++                <enum name="EGL_OBJECT_SURFACE_KHR"/>
++                <enum name="EGL_OBJECT_IMAGE_KHR"/>
++                <enum name="EGL_OBJECT_SYNC_KHR"/>
++                <enum name="EGL_OBJECT_STREAM_KHR"/>
++                <enum name="EGL_DEBUG_MSG_CRITICAL_KHR"/>
++                <enum name="EGL_DEBUG_MSG_ERROR_KHR"/>
++                <enum name="EGL_DEBUG_MSG_WARN_KHR"/>
++                <enum name="EGL_DEBUG_MSG_INFO_KHR"/>
++                <enum name="EGL_DEBUG_CALLBACK_KHR"/>
++                <command name="eglDebugMessageControlKHR"/>
++                <command name="eglQueryDebugKHR"/>
++                <command name="eglLabelObjectKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_fence_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
++            <require>
++                <!-- Most interfaces also defined by EGL_KHR_reusable sync -->
++                <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR"/>
++                <enum name="EGL_SYNC_CONDITION_KHR"/>
++                <enum name="EGL_SYNC_FENCE_KHR"/>
++                <command name="eglCreateSyncKHR"/>
++                <command name="eglDestroySyncKHR"/>
++                <command name="eglClientWaitSyncKHR"/>
++                <command name="eglGetSyncAttribKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_get_all_proc_addresses" supported="egl"/>
++        <extension name="EGL_KHR_gl_colorspace" supported="egl">
++            <require>
++                <enum name="EGL_GL_COLORSPACE_KHR"/>
++                <enum name="EGL_GL_COLORSPACE_SRGB_KHR"/>
++                <enum name="EGL_GL_COLORSPACE_LINEAR_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_gl_renderbuffer_image" supported="egl">
++            <require>
++                <enum name="EGL_GL_RENDERBUFFER_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_gl_texture_2D_image" supported="egl">
++            <require>
++                <enum name="EGL_GL_TEXTURE_2D_KHR"/>
++                <enum name="EGL_GL_TEXTURE_LEVEL_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_gl_texture_3D_image" supported="egl">
++            <require>
++                <enum name="EGL_GL_TEXTURE_3D_KHR"/>
++                <enum name="EGL_GL_TEXTURE_ZOFFSET_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_gl_texture_cubemap_image" supported="egl">
++            <require>
++                <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR"/>
++                <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR"/>
++                <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR"/>
++                <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR"/>
++                <enum name="EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR"/>
++                <enum name="EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_image" supported="egl">
++            <require>
++                <enum name="EGL_NATIVE_PIXMAP_KHR"/>
++                <enum name="EGL_NO_IMAGE_KHR"/>
++                <command name="eglCreateImageKHR"/>
++                <command name="eglDestroyImageKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_image_base" supported="egl">
++            <require>
++                <enum name="EGL_IMAGE_PRESERVED_KHR"/>
++                <enum name="EGL_NO_IMAGE_KHR"/>
++                <command name="eglCreateImageKHR"/>
++                <command name="eglDestroyImageKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_image_pixmap" supported="egl">
++            <require>
++                <enum name="EGL_NATIVE_PIXMAP_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_lock_surface" supported="egl">
++            <require>
++                <enum name="EGL_READ_SURFACE_BIT_KHR"/>
++                <enum name="EGL_WRITE_SURFACE_BIT_KHR"/>
++                <enum name="EGL_LOCK_SURFACE_BIT_KHR"/>
++                <enum name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
++                <enum name="EGL_MATCH_FORMAT_KHR"/>
++                <enum name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
++                <enum name="EGL_FORMAT_RGB_565_KHR"/>
++                <enum name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
++                <enum name="EGL_FORMAT_RGBA_8888_KHR"/>
++                <enum name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
++                <enum name="EGL_LOCK_USAGE_HINT_KHR"/>
++                <enum name="EGL_BITMAP_POINTER_KHR"/>
++                <enum name="EGL_BITMAP_PITCH_KHR"/>
++                <enum name="EGL_BITMAP_ORIGIN_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
++                <enum name="EGL_LOWER_LEFT_KHR"/>
++                <enum name="EGL_UPPER_LEFT_KHR"/>
++                <command name="eglLockSurfaceKHR"/>
++                <command name="eglUnlockSurfaceKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_lock_surface2" supported="egl">
++            <require>
++                <enum name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_lock_surface3" supported="egl">
++            <require>
++                <enum name="EGL_READ_SURFACE_BIT_KHR"/>
++                <enum name="EGL_WRITE_SURFACE_BIT_KHR"/>
++                <enum name="EGL_LOCK_SURFACE_BIT_KHR"/>
++                <enum name="EGL_OPTIMAL_FORMAT_BIT_KHR"/>
++                <enum name="EGL_MATCH_FORMAT_KHR"/>
++                <enum name="EGL_FORMAT_RGB_565_EXACT_KHR"/>
++                <enum name="EGL_FORMAT_RGB_565_KHR"/>
++                <enum name="EGL_FORMAT_RGBA_8888_EXACT_KHR"/>
++                <enum name="EGL_FORMAT_RGBA_8888_KHR"/>
++                <enum name="EGL_MAP_PRESERVE_PIXELS_KHR"/>
++                <enum name="EGL_LOCK_USAGE_HINT_KHR"/>
++                <enum name="EGL_BITMAP_PITCH_KHR"/>
++                <enum name="EGL_BITMAP_ORIGIN_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_RED_OFFSET_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR"/>
++                <enum name="EGL_BITMAP_PIXEL_SIZE_KHR"/>
++                <enum name="EGL_BITMAP_POINTER_KHR"/>
++                <enum name="EGL_LOWER_LEFT_KHR"/>
++                <enum name="EGL_UPPER_LEFT_KHR"/>
++                <command name="eglLockSurfaceKHR"/>
++                <command name="eglUnlockSurfaceKHR"/>
++                <command name="eglQuerySurface64KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_partial_update" supported="egl">
++            <require>
++                <enum name="EGL_BUFFER_AGE_KHR"/>
++                <command name="eglSetDamageRegionKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_platform_android" supported="egl">
++            <require>
++                <enum name="EGL_PLATFORM_ANDROID_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_platform_gbm" supported="egl">
++            <require>
++                <enum name="EGL_PLATFORM_GBM_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_platform_wayland" supported="egl">
++            <require>
++                <enum name="EGL_PLATFORM_WAYLAND_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_platform_x11" supported="egl">
++            <require>
++                <enum name="EGL_PLATFORM_X11_KHR"/>
++                <enum name="EGL_PLATFORM_X11_SCREEN_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_reusable_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
++            <require>
++                <enum name="EGL_SYNC_STATUS_KHR"/>
++                <enum name="EGL_SIGNALED_KHR"/>
++                <enum name="EGL_UNSIGNALED_KHR"/>
++                <enum name="EGL_TIMEOUT_EXPIRED_KHR"/>
++                <enum name="EGL_CONDITION_SATISFIED_KHR"/>
++                <enum name="EGL_SYNC_TYPE_KHR"/>
++                <enum name="EGL_SYNC_REUSABLE_KHR"/>
++                <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_KHR"/>
++                <enum name="EGL_FOREVER_KHR"/>
++                <enum name="EGL_NO_SYNC_KHR"/>
++                <command name="eglCreateSyncKHR"/>
++                <command name="eglDestroySyncKHR"/>
++                <command name="eglClientWaitSyncKHR"/>
++                <command name="eglSignalSyncKHR"/>
++                <command name="eglGetSyncAttribKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_stream" protect="KHRONOS_SUPPORT_INT64" supported="egl">
++            <require>
++                <enum name="EGL_NO_STREAM_KHR"/>
++                <enum name="EGL_CONSUMER_LATENCY_USEC_KHR"/>
++                <enum name="EGL_PRODUCER_FRAME_KHR"/>
++                <enum name="EGL_CONSUMER_FRAME_KHR"/>
++                <enum name="EGL_STREAM_STATE_KHR"/>
++                <enum name="EGL_STREAM_STATE_CREATED_KHR"/>
++                <enum name="EGL_STREAM_STATE_CONNECTING_KHR"/>
++                <enum name="EGL_STREAM_STATE_EMPTY_KHR"/>
++                <enum name="EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR"/>
++                <enum name="EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR"/>
++                <enum name="EGL_STREAM_STATE_DISCONNECTED_KHR"/>
++                <enum name="EGL_BAD_STREAM_KHR"/>
++                <enum name="EGL_BAD_STATE_KHR"/>
++                <command name="eglCreateStreamKHR"/>
++                <command name="eglDestroyStreamKHR"/>
++                <command name="eglStreamAttribKHR"/>
++                <command name="eglQueryStreamKHR"/>
++                <command name="eglQueryStreamu64KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_stream_consumer_gltexture" protect="EGL_KHR_stream" supported="egl">
++            <require>
++                <enum name="EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR"/>
++                <command name="eglStreamConsumerGLTextureExternalKHR"/>
++                <command name="eglStreamConsumerAcquireKHR"/>
++                <command name="eglStreamConsumerReleaseKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_stream_cross_process_fd" protect="EGL_KHR_stream" supported="egl">
++            <require>
++                <enum name="EGL_NO_FILE_DESCRIPTOR_KHR"/>
++                <command name="eglGetStreamFileDescriptorKHR"/>
++                <command name="eglCreateStreamFromFileDescriptorKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_stream_fifo" protect="EGL_KHR_stream" supported="egl">
++            <require>
++                <enum name="EGL_STREAM_FIFO_LENGTH_KHR"/>
++                <enum name="EGL_STREAM_TIME_NOW_KHR"/>
++                <enum name="EGL_STREAM_TIME_CONSUMER_KHR"/>
++                <enum name="EGL_STREAM_TIME_PRODUCER_KHR"/>
++                <command name="eglQueryStreamTimeKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_stream_producer_aldatalocator" protect="EGL_KHR_stream" supported="egl"/>
++        <extension name="EGL_KHR_stream_producer_eglsurface" protect="EGL_KHR_stream" supported="egl">
++            <require>
++                <enum name="EGL_STREAM_BIT_KHR"/>
++                <command name="eglCreateStreamProducerSurfaceKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_surfaceless_context" supported="egl" comment="Just relaxes an error condition"/>
++        <extension name="EGL_KHR_swap_buffers_with_damage" supported="egl">
++            <require>
++                <command name="eglSwapBuffersWithDamageKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_vg_parent_image" supported="egl">
++            <require>
++                <enum name="EGL_VG_PARENT_IMAGE_KHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_KHR_wait_sync" supported="egl">
++            <require>
++                <command name="eglWaitSyncKHR"/>
++            </require>
++        </extension>
++        <extension name="EGL_MESA_drm_image" supported="egl">
++            <require>
++                <enum name="EGL_DRM_BUFFER_FORMAT_MESA"/>
++                <enum name="EGL_DRM_BUFFER_USE_MESA"/>
++                <enum name="EGL_DRM_BUFFER_FORMAT_ARGB32_MESA"/>
++                <enum name="EGL_DRM_BUFFER_MESA"/>
++                <enum name="EGL_DRM_BUFFER_STRIDE_MESA"/>
++                <enum name="EGL_DRM_BUFFER_USE_SCANOUT_MESA"/>
++                <enum name="EGL_DRM_BUFFER_USE_SHARE_MESA"/>
++                <command name="eglCreateDRMImageMESA"/>
++                <command name="eglExportDRMImageMESA"/>
++            </require>
++        </extension>
++        <extension name="EGL_MESA_image_dma_buf_export" supported="egl">
++            <require>
++                <type name="EGLuint64KHR"/>
++                <command name="eglExportDMABUFImageQueryMESA"/>
++                <command name="eglExportDMABUFImageMESA"/>
++            </require>
++        </extension>
++        <extension name="EGL_MESA_platform_gbm" supported="egl">
++            <require>
++                <enum name="EGL_PLATFORM_GBM_MESA"/>
++            </require>
++        </extension>
++        <extension name="EGL_NOK_swap_region" supported="egl">
++            <require>
++                <command name="eglSwapBuffersRegionNOK"/>
++            </require>
++        </extension>
++        <extension name="EGL_NOK_swap_region2" supported="egl">
++            <require>
++                <command name="eglSwapBuffersRegion2NOK"/>
++            </require>
++        </extension>
++        <extension name="EGL_NOK_texture_from_pixmap" supported="egl">
++            <require>
++                <enum name="EGL_Y_INVERTED_NOK"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_3dvision_surface" supported="egl">
++            <require>
++                <enum name="EGL_AUTO_STEREO_NV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_coverage_sample" supported="egl">
++            <require>
++                <enum name="EGL_COVERAGE_BUFFERS_NV"/>
++                <enum name="EGL_COVERAGE_SAMPLES_NV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_coverage_sample_resolve" supported="egl">
++            <require>
++                <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NV"/>
++                <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV"/>
++                <enum name="EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_cuda_event" supported="egl">
++            <require>
++                <enum name="EGL_CUDA_EVENT_HANDLE_NV"/>
++                <enum name="EGL_SYNC_CUDA_EVENT_NV"/>
++                <enum name="EGL_SYNC_CUDA_EVENT_COMPLETE_NV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_depth_nonlinear" supported="egl">
++            <require>
++                <enum name="EGL_DEPTH_ENCODING_NV"/>
++                <enum name="EGL_DEPTH_ENCODING_NONE_NV"/>
++                <enum name="EGL_DEPTH_ENCODING_NONLINEAR_NV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_device_cuda" supported="egl">
++            <require>
++                <enum name="EGL_CUDA_DEVICE_NV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_native_query" supported="egl">
++            <require>
++                <command name="eglQueryNativeDisplayNV"/>
++                <command name="eglQueryNativeWindowNV"/>
++                <command name="eglQueryNativePixmapNV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_post_convert_rounding" supported="egl">
++            <require>
++            </require>
++        </extension>
++        <extension name="EGL_NV_post_sub_buffer" supported="egl">
++            <require>
++                <enum name="EGL_POST_SUB_BUFFER_SUPPORTED_NV"/>
++                <command name="eglPostSubBufferNV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_stream_sync" supported="egl">
++            <require>
++                <enum name="EGL_SYNC_TYPE_KHR"/>
++                <enum name="EGL_SYNC_NEW_FRAME_NV"/>
++                <command name="eglCreateStreamSyncNV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_sync" protect="KHRONOS_SUPPORT_INT64" supported="egl">
++            <require>
++                <enum name="EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV"/>
++                <enum name="EGL_SYNC_STATUS_NV"/>
++                <enum name="EGL_SIGNALED_NV"/>
++                <enum name="EGL_UNSIGNALED_NV"/>
++                <enum name="EGL_SYNC_FLUSH_COMMANDS_BIT_NV"/>
++                <enum name="EGL_FOREVER_NV"/>
++                <enum name="EGL_ALREADY_SIGNALED_NV"/>
++                <enum name="EGL_TIMEOUT_EXPIRED_NV"/>
++                <enum name="EGL_CONDITION_SATISFIED_NV"/>
++                <enum name="EGL_SYNC_TYPE_NV"/>
++                <enum name="EGL_SYNC_CONDITION_NV"/>
++                <enum name="EGL_SYNC_FENCE_NV"/>
++                <enum name="EGL_NO_SYNC_NV"/>
++                <command name="eglCreateFenceSyncNV"/>
++                <command name="eglDestroySyncNV"/>
++                <command name="eglFenceNV"/>
++                <command name="eglClientWaitSyncNV"/>
++                <command name="eglSignalSyncNV"/>
++                <command name="eglGetSyncAttribNV"/>
++            </require>
++        </extension>
++        <extension name="EGL_NV_system_time" protect="KHRONOS_SUPPORT_INT64" supported="egl">
++            <require>
++                <command name="eglGetSystemTimeFrequencyNV"/>
++                <command name="eglGetSystemTimeNV"/>
++            </require>
++        </extension>
++        <extension name="EGL_TIZEN_image_native_buffer" supported="egl">
++            <require>
++                <enum name="EGL_NATIVE_BUFFER_TIZEN"/>
++            </require>
++        </extension>
++        <extension name="EGL_TIZEN_image_native_surface" supported="egl">
++            <require>
++                <enum name="EGL_NATIVE_SURFACE_TIZEN"/>
++            </require>
++        </extension>
++    </extensions>
++</registry>
+diff --git a/src/egl/generate/eglFunctionList.py b/src/egl/generate/eglFunctionList.py
+new file mode 100644
+index 0000000000..b19b5f7193
+--- /dev/null
++++ b/src/egl/generate/eglFunctionList.py
+@@ -0,0 +1,197 @@
++#!/usr/bin/env python
++
++"""
++Contains a list of EGL functions to generate dispatch functions for.
++
++This is used from gen_egl_dispatch.py.
++
++EGL_FUNCTIONS is a sequence of (name, eglData) pairs, where name is the name
++of the function, and eglData is a dictionary containing data about that
++function.
++
++The values in the eglData dictionary are:
++- method (string):
++    How to select a vendor library. See "Method values" below.
++
++- prefix (string):
++    This string is prepended to the name of the dispatch function. If
++    unspecified, the default is "" (an empty string).
++
++- static (boolean)
++  If True, this function should be declared static.
++
++- "public" (boolean)
++    If True, the function should be exported from the library. Vendor libraries
++    generally should not use this.
++
++- extension (string):
++    If specified, this is the name of a macro to check for before defining a
++    function. Used for checking for extension macros and such.
++
++- retval (string):
++    If specified, this is a C expression with the default value to return if we
++    can't find a function to call. By default, it will try to guess from the
++    return type: EGL_NO_whatever for the various handle types, NULL for
++    pointers, and zero for everything else.
++
++method values:
++- "custom"
++    The dispatch stub will be hand-written instead of generated.
++
++- "none"
++    No dispatch function exists at all, but the function should still have an
++    entry in the index array. This is for other functions that a stub may need
++    to call that are implemented in libEGL itself.
++
++- "display"
++    Select a vendor from an EGLDisplay argument.
++
++- "device"
++    Select a vendor from an EGLDeviceEXT argument.
++
++- "current"
++    Select the vendor that owns the current context.
++"""
++
++def _eglFunc(name, method, static=False, public=False, inheader=None, prefix="", extension=None, retval=None):
++    """
++    A convenience function to define an entry in the EGL function list.
++    """
++    if inheader is None:
++        inheader = (not public)
++    values = {
++        "method" : method,
++        "prefix" : prefix,
++        "extension" : extension,
++        "retval" : retval,
++        "static" : static,
++        "public" : public,
++        "inheader" : inheader,
++    }
++    return (name, values)
++
++EGL_FUNCTIONS = (
++    # EGL_VERSION_1_0
++    _eglFunc("eglChooseConfig",                      "none"),
++    _eglFunc("eglCopyBuffers",                       "none"),
++    _eglFunc("eglCreateContext",                     "none"),
++    _eglFunc("eglCreatePbufferSurface",              "none"),
++    _eglFunc("eglCreatePixmapSurface",               "none"),
++    _eglFunc("eglCreateWindowSurface",               "none"),
++    _eglFunc("eglDestroyContext",                    "none"),
++    _eglFunc("eglDestroySurface",                    "none"),
++    _eglFunc("eglGetConfigAttrib",                   "none"),
++    _eglFunc("eglGetConfigs",                        "none"),
++    _eglFunc("eglQueryContext",                      "none"),
++    _eglFunc("eglQuerySurface",                      "none"),
++    _eglFunc("eglSwapBuffers",                       "none"),
++    _eglFunc("eglWaitGL",                            "none"),
++    _eglFunc("eglWaitNative",                        "none"),
++    _eglFunc("eglTerminate",                         "none"),
++    _eglFunc("eglInitialize",                        "none"),
++
++    _eglFunc("eglGetCurrentDisplay",                 "none"),
++    _eglFunc("eglGetCurrentSurface",                 "none"),
++    _eglFunc("eglGetDisplay",                        "none"),
++    _eglFunc("eglGetError",                          "none"),
++    _eglFunc("eglGetProcAddress",                    "none"),
++    _eglFunc("eglMakeCurrent",                       "none"),
++    _eglFunc("eglQueryString",                       "none"),
++
++    # EGL_VERSION_1_1
++    _eglFunc("eglBindTexImage",                      "none"),
++    _eglFunc("eglReleaseTexImage",                   "none"),
++    _eglFunc("eglSurfaceAttrib",                     "none"),
++    _eglFunc("eglSwapInterval",                      "none"),
++
++    # EGL_VERSION_1_2
++    _eglFunc("eglCreatePbufferFromClientBuffer",     "none"),
++    _eglFunc("eglWaitClient",                        "none"),
++    _eglFunc("eglBindAPI",                           "none"),
++    _eglFunc("eglQueryAPI",                          "none"),
++    _eglFunc("eglReleaseThread",                     "none"),
++
++    # EGL_VERSION_1_4
++    _eglFunc("eglGetCurrentContext",                 "none"),
++
++    # EGL_VERSION_1_5
++    _eglFunc("eglCreateSync",                        "none"),
++    _eglFunc("eglDestroySync",                       "none"),
++    _eglFunc("eglClientWaitSync",                    "none"),
++    _eglFunc("eglGetSyncAttrib",                     "none"),
++    _eglFunc("eglCreateImage",                       "none"),
++    _eglFunc("eglDestroyImage",                      "none"),
++    _eglFunc("eglCreatePlatformWindowSurface",       "none"),
++    _eglFunc("eglCreatePlatformPixmapSurface",       "none"),
++    _eglFunc("eglWaitSync",                          "none"),
++    _eglFunc("eglGetPlatformDisplay",                "none"),
++
++    # EGL_EXT_platform_base
++    _eglFunc("eglCreatePlatformWindowSurfaceEXT",    "display"),
++    _eglFunc("eglCreatePlatformPixmapSurfaceEXT",    "display"),
++    _eglFunc("eglGetPlatformDisplayEXT",             "none"),
++
++    # TODO: Most of these extensions should be provided by the vendor
++    # libraries, not by libEGL. They're here now to make testing everything
++    # else easier.
++
++    # EGL_EXT_swap_buffers_with_damage
++    _eglFunc("eglSwapBuffersWithDamageEXT",          "display"),
++
++    # KHR_EXT_swap_buffers_with_damage
++    _eglFunc("eglSwapBuffersWithDamageKHR",          "display"),
++
++    # EGL_KHR_cl_event2
++    _eglFunc("eglCreateSync64KHR",                   "display"),
++
++    # EGL_KHR_fence_sync
++    _eglFunc("eglCreateSyncKHR",                     "display"),
++    _eglFunc("eglDestroySyncKHR",                    "display"),
++    _eglFunc("eglClientWaitSyncKHR",                 "display"),
++    _eglFunc("eglGetSyncAttribKHR",                  "display"),
++
++    # EGL_KHR_image
++    _eglFunc("eglCreateImageKHR",                    "display"),
++    _eglFunc("eglDestroyImageKHR",                   "display"),
++
++    # EGL_KHR_image_base
++    # eglCreateImageKHR already defined in EGL_KHR_image
++    # eglDestroyImageKHR already defined in EGL_KHR_image
++
++    # EGL_KHR_reusable_sync
++    _eglFunc("eglSignalSyncKHR",                     "display"),
++    # eglCreateSyncKHR already defined in EGL_KHR_fence_sync
++    # eglDestroySyncKHR already defined in EGL_KHR_fence_sync
++    # eglClientWaitSyncKHR already defined in EGL_KHR_fence_sync
++    # eglGetSyncAttribKHR already defined in EGL_KHR_fence_sync
++
++    # EGL_KHR_wait_sync
++    _eglFunc("eglWaitSyncKHR",                       "display"),
++
++    # EGL_MESA_drm_image
++    _eglFunc("eglCreateDRMImageMESA",                "display"),
++    _eglFunc("eglExportDRMImageMESA",                "display"),
++
++    # EGL_MESA_image_dma_buf_export
++    _eglFunc("eglExportDMABUFImageQueryMESA",        "display"),
++    _eglFunc("eglExportDMABUFImageMESA",             "display"),
++
++    # EGL_NOK_swap_region
++    _eglFunc("eglSwapBuffersRegionNOK",              "display"),
++
++    # EGL_NV_post_sub_buffer
++    _eglFunc("eglPostSubBufferNV",                   "display"),
++
++    # EGL_WL_bind_wayland_display
++    _eglFunc("eglCreateWaylandBufferFromImageWL",    "display"),
++    _eglFunc("eglUnbindWaylandDisplayWL",            "display"),
++    _eglFunc("eglQueryWaylandBufferWL",              "display"),
++    _eglFunc("eglBindWaylandDisplayWL",              "display"),
++
++    # EGL_CHROMIUM_get_sync_values
++    _eglFunc("eglGetSyncValuesCHROMIUM",             "display"),
++
++    # EGL_ANDROID_native_fence_sync
++    _eglFunc("eglDupNativeFenceFDANDROID",           "display"),
++)
++
+diff --git a/src/egl/generate/egl_other.xml b/src/egl/generate/egl_other.xml
+new file mode 100644
+index 0000000000..7fe3a9e272
+--- /dev/null
++++ b/src/egl/generate/egl_other.xml
+@@ -0,0 +1,47 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<registry>
++    <comment>
++        This file contains any EGL extension functions that are missing from
++        the normal egl.xml list.
++    </comment>
++    <commands namespace="EGL">
++        <!-- EGL_WL_bind_wayland_display -->
++        <command>
++            <proto>struct wl_buffer * <name>eglCreateWaylandBufferFromImageWL</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>EGLImage</ptype> <name>image</name></param>
++        </command>
++
++        <command>
++            <proto>EGLBoolean <name>eglUnbindWaylandDisplayWL</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>struct wl_display *</ptype> <name>display</name></param>
++        </command>
++
++        <command>
++            <proto>EGLBoolean <name>eglQueryWaylandBufferWL</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>struct wl_resource *</ptype> <name>buffer</name></param>
++            <param><ptype>EGLint</ptype> <name>attribute</name></param>
++            <param><ptype>EGLint *</ptype> <name>value</name></param>
++        </command>
++
++        <command>
++            <proto>EGLBoolean <name>eglBindWaylandDisplayWL</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
++            <param><ptype>struct wl_display *</ptype> <name>display</name></param>
++        </command>
++
++        <!-- EGL_CHROMIUM_get_sync_values -->
++        <command>
++            <proto>EGLBoolean <name>eglGetSyncValuesCHROMIUM</name></proto>
++            <param><ptype>EGLDisplay</ptype> <name>display</name></param>
++            <param><ptype>EGLSurface</ptype> <name>surface</name></param>
++            <param><ptype>EGLuint64KHR *</ptype> <name>ust</name></param>
++            <param><ptype>EGLuint64KHR *</ptype> <name>msc</name></param>
++            <param><ptype>EGLuint64KHR *</ptype> <name>sbc</name></param>
++        </command>
++    </commands>
++</registry>
++
++
+diff --git a/src/egl/generate/genCommon.py b/src/egl/generate/genCommon.py
+new file mode 100644
+index 0000000000..d493d7bf29
+--- /dev/null
++++ b/src/egl/generate/genCommon.py
+@@ -0,0 +1,223 @@
++#!/usr/bin/env python
++
++# (C) Copyright 2015, NVIDIA CORPORATION.
++# All Rights Reserved.
++#
++# Permission is hereby granted, free of charge, to any person obtaining a
++# copy of this software and associated documentation files (the "Software"),
++# to deal in the Software without restriction, including without limitation
++# on the rights to use, copy, modify, merge, publish, distribute, sub
++# license, and/or sell copies of the Software, and to permit persons to whom
++# the Software is furnished to do so, subject to the following conditions:
++#
++# The above copyright notice and this permission notice (including the next
++# paragraph) shall be included in all copies or substantial portions of the
++# Software.
++#
++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
++# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
++# IN THE SOFTWARE.
++#
++# Authors:
++#    Kyle Brenneman <kbrenneman@nvidia.com>
++
++import collections
++import re
++import sys
++import xml.etree.cElementTree as etree
++
++MAPI_TABLE_NUM_DYNAMIC = 4096
++
++_LIBRARY_FEATURE_NAMES = {
++    # libGL and libGLdiapatch both include every function.
++    "gl" : None,
++    "gldispatch" : None,
++    "opengl" : frozenset(( "GL_VERSION_1_0", "GL_VERSION_1_1",
++        "GL_VERSION_1_2", "GL_VERSION_1_3", "GL_VERSION_1_4", "GL_VERSION_1_5",
++        "GL_VERSION_2_0", "GL_VERSION_2_1", "GL_VERSION_3_0", "GL_VERSION_3_1",
++        "GL_VERSION_3_2", "GL_VERSION_3_3", "GL_VERSION_4_0", "GL_VERSION_4_1",
++        "GL_VERSION_4_2", "GL_VERSION_4_3", "GL_VERSION_4_4", "GL_VERSION_4_5",
++    )),
++    "glesv1" : frozenset(("GL_VERSION_ES_CM_1_0", "GL_OES_point_size_array")),
++    "glesv2" : frozenset(("GL_ES_VERSION_2_0", "GL_ES_VERSION_3_0",
++            "GL_ES_VERSION_3_1" "GL_ES_VERSION_3_2",
++    )),
++}
++
++def getFunctions(xmlFiles):
++    """
++    Reads an XML file and returns all of the functions defined in it.
++
++    xmlFile should be the path to Khronos's gl.xml file. The return value is a
++    sequence of FunctionDesc objects, ordered by slot number.
++    """
++    roots = [ etree.parse(xmlFile).getroot() for xmlFile in xmlFiles ]
++    return getFunctionsFromRoots(roots)
++
++def getFunctionsFromRoots(roots):
++    functions = {}
++    for root in roots:
++        for func in _getFunctionList(root):
++            functions[func.name] = func
++    functions = functions.values()
++
++    # Sort the function list by name.
++    functions = sorted(functions, key=lambda f: f.name)
++
++    # Assign a slot number to each function. This isn't strictly necessary,
++    # since you can just look at the index in the list, but it makes it easier
++    # to include the slot when formatting output.
++    for i in range(len(functions)):
++        functions[i] = functions[i]._replace(slot=i)
++
++    return functions
++
++def getExportNamesFromRoots(target, roots):
++    """
++    Goes through the <feature> tags from gl.xml and returns a set of OpenGL
++    functions that a library should export.
++
++    target should be one of "gl", "gldispatch", "opengl", "glesv1", or
++    "glesv2".
++    """
++    featureNames = _LIBRARY_FEATURE_NAMES[target]
++    if featureNames is None:
++        return set(func.name for func in getFunctionsFromRoots(roots))
++
++    names = set()
++    for root in roots:
++        features = []
++        for featElem in root.findall("feature"):
++            if featElem.get("name") in featureNames:
++                features.append(featElem)
++        for featElem in root.findall("extensions/extension"):
++            if featElem.get("name") in featureNames:
++                features.append(featElem)
++        for featElem in features:
++            for commandElem in featElem.findall("require/command"):
++                names.add(commandElem.get("name"))
++    return names
++
++class FunctionArg(collections.namedtuple("FunctionArg", "type name")):
++    @property
++    def dec(self):
++        """
++        Returns a "TYPE NAME" string, suitable for a function prototype.
++        """
++        rv = str(self.type)
++        if not rv.endswith("*"):
++            rv += " "
++        rv += self.name
++        return rv
++
++class FunctionDesc(collections.namedtuple("FunctionDesc", "name rt args slot")):
++    def hasReturn(self):
++        """
++        Returns true if the function returns a value.
++        """
++        return (self.rt != "void")
++
++    @property
++    def decArgs(self):
++        """
++        Returns a string with the types and names of the arguments, as you
++        would use in a function declaration.
++        """
++        if not self.args:
++            return "void"
++        else:
++            return ", ".join(arg.dec for arg in self.args)
++
++    @property
++    def callArgs(self):
++        """
++        Returns a string with the names of the arguments, as you would use in a
++        function call.
++        """
++        return ", ".join(arg.name for arg in self.args)
++
++    @property
++    def basename(self):
++        assert self.name.startswith("gl")
++        return self.name[2:]
++
++def _getFunctionList(root):
++    for elem in root.findall("commands/command"):
++        yield _parseCommandElem(elem)
++
++def _parseCommandElem(elem):
++    protoElem = elem.find("proto")
++    (rt, name) = _parseProtoElem(protoElem)
++
++    args = []
++    for ch in elem.findall("param"):
++        # <param> tags have the same format as a <proto> tag.
++        args.append(FunctionArg(*_parseProtoElem(ch)))
++    func = FunctionDesc(name, rt, tuple(args), slot=None)
++
++    return func
++
++def _parseProtoElem(elem):
++    # If I just remove the tags and string the text together, I'll get valid C code.
++    text = _flattenText(elem)
++    text = text.strip()
++    m = re.match(r"^(.+)\b(\w+)(?:\s*\[\s*(\d*)\s*\])?$", text, re.S)
++    if m:
++        typename = _fixupTypeName(m.group(1))
++        name = m.group(2)
++        if m.group(3):
++            # HACK: glPathGlyphIndexRangeNV defines an argument like this:
++            # GLuint baseAndCount[2]
++            # Convert it to a pointer and hope for the best.
++            typename += "*"
++        return (typename, name)
++    else:
++        raise ValueError("Can't parse element %r -> %r" % (elem, text))
++
++def _flattenText(elem):
++    """
++    Returns the text in an element and all child elements, with the tags
++    removed.
++    """
++    text = ""
++    if elem.text is not None:
++        text = elem.text
++    for ch in elem:
++        text += _flattenText(ch)
++        if ch.tail is not None:
++            text += ch.tail
++    return text
++
++def _fixupTypeName(typeName):
++    """
++    Converts a typename into a more consistent format.
++    """
++
++    rv = typeName.strip()
++
++    # Replace "GLvoid" with just plain "void".
++    rv = re.sub(r"\bGLvoid\b", "void", rv)
++
++    # Remove the vendor suffixes from types that have a suffix-less version.
++    rv = re.sub(r"\b(GLhalf|GLintptr|GLsizeiptr|GLint64|GLuint64)(?:ARB|EXT|NV|ATI)\b", r"\1", rv)
++
++    rv = re.sub(r"\bGLvoid\b", "void", rv)
++
++    # Clear out any leading and trailing whitespace.
++    rv = rv.strip()
++
++    # Remove any whitespace before a '*'
++    rv = re.sub(r"\s+\*", r"*", rv)
++
++    # Change "foo*" to "foo *"
++    rv = re.sub(r"([^\*])\*", r"\1 *", rv)
++
++    # Condense all whitespace into a single space.
++    rv = re.sub(r"\s+", " ", rv)
++
++    return rv
++
+diff --git a/src/egl/generate/gen_egl_dispatch.py b/src/egl/generate/gen_egl_dispatch.py
+new file mode 100755
+index 0000000000..eeb3f3f9a5
+--- /dev/null
++++ b/src/egl/generate/gen_egl_dispatch.py
+@@ -0,0 +1,250 @@
++#!/usr/bin/env python
++
++# (C) Copyright 2016, NVIDIA CORPORATION.
++# All Rights Reserved.
++#
++# Permission is hereby granted, free of charge, to any person obtaining a
++# copy of this software and associated documentation files (the "Software"),
++# to deal in the Software without restriction, including without limitation
++# on the rights to use, copy, modify, merge, publish, distribute, sub
++# license, and/or sell copies of the Software, and to permit persons to whom
++# the Software is furnished to do so, subject to the following conditions:
++#
++# The above copyright notice and this permission notice (including the next
++# paragraph) shall be included in all copies or substantial portions of the
++# Software.
++#
++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
++# IBM AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
++# IN THE SOFTWARE.
++#
++# Authors:
++#    Kyle Brenneman <kbrenneman@nvidia.com>
++
++"""
++Generates dispatch functions for EGL.
++
++The list of functions and arguments is read from the Khronos's XML files, with
++additional information defined in the module eglFunctionList.
++"""
++
++import argparse
++import collections
++import imp
++import sys
++import textwrap
++
++import genCommon
++
++def main():
++    parser = argparse.ArgumentParser()
++    parser.add_argument("target", choices=("header", "source"),
++            help="Whether to build the source or header file.")
++    parser.add_argument("func_list_file", help="The function list .py file.")
++    parser.add_argument("xml_files", nargs="+", help="The XML files with the EGL function lists.")
++
++    args = parser.parse_args()
++
++    # The function list is a Python module, but it's specified on the command
++    # line.
++    eglFunctionList = imp.load_source("eglFunctionList", args.func_list_file)
++
++    xmlFunctions = genCommon.getFunctions(args.xml_files)
++    xmlByName = dict((f.name, f) for f in xmlFunctions)
++    functions = []
++    for (name, eglFunc) in eglFunctionList.EGL_FUNCTIONS:
++        func = xmlByName[name]
++        eglFunc = fixupEglFunc(func, eglFunc)
++        functions.append((func, eglFunc))
++
++    # Sort the function list by name.
++    functions = sorted(functions, key=lambda f: f[0].name)
++
++    if args.target == "header":
++        text = generateHeader(functions)
++    elif args.target == "source":
++        text = generateSource(functions)
++    sys.stdout.write(text)
++
++def fixupEglFunc(func, eglFunc):
++    result = dict(eglFunc)
++    if result.get("prefix") is None:
++        result["prefix"] = ""
++
++    if result.get("extension") is not None:
++        text = "defined(" + result["extension"] + ")"
++        result["extension"] = text
++
++    if result["method"] in ("none", "custom"):
++        return result
++
++    if result["method"] not in ("display", "device", "current"):
++        raise ValueError("Invalid dispatch method %r for function %r" % (result["method"], func.name))
++
++    if func.hasReturn():
++        if result.get("retval") is None:
++            result["retval"] = getDefaultReturnValue(func.rt)
++
++    return result
++
++def generateHeader(functions):
++    text = textwrap.dedent(r"""
++    #ifndef G_EGLDISPATCH_STUBS_H
++    #define G_EGLDISPATCH_STUBS_H
++
++    #ifdef __cplusplus
++    extern "C" {
++    #endif
++
++    #include <EGL/egl.h>
++    #include <EGL/eglext.h>
++    #include "glvnd/libeglabi.h"
++
++    """.lstrip("\n"))
++
++    text += "enum {\n"
++    for (func, eglFunc) in functions:
++        text += generateGuardBegin(func, eglFunc)
++        text += "    __EGL_DISPATCH_" + func.name + ",\n"
++        text += generateGuardEnd(func, eglFunc)
++    text += "    __EGL_DISPATCH_COUNT\n"
++    text += "};\n"
++
++    for (func, eglFunc) in functions:
++        if eglFunc["inheader"]:
++            text += generateGuardBegin(func, eglFunc)
++            text += "{f.rt} EGLAPIENTRY {ex[prefix]}{f.name}({f.decArgs});\n".format(f=func, ex=eglFunc)
++            text += generateGuardEnd(func, eglFunc)
++
++    text += textwrap.dedent(r"""
++    #ifdef __cplusplus
++    }
++    #endif
++    #endif // G_EGLDISPATCH_STUBS_H
++    """)
++    return text
++
++def generateSource(functions):
++    # First, sort the function list by name.
++    text = ""
++    text += '#include "egldispatchstubs.h"\n'
++    text += '#include "g_egldispatchstubs.h"\n'
++    text += "\n"
++
++    for (func, eglFunc) in functions:
++        if eglFunc["method"] not in ("custom", "none"):
++            text += generateGuardBegin(func, eglFunc)
++            text += generateDispatchFunc(func, eglFunc)
++            text += generateGuardEnd(func, eglFunc)
++
++    text += "\n"
++    text += "const char * const __EGL_DISPATCH_FUNC_NAMES[__EGL_DISPATCH_COUNT + 1] = {\n"
++    for (func, eglFunc) in functions:
++        text += generateGuardBegin(func, eglFunc)
++        text += '    "' + func.name + '",\n'
++        text += generateGuardEnd(func, eglFunc)
++    text += "    NULL\n"
++    text += "};\n"
++
++    text += "const __eglMustCastToProperFunctionPointerType __EGL_DISPATCH_FUNCS[__EGL_DISPATCH_COUNT + 1] = {\n"
++    for (func, eglFunc) in functions:
++        text += generateGuardBegin(func, eglFunc)
++        if eglFunc["method"] != "none":
++            text += "    (__eglMustCastToProperFunctionPointerType) " + eglFunc.get("prefix", "") + func.name + ",\n"
++        else:
++            text += "    NULL, // " + func.name + "\n"
++        text += generateGuardEnd(func, eglFunc)
++    text += "    NULL\n"
++    text += "};\n"
++
++    return text
++
++def generateGuardBegin(func, eglFunc):
++    ext = eglFunc.get("extension")
++    if ext is not None:
++        return "#if " + ext + "\n"
++    else:
++        return ""
++
++def generateGuardEnd(func, eglFunc):
++    if eglFunc.get("extension") is not None:
++        return "#endif\n"
++    else:
++        return ""
++
++def generateDispatchFunc(func, eglFunc):
++    text = ""
++
++    if eglFunc.get("static"):
++        text += "static "
++    elif eglFunc.get("public"):
++        text += "PUBLIC "
++    text += textwrap.dedent(
++    r"""
++    {f.rt} EGLAPIENTRY {ef[prefix]}{f.name}({f.decArgs})
++    {{
++        typedef {f.rt} EGLAPIENTRY (* _pfn_{f.name})({f.decArgs});
++    """).lstrip("\n").format(f=func, ef=eglFunc)
++
++    if func.hasReturn():
++        text += "    {f.rt} _ret = {ef[retval]};\n".format(f=func, ef=eglFunc)
++
++    text += "    _pfn_{f.name} _ptr_{f.name} = (_pfn_{f.name}) ".format(f=func)
++    if eglFunc["method"] == "current":
++        text += "__eglDispatchFetchByCurrent(__EGL_DISPATCH_{f.name});\n".format(f=func)
++
++    elif eglFunc["method"] in ("display", "device"):
++        if eglFunc["method"] == "display":
++            lookupFunc = "__eglDispatchFetchByDisplay"
++            lookupType = "EGLDisplay"
++        else:
++            assert eglFunc["method"] == "device"
++            lookupFunc = "__eglDispatchFetchByDevice"
++            lookupType = "EGLDeviceEXT"
++
++        lookupArg = None
++        for arg in func.args:
++            if arg.type == lookupType:
++                lookupArg = arg.name
++                break
++        if lookupArg is None:
++            raise ValueError("Can't find %s argument for function %s" % (lookupType, func.name,))
++
++        text += "{lookupFunc}({lookupArg}, __EGL_DISPATCH_{f.name});\n".format(
++                f=func, lookupFunc=lookupFunc, lookupArg=lookupArg)
++    else:
++        raise ValueError("Unknown dispatch method: %r" % (eglFunc["method"],))
++
++    text += "    if(_ptr_{f.name} != NULL) {{\n".format(f=func)
++    text += "        "
++    if func.hasReturn():
++        text += "_ret = "
++    text += "_ptr_{f.name}({f.callArgs});\n".format(f=func)
++    text += "    }\n"
++
++    if func.hasReturn():
++        text += "    return _ret;\n"
++    text += "}\n"
++    return text
++
++def getDefaultReturnValue(typename):
++    if typename.endswith("*"):
++        return "NULL"
++    elif typename == "EGLDisplay":
++        return "EGL_NO_DISPLAY"
++    elif typename == "EGLContext":
++        return "EGL_NO_CONTEXT"
++    elif typename == "EGLSurface":
++        return "EGL_NO_SURFACE"
++    elif typename == "EGLBoolean":
++        return "EGL_FALSE";
++
++    return "0"
++
++if __name__ == "__main__":
++    main()
++
+diff --git a/src/egl/main/50_mesa.json b/src/egl/main/50_mesa.json
+new file mode 100644
+index 0000000000..8aaaa100ff
+--- /dev/null
++++ b/src/egl/main/50_mesa.json
+@@ -0,0 +1,6 @@
++{
++    "file_format_version" : "1.0.0",
++    "ICD" : {
++        "library_path" : "libEGL_mesa.so.0"
++    }
++}
+diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
+index cab05c2301..5f21f3457d 100644
+--- a/src/egl/main/eglapi.c
++++ b/src/egl/main/eglapi.c
+@@ -651,7 +651,11 @@ eglQueryString(EGLDisplay dpy, EGLint name)
+    _EGLDriver *drv;
+ 
+    if (dpy == EGL_NO_DISPLAY && name == EGL_EXTENSIONS) {
+-      RETURN_EGL_SUCCESS(NULL, _eglGlobal.ClientExtensionString);
++      const char *ret = _eglGetClientExtensionString();
++      if (ret != NULL)
++         RETURN_EGL_SUCCESS(NULL, ret);
++      else
++         RETURN_EGL_ERROR(NULL, EGL_BAD_ALLOC, NULL);
+    }
+ 
+    disp = _eglLockDisplay(dpy);
+diff --git a/src/egl/main/egldispatchstubs.c b/src/egl/main/egldispatchstubs.c
+new file mode 100644
+index 0000000000..e02abd7a9e
+--- /dev/null
++++ b/src/egl/main/egldispatchstubs.c
+@@ -0,0 +1,110 @@
++#include "egldispatchstubs.h"
++#include "g_egldispatchstubs.h"
++
++#include <string.h>
++
++#include "eglcurrent.h"
++
++static const __EGLapiExports *exports;
++
++const int __EGL_DISPATCH_FUNC_COUNT = __EGL_DISPATCH_COUNT;
++int __EGL_DISPATCH_FUNC_INDICES[__EGL_DISPATCH_COUNT + 1];
++
++static int FindProcIndex(const char *name)
++{
++    unsigned first = 0;
++    unsigned last = __EGL_DISPATCH_COUNT - 1;
++
++    while (first <= last) {
++        unsigned middle = (first + last) / 2;
++        int comp = strcmp(name,
++                          __EGL_DISPATCH_FUNC_NAMES[middle]);
++
++        if (comp > 0)
++            first = middle + 1;
++        else if (comp < 0)
++            last = middle - 1;
++        else
++            return middle;
++    }
++
++    /* Just point to the dummy entry at the end of the respective table */
++    return __EGL_DISPATCH_COUNT;
++}
++
++void __eglInitDispatchStubs(const __EGLapiExports *exportsTable)
++{
++    int i;
++    exports = exportsTable;
++    for (i=0; i<__EGL_DISPATCH_FUNC_COUNT; i++) {
++        __EGL_DISPATCH_FUNC_INDICES[i] = -1;
++    }
++}
++
++void __eglSetDispatchIndex(const char *name, int dispatchIndex)
++{
++    int index = FindProcIndex(name);
++    __EGL_DISPATCH_FUNC_INDICES[index] = dispatchIndex;
++}
++
++void *__eglDispatchFindDispatchFunction(const char *name)
++{
++    int index = FindProcIndex(name);
++    return (void *) __EGL_DISPATCH_FUNCS[index];
++}
++
++static __eglMustCastToProperFunctionPointerType FetchVendorFunc(__EGLvendorInfo *vendor,
++        int index, EGLint errorCode)
++{
++    __eglMustCastToProperFunctionPointerType func = NULL;
++
++    if (vendor != NULL) {
++        func = exports->fetchDispatchEntry(vendor, __EGL_DISPATCH_FUNC_INDICES[index]);
++    }
++    if (func == NULL) {
++        if (errorCode != EGL_SUCCESS) {
++            _eglError(errorCode, __EGL_DISPATCH_FUNC_NAMES[index]);
++        }
++        return NULL;
++    }
++
++    if (!exports->setLastVendor(vendor)) {
++        // Don't bother trying to set an error code in libglvnd. If
++        // setLastVendor failed, then setEGLError would also fail.
++        _eglError(errorCode, __EGL_DISPATCH_FUNC_NAMES[index]);
++        return NULL;
++    }
++
++    return func;
++}
++
++__eglMustCastToProperFunctionPointerType __eglDispatchFetchByCurrent(int index)
++{
++    __EGLvendorInfo *vendor;
++
++    // Note: This is only used for the eglWait* functions. For those, if
++    // there's no current context, then they're supposed to do nothing but
++    // return success.
++    exports->threadInit();
++    vendor = exports->getCurrentVendor();
++    return FetchVendorFunc(vendor, index, EGL_SUCCESS);
++}
++
++__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDisplay(EGLDisplay dpy, int index)
++{
++    __EGLvendorInfo *vendor;
++
++    exports->threadInit();
++    vendor = exports->getVendorFromDisplay(dpy);
++    return FetchVendorFunc(vendor, index, EGL_BAD_DISPLAY);
++}
++
++__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDevice(EGLDeviceEXT dev, int index)
++{
++    __EGLvendorInfo *vendor;
++
++    exports->threadInit();
++    vendor = exports->getVendorFromDevice(dev);
++    return FetchVendorFunc(vendor, index, EGL_BAD_DEVICE_EXT);
++}
++
+diff --git a/src/egl/main/egldispatchstubs.h b/src/egl/main/egldispatchstubs.h
+new file mode 100644
+index 0000000000..7861ea5e61
+--- /dev/null
++++ b/src/egl/main/egldispatchstubs.h
+@@ -0,0 +1,26 @@
++#ifndef EGLDISPATCHSTUBS_H
++#define EGLDISPATCHSTUBS_H
++
++#include "glvnd/libeglabi.h"
++
++// These variables are all generated along with the dispatch stubs.
++extern const int __EGL_DISPATCH_FUNC_COUNT;
++extern const char * const __EGL_DISPATCH_FUNC_NAMES[];
++extern int __EGL_DISPATCH_FUNC_INDICES[];
++extern const __eglMustCastToProperFunctionPointerType __EGL_DISPATCH_FUNCS[];
++
++void __eglInitDispatchStubs(const __EGLapiExports *exportsTable);
++void __eglSetDispatchIndex(const char *name, int index);
++
++/**
++ * Returns the dispatch function for the given name, or \c NULL if the function
++ * isn't supported.
++ */
++void *__eglDispatchFindDispatchFunction(const char *name);
++
++// Helper functions used by the generated stubs.
++__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDisplay(EGLDisplay dpy, int index);
++__eglMustCastToProperFunctionPointerType __eglDispatchFetchByDevice(EGLDeviceEXT dpy, int index);
++__eglMustCastToProperFunctionPointerType __eglDispatchFetchByCurrent(int index);
++
++#endif // EGLDISPATCHSTUBS_H
+diff --git a/src/egl/main/eglglobals.c b/src/egl/main/eglglobals.c
+index cb41063e32..baf96bb1ec 100644
+--- a/src/egl/main/eglglobals.c
++++ b/src/egl/main/eglglobals.c
+@@ -29,6 +29,8 @@
+ 
+ 
+ #include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
+ #include <assert.h>
+ #include "c11/threads.h"
+ 
+@@ -50,9 +52,13 @@ struct _egl_global _eglGlobal =
+       _eglFiniDisplay
+    },
+ 
+-   /* ClientExtensionString */
++   /* ClientOnlyExtensionString */
+    "EGL_EXT_client_extensions"
+    " EGL_EXT_platform_base"
++   " EGL_KHR_client_get_all_proc_addresses"
++   " EGL_KHR_debug",
++
++   /* PlatformExtensionString */
+ #ifdef HAVE_WAYLAND_PLATFORM
+    " EGL_EXT_platform_wayland"
+ #endif
+@@ -65,8 +71,9 @@ struct _egl_global _eglGlobal =
+ #ifdef HAVE_SURFACELESS_PLATFORM
+    " EGL_MESA_platform_surfaceless"
+ #endif
+-   " EGL_KHR_client_get_all_proc_addresses"
+-   " EGL_KHR_debug",
++   "",
++
++   NULL, /* ClientExtensionsString */
+ 
+    NULL, /* debugCallback */
+    _EGL_DEBUG_BIT_CRITICAL | _EGL_DEBUG_BIT_ERROR, /* debugTypesEnabled */
+@@ -101,3 +108,37 @@ _eglAddAtExitCall(void (*func)(void))
+       mtx_unlock(_eglGlobal.Mutex);
+    }
+ }
++
++const char *
++_eglGetClientExtensionString(void)
++{
++   const char *ret;
++
++   mtx_lock(_eglGlobal.Mutex);
++
++   if (_eglGlobal.ClientExtensionString == NULL) {
++      size_t clientLen = strlen(_eglGlobal.ClientOnlyExtensionString);
++      size_t platformLen = strlen(_eglGlobal.PlatformExtensionString);
++
++      _eglGlobal.ClientExtensionString = (char *) malloc(clientLen + platformLen + 1);
++      if (_eglGlobal.ClientExtensionString != NULL) {
++         char *ptr = _eglGlobal.ClientExtensionString;
++
++         memcpy(ptr, _eglGlobal.ClientOnlyExtensionString, clientLen);
++         ptr += clientLen;
++
++         if (platformLen > 0) {
++            // Note that if PlatformExtensionString is not empty, then it will
++            // already have a leading space.
++            assert(_eglGlobal.PlatformExtensionString[0] == ' ');
++            memcpy(ptr, _eglGlobal.PlatformExtensionString, platformLen);
++            ptr += platformLen;
++         }
++         *ptr = '\0';
++      }
++   }
++   ret = _eglGlobal.ClientExtensionString;
++
++   mtx_unlock(_eglGlobal.Mutex);
++   return ret;
++}
+diff --git a/src/egl/main/eglglobals.h b/src/egl/main/eglglobals.h
+index ec4f3d04a3..c6ef59d482 100644
+--- a/src/egl/main/eglglobals.h
++++ b/src/egl/main/eglglobals.h
+@@ -57,7 +57,15 @@ struct _egl_global
+    EGLint NumAtExitCalls;
+    void (*AtExitCalls[10])(void);
+ 
+-   const char *ClientExtensionString;
++   /*
++    * Under libglvnd, the client extension string has to be split into two
++    * strings, one for platform extensions, and one for everything else. So,
++    * define separate strings for them. _eglGetClientExtensionString will
++    * concatenate them together for a non-libglvnd build.
++    */
++   const char *ClientOnlyExtensionString;
++   const char *PlatformExtensionString;
++   char *ClientExtensionString;
+ 
+    EGLDEBUGPROCKHR debugCallback;
+    unsigned int debugTypesEnabled;
+@@ -76,4 +84,7 @@ static inline unsigned int DebugBitFromType(EGLenum type)
+    return (1 << (type - EGL_DEBUG_MSG_CRITICAL_KHR));
+ }
+ 
++extern const char *
++_eglGetClientExtensionString(void);
++
+ #endif /* EGLGLOBALS_INCLUDED */
+diff --git a/src/egl/main/eglglvnd.c b/src/egl/main/eglglvnd.c
+new file mode 100644
+index 0000000000..6b984ed6c2
+--- /dev/null
++++ b/src/egl/main/eglglvnd.c
+@@ -0,0 +1,82 @@
++#include <string.h>
++#include <assert.h>
++
++#include <glvnd/libeglabi.h>
++
++#include "eglcurrent.h"
++#include "egldispatchstubs.h"
++#include "eglglobals.h"
++
++static const __EGLapiExports *__eglGLVNDApiExports = NULL;
++
++static const char * EGLAPIENTRY
++__eglGLVNDQueryString(EGLDisplay dpy, EGLenum name)
++{
++   // For client extensions, return the list of non-platform extensions. The
++   // platform extensions are returned by __eglGLVNDGetVendorString.
++   if (dpy == EGL_NO_DISPLAY && name == EGL_EXTENSIONS)
++      return _eglGlobal.ClientOnlyExtensionString;
++
++   // For everything else, forward to the normal eglQueryString function.
++   return eglQueryString(dpy, name);
++}
++
++static const char *
++__eglGLVNDGetVendorString(int name)
++{
++   if (name == __EGL_VENDOR_STRING_PLATFORM_EXTENSIONS) {
++      const char *str = _eglGlobal.PlatformExtensionString;
++      // The platform extension string may have a leading space. If it does,
++      // then skip over it.
++      while (*str == ' ') {
++         str++;
++      }
++      return str;
++   }
++
++   return NULL;
++}
++
++static EGLDisplay
++__eglGLVNDGetPlatformDisplay(EGLenum platform, void *native_display,
++      const EGLAttrib *attrib_list)
++{
++   if (platform == EGL_NONE) {
++      assert(native_display == (void *) EGL_DEFAULT_DISPLAY);
++      assert(attrib_list == NULL);
++      return eglGetDisplay((EGLNativeDisplayType) native_display);
++   } else {
++      return eglGetPlatformDisplay(platform, native_display, attrib_list);
++   }
++}
++
++static void *
++__eglGLVNDGetProcAddress(const char *procName)
++{
++   if (strcmp(procName, "eglQueryString") == 0)
++      return (void *) __eglGLVNDQueryString;
++
++   return (void *) eglGetProcAddress(procName);
++}
++
++EGLAPI EGLBoolean
++__egl_Main(uint32_t version, const __EGLapiExports *exports,
++     __EGLvendorInfo *vendor, __EGLapiImports *imports)
++{
++   if (EGL_VENDOR_ABI_GET_MAJOR_VERSION(version) !=
++       EGL_VENDOR_ABI_MAJOR_VERSION)
++      return EGL_FALSE;
++
++   __eglGLVNDApiExports = exports;
++   __eglInitDispatchStubs(exports);
++
++   imports->getPlatformDisplay = __eglGLVNDGetPlatformDisplay;
++   imports->getSupportsAPI = _eglIsApiValid;
++   imports->getVendorString = __eglGLVNDGetVendorString;
++   imports->getProcAddress = __eglGLVNDGetProcAddress;
++   imports->getDispatchAddress = __eglDispatchFindDispatchFunction;
++   imports->setDispatchIndex = __eglSetDispatchIndex;
++
++   return EGL_TRUE;
++}
++
+-- 
+2.11.0
+
diff --git a/abs/core/mesa/0001-Fix-linkage-against-shared-glapi.patch b/abs/core/mesa/0001-Fix-linkage-against-shared-glapi.patch
new file mode 100644
index 0000000..7f8f716
--- /dev/null
+++ b/abs/core/mesa/0001-Fix-linkage-against-shared-glapi.patch
@@ -0,0 +1,26 @@
+From 1b5a187c3c31513ae39cd2a917a3234c2c5f87fc Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Wed, 12 Oct 2016 13:41:33 -0400
+Subject: [PATCH] Fix linkage against shared glapi
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+ src/gallium/targets/osmesa/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/gallium/targets/osmesa/Makefile.am b/src/gallium/targets/osmesa/Makefile.am
+index 5d39486..04add87 100644
+--- a/src/gallium/targets/osmesa/Makefile.am
++++ b/src/gallium/targets/osmesa/Makefile.am
+@@ -63,7 +63,7 @@ lib@OSMESA_LIB@_la_LIBADD = \
+ 	$(top_builddir)/src/gallium/drivers/trace/libtrace.la \
+ 	$(top_builddir)/src/gallium/drivers/softpipe/libsoftpipe.la \
+ 	$(top_builddir)/src/gallium/state_trackers/osmesa/libosmesa.la \
+-	$(top_builddir)/src/mapi/glapi/libglapi.la \
++	$(top_builddir)/src/mapi/shared-glapi/libglapi.la \
+ 	$(SHARED_GLAPI_LIB) \
+ 	$(OSMESA_LIB_DEPS) \
+ 	$(CLOCK_LIB)
+-- 
+2.9.3
+
diff --git a/abs/core/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch b/abs/core/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch
new file mode 100644
index 0000000..376828e
--- /dev/null
+++ b/abs/core/mesa/0001-glapi-Link-with-glapi-when-built-shared.patch
@@ -0,0 +1,82 @@
+From 16875ea5b9170f2213fd486d763f27a9d6dfc1b5 Mon Sep 17 00:00:00 2001
+From: Nicolas Chauvet <kwizart@gmail.com>
+Date: Tue, 25 Oct 2016 09:35:13 +0200
+Subject: [PATCH 1/3] glapi: Link with glapi when built shared
+
+This patch explicitly links to libglapi when built shared.
+This was specially needed to avoid undefined non-weak-symbol as shown
+with:
+
+ldd  -r /usr/lib64/dri/i915_dri.so
+	linux-vdso.so.1 (0x00007fff821f4000)
+	libdrm_intel.so.1 => /lib64/libdrm_intel.so.1 (0x00007f6adf2c7000)
+	libdrm_nouveau.so.2 => /lib64/libdrm_nouveau.so.2 (0x00007f6adf0be000)
+	libdrm_radeon.so.1 => /lib64/libdrm_radeon.so.1 (0x00007f6adeeb2000)
+	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f6adec8b000)
+	libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f6adea7c000)
+	libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f6ade84f000)
+	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6ade633000)
+	libdl.so.2 => /lib64/libdl.so.2 (0x00007f6ade42f000)
+	libm.so.6 => /lib64/libm.so.6 (0x00007f6ade125000)
+	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6addf0e000)
+	libc.so.6 => /lib64/libc.so.6 (0x00007f6addb4c000)
+	/lib64/ld-linux-x86-64.so.2 (0x000056274e913000)
+	libpciaccess.so.0 => /lib64/libpciaccess.so.0 (0x00007f6add941000)
+	libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f6add6ce000)
+undefined symbol: _glapi_get_dispatch_table_size	(/usr/lib64/dri/i915_dri.so)
+undefined symbol: _glapi_get_context	(/usr/lib64/dri/i915_dri.so)
+undefined symbol: _glapi_add_dispatch	(/usr/lib64/dri/i915_dri.so)
+undefined symbol: _glapi_check_multithread	(/usr/lib64/dri/i915_dri.so)
+undefined symbol: _glapi_tls_Context	(/usr/lib64/dri/i915_dri.so)
+undefined symbol: _glapi_set_context	(/usr/lib64/dri/i915_dri.so)
+undefined symbol: _glapi_set_dispatch	(/usr/lib64/dri/i915_dri.so)
+undefined symbol: _glapi_tls_Dispatch	(/usr/lib64/dri/i915_dri.so)
+
+v3: Add gallium counterpart for radeon cases
+Reported-by: Jonathan Dieter <jdieter@lesbg.com>
+
+v2: Add Bugzilla and Signed-off
+
+Fixes: 0cbc90c57c ("mesa: dri: Add shared glapi to LIBADD on Android")
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98428
+Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
+---
+ src/gallium/targets/dri/Makefile.am | 2 --
+ src/mesa/drivers/dri/Makefile.am    | 3 ---
+ 2 files changed, 5 deletions(-)
+
+diff --git a/src/gallium/targets/dri/Makefile.am b/src/gallium/targets/dri/Makefile.am
+index bca747f..05f6c8c 100644
+--- a/src/gallium/targets/dri/Makefile.am
++++ b/src/gallium/targets/dri/Makefile.am
+@@ -1,10 +1,8 @@
+ include $(top_srcdir)/src/gallium/Automake.inc
+ 
+-if HAVE_ANDROID
+ if HAVE_SHARED_GLAPI
+ SHARED_GLAPI_LIB = $(top_builddir)/src/mapi/shared-glapi/libglapi.la
+ endif
+-endif
+ 
+ AM_CFLAGS = \
+ 	-I$(top_srcdir)/src/mapi \
+diff --git a/src/mesa/drivers/dri/Makefile.am b/src/mesa/drivers/dri/Makefile.am
+index 1c6dd08..8e68fc0 100644
+--- a/src/mesa/drivers/dri/Makefile.am
++++ b/src/mesa/drivers/dri/Makefile.am
+@@ -6,12 +6,9 @@ MEGADRIVERS_DEPS =
+ 
+ SUBDIRS+=common
+ 
+-# On Android, we need to explicitly link to libglapi.so.
+-if HAVE_ANDROID
+ if HAVE_SHARED_GLAPI
+ SHARED_GLAPI_LIB = $(top_builddir)/src/mapi/shared-glapi/libglapi.la
+ endif
+-endif
+ 
+ if HAVE_I915_DRI
+ SUBDIRS += i915
+-- 
+2.7.4
+
diff --git a/abs/core/mesa/0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch b/abs/core/mesa/0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch
deleted file mode 100644
index 8f8c536..0000000
--- a/abs/core/mesa/0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 0247e5ee3edd546b8598082d5b45d110f61853d0 Mon Sep 17 00:00:00 2001
-From: Martin Peres <martin.peres@linux.intel.com>
-Date: Thu, 6 Oct 2016 17:07:22 +0300
-Subject: [PATCH 1/2] loader/dri3: add get_dri_screen() to the vtable
-
-This allows querying the current active screen from the
-loader's common code.
-
-Cc: mesa-stable@lists.freedesktop.org
-Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
-Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
----
- src/egl/drivers/dri2/platform_x11_dri3.c | 12 ++++++++++++
- src/glx/dri3_glx.c                       | 11 +++++++++++
- src/loader/loader_dri3_helper.h          |  1 +
- 3 files changed, 24 insertions(+)
-
-diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c b/src/egl/drivers/dri2/platform_x11_dri3.c
-index 31649fe..d93f5bc 100644
---- a/src/egl/drivers/dri2/platform_x11_dri3.c
-+++ b/src/egl/drivers/dri2/platform_x11_dri3.c
-@@ -103,6 +103,17 @@ egl_dri3_get_dri_context(struct loader_dri3_drawable *draw)
-    return dri2_ctx->dri_context;
- }
- 
-+static __DRIscreen *
-+egl_dri3_get_dri_screen(struct loader_dri3_drawable *draw)
-+{
-+   _EGLContext *ctx = _eglGetCurrentContext();
-+   struct dri2_egl_context *dri2_ctx;
-+   if (!ctx)
-+      return NULL;
-+   dri2_ctx = dri2_egl_context(ctx);
-+   return dri2_egl_display(dri2_ctx->base.Resource.Display)->dri_screen;
-+}
-+
- static void
- egl_dri3_flush_drawable(struct loader_dri3_drawable *draw, unsigned flags)
- {
-@@ -119,6 +130,7 @@ static struct loader_dri3_vtable egl_dri3_vtable = {
-    .set_drawable_size = egl_dri3_set_drawable_size,
-    .in_current_context = egl_dri3_in_current_context,
-    .get_dri_context = egl_dri3_get_dri_context,
-+   .get_dri_screen = egl_dri3_get_dri_screen,
-    .flush_drawable = egl_dri3_flush_drawable,
-    .show_fps = NULL,
- };
-diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c
-index 90d7bba..51b6b1c 100644
---- a/src/glx/dri3_glx.c
-+++ b/src/glx/dri3_glx.c
-@@ -132,6 +132,16 @@ glx_dri3_get_dri_context(struct loader_dri3_drawable *draw)
-    return (gc != &dummyContext) ? dri3Ctx->driContext : NULL;
- }
- 
-+static __DRIscreen *
-+glx_dri3_get_dri_screen(struct loader_dri3_drawable *draw)
-+{
-+   struct glx_context *gc = __glXGetCurrentContext();
-+   struct dri3_context *pcp = (struct dri3_context *) gc;
-+   struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc;
-+
-+   return (gc != &dummyContext && psc) ? psc->driScreen : NULL;
-+}
-+
- static void
- glx_dri3_flush_drawable(struct loader_dri3_drawable *draw, unsigned flags)
- {
-@@ -169,6 +179,7 @@ static struct loader_dri3_vtable glx_dri3_vtable = {
-    .set_drawable_size = glx_dri3_set_drawable_size,
-    .in_current_context = glx_dri3_in_current_context,
-    .get_dri_context = glx_dri3_get_dri_context,
-+   .get_dri_screen = glx_dri3_get_dri_screen,
-    .flush_drawable = glx_dri3_flush_drawable,
-    .show_fps = glx_dri3_show_fps,
- };
-diff --git a/src/loader/loader_dri3_helper.h b/src/loader/loader_dri3_helper.h
-index 5b8fd1d..658e190 100644
---- a/src/loader/loader_dri3_helper.h
-+++ b/src/loader/loader_dri3_helper.h
-@@ -103,6 +103,7 @@ struct loader_dri3_vtable {
-    void (*set_drawable_size)(struct loader_dri3_drawable *, int, int);
-    bool (*in_current_context)(struct loader_dri3_drawable *);
-    __DRIcontext *(*get_dri_context)(struct loader_dri3_drawable *);
-+   __DRIscreen *(*get_dri_screen)(struct loader_dri3_drawable *);
-    void (*flush_drawable)(struct loader_dri3_drawable *, unsigned);
-    void (*show_fps)(struct loader_dri3_drawable *, uint64_t);
- };
--- 
-2.10.0
-
diff --git a/abs/core/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch b/abs/core/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
new file mode 100644
index 0000000..f3b0f99
--- /dev/null
+++ b/abs/core/mesa/0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
@@ -0,0 +1,33 @@
+From 2d4094c2caad6cef2f5544b3966fcc37ceb32036 Mon Sep 17 00:00:00 2001
+From: Kyle Brenneman <kbrenneman@nvidia.com>
+Date: Thu, 5 Jan 2017 14:29:47 -0700
+Subject: [PATCH 2/2] fixup! EGL: Implement the libglvnd interface for EGL (v2)
+
+---
+ src/egl/generate/eglFunctionList.py | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/egl/generate/eglFunctionList.py b/src/egl/generate/eglFunctionList.py
+index b19b5f7193..80cb83437c 100644
+--- a/src/egl/generate/eglFunctionList.py
++++ b/src/egl/generate/eglFunctionList.py
+@@ -53,12 +53,14 @@ method values:
+     Select the vendor that owns the current context.
+ """
+ 
+-def _eglFunc(name, method, static=False, public=False, inheader=None, prefix="", extension=None, retval=None):
++def _eglFunc(name, method, static=None, public=False, inheader=None, prefix="dispatch_", extension=None, retval=None):
+     """
+     A convenience function to define an entry in the EGL function list.
+     """
++    if static is None:
++        static = (not public and method != "custom")
+     if inheader is None:
+-        inheader = (not public)
++        inheader = (not static)
+     values = {
+         "method" : method,
+         "prefix" : prefix,
+-- 
+2.11.0
+
diff --git a/abs/core/mesa/0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch b/abs/core/mesa/0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch
deleted file mode 100644
index 893872b..0000000
--- a/abs/core/mesa/0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From a599b1c2037ac8aca6c92350c8a7b3e42c81deaa Mon Sep 17 00:00:00 2001
-From: Martin Peres <martin.peres@linux.intel.com>
-Date: Thu, 6 Oct 2016 17:10:35 +0300
-Subject: [PATCH 2/2] loader/dri3: import prime buffers in the currently-bound
- screen
-
-This tries to mirrors the codepath taken by DRI2 in IntelSetTexBuffer2()
-and fixes many applications when using DRI3:
- - Totem with libva on hw-accelerated decoding
- - obs-studio, using Window Capture (Xcomposite) as a Source
- - gstreamer with VAAPI
-
-v2:
- - introduce get_dri_screen() in the dri3 loader's vtable (krh)
-
-Tested-by: Timo Aaltonen <tjaalton@ubuntu.com>
-Tested-by: Ionut Biru <biru.ionut@gmail.com>
-Cc: mesa-stable@lists.freedesktop.org
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71759
-Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
-Signed-off-by: Martin Peres <martin.peres@linux.intel.com>
----
- src/loader/loader_dri3_helper.c | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
-index 3ce0352..8179297 100644
---- a/src/loader/loader_dri3_helper.c
-+++ b/src/loader/loader_dri3_helper.c
-@@ -1117,6 +1117,7 @@ dri3_get_pixmap_buffer(__DRIdrawable *driDrawable, unsigned int format,
-    xcb_sync_fence_t                     sync_fence;
-    struct xshmfence                     *shm_fence;
-    int                                  fence_fd;
-+   __DRIscreen                          *cur_screen;
- 
-    if (buffer)
-       return buffer;
-@@ -1147,8 +1148,17 @@ dri3_get_pixmap_buffer(__DRIdrawable *driDrawable, unsigned int format,
-    if (!bp_reply)
-       goto no_image;
- 
-+   /* Get the currently-bound screen or revert to using the drawable's screen if
-+    * no contexts are currently bound. The latter case is at least necessary for
-+    * obs-studio, when using Window Capture (Xcomposite) as a Source.
-+    */
-+   cur_screen = draw->vtable->get_dri_screen(draw);
-+   if (!cur_screen) {
-+       cur_screen = draw->dri_screen;
-+   }
-+
-    buffer->image = loader_dri3_create_image(draw->conn, bp_reply, format,
--                                            draw->dri_screen, draw->ext->image,
-+                                            cur_screen, draw->ext->image,
-                                             buffer);
-    if (!buffer->image)
-       goto no_image;
--- 
-2.10.0
-
diff --git a/abs/core/mesa/PKGBUILD b/abs/core/mesa/PKGBUILD
index 16ab271..5b30ea2 100644
--- a/abs/core/mesa/PKGBUILD
+++ b/abs/core/mesa/PKGBUILD
@@ -3,48 +3,54 @@
 # Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
 pkgbase=mesa
-pkgname=('opencl-mesa' 'vulkan-intel' 'libva-mesa-driver' 'mesa-vdpau' 'mesa' 'mesa-libgl')
-pkgver=12.0.3
-pkgrel=3
+pkgname=('opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
+pkgver=17.0.2
+pkgrel=2
 arch=('i686' 'x86_64')
 makedepends=('python2-mako' 'libxml2' 'libx11' 'glproto' 'libdrm' 'dri2proto' 'dri3proto' 'presentproto' 
              'libxshmfence' 'libxxf86vm' 'libxdamage' 'libvdpau' 'libva' 'wayland' 'elfutils' 'llvm'
-             'systemd' 'libomxil-bellagio' 'libgcrypt' 'libclc' 'clang')
+             'libomxil-bellagio' 'libclc' 'clang' 'libglvnd')
 url="http://mesa3d.sourceforge.net"
 license=('custom')
-source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/mesa-${pkgver}.tar.xz{,.sig}
+source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
         LICENSE
         remove-libpthread-stubs.patch
-        0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch
-        0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch
-        llvm-39.patch)
-sha256sums=('1dc86dd9b51272eee1fad3df65e18cda2e556ef1bc0b6e07cd750b9757f493b1'
+        0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
+        0001-Fix-linkage-against-shared-glapi.patch
+        0001-glapi-Link-with-glapi-when-built-shared.patch
+        0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
+        glvnd-fix-gl-dot-pc.patch)
+sha256sums=('f8f191f909e01e65de38d5bdea5fb057f21649a3aed20948be02348e77a689d4'
             'SKIP'
             '7fdc119cf53c8ca65396ea73f6d10af641ba41ea1dd2bd44a824726e01c8b3f2'
-            'd82c329e89754266eb1538df29b94d33692a66e3b6882b2cee78f4d5aab4a39c'
-            '52eb98eb6c9c644383d9743692aea302d84c4f89cfaa7a276b9276befc2d9780'
-            '96ad07e241d16802b14b14ca3d6965fa7f4f4b8c678d62ba375291910dce3b4a'
-            '9156cb5cbfe287ecaeb4c97af44eaa677d28d3b659d309a6c5706bc9eefbfa16')
+            '75ab53ad44b95204c788a2988e97a5cb963bdbf6072a5466949a2afb79821c8f'
+            '1d3475dc2f4f3e450cf313130d3ce965f933f396058828fa843c0df8115feeb9'
+            'c68d1522f9bce4ce31c92aa7a688da49f13043f5bb2254795b76dea8f47130b7'
+            '064dcd5a3ab1b7c23383e2cafbd37859e4c353f8839671d9695c6f7c2ef3260b'
+            '81d0ced62f61677ea0cf5f69a491093409fa1370f2ef045c41106ca8bf9c46f6'
+            '64a77944a28026b066c1682c7258d02289d257b24b6f173a9f7580c48beed966')
 validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov <emil.l.velikov@gmail.com>
 
 prepare() {
-  cd ${srcdir}/?esa-*
-
-  patch -Np0 -i ../llvm-39.patch
+  cd ${srcdir}/mesa-${pkgver}
 
   # Now mesa checks for libpthread-stubs - so remove the check
   patch -Np1 -i ../remove-libpthread-stubs.patch
   
-  # fix FS#50240 - https://bugs.freedesktop.org/show_bug.cgi?id=71759
-  # merged upstream
-  patch -Np1 -i ../0001-loader-dri3-add-get_dri_screen-to-the-vtable.patch
-  patch -Np1 -i ../0002-loader-dri3-import-prime-buffers-in-the-currently-bo.patch
+  # glvnd support patches - from Fedora
+  # https://patchwork.freedesktop.org/series/12354/, v3 & v4
+  patch -Np1 -i ../0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
+  patch -Np1 -i ../0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
+  # non-upstreamed ones
+  patch -Np1 -i ../glvnd-fix-gl-dot-pc.patch
+  patch -Np1 -i ../0001-Fix-linkage-against-shared-glapi.patch
+  patch -Np1 -i ../0001-glapi-Link-with-glapi-when-built-shared.patch
 
   autoreconf -fiv
 }
 
 build() {
-  cd ${srcdir}/?esa-*
+  cd ${srcdir}/mesa-${pkgver}
 
   ./configure --prefix=/usr \
     --sysconfdir=/etc \
@@ -52,12 +58,12 @@ build() {
     --with-gallium-drivers=r300,r600,radeonsi,nouveau,svga,swrast,virgl \
     --with-dri-drivers=i915,i965,r200,radeon,nouveau,swrast \
     --with-egl-platforms=x11,drm,wayland \
-    --with-vulkan-drivers=intel \
-    --with-sha1=libgcrypt \
+    --with-vulkan-drivers=intel,radeon \
     --disable-xvmc \
     --enable-gallium-llvm \
     --enable-llvm-shared-libs \
     --enable-shared-glapi \
+    --enable-libglvnd \
     --enable-egl \
     --enable-glx \
     --enable-glx-tls \
@@ -65,14 +71,16 @@ build() {
     --enable-gles2 \
     --enable-gbm \
     --enable-dri \
-    --enable-osmesa \
+    --enable-gallium-osmesa \
     --enable-texture-float \
     --enable-xa \
     --enable-vdpau \
     --enable-omx \
     --enable-nine \
-    --enable-opencl --enable-opencl-icd \
+    --enable-opencl \
+    --enable-opencl-icd \
     --with-clang-libdir=/usr/lib
+    #--with-sha1=libgcrypt \
 
   make
 
@@ -83,9 +91,10 @@ build() {
 
 package_opencl-mesa() {
   pkgdesc="OpenCL support for AMD/ATI Radeon mesa drivers"
-  depends=('expat' 'libdrm' 'elfutils' 'libxfixes' 'libxext' 'opencl-icd-loader' 'libclc' 'clang')
+  depends=('expat' 'libdrm' 'libelf' 'libclc' 'clang')
   optdepends=('opencl-headers: headers necessary for OpenCL development')
-  
+  provides=('opencl-driver')
+
   install -m755 -d ${pkgdir}/etc
   cp -rv ${srcdir}/fakeinstall/etc/OpenCL ${pkgdir}/etc/
   
@@ -99,10 +108,11 @@ package_opencl-mesa() {
 
 package_vulkan-intel() {
   pkgdesc="Intel's Vulkan mesa driver"
-  depends=('vulkan-icd-loader' 'libgcrypt' 'wayland' 'libxcb')
-  
-  install -m755 -d ${pkgdir}/usr/share
-  mv -v ${srcdir}/fakeinstall/usr/share/vulkan ${pkgdir}/usr/share/
+  depends=('wayland' 'libx11' 'libxshmfence')
+  provides=('vulkan-driver')
+
+  install -m755 -d ${pkgdir}/usr/share/vulkan/icd.d
+  mv -v ${srcdir}/fakeinstall/usr/share/vulkan/icd.d/intel_icd*.json ${pkgdir}/usr/share/vulkan/icd.d/
 
   install -m755 -d ${pkgdir}/usr/{include/vulkan,lib}
   mv -v ${srcdir}/fakeinstall/usr/lib/libvulkan_intel.so ${pkgdir}/usr/lib/
@@ -112,9 +122,24 @@ package_vulkan-intel() {
   install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/vulkan-intel/"
 }
 
+package_vulkan-radeon() {
+  pkgdesc="Radeon's Vulkan mesa driver"
+  depends=('wayland' 'libx11' 'libxshmfence' 'libelf' 'libdrm' 'llvm-libs')
+  provides=('vulkan-driver')
+ 
+  install -m755 -d ${pkgdir}/usr/share/vulkan/icd.d
+  mv -v ${srcdir}/fakeinstall/usr/share/vulkan/icd.d/radeon_icd*.json ${pkgdir}/usr/share/vulkan/icd.d/
+
+  install -m755 -d ${pkgdir}/usr/lib
+  mv -v ${srcdir}/fakeinstall/usr/lib/libvulkan_radeon.so ${pkgdir}/usr/lib/
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/vulkan-radeon"
+  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/vulkan-radeon/"
+}
+
 package_libva-mesa-driver() {
   pkgdesc="VA-API implementation for gallium"
-  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'elfutils')
+  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence')
 
   install -m755 -d ${pkgdir}/usr/lib
   cp -rv ${srcdir}/fakeinstall/usr/lib/dri ${pkgdir}/usr/lib
@@ -125,7 +150,7 @@ package_libva-mesa-driver() {
 
 package_mesa-vdpau() {
   pkgdesc="Mesa VDPAU drivers"
-  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'elfutils')
+  depends=('libdrm' 'libx11' 'llvm-libs' 'expat' 'libelf' 'libxshmfence')
 
   install -m755 -d ${pkgdir}/usr/lib
   cp -rv ${srcdir}/fakeinstall/usr/lib/vdpau ${pkgdir}/usr/lib
@@ -136,18 +161,21 @@ package_mesa-vdpau() {
 
 package_mesa() {
   pkgdesc="an open-source implementation of the OpenGL specification"
-  depends=('libdrm' 'wayland' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'systemd' 'elfutils' 
-           'libomxil-bellagio' 'expat' 'libgcrypt' 'libtxc_dxtn' 'llvm-libs')
+  depends=('libdrm' 'wayland' 'libxxf86vm' 'libxdamage' 'libxshmfence' 'libelf' 
+           'libomxil-bellagio' 'libtxc_dxtn' 'llvm-libs' 'libglvnd')
   optdepends=('opengl-man-pages: for the OpenGL API man pages'
               'mesa-vdpau: for accelerated video playback'
               'libva-mesa-driver: for accelerated video playback')
-  provides=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri' 'mesa-dri')
-  conflicts=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri' 'mesa-dri')
-  replaces=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri' 'mesa-dri')
+  provides=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri' 'mesa-dri' 'mesa-libgl' 'opengl-driver')
+  conflicts=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri' 'mesa-dri' 'mesa-libgl')
+  replaces=('ati-dri' 'intel-dri' 'nouveau-dri' 'svga-dri' 'mesa-dri' 'mesa-libgl')
 
   install -m755 -d ${pkgdir}/etc
   cp -rv ${srcdir}/fakeinstall/etc/drirc ${pkgdir}/etc
   
+  install -m755 -d ${pkgdir}/usr/share/glvnd/egl_vendor.d
+  cp -rv ${srcdir}/fakeinstall/usr/share/glvnd/egl_vendor.d/50_mesa.json ${pkgdir}/usr/share/glvnd/egl_vendor.d/
+
   install -m755 -d ${pkgdir}/usr/lib/xorg/modules/dri
   # ati-dri, nouveau-dri, intel-dri, svga-dri, swrast
   cp -av ${srcdir}/fakeinstall/usr/lib/xorg/modules/dri/* ${pkgdir}/usr/lib/xorg/modules/dri
@@ -165,42 +193,12 @@ package_mesa() {
   # remove vulkan headers
   rm -rf ${pkgdir}/usr/include/vulkan
 
-  install -m755 -d ${pkgdir}/usr/lib/mesa
-  # move libgl/EGL/glesv*.so to not conflict with blobs - may break .pc files ?
-  cp -rv ${srcdir}/fakeinstall/usr/lib/libGL.so* 	${pkgdir}/usr/lib/mesa/
-  cp -rv ${srcdir}/fakeinstall/usr/lib/libEGL.so* 	${pkgdir}/usr/lib/mesa/
-  cp -rv ${srcdir}/fakeinstall/usr/lib/libGLES*.so*	${pkgdir}/usr/lib/mesa/
+  # libglvnd support
+  cp -rv ${srcdir}/fakeinstall/usr/lib/libGLX_mesa.so* ${pkgdir}/usr/lib/
+  cp -rv ${srcdir}/fakeinstall/usr/lib/libEGL_mesa.so* ${pkgdir}/usr/lib/
+  # indirect rendering
+  ln -s /usr/lib/libGLX_mesa.so.0 ${pkgdir}/usr/lib/libGLX_indirect.so.0
 
   install -m755 -d "${pkgdir}/usr/share/licenses/mesa"
   install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/"
 }
-
-package_mesa-libgl() {
-  pkgdesc="Mesa 3-D graphics library"
-  depends=('mesa')
-  provides=('libgl' 'libgles' 'libegl')
-  conflicts=('libgl' 'libgles' 'libegl')
- 
-  # See FS#26284
-  install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"
-  ln -s libglx.xorg "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"
-
-  ln -s /usr/lib/mesa/libGL.so.1.2.0 ${pkgdir}/usr/lib/libGL.so.1.2.0
-  ln -s libGL.so.1.2.0	             ${pkgdir}/usr/lib/libGL.so.1
-  ln -s libGL.so.1.2.0               ${pkgdir}/usr/lib/libGL.so
-
-  ln -s /usr/lib/mesa/libEGL.so.1.0.0 ${pkgdir}/usr/lib/libEGL.so.1.0.0
-  ln -s libEGL.so.1.0.0	              ${pkgdir}/usr/lib/libEGL.so.1
-  ln -s libEGL.so.1.0.0               ${pkgdir}/usr/lib/libEGL.so
-
-  ln -s /usr/lib/mesa/libGLESv1_CM.so.1.1.0 ${pkgdir}/usr/lib/libGLESv1_CM.so.1.1.0
-  ln -s libGLESv1_CM.so.1.1.0	            ${pkgdir}/usr/lib/libGLESv1_CM.so.1
-  ln -s libGLESv1_CM.so.1.1.0               ${pkgdir}/usr/lib/libGLESv1_CM.so
-
-  ln -s /usr/lib/mesa/libGLESv2.so.2.0.0 ${pkgdir}/usr/lib/libGLESv2.so.2.0.0
-  ln -s libGLESv2.so.2.0.0               ${pkgdir}/usr/lib/libGLESv2.so.2
-  ln -s libGLESv2.so.2.0.0               ${pkgdir}/usr/lib/libGLESv2.so
-
-  install -m755 -d "${pkgdir}/usr/share/licenses/mesa-libgl"
-  install -m644 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa-libgl/"
-}
diff --git a/abs/core/mesa/glvnd-fix-gl-dot-pc.patch b/abs/core/mesa/glvnd-fix-gl-dot-pc.patch
new file mode 100644
index 0000000..68118f4
--- /dev/null
+++ b/abs/core/mesa/glvnd-fix-gl-dot-pc.patch
@@ -0,0 +1,12 @@
+diff -up mesa-12.0.3/src/mesa/gl.pc.in.jx mesa-12.0.3/src/mesa/gl.pc.in
+--- mesa-12.0.3/src/mesa/gl.pc.in.jx	2016-01-18 02:39:26.000000000 -0500
++++ mesa-12.0.3/src/mesa/gl.pc.in	2016-10-25 13:06:44.013159358 -0400
+@@ -7,7 +7,7 @@ Name: gl
+ Description: Mesa OpenGL library
+ Requires.private: @GL_PC_REQ_PRIV@
+ Version: @PACKAGE_VERSION@
+-Libs: -L${libdir} -l@GL_LIB@
++Libs: -L${libdir} -lGL
+ Libs.private: @GL_PC_LIB_PRIV@
+ Cflags: -I${includedir} @GL_PC_CFLAGS@
+ glx_tls: @GLX_TLS@
diff --git a/abs/core/mesa/llvm-39.patch b/abs/core/mesa/llvm-39.patch
deleted file mode 100644
index 4cdbb73..0000000
--- a/abs/core/mesa/llvm-39.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/gallium/state_trackers/clover/llvm/invocation.cpp	2016-09-18 14:21:11.960782381 +0200
-+++ src/gallium/state_trackers/clover/llvm/invocation.cpp	2016-09-18 14:22:59.743093983 +0200
-@@ -208,6 +208,7 @@
-       c.getInvocation().setLangDefaults(c.getLangOpts(), clang::IK_OpenCL,
- #if HAVE_LLVM >= 0x0309
-                                         llvm::Triple(triple),
-+					c.getPreprocessorOpts(),
- #endif
-                                         clang::LangStandard::lang_opencl11);
-       c.createDiagnostics(
diff --git a/abs/core/mesa/remove-libpthread-stubs.patch b/abs/core/mesa/remove-libpthread-stubs.patch
index 5b44d03..efe8aad 100644
--- a/abs/core/mesa/remove-libpthread-stubs.patch
+++ b/abs/core/mesa/remove-libpthread-stubs.patch
@@ -1,14 +1,13 @@
-diff -ur mesa-orig/configure.ac mesa-origb/configure.ac
---- mesa-orig/configure.ac	2016-05-25 15:37:44.191643017 +0200
-+++ mesa-origb/configure.ac	2016-05-25 15:42:20.861654709 +0200
-@@ -813,10 +813,6 @@
- dnl pkgconfig files.
- test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
+diff --git a/configure.ac b/configure.ac
+index 54416b4..8a708d3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -824,7 +824,7 @@ test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
  
--PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs)
--AC_SUBST(PTHREADSTUBS_CFLAGS)
--AC_SUBST(PTHREADSTUBS_LIBS)
--
- dnl SELinux awareness.
- AC_ARG_ENABLE([selinux],
-     [AS_HELP_STRING([--enable-selinux],
+ dnl pthread-stubs is mandatory on targets where it exists
+ case "$host_os" in
+-cygwin* )
++cygwin* | linux* )
+     pthread_stubs_possible="no"
+     ;;
+ * )
-- 
cgit v0.12


From 0cb8ed23a1b59eff4662beeb504e33b380443db3 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:30:15 +0000
Subject: xf86-input-libinput: initial inclusion. dep of xorg-server

---
 abs/core/xf86-input-libinput/PKGBUILD | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 abs/core/xf86-input-libinput/PKGBUILD

diff --git a/abs/core/xf86-input-libinput/PKGBUILD b/abs/core/xf86-input-libinput/PKGBUILD
new file mode 100644
index 0000000..64496ae
--- /dev/null
+++ b/abs/core/xf86-input-libinput/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id$
+# Maintainer: Laurent Carlier <lordheavym@gmail.com>
+
+pkgname=xf86-input-libinput
+pkgver=0.25.0
+pkgrel=1
+pkgdesc="Generic input driver for the X.Org server based on libinput"
+arch=('i686' 'x86_64')
+license=('custom')
+url="http://xorg.freedesktop.org/"
+depends=('libinput>=1.2.0')
+makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=24.1' 'libxi' 'libx11' 'resourceproto' 'scrnsaverproto')
+conflicts=('xorg-server<1.19.0' 'X-ABI-XINPUT_VERSION<24' 'X-ABI-XINPUT_VERSION>=25')
+groups=('xorg-drivers')
+source=(https://xorg.freedesktop.org/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig})
+sha256sums=('bb7fd1658fa7e6c757fd55480aa8a07f8ccfb0a80ae42c29dbc67d57958c556f'
+            'SKIP')
+validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
+
+build() {
+  cd ${pkgname}-${pkgver}
+
+  ./configure --prefix=/usr \
+    --disable-static
+  make
+}
+
+package() {
+  cd ${pkgname}-${pkgver}
+
+  make DESTDIR="${pkgdir}" install
+
+  install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
+  install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
+}
-- 
cgit v0.12


From d3f5853e08bbad96103ef5eaef940ddf9e77716b Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:31:00 +0000
Subject: xorg-server: update to 1.19.3

---
 abs/core/xorg-server/PKGBUILD                      |  56 +-
 .../nvidia-add-modulepath-support.patch            | 851 +++++++++++++++++++++
 .../xorg-server/xserver-autobind-hotplug.patch     | 302 ++++++++
 3 files changed, 1186 insertions(+), 23 deletions(-)
 create mode 100644 abs/core/xorg-server/nvidia-add-modulepath-support.patch
 create mode 100644 abs/core/xorg-server/xserver-autobind-hotplug.patch

diff --git a/abs/core/xorg-server/PKGBUILD b/abs/core/xorg-server/PKGBUILD
index 0f85a53..4f53332 100644
--- a/abs/core/xorg-server/PKGBUILD
+++ b/abs/core/xorg-server/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgbase=xorg-server
 pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-xwayland' 'xorg-server-common' 'xorg-server-devel')
-pkgver=1.18.4
+pkgver=1.19.3
 pkgrel=1
 arch=('i686' 'x86_64')
 license=('custom')
@@ -12,24 +12,31 @@ groups=('xorg')
 url="http://xorg.freedesktop.org"
 makedepends=('pixman' 'libx11' 'mesa' 'mesa-libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 
              'inputproto' 'fontsproto' 'videoproto' 'presentproto' 'compositeproto' 'recordproto' 'scrnsaverproto'
-             'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess' 'libxv'
+             'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont2' 'renderproto' 'libpciaccess' 'libxv'
              'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres'
              'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util' 'glproto' 'dri2proto' 'libgcrypt' 'libepoxy'
              'xcb-util' 'xcb-util-image' 'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms' 'dri3proto'
-             'libxshmfence' 'libunwind')
-source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2{,.sig}
+             'libxshmfence' 'libunwind' 'systemd' 'wayland-protocols')
+source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2{,.sig}
         Xwrapper.config
+        nvidia-add-modulepath-support.patch
+        xserver-autobind-hotplug.patch
         xvfb-run
         xvfb-run.1)
 validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
               'C383B778255613DFDB409D91DB221A6900000011'
               'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3')
-sha256sums=('278459b2c31d61a15655d95a72fb79930c480a6bb8cf9226e48a07df8b1d31c8'
-            'SKIP'
-            'b69ea4a8362b720aee65064534038e33ff8aa558437bcb619d1173f7e8ad3444'
-            'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
-            '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776')
 
+prepare() {
+  cd "${pkgbase}-${pkgver}"
+
+  # merged upstream in trunk
+  patch -Np1 -i ../nvidia-add-modulepath-support.patch
+  # patch from Fedora, not yet merged
+  patch -Np1 -i ../xserver-autobind-hotplug.patch
+
+  autoreconf -vfi
+}
 
 build() {
   cd "${pkgbase}-${pkgver}"
@@ -81,8 +88,7 @@ build() {
 
 package_xorg-server-common() {
   pkgdesc="Xorg server common files"
-  depends=('xkeyboard-config' 'xorg-xkbcomp' 'xorg-setxkbmap' 'xorg-fonts-misc'
-           'libunwind')
+  depends=(xkeyboard-config xorg-xkbcomp xorg-setxkbmap xorg-fonts-misc)
 
   cd "${pkgbase}-${pkgver}"
   install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
@@ -99,11 +105,12 @@ package_xorg-server-common() {
 
 package_xorg-server() {
   pkgdesc="Xorg X server"
-  depends=(libepoxy libxdmcp libxfont libpciaccess libdrm pixman libgcrypt libxau xorg-server-common libxshmfence libgl xf86-input-driver)
+  depends=(libepoxy libxfont2 pixman xorg-server-common libunwind dbus libgl xf86-input-libinput
+           libpciaccess libdrm libxshmfence) # FS#52949
 
   # see xorg-server-*/hw/xfree86/common/xf86Module.h for ABI versions - we provide major numbers that drivers can depend on
   # and /usr/lib/pkgconfig/xorg-server.pc in xorg-server-devel pkg
-  provides=('X-ABI-VIDEODRV_VERSION=20' 'X-ABI-XINPUT_VERSION=22.1' 'X-ABI-EXTENSION_VERSION=9.0' 'x-server')
+  provides=('X-ABI-VIDEODRV_VERSION=23' 'X-ABI-XINPUT_VERSION=24.1' 'X-ABI-EXTENSION_VERSION=10.0' 'x-server')
   conflicts=('nvidia-utils<=331.20' 'glamor-egl' 'xf86-video-modesetting')
   replaces=('glamor-egl' 'xf86-video-modesetting')
   install=xorg-server.install
@@ -117,10 +124,6 @@ package_xorg-server() {
   # LinHES Xwrapper.config
   install -m644 "${srcdir}/Xwrapper.config" "${pkgdir}/etc/X11/Xwrapper.config"
 
-  # Needed for non-mesa drivers, libgl will restore it
-  mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \
-     "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg"
-
   rm -rf "${pkgdir}/var"
 
   rm -f "${pkgdir}/usr/share/man/man1/Xserver.1"
@@ -136,8 +139,8 @@ package_xorg-server() {
 
 package_xorg-server-xephyr() {
   pkgdesc="A nested X server that runs as an X application"
-  depends=(libxfont libgl libepoxy libgcrypt libxv pixman xorg-server-common 'xcb-util-image'
-           'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms')
+  depends=(libxfont2 libgl libepoxy libunwind libsystemd libxv pixman xorg-server-common xcb-util-image
+           xcb-util-renderutil xcb-util-wm xcb-util-keysyms)
 
   cd "${pkgbase}-${pkgver}/hw/kdrive"
   make DESTDIR="${pkgdir}" install
@@ -148,7 +151,7 @@ package_xorg-server-xephyr() {
 
 package_xorg-server-xvfb() {
   pkgdesc="Virtual framebuffer X server"
-  depends=(libxfont libxdmcp libxau libgcrypt pixman xorg-server-common xorg-xauth libgl)
+  depends=(libxfont2 libunwind libsystemd pixman xorg-server-common xorg-xauth libgl)
 
   cd "${pkgbase}-${pkgver}/hw/vfb"
   make DESTDIR="${pkgdir}" install
@@ -162,7 +165,7 @@ package_xorg-server-xvfb() {
 
 package_xorg-server-xnest() {
   pkgdesc="A nested X server that runs as an X application"
-  depends=(libxfont libxext libgcrypt pixman xorg-server-common libsystemd)
+  depends=(libxfont2 libxext libunwind pixman xorg-server-common libsystemd)
 
   cd "${pkgbase}-${pkgver}/hw/xnest"
   make DESTDIR="${pkgdir}" install
@@ -173,7 +176,7 @@ package_xorg-server-xnest() {
 
 package_xorg-server-xdmx() {
   pkgdesc="Distributed Multihead X Server and utilities"
-  depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes pixman xorg-server-common)
+  depends=(libxfont2 libxi libxaw libxrender libdmx libxfixes libunwind pixman xorg-server-common)
 
   cd "${pkgbase}-${pkgver}/hw/dmx"
   make DESTDIR="${pkgdir}" install
@@ -184,7 +187,7 @@ package_xorg-server-xdmx() {
 
 package_xorg-server-xwayland() {
   pkgdesc="run X clients under wayland"
-  depends=(libxfont libepoxy libgl pixman xorg-server-common)
+  depends=(libxfont2 libepoxy libunwind libsystemd libgl pixman xorg-server-common)
 
   cd "${pkgbase}-${pkgver}/hw/xwayland"
   make DESTDIR="${pkgdir}" install
@@ -217,3 +220,10 @@ package_xorg-server-devel() {
   install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel"
   ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING"
 }
+md5sums=('015d2fc4b9f2bfe7a626edb63a62c65e'
+         'SKIP'
+         'e3d31449c79ce49a748a678463ea3f20'
+         '75a60eb4b99b64cda18614e9c085a2d3'
+         'ec10c9be9a7f1b352393684b658976d2'
+         '52fd3effd80d7bc6c1660d4ecf23d31c'
+         '376c70308715cd2643f7bff936d9934b')
diff --git a/abs/core/xorg-server/nvidia-add-modulepath-support.patch b/abs/core/xorg-server/nvidia-add-modulepath-support.patch
new file mode 100644
index 0000000..584b91c
--- /dev/null
+++ b/abs/core/xorg-server/nvidia-add-modulepath-support.patch
@@ -0,0 +1,851 @@
+From c17e544b271ced65483692103d39ed1188d4ca25 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 27 Sep 2016 14:30:10 +0200
+Subject: [PATCH xserver v2 5/7] xfree86: Remove redundant ServerIsNotSeat0
+ check from xf86CallDriverProbe
+
+If foundScreen is TRUE, then all the code below the removed if
+will not execute until we reach the return foundScreen; at the
+end, so this entire if block is redundant.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ hw/xfree86/common/xf86Bus.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
+index 5b93940..27c6b1b 100644
+--- a/hw/xfree86/common/xf86Bus.c
++++ b/hw/xfree86/common/xf86Bus.c
+@@ -82,8 +82,6 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only)
+     if (!xf86DoConfigure && drv->platformProbe != NULL) {
+         foundScreen = xf86platformProbeDev(drv);
+     }
+-    if (ServerIsNotSeat0() && foundScreen)
+-        return foundScreen;
+ #endif
+ 
+ #ifdef XSERVER_LIBPCIACCESS
+-- 
+2.9.3
+
+From 74bc0fff3a6ca233e56b3fb2971bca97b5a4f8b5 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 30 Sep 2016 11:59:04 +0200
+Subject: [PATCH xserver v2 6/7] xfree86: Make adding unclaimed devices as GPU
+ devices a separate step
+
+This is primarily a preparation patch for fixing the xserver exiting with
+a "no screens found" error even though there are supported video cards,
+due to the server not recognizing any card as the primary card.
+
+This also fixes the (mostly theoretical) case of a platformBus capable
+driver adding a device as GPUscreen before a driver which only supports
+the old PCI probe method gets a chance to claim it as a normal screen.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ hw/xfree86/common/xf86Bus.c         |  4 ++++
+ hw/xfree86/common/xf86platformBus.c | 15 +++++++++++++++
+ hw/xfree86/common/xf86platformBus.h |  6 ++++++
+ 3 files changed, 25 insertions(+)
+
+diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
+index 27c6b1b..a3a9898 100644
+--- a/hw/xfree86/common/xf86Bus.c
++++ b/hw/xfree86/common/xf86Bus.c
+@@ -125,6 +125,10 @@ xf86BusConfig(void)
+         xf86CallDriverProbe(xf86DriverList[i], FALSE);
+     }
+ 
++    for (i = 0; i < xf86NumDrivers; i++) {
++        xf86platformAddGPUDevices(xf86DriverList[i]);
++    }
++
+     /* If nothing was detected, return now */
+     if (xf86NumScreens == 0) {
+         xf86Msg(X_ERROR, "No devices detected.\n");
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 39fb1dd..8dd0d5d 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -475,6 +475,21 @@ xf86platformProbeDev(DriverPtr drvp)
+                                         isGPUDevice(devList[i]) ? PLATFORM_PROBE_GPU_SCREEN : 0);
+     }
+ 
++    return foundScreen;
++}
++
++int
++xf86platformAddGPUDevices(DriverPtr drvp)
++{
++    Bool foundScreen = FALSE;
++    GDevPtr *devList;
++    int j;
++
++    if (!drvp->platformProbe)
++        return FALSE;
++
++    xf86MatchDevice(drvp->driverName, &devList);
++
+     /* if autoaddgpu devices is enabled then go find any unclaimed platform
+      * devices and add them as GPU screens */
+     if (xf86Info.autoAddGPU) {
+diff --git a/hw/xfree86/common/xf86platformBus.h b/hw/xfree86/common/xf86platformBus.h
+index a7335b9..0f5c0ef 100644
+--- a/hw/xfree86/common/xf86platformBus.h
++++ b/hw/xfree86/common/xf86platformBus.h
+@@ -41,6 +41,7 @@ struct xf86_platform_device {
+ #ifdef XSERVER_PLATFORM_BUS
+ int xf86platformProbe(void);
+ int xf86platformProbeDev(DriverPtr drvp);
++int xf86platformAddGPUDevices(DriverPtr drvp);
+ 
+ extern int xf86_num_platform_devices;
+ extern struct xf86_platform_device *xf86_platform_devices;
+@@ -156,6 +157,11 @@ xf86PlatformMatchDriver(char *matches[], int nmatches);
+ 
+ extern void xf86platformVTProbe(void);
+ extern void xf86platformPrimary(void);
++
++#else
++
++static inline int xf86platformAddGPUDevices(DriverPtr drvp) { return FALSE; }
++
+ #endif
+ 
+ #endif
+-- 
+2.9.3
+
+From 02bcb6f189c4ad8b2e73ce99cfa3c10f0c244a88 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 30 Sep 2016 12:29:09 +0200
+Subject: [PATCH xserver v2 7/7] xfree86: Try harder to find atleast 1 non GPU
+ Screen
+
+If we did not find any non GPU Screens, try again ignoring the notion
+of any video devices being the primary device. This fixes Xorg exiting
+with a "no screens found" error when using virtio-vga in a
+virtual-machine and when using a device driven by simpledrm.
+
+This is a somewhat ugly solution, but it is the best I can come up with
+without major surgery to the bus and probe code.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ hw/xfree86/common/xf86.h            |  1 +
+ hw/xfree86/common/xf86Bus.c         | 26 +++++++++++++++++++++++---
+ hw/xfree86/common/xf86Globals.c     |  1 +
+ hw/xfree86/common/xf86pciBus.c      |  4 ++++
+ hw/xfree86/common/xf86platformBus.c |  4 ++++
+ 5 files changed, 33 insertions(+), 3 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
+index e54c811..f724688 100644
+--- a/hw/xfree86/common/xf86.h
++++ b/hw/xfree86/common/xf86.h
+@@ -55,6 +55,7 @@
+ extern _X_EXPORT int xf86DoConfigure;
+ extern _X_EXPORT int xf86DoShowOptions;
+ extern _X_EXPORT Bool xf86DoConfigurePass1;
++extern _X_EXPORT Bool xf86ProbeIgnorePrimary;
+ extern _X_EXPORT Bool xorgHWAccess;
+ 
+ extern _X_EXPORT DevPrivateKeyRec xf86ScreenKeyRec;
+diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
+index a3a9898..9836803 100644
+--- a/hw/xfree86/common/xf86Bus.c
++++ b/hw/xfree86/common/xf86Bus.c
+@@ -117,14 +117,34 @@ xf86BusConfig(void)
+     int i, j;
+ 
+     /*
+-     * Now call each of the Probe functions.  Each successful probe will
+-     * result in an extra entry added to the xf86Screens[] list for each
+-     * instance of the hardware found.
++     * 3 step probe to (hopefully) ensure that we always find at least 1
++     * (non GPU) screen:
++     *
++     * 1. Call each drivers probe function normally,
++     *    Each successful probe will result in an extra entry added to the
++     *    xf86Screens[] list for each instance of the hardware found.
+      */
+     for (i = 0; i < xf86NumDrivers; i++) {
+         xf86CallDriverProbe(xf86DriverList[i], FALSE);
+     }
+ 
++    /*
++     * 2. If no Screens were found, call each drivers probe function with
++     *    ignorePrimary = TRUE, to ensure that we do actually get a
++     *    Screen if there is atleast one supported video card.
++     */
++    if (xf86NumScreens == 0) {
++        xf86ProbeIgnorePrimary = TRUE;
++        for (i = 0; i < xf86NumDrivers && xf86NumScreens == 0; i++) {
++            xf86CallDriverProbe(xf86DriverList[i], FALSE);
++        }
++        xf86ProbeIgnorePrimary = FALSE;
++    }
++
++    /*
++     * 3. Call xf86platformAddGPUDevices() to add any additional video cards as
++     *    GPUScreens (GPUScreens are only supported by platformBus drivers).
++     */
+     for (i = 0; i < xf86NumDrivers; i++) {
+         xf86platformAddGPUDevices(xf86DriverList[i]);
+     }
+diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c
+index 07cfabf..e962b75 100644
+--- a/hw/xfree86/common/xf86Globals.c
++++ b/hw/xfree86/common/xf86Globals.c
+@@ -152,6 +152,7 @@ XF86ConfigPtr xf86configptr = NULL;
+ Bool xf86Resetting = FALSE;
+ Bool xf86Initialising = FALSE;
+ Bool xf86DoConfigure = FALSE;
++Bool xf86ProbeIgnorePrimary = FALSE;
+ Bool xf86DoShowOptions = FALSE;
+ DriverPtr *xf86DriverList = NULL;
+ int xf86NumDrivers = 0;
+diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
+index 8158c2b..9adfee5 100644
+--- a/hw/xfree86/common/xf86pciBus.c
++++ b/hw/xfree86/common/xf86pciBus.c
+@@ -352,6 +352,10 @@ xf86ComparePciBusString(const char *busID, int bus, int device, int func)
+ Bool
+ xf86IsPrimaryPci(struct pci_device *pPci)
+ {
++    /* Add max. 1 screen for the IgnorePrimary fallback path */
++    if (xf86ProbeIgnorePrimary && xf86NumScreens == 0)
++        return TRUE;
++
+     if (primaryBus.type == BUS_PCI)
+         return pPci == primaryBus.id.pci;
+ #ifdef XSERVER_PLATFORM_BUS
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 8dd0d5d..063e81c 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -114,6 +114,10 @@ xf86_find_platform_device_by_devnum(int major, int minor)
+ static Bool
+ xf86IsPrimaryPlatform(struct xf86_platform_device *plat)
+ {
++    /* Add max. 1 screen for the IgnorePrimary fallback path */
++    if (xf86ProbeIgnorePrimary && xf86NumScreens == 0)
++        return TRUE;
++
+     if (primaryBus.type == BUS_PLATFORM)
+         return plat == primaryBus.id.plat;
+ #ifdef XSERVER_LIBPCIACCESS
+-- 
+2.9.3
+
+From c57c1e53ea3d76ebba5b2a23b7260817d3e6b921 Mon Sep 17 00:00:00 2001
+From: Hans De Goede <hdegoede@redhat.com>
+Date: Mon, 12 Dec 2016 17:03:12 +0100
+Subject: [PATCH xserver 1/6] xfree86: Free devlist returned by xf86MatchDevice
+
+xf86MatchDevice returns a dynamically allocated list of GDevPtr-s,
+free this when we're done with it.
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ hw/xfree86/common/xf86platformBus.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 063e81c..16d934f 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -479,6 +479,8 @@ xf86platformProbeDev(DriverPtr drvp)
+                                         isGPUDevice(devList[i]) ? PLATFORM_PROBE_GPU_SCREEN : 0);
+     }
+ 
++    free(devList);
++
+     return foundScreen;
+ }
+ 
+@@ -505,6 +507,8 @@ xf86platformAddGPUDevices(DriverPtr drvp)
+         }
+     }
+ 
++    free(devList);
++
+     return foundScreen;
+ }
+ 
+-- 
+2.9.3
+
+From 08b84d72878e43401e99059c3c926dfa42a360c3 Mon Sep 17 00:00:00 2001
+From: Hans De Goede <hdegoede@redhat.com>
+Date: Mon, 12 Dec 2016 17:03:13 +0100
+Subject: [PATCH xserver 2/6] xfree86: Make OutputClassMatches take a
+ xf86_platform_device
+
+Make OutputClassMatches directly take a xf86_platform_device as argument,
+rather then an index into xf86_platform_devices. This makes things
+easier for callers which already have a xf86_platform_device pointer.
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ hw/xfree86/common/xf86platformBus.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 16d934f..25a9040 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -214,9 +214,10 @@ MatchToken(const char *value, struct xorg_list *patterns,
+ }
+ 
+ static Bool
+-OutputClassMatches(const XF86ConfOutputClassPtr oclass, int index)
++OutputClassMatches(const XF86ConfOutputClassPtr oclass,
++                   struct xf86_platform_device *dev)
+ {
+-    char *driver = xf86_platform_odev_attributes(index)->driver;
++    char *driver = dev->attribs->driver;
+ 
+     if (!MatchToken(driver, &oclass->match_driver, strcmp))
+         return FALSE;
+@@ -234,7 +235,7 @@ xf86OutputClassDriverList(int index, char *matches[], int nmatches)
+         return 0;
+ 
+     for (cl = xf86configptr->conf_outputclass_lst; cl; cl = cl->list.next) {
+-        if (OutputClassMatches(cl, index)) {
++        if (OutputClassMatches(cl, &xf86_platform_devices[index])) {
+             char *path = xf86_platform_odev_attributes(index)->path;
+ 
+             xf86Msg(X_INFO, "Applying OutputClass \"%s\" to %s\n",
+-- 
+2.9.3
+
+From 9cd3cc75269d9196898487b5712ee47b8291e077 Mon Sep 17 00:00:00 2001
+From: Hans De Goede <hdegoede@redhat.com>
+Date: Mon, 12 Dec 2016 17:03:14 +0100
+Subject: [PATCH xserver 3/6] xfree86: Add options support for OutputClass
+ Options
+
+Add support for setting options in OutputClass Sections and having these
+applied to any matching output devices.
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ hw/xfree86/common/xf86Option.c      |  5 ++++-
+ hw/xfree86/common/xf86platformBus.c | 42 +++++++++++++++++++++++++++++++++++++
+ hw/xfree86/common/xf86platformBus.h |  2 ++
+ hw/xfree86/man/xorg.conf.man        | 10 +++++++++
+ hw/xfree86/parser/OutputClass.c     |  6 ++++++
+ hw/xfree86/parser/xf86Parser.h      |  1 +
+ 6 files changed, 65 insertions(+), 1 deletion(-)
+
+diff --git a/hw/xfree86/common/xf86Option.c b/hw/xfree86/common/xf86Option.c
+index 0e8bc1f..929724d 100644
+--- a/hw/xfree86/common/xf86Option.c
++++ b/hw/xfree86/common/xf86Option.c
+@@ -44,6 +44,7 @@
+ #include "xf86Xinput.h"
+ #include "xf86Optrec.h"
+ #include "xf86Parser.h"
++#include "xf86platformBus.h" /* For OutputClass functions */
+ #include "optionstr.h"
+ 
+ static Bool ParseOptionValue(int scrnIndex, XF86OptionPtr options,
+@@ -64,7 +65,7 @@ static Bool ParseOptionValue(int scrnIndex, XF86OptionPtr options,
+  *
+  * The order of precedence for options is:
+  *
+- *   extraOpts, display, confScreen, monitor, device
++ *   extraOpts, display, confScreen, monitor, device, outputClassOptions
+  */
+ 
+ void
+@@ -79,6 +80,8 @@ xf86CollectOptions(ScrnInfoPtr pScrn, XF86OptionPtr extraOpts)
+     pScrn->options = NULL;
+ 
+     for (i = pScrn->numEntities - 1; i >= 0; i--) {
++        xf86MergeOutputClassOptions(pScrn->entityList[i], &pScrn->options);
++
+         device = xf86GetDevFromEntity(pScrn->entityList[i],
+                                       pScrn->entityInstanceList[i]);
+         if (device && device->options) {
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 25a9040..a698c6c 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -310,6 +310,48 @@ xf86platformProbe(void)
+     return 0;
+ }
+ 
++void
++xf86MergeOutputClassOptions(int entityIndex, void **options)
++{
++    const EntityPtr entity = xf86Entities[entityIndex];
++    struct xf86_platform_device *dev = NULL;
++    XF86ConfOutputClassPtr cl;
++    XF86OptionPtr classopts;
++    int i = 0;
++
++    switch (entity->bus.type) {
++    case BUS_PLATFORM:
++        dev = entity->bus.id.plat;
++        break;
++    case BUS_PCI:
++        for (i = 0; i < xf86_num_platform_devices; i++) {
++            if (MATCH_PCI_DEVICES(xf86_platform_devices[i].pdev,
++                                  entity->bus.id.pci)) {
++                dev = &xf86_platform_devices[i];
++                break;
++            }
++        }
++        break;
++    default:
++        xf86Msg(X_DEBUG, "xf86MergeOutputClassOptions unsupported bus type %d\n",
++                entity->bus.type);
++    }
++
++    if (!dev)
++        return;
++
++    for (cl = xf86configptr->conf_outputclass_lst; cl; cl = cl->list.next) {
++        if (!OutputClassMatches(cl, dev) || !cl->option_lst)
++            continue;
++
++        xf86Msg(X_INFO, "Applying OutputClass \"%s\" options to %s\n",
++                cl->identifier, dev->attribs->path);
++
++        classopts = xf86optionListDup(cl->option_lst);
++        *options = xf86optionListMerge(*options, classopts);
++    }
++}
++
+ static int
+ xf86ClaimPlatformSlot(struct xf86_platform_device * d, DriverPtr drvp,
+                   int chipset, GDevPtr dev, Bool active)
+diff --git a/hw/xfree86/common/xf86platformBus.h b/hw/xfree86/common/xf86platformBus.h
+index 0f5c0ef..70d9ec8 100644
+--- a/hw/xfree86/common/xf86platformBus.h
++++ b/hw/xfree86/common/xf86platformBus.h
+@@ -42,6 +42,7 @@ struct xf86_platform_device {
+ int xf86platformProbe(void);
+ int xf86platformProbeDev(DriverPtr drvp);
+ int xf86platformAddGPUDevices(DriverPtr drvp);
++void xf86MergeOutputClassOptions(int entityIndex, void **options);
+ 
+ extern int xf86_num_platform_devices;
+ extern struct xf86_platform_device *xf86_platform_devices;
+@@ -161,6 +162,7 @@ extern void xf86platformPrimary(void);
+ #else
+ 
+ static inline int xf86platformAddGPUDevices(DriverPtr drvp) { return FALSE; }
++static inline void xf86MergeOutputClassOptions(int index, void **options) {}
+ 
+ #endif
+ 
+diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man
+index 7d0c524..8928a53 100644
+--- a/hw/xfree86/man/xorg.conf.man
++++ b/hw/xfree86/man/xorg.conf.man
+@@ -1280,6 +1280,16 @@ For example:
+ Check the case-sensitive string
+ .RI \*q matchdriver \*q
+ against the kernel driver of the device.
++.PP
++When an output device has been matched to the
++.B OutputClass
++section, any
++.B Option
++entries are applied to the device. See the
++.B Device
++section below for a description of the remaining
++.B Option
++entries.
+ .SH "DEVICE SECTION"
+ The config file may have multiple
+ .B Device
+diff --git a/hw/xfree86/parser/OutputClass.c b/hw/xfree86/parser/OutputClass.c
+index 8064e0c..f813ee6 100644
+--- a/hw/xfree86/parser/OutputClass.c
++++ b/hw/xfree86/parser/OutputClass.c
+@@ -36,6 +36,7 @@ static const xf86ConfigSymTabRec OutputClassTab[] = {
+     {ENDSECTION, "endsection"},
+     {IDENTIFIER, "identifier"},
+     {DRIVER, "driver"},
++    {OPTION, "option"},
+     {MATCH_DRIVER, "matchdriver"},
+     {-1, ""},
+ };
+@@ -60,6 +61,8 @@ xf86freeOutputClassList(XF86ConfOutputClassPtr ptr)
+             free(group);
+         }
+ 
++        xf86optionListFree(ptr->option_lst);
++
+         prev = ptr;
+         ptr = ptr->list.next;
+         free(prev);
+@@ -112,6 +115,9 @@ xf86parseOutputClassSection(void)
+             else
+                 ptr->driver = xf86_lex_val.str;
+             break;
++        case OPTION:
++            ptr->option_lst = xf86parseOption(ptr->option_lst);
++            break;
+         case MATCH_DRIVER:
+             if (xf86getSubToken(&(ptr->comment)) != STRING)
+                 Error(QUOTE_MSG, "MatchDriver");
+diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h
+index 9c4b403..897edab 100644
+--- a/hw/xfree86/parser/xf86Parser.h
++++ b/hw/xfree86/parser/xf86Parser.h
+@@ -338,6 +338,7 @@ typedef struct {
+     char *identifier;
+     char *driver;
+     struct xorg_list match_driver;
++    XF86OptionPtr option_lst;
+     char *comment;
+ } XF86ConfOutputClassRec, *XF86ConfOutputClassPtr;
+ 
+-- 
+2.9.3
+
+From ab1a65b7755d081b41188104b21f4d21eaa3187b Mon Sep 17 00:00:00 2001
+From: Hans De Goede <hdegoede@redhat.com>
+Date: Mon, 12 Dec 2016 17:03:15 +0100
+Subject: [PATCH xserver 4/6] xfree86: xf86platformProbe: split finding
+ pci-info and setting primary GPU
+
+This is a preparation patch for allowing an OutputClass section to
+override the default primary GPU device selection.
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ hw/xfree86/common/xf86platformBus.c | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index a698c6c..39b3248 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -145,16 +145,9 @@ platform_find_pci_info(struct xf86_platform_device *pd, char *busid)
+ 
+     iter = pci_slot_match_iterator_create(&devmatch);
+     info = pci_device_next(iter);
+-    if (info) {
++    if (info)
+         pd->pdev = info;
+-        pci_device_probe(info);
+-        if (pci_device_is_boot_vga(info)) {
+-            primaryBus.type = BUS_PLATFORM;
+-            primaryBus.id.plat = pd;
+-        }
+-    }
+     pci_iterator_destroy(iter);
+-
+ }
+ 
+ static Bool
+@@ -307,6 +300,20 @@ xf86platformProbe(void)
+             platform_find_pci_info(&xf86_platform_devices[i], busid);
+         }
+     }
++
++    for (i = 0; i < xf86_num_platform_devices; i++) {
++        struct xf86_platform_device *dev = &xf86_platform_devices[i];
++
++        if (!dev->pdev)
++            continue;
++
++        pci_device_probe(dev->pdev);
++        if (pci_device_is_boot_vga(dev->pdev)) {
++            primaryBus.type = BUS_PLATFORM;
++            primaryBus.id.plat = dev;
++        }
++    }
++
+     return 0;
+ }
+ 
+-- 
+2.9.3
+
+From d75ffcdbf8c1e3c8e0d46debcd533a9f2560f0a8 Mon Sep 17 00:00:00 2001
+From: Hans De Goede <hdegoede@redhat.com>
+Date: Mon, 12 Dec 2016 17:03:16 +0100
+Subject: [PATCH xserver 5/6] xfree86: Allow overriding primary GPU detection
+ from an OutputClass section
+
+Allow using:
+
+Option "PrimaryGPU" "yes"
+
+In an OutputClass section to override the default primary GPU device
+selection which selects the GPU used as output by the firmware.
+
+If multiple output devices match an OutputClass section with
+the PrimaryGPU option set, the first one enumerated becomes the
+primary GPU.
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ hw/xfree86/common/xf86platformBus.c | 19 +++++++++++++++++++
+ hw/xfree86/man/xorg.conf.man        | 12 +++++++++++-
+ 2 files changed, 30 insertions(+), 1 deletion(-)
+
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 39b3248..fc17d15 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -286,6 +286,7 @@ xf86platformProbe(void)
+ {
+     int i;
+     Bool pci = TRUE;
++    XF86ConfOutputClassPtr cl;
+ 
+     config_odev_probe(xf86PlatformDeviceProbe);
+ 
+@@ -301,6 +302,24 @@ xf86platformProbe(void)
+         }
+     }
+ 
++    /* First see if there is an OutputClass match marking a device as primary */
++    for (i = 0; i < xf86_num_platform_devices; i++) {
++        struct xf86_platform_device *dev = &xf86_platform_devices[i];
++        for (cl = xf86configptr->conf_outputclass_lst; cl; cl = cl->list.next) {
++            if (!OutputClassMatches(cl, dev))
++                continue;
++
++            if (xf86CheckBoolOption(cl->option_lst, "PrimaryGPU", FALSE)) {
++                xf86Msg(X_CONFIG, "OutputClass \"%s\" setting %s as PrimaryGPU\n",
++                        cl->identifier, dev->attribs->path);
++                primaryBus.type = BUS_PLATFORM;
++                primaryBus.id.plat = dev;
++                return 0;
++            }
++        }
++    }
++
++    /* Then check for pci_device_is_boot_vga() */
+     for (i = 0; i < xf86_num_platform_devices; i++) {
+         struct xf86_platform_device *dev = &xf86_platform_devices[i];
+ 
+diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man
+index 8928a53..79b71a8 100644
+--- a/hw/xfree86/man/xorg.conf.man
++++ b/hw/xfree86/man/xorg.conf.man
+@@ -1285,11 +1285,21 @@ When an output device has been matched to the
+ .B OutputClass
+ section, any
+ .B Option
+-entries are applied to the device. See the
++entries are applied to the device. One
++.B OutputClass
++specific
++.B Option
++is recognized. See the
+ .B Device
+ section below for a description of the remaining
+ .B Option
+ entries.
++.TP 7
++.BI "Option \*qPrimaryGPU\*q \*q" boolean \*q
++This option specifies that the matched device should be treated as the
++primary GPU, replacing the selection of the GPU used as output by the
++firmware. If multiple output devices match an OutputClass section with
++the PrimaryGPU option set, the first one enumerated becomes the primary GPU.
+ .SH "DEVICE SECTION"
+ The config file may have multiple
+ .B Device
+-- 
+2.9.3
+
+From b5dffbbac193aa640ffcfa0a431c21b862854e53 Mon Sep 17 00:00:00 2001
+From: Hans De Goede <hdegoede@redhat.com>
+Date: Mon, 12 Dec 2016 17:03:17 +0100
+Subject: [PATCH xserver 6/6] xfree86: Add ModulePath support for OutputClass
+ config Sections
+
+Allow OutputClass config snippets to modify the module-path.
+
+Note that any specified ModulePaths will be pre-pended to the normal
+ModulePath. The idea behind this is that any output hardware specific
+modules should have preference over the normal modules.
+
+One use-case for this is the nvidia binary driver, this allows a
+config snippet like this:
+
+Section "OutputClass"
+    MatchDriver "nvidia"
+    Modulepath "/usr/lib64/nvidia/modules"
+EndSection
+
+To get the nvidia glx specific glx module loaded, but only when the
+nvidia kernel driver is loaded.
+
+Together with the glvnd work done recently, this allows the nouveau
++ mesa and nvidia-binary userspace stacks to co-exist on the same
+system without any ldconfig / xorg.conf tweaking and the xserver will
+automatically do the right thing depending on which kernel driver
+(nouveau or nvidia) is loaded.
+
+Reviewed-by: Adam Jackson <ajax@redhat.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ hw/xfree86/common/xf86platformBus.c | 23 +++++++++++++++++++++++
+ hw/xfree86/loader/loadmod.c         |  1 +
+ hw/xfree86/man/xorg.conf.man        | 16 ++++++++++++++++
+ hw/xfree86/parser/OutputClass.c     | 15 +++++++++++++++
+ hw/xfree86/parser/xf86Parser.h      |  1 +
+ 5 files changed, 56 insertions(+)
+
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index fc17d15..0b5795f 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -40,6 +40,7 @@
+ #include "hotplug.h"
+ #include "systemd-logind.h"
+ 
++#include "loaderProcs.h"
+ #include "xf86.h"
+ #include "xf86_OSproc.h"
+ #include "xf86Priv.h"
+@@ -287,6 +288,7 @@ xf86platformProbe(void)
+     int i;
+     Bool pci = TRUE;
+     XF86ConfOutputClassPtr cl;
++    char *old_path, *path = NULL;
+ 
+     config_odev_probe(xf86PlatformDeviceProbe);
+ 
+@@ -300,8 +302,29 @@ xf86platformProbe(void)
+         if (pci && (strncmp(busid, "pci:", 4) == 0)) {
+             platform_find_pci_info(&xf86_platform_devices[i], busid);
+         }
++
++        /*
++         * Deal with OutputClass ModulePath directives, these must be
++         * processed before we do any module loading.
++         */
++        for (cl = xf86configptr->conf_outputclass_lst; cl; cl = cl->list.next) {
++            if (!OutputClassMatches(cl, &xf86_platform_devices[i]))
++                continue;
++
++            if (cl->modulepath && xf86ModPathFrom != X_CMDLINE) {
++                old_path = path;
++                XNFasprintf(&path, "%s,%s", cl->modulepath,
++                            path ? path : xf86ModulePath);
++                free(old_path);
++                xf86Msg(X_CONFIG, "OutputClass \"%s\" ModulePath extended to \"%s\"\n",
++                        cl->identifier, path);
++                LoaderSetPath(path);
++            }
++        }
+     }
+ 
++    free(path);
++
+     /* First see if there is an OutputClass match marking a device as primary */
+     for (i = 0; i < xf86_num_platform_devices; i++) {
+         struct xf86_platform_device *dev = &xf86_platform_devices[i];
+diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
+index 8bf6836..940f5fc 100644
+--- a/hw/xfree86/loader/loadmod.c
++++ b/hw/xfree86/loader/loadmod.c
+@@ -184,6 +184,7 @@ LoaderSetPath(const char *path)
+     if (!path)
+         return;
+ 
++    FreeStringList(defaultPathList);
+     defaultPathList = InitPathList(path);
+ }
+ 
+diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man
+index 79b71a8..00ebf56 100644
+--- a/hw/xfree86/man/xorg.conf.man
++++ b/hw/xfree86/man/xorg.conf.man
+@@ -1300,6 +1300,22 @@ This option specifies that the matched device should be treated as the
+ primary GPU, replacing the selection of the GPU used as output by the
+ firmware. If multiple output devices match an OutputClass section with
+ the PrimaryGPU option set, the first one enumerated becomes the primary GPU.
++.PP
++A
++.B OutputClass
++Section may contain
++.B ModulePath
++entries. When an output device matches an
++.B OutputClass
++section, any
++.B ModulePath
++entries in that
++.B OutputClass
++are pre-pended to the search path for loadable Xorg server modules. See
++.B ModulePath
++in the
++.B Files
++section for more info.
+ .SH "DEVICE SECTION"
+ The config file may have multiple
+ .B Device
+diff --git a/hw/xfree86/parser/OutputClass.c b/hw/xfree86/parser/OutputClass.c
+index f813ee6..01b348f 100644
+--- a/hw/xfree86/parser/OutputClass.c
++++ b/hw/xfree86/parser/OutputClass.c
+@@ -36,6 +36,7 @@ static const xf86ConfigSymTabRec OutputClassTab[] = {
+     {ENDSECTION, "endsection"},
+     {IDENTIFIER, "identifier"},
+     {DRIVER, "driver"},
++    {MODULEPATH, "modulepath"},
+     {OPTION, "option"},
+     {MATCH_DRIVER, "matchdriver"},
+     {-1, ""},
+@@ -53,6 +54,7 @@ xf86freeOutputClassList(XF86ConfOutputClassPtr ptr)
+         TestFree(ptr->identifier);
+         TestFree(ptr->comment);
+         TestFree(ptr->driver);
++        TestFree(ptr->modulepath);
+ 
+         xorg_list_for_each_entry_safe(group, next, &ptr->match_driver, entry) {
+             xorg_list_del(&group->entry);
+@@ -115,6 +117,19 @@ xf86parseOutputClassSection(void)
+             else
+                 ptr->driver = xf86_lex_val.str;
+             break;
++        case MODULEPATH:
++            if (xf86getSubToken(&(ptr->comment)) != STRING)
++                Error(QUOTE_MSG, "ModulePath");
++            if (ptr->modulepath) {
++                char *path;
++                XNFasprintf(&path, "%s,%s", ptr->modulepath, xf86_lex_val.str);
++                free(xf86_lex_val.str);
++                free(ptr->modulepath);
++                ptr->modulepath = path;
++            } else {
++                ptr->modulepath = xf86_lex_val.str;
++            }
++            break;
+         case OPTION:
+             ptr->option_lst = xf86parseOption(ptr->option_lst);
+             break;
+diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h
+index 897edab..e014048 100644
+--- a/hw/xfree86/parser/xf86Parser.h
++++ b/hw/xfree86/parser/xf86Parser.h
+@@ -337,6 +337,7 @@ typedef struct {
+     GenericListRec list;
+     char *identifier;
+     char *driver;
++    char *modulepath;
+     struct xorg_list match_driver;
+     XF86OptionPtr option_lst;
+     char *comment;
+-- 
+2.9.3
+
diff --git a/abs/core/xorg-server/xserver-autobind-hotplug.patch b/abs/core/xorg-server/xserver-autobind-hotplug.patch
new file mode 100644
index 0000000..8025cbd
--- /dev/null
+++ b/abs/core/xorg-server/xserver-autobind-hotplug.patch
@@ -0,0 +1,302 @@
+From 4471df41ea6e94834a2b10643ca7fcd69682d276 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Fri, 17 Aug 2012 09:49:24 +1000
+Subject: [PATCH xserver v3] autobind GPUs to the screen
+
+This is a modified version of a patch we've been carry-ing in Fedora and
+RHEL for years now. This patch automatically adds secondary GPUs to the
+master as output sink / offload source making e.g. the use of
+slave-outputs just work, with requiring the user to manually run
+"xrandr --setprovideroutputsource" before he can hookup an external
+monitor to his hybrid graphics laptop.
+
+There is one problem with this patch, which is why it was not upstreamed
+before. What to do when a secondary GPU gets detected really is a policy
+decission (e.g. one may want to autobind PCI GPUs but not USB ones) and
+as such should be under control of the Desktop Environment.
+
+Unconditionally adding autobinding support to the xserver will result
+in races between the DE dealing with the hotplug of a secondary GPU
+and the server itself dealing with it.
+
+However we've waited for years for any Desktop Environments to actually
+start doing some sort of autoconfiguration of secondary GPUs and there
+is still not a single DE dealing with this, so I believe that it is
+time to upstream this now.
+
+To avoid potential future problems if any DEs get support for doing
+secondary GPU configuration themselves, the new autobind functionality
+is made optional. Since no DEs currently support doing this themselves it
+is enabled by default. When DEs grow support for doing this themselves
+they can disable the servers autobinding through the servers cmdline or a
+xorg.conf snippet.
+
+Signed-off-by: Dave Airlie <airlied@gmail.com>
+[hdegoede@redhat.com: Make configurable, fix with nvidia, submit upstream]
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+Changes in v2:
+-Make the default enabled instead of installing a xorg.conf
+ snippet which enables it unconditionally
+Changes in v3:
+-Handle GPUScreen autoconfig in randr/rrprovider.c, looking at
+ rrScrPriv->provider, rather then in hw/xfree86/modes/xf86Crtc.c
+ looking at xf86CrtcConfig->provider. This fixes the autoconfig not
+ working with the nvidia binary driver
+---
+ hw/xfree86/common/xf86Config.c      | 19 +++++++++++++++++++
+ hw/xfree86/common/xf86Globals.c     |  2 ++
+ hw/xfree86/common/xf86Init.c        | 20 ++++++++++++++++++++
+ hw/xfree86/common/xf86Priv.h        |  1 +
+ hw/xfree86/common/xf86Privstr.h     |  1 +
+ hw/xfree86/common/xf86platformBus.c |  4 ++++
+ hw/xfree86/man/Xorg.man             |  7 +++++++
+ hw/xfree86/man/xorg.conf.man        |  6 ++++++
+ randr/randrstr.h                    |  3 +++
+ randr/rrprovider.c                  | 22 ++++++++++++++++++++++
+ 10 files changed, 85 insertions(+)
+
+diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
+index 21daf1a..df3ca50 100644
+--- a/hw/xfree86/common/xf86Config.c
++++ b/hw/xfree86/common/xf86Config.c
+@@ -719,6 +719,7 @@ typedef enum {
+     FLAG_DRI2,
+     FLAG_USE_SIGIO,
+     FLAG_AUTO_ADD_GPU,
++    FLAG_AUTO_BIND_GPU,
+     FLAG_MAX_CLIENTS,
+     FLAG_IGLX,
+ } FlagValues;
+@@ -778,6 +779,8 @@ static OptionInfoRec FlagOptions[] = {
+      {0}, FALSE},
+     {FLAG_AUTO_ADD_GPU, "AutoAddGPU", OPTV_BOOLEAN,
+      {0}, FALSE},
++    {FLAG_AUTO_BIND_GPU, "AutoBindGPU", OPTV_BOOLEAN,
++     {0}, FALSE},
+     {FLAG_MAX_CLIENTS, "MaxClients", OPTV_INTEGER,
+      {0}, FALSE },
+     {FLAG_IGLX, "IndirectGLX", OPTV_BOOLEAN,
+@@ -857,6 +860,22 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
+     }
+     xf86Msg(from, "%sutomatically adding GPU devices\n",
+             xf86Info.autoAddGPU ? "A" : "Not a");
++
++    if (xf86AutoBindGPUDisabled) {
++        xf86Info.autoBindGPU = FALSE;
++        from = X_CMDLINE;
++    }
++    else if (xf86IsOptionSet(FlagOptions, FLAG_AUTO_BIND_GPU)) {
++        xf86GetOptValBool(FlagOptions, FLAG_AUTO_BIND_GPU,
++                          &xf86Info.autoBindGPU);
++        from = X_CONFIG;
++    }
++    else {
++        from = X_DEFAULT;
++    }
++    xf86Msg(from, "%sutomatically binding GPU devices\n",
++            xf86Info.autoBindGPU ? "A" : "Not a");
++
+     /*
+      * Set things up based on the config file information.  Some of these
+      * settings may be overridden later when the command line options are
+diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c
+index e962b75..0d1e31b 100644
+--- a/hw/xfree86/common/xf86Globals.c
++++ b/hw/xfree86/common/xf86Globals.c
+@@ -136,6 +136,7 @@ xf86InfoRec xf86Info = {
+ #else
+     .autoAddGPU = FALSE,
+ #endif
++    .autoBindGPU = TRUE,
+ };
+ 
+ const char *xf86ConfigFile = NULL;
+@@ -197,6 +198,7 @@ Bool xf86FlipPixels = FALSE;
+ Gamma xf86Gamma = { 0.0, 0.0, 0.0 };
+ 
+ Bool xf86AllowMouseOpenFail = FALSE;
++Bool xf86AutoBindGPUDisabled = FALSE;
+ 
+ #ifdef XF86VIDMODE
+ Bool xf86VidModeDisabled = FALSE;
+diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
+index a544b65..b0cba3d 100644
+--- a/hw/xfree86/common/xf86Init.c
++++ b/hw/xfree86/common/xf86Init.c
+@@ -76,6 +76,7 @@
+ #include "xf86DDC.h"
+ #include "xf86Xinput.h"
+ #include "xf86InPriv.h"
++#include "xf86Crtc.h"
+ #include "picturestr.h"
+ 
+ #include "xf86Bus.h"
+@@ -298,6 +299,19 @@ xf86PrivsElevated(void)
+ }
+ 
+ static void
++xf86AutoConfigOutputDevices(void)
++{
++    int i;
++
++    if (!xf86Info.autoBindGPU)
++        return;
++
++    for (i = 0; i < xf86NumGPUScreens; i++)
++        RRProviderAutoConfigGpuScreen(xf86ScrnToScreen(xf86GPUScreens[i]),
++                                      xf86ScrnToScreen(xf86Screens[0]));
++}
++
++static void
+ InstallSignalHandlers(void)
+ {
+     /*
+@@ -871,6 +885,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
+     for (i = 0; i < xf86NumGPUScreens; i++)
+         AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
+ 
++    xf86AutoConfigOutputDevices();
++
+     xf86VGAarbiterWrapFunctions();
+     if (sigio_blocked)
+         input_unlock();
+@@ -1389,6 +1405,10 @@ ddxProcessArgument(int argc, char **argv, int i)
+         xf86Info.iglxFrom = X_CMDLINE;
+         return 0;
+     }
++    if (!strcmp(argv[i], "-noautoBindGPU")) {
++        xf86AutoBindGPUDisabled = TRUE;
++        return 1;
++    }
+ 
+     /* OS-specific processing */
+     return xf86ProcessArgument(argc, argv, i);
+diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
+index c1f8a18..9a3d0df 100644
+--- a/hw/xfree86/common/xf86Priv.h
++++ b/hw/xfree86/common/xf86Priv.h
+@@ -46,6 +46,7 @@
+ extern _X_EXPORT const char *xf86ConfigFile;
+ extern _X_EXPORT const char *xf86ConfigDir;
+ extern _X_EXPORT Bool xf86AllowMouseOpenFail;
++extern _X_EXPORT Bool xf86AutoBindGPUDisabled;
+ 
+ #ifdef XF86VIDMODE
+ extern _X_EXPORT Bool xf86VidModeDisabled;
+diff --git a/hw/xfree86/common/xf86Privstr.h b/hw/xfree86/common/xf86Privstr.h
+index c29b3cc..4c5f54b 100644
+--- a/hw/xfree86/common/xf86Privstr.h
++++ b/hw/xfree86/common/xf86Privstr.h
+@@ -102,6 +102,7 @@ typedef struct {
+     MessageType dri2From;
+ 
+     Bool autoAddGPU;
++    Bool autoBindGPU;
+ } xf86InfoRec, *xf86InfoPtr;
+ 
+ #ifdef DPMSExtension
+diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c
+index 063e81c..42789ca 100644
+--- a/hw/xfree86/common/xf86platformBus.c
++++ b/hw/xfree86/common/xf86platformBus.c
+@@ -48,6 +48,7 @@
+ #include "Pci.h"
+ #include "xf86platformBus.h"
+ #include "xf86Config.h"
++#include "xf86Crtc.h"
+ 
+ #include "randrstr.h"
+ int platformSlotClaimed;
+@@ -579,6 +580,9 @@ xf86platformAddDevice(int index)
+    }
+    /* attach unbound to 0 protocol screen */
+    AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen);
++   if (xf86Info.autoBindGPU)
++       RRProviderAutoConfigGpuScreen(xf86ScrnToScreen(xf86GPUScreens[i]),
++                                     xf86ScrnToScreen(xf86Screens[0]));
+ 
+    RRResourcesChanged(xf86Screens[0]->pScreen);
+    RRTellChanged(xf86Screens[0]->pScreen);
+diff --git a/hw/xfree86/man/Xorg.man b/hw/xfree86/man/Xorg.man
+index def9bfc..8df6b7d 100644
+--- a/hw/xfree86/man/Xorg.man
++++ b/hw/xfree86/man/Xorg.man
+@@ -283,6 +283,13 @@ is a comma separated list of directories to search for
+ server modules.  This option is only available when the server is run
+ as root (i.e, with real-uid 0).
+ .TP 8
++.B \-noautoBindGPU
++Disable automatically setting secondary GPUs up as output sinks and offload
++sources. This is equivalent to setting the
++.B AutoBindGPU
++xorg.conf(__filemansuffix__) file option. To
++.B false.
++.TP 8
+ .B \-nosilk
+ Disable Silken Mouse support.
+ .TP 8
+diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man
+index 7d0c524..3e596e4 100644
+--- a/hw/xfree86/man/xorg.conf.man
++++ b/hw/xfree86/man/xorg.conf.man
+@@ -673,6 +673,12 @@ Enabled by default.
+ If this option is disabled, then no GPU devices will be added from the udev
+ backend. Enabled by default. (May need to be disabled to setup Xinerama).
+ .TP 7
++.BI "Option \*qAutoBindGPU\*q  \*q" boolean \*q
++If enabled then secondary GPUs will be automatically set up as output-sinks and
++offload-sources. Making e.g. laptop outputs connected only to the secondary
++GPU directly available for use without needing to run
++"xrandr --setprovideroutputsource". Enabled by default.
++.TP 7
+ .BI "Option \*qLog\*q \*q" string \*q
+ This option controls whether the log is flushed and/or synced to disk after
+ each message.
+diff --git a/randr/randrstr.h b/randr/randrstr.h
+index 706e9a7..66999d5 100644
+--- a/randr/randrstr.h
++++ b/randr/randrstr.h
+@@ -976,6 +976,9 @@ RRProviderLookup(XID id, RRProviderPtr *provider_p);
+ extern _X_EXPORT void
+ RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider);
+ 
++extern _X_EXPORT void
++RRProviderAutoConfigGpuScreen(ScreenPtr pScreen, ScreenPtr masterScreen);
++
+ /* rrproviderproperty.c */
+ 
+ extern _X_EXPORT void
+diff --git a/randr/rrprovider.c b/randr/rrprovider.c
+index f9df67e..abc5685 100644
+--- a/randr/rrprovider.c
++++ b/randr/rrprovider.c
+@@ -482,3 +482,25 @@ RRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider)
+ 
+     WriteEventsToClient(client, 1, (xEvent *) &pe);
+ }
++
++void
++RRProviderAutoConfigGpuScreen(ScreenPtr pScreen, ScreenPtr masterScreen)
++{
++    rrScrPrivPtr pScrPriv = rrGetScrPriv(pScreen);
++    rrScrPrivPtr masterPriv = rrGetScrPriv(masterScreen);
++    RRProviderPtr provider = pScrPriv->provider;
++    RRProviderPtr master_provider = masterPriv->provider;
++
++    if (!provider || !master_provider)
++        return;
++
++    if ((provider->capabilities & RR_Capability_SinkOutput) &&
++        (master_provider->capabilities & RR_Capability_SourceOutput)) {
++        pScrPriv->rrProviderSetOutputSource(pScreen, provider, master_provider);
++        RRInitPrimeSyncProps(pScreen);
++    }
++
++    if ((provider->capabilities & RR_Capability_SourceOffload) &&
++        (master_provider->capabilities & RR_Capability_SinkOffload))
++        pScrPriv->rrProviderSetOffloadSink(pScreen, provider, master_provider);
++}
+-- 
+2.9.3
+
-- 
cgit v0.12


From c41e6429ff29debaba2989cd1daef2c16f0a5899 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:32:27 +0000
Subject: xorg-bdftopcf: update to 1.0.5

---
 abs/core/xorg-bdftopcf/PKGBUILD | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/abs/core/xorg-bdftopcf/PKGBUILD b/abs/core/xorg-bdftopcf/PKGBUILD
index af1cc4e..627256a 100644
--- a/abs/core/xorg-bdftopcf/PKGBUILD
+++ b/abs/core/xorg-bdftopcf/PKGBUILD
@@ -1,18 +1,20 @@
-# $Id: PKGBUILD 150979 2012-02-24 12:29:18Z allan $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-bdftopcf
-pkgver=1.0.3
-pkgrel=2
+pkgver=1.0.5
+pkgrel=1
 pkgdesc="Convert X font from Bitmap Distribution Format to Portable Compiled Format"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libxfont')
 makedepends=('xorg-util-macros' 'xproto')
 groups=('xorg' 'xorg-apps')
-source=(http://xorg.freedesktop.org/archive/individual/app/bdftopcf-${pkgver}.tar.bz2)
-sha1sums=('146b4ece2867479045c3b4593b22c9f1d21da14a')
+source=(https://xorg.freedesktop.org/archive/individual/app/bdftopcf-${pkgver}.tar.bz2{,.sig})
+sha256sums=('38f447be0c61f94c473f128cf519dd0cff63b5d7775240a2e895a183a61e2026'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # "Alan Coopersmith <alan.coopersmith@oracle.com>"
 
 build() {
   cd "${srcdir}/bdftopcf-${pkgver}"
-- 
cgit v0.12


From 789899af2fbacf1e6659e56cce963af450a562df Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:33:52 +0000
Subject: xorg-docs: update to 1.7.1

---
 abs/core/xorg-docs/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-docs/PKGBUILD b/abs/core/xorg-docs/PKGBUILD
index 94c8fc5..5805c53 100644
--- a/abs/core/xorg-docs/PKGBUILD
+++ b/abs/core/xorg-docs/PKGBUILD
@@ -1,26 +1,28 @@
-# $Id: PKGBUILD 160907 2012-06-06 16:56:36Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-docs
-pkgver=1.7
+pkgver=1.7.1
 pkgrel=1
 pkgdesc="X.org documentations"
 arch=(any)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('man-db')
 groups=('xorg')
-source=(${url}/archive/individual/doc/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('b9b1918bd365e9eb29c325e76bb8c4d774d37be707e433fb0af94da35683375f')
+source=(${url}/archive/individual/doc/${pkgname}-${pkgver}.tar.bz2{,.sig})
+sha256sums=('24b8677c3462c10465cf50d40576d76682acd5835526093a575865b2aa242c4b'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') #Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
+  cd ${pkgname}-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
+  cd ${pkgname}-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   cd "${pkgdir}/usr/share/licenses/${pkgname}"
-- 
cgit v0.12


From 9cab1bc033abee7370bb8e2c4bf203d8b66ab091 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:34:53 +0000
Subject: xorg-font-util: update to 1.3.1

---
 abs/core/xorg-font-util/PKGBUILD | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/abs/core/xorg-font-util/PKGBUILD b/abs/core/xorg-font-util/PKGBUILD
index 2589f10..f0458b0 100644
--- a/abs/core/xorg-font-util/PKGBUILD
+++ b/abs/core/xorg-font-util/PKGBUILD
@@ -1,17 +1,19 @@
-# $Id: PKGBUILD 151743 2012-03-01 23:01:51Z bisson $
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id$
 # Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-font-util
-pkgver=1.3.0
+pkgver=1.3.1
 pkgrel=1
 pkgdesc='X.Org font utilities'
-url='http://xorg.freedesktop.org/'
+url='https://xorg.freedesktop.org/'
 arch=('i686' 'x86_64')
 license=('custom')
 makedepends=('xorg-util-macros')
-source=("${url}/releases/individual/font/font-util-${pkgver}.tar.bz2")
-sha1sums=('a015f4c5a35d98af72835797293697e0eb9cd506')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E')
+source=("${url}/releases/individual/font/font-util-${pkgver}.tar.bz2"{,.sig})
+sha256sums=('aa7ebdb0715106dd255082f2310dbaa2cd7e225957c2a77d719720c7cc92b921'
+            'SKIP')
 
 replaces=('font-util')
 provides=('font-util')
-- 
cgit v0.12


From 096e0eb705db32fe2a2330ef0661a12bd1d0a6f3 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:39:51 +0000
Subject: xorg-fonts-100dpi: update to 1.0.3

---
 abs/core/xorg-fonts-100dpi/PKGBUILD       | 32 +++++++++++++++----------------
 abs/core/xorg-fonts-100dpi/xfonts.install | 15 ---------------
 2 files changed, 16 insertions(+), 31 deletions(-)
 delete mode 100644 abs/core/xorg-fonts-100dpi/xfonts.install

diff --git a/abs/core/xorg-fonts-100dpi/PKGBUILD b/abs/core/xorg-fonts-100dpi/PKGBUILD
index aae5499..9d09de6 100644
--- a/abs/core/xorg-fonts-100dpi/PKGBUILD
+++ b/abs/core/xorg-fonts-100dpi/PKGBUILD
@@ -1,26 +1,26 @@
-# $Id: PKGBUILD 150386 2012-02-17 11:05:50Z allan $
-# Maintainer: Alexander Baldeck <alexander@archlinux.org>
+# $Id$
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
+
 pkgname=xorg-fonts-100dpi
-pkgver=1.0.1
-pkgrel=4
+pkgver=1.0.3
+pkgrel=3
 pkgdesc="X.org 100dpi fonts"
 arch=('any')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('xorg-fonts-encodings' 'xorg-fonts-alias' 'xorg-font-utils' 'fontconfig')
 groups=('xorg')
-install=xfonts.install
-source=(${url}/releases/individual/font/font-adobe-100dpi-1.0.1.tar.bz2
-        ${url}/releases/individual/font/font-adobe-utopia-100dpi-1.0.2.tar.bz2
-        ${url}/releases/individual/font/font-bh-100dpi-1.0.1.tar.bz2
-        ${url}/releases/individual/font/font-bh-lucidatypewriter-100dpi-1.0.1.tar.bz2
-        ${url}/releases/individual/font/font-bitstream-100dpi-1.0.1.tar.bz2)
-md5sums=('c754c3f4a5e08442bf6972b9466625ed'
-         '1c3a2c26bd3f6e406fbadc7380efa369'
-         '8af580b87e17ddacdf0ce3d775248387'
-         'a2b3951dbc6ddb2e4c7e09519dd13333'
-         '3b8748f8029c53595e4a4a1b23fa790a')
+source=(${url}/releases/individual/font/font-adobe-100dpi-1.0.3.tar.bz2
+        ${url}/releases/individual/font/font-adobe-utopia-100dpi-1.0.4.tar.bz2
+        ${url}/releases/individual/font/font-bh-100dpi-1.0.3.tar.bz2
+        ${url}/releases/individual/font/font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2
+        ${url}/releases/individual/font/font-bitstream-100dpi-1.0.3.tar.bz2)
+md5sums=('1347c3031b74c9e91dc4dfa53b12f143'
+         '66fb6de561648a6dce2755621d6aea17'
+         '9f11ade089d689b9d59e0f47d26f39cd'
+         'c8b73a53dcefe3e8d3907d3500e484a9'
+         '6b223a54b15ecbd5a1bc52312ad790d8')
 
 build() {
   cd "${srcdir}"
diff --git a/abs/core/xorg-fonts-100dpi/xfonts.install b/abs/core/xorg-fonts-100dpi/xfonts.install
deleted file mode 100644
index 5c5e8a2..0000000
--- a/abs/core/xorg-fonts-100dpi/xfonts.install
+++ /dev/null
@@ -1,15 +0,0 @@
-post_install() {
-  echo -n "Updating font cache... "
-  fc-cache -f > /dev/null
-  mkfontscale /usr/share/fonts/100dpi
-  mkfontdir /usr/share/fonts/100dpi
-  echo "done."
-}
-
-post_upgrade() {
-  post_install $1
-}
-
-post_remove() {
-  post_install $1
-}
-- 
cgit v0.12


From b1f100c22c46aa15529b9e98f29c99cacaaff394 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:41:50 +0000
Subject: xorg-fonts-alias: update to 1.0.3

---
 abs/core/xorg-fonts-alias/PKGBUILD | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/abs/core/xorg-fonts-alias/PKGBUILD b/abs/core/xorg-fonts-alias/PKGBUILD
index 40f3ee5..b337f82 100644
--- a/abs/core/xorg-fonts-alias/PKGBUILD
+++ b/abs/core/xorg-fonts-alias/PKGBUILD
@@ -1,16 +1,17 @@
-# $Id: PKGBUILD 141648 2011-11-01 09:57:08Z pierre $
+# $Id$
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-fonts-alias
-pkgver=1.0.2
-pkgrel=2
+pkgver=1.0.3
+pkgrel=1
 pkgdesc="X.org font alias files"
 arch=('any')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 source=("${url}/releases/individual/font/font-alias-${pkgver}.tar.bz2"
         'LICENSE')
-md5sums=('9d40dba6fb8cb58dacb433fc7bcaafca'
+md5sums=('6d25f64796fef34b53b439c2e9efa562'
          'ff91ae6d96d76130482d04653e7a836a')
 
 build() {
-- 
cgit v0.12


From 7bef2365c61e8153ad64f09c1726d6662e313ba4 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:45:29 +0000
Subject: xorg-fonts-misc: update to 1.0.3

---
 abs/core/xorg-fonts-misc/PKGBUILD       | 51 +++++++++++++++++++--------------
 abs/core/xorg-fonts-misc/xfonts.install | 15 ----------
 2 files changed, 30 insertions(+), 36 deletions(-)
 delete mode 100644 abs/core/xorg-fonts-misc/xfonts.install

diff --git a/abs/core/xorg-fonts-misc/PKGBUILD b/abs/core/xorg-fonts-misc/PKGBUILD
index ad87867..b0d9c99 100644
--- a/abs/core/xorg-fonts-misc/PKGBUILD
+++ b/abs/core/xorg-fonts-misc/PKGBUILD
@@ -1,15 +1,17 @@
-# $Id: PKGBUILD 150380 2012-02-17 10:25:47Z allan $
+# $Id$
 #Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-fonts-misc
-pkgver=1.0.1
-pkgrel=2
+pkgver=1.0.3
+pkgrel=5
 pkgdesc="X.org misc fonts"
 arch=(any)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
-depends=(xorg-fonts-encodings xorg-fonts-alias xorg-font-utils fontconfig)
-install=xfonts.install
+depends=('xorg-fonts-encodings' 'xorg-fonts-alias' 'xorg-font-utils' 'fontconfig')
+replaces=('font-misc-ethiopic' 'font-misc-meltho')
+provides=('font-misc-ethiopic' 'font-misc-meltho')
+conflicts=('font-misc-ethiopic' 'font-misc-meltho')
 source=(${url}/releases/individual/font/font-arabic-misc-${pkgver}.tar.bz2
         ${url}/releases/individual/font/font-cursor-misc-${pkgver}.tar.bz2
         ${url}/releases/individual/font/font-daewoo-misc-${pkgver}.tar.bz2
@@ -17,23 +19,27 @@ source=(${url}/releases/individual/font/font-arabic-misc-${pkgver}.tar.bz2
         ${url}/releases/individual/font/font-isas-misc-${pkgver}.tar.bz2
         ${url}/releases/individual/font/font-jis-misc-${pkgver}.tar.bz2
         ${url}/releases/individual/font/font-micro-misc-${pkgver}.tar.bz2
-        ${url}/releases/individual/font/font-misc-misc-1.1.0.tar.bz2
+        ${url}/releases/individual/font/font-misc-ethiopic-${pkgver}.tar.bz2
+        ${url}/releases/individual/font/font-misc-meltho-${pkgver}.tar.bz2
+        ${url}/releases/individual/font/font-misc-misc-1.1.2.tar.bz2
         ${url}/releases/individual/font/font-mutt-misc-${pkgver}.tar.bz2
-        ${url}/releases/individual/font/font-schumacher-misc-1.1.0.tar.bz2
+        ${url}/releases/individual/font/font-schumacher-misc-1.1.2.tar.bz2
         ${url}/releases/individual/font/font-sony-misc-${pkgver}.tar.bz2
         ${url}/releases/individual/font/font-sun-misc-${pkgver}.tar.bz2)
-md5sums=('817ceb99636c873ad7679fe2a468678d'
-         '13c21c4d74155c662152a1a74f249d96'
-         '05597e2b193a7b7de2ca525468276b1d'
-         '05714516824c680ce747c6ef9d2fbbdd'
-         '88b5b32c5a27576e9d00675bcc966806'
-         '5835c99d056f4a29d7d6a5ae873cf00e'
-         '6350117efebe340f33e818f4a33e4e4b'
-         '878bfd4e9f14c1279cea3a8392e0dbdd'
-         'aab7ac62b960e77aa11d032bafe1d460'
-         '86f4b7d8b11a2e6da70884c59b5866a3'
-         '7b6f5117814599b86ed3470de6c62aa3'
-         '5a185c5549a650bf062d343e128682ca')
+sha256sums=('505d9b12a7093389e67a925dfda6346bde26d114c67f0cdca7aeda6e5d3344f4'
+            '17363eb35eece2e08144da5f060c70103b59d0972b4f4d77fd84c9a7a2dba635'
+            'bc65de70bee12698caa95b523d3b652c056347e17b68cc8b5d6bbdff235c4be8'
+            'e19ddf8b5f8de914d81675358fdfe37762e9ce524887cc983adef34f2850ff7b'
+            '5824ab4b485951107dd245b8f7717d2822f1a6dbf6cea98f1ac7f49905c0a867'
+            '2b18ce10b367ebafe95a17de799b6db9a24e2337188d124adaf68af05b1fac65'
+            '9a3381c10f32d9511f0ad4179df395914c50779103c16cddf7017f5220ed8db6'
+            '53cb1fd83afdbe7939c0eac34003676ee0e6023216892d98054db90b703c98a5'
+            '3721323f13855cf7ca609115a1f7b182491e9b2b9c6e01eb1a2c7f8edd480791'
+            'b8e77940e4e1769dc47ef1805918d8c9be37c708735832a07204258bacc11794'
+            'bd5f7adb34367c197773a9801df5bce7b019664941900b2a31fbfe1ff2830f8f'
+            'e444028656e0767e2eddc6d9aca462b16a2be75a47244dbc199b2c44eca87e5a'
+            '2043a326ba347c9da5ca1e9bc363e2521c3ea40b43b1f9662d333efd4867cff5'
+            '481f4fcbbf7005658b080b3cf342c8c76de752e77f47958b2b383de73266d2e0')
 
 build() {
   cd "${srcdir}"
@@ -60,4 +66,7 @@ package() {
     fi
   done
   rm -f ${pkgdir}/usr/share/fonts/*/fonts.*
-}
\ No newline at end of file
+  
+  # move .otf files to proper directory - FS#44250
+  mv ${pkgdir}/usr/share/fonts/misc/*.otf ${pkgdir}/usr/share/fonts/OTF/
+}
diff --git a/abs/core/xorg-fonts-misc/xfonts.install b/abs/core/xorg-fonts-misc/xfonts.install
deleted file mode 100644
index 7d21ab5..0000000
--- a/abs/core/xorg-fonts-misc/xfonts.install
+++ /dev/null
@@ -1,15 +0,0 @@
-post_install() {
-  echo -n "Updating font cache... "
-  fc-cache -f > /dev/null
-  mkfontscale /usr/share/fonts/misc
-  mkfontdir /usr/share/fonts/misc
-  echo "done."
-}
-
-post_upgrade() {
-  post_install $1
-}
-
-post_remove() {
-  post_install $1
-}
-- 
cgit v0.12


From 249fcde418f1d12eb472e2bb8a23d31783734ce4 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:46:29 +0000
Subject: xorg-iceauth: update to 1.0.7

---
 abs/core/xorg-iceauth/PKGBUILD | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/abs/core/xorg-iceauth/PKGBUILD b/abs/core/xorg-iceauth/PKGBUILD
index 9063e3a..4f55c7e 100644
--- a/abs/core/xorg-iceauth/PKGBUILD
+++ b/abs/core/xorg-iceauth/PKGBUILD
@@ -1,18 +1,21 @@
-# $Id: PKGBUILD 125572 2011-05-26 20:17:22Z andyrtr $
+# $Id$
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-iceauth
-pkgver=1.0.5
+pkgver=1.0.7
 pkgrel=1
 pkgdesc="ICE authority file utility"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libice')
 makedepends=('xorg-util-macros' 'xproto')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/iceauth-${pkgver}.tar.bz2)
-sha1sums=('d996c6ecaa93dcaccee4a11991eeacd40bddc13e')
+source=(https://xorg.freedesktop.org/archive/individual/app/iceauth-${pkgver}.tar.bz2{,.sig})
+sha256sums=('1216af2dee99b318fcf8bf9a259915273bcb37a7f1e7859af4f15d0ebf6f3f0a'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
   cd "${srcdir}/iceauth-${pkgver}"
-- 
cgit v0.12


From 2a60aa863499fa3ac28bb46eb1980d4805759d35 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:47:54 +0000
Subject: xorg-mkfontscale: update to 1.1.2

---
 abs/core/xorg-mkfontscale/PKGBUILD | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/abs/core/xorg-mkfontscale/PKGBUILD b/abs/core/xorg-mkfontscale/PKGBUILD
index 089af1e..a540ddb 100644
--- a/abs/core/xorg-mkfontscale/PKGBUILD
+++ b/abs/core/xorg-mkfontscale/PKGBUILD
@@ -1,18 +1,21 @@
-# $Id: PKGBUILD 149834 2012-02-11 10:04:54Z andyrtr $
+# $Id$
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-mkfontscale
-pkgver=1.1.0
+pkgver=1.1.2
 pkgrel=1
 pkgdesc="Create an index of scalable font files for X"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('freetype2' 'libfontenc')
 makedepends=('xorg-util-macros' 'xproto')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/mkfontscale-${pkgver}.tar.bz2)
-sha1sums=('ba021369ae3b364ba083b9eb5e570e54b21fd583')
+source=(https://xorg.freedesktop.org/archive/individual/app/mkfontscale-${pkgver}.tar.bz2{,.sig})
+sha256sums=('8c6d5228af885477b9aec60ca6f172578e7d2de42234357af62fb00439453f20'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
   cd "${srcdir}/mkfontscale-${pkgver}"
-- 
cgit v0.12


From 2cb3e44be283886d42bb97b071a0a9e3c1b1bfa5 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:49:10 +0000
Subject: xorg-sessreg: update to 1.1.1

---
 abs/core/xorg-sessreg/PKGBUILD | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/abs/core/xorg-sessreg/PKGBUILD b/abs/core/xorg-sessreg/PKGBUILD
index aa97c8f..7a9fbd6 100644
--- a/abs/core/xorg-sessreg/PKGBUILD
+++ b/abs/core/xorg-sessreg/PKGBUILD
@@ -1,23 +1,30 @@
-# $Id: PKGBUILD 141120 2011-10-24 12:17:34Z jgc $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-sessreg
-pkgver=1.0.7
+pkgver=1.1.1
 pkgrel=1
 pkgdesc="Register X sessions in system utmp/utmpx databases"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('glibc')
 makedepends=('xorg-util-macros' 'xproto')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/sessreg-${pkgver}.tar.bz2)
-sha256sums=('8734ee580264ab92e984d8f84611dada89906d6b548334a5e7d4b0ddba7c2e52')
+source=(https://xorg.freedesktop.org/archive/individual/app/sessreg-${pkgver}.tar.bz2{,.sig})
+sha256sums=('78a76ae3f3f6a26547a34630d1b740f42344848b5fb6d7c9c7f7da255e35a6e1'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
+validpgpkeys+=('3BB639E56F861FA2E86505690FDD682D974CA72A') # "Matt Turner <mattst88@gmail.com>"
 
 build() {
   cd "${srcdir}/sessreg-${pkgver}"
   ./configure --prefix=/usr
   make
+}
+
+package() {
+  cd "${srcdir}/sessreg-${pkgver}"
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From 329ae16de1fb72a302bc009d41d0d422960f8692 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:50:25 +0000
Subject: xorg-setxkbmap: update to 1.3.1

---
 abs/core/xorg-setxkbmap/PKGBUILD | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/abs/core/xorg-setxkbmap/PKGBUILD b/abs/core/xorg-setxkbmap/PKGBUILD
index f48a852..0d91a16 100644
--- a/abs/core/xorg-setxkbmap/PKGBUILD
+++ b/abs/core/xorg-setxkbmap/PKGBUILD
@@ -1,29 +1,30 @@
-# $Id: PKGBUILD 154148 2012-03-23 17:34:14Z andyrtr $
-# Contributor: Jan de Groot <jgc@archlinux.org>
+# $Id$
 # Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-setxkbmap
-pkgver=1.3.0
+pkgver=1.3.1
 pkgrel=1
 pkgdesc='Set the keyboard using the X Keyboard Extension'
-url='http://xorg.freedesktop.org/'
+url='https://xorg.freedesktop.org/'
 license=('custom')
 arch=('i686' 'x86_64')
 depends=('libxkbfile')
 makedepends=('xorg-util-macros')
-source=("${url}/releases/individual/app/setxkbmap-${pkgver}.tar.bz2")
-sha1sums=('d10885d6215b06789961c67557df46406f99c2b7')
-
+source=(${url}/releases/individual/app/setxkbmap-${pkgver}.tar.bz2{,.sig})
+sha256sums=('a9ddb3963f263ba13f0ea105d8c45a531832140530217cc559587bb94f02d3e1'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 groups=('xorg-apps' 'xorg')
 
 build() {
-	cd "${srcdir}/setxkbmap-${pkgver}"
+	cd setxkbmap-${pkgver}
 	./configure --prefix=/usr
 	make
 }
 
 package() {
-	cd "${srcdir}/setxkbmap-${pkgver}"
+	cd setxkbmap-${pkgver}
 	make DESTDIR="${pkgdir}" install
 	install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From 0361a1062c58a93748b0053ecf54246300869054 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:51:53 +0000
Subject: xorg-util-macros: update to 1.19.1

---
 abs/core/xorg-util-macros/PKGBUILD | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/abs/core/xorg-util-macros/PKGBUILD b/abs/core/xorg-util-macros/PKGBUILD
index 2ea39bb..c884f7d 100644
--- a/abs/core/xorg-util-macros/PKGBUILD
+++ b/abs/core/xorg-util-macros/PKGBUILD
@@ -3,14 +3,16 @@
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-util-macros
-pkgver=1.19.0
+pkgver=1.19.1
 pkgrel=1
 pkgdesc="X.Org Autotools macros"
 arch=(any)
 license=('custom')
-url="http://xorg.freedesktop.org/"
-source=(${url}/releases/individual/util/util-macros-${pkgver}.tar.bz2)
-sha256sums=('2835b11829ee634e19fa56517b4cfc52ef39acea0cd82e15f68096e27cbed0ba')
+url="https://xorg.freedesktop.org/"
+source=(${url}/releases/individual/util/util-macros-${pkgver}.tar.bz2{,.sig})
+sha256sums=('18d459400558f4ea99527bc9786c033965a3db45bf4c6a32eefdc07aa9e306a6'
+            'SKIP')
+validpgpkeys=('3BB639E56F861FA2E86505690FDD682D974CA72A')
 
 build() {
   cd util-macros-${pkgver}
-- 
cgit v0.12


From 22e3f0747c0ae649ee5b361a74d93881ce9bd9fa Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:53:01 +0000
Subject: xorg-x11perf: update to 1.6.0

---
 abs/core/xorg-x11perf/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-x11perf/PKGBUILD b/abs/core/xorg-x11perf/PKGBUILD
index 7c7479dc..7bf4ccc 100644
--- a/abs/core/xorg-x11perf/PKGBUILD
+++ b/abs/core/xorg-x11perf/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 134289 2011-08-02 18:59:18Z jgc $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-x11perf
-pkgver=1.5.4
+pkgver=1.6.0
 pkgrel=1
 pkgdesc="Simple X server performance benchmarker"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11' 'libxmu' 'libxrender' 'libxft' 'libxext')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/x11perf-${pkgver}.tar.bz2)
-sha256sums=('24ee8857a2bf414b360addabf1c27ef797f7f504ee9bc409c151760bfbe53184')
+source=(https://xorg.freedesktop.org/archive/individual/app/x11perf-${pkgver}.tar.bz2{,.sig})
+sha256sums=('e87098dec1947572d70c62697a7b70bde1ab5668237d4660080eade6bc096751'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/x11perf-${pkgver}"
+  cd x11perf-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/x11perf-${pkgver}"
+  cd x11perf-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From 8b0288ebd41d3c2baae22d2b98527651d9a2128d Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:54:09 +0000
Subject: xorg-xauth: update to 1.0.10

---
 abs/core/xorg-xauth/PKGBUILD | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xauth/PKGBUILD b/abs/core/xorg-xauth/PKGBUILD
index cc8d300..97b90d8 100644
--- a/abs/core/xorg-xauth/PKGBUILD
+++ b/abs/core/xorg-xauth/PKGBUILD
@@ -1,27 +1,30 @@
-# $Id: PKGBUILD 154150 2012-03-23 19:14:18Z andyrtr $
+# $Id$
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xauth
-pkgver=1.0.7
+pkgver=1.0.10
 pkgrel=1
 pkgdesc="X.Org authorization settings program"
 arch=(i686 x86_64)
 license=('custom')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 depends=('libxmu')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(${url}/releases/individual/app/xauth-${pkgver}.tar.bz2)
-sha1sums=('54f93f0539a98900c36c4f7c8ae933f77699dc7b')
+source=(${url}/releases/individual/app/xauth-${pkgver}.tar.bz2{,.sig})
+sha256sums=('5afe42ce3cdf4f60520d1658d2b17face45c74050f39af45dccdc95e73fafc4d'
+            'SKIP')
+validpgpkeys=('3BB639E56F861FA2E86505690FDD682D974CA72A')
 
 build() {
-  cd "${srcdir}/xauth-${pkgver}"
+  cd xauth-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xauth-${pkgver}"
+  cd xauth-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -d -m755 "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From 24893ecf945442d90e4cfef35883ff047127351c Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:55:07 +0000
Subject: xorg-xbacklight: update to 1.2.1

---
 abs/core/xorg-xbacklight/PKGBUILD | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xbacklight/PKGBUILD b/abs/core/xorg-xbacklight/PKGBUILD
index 412b910..f5ea41e 100644
--- a/abs/core/xorg-xbacklight/PKGBUILD
+++ b/abs/core/xorg-xbacklight/PKGBUILD
@@ -1,27 +1,28 @@
-# $Id: PKGBUILD 166654 2012-09-14 14:36:40Z andyrtr $
+# $Id$
+# Maintainer: AndyRTR <andyrtr@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xbacklight
-pkgver=1.2.0
+pkgver=1.2.1
 pkgrel=1
 pkgdesc="RandR-based backlight control application"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('xcb-util')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xbacklight-${pkgver}.tar.bz2)
-sha256sums=('5152d6134fa592c9c14060d7324a7db104da0184cc9b2f9715e847f9354e36a5')
+source=(https://xorg.freedesktop.org/archive/individual/app/xbacklight-${pkgver}.tar.bz2)
+sha256sums=('17f6cf51a35eaa918abec36b7871d28b712c169312e22a0eaf1ffe8d6468362b')
 
 build() {
-  cd "${srcdir}/xbacklight-${pkgver}"
+  cd xbacklight-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xbacklight-${pkgver}"
+  cd xbacklight-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From 911c26f124daf6be219d03a656f960d6fec80947 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:56:20 +0000
Subject: xorg-xcmsdb: update to 1.0.5

---
 abs/core/xorg-xcmsdb/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xcmsdb/PKGBUILD b/abs/core/xorg-xcmsdb/PKGBUILD
index 37346f9..c02e4fb 100644
--- a/abs/core/xorg-xcmsdb/PKGBUILD
+++ b/abs/core/xorg-xcmsdb/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 150238 2012-02-15 16:35:38Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xcmsdb
-pkgver=1.0.4
+pkgver=1.0.5
 pkgrel=1
 pkgdesc="Device Color Characterization utility for X Color Management System"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xcmsdb-${pkgver}.tar.bz2)
-sha1sums=('a633f76af38ea40b33d55c3ac820fd19f17f9428')
+source=(https://xorg.freedesktop.org/archive/individual/app/xcmsdb-${pkgver}.tar.bz2{,.sig})
+sha256sums=('e5585361bb8b6a05bb814a8d0e444ee93e0f00180881d3070aff4571e97f67c6'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/xcmsdb-${pkgver}"
+  cd xcmsdb-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xcmsdb-${pkgver}"
+  cd xcmsdb-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From 3525224a8f6dafadf69cb9b82cb502a6ca1e1e9b Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:57:34 +0000
Subject: xorg-xdpyinfo: update to 1.3.2

---
 abs/core/xorg-xdpyinfo/PKGBUILD | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/abs/core/xorg-xdpyinfo/PKGBUILD b/abs/core/xorg-xdpyinfo/PKGBUILD
index b410125..b30cc60 100644
--- a/abs/core/xorg-xdpyinfo/PKGBUILD
+++ b/abs/core/xorg-xdpyinfo/PKGBUILD
@@ -1,23 +1,30 @@
-# $Id: PKGBUILD 141118 2011-10-24 12:15:25Z jgc $
+# $Id$
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xdpyinfo
-pkgver=1.3.0
+pkgver=1.3.2
 pkgrel=1
 pkgdesc="Display information utility for X"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11' 'libxext' 'libxtst' 'libxxf86vm' 'libxxf86dga' 'libxrender' 'libxcomposite' 'libxinerama' 'libdmx')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xdpyinfo-${pkgver}.tar.bz2)
-sha256sums=('23ee4944a32b5701b4379cb420729eb7a4dde54de2b5b006d4747855efd6d73f')
+source=(https://xorg.freedesktop.org/archive/individual/app/xdpyinfo-${pkgver}.tar.bz2{,.sig})
+sha256sums=('30238ed915619e06ceb41721e5f747d67320555cc38d459e954839c189ccaf51'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/xdpyinfo-${pkgver}"
+  cd xdpyinfo-${pkgver}
   ./configure --prefix=/usr
   make
+}
+
+package() {
+  cd xdpyinfo-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From d7ee7dd69304563a9488117a0416338910e34e86 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:58:24 +0000
Subject: xorg-xdriinfo: update to 1.0.5

---
 abs/core/xorg-xdriinfo/PKGBUILD | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/abs/core/xorg-xdriinfo/PKGBUILD b/abs/core/xorg-xdriinfo/PKGBUILD
index e2fb4a3..750e190 100644
--- a/abs/core/xorg-xdriinfo/PKGBUILD
+++ b/abs/core/xorg-xdriinfo/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 150958 2012-02-24 10:06:30Z pierre $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xdriinfo
-pkgver=1.0.4
-pkgrel=3
+pkgver=1.0.5
+pkgrel=1
 pkgdesc="Query configuration information of DRI drivers"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11' 'libgl')
-makedepends=('xorg-util-macros' 'glproto' 'mesa')
+makedepends=('xorg-util-macros' 'glproto')
 groups=('xorg-apps' 'xorg')
-source=("http://xorg.freedesktop.org/archive/individual/app/xdriinfo-${pkgver}.tar.bz2")
-sha1sums=('723482b3fc627d7cc6124fec43dd1c21d102daaa')
+source=(https://xorg.freedesktop.org/archive/individual/app/xdriinfo-${pkgver}.tar.bz2{,.sig})
+sha256sums=('4cba3766ef89557422062287248adeb933999071bad6f3ef9c0a478a3c680119'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/xdriinfo-${pkgver}"
+  cd xdriinfo-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xdriinfo-${pkgver}"
+  cd xdriinfo-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From 00859de8c92d09824bc579084a52b786ce770bdc Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 17:59:22 +0000
Subject: xorg-xev: update to 1.2.2

---
 abs/core/xorg-xev/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xev/PKGBUILD b/abs/core/xorg-xev/PKGBUILD
index c0380e6..91d9dcf 100644
--- a/abs/core/xorg-xev/PKGBUILD
+++ b/abs/core/xorg-xev/PKGBUILD
@@ -1,28 +1,30 @@
-# $Id: PKGBUILD 150821 2012-02-23 07:20:15Z andyrtr $
+# $Id$
 # Contributor: Jan de Groot <jgc@archlinux.org>
 # Maintainer: Gaetan Bisson <bisson@archlinux.org>
 
 pkgname=xorg-xev
-pkgver=1.2.0
+pkgver=1.2.2
 pkgrel=1
 pkgdesc='Print contents of X events'
-url='http://xorg.freedesktop.org/'
+url='https://xorg.freedesktop.org/'
 arch=('i686' 'x86_64')
 license=('custom')
 depends=('libx11' 'libxrandr')
 makedepends=('xorg-util-macros' 'xproto')
-source=("http://xorg.freedesktop.org/archive/individual/app/xev-${pkgver}.tar.bz2")
-sha1sums=('6b05706ed39382b5d08c5351c00ba7e127709eec')
+source=(https://xorg.freedesktop.org/archive/individual/app/xev-${pkgver}.tar.bz2{,.sig})
+sha256sums=('d94ae62a6c1af56c2961d71f5782076ac4116f0fa4e401420ac7e0db33dc314f'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 groups=('xorg-apps' 'xorg')
 
 build() {
-	cd "${srcdir}/xev-${pkgver}"
+	cd xev-${pkgver}
 	./configure --prefix=/usr
 	make
 }
 
 package() {
-	cd "${srcdir}/xev-${pkgver}"
+	cd xev-${pkgver}
 	make DESTDIR="${pkgdir}" install
 	install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From af3326d0caafea18dbe3c6e352a5374a7d2d873d Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:00:32 +0000
Subject: xorg-xgamma: update to 1.0.6

---
 abs/core/xorg-xgamma/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xgamma/PKGBUILD b/abs/core/xorg-xgamma/PKGBUILD
index e77997d..5226035 100644
--- a/abs/core/xorg-xgamma/PKGBUILD
+++ b/abs/core/xorg-xgamma/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 154160 2012-03-23 20:11:06Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xgamma
-pkgver=1.0.5
+pkgver=1.0.6
 pkgrel=1
 pkgdesc="Alter a monitor's gamma correction"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11' 'libxxf86vm')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xgamma-${pkgver}.tar.bz2)
-sha1sums=('9cd3272fd24f51b75223cf9c59949ded6df04800')
+source=(https://xorg.freedesktop.org/archive/individual/app/xgamma-${pkgver}.tar.bz2{,.sig})
+sha256sums=('0ef1c35b5c18b1b22317f455c8df13c0a471a8efad63c89c98ae3ce8c2b222d3'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/xgamma-${pkgver}"
+  cd xgamma-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xgamma-${pkgver}"
+  cd xgamma-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From f0133ca5ab0a56060f9289e3982155f35bf42dd3 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:01:15 +0000
Subject: xorg-xhost: update to 1.0.7

---
 abs/core/xorg-xhost/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xhost/PKGBUILD b/abs/core/xorg-xhost/PKGBUILD
index 0703110..7db6f65 100644
--- a/abs/core/xorg-xhost/PKGBUILD
+++ b/abs/core/xorg-xhost/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 154154 2012-03-23 19:23:30Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xhost
-pkgver=1.0.5
+pkgver=1.0.7
 pkgrel=1
 pkgdesc="Server access control program for X"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11' 'libxmu')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xhost-${pkgver}.tar.bz2)
-sha1sums=('c9ad0447c709fc7a9a2afbbca712cf47fbb29757')
+source=(https://xorg.freedesktop.org/archive/individual/app/xhost-${pkgver}.tar.bz2{,.sig})
+sha256sums=('93e619ee15471f576cfb30c663e18f5bc70aca577a63d2c2c03f006a7837c29a'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/xhost-${pkgver}"
+  cd xhost-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xhost-${pkgver}"
+  cd xhost-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From 83aab3f3fbe95f047006e53ea64af6183c3fa9ef Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:04:01 +0000
Subject: xorg-xinit: update to 1.3.4

---
 abs/core/xorg-xinit/PKGBUILD      | 52 +++++++++++++++++++--------------------
 abs/core/xorg-xinit/fs46369.patch | 11 +++++++++
 abs/core/xorg-xinit/xinitrc       | 17 -------------
 abs/core/xorg-xinit/xserverrc     |  6 +----
 abs/core/xorg-xinit/xsession      | 10 --------
 5 files changed, 38 insertions(+), 58 deletions(-)
 create mode 100644 abs/core/xorg-xinit/fs46369.patch
 delete mode 100644 abs/core/xorg-xinit/xinitrc
 delete mode 100644 abs/core/xorg-xinit/xsession

diff --git a/abs/core/xorg-xinit/PKGBUILD b/abs/core/xorg-xinit/PKGBUILD
index f9bb1c6..c243af7 100644
--- a/abs/core/xorg-xinit/PKGBUILD
+++ b/abs/core/xorg-xinit/PKGBUILD
@@ -1,51 +1,51 @@
-# $Id: PKGBUILD 170012 2012-10-31 00:12:04Z thomas $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 # Contributor: Alexander Baldeck <alexander@archlinux.org>
 
 pkgname=xorg-xinit
-pkgver=1.3.2
-pkgrel=3
+pkgver=1.3.4
+pkgrel=4
 pkgdesc="X.Org initialisation program "
 arch=('i686' 'x86_64')
 license=('custom')
-url="http://xorg.freedesktop.org/"
-depends=('libx11' 'xorg-xauth' 'inetutils')
+url="https://xorg.freedesktop.org/"
+depends=('libx11' 'xorg-xauth' 'xorg-xrdb' 'xorg-xmodmap' 'inetutils')
 makedepends=('xorg-util-macros')
 optdepends=('xorg-twm' 'xterm')
-backup=('etc/skel/.xinitrc'
-        'etc/skel/.xsession'
-        'etc/X11/xinit/xserverrc'
+backup=('etc/X11/xinit/xserverrc'
         'etc/X11/xinit/xinitrc')
-source=(${url}/releases/individual/app/xinit-${pkgver}.tar.bz2
+source=(${url}/releases/individual/app/xinit-${pkgver}.tar.bz2{,.sig}
         06_move_serverauthfile_into_tmp.diff
         fs25361.patch
-        xinitrc
-        xsession
+        fs46369.patch
         xserverrc)
 options=(!emptydirs)
-md5sums=('9c0943cbd83e489ad1b05221b97efd44'
-         'abd072ec435ce084cf4e89c58f83d45c'
-         '73a597d3fb7f5b9487318ac8cfd4bedf'
-         'c7b406c3c5c1e8011b3ac7d6b29c1a2c'
-         '7873d97db30d6c279ed37e3559e7c59d'
-         '4deba1b7f2cc7f93b304b956023e65d6')
+sha256sums=('75d88d7397a07e01db253163b7c7a00b249b3d30e99489f2734cac9a0c7902b3'
+            'SKIP'
+            'a5c6ced5822bbb3145e0f30a4b12995782ca6d80ff2d927851ec91b5e41212cb'
+            '431335ceb84f75aaa96fba285a596f61a63629f94756f8063e4f621ae143629b'
+            '6e2c44b997e604db167f00168e8b6c68257be50447d7a80856b4aa910f52351e'
+            '86835010b5350c41035495b7b845db0eecf1e4b7eeaf152b12a881fa502e5387')
+validpgpkeys=('7C2608F8E5F9E78D7A3F26FF177544B49AF313FB') #  "Hans de Goede <jwrdegoede@fedoraproject.org>"
 
-build() {
-  cd "${srcdir}/xinit-${pkgver}"
-  patch -Np1 -i "${srcdir}/06_move_serverauthfile_into_tmp.diff"
-  patch -Np1 -i "${srcdir}/fs25361.patch"
+prepare() {
+  cd xinit-${pkgver}
+  patch -Np1 -i ../06_move_serverauthfile_into_tmp.diff
+  patch -Np1 -i ../fs25361.patch
+  patch -Np1 -i ../fs46369.patch
   sed -i -e 's/XSLASHGLOB.sh/XSLASHGLOB/' xinitrc.cpp
+}
+
+build() {
+  cd xinit-${pkgver}
+  autoreconf -fi
   ./configure --prefix=/usr --with-xinitdir=/etc/X11/xinit
   make
 }
 
 package() {
-  cd "${srcdir}/xinit-${pkgver}"
+  cd xinit-${pkgver}
   make DESTDIR="${pkgdir}" install
-
-  install -m755 -d "${pkgdir}/etc/skel"
-  install -m644 "${srcdir}/xinitrc" "${pkgdir}/etc/skel/.xinitrc"
-  install -m644 "${srcdir}/xsession" "${pkgdir}/etc/skel/.xsession"
   install -m644 "${srcdir}/xserverrc" "${pkgdir}/etc/X11/xinit/xserverrc"
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
diff --git a/abs/core/xorg-xinit/fs46369.patch b/abs/core/xorg-xinit/fs46369.patch
new file mode 100644
index 0000000..91f2d70
--- /dev/null
+++ b/abs/core/xorg-xinit/fs46369.patch
@@ -0,0 +1,11 @@
+diff -u -r xinit-1.3.4/startx.cpp xinit-1.3.4-dbus/startx.cpp
+--- xinit-1.3.4/startx.cpp	2015-09-21 17:07:29.732240308 +0200
++++ xinit-1.3.4-dbus/startx.cpp	2015-09-21 17:07:59.255424644 +0200
+@@ -11,7 +11,6 @@
+ XCOMM Site administrators are STRONGLY urged to write nicer versions.
+ XCOMM
+ 
+-unset DBUS_SESSION_BUS_ADDRESS
+ unset SESSION_MANAGER
+ 
+ #ifdef __APPLE__
diff --git a/abs/core/xorg-xinit/xinitrc b/abs/core/xorg-xinit/xinitrc
deleted file mode 100644
index dbd080d..0000000
--- a/abs/core/xorg-xinit/xinitrc
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-#
-# ~/.xinitrc
-#
-# Executed by startx (run your window manager from here)
-
-if [ -d /etc/X11/xinit/xinitrc.d ]; then
-  for f in /etc/X11/xinit/xinitrc.d/*; do
-    [ -x "$f" ] && . "$f"
-  done
-  unset f
-fi
-
-# exec gnome-session
-# exec startkde
-# exec startxfce4
-# ...or the Window Manager of your choice
diff --git a/abs/core/xorg-xinit/xserverrc b/abs/core/xorg-xinit/xserverrc
index 6b57eeb..b4de252 100644
--- a/abs/core/xorg-xinit/xserverrc
+++ b/abs/core/xorg-xinit/xserverrc
@@ -1,6 +1,2 @@
 #!/bin/sh
-if [ -z "$XDG_VTNR" ]; then
-  exec /usr/bin/X -nolisten tcp "$@"
-else
-  exec /usr/bin/X -nolisten tcp "$@" vt$XDG_VTNR
-fi
+exec /usr/bin/X -nolisten tcp "$@"
diff --git a/abs/core/xorg-xinit/xsession b/abs/core/xorg-xinit/xsession
deleted file mode 100644
index a16dc0b..0000000
--- a/abs/core/xorg-xinit/xsession
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-#
-# ~/.xsession
-#
-# Executed by xdm/gdm/kdm at login
-#
-
-/bin/bash --login -i ~/.xinitrc
-
-- 
cgit v0.12


From 362ec7512279a06cf06a12464ce583f544e38412 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:05:01 +0000
Subject: xorg-xinput: update to 1.6.2

---
 abs/core/xorg-xinput/PKGBUILD | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/abs/core/xorg-xinput/PKGBUILD b/abs/core/xorg-xinput/PKGBUILD
index f111082..aa5f684 100644
--- a/abs/core/xorg-xinput/PKGBUILD
+++ b/abs/core/xorg-xinput/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 159187 2012-05-17 13:48:28Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xinput
-pkgver=1.6.0
+pkgver=1.6.2
 pkgrel=1
 pkgdesc="Small commandline tool to configure devices"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11' 'libxi>=1.5.99.2' 'xorg-xrandr' 'libxinerama')
-makedepends=('xorg-util-macros' 'inputproto')
+makedepends=('xorg-util-macros' 'inputproto' 'libxfixes')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xinput-${pkgver}.tar.bz2)
-sha256sums=('4ab007d952c76665603bcb82ceb15fd3929d10faf0580fc4873ac16f5f63847e')
+source=(https://xorg.freedesktop.org/archive/individual/app/xinput-${pkgver}.tar.bz2{,.sig})
+sha256sums=('3694d29b4180952fbf13c6d4e59541310cbb11eef5bf888ff3d8b7f4e3aee5c4'
+            'SKIP')
+validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # "Peter Hutterer (Who-T) <office@who-t.net>"
 
 build() {
-  cd "${srcdir}/xinput-${pkgver}"
+  cd xinput-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xinput-${pkgver}"
+  cd xinput-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From 43b09d5e4c79074718e0b775e8d0f279d92f2e7b Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:06:13 +0000
Subject: xorg-xkbcomp: update to 1.3.1

---
 abs/core/xorg-xkbcomp/PKGBUILD | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xkbcomp/PKGBUILD b/abs/core/xorg-xkbcomp/PKGBUILD
index 35dce4f..4d5a08f 100644
--- a/abs/core/xorg-xkbcomp/PKGBUILD
+++ b/abs/core/xorg-xkbcomp/PKGBUILD
@@ -1,27 +1,30 @@
-# $Id: PKGBUILD 154156 2012-03-23 20:01:59Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
 pkgname=xorg-xkbcomp
-pkgver=1.2.4
+pkgver=1.3.1
 pkgrel=1
 pkgdesc="X Keyboard description compiler"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libxkbfile')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(${url}/releases/individual/app/xkbcomp-${pkgver}.tar.bz2)
-sha1sums=('695d2f2824884d9e54aa1419282ae167fdea163b')
+source=(${url}/releases/individual/app/xkbcomp-${pkgver}.tar.bz2{,.sig})
+sha256sums=('0304dc9e0d4ac10831a9ef5d5419722375ddbc3eac3ff4413094d57bc1f1923d'
+            'SKIP')
+validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
 
 build() {
-  cd "${srcdir}/xkbcomp-${pkgver}"
+  cd xkbcomp-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xkbcomp-${pkgver}"
+  cd xkbcomp-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From 7822b0c6feb7563565c55e67899805541e24c24e Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:07:30 +0000
Subject: xorg-xkbevd: update to 1.1.4

---
 abs/core/xorg-xkbevd/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xkbevd/PKGBUILD b/abs/core/xorg-xkbevd/PKGBUILD
index 0f523d9..3b02697 100644
--- a/abs/core/xorg-xkbevd/PKGBUILD
+++ b/abs/core/xorg-xkbevd/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 154162 2012-03-23 20:16:23Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xkbevd
-pkgver=1.1.3
+pkgver=1.1.4
 pkgrel=1
 pkgdesc="XKB event daemon"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libxkbfile')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=("${url}/releases/individual/app/xkbevd-${pkgver}.tar.bz2")
-sha1sums=('543963ba22b019b4e059e8605eb418f8a712b76e')
+source=(${url}/releases/individual/app/xkbevd-${pkgver}.tar.bz2{,.sig})
+sha256sums=('2430a2e5302a4cb4a5530c1df8cb3721a149bbf8eb377a2898921a145197f96a'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/xkbevd-${pkgver}"
+  cd xkbevd-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xkbevd-${pkgver}"
+  cd xkbevd-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From 7fe95db430f20764768cb78540826d0be259cddd Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:08:35 +0000
Subject: xorg-xkbutils: update to 1.0.4

---
 abs/core/xorg-xkbutils/PKGBUILD | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/abs/core/xorg-xkbutils/PKGBUILD b/abs/core/xorg-xkbutils/PKGBUILD
index 6584c6a..bdd1fab 100644
--- a/abs/core/xorg-xkbutils/PKGBUILD
+++ b/abs/core/xorg-xkbutils/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 151027 2012-02-24 13:40:04Z allan $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xkbutils
-pkgver=1.0.3
-pkgrel=3
+pkgver=1.0.4
+pkgrel=2
 pkgdesc="XKB utility demos"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libxaw' 'libxt' 'libx11')
 makedepends=('xorg-util-macros' 'xproto' 'inputproto')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xkbutils-${pkgver}.tar.bz2)
-sha1sums=('e5a2619b9449f95e02b520b492de0575bc4551d6')
+source=(https://xorg.freedesktop.org/archive/individual/app/xkbutils-${pkgver}.tar.bz2)
+sha256sums=('d2a18ab90275e8bca028773c44264d2266dab70853db4321bdbc18da75148130')
 
 build() {
   cd "${srcdir}/xkbutils-${pkgver}"
-- 
cgit v0.12


From cf92e1498442a2f34ea2d7fab12d431190cac282 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:09:40 +0000
Subject: xorg-xkill: update to 1.0.4

---
 abs/core/xorg-xkill/PKGBUILD | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/abs/core/xorg-xkill/PKGBUILD b/abs/core/xorg-xkill/PKGBUILD
index 867f20a..2a6e12f 100644
--- a/abs/core/xorg-xkill/PKGBUILD
+++ b/abs/core/xorg-xkill/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 151025 2012-02-24 13:37:13Z allan $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xkill
-pkgver=1.0.3
-pkgrel=3
+pkgver=1.0.4
+pkgrel=1
 pkgdesc="Kill a client by its X resource"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11' 'libxmu')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xkill-${pkgver}.tar.bz2)
-sha1sums=('bab7b9c7f3bc053d743eb339cf5fa496bace57e5')
+source=(https://xorg.freedesktop.org/archive/individual/app/xkill-${pkgver}.tar.bz2)
+sha256sums=('88ef2a304f32f24b255e879f03c1dcd3a2be3e71d5562205414f267d919f812e')
 
 build() {
   cd "${srcdir}/xkill-${pkgver}"
-- 
cgit v0.12


From 049e18756aa5709ebe97f1b9b57773ab7f5dd5dd Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:10:26 +0000
Subject: xorg-xlsatoms: update to 1.1.2

---
 abs/core/xorg-xlsatoms/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xlsatoms/PKGBUILD b/abs/core/xorg-xlsatoms/PKGBUILD
index eef3139..5288bbe 100644
--- a/abs/core/xorg-xlsatoms/PKGBUILD
+++ b/abs/core/xorg-xlsatoms/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 154999 2012-04-01 10:01:56Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xlsatoms
-pkgver=1.1.1
+pkgver=1.1.2
 pkgrel=1
 pkgdesc="List interned atoms defined on server"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libxcb')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xlsatoms-${pkgver}.tar.bz2)
-sha1sums=('271880bf9dcd37b85b08e5f4a43e6015747b45e1')
+source=(https://xorg.freedesktop.org/archive/individual/app/xlsatoms-${pkgver}.tar.bz2{,.sig})
+sha256sums=('47e5dc7c3dbda6db2cf8c00cedac1722835c1550aa21cfdbc9ba83906694dea4'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/xlsatoms-${pkgver}"
+  cd xlsatoms-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xlsatoms-${pkgver}"
+  cd xlsatoms-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From 43e7479fe520d3dfcc73b6002e95476da6945b99 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:11:14 +0000
Subject: xorg-xlsclients: update to 1.1.3

---
 abs/core/xorg-xlsclients/PKGBUILD | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/abs/core/xorg-xlsclients/PKGBUILD b/abs/core/xorg-xlsclients/PKGBUILD
index a79dddb..67570cc 100644
--- a/abs/core/xorg-xlsclients/PKGBUILD
+++ b/abs/core/xorg-xlsclients/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 151015 2012-02-24 13:22:35Z allan $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xlsclients
-pkgver=1.1.2
-pkgrel=2
+pkgver=1.1.3
+pkgrel=1
 pkgdesc="List client applications running on a display"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libxcb')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xlsclients-${pkgver}.tar.bz2)
-sha1sums=('c4051429c190444ae9ba327f0ad776a74eb7b27b')
+source=(https://xorg.freedesktop.org/archive/individual/app/xlsclients-${pkgver}.tar.bz2)
+sha256sums=('5d9666fcc6c3de210fc70d5a841a404955af709a616fde530fe4e8f7723e3d3d')
 
 build() {
   cd "${srcdir}/xlsclients-${pkgver}"
-- 
cgit v0.12


From 57fdbcc108bdd8d57a8f2ff92c09ce3d368715f1 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:12:06 +0000
Subject: xorg-xmodmap: update to 1.0.9

---
 abs/core/xorg-xmodmap/PKGBUILD | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/abs/core/xorg-xmodmap/PKGBUILD b/abs/core/xorg-xmodmap/PKGBUILD
index 3005831..80286fc 100644
--- a/abs/core/xorg-xmodmap/PKGBUILD
+++ b/abs/core/xorg-xmodmap/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 156637 2012-04-21 23:46:44Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xmodmap
-pkgver=1.0.7
+pkgver=1.0.9
 pkgrel=1
 pkgdesc="Utility for modifying keymaps and button mappings"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xmodmap-${pkgver}.tar.bz2)
-sha1sums=('9f9c6b7bd058c09a8e15b1c4f4eccb972e51ffef')
+source=(https://xorg.freedesktop.org/archive/individual/app/xmodmap-${pkgver}.tar.bz2{,.sig})
+sha256sums=('b7b0e5cc5f10d0fb6d2d6ea4f00c77e8ac0e847cc5a73be94cd86139ac4ac478'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/xmodmap-${pkgver}"
+  cd xmodmap-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xmodmap-${pkgver}"
+  cd xmodmap-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From 622a75095d86c38b0eafb3b5d2693d25327b8b65 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:13:16 +0000
Subject: xorg-xprop: update to 1.2.2

---
 abs/core/xorg-xprop/PKGBUILD | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core/xorg-xprop/PKGBUILD b/abs/core/xorg-xprop/PKGBUILD
index 32e1211..b040648 100644
--- a/abs/core/xorg-xprop/PKGBUILD
+++ b/abs/core/xorg-xprop/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 130748 2011-07-07 22:27:50Z andyrtr $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xprop
-pkgver=1.2.1
+pkgver=1.2.2
 pkgrel=1
 pkgdesc="Property displayer for X"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xprop-${pkgver}.tar.bz2)
-sha1sums=('d531be0f5f2b7758216ea4d7890f88c42c5fa3fd')
+source=(https://xorg.freedesktop.org/archive/individual/app/xprop-${pkgver}.tar.bz2)
+sha256sums=('9bee88b1025865ad121f72d32576dd3027af1446774aa8300cce3c261d869bc6')
 
 build() {
   cd "${srcdir}/xprop-${pkgver}"
-- 
cgit v0.12


From 9212e1fe9afeb713b918db9b0e32b0e9e02fbbb8 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:15:23 +0000
Subject: xorg-xrdb: update to 1.1.0

---
 abs/core/xorg-xrdb/PKGBUILD | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/abs/core/xorg-xrdb/PKGBUILD b/abs/core/xorg-xrdb/PKGBUILD
index 85b9266..af0f0ad 100644
--- a/abs/core/xorg-xrdb/PKGBUILD
+++ b/abs/core/xorg-xrdb/PKGBUILD
@@ -1,27 +1,31 @@
-# $Id: PKGBUILD 151003 2012-02-24 13:05:19Z allan $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xrdb
-pkgver=1.0.9
+pkgver=1.1.0
 pkgrel=2
 pkgdesc="X server resource database utility"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
-depends=('libx11' 'libxmu' 'mcpp')
+depends=('libx11' 'libxmu')
 makedepends=('xorg-util-macros')
+optdepends=('gcc: for preprocessing'
+            'mcpp: a lightweight alternative for preprocessing')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xrdb-${pkgver}.tar.bz2)
-sha1sums=('efa5f2420411988d6a6e142934393fd272507857')
+source=(https://xorg.freedesktop.org/archive/individual/app/xrdb-${pkgver}.tar.bz2)
+sha256sums=('73827b6bbfc9d27ca287d95a1224c306d7053cd7b8156641698d7dc541ca565b')
 
 build() {
-  cd "${srcdir}/xrdb-${pkgver}"
-  ./configure --prefix=/usr --with-cpp=/usr/bin/mcpp
+  cd xrdb-${pkgver}
+  # --with-cpp=path       comma-separated list of paths to cpp command for xrdb to use at runtime
+  # mcpp is small but can fail, FS#46934
+  ./configure --prefix=/usr --with-cpp=/usr/bin/cpp,/usr/bin/mcpp
   make
 }
 
 package() {
-  cd "${srcdir}/xrdb-${pkgver}"
+  cd xrdb-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From 6fda4a541d456d619ad11fbf686169ccf0854fa4 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:18:37 +0000
Subject: xorg-xrefresh: update to 1.0.5

---
 abs/core/xorg-xrefresh/PKGBUILD | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/abs/core/xorg-xrefresh/PKGBUILD b/abs/core/xorg-xrefresh/PKGBUILD
index c5e36f9..8c1dc72 100644
--- a/abs/core/xorg-xrefresh/PKGBUILD
+++ b/abs/core/xorg-xrefresh/PKGBUILD
@@ -1,18 +1,19 @@
-# $Id: PKGBUILD 151005 2012-02-24 13:07:46Z allan $
+# $Id$
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xrefresh
-pkgver=1.0.4
-pkgrel=3
+pkgver=1.0.5
+pkgrel=1
 pkgdesc="Refresh all or part of an X screen"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xrefresh-${pkgver}.tar.bz2)
-sha1sums=('5e85ee14ea9a357c1d4372bbc068a8d452a134aa')
+source=(https://xorg.freedesktop.org/archive/individual/app/xrefresh-${pkgver}.tar.bz2)
+sha256sums=('3213671b0a8a9d1e8d1d5d9e3fd86842c894dd9acc1be2560eda50bc1fb791d6')
 
 build() {
   cd "${srcdir}/xrefresh-${pkgver}"
-- 
cgit v0.12


From b3b2280d639869168d87d443f936150991d30dc6 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:19:26 +0000
Subject: xorg-xset: update to 1.2.3

---
 abs/core/xorg-xset/PKGBUILD | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/abs/core/xorg-xset/PKGBUILD b/abs/core/xorg-xset/PKGBUILD
index e483f06..7044471 100644
--- a/abs/core/xorg-xset/PKGBUILD
+++ b/abs/core/xorg-xset/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id: PKGBUILD 134284 2011-08-02 18:56:04Z jgc $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xset
-pkgver=1.2.2
+pkgver=1.2.3
 pkgrel=1
 pkgdesc="User preference utility for X"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libxmu')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xset-${pkgver}.tar.bz2)
-sha256sums=('61371c140030b8b05075a1378b34a4d7c438ed9159496a95f10782c6f4aec1e8')
+source=(https://xorg.freedesktop.org/archive/individual/app/xset-${pkgver}.tar.bz2)
+sha256sums=('4382f4fb29b88647e13f3b4bc29263134270747fc159cfc5f7e3af23588c8063')
 
 build() {
-  cd "${srcdir}/xset-${pkgver}"
+  cd xset-${pkgver}
   ./configure --prefix=/usr --without-fontcache --without-xf86misc
   make
+ }
+ 
+package() {
+  cd xset-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
-- 
cgit v0.12


From f8db3445da51a015b412a34389a1fa829aff76df Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:20:11 +0000
Subject: xorg-xsetroot: update to 1.1.1

---
 abs/core/xorg-xsetroot/PKGBUILD | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/abs/core/xorg-xsetroot/PKGBUILD b/abs/core/xorg-xsetroot/PKGBUILD
index 3af6da3..a154d1d 100644
--- a/abs/core/xorg-xsetroot/PKGBUILD
+++ b/abs/core/xorg-xsetroot/PKGBUILD
@@ -1,18 +1,18 @@
-# $Id: PKGBUILD 151001 2012-02-24 13:02:20Z allan $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xsetroot
-pkgver=1.1.0
-pkgrel=3
+pkgver=1.1.1
+pkgrel=2
 pkgdesc="Classic X utility to set your root window background to a given pattern or color"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libxmu' 'libx11' 'libxcursor')
 makedepends=('xorg-util-macros' 'xbitmaps')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xsetroot-${pkgver}.tar.bz2)
-sha1sums=('1ef9ddd80c7013dc6d33e5c421537eb8b0427da4')
+source=(https://xorg.freedesktop.org/archive/individual/app/xsetroot-${pkgver}.tar.bz2)
+sha256sums=('ba215daaa78c415fce11b9e58c365d03bb602eaa5ea916578d76861a468cc3d9')
 
 build() {
   cd "${srcdir}/xsetroot-${pkgver}"
-- 
cgit v0.12


From 78d1de38f611d4908f682caa9d73b8ab9f4b1747 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:21:05 +0000
Subject: xorg-xvinfo: update to 1.1.3

---
 abs/core/xorg-xvinfo/PKGBUILD | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/abs/core/xorg-xvinfo/PKGBUILD b/abs/core/xorg-xvinfo/PKGBUILD
index 84f5541..85b7211 100644
--- a/abs/core/xorg-xvinfo/PKGBUILD
+++ b/abs/core/xorg-xvinfo/PKGBUILD
@@ -1,27 +1,29 @@
-# $Id: PKGBUILD 151163 2012-02-25 06:42:49Z allan $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xvinfo
-pkgver=1.1.1
-pkgrel=3
+pkgver=1.1.3
+pkgrel=1
 pkgdesc="Prints out the capabilities of any video adaptors associated with the display that are accessible through the X-Video extension"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libx11' 'libxv')
 makedepends=('xorg-util-macros')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xvinfo-${pkgver}.tar.bz2)
-sha1sums=('dc326464748fa608da50386112a89024804c1910')
+source=(https://xorg.freedesktop.org/archive/individual/app/xvinfo-${pkgver}.tar.bz2{,.sig})
+sha256sums=('9fba8b68daf53863e66d5004fa9c703fcecf69db4d151ea2d3d885d621e6e5eb'
+            'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') #Alan Coopersmith <alan.coopersmith@oracle.com>
 
 build() {
-  cd "${srcdir}/xvinfo-${pkgver}"
+  cd xvinfo-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xvinfo-${pkgver}"
+  cd xvinfo-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From 2e59ed2582c1e7aea89b9a4ac2a107879561ac8e Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:21:47 +0000
Subject: xorg-xwd: update to 1.0.6

---
 abs/core/xorg-xwd/PKGBUILD | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/abs/core/xorg-xwd/PKGBUILD b/abs/core/xorg-xwd/PKGBUILD
index 5773cb3..84c4670 100644
--- a/abs/core/xorg-xwd/PKGBUILD
+++ b/abs/core/xorg-xwd/PKGBUILD
@@ -1,27 +1,27 @@
-# $Id: PKGBUILD 150997 2012-02-24 12:58:04Z allan $
+# $Id$
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xwd
-pkgver=1.0.5
-pkgrel=2
+pkgver=1.0.6
+pkgrel=1
 pkgdesc="X Window System image dumping utility"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
-depends=('libx11')
+depends=('libxkbfile')
 makedepends=('xorg-util-macros' 'libxt')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xwd-${pkgver}.tar.bz2)
-sha1sums=('3b0e4f3f9d28a07444e72952342e21544d4785b6')
+source=(https://xorg.freedesktop.org/archive/individual/app/xwd-${pkgver}.tar.bz2)
+sha256sums=('3bb396a2268d78de4b1c3e5237a85f7849d3434e87b3cd1f4d57eef614227d79')
 
 build() {
-  cd "${srcdir}/xwd-${pkgver}"
+  cd xwd-${pkgver}
   ./configure --prefix=/usr
   make
 }
 
 package() {
-  cd "${srcdir}/xwd-${pkgver}"
+  cd xwd-${pkgver}
   make DESTDIR="${pkgdir}" install
   install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
 }
-- 
cgit v0.12


From 1a3f95780cafb3fa49fdd08051bd3d20ad0ba3f7 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:22:42 +0000
Subject: xorg-xwininfo: update to 1.1.3

---
 abs/core/xorg-xwininfo/PKGBUILD | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/abs/core/xorg-xwininfo/PKGBUILD b/abs/core/xorg-xwininfo/PKGBUILD
index 1e16302..2735e51 100644
--- a/abs/core/xorg-xwininfo/PKGBUILD
+++ b/abs/core/xorg-xwininfo/PKGBUILD
@@ -1,18 +1,19 @@
-# $Id: PKGBUILD 130758 2011-07-07 22:32:22Z andyrtr $
+# $Id$
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xorg-xwininfo
-pkgver=1.1.2
+pkgver=1.1.3
 pkgrel=1
 pkgdesc="Command-line utility to print information about windows on an X server"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
 depends=('libxcb')
 makedepends=('xorg-util-macros' 'libx11')
 groups=('xorg-apps' 'xorg')
-source=(http://xorg.freedesktop.org/archive/individual/app/xwininfo-${pkgver}.tar.bz2)
-sha1sums=('c90b3c289f95474aa8eb6cf1bf4caf3b9dbf82d3')
+source=(https://xorg.freedesktop.org/archive/individual/app/xwininfo-${pkgver}.tar.bz2)
+sha256sums=('218eb0ea95bd8de7903dfaa26423820c523ad1598be0751d2d8b6a2c23b23ff8')
 
 build() {
   cd "${srcdir}/xwininfo-${pkgver}"
-- 
cgit v0.12


From 3dd366e8f32d93776fcee8379ef1fc4261b97451 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:25:32 +0000
Subject: xf86-input-evdev: update to 2.10.5

---
 abs/core/xf86-input-evdev/PKGBUILD | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/abs/core/xf86-input-evdev/PKGBUILD b/abs/core/xf86-input-evdev/PKGBUILD
index 22a8b18..5356efa 100644
--- a/abs/core/xf86-input-evdev/PKGBUILD
+++ b/abs/core/xf86-input-evdev/PKGBUILD
@@ -3,20 +3,19 @@
 # Contributor: Alexander Baldeck <Alexander@archlinux.org
 
 pkgname=xf86-input-evdev
-pkgver=2.10.1
-pkgrel=3
+pkgver=2.10.5
+pkgrel=1
 pkgdesc="X.org evdev input driver"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
-depends=('glibc' 'systemd' 'mtdev' 'libevdev')
-makedepends=('xorg-server-devel' 'resourceproto' 'scrnsaverproto')
-provides=('xf86-input-driver')
-conflicts=('xorg-server<1.18.0' 'X-ABI-XINPUT_VERSION<22' 'X-ABI-XINPUT_VERSION>=23')
+depends=('libsystemd' 'mtdev' 'libevdev')
+makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=24.1' 'resourceproto' 'scrnsaverproto')
+conflicts=('xorg-server<1.19.0' 'X-ABI-XINPUT_VERSION<24.1' 'X-ABI-XINPUT_VERSION>=25')
 options=('!makeflags')
-groups=('xorg-drivers' 'xorg')
+groups=('xorg-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig})
-sha256sums=('af9c2b47f5b272ae56b45da6bd84610fc9a3d80a4b32c8215842a39d862de017'
+sha256sums=('9edaa6205baf6d2922cc4db3d8e54a7e7773b5f733b0ae90f6be7725f983b70d'
             'SKIP')
 validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
 
-- 
cgit v0.12


From bed21123c2300dad1211573bf1cc3ab54aa339dc Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:27:34 +0000
Subject: xf86-input-joystick: update to 1.6.3

---
 abs/core/xf86-input-joystick/PKGBUILD | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/abs/core/xf86-input-joystick/PKGBUILD b/abs/core/xf86-input-joystick/PKGBUILD
index cea3ba4..9324457 100644
--- a/abs/core/xf86-input-joystick/PKGBUILD
+++ b/abs/core/xf86-input-joystick/PKGBUILD
@@ -1,21 +1,22 @@
-# $Id$
-# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Maintainer lonewolf >lonewolf at xs4all dot nl>
+# Contributor: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-joystick
-pkgver=1.6.2
-pkgrel=6
+pkgver=1.6.3
+pkgrel=1
 pkgdesc="X.Org Joystick input driver"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://www.x.org/wiki/"
 license=('custom')
 depends=('glibc')
-makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=22.1' 'resourceproto' 'scrnsaverproto')
-conflicts=('xorg-server<1.16' 'X-ABI-XINPUT_VERSION<22.1' 'X-ABI-XINPUT_VERSION>=23')
-groups=('xorg-drivers' 'xorg')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2
-        50-joystick.conf)
-sha1sums=('61658b8d829fdaed6064c7c26232c3884d359187'
-          'e1ff3699a0470c6bb78a53f718df9d8521621e11')
+makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=24.1' 'resourceproto' 'scrnsaverproto')
+conflicts=('X-ABI-XINPUT_VERSION<24.1' 'X-ABI-XINPUT_VERSION>=25')
+validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
+source=(https://www.x.org/releases/individual/driver/xf86-input-joystick-$pkgver.tar.bz2{,.sig}
+        '50-joystick.conf')
+sha512sums=('541c993bd37dd74d96d90060407d9fb9ebd3fbca352189a08c6b0c899c84609a1b5a3c1ea3febb4ceb5e2b881b54e45c75b8f9b2e475e16d7cffbbe42a3221e5'
+            'SKIP'
+            '11c5da4ab3e8b1e25a6e42ddf9addb1ed44ad203c9374b4acd4a4f8e25761151ddc649acf857b6e4a0a381c5665a03bda9b9abf2d148cc002d10acc891f3ad13')
 
 build() {
   cd ${pkgname}-${pkgver}
-- 
cgit v0.12


From 50e4bcea8371efb6b3faad067d7f14dd7b422d90 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:30:13 +0000
Subject: xf86-input-keyboard: update to 1.9.0

---
 abs/core/xf86-input-keyboard/PKGBUILD | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/abs/core/xf86-input-keyboard/PKGBUILD b/abs/core/xf86-input-keyboard/PKGBUILD
index 8467106..398cb0f 100644
--- a/abs/core/xf86-input-keyboard/PKGBUILD
+++ b/abs/core/xf86-input-keyboard/PKGBUILD
@@ -2,18 +2,18 @@
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-keyboard
-pkgver=1.8.1
+pkgver=1.9.0
 pkgrel=2
 pkgdesc="X.Org keyboard input driver"
 arch=(i686 x86_64)
 license=('custom')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=22.1' 'resourceproto' 'scrnsaverproto')
-conflicts=('xorg-server<1.16' 'X-ABI-XINPUT_VERSION<22.1' 'X-ABI-XINPUT_VERSION>=23')
-groups=('xorg-drivers' 'xorg')
+makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=24.1' 'resourceproto' 'scrnsaverproto')
+conflicts=('xorg-server<1.19' 'X-ABI-XINPUT_VERSION<24.1' 'X-ABI-XINPUT_VERSION>=25')
+groups=('xorg-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig})
-sha256sums=('1ac8ff39bf9da7d2fc7fd6c24515726e8138340c0518ab8c606e008cf93ca211'
+sha256sums=('f7c900f21752683402992b288d5a2826de7a6c0c0abac2aadd7e8a409e170388'
             'SKIP')
 validpgpkeys=('3C2C43D9447D5938EF4551EBE23B7E70B467F0BF') # Peter Hutterer (Who-T) <office@who-t.net>
 
-- 
cgit v0.12


From 7bc338c73d8da9fb25533b2db6cfe3fee517f93a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:31:34 +0000
Subject: xf86-input-mouse: update to 1.9.2

---
 abs/core/xf86-input-mouse/PKGBUILD | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/core/xf86-input-mouse/PKGBUILD b/abs/core/xf86-input-mouse/PKGBUILD
index 34decc1..5bd437a 100644
--- a/abs/core/xf86-input-mouse/PKGBUILD
+++ b/abs/core/xf86-input-mouse/PKGBUILD
@@ -2,18 +2,18 @@
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-input-mouse
-pkgver=1.9.1
-pkgrel=2
+pkgver=1.9.2
+pkgrel=3
 pkgdesc="X.org mouse input driver"
 arch=(i686 x86_64)
 license=('custom')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=22.1' 'resourceproto' 'scrnsaverproto')
-conflicts=('xorg-server<1.16' 'X-ABI-XINPUT_VERSION<22.1' 'X-ABI-XINPUT_VERSION>=23')
-groups=('xorg-drivers' 'xorg')
+makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=24.1' 'resourceproto' 'scrnsaverproto')
+conflicts=('xorg-server<1.19' 'X-ABI-XINPUT_VERSION<24.1' 'X-ABI-XINPUT_VERSION>=25')
+groups=('xorg-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('3485d375779c08406f0789feedde15933dc703158a086ddac638598f479fc5ce')
+sha256sums=('f425d5b05c6ab412a27e0a1106bb83f9e2662b307210abbe48270892387f4b2f')
 
 build() {
   cd ${pkgname}-${pkgver}
-- 
cgit v0.12


From 20d249052867e9717fd551be9a2b01cff16ef456 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:33:26 +0000
Subject: xf86-input-vmmouse: update to 13.1.0-3

---
 abs/core/xf86-input-vmmouse/PKGBUILD | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/abs/core/xf86-input-vmmouse/PKGBUILD b/abs/core/xf86-input-vmmouse/PKGBUILD
index 8673520..272caaa 100644
--- a/abs/core/xf86-input-vmmouse/PKGBUILD
+++ b/abs/core/xf86-input-vmmouse/PKGBUILD
@@ -3,17 +3,19 @@
 
 pkgname=xf86-input-vmmouse
 pkgver=13.1.0
-pkgrel=2
+pkgrel=3
 pkgdesc="X.org VMWare Mouse input driver"
 arch=(i686 x86_64)
 license=('custom')
-url="http://xorg.freedesktop.org/"
-depends=('glibc' 'libsystemd' 'sh')
-makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=22.1' 'resourceproto' 'scrnsaverproto')
-conflicts=('xorg-server<1.16' 'X-ABI-XINPUT_VERSION<22.1' 'X-ABI-XINPUT_VERSION>=23')
-groups=('xorg-drivers' 'xorg')
-source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('0af558957ac1be1b2863712c2475de8f4d7f14921fd01ded2e2fde4921b19319')
+url="https://xorg.freedesktop.org/"
+depends=('libsystemd')
+makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=24.1' 'resourceproto' 'scrnsaverproto')
+conflicts=('xorg-server<1.19' 'X-ABI-XINPUT_VERSION<24.1' 'X-ABI-XINPUT_VERSION>=25')
+groups=('xorg-drivers')
+source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig})
+sha256sums=('0af558957ac1be1b2863712c2475de8f4d7f14921fd01ded2e2fde4921b19319'
+            'SKIP')
+validpgpkeys=('90D027AEAF33CBABC140735BC1F5D3CDF5176580') # Thomas Hellstrom (VMware) <thellstrom@vmware.com>
 
 build() {
   cd ${pkgname}-${pkgver}
-- 
cgit v0.12


From 7fd9f54feeb69850ae126f2b35de97d4718b1ac9 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:34:36 +0000
Subject: xf86-input-void: update to 1.4.1-3

---
 abs/core/xf86-input-void/PKGBUILD | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core/xf86-input-void/PKGBUILD b/abs/core/xf86-input-void/PKGBUILD
index 0f690f8..8f5cdc3 100644
--- a/abs/core/xf86-input-void/PKGBUILD
+++ b/abs/core/xf86-input-void/PKGBUILD
@@ -3,15 +3,15 @@
 
 pkgname=xf86-input-void
 pkgver=1.4.1
-pkgrel=2
+pkgrel=3
 pkgdesc="X.org void input driver"
 arch=(i686 x86_64)
 license=('custom')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=22.1' 'resourceproto' 'scrnsaverproto')
-conflicts=('xorg-server<1.16' 'X-ABI-XINPUT_VERSION<22.1' 'X-ABI-XINPUT_VERSION>=23')
-groups=('xorg-drivers' 'xorg')
+makedepends=('xorg-server-devel' 'X-ABI-XINPUT_VERSION=24.1' 'resourceproto' 'scrnsaverproto')
+conflicts=('xorg-server<1.19' 'X-ABI-XINPUT_VERSION<24.1' 'X-ABI-XINPUT_VERSION>=25')
+groups=('xorg-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig})
 sha256sums=('f96e4f0a622821bf43a74bd419f2a18423343996c9d243c7e1430ba2d142339c'
             'SKIP')
-- 
cgit v0.12


From 78501b9a6e1c6ef9b4f2d331340f3cb22aa0f830 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:37:16 +0000
Subject: xf86-video-ati: update to 7.9.0

---
 abs/core/xf86-video-ati/PKGBUILD | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/abs/core/xf86-video-ati/PKGBUILD b/abs/core/xf86-video-ati/PKGBUILD
index d220ef0..dd50efb 100644
--- a/abs/core/xf86-video-ati/PKGBUILD
+++ b/abs/core/xf86-video-ati/PKGBUILD
@@ -3,30 +3,35 @@
 # Contributor: Alexander Baldeck <alexander@archlinux.org>
 
 pkgname=xf86-video-ati
-pkgver=7.6.1
+pkgver=7.9.0
 epoch=1
 pkgrel=1
 pkgdesc="X.org ati video driver"
 arch=('i686' 'x86_64')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
-depends=('libdrm' 'systemd' 'mesa-dri')
-makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=20')
-conflicts=('xorg-server<1.18.0' 'X-ABI-VIDEODRV_VERSION<20' 'X-ABI-VIDEODRV_VERSION>=21')
-groups=('xorg-drivers' 'xorg')
+depends=('libsystemd' 'mesa')
+makedepends=('xorg-server-devel' 'systemd' 'X-ABI-VIDEODRV_VERSION=23')
+conflicts=('xorg-server<1.19.0' 'X-ABI-VIDEODRV_VERSION<23' 'X-ABI-VIDEODRV_VERSION>=24')
+groups=('xorg-drivers')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig})
-md5sums=('ede86cd3d1b1d8882f0aea61d9e924ed'
-         'SKIP')
+sha256sums=('3cad872e6330afb1707da11e4e959e6887ebe5bcd81854b4d2e496c52c059875'
+            'SKIP')
 validpgpkeys=('B09FAF35BE914521980951145A81AF8E6ADBB200') # Michel Daenzer <michel@daenzer.net>
 
 build() {
   cd ${pkgname}-${pkgver}
 
   ./configure --prefix=/usr \
-    --enable-glamor
+     --with-glamor
   make
 }
 
+check() {
+  cd ${pkgname}-${pkgver}
+  make check
+}
+
 package() {
   cd ${pkgname}-${pkgver}
 
-- 
cgit v0.12


From 9d2a4ca97e40d73c6a3a03e42f22e57aa3fc660c Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:44:11 +0000
Subject: xf86-video-intel: update to 2.99.917+767+g7e9e92c

---
 abs/core/xf86-video-intel/PKGBUILD | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/core/xf86-video-intel/PKGBUILD b/abs/core/xf86-video-intel/PKGBUILD
index 8a0a18b..f6f56d3 100644
--- a/abs/core/xf86-video-intel/PKGBUILD
+++ b/abs/core/xf86-video-intel/PKGBUILD
@@ -3,8 +3,8 @@
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-intel
-_commit=9fe04af # 7 digits
-pkgver=2.99.917+753+g9fe04af
+_commit=7e9e92c # 7 digits
+pkgver=2.99.917+767+g7e9e92c
 pkgrel=1
 epoch=1
 arch=(i686 x86_64)
@@ -12,8 +12,8 @@ url="https://01.org/linuxgraphics"
 license=('custom')
 install=$pkgname.install
 pkgdesc="X.org Intel i810/i830/i915/945G/G965+ video drivers"
-depends=('mesa-dri' 'libxvmc' 'pixman' 'xcb-util>=0.3.9')
-makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=20' 'libx11' 'libxrender'
+depends=('mesa-dri' 'libxvmc' 'pixman' 'xcb-util>=0.3.9' 'libsystemd')
+makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=23' 'libx11' 'libxrender'
              # additional deps for intel-virtual-output
              'libxrandr' 'libxinerama' 'libxcursor' 'libxtst' 'libxss'
              # additional for git snapshot
@@ -25,11 +25,12 @@ optdepends=('libxrandr: for intel-virtual-output'
             'libxss: for intel-virtual-output')
 replaces=('xf86-video-intel-uxa' 'xf86-video-intel-sna')
 provides=('xf86-video-intel-uxa' 'xf86-video-intel-sna')
-conflicts=('xorg-server<1.16' 'X-ABI-VIDEODRV_VERSION<20' 'X-ABI-VIDEODRV_VERSION>=21'
+conflicts=('xorg-server<1.19' 'X-ABI-VIDEODRV_VERSION<23' 'X-ABI-VIDEODRV_VERSION>=24'
            'xf86-video-intel-sna' 'xf86-video-intel-uxa' 'xf86-video-i810' 'xf86-video-intel-legacy')
-groups=('xorg-drivers' 'xorg')
+groups=('xorg-drivers')
 #source=(${url}/archive/individual/driver/${pkgname}-${pkgver}.tar.bz2)
 source=("git://anongit.freedesktop.org/xorg/driver/xf86-video-intel#commit=${_commit}")
+sha256sums=('SKIP')
 
 pkgver() {
   cd $pkgname
@@ -62,4 +63,3 @@ package() {
   install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
   install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
 }
-md5sums=('SKIP')
-- 
cgit v0.12


From 66edbfa2697d73daee589c2dd638557efc7f3d2e Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:45:42 +0000
Subject: xf86-video-vesa: update to 2.3.4-3

---
 abs/core/xf86-video-vesa/PKGBUILD | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/core/xf86-video-vesa/PKGBUILD b/abs/core/xf86-video-vesa/PKGBUILD
index a270e12..b236c9e 100644
--- a/abs/core/xf86-video-vesa/PKGBUILD
+++ b/abs/core/xf86-video-vesa/PKGBUILD
@@ -3,14 +3,14 @@
 
 pkgname=xf86-video-vesa
 pkgver=2.3.4
-pkgrel=2
+pkgrel=3
 pkgdesc="X.org vesa video driver"
 arch=(i686 x86_64)
 license=('custom')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 depends=('glibc')
-makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=20')
-conflicts=('xorg-server<1.16' 'X-ABI-VIDEODRV_VERSION<20' 'X-ABI-VIDEODRV_VERSION>=21')
+makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=23')
+conflicts=('xorg-server<1.19' 'X-ABI-VIDEODRV_VERSION<23' 'X-ABI-VIDEODRV_VERSION>=24')
 groups=('xorg-drivers' 'xorg')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig}
         revert-kernelcheck.patch)
-- 
cgit v0.12


From 58140b41ba67ea9929d17493c7b76c508d8fe9c1 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Wed, 29 Mar 2017 18:47:02 +0000
Subject: xf86-video-vmware: update to 13.2.1

---
 abs/core/xf86-video-vmware/PKGBUILD | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/abs/core/xf86-video-vmware/PKGBUILD b/abs/core/xf86-video-vmware/PKGBUILD
index 98680e3..d25693b 100644
--- a/abs/core/xf86-video-vmware/PKGBUILD
+++ b/abs/core/xf86-video-vmware/PKGBUILD
@@ -2,19 +2,19 @@
 # Maintainer: Jan de Groot <jgc@archlinux.org>
 
 pkgname=xf86-video-vmware
-pkgver=13.1.0
-pkgrel=3
+pkgver=13.2.1
+pkgrel=2
 pkgdesc="X.org vmware video driver"
 arch=(i686 x86_64)
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
 license=('custom')
-depends=('libdrm' 'mesa>=10.0')
-makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=20')
-conflicts=('xorg-server<1.16' 'X-ABI-VIDEODRV_VERSION<20' 'X-ABI-VIDEODRV_VERSION>=21')
-groups=('xorg-drivers' 'xorg')
+depends=('mesa')
+makedepends=('xorg-server-devel' 'X-ABI-VIDEODRV_VERSION=23')
+conflicts=('xorg-server<1.19' 'X-ABI-VIDEODRV_VERSION<23' 'X-ABI-VIDEODRV_VERSION>=24')
+groups=('xorg-drivers')
 options=('!emptydirs')
 source=(${url}/releases/individual/driver/${pkgname}-${pkgver}.tar.bz2{,.sig})
-sha256sums=('3c1d244e4b1b77e92126957965cdc9fb82de4c215c0706a3a8aaff6939e4a0cc'
+sha256sums=('e2f7f7101fba7f53b268e7a25908babbf155b3984fb5268b3d244eb6c11bf62b'
             'SKIP')
 validpgpkeys=('90D027AEAF33CBABC140735BC1F5D3CDF5176580') #  Thomas Hellstrom (VMware) <thellstrom@vmware.com>
 
-- 
cgit v0.12


From 2b006c4a34629b3bcc50b78a920c94cf88a6459a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 30 Mar 2017 16:47:22 +0000
Subject: linux: update to 4.4.58

---
 abs/core/linux/99-linux.hook     | 11 +++++++
 abs/core/linux/PKGBUILD          | 67 +++++++++++++++++++---------------------
 abs/core/linux/linux.install     |  4 ---
 abs/core/linux/linux.install.pkg |  6 +---
 4 files changed, 44 insertions(+), 44 deletions(-)
 create mode 100644 abs/core/linux/99-linux.hook

diff --git a/abs/core/linux/99-linux.hook b/abs/core/linux/99-linux.hook
new file mode 100644
index 0000000..9851151
--- /dev/null
+++ b/abs/core/linux/99-linux.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Type = File
+Operation = Install
+Operation = Upgrade
+Target = boot/vmlinuz-%PKGBASE%
+Target = usr/lib/initcpio/*
+
+[Action]
+Description = Updating %PKGBASE% initcpios
+When = PostTransaction
+Exec = /usr/bin/mkinitcpio -p %PKGBASE%
diff --git a/abs/core/linux/PKGBUILD b/abs/core/linux/PKGBUILD
index 5b8d3ae..65d831a 100644
--- a/abs/core/linux/PKGBUILD
+++ b/abs/core/linux/PKGBUILD
@@ -1,43 +1,30 @@
 # $Id$
-# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
-# Maintainer: Thomas Baechler <thomas@archlinux.org>
+# Maintainer: Andreas Radke <andyrtr@archlinux.org>
 
-pkgbase=linux               # Build stock -ARCH kernel
-#pkgbase=linux-custom       # Build kernel with a different name
+pkgbase=linux
+#pkgbase=linux-custom
 _srcname=linux-4.4
-pkgver=4.4.39
+pkgver=4.4.58
 pkgrel=1
 arch=('i686' 'x86_64')
-url="http://www.kernel.org/"
+url="https://www.kernel.org/"
 license=('GPL2')
 makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
 options=('!strip')
-source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
-        "https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.sign"
-        "https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz"
-        "https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.sign"
+source=(https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.{xz,sign}
+        https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.{xz,sign}
         # the main kernel config files
         'config' 'config.x86_64'
+        # pacman hook for initramfs regeneration
+        '99-linux.hook'
         # standard config files for mkinitcpio ramdisk
-        'linux.preset'
-        'change-default-console-loglevel.patch'
-        '0001-sdhci-revert.patch')
-
-sha256sums=('401d7c8fef594999a460d10c72c5a94e9c2e1022f16795ec51746b0d165418b2'
-            'SKIP'
-            'fc2b60d221aeaf3eafec4f36f299e4002be81da85117c3f59963fdcb6facb929'
-            'SKIP'
-            'fbbae1d873900e84d1b7ef00593fbb94fc79f078a34b22ee824bab8b0a92be64'
-            '756a168bbc3bb582f0df45b977c32af53658f21d62fe15171c9ac85f52d8852a'
-            'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c'
-            '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
-            '5313df7cb5b4d005422bd4cd0dae956b2dadba8f3db904275aaf99ac53894375')
-
-validpgpkeys=(
-              'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
-              '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
+        linux.preset
+        change-default-console-loglevel.patch
+        0001-sdhci-revert.patch)
+# https://www.kernel.org/pub/linux/kernel/v4.x/sha256sums.asc
+validpgpkeys=('ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds <torvalds@linux-foundation.org>
+              '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>
              )
-
 _kernelname=${pkgbase#linux}
 
 prepare() {
@@ -48,7 +35,7 @@ prepare() {
 
   # add latest fixes from stable queue, if needed
   # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
-  
+
   # revert http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9faac7b95ea4f9e83b7a914084cc81ef1632fd91
   # fixes #47778 sdhci broken on some boards
   # https://bugzilla.kernel.org/show_bug.cgi?id=106541
@@ -135,6 +122,10 @@ _package() {
     -e "s|fallback_image=.*|fallback_image=\"/boot/initramfs-${pkgbase}-fallback.img\"|" \
     -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
 
+  # install pacman hook for initramfs regeneration
+  sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" |
+    install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook"
+
   # remove build and source links
   rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
   # remove the firmware
@@ -156,7 +147,7 @@ _package() {
   find $pkgdir/usr/lib -name "nouvea*" -exec rm -f {} \;
 
   # add vmlinux
-  install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux" 
+  install -D -m644 vmlinux "${pkgdir}/usr/lib/modules/${_kernver}/build/vmlinux"
 }
 
 _package-headers() {
@@ -248,8 +239,6 @@ _package-headers() {
   # add xfs and shmem for aufs building
   mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs"
   mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/mm"
-  # removed in 3.17 series
-  # cp fs/xfs/xfs_sb.h "${pkgdir}/usr/lib/modules/${_kernver}/build/fs/xfs/xfs_sb.h"
 
   # copy in Kconfig files
   for i in $(find . -name "Kconfig*"); do
@@ -275,7 +264,7 @@ _package-headers() {
   # remove unneeded architectures
   rm -rf "${pkgdir}"/usr/lib/modules/${_kernver}/build/arch/{alpha,arc,arm,arm26,arm64,avr32,blackfin,c6x,cris,frv,h8300,hexagon,ia64,m32r,m68k,m68knommu,metag,mips,microblaze,mn10300,openrisc,parisc,powerpc,ppc,s390,score,sh,sh64,sparc,sparc64,tile,unicore32,um,v850,xtensa}
   
-  # remove a files already in linux-docs package
+  # remove files already in linux-docs package
   rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.recursion-issue-01"
   rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.recursion-issue-02"
   rm -f "${pkgdir}/usr/lib/modules/${_kernver}/build/Documentation/kbuild/Kconfig.select-break"
@@ -302,5 +291,13 @@ for _p in ${pkgname[@]}; do
     _package${_p#${pkgbase}}
   }"
 done
-
-# vim:set ts=8 sts=2 sw=2 et:
+md5sums=('9a78fa2eb6c68ca5a40ed5af08142599'
+         'SKIP'
+         '152561e51e76089c5b045f8c0257f9d5'
+         'SKIP'
+         'be50f82adaeb685d41eb55acd1b09134'
+         'd254ffa0b91d459529ec23a1cdeceb35'
+         '90cd68710e3064d9b65f5549570f7821'
+         'eb14dcfd80c00852ef81ded6e826826a'
+         'df7fceae6ee5d7e7be7b60ecd7f6bb35'
+         'e1093d9bc718f362344ab56b85d4fb76')
diff --git a/abs/core/linux/linux.install b/abs/core/linux/linux.install
index dd2fa5c..15dc8b6 100644
--- a/abs/core/linux/linux.install
+++ b/abs/core/linux/linux.install
@@ -8,8 +8,6 @@ post_install () {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
   depmod ${KERNEL_VERSION}
-  echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
-  mkinitcpio -p linux${KERNEL_NAME}
 }
 
 post_upgrade() {
@@ -20,8 +18,6 @@ post_upgrade() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
   depmod ${KERNEL_VERSION}
-  echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
-  mkinitcpio -p linux${KERNEL_NAME}
 
   if [ $(vercmp $2 3.13) -lt 0 ]; then
     echo ">>> WARNING: AT keyboard support is no longer built into the kernel."
diff --git a/abs/core/linux/linux.install.pkg b/abs/core/linux/linux.install.pkg
index 90e9fbb..80ccf2c 100644
--- a/abs/core/linux/linux.install.pkg
+++ b/abs/core/linux/linux.install.pkg
@@ -2,14 +2,12 @@
 # arg 2:  the old package version
 
 KERNEL_NAME=
-KERNEL_VERSION=4.4.39-1-ARCH
+KERNEL_VERSION=4.4.58-1-ARCH
 
 post_install () {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
   depmod ${KERNEL_VERSION}
-  echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
-  mkinitcpio -p linux${KERNEL_NAME}
 }
 
 post_upgrade() {
@@ -20,8 +18,6 @@ post_upgrade() {
   # updating module dependencies
   echo ">>> Updating module dependencies. Please wait ..."
   depmod ${KERNEL_VERSION}
-  echo ">>> Generating initial ramdisk, using mkinitcpio. Please wait..."
-  mkinitcpio -p linux${KERNEL_NAME}
 
   if [ $(vercmp $2 3.13) -lt 0 ]; then
     echo ">>> WARNING: AT keyboard support is no longer built into the kernel."
-- 
cgit v0.12


From 6dce02640f282da9cf02a9941394706c6d2b0f78 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 30 Mar 2017 17:16:21 +0000
Subject: nvidia & nvidia-utils: update to 378.13

---
 abs/core/nvidia-utils/PKGBUILD                    |  61 ++--
 abs/core/nvidia-utils/nvidia-drm-outputclass.conf |  14 +
 abs/core/nvidia/PKGBUILD                          |  12 +-
 abs/core/nvidia/kernel_4.10.patch                 | 382 ++++++++++++++++++++++
 4 files changed, 425 insertions(+), 44 deletions(-)
 create mode 100644 abs/core/nvidia-utils/nvidia-drm-outputclass.conf
 create mode 100644 abs/core/nvidia/kernel_4.10.patch

diff --git a/abs/core/nvidia-utils/PKGBUILD b/abs/core/nvidia-utils/PKGBUILD
index 95be900..eed11f8 100644
--- a/abs/core/nvidia-utils/PKGBUILD
+++ b/abs/core/nvidia-utils/PKGBUILD
@@ -4,17 +4,19 @@
 # Contributor: James Rayner <iphitus@gmail.com>
 
 pkgbase=nvidia-utils
-pkgname=('nvidia-utils' 'nvidia-libgl' 'opencl-nvidia')
-pkgver=375.26
-pkgrel=2
+pkgname=('nvidia-utils' 'opencl-nvidia')
+pkgver=378.13
+pkgrel=6
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 license=('custom')
 options=('!strip')
+source=('nvidia-drm-outputclass.conf')
 source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-sha512sums_i686=('3bc859a95469a45f3c627018248d83e178d160385c3d17d9f890b0d142ecd1220fb21c442e4fe7755b831227a9c820736f447b162acd9699819c6e8145d6d841')
-sha512sums_x86_64=('f52f6597daa1eaf4cbd934d785da6028ef23ecef98e14746143e3738504f8d65b73788abbcf9fd812317fc2c53cdf1c4d4839de57fafdea1930a08c6b21f1992')
+md5sums=('a433deeb5f9cc661e537f42bde2f1df7')
+md5sums_i686=('dd1077750af9a067739ec291fb24175f')
+md5sums_x86_64=('fe4d25b19a780a690cafc8e3b7c0113f')
 
 [[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
 [[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
@@ -53,56 +55,35 @@ package_opencl-nvidia() {
     ln -s nvidia "${pkgdir}/usr/share/licenses/opencl-nvidia"
 }
 
-package_nvidia-libgl() {
-    pkgdesc="NVIDIA drivers libraries symlinks"
-    depends=('nvidia-utils')
-    conflicts=('libgl' 'libegl' 'libgles')
-    provides=('libgl' 'libegl' 'libgles')
-    cd "${_pkg}"
-
-    mkdir -p "${pkgdir}/usr/lib/xorg/modules/extensions"
-    ln -s "/usr/lib/nvidia/xorg/modules/extensions/libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so.${pkgver}"
-    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so.1"
-    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"
-
-    ln -s "/usr/lib/nvidia/libGL.so.1" "${pkgdir}/usr/lib/libGL.so.1"
-    ln -s "libGL.so.1" "${pkgdir}/usr/lib/libGL.so"
-
-    ln -s "/usr/lib/nvidia/libEGL.so.1" "${pkgdir}/usr/lib/libEGL.so.1"
-    ln -s "libEGL.so.1" "${pkgdir}/usr/lib/libEGL.so"
-
-    ln -s "/usr/lib/nvidia/libGLESv1_CM.so.1" "${pkgdir}/usr/lib/libGLESv1_CM.so.1"
-    ln -s "libGLESv1_CM.so.1" "${pkgdir}/usr/lib/libGLESv1_CM.so"
-
-    ln -s "/usr/lib/nvidia/libGLESv2.so.2" "${pkgdir}/usr/lib/libGLESv2.so.2"
-    ln -s "libGLESv2.so.2" "${pkgdir}/usr/lib/libGLESv2.so"
-
-    mkdir -p "${pkgdir}/usr/share/licenses"
-    ln -s nvidia "${pkgdir}/usr/share/licenses/nvidia-libgl"
-}
-
 package_nvidia-utils() {
     pkgdesc="NVIDIA drivers utilities"
     depends=('xorg-server' 'libglvnd')
     optdepends=('nvidia-settings: configuration tool'
                 'xorg-server-devel: nvidia-xconfig'
                 'opencl-nvidia: OpenCL support')
-    provides=('vulkan-driver')
+    conflicts=('nvidia-libgl')
+    provides=('vulkan-driver' 'opengl-driver' 'nvidia-libgl')
+    replaces=('nvidia-libgl')
     install="${pkgname}.install"
+
     cd "${_pkg}"
 
     # X driver
     install -D -m755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"
 
     # GLX extension module for X
-    install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/modules/extensions/libglx.so.${pkgver}"
-    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/modules/extensions/libglx.so"	# X doesn't find glx otherwise
+    install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.${pkgver}"
+    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.1"	# X doesn't find glx otherwise
+    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so"	# X doesn't find glx otherwise
+    
     install -D -m755 "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_nvidia.so.${pkgver}"
-    ln -s "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_indirect.so.0"
+    # now in mesa driver
+    #ln -s "libGLX_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libGLX_indirect.so.0"
 
     # Wayland stuff
-    install -D -m755 "libnvidia-egl-wayland.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-egl-wayland.so.${pkgver}"
-    ln -s "libnvidia-egl-wayland.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-egl-wayland.so.0"
+    install -D -m755 "libnvidia-egl-wayland.so.1.0.1" "${pkgdir}/usr/lib/libnvidia-egl-wayland.so.1.0.1"
+    ln -s "libnvidia-egl-wayland.so.1.0.1" "${pkgdir}/usr/lib/libnvidia-egl-wayland.so.1"
+    install -D -m644 "10_nvidia_wayland.json" "${pkgdir}/usr/share/egl/egl_external_platform.d/10_nvidia_wayland.json"
 
     # OpenGL libraries
     install -D -m755 "libEGL_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/libEGL_nvidia.so.${pkgver}"
@@ -184,7 +165,7 @@ package_nvidia-utils() {
     ln -s nvidia "${pkgdir}/usr/share/doc/nvidia-utils"
 
     # distro specific files must be installed in /usr/share/X11/xorg.conf.d
-    install -D -m644 nvidia-drm-outputclass.conf "${pkgdir}/usr/share/X11/xorg.conf.d/nvidia-drm-outputclass.conf"
+    install -D -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf"
 
     create_links
 }
diff --git a/abs/core/nvidia-utils/nvidia-drm-outputclass.conf b/abs/core/nvidia-utils/nvidia-drm-outputclass.conf
new file mode 100644
index 0000000..b6003d3
--- /dev/null
+++ b/abs/core/nvidia-utils/nvidia-drm-outputclass.conf
@@ -0,0 +1,14 @@
+Section "OutputClass"
+    Identifier "intel"
+    MatchDriver "i915"
+    Driver "modesetting"
+EndSection
+
+Section "OutputClass"
+    Identifier "nvidia"
+    MatchDriver "nvidia-drm"
+    Driver "nvidia"
+    Option "AllowEmptyInitialConfiguration"
+    Option "PrimaryGPU" "yes"
+    ModulePath "/usr/lib/nvidia/xorg"
+EndSection
diff --git a/abs/core/nvidia/PKGBUILD b/abs/core/nvidia/PKGBUILD
index 47329f3..b5a0707 100644
--- a/abs/core/nvidia/PKGBUILD
+++ b/abs/core/nvidia/PKGBUILD
@@ -5,19 +5,21 @@
 
 pkgbase=nvidia
 pkgname=(nvidia nvidia-dkms)
-pkgver=375.26
+pkgver=378.13
 _extramodules=extramodules-4.4-ARCH
-pkgrel=1
+pkgrel=4
 pkgdesc="NVIDIA drivers for linux"
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 makedepends=('nvidia-libgl' "nvidia-utils=${pkgver}" 'linux' 'linux-headers>=4.4' 'linux-headers<4.5')
 license=('custom')
 options=('!strip')
+source=('kernel_4.10.patch')
 source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-sha512sums_i686=('3bc859a95469a45f3c627018248d83e178d160385c3d17d9f890b0d142ecd1220fb21c442e4fe7755b831227a9c820736f447b162acd9699819c6e8145d6d841')
-sha512sums_x86_64=('f52f6597daa1eaf4cbd934d785da6028ef23ecef98e14746143e3738504f8d65b73788abbcf9fd812317fc2c53cdf1c4d4839de57fafdea1930a08c6b21f1992')
+md5sums=('e81769b830b7a1e60c635e3bbe559f59')
+md5sums_i686=('dd1077750af9a067739ec291fb24175f')
+md5sums_x86_64=('fe4d25b19a780a690cafc8e3b7c0113f')
 
 [[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
 [[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
@@ -26,6 +28,8 @@ prepare() {
     sh "${_pkg}.run" --extract-only
     cd "${_pkg}"
 
+#    patch -Np1 --no-backup-if-mismatch -i ../kernel_4.10.patch
+
     cp -a kernel kernel-dkms
     cd kernel-dkms
     sed -i "s/__VERSION_STRING/${pkgver}/" dkms.conf
diff --git a/abs/core/nvidia/kernel_4.10.patch b/abs/core/nvidia/kernel_4.10.patch
new file mode 100644
index 0000000..4ad9f8a
--- /dev/null
+++ b/abs/core/nvidia/kernel_4.10.patch
@@ -0,0 +1,382 @@
+From ca8b106738521823707f3567cedb41ca158792a3 Mon Sep 17 00:00:00 2001
+From: Alberto Milone <alberto.milone@canonical.com>
+Date: Wed, 15 Feb 2017 10:53:42 +0100
+Subject: [PATCH 1/1] Add support for Linux 4.10
+
+---
+ common/inc/nv-mm.h            |  9 ++++--
+ nvidia-drm/nvidia-drm-fence.c | 72 +++++++++++++++++++++++++++++++++++++++++++
+ nvidia-drm/nvidia-drm-gem.h   |  6 ++++
+ nvidia-drm/nvidia-drm-priv.h  |  7 +++++
+ nvidia/nv-pat.c               | 40 ++++++++++++++++++++++++
+ 5 files changed, 132 insertions(+), 2 deletions(-)
+
+diff --git a/kernel/common/inc/nv-mm.h b/kernel/common/inc/nv-mm.h
+index 06d7da4..e5cc56a 100644
+--- a/kernel/common/inc/nv-mm.h
++++ b/kernel/common/inc/nv-mm.h
+@@ -46,6 +46,8 @@
+  *   2016 Dec 14:5b56d49fc31dbb0487e14ead790fc81ca9fb2c99
+  */
+ 
++#include <linux/version.h>
++
+ #if defined(NV_GET_USER_PAGES_REMOTE_PRESENT)
+     #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS)
+         #define NV_GET_USER_PAGES           get_user_pages
+@@ -92,10 +94,13 @@
+                                             pages, vmas, NULL);
+ 
+         #else
+-
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+                return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
+                                             pages, vmas);
+-
++#else
++               return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
++                                            pages, vmas, NULL);
++#endif
+         #endif
+ 
+         }
+diff --git a/kernel/nvidia-drm/nvidia-drm-fence.c b/kernel/nvidia-drm/nvidia-drm-fence.c
+index 5e98c5f..fa2c508 100644
+--- a/kernel/nvidia-drm/nvidia-drm-fence.c
++++ b/kernel/nvidia-drm/nvidia-drm-fence.c
+@@ -31,7 +31,11 @@
+ 
+ #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ)
+ struct nv_fence {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     struct fence base;
++#else
++    struct dma_fence base;
++#endif
+     spinlock_t lock;
+ 
+     struct nvidia_drm_device *nv_dev;
+@@ -51,7 +55,11 @@ nv_fence_ready_to_signal(struct nv_fence *nv_fence)
+ 
+ static const char *nvidia_drm_gem_prime_fence_op_get_driver_name
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     struct fence *fence
++#else
++    struct dma_fence *fence
++#endif
+ )
+ {
+     return "NVIDIA";
+@@ -59,7 +67,11 @@ static const char *nvidia_drm_gem_prime_fence_op_get_driver_name
+ 
+ static const char *nvidia_drm_gem_prime_fence_op_get_timeline_name
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     struct fence *fence
++#else
++    struct dma_fence *fence
++#endif
+ )
+ {
+     return "nvidia.prime";
+@@ -67,7 +79,11 @@ static const char *nvidia_drm_gem_prime_fence_op_get_timeline_name
+ 
+ static bool nvidia_drm_gem_prime_fence_op_signaled
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     struct fence *fence
++#else
++    struct dma_fence *fence
++#endif
+ )
+ {
+     struct nv_fence *nv_fence = container_of(fence, struct nv_fence, base);
+@@ -99,7 +115,11 @@ unlock_struct_mutex:
+ 
+ static bool nvidia_drm_gem_prime_fence_op_enable_signaling
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     struct fence *fence
++#else
++    struct dma_fence *fence
++#endif
+ )
+ {
+     bool ret = true;
+@@ -107,7 +127,11 @@ static bool nvidia_drm_gem_prime_fence_op_enable_signaling
+     struct nvidia_drm_gem_object *nv_gem = nv_fence->nv_gem;
+     struct nvidia_drm_device *nv_dev = nv_fence->nv_dev;
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     if (fence_is_signaled(fence))
++#else
++    if (dma_fence_is_signaled(fence))
++#endif
+     {
+         return false;
+     }
+@@ -136,7 +160,11 @@ static bool nvidia_drm_gem_prime_fence_op_enable_signaling
+     }
+ 
+     nv_gem->fenceContext.softFence = fence;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     fence_get(fence);
++#else
++    dma_fence_get(fence);
++#endif
+ 
+ unlock_struct_mutex:
+     mutex_unlock(&nv_dev->dev->struct_mutex);
+@@ -146,7 +174,11 @@ unlock_struct_mutex:
+ 
+ static void nvidia_drm_gem_prime_fence_op_release
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     struct fence *fence
++#else
++    struct dma_fence *fence
++#endif
+ )
+ {
+     struct nv_fence *nv_fence = container_of(fence, struct nv_fence, base);
+@@ -155,7 +187,11 @@ static void nvidia_drm_gem_prime_fence_op_release
+ 
+ static signed long nvidia_drm_gem_prime_fence_op_wait
+ (
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     struct fence *fence,
++#else
++    struct dma_fence *fence,
++#endif
+     bool intr,
+     signed long timeout
+ )
+@@ -170,12 +206,20 @@ static signed long nvidia_drm_gem_prime_fence_op_wait
+      * that it should never get hit during normal operation, but not so long
+      * that the system becomes unresponsive.
+      */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     return fence_default_wait(fence, intr,
++#else
++    return dma_fence_default_wait(fence, intr,
++#endif
+                               (timeout == MAX_SCHEDULE_TIMEOUT) ?
+                                   msecs_to_jiffies(96) : timeout);
+ }
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ static const struct fence_ops nvidia_drm_gem_prime_fence_ops = {
++#else
++static const struct dma_fence_ops nvidia_drm_gem_prime_fence_ops = {
++#endif
+     .get_driver_name = nvidia_drm_gem_prime_fence_op_get_driver_name,
+     .get_timeline_name = nvidia_drm_gem_prime_fence_op_get_timeline_name,
+     .signaled = nvidia_drm_gem_prime_fence_op_signaled,
+@@ -285,7 +329,11 @@ static void nvidia_drm_gem_prime_fence_signal
+     bool force
+ )
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     struct fence *fence = nv_gem->fenceContext.softFence;
++#else
++    struct dma_fence *fence = nv_gem->fenceContext.softFence;
++#endif
+ 
+     WARN_ON(!mutex_is_locked(&nv_dev->dev->struct_mutex));
+ 
+@@ -301,10 +349,18 @@ static void nvidia_drm_gem_prime_fence_signal
+ 
+         if (force || nv_fence_ready_to_signal(nv_fence))
+         {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+             fence_signal(&nv_fence->base);
++#else
++            dma_fence_signal(&nv_fence->base);
++#endif
+ 
+             nv_gem->fenceContext.softFence = NULL;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+             fence_put(&nv_fence->base);
++#else
++            dma_fence_put(&nv_fence->base);
++#endif
+ 
+             nvKms->disableChannelEvent(nv_dev->pDevice,
+                                        nv_gem->fenceContext.cb);
+@@ -320,7 +376,11 @@ static void nvidia_drm_gem_prime_fence_signal
+ 
+         nv_fence = container_of(fence, struct nv_fence, base);
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+         fence_signal(&nv_fence->base);
++#else
++        dma_fence_signal(&nv_fence->base);
++#endif
+     }
+ }
+ 
+@@ -513,7 +573,11 @@ int nvidia_drm_gem_prime_fence_init
+      * fence_context_alloc() cannot fail, so we do not need to check a return
+      * value.
+      */
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     nv_gem->fenceContext.context = fence_context_alloc(1);
++#else
++    nv_gem->fenceContext.context = dma_fence_context_alloc(1);
++#endif
+ 
+     ret = nvidia_drm_gem_prime_fence_import_semaphore(
+               nv_dev, nv_gem, p->index,
+@@ -670,7 +734,11 @@ int nvidia_drm_gem_prime_fence_attach
+     nv_fence->nv_gem = nv_gem;
+ 
+     spin_lock_init(&nv_fence->lock);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     fence_init(&nv_fence->base, &nvidia_drm_gem_prime_fence_ops,
++#else
++    dma_fence_init(&nv_fence->base, &nvidia_drm_gem_prime_fence_ops,
++#endif
+                &nv_fence->lock, nv_gem->fenceContext.context,
+                p->sem_thresh);
+ 
+@@ -680,7 +748,11 @@ int nvidia_drm_gem_prime_fence_attach
+ 
+     reservation_object_add_excl_fence(&nv_gem->fenceContext.resv,
+                                       &nv_fence->base);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     fence_put(&nv_fence->base); /* Reservation object has reference */
++#else
++    dma_fence_put(&nv_fence->base);
++#endif
+ 
+     ret = 0;
+ 
+diff --git a/kernel/nvidia-drm/nvidia-drm-gem.h b/kernel/nvidia-drm/nvidia-drm-gem.h
+index 4ff45e8..394576b 100644
+--- a/kernel/nvidia-drm/nvidia-drm-gem.h
++++ b/kernel/nvidia-drm/nvidia-drm-gem.h
+@@ -29,6 +29,8 @@
+ 
+ #include "nvidia-drm-priv.h"
+ 
++#include <linux/version.h>
++
+ #include <drm/drmP.h>
+ #include "nvkms-kapi.h"
+ 
+@@ -98,7 +100,11 @@ struct nvidia_drm_gem_object
+         /* Software signaling structures */
+         struct NvKmsKapiChannelEvent *cb;
+         struct nvidia_drm_gem_prime_soft_fence_event_args *cbArgs;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+         struct fence *softFence; /* Fence for software signaling */
++#else
++        struct dma_fence *softFence;
++#endif
+     } fenceContext;
+ #endif
+ };
+diff --git a/kernel/nvidia-drm/nvidia-drm-priv.h b/kernel/nvidia-drm/nvidia-drm-priv.h
+index 1e9b9f9..ae171e7 100644
+--- a/kernel/nvidia-drm/nvidia-drm-priv.h
++++ b/kernel/nvidia-drm/nvidia-drm-priv.h
+@@ -25,6 +25,8 @@
+ 
+ #include "conftest.h" /* NV_DRM_AVAILABLE */
+ 
++#include <linux/version.h>
++
+ #if defined(NV_DRM_AVAILABLE)
+ 
+ #include <drm/drmP.h>
+@@ -34,7 +36,12 @@
+ #endif
+ 
+ #if defined(NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ #include <linux/fence.h>
++#else
++#include <linux/dma-fence.h>
++#endif
++
+ #include <linux/reservation.h>
+ #endif
+ 
+diff --git a/kernel/nvidia/nv-pat.c b/kernel/nvidia/nv-pat.c
+index df78020..0af7d47 100644
+--- a/kernel/nvidia/nv-pat.c
++++ b/kernel/nvidia/nv-pat.c
+@@ -203,6 +203,7 @@ void nv_disable_pat_support(void)
+ }
+ 
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ static int
+ nvidia_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
+ {
+@@ -234,6 +235,34 @@ static struct notifier_block nv_hotcpu_nfb = {
+     .notifier_call = nvidia_cpu_callback,
+     .priority = 0
+ };
++#else
++static int nvidia_cpu_online(unsigned int hcpu)
++{
++    unsigned int cpu = get_cpu();
++    if (cpu == hcpu)
++        nv_setup_pat_entries(NULL);
++    else
++        NV_SMP_CALL_FUNCTION(nv_setup_pat_entries, (void *)(long int)hcpu, 1);
++
++    put_cpu();
++
++    return 0;
++}
++
++static int nvidia_cpu_down_prep(unsigned int hcpu)
++{
++    unsigned int cpu = get_cpu();
++    if (cpu == hcpu)
++        nv_restore_pat_entries(NULL);
++    else
++        NV_SMP_CALL_FUNCTION(nv_restore_pat_entries, (void *)(long int)hcpu, 1);
++
++    put_cpu();
++
++    return 0;
++}
++#endif
++
+ #endif
+ 
+ int nv_init_pat_support(nvidia_stack_t *sp)
+@@ -255,7 +284,14 @@ int nv_init_pat_support(nvidia_stack_t *sp)
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
+         if (nv_pat_mode == NV_PAT_MODE_BUILTIN)
+         {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+             if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0)
++#else
++            if (cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
++                                  "gpu/nvidia:online",
++                                  nvidia_cpu_online,
++                                  nvidia_cpu_down_prep) != 0)
++#endif
+             {
+                 nv_disable_pat_support();
+                 nv_printf(NV_DBG_ERRORS,
+@@ -280,7 +316,11 @@ void nv_teardown_pat_support(void)
+     {
+         nv_disable_pat_support();
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+         unregister_hotcpu_notifier(&nv_hotcpu_nfb);
++#else
++        cpuhp_remove_state_nocalls(CPUHP_AP_ONLINE_DYN);
++#endif
+ #endif
+     }
+ }
+-- 
+2.7.4
+
-- 
cgit v0.12


From 40cb6fab936d6c4c07ab785cee75aa30354cfd37 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 30 Mar 2017 17:30:34 +0000
Subject: nvidia-340xx & nvidia-340xx-utils: update to 340.102

---
 abs/core/nvidia-340xx-utils/PKGBUILD               |  82 +++++--------
 .../nvidia-340xx-utils/nvidia-drm-outputclass.conf |  14 ++-
 abs/core/nvidia-340xx/4.10.0_kernel.patch          | 131 +++++++++++++++++++++
 abs/core/nvidia-340xx/PKGBUILD                     |  16 ++-
 abs/core/nvidia-340xx/fs52243.patch                |  14 +++
 5 files changed, 195 insertions(+), 62 deletions(-)
 create mode 100644 abs/core/nvidia-340xx/4.10.0_kernel.patch
 create mode 100644 abs/core/nvidia-340xx/fs52243.patch

diff --git a/abs/core/nvidia-340xx-utils/PKGBUILD b/abs/core/nvidia-340xx-utils/PKGBUILD
index a2e858e..89c759f 100644
--- a/abs/core/nvidia-340xx-utils/PKGBUILD
+++ b/abs/core/nvidia-340xx-utils/PKGBUILD
@@ -4,9 +4,9 @@
 # Contributor: James Rayner <iphitus@gmail.com>
 
 pkgbase=nvidia-340xx-utils
-pkgname=('nvidia-340xx-utils' 'nvidia-340xx-libgl' 'opencl-nvidia-340xx')
-pkgver=340.101
-pkgrel=1
+pkgname=('nvidia-340xx-utils' 'opencl-nvidia-340xx')
+pkgver=340.102
+pkgrel=8
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 license=('custom')
@@ -14,9 +14,9 @@ options=('!strip')
 source=(nvidia-drm-outputclass.conf)
 source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-sha512sums=('06c649df3b02c6ccf5491fecd06f4c979656aaba2bb366e6197e96bb0eecd8d0a46245e69628d507ddc8c5fc6d5f1cac694f036bc45ba51f82a092ebd6097bf5')
-sha512sums_i686=('5866f2b4e6e22863c54d9fc08c9c88c9c911df2396d0ceaca653ded04589ea3a9e4550ed58f4b182b0a42cfe205ef643fe43ea709478e5df5360a7f74fa87f41')
-sha512sums_x86_64=('d5bea7315346e93a7cccd3d99900f4dad51dfa6e93382d4d61c314d0ab97dea063169b8d666d3a3373dea33b4322f945c3a18ed0fc3308e3f89af6f22f373abc')
+sha512sums=('cfea06a816ac4a8b728b1ec728d667cdcca604abb038e8b5313b434021caad06a586856b8b3a6c79f8c925629360f5a051ca3de5ab46a42af76b9d0615d2bbbe')
+sha512sums_i686=('bea700c925a6044fcded40324bb389c5fa1aadc40831f685a76e7b0ded11161f492960950c201467e564d157dcbe0c330d13a2014f51d0073002c5a262a6f0ca')
+sha512sums_x86_64=('2a29e6418244ea384e4237d74057bd8e56247b1c503cf623dea34a3b1065d8783879aa7e6a802dd31f0a10cf81cfcab2a1b1a8269b97996f15fa1838c0a3a44b')
 
 [[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
 [[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
@@ -56,55 +56,26 @@ package_opencl-nvidia-340xx() {
     ln -s nvidia "${pkgdir}/usr/share/licenses/opencl-nvidia"
 }
 
-package_nvidia-340xx-libgl() {
-    pkgdesc="NVIDIA drivers libraries symlinks"
-    depends=('nvidia-340xx-utils')
-    conflicts=('libgl' 'libgles' 'libegl' 'nvidia-libgl')
-    provides=('libgl' 'libgles' 'libegl' 'nvidia-libgl')
-    cd "${_pkg}"
-
-    mkdir -p "${pkgdir}/usr/lib/xorg/modules/extensions"
-    ln -s "/usr/lib/nvidia/xorg/modules/extensions/libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so.${pkgver}"
-    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so.1"
-    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"
-
-    ln -s "/usr/lib/nvidia/libGL.so.${pkgver}" "${pkgdir}/usr/lib/libGL.so.${pkgver}"
-    ln -s "libGL.so.${pkgver}" "${pkgdir}/usr/lib/libGL.so.1"
-    ln -s "libGL.so.${pkgver}" "${pkgdir}/usr/lib/libGL.so"
-
-    ln -s "/usr/lib/nvidia/libEGL.so.${pkgver}" "${pkgdir}/usr/lib/libEGL.so.${pkgver}"
-    ln -s "libEGL.so.${pkgver}" "${pkgdir}/usr/lib/libEGL.so.1"
-    ln -s "libEGL.so.${pkgver}" "${pkgdir}/usr/lib/libEGL.so"
-
-    ln -s "/usr/lib/nvidia/libGLESv1_CM.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv1_CM.so.${pkgver}"
-    ln -s "libGLESv1_CM.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv1_CM.so.1"
-    ln -s "libGLESv1_CM.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv1_CM.so"
-
-    ln -s "/usr/lib/nvidia/libGLESv2.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv2.so.${pkgver}"
-    ln -s "libGLESv2.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv2.so.2"
-    ln -s "libGLESv2.so.${pkgver}" "${pkgdir}/usr/lib/libGLESv2.so"
-
-    mkdir -p "${pkgdir}/usr/share/licenses"
-    ln -s nvidia "${pkgdir}/usr/share/licenses/nvidia-libgl"
-}
-
 package_nvidia-340xx-utils() {
     pkgdesc="NVIDIA drivers utilities"
     depends=('xorg-server')
     optdepends=('gtk2: nvidia-settings'
                 'xorg-server-devel: nvidia-xconfig'
                 'opencl-nvidia-340xx: OpenCL support')
-    conflicts=('nvidia-utils' 'libglvnd')
-    provides=('nvidia-utils')
+    conflicts=('nvidia-304xx-utils' 'nvidia-utils' 'nvidia-340xx-libgl')
+    provides=('libgl' 'libgles' 'libegl' 'nvidia-utils' 'nvidia-340xx-libgl')
+    replaces=('nvidia-340xx-libgl')
     install="${pkgname}.install"
+    
     cd "${_pkg}"
 
     # X driver
     install -D -m755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"
 
     # GLX extension module for X
-    install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/modules/extensions/libglx.so.${pkgver}"
-    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/modules/extensions/libglx.so"	# X doesn't find glx otherwise
+    install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.${pkgver}"
+    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.1"	# X doesn't find glx otherwise
+    ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so"	# X doesn't find glx otherwise
 
     # OpenGL libraries
     install -D -m755 "libGL.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libGL.so.${pkgver}"
@@ -113,26 +84,26 @@ package_nvidia-340xx-utils() {
     install -D -m755 "libGLESv2.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libGLESv2.so.${pkgver}"
 
     # OpenGL core library
-    install -D -m755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}"
-    install -D -m755 "libnvidia-eglcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-eglcore.so.${pkgver}"
-    install -D -m755 "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glsi.so.${pkgver}"
+    install -D -m755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-glcore.so.${pkgver}"
+    install -D -m755 "libnvidia-eglcore.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-eglcore.so.${pkgver}"
+    install -D -m755 "libnvidia-glsi.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-glsi.so.${pkgver}"
     
     # misc
-    install -D -m755 "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ifr.so.${pkgver}"
-    install -D -m755 "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-fbc.so.${pkgver}"
-    install -D -m755 "libnvidia-encode.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-encode.so.${pkgver}"
-    install -D -m755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}"
-    install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}"
+    install -D -m755 "libnvidia-ifr.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-ifr.so.${pkgver}"
+    install -D -m755 "libnvidia-fbc.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-fbc.so.${pkgver}"
+    install -D -m755 "libnvidia-encode.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-encode.so.${pkgver}"
+    install -D -m755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-cfg.so.${pkgver}"
+    install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-ml.so.${pkgver}"
 
     # VDPAU
     install -D -m755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}"
 
     # nvidia-tls library
-    install -D -m755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
+    install -D -m755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-tls.so.${pkgver}"
 
     # CUDA
-    install -D -m755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}"
-    install -D -m755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/libnvcuvid.so.${pkgver}"
+    install -D -m755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libcuda.so.${pkgver}"
+    install -D -m755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvcuvid.so.${pkgver}"
 
     # DEBUG
     install -D -m755 nvidia-debugdump "${pkgdir}/usr/bin/nvidia-debugdump"
@@ -184,7 +155,10 @@ package_nvidia-340xx-utils() {
 
     # distro specific files must be installed in /usr/share/X11/xorg.conf.d
     install -m755 -d "${pkgdir}/usr/share/X11/xorg.conf.d"
-    install -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/"
+    install -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf"
+
+    install -dm 755 "${pkgdir}"/etc/ld.so.conf.d
+    echo -e '/usr/lib/nvidia/' > "${pkgdir}"/etc/ld.so.conf.d/00-nvidia.conf
 
     create_links
 }
diff --git a/abs/core/nvidia-340xx-utils/nvidia-drm-outputclass.conf b/abs/core/nvidia-340xx-utils/nvidia-drm-outputclass.conf
index 40c1e08..b6003d3 100644
--- a/abs/core/nvidia-340xx-utils/nvidia-drm-outputclass.conf
+++ b/abs/core/nvidia-340xx-utils/nvidia-drm-outputclass.conf
@@ -1,6 +1,14 @@
 Section "OutputClass"
-	Identifier "nvidia"
-	MatchDriver "nvidia-drm"
-	Driver "nvidia"
+    Identifier "intel"
+    MatchDriver "i915"
+    Driver "modesetting"
 EndSection
 
+Section "OutputClass"
+    Identifier "nvidia"
+    MatchDriver "nvidia-drm"
+    Driver "nvidia"
+    Option "AllowEmptyInitialConfiguration"
+    Option "PrimaryGPU" "yes"
+    ModulePath "/usr/lib/nvidia/xorg"
+EndSection
diff --git a/abs/core/nvidia-340xx/4.10.0_kernel.patch b/abs/core/nvidia-340xx/4.10.0_kernel.patch
new file mode 100644
index 0000000..f4297b1
--- /dev/null
+++ b/abs/core/nvidia-340xx/4.10.0_kernel.patch
@@ -0,0 +1,131 @@
+From 983a2ca221a371e08bb5ad11758a729cfa5aa88c Mon Sep 17 00:00:00 2001
+From: Alberto Milone <alberto.milone@canonical.com>
+Date: Wed, 15 Feb 2017 17:05:55 +0100
+Subject: [PATCH 1/1] Add support for Linux 4.10
+
+---
+ nv-linux.h            |  7 +++++++
+ nv-pat.c              | 40 ++++++++++++++++++++++++++++++++++++++++
+ uvm/nvidia_uvm_lite.c |  4 ++++
+ 3 files changed, 51 insertions(+)
+
+diff --git a/kernel/nv-linux.h b/kernel/nv-linux.h
+index e7068e3..2d62492 100644
+--- a/kernel/nv-linux.h
++++ b/kernel/nv-linux.h
+@@ -2082,6 +2082,8 @@ static inline NvU64 nv_node_end_pfn(int nid)
+  *    2016 Dec 14:5b56d49fc31dbb0487e14ead790fc81ca9fb2c99
+  */
+ 
++#include <linux/version.h>
++
+ #if defined(NV_GET_USER_PAGES_REMOTE_PRESENT)
+     #if defined(NV_GET_USER_PAGES_HAS_WRITE_AND_FORCE_ARGS)
+         #define NV_GET_USER_PAGES           get_user_pages
+@@ -2129,8 +2131,13 @@ static inline NvU64 nv_node_end_pfn(int nid)
+ 
+         #else
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+                return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
+                                             pages, vmas);
++#else
++               return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
++                                            pages, vmas, NULL);
++#endif
+ 
+         #endif
+ 
+diff --git a/kernel/nv-pat.c b/kernel/nv-pat.c
+index a725533..cec6f3f 100644
+--- a/kernel/nv-pat.c
++++ b/kernel/nv-pat.c
+@@ -203,6 +203,7 @@ void nv_disable_pat_support(void)
+ }
+ 
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ static int
+ nvidia_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
+ {
+@@ -234,6 +235,34 @@ static struct notifier_block nv_hotcpu_nfb = {
+     .notifier_call = nvidia_cpu_callback,
+     .priority = 0
+ };
++#else
++static int nvidia_cpu_online(unsigned int hcpu)
++{
++    unsigned int cpu = get_cpu();
++    if (cpu == hcpu)
++        nv_setup_pat_entries(NULL);
++    else
++        NV_SMP_CALL_FUNCTION(nv_setup_pat_entries, (void *)(long int)hcpu, 1);
++
++    put_cpu();
++
++    return 0;
++}
++
++static int nvidia_cpu_down_prep(unsigned int hcpu)
++{
++    unsigned int cpu = get_cpu();
++    if (cpu == hcpu)
++        nv_restore_pat_entries(NULL);
++    else
++        NV_SMP_CALL_FUNCTION(nv_restore_pat_entries, (void *)(long int)hcpu, 1);
++
++    put_cpu();
++
++    return 0;
++}
++#endif
++
+ #endif
+ 
+ int nv_init_pat_support(nv_stack_t *sp)
+@@ -255,7 +284,14 @@ int nv_init_pat_support(nv_stack_t *sp)
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
+         if (nv_pat_mode == NV_PAT_MODE_BUILTIN)
+         {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+             if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0)
++#else
++            if (cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
++                                  "gpu/nvidia:online",
++                                  nvidia_cpu_online,
++                                  nvidia_cpu_down_prep) != 0)
++#endif
+             {
+                 nv_disable_pat_support();
+                 nv_printf(NV_DBG_ERRORS,
+@@ -280,7 +316,11 @@ void nv_teardown_pat_support(void)
+     {
+         nv_disable_pat_support();
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+         unregister_hotcpu_notifier(&nv_hotcpu_nfb);
++#else
++        cpuhp_remove_state_nocalls(CPUHP_AP_ONLINE_DYN);
++#endif
+ #endif
+     }
+ }
+diff --git a/kernel/uvm/nvidia_uvm_lite.c b/kernel/uvm/nvidia_uvm_lite.c
+index 9627f60..2158b45 100644
+--- a/kernel/uvm/nvidia_uvm_lite.c
++++ b/kernel/uvm/nvidia_uvm_lite.c
+@@ -820,7 +820,11 @@ done:
+ #if defined(NV_VM_OPERATIONS_STRUCT_HAS_FAULT)
+ int _fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+     unsigned long vaddr = (unsigned long)vmf->virtual_address;
++#else
++    unsigned long vaddr = (unsigned long)vmf->address;
++#endif
+     struct page *page = NULL;
+     int retval;
+ 
+-- 
+2.7.4
+
diff --git a/abs/core/nvidia-340xx/PKGBUILD b/abs/core/nvidia-340xx/PKGBUILD
index ab42426..a3de95b 100644
--- a/abs/core/nvidia-340xx/PKGBUILD
+++ b/abs/core/nvidia-340xx/PKGBUILD
@@ -4,19 +4,22 @@
 
 pkgbase=nvidia-340xx
 pkgname=(nvidia-340xx nvidia-340xx-dkms)
-pkgver=340.101
+pkgver=340.102
 _extramodules=extramodules-4.4-ARCH
-pkgrel=4
+pkgrel=5
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
-makedepends=("nvidia-340xx-libgl=${pkgver}" "nvidia-340xx-utils=${pkgver}" 'linux' 'linux-headers>=4.4' 'linux-headers<4.5')
+makedepends=("nvidia-340xx-utils=${pkgver}" 'linux' 'linux-headers>=4.4' 'linux-headers<4.5')
 conflicts=('nvidia')
 license=('custom')
 options=(!strip)
+source=('fs52243.patch' '4.10.0_kernel.patch')
 source_i686+=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64+=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-sha512sums_i686=('5866f2b4e6e22863c54d9fc08c9c88c9c911df2396d0ceaca653ded04589ea3a9e4550ed58f4b182b0a42cfe205ef643fe43ea709478e5df5360a7f74fa87f41')
-sha512sums_x86_64=('d5bea7315346e93a7cccd3d99900f4dad51dfa6e93382d4d61c314d0ab97dea063169b8d666d3a3373dea33b4322f945c3a18ed0fc3308e3f89af6f22f373abc')
+sha512sums=('de4f697d64f8e73c4aadec1a407884a6bc459c0020d4bfd19740fe4177a60bb801fe8a74ef6f7fa2e89c6cd648ea4daf152799ae344a145c06480a6eef0c5bca'
+            '88a2b448c1e8445dc43820328e86d8f20eb7e3cb5774e704cd44191a9fa26064264510c1adc9ea938fa2c92075496f3a27bd52ae6e6f4ec5fa6d4a829dd961e8')
+sha512sums_i686=('bea700c925a6044fcded40324bb389c5fa1aadc40831f685a76e7b0ded11161f492960950c201467e564d157dcbe0c330d13a2014f51d0073002c5a262a6f0ca')
+sha512sums_x86_64=('2a29e6418244ea384e4237d74057bd8e56247b1c503cf623dea34a3b1065d8783879aa7e6a802dd31f0a10cf81cfcab2a1b1a8269b97996f15fa1838c0a3a44b')
 
 [[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
 [[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
@@ -26,6 +29,9 @@ prepare() {
     cd "${_pkg}"
     # patches here
 
+    patch -Np0 < "${srcdir}"/fs52243.patch
+#    patch -Np1 < "${srcdir}"/4.10.0_kernel.patch
+
     cp -a kernel kernel-dkms
 }
 
diff --git a/abs/core/nvidia-340xx/fs52243.patch b/abs/core/nvidia-340xx/fs52243.patch
new file mode 100644
index 0000000..b6dc35a
--- /dev/null
+++ b/abs/core/nvidia-340xx/fs52243.patch
@@ -0,0 +1,14 @@
+--- kernel/nv-drm.c	2016-12-15 12:41:26.000000000 +0100
++++ kernel/nv-drm.c	2016-12-15 12:58:48.000000000 +0100
+@@ -115,7 +115,11 @@
+ };
+ 
+ static struct drm_driver nv_drm_driver = {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
++    .driver_features = DRIVER_GEM | DRIVER_PRIME | DRIVER_LEGACY,
++#else
+     .driver_features = DRIVER_GEM | DRIVER_PRIME,
++#endif
+     .load = nv_drm_load,
+     .unload = nv_drm_unload,
+     .fops = &nv_drm_fops,
-- 
cgit v0.12


From aeefac068461053fec4cc2ddeb06773839cfc487 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 30 Mar 2017 17:43:11 +0000
Subject: nvidia-304xx & nvidia-304xx-utils: update to 304.135

---
 abs/core/nvidia-304xx-utils/PKGBUILD               |  90 ++++++++----------
 .../nvidia-304xx-utils/nvidia-drm-outputclass.conf |  14 +++
 abs/core/nvidia-304xx/PKGBUILD                     |  22 +++--
 abs/core/nvidia-304xx/drm-driver-legacy.patch      |  20 ++++
 abs/core/nvidia-304xx/kernel_4.10.patch            | 105 +++++++++++++++++++++
 5 files changed, 191 insertions(+), 60 deletions(-)
 create mode 100644 abs/core/nvidia-304xx-utils/nvidia-drm-outputclass.conf
 create mode 100644 abs/core/nvidia-304xx/drm-driver-legacy.patch
 create mode 100644 abs/core/nvidia-304xx/kernel_4.10.patch

diff --git a/abs/core/nvidia-304xx-utils/PKGBUILD b/abs/core/nvidia-304xx-utils/PKGBUILD
index 6c48a82..7f2c108 100644
--- a/abs/core/nvidia-304xx-utils/PKGBUILD
+++ b/abs/core/nvidia-304xx-utils/PKGBUILD
@@ -3,18 +3,20 @@
 # Contributor: Andreas Radke <andyrtr@archlinux.org>
 
 pkgbase=nvidia-304xx-utils
-pkgname=('nvidia-304xx-utils' 'nvidia-304xx-libgl' 'opencl-nvidia-304xx')
-pkgver=304.134
-pkgrel=1
+pkgname=('nvidia-304xx-utils' 'opencl-nvidia-304xx')
+pkgver=304.135
+pkgrel=6
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
 license=('custom')
 makedepends=('zlib')
 options=('!strip')
+source=(nvidia-drm-outputclass.conf)
 source_i686=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-sha512sums_i686=('e047c62b33b092225ead42134acd596e3ae43d9bb8324188308dd7d497f33e790e7366d7a1c5ef5de66f484219d99de4c6e6206d390122d3fab4d30397ab463c')
-sha512sums_x86_64=('339efb8b47faaa16b984d84e43ef18d849a563c95298972c36616a22712740e3233c2cd7b0837d393a8f24a6ec5b501295cdc77adae12deccc993dfca48022fc')
+md5sums=('a433deeb5f9cc661e537f42bde2f1df7')
+md5sums_i686=('0e2082ae8490b135eb306befe6db56e1')
+md5sums_x86_64=('8ee9bd0b020508bca9953181811422fa')
 
 if [ "$CARCH" = "i686" ]; then
   _arch='x86'
@@ -57,48 +59,15 @@ package_opencl-nvidia-304xx() {
   install -D -m644 LICENSE "${pkgdir}/usr/share/licenses/opencl-nvidia-304xx/LICENSE"
 }
 
-package_nvidia-304xx-libgl() {
-  pkgdesc="NVIDIA drivers libraries symlinks, 304xx legacy branch"
-  depends=('nvidia-304xx-utils' 'mesa')
-  conflicts=('libgl' 'libgles' 'libegl' 'nvidia-libgl')
-  provides=('libgl' 'libgles' 'libegl' 'nvidia-libgl')
-
-  cd ${_pkg}
-
-  mkdir -p "${pkgdir}/usr/lib/xorg/modules/extensions"
-  ln -s "../../../nvidia/xorg/modules/extensions/libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so.${pkgver}"
-  ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so.1"
-  ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so"
-
-  ln -s nvidia/libGL.so.${pkgver} "${pkgdir}/usr/lib/libGL.so.${pkgver}"
-  ln -s libGL.so.${pkgver} "${pkgdir}/usr/lib/libGL.so.1"
-  ln -s libGL.so.${pkgver} "${pkgdir}/usr/lib/libGL.so"
-
-  # We have to provide symlinks to mesa, as nvidia 304xx doesn't ship them
-  ln -s mesa/libEGL.so.1.0.0 "${pkgdir}/usr/lib/libEGL.so.1.0.0"
-  ln -s libEGL.so.1.0.0      "${pkgdir}/usr/lib/libEGL.so.1"
-  ln -s libEGL.so.1.0.0      "${pkgdir}/usr/lib/libEGL.so"
-
-  ln -s mesa/libGLESv1_CM.so.1.1.0 "${pkgdir}/usr/lib/libGLESv1_CM.so.1.1.0"
-  ln -s libGLESv1_CM.so.1.1.0      "${pkgdir}/usr/lib/libGLESv1_CM.so.1"
-  ln -s libGLESv1_CM.so.1.1.0      "${pkgdir}/usr/lib/libGLESv1_CM.so"
-
-  ln -s mesa/libGLESv2.so.2.0.0 "${pkgdir}/usr/lib/libGLESv2.so.2.0.0"
-  ln -s libGLESv2.so.2.0.0      "${pkgdir}/usr/lib/libGLESv2.so.2"
-  ln -s libGLESv2.so.2.0.0      "${pkgdir}/usr/lib/libGLESv2.so"
-
-  mkdir -p "${pkgdir}/usr/share/licenses"
-  ln -s nvidia-304xx "${pkgdir}/usr/share/licenses/nvidia-304xx-libgl"
-}
-
 package_nvidia-304xx-utils() {
   pkgdesc="NVIDIA drivers utilities and libraries, 304xx legacy branch"
-  depends=('xorg-server' 'libxvmc')
+  depends=('xorg-server' 'libxvmc' 'mesa')
   optdepends=('gtk2: nvidia-settings'
               'pkg-config: nvidia-xconfig'
               'opencl-nvidia-304xx: OpenCL support')
-  conflicts=('nvidia-utils')
-  provides=('nvidia-utils')
+  conflicts=('nvidia-304xx-libgl' 'nvidia-340xx-utils' 'nvidia-utils')
+  provides=('libgl' 'libgles' 'libegl' 'nvidia-304xx-libgl' 'nvidia-utils')
+  replaces=('nvidia-304xx-libgl')
   
   cd ${_pkg}
 
@@ -106,29 +75,30 @@ package_nvidia-304xx-utils() {
   install -D -m755 nvidia_drv.so "${pkgdir}/usr/lib/xorg/modules/drivers/nvidia_drv.so"
 
   # GLX extension module for X
-  install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/modules/extensions/libglx.so.${pkgver}"
-  ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/modules/extensions/libglx.so"    # X doesn't find glx otherwise
+  install -D -m755 "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.${pkgver}"
+  ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so.1"    # X doesn't find glx otherwise
+  ln -s "libglx.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/xorg/libglx.so"    # X doesn't find glx otherwise
   
   # OpenGL libraries
   install -D -m755 "libGL.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libGL.so.${pkgver}"
 
   # OpenGL core library
-  install -D -m755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-glcore.so.${pkgver}"
+  install -D -m755 "libnvidia-glcore.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-glcore.so.${pkgver}"
 
   # XvMC
-  install -D -m755 "libXvMCNVIDIA.so.${pkgver}" "${pkgdir}/usr/lib/libXvMCNVIDIA.so.${pkgver}"
+  install -D -m755 "libXvMCNVIDIA.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libXvMCNVIDIA.so.${pkgver}"
 
   # VDPAU
   install -D -m755 "libvdpau_nvidia.so.${pkgver}" "${pkgdir}/usr/lib/vdpau/libvdpau_nvidia.so.${pkgver}"
 
   # nvidia-tls library
-  install -D -m755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-tls.so.${pkgver}"
-  install -D -m755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-cfg.so.${pkgver}"
-  install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/libnvidia-ml.so.${pkgver}"
+  install -D -m755 "tls/libnvidia-tls.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-tls.so.${pkgver}"
+  install -D -m755 "libnvidia-cfg.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-cfg.so.${pkgver}"
+  install -D -m755 "libnvidia-ml.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvidia-ml.so.${pkgver}"
   
   # CUDA
-  install -D -m755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/libcuda.so.${pkgver}"
-  install -D -m755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/libnvcuvid.so.${pkgver}"
+  install -D -m755 "libcuda.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libcuda.so.${pkgver}"
+  install -D -m755 "libnvcuvid.so.${pkgver}" "${pkgdir}/usr/lib/nvidia/libnvcuvid.so.${pkgver}"
 
   # DEBUG
   install -D -m755 nvidia-debugdump "${pkgdir}/usr/bin/nvidia-debugdump"
@@ -158,9 +128,25 @@ package_nvidia-304xx-utils() {
   install -D -m644 NVIDIA_Changelog "${pkgdir}/usr/share/doc/nvidia-304xx/NVIDIA_Changelog"
   ln -s nvidia-304xx "${pkgdir}/usr/share/doc/nvidia-304xx-utils"
 
+  # We have to provide symlinks to mesa, as nvidia 304xx doesn't ship them
+  ln -s /usr/lib/libEGL.so.1.0.0 "${pkgdir}/usr/lib/nvidia/libEGL.so.1.0.0"
+  ln -s libEGL.so.1.0.0      "${pkgdir}/usr/lib/nvidia/libEGL.so.1"
+  ln -s libEGL.so.1.0.0      "${pkgdir}/usr/lib/nvidia/libEGL.so"
+
+  ln -s /usr/lib/libGLESv1_CM.so.1.1.0 "${pkgdir}/usr/lib/nvidia/libGLESv1_CM.so.1.1.0"
+  ln -s libGLESv1_CM.so.1.1.0      "${pkgdir}/usr/lib/nvidia/libGLESv1_CM.so.1"
+  ln -s libGLESv1_CM.so.1.1.0      "${pkgdir}/usr/lib/nvidia/libGLESv1_CM.so"
+
+  ln -s /usr/lib/libGLESv2.so.2.0.0 "${pkgdir}/usr/lib/nvidia/libGLESv2.so.2.0.0"
+  ln -s libGLESv2.so.2.0.0      "${pkgdir}/usr/lib/nvidia/libGLESv2.so.2"
+  ln -s libGLESv2.so.2.0.0      "${pkgdir}/usr/lib/nvidia/libGLESv2.so"
+
   # distro specific files must be installed in /usr/share/X11/xorg.conf.d
   install -m755 -d "${pkgdir}/usr/share/X11/xorg.conf.d"
-  install -m644 nvidia-drm-outputclass.conf "${pkgdir}/usr/share/X11/xorg.conf.d/"
+  install -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf"
+
+  install -dm 755 "${pkgdir}"/etc/ld.so.conf.d
+  echo -e '/usr/lib/nvidia/' > "${pkgdir}"/etc/ld.so.conf.d/00-nvidia.conf
 
   create_links
 }
diff --git a/abs/core/nvidia-304xx-utils/nvidia-drm-outputclass.conf b/abs/core/nvidia-304xx-utils/nvidia-drm-outputclass.conf
new file mode 100644
index 0000000..b6003d3
--- /dev/null
+++ b/abs/core/nvidia-304xx-utils/nvidia-drm-outputclass.conf
@@ -0,0 +1,14 @@
+Section "OutputClass"
+    Identifier "intel"
+    MatchDriver "i915"
+    Driver "modesetting"
+EndSection
+
+Section "OutputClass"
+    Identifier "nvidia"
+    MatchDriver "nvidia-drm"
+    Driver "nvidia"
+    Option "AllowEmptyInitialConfiguration"
+    Option "PrimaryGPU" "yes"
+    ModulePath "/usr/lib/nvidia/xorg"
+EndSection
diff --git a/abs/core/nvidia-304xx/PKGBUILD b/abs/core/nvidia-304xx/PKGBUILD
index 9456106..a8eaf80 100644
--- a/abs/core/nvidia-304xx/PKGBUILD
+++ b/abs/core/nvidia-304xx/PKGBUILD
@@ -4,21 +4,25 @@
 
 pkgbase=nvidia-304xx
 pkgname=(nvidia-304xx nvidia-304xx-dkms)
-pkgver=304.134
+pkgver=304.135
 _extramodules=extramodules-4.4-ARCH
-pkgrel=1
+pkgrel=3
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
-makedepends=('nvidia-304xx-libgl' "nvidia-304xx-utils=${pkgver}" 'linux' 'linux-headers>=4.4' 'linux-headers<4.5')
+makedepends=('linux' 'linux-headers>=4.4' 'linux-headers<4.5')
 conflicts=('nvidia')
 license=('custom')
 options=('!strip')
-source=('disable-mtrr.patch')
+source=('disable-mtrr.patch'
+        'drm-driver-legacy.patch'
+        'kernel_4.10.patch')
 source_i686+=("http://us.download.nvidia.com/XFree86/Linux-x86/${pkgver}/NVIDIA-Linux-x86-${pkgver}.run")
 source_x86_64+=("http://us.download.nvidia.com/XFree86/Linux-x86_64/${pkgver}/NVIDIA-Linux-x86_64-${pkgver}-no-compat32.run")
-sha512sums=('54e8825e523f11706890e09e476498f3a30f75ce4e350ff2ff8a1e1c3af574d9ccfb8903543766b6863d94cdfbf46e68cd3d33380867dd976cafc8dd2dd78774')
-sha512sums_i686=('e047c62b33b092225ead42134acd596e3ae43d9bb8324188308dd7d497f33e790e7366d7a1c5ef5de66f484219d99de4c6e6206d390122d3fab4d30397ab463c')
-sha512sums_x86_64=('339efb8b47faaa16b984d84e43ef18d849a563c95298972c36616a22712740e3233c2cd7b0837d393a8f24a6ec5b501295cdc77adae12deccc993dfca48022fc')
+sha512sums=('54e8825e523f11706890e09e476498f3a30f75ce4e350ff2ff8a1e1c3af574d9ccfb8903543766b6863d94cdfbf46e68cd3d33380867dd976cafc8dd2dd78774'
+            'fa39dee5c9f1ea98286c87165f683ee194b2cb4056aa6b556e822b9ee760dcf3683ea001c3704e79b9ac9712314d7df5690dc7f68440cda7a96791f94425455d'
+            '68dabbf6ad889c46bd0c01ebb697b80f4aa526ef1cdc53de008343a243adefc6ce7f2778be7005f2d79f3d23c0a3ff69f67ecdb9f97c0feb0ec99405a0c1046a')
+sha512sums_i686=('c2645cc9a6f23641d8b6da51e72e203980068c05e365fcc73b32322a6875ce95e81f4e0d893276e14e84e93464488539c16db6b3be04f5324cf7d7a12bb557f8')
+sha512sums_x86_64=('a5aa48baa75eb267bd193e59328aa5fbc15d41045bb7e97aa1b96b918b9e68a1c1bf95624d9d494336256e0af2c41e188d30fe91be4967084de3387f50d3805c')
 
 [[ "$CARCH" = "i686" ]] && _pkg="NVIDIA-Linux-x86-${pkgver}"
 [[ "$CARCH" = "x86_64" ]] && _pkg="NVIDIA-Linux-x86_64-${pkgver}-no-compat32"
@@ -28,9 +32,11 @@ prepare() {
     sh "${_pkg}.run" --extract-only
     cd "${_pkg}"
     # patches here
+#    patch -Np1 --no-backup-if-mismatch -i ../kernel_4.10.patch
 
     # FS#47092
-    (cd kernel; patch -p1 --no-backup-if-mismatch -i "$srcdir"/disable-mtrr.patch)
+    #(cd kernel; patch -p1 --no-backup-if-mismatch -i "$srcdir"/disable-mtrr.patch)
+    (cd kernel; patch -p1 --no-backup-if-mismatch -i "$srcdir"/drm-driver-legacy.patch)
 
     cp -a kernel kernel-dkms
 }
diff --git a/abs/core/nvidia-304xx/drm-driver-legacy.patch b/abs/core/nvidia-304xx/drm-driver-legacy.patch
new file mode 100644
index 0000000..32ac75c
--- /dev/null
+++ b/abs/core/nvidia-304xx/drm-driver-legacy.patch
@@ -0,0 +1,20 @@
+Author: Luca Boccassi <luca.boccassi@gmail.com>
+Description: Fix kernel module load on 4.9 and greater
+ From kernel 4.9 and newer (commit fa5386459f06) non-modesetting drivers have
+ to use the DRM flag DRIVER_LEGACY. Without this flag the kernel module does
+ not load correctly.
+
+--- a/nv-drm.c
++++ b/nv-drm.c
+@@ -71,7 +71,11 @@
+ };
+ 
+ static struct drm_driver nv_drm_driver = {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 9, 0)
+     .driver_features = 0,
++#else
++    .driver_features = DRIVER_LEGACY,
++#endif
+     .load = nv_drm_load,
+     .unload = nv_drm_unload,
+     .fops = &nv_drm_fops,
diff --git a/abs/core/nvidia-304xx/kernel_4.10.patch b/abs/core/nvidia-304xx/kernel_4.10.patch
new file mode 100644
index 0000000..1e98740
--- /dev/null
+++ b/abs/core/nvidia-304xx/kernel_4.10.patch
@@ -0,0 +1,105 @@
+From d270372bf8abcf45409b30cdb33069280527b0ff Mon Sep 17 00:00:00 2001
+From: Alberto Milone <alberto.milone@canonical.com>
+Date: Wed, 15 Feb 2017 18:01:02 +0100
+Subject: [PATCH 1/1] Add support for Linux 4.10
+
+---
+ nv-linux.h |  5 +++++
+ nv-pat.c   | 40 ++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 45 insertions(+)
+
+diff --git a/kernel/nv-linux.h b/kernel/nv-linux.h
+index b46e71f..3081c06 100644
+--- a/kernel/nv-linux.h
++++ b/kernel/nv-linux.h
+@@ -1895,8 +1895,13 @@ static inline NvU64 nv_node_end_pfn(int nid)
+ 
+         #else
+ 
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+                return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
+                                             pages, vmas);
++#else
++               return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
++                                            pages, vmas, NULL);
++#endif
+ 
+         #endif
+ 
+diff --git a/kernel/nv-pat.c b/kernel/nv-pat.c
+index e71e81c..d742789 100644
+--- a/kernel/nv-pat.c
++++ b/kernel/nv-pat.c
+@@ -203,6 +203,7 @@ void nv_disable_pat_support(void)
+ }
+ 
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ static int
+ nv_kern_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
+ {
+@@ -234,6 +235,34 @@ static struct notifier_block nv_hotcpu_nfb = {
+     .notifier_call = nv_kern_cpu_callback,
+     .priority = 0
+ };
++#else
++static int nvidia_cpu_online(unsigned int hcpu)
++{
++    unsigned int cpu = get_cpu();
++    if (cpu == hcpu)
++        nv_setup_pat_entries(NULL);
++    else
++        NV_SMP_CALL_FUNCTION(nv_setup_pat_entries, (void *)(long int)hcpu, 1);
++
++    put_cpu();
++
++    return 0;
++}
++
++static int nvidia_cpu_down_prep(unsigned int hcpu)
++{
++    unsigned int cpu = get_cpu();
++    if (cpu == hcpu)
++        nv_restore_pat_entries(NULL);
++    else
++        NV_SMP_CALL_FUNCTION(nv_restore_pat_entries, (void *)(long int)hcpu, 1);
++
++    put_cpu();
++
++    return 0;
++}
++#endif
++
+ #endif
+ 
+ int nv_init_pat_support(nv_stack_t *sp)
+@@ -255,7 +284,14 @@ int nv_init_pat_support(nv_stack_t *sp)
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
+         if (nv_pat_mode == NV_PAT_MODE_BUILTIN)
+         {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+             if (register_hotcpu_notifier(&nv_hotcpu_nfb) != 0)
++#else
++            if (cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
++                                  "gpu/nvidia:online",
++                                  nvidia_cpu_online,
++                                  nvidia_cpu_down_prep) != 0)
++#endif
+             {
+                 nv_disable_pat_support();
+                 nv_printf(NV_DBG_ERRORS,
+@@ -280,7 +316,11 @@ void nv_teardown_pat_support(void)
+     {
+         nv_disable_pat_support();
+ #if defined(NV_ENABLE_PAT_SUPPORT) && defined(NV_ENABLE_HOTPLUG_CPU)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+         unregister_hotcpu_notifier(&nv_hotcpu_nfb);
++#else
++        cpuhp_remove_state_nocalls(CPUHP_AP_ONLINE_DYN);
++#endif
+ #endif
+     }
+ }
+-- 
+2.7.4
+
-- 
cgit v0.12


From b108a9482ec5614268c2146e1ccfed0ee9a7dda6 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 30 Mar 2017 18:07:59 +0000
Subject: nvidia-settings: update to 378.13

---
 abs/extra/nvidia-settings/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/extra/nvidia-settings/PKGBUILD b/abs/extra/nvidia-settings/PKGBUILD
index 798993e..5fd0ac9 100644
--- a/abs/extra/nvidia-settings/PKGBUILD
+++ b/abs/extra/nvidia-settings/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgbase=nvidia-settings
 pkgname=('nvidia-settings' 'libxnvctrl')
-pkgver=375.26
+pkgver=378.13
 pkgrel=1
 pkgdesc="Tool for configuring the NVIDIA graphics driver"
 arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@ makedepends=('git' 'inetutils' 'gtk2' 'jansson' 'gtk3' 'libxv' 'libvdpau' 'nvidi
 options=('staticlibs')
 source=(ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${pkgver}.tar.bz2
         libxnvctrl_so.patch)
-sha512sums=('e575670ccf7e3ef0089ee6a969f107f6f43d742a60cc325c6d95efc4773f34a6e013fd2c4e38b5f90054e24146a05c2300c0cf6a9b7013b556bacc1402956f49'
+sha512sums=('a12352c92fd4f56002bda2b07e8cddd5573af98521ec3495cd428b784eb368c9f2cb40f9b4372400ba1ea67c9349c6a9b4f7c218ede2d0d5dabb08325eda9844'
             'ed4b609de9691fbb4421eea340399331e7a5c5f47b9de8eade40ca8f78ac39a6f76cc106928cd0d79825f248a3a0eb563a10f68b7b6991cf3e28db0dde2a0f8d')
 
 prepare() {
-- 
cgit v0.12


From ef7170f57fa7407812aa317aee915b2ca5c3efd8 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 30 Mar 2017 18:09:04 +0000
Subject: ceton_infinitv: rebuild for kernel

---
 abs/core/ceton_infinitv/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core/ceton_infinitv/PKGBUILD b/abs/core/ceton_infinitv/PKGBUILD
index 2caaa68..78d9943 100755
--- a/abs/core/ceton_infinitv/PKGBUILD
+++ b/abs/core/ceton_infinitv/PKGBUILD
@@ -2,10 +2,10 @@
 
 pkgname=ceton_infinitv
 #_kernver=`uname -r`
-_kernver=4.4.39-1-ARCH
+_kernver=4.4.58-1-ARCH
 _extramods="extramodules-4.4-ARCH"
 pkgver=2013.0326.2226
-pkgrel=18
+pkgrel=19
 usb_pkgver=0.1.0
 pci_pkgver=`echo $pkgver | tr . _`
 pkgdesc="Drivers for Ceton InfiniTV4 - pci/usb "
-- 
cgit v0.12


From f0549f66ee6b1e375c9b4b9228ce57704b8f536d Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 30 Mar 2017 19:01:45 +0000
Subject: LinHES-config: xconfig.sh: update for package changes

---
 abs/core/LinHES-config/PKGBUILD   |  4 ++--
 abs/core/LinHES-config/xconfig.sh | 20 ++++++++++----------
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index 2032b7d..c31677e 100755
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=8.4.3
-pkgrel=5
+pkgrel=6
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config )
 pkgdesc="Install and configure your system"
 depends=('bc' 'libstatgrab' 'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
@@ -152,7 +152,7 @@ md5sums=('fe70208a7c11f7e2115655ad0004ddaf'
          '27e4fcacca9b9662dd782fbdc92fceea'
          '2a7f3b34e522acfd08283b86c8926aba'
          'b596d2e3779a434435bc0f0277b1ba3e'
-         'f0fb2ec7bcfa827686f590db8890d87a'
+         '4239a837227ff97a24c5335de47ce029'
          'f0376c98a7986897406d393186c0365e'
          '157e73d0f90d7b306aba8f5921aeedd3'
          '1f58c0393a131f4a8f9a84b3fe08a7e4'
diff --git a/abs/core/LinHES-config/xconfig.sh b/abs/core/LinHES-config/xconfig.sh
index be01857..5514b00 100755
--- a/abs/core/LinHES-config/xconfig.sh
+++ b/abs/core/LinHES-config/xconfig.sh
@@ -77,7 +77,7 @@ function presetupX {
 
 function nvidia_prepare {
     [[ -f "$NVIDIA_MSI_MODPROBE" ]] && rm -f "$NVIDIA_MSI_MODPROBE"
-    for i in libva-intel-driver mesa-libgl nvidia nvidia-utils nvidia-libgl opencl-nvidia nvidia-settings libglvnd nvidia-304xx nvidia-304xx-utils nvidia-304xx-libgl opencl-nvidia-304xx nvidia-340xx nvidia-340xx-utils nvidia-340xx-libgl opencl-nvidia-340xx
+    for i in libva-intel-driver mesa-libgl nvidia nvidia-utils nvidia-libgl opencl-nvidia nvidia-settings libxnvctrl libglvnd nvidia-304xx nvidia-304xx-utils nvidia-304xx-libgl opencl-nvidia-304xx nvidia-340xx nvidia-340xx-utils nvidia-340xx-libgl opencl-nvidia-340xx
     do
         pacman --noconfirm -Rdd $i >> $LOGFILE 2>&1
     done
@@ -108,7 +108,7 @@ function nvidia_driver_install {
     if [[ $? = 0 || $VGAFORCED -eq 1 && $VGACARDTYPE == "nvidia" ]]
     then
         echo "$CARDNAME" | tee -a $LOGFILE
-        LIST="nvidia nvidia-libgl nvidia-utils opencl-nvidia nvidia-settings"
+        LIST="nvidia nvidia-utils opencl-nvidia nvidia-settings libglvnd"
         for i in `echo ${LIST}`
         do
             pkg_check $i
@@ -130,7 +130,7 @@ function nvidia_driver_install {
         if [[ $? = 0 || $VGAFORCED -eq 1 && $VGACARDTYPE == "nvidia-340xx" ]]
         then
             echo "$CARDNAME" | tee -a $LOGFILE
-            LIST="nvidia-340xx nvidia-340xx-libgl nvidia-340xx-utils opencl-nvidia-340xx"
+            LIST="nvidia-340xx nvidia-340xx-utils opencl-nvidia-340xx libglvnd"
             for i in `echo ${LIST}`
             do
                 pkg_check $i
@@ -153,7 +153,7 @@ function nvidia_driver_install {
         if [[ $? = 0 || $VGAFORCED -eq 1 && $VGACARDTYPE == "nvidia-304xx" ]]
         then
             echo "$CARDNAME" | tee -a $LOGFILE
-            LIST="nvidia-304xx nvidia-304xx-libgl nvidia-304xx-utils opencl-nvidia-304xx"
+            LIST="nvidia-304xx nvidia-304xx-utils opencl-nvidia-304xx libglvnd"
             for i in `echo ${LIST}`
             do
                 pkg_check $i
@@ -174,7 +174,7 @@ function nvidia_driver_install {
     then
         #this is a failsafe, can't find the right driver, then use the latest'
         echo "  Couldn't find the card id in any list" | tee -a $LOGFILE
-        LIST="nvidia nvidia-libgl nvidia-utils opencl-nvidia nvidia-settings"
+        LIST="nvidia nvidia-utils opencl-nvidia nvidia-settings libglvnd"
         for i in `echo ${LIST}`
         do
             pkg_check $i
@@ -204,7 +204,7 @@ function nvidia_driver_install {
 }
 
 function vmware_driver_install {
-    LIST="xf86-input-vmmouse xf86-video-vmware xf86-video-vesa svga-dri mesa-libgl"
+    LIST="xf86-input-vmmouse xf86-video-vmware xf86-video-vesa svga-dri libglvnd"
     for i in `echo ${LIST}`
     do
         pkg_check $i
@@ -220,20 +220,20 @@ function vmware_driver_install {
 
 function vesa_driver_install {
     pkg_check xf86-video-vesa
-    pkg_check mesa-libgl
+    pkg_check libglvnd
     echo "Installing Vesa driver" | tee -a $LOGFILE
     #this is used to remove nvidia
     nvidia_prepare
-    pacman -S --noconfirm xf86-video-vesa mesa-libgl  >> $LOGFILE 2>&1
+    pacman -S --noconfirm xf86-video-vesa libglvnd  >> $LOGFILE 2>&1
 }
 
 function intel_driver_install {
     pkg_check xf86-video-intel
-    pkg_check mesa-libgl
+    pkg_check libglvnd
     echo "Installing Intel driver" | tee -a $LOGFILE
     #this is used to remove nvidia
     nvidia_prepare
-    pacman -S --noconfirm xf86-video-intel libva-intel-driver mesa-libgl >> $LOGFILE 2>&1
+    pacman -S --noconfirm xf86-video-intel libva-intel-driver libglvnd >> $LOGFILE 2>&1
     echo "/usr/lib/libIntelXvMC.so.1" > "$XVMC_CONFIG"
 }
 
-- 
cgit v0.12


From 11f12ef1122da997333e72b0f93f94bcb488f1d6 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Apr 2017 18:25:15 +0000
Subject: plex-media-server: update to 1.5.3.3580

---
 abs/extra/plex-media-server/PKGBUILD | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/extra/plex-media-server/PKGBUILD b/abs/extra/plex-media-server/PKGBUILD
index d16cf65..fe386da 100644
--- a/abs/extra/plex-media-server/PKGBUILD
+++ b/abs/extra/plex-media-server/PKGBUILD
@@ -7,8 +7,8 @@
 # Contributor: Praekon <praekon@googlemail.com>
 
 pkgname=plex-media-server
-pkgver=1.4.4.3495
-_pkgsum=edef59192
+pkgver=1.5.3.3580
+_pkgsum=4b377d295
 pkgrel=1
 pkgdesc='Plex Media Server'
 arch=('armv7h' 'i686' 'x86_64')
@@ -57,6 +57,6 @@ md5sums=('dfd6778f5c0d3d64c2c3a71dca02b7cc'
          '97241861f2c0b7c82d1945a6c5de8e35'
          '506ec15815bba749a743780edd2323c8'
          'bd703bc750b989a27edd590eb8c8e9d7')
-md5sums_armv7h=('82b879522ce1227958593d502800ee20')
-md5sums_i686=('e18d15d12fcb2b55a77c2e5667d48b4e')
-md5sums_x86_64=('948530557edd831ea86d0557b58f8eeb')
+md5sums_armv7h=('f5442574d7a29fe0458de9d740c5ee9d')
+md5sums_i686=('0a6b742f62d3bd23fa165bdcd944e3e5')
+md5sums_x86_64=('15201a8e0e656be9c35ec7af1a9cc0ae')
-- 
cgit v0.12


From f86441ecd43bf298fec57ee78b4c71d1b664d0a2 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Apr 2017 19:16:11 +0000
Subject: linux: update to 4.9.20

---
 abs/core/linux/0001-sdhci-revert.patch |   25 -
 abs/core/linux/90-linux.hook           |   11 +
 abs/core/linux/99-linux.hook           |   11 -
 abs/core/linux/PKGBUILD                |   42 +-
 abs/core/linux/config                  | 1273 ++++++++++++++++++++------------
 abs/core/linux/config.x86_64           | 1233 +++++++++++++++++++------------
 abs/core/linux/linux.install           |    2 +-
 abs/core/linux/linux.install.pkg       |    2 +-
 abs/core/linux/linux.preset            |    8 +-
 9 files changed, 1609 insertions(+), 998 deletions(-)
 delete mode 100644 abs/core/linux/0001-sdhci-revert.patch
 create mode 100644 abs/core/linux/90-linux.hook
 delete mode 100644 abs/core/linux/99-linux.hook

diff --git a/abs/core/linux/0001-sdhci-revert.patch b/abs/core/linux/0001-sdhci-revert.patch
deleted file mode 100644
index 5d4afd6..0000000
--- a/abs/core/linux/0001-sdhci-revert.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-index 2cadf08..b48565e 100644
---- a/drivers/mmc/host/sdhci.c
-+++ b/drivers/mmc/host/sdhci.c
-@@ -1895,9 +1895,9 @@ static int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode)
- 		tuning_count = host->tuning_count;
- 
- 	/*
--	 * The Host Controller needs tuning only in case of SDR104 mode
--	 * and for SDR50 mode when Use Tuning for SDR50 is set in the
--	 * Capabilities register.
-+	 * The Host Controller needs tuning in case of SDR104 and DDR50
-+	 * mode, and for SDR50 mode when Use Tuning for SDR50 is set in
-+	 * the Capabilities register.
- 	 * If the Host Controller supports the HS200 mode then the
- 	 * tuning function has to be executed.
- 	 */
-@@ -1917,6 +1917,7 @@ static int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode)
- 		break;
- 
- 	case MMC_TIMING_UHS_SDR104:
-+	case MMC_TIMING_UHS_DDR50:
- 		break;
- 
- 	case MMC_TIMING_UHS_SDR50:
-generated by cgit v0.11.2 at 2016-01-01 22:11:38 (GMT)
diff --git a/abs/core/linux/90-linux.hook b/abs/core/linux/90-linux.hook
new file mode 100644
index 0000000..9851151
--- /dev/null
+++ b/abs/core/linux/90-linux.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Type = File
+Operation = Install
+Operation = Upgrade
+Target = boot/vmlinuz-%PKGBASE%
+Target = usr/lib/initcpio/*
+
+[Action]
+Description = Updating %PKGBASE% initcpios
+When = PostTransaction
+Exec = /usr/bin/mkinitcpio -p %PKGBASE%
diff --git a/abs/core/linux/99-linux.hook b/abs/core/linux/99-linux.hook
deleted file mode 100644
index 9851151..0000000
--- a/abs/core/linux/99-linux.hook
+++ /dev/null
@@ -1,11 +0,0 @@
-[Trigger]
-Type = File
-Operation = Install
-Operation = Upgrade
-Target = boot/vmlinuz-%PKGBASE%
-Target = usr/lib/initcpio/*
-
-[Action]
-Description = Updating %PKGBASE% initcpios
-When = PostTransaction
-Exec = /usr/bin/mkinitcpio -p %PKGBASE%
diff --git a/abs/core/linux/PKGBUILD b/abs/core/linux/PKGBUILD
index 65d831a..1e30ad9 100644
--- a/abs/core/linux/PKGBUILD
+++ b/abs/core/linux/PKGBUILD
@@ -3,28 +3,28 @@
 
 pkgbase=linux
 #pkgbase=linux-custom
-_srcname=linux-4.4
-pkgver=4.4.58
+_srcname=linux-4.9
+pkgver=4.9.20
 pkgrel=1
 arch=('i686' 'x86_64')
 url="https://www.kernel.org/"
 license=('GPL2')
-makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc')
+makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'libelf')
 options=('!strip')
 source=(https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.{xz,sign}
         https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.{xz,sign}
         # the main kernel config files
         'config' 'config.x86_64'
         # pacman hook for initramfs regeneration
-        '99-linux.hook'
+        '90-linux.hook'
         # standard config files for mkinitcpio ramdisk
         linux.preset
-        change-default-console-loglevel.patch
-        0001-sdhci-revert.patch)
+        change-default-console-loglevel.patch)
 # https://www.kernel.org/pub/linux/kernel/v4.x/sha256sums.asc
 validpgpkeys=('ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds <torvalds@linux-foundation.org>
               '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>
              )
+
 _kernelname=${pkgbase#linux}
 
 prepare() {
@@ -36,11 +36,6 @@ prepare() {
   # add latest fixes from stable queue, if needed
   # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
 
-  # revert http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9faac7b95ea4f9e83b7a914084cc81ef1632fd91
-  # fixes #47778 sdhci broken on some boards
-  # https://bugzilla.kernel.org/show_bug.cgi?id=106541
-  patch -Rp1 -i "${srcdir}/0001-sdhci-revert.patch"
-
   # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param)
   # remove this when a Kconfig knob is made available by upstream
   # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
@@ -123,8 +118,8 @@ _package() {
     -i "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
 
   # install pacman hook for initramfs regeneration
-  sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" |
-    install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook"
+  sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/90-linux.hook" |
+    install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/90-${pkgbase}.hook"
 
   # remove build and source links
   rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build}
@@ -166,7 +161,7 @@ _package-headers() {
   mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/include"
 
   for i in acpi asm-generic config crypto drm generated keys linux math-emu \
-    media net pcmcia scsi sound trace uapi video xen; do
+    media net pcmcia scsi soc sound trace uapi video xen; do
     cp -a include/${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/include/"
   done
 
@@ -246,6 +241,12 @@ _package-headers() {
     cp ${i} "${pkgdir}/usr/lib/modules/${_kernver}/build/${i}"
   done
 
+  # add objtool for external module building and enabled VALIDATION_STACK option
+  if [ -f tools/objtool/objtool ];  then
+      mkdir -p "${pkgdir}/usr/lib/modules/${_kernver}/build/tools/objtool"
+      cp -a tools/objtool/objtool ${pkgdir}/usr/lib/modules/${_kernver}/build/tools/objtool/
+  fi
+
   chown -R root.root "${pkgdir}/usr/lib/modules/${_kernver}/build"
   find "${pkgdir}/usr/lib/modules/${_kernver}/build" -type d -exec chmod 755 {} \;
 
@@ -291,13 +292,12 @@ for _p in ${pkgname[@]}; do
     _package${_p#${pkgbase}}
   }"
 done
-md5sums=('9a78fa2eb6c68ca5a40ed5af08142599'
+md5sums=('0a68ef3615c64bd5ee54a3320e46667d'
          'SKIP'
-         '152561e51e76089c5b045f8c0257f9d5'
+         '1d336b33f01320e3bdbdc2d9b52aadbd'
          'SKIP'
-         'be50f82adaeb685d41eb55acd1b09134'
-         'd254ffa0b91d459529ec23a1cdeceb35'
+         '2d73fc24ab59870bebde25e591e1bfb8'
+         'eca4246ff4ef81f714e0d909b5293b64'
          '90cd68710e3064d9b65f5549570f7821'
-         'eb14dcfd80c00852ef81ded6e826826a'
-         'df7fceae6ee5d7e7be7b60ecd7f6bb35'
-         'e1093d9bc718f362344ab56b85d4fb76')
+         '232b52576a62c7a333e9fe7a1e1ca359'
+         'df7fceae6ee5d7e7be7b60ecd7f6bb35')
diff --git a/abs/core/linux/config b/abs/core/linux/config
index 53cfc82..51c321b 100644
--- a/abs/core/linux/config
+++ b/abs/core/linux/config
@@ -1,18 +1,20 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.4.0 Kernel Configuration
+# Linux/x86 4.9.13-1 Kernel Configuration
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
 CONFIG_X86=y
 CONFIG_INSTRUCTION_DECODER=y
-CONFIG_PERF_EVENTS_INTEL_UNCORE=y
 CONFIG_OUTPUT_FORMAT="elf32-i386"
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
 CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_MMU=y
+CONFIG_ARCH_MMAP_RND_BITS_MIN=8
+CONFIG_ARCH_MMAP_RND_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
 CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_NEED_SG_DMA_LENGTH=y
 CONFIG_GENERIC_ISA_DMA=y
@@ -34,13 +36,14 @@ CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_HAVE_INTEL_TXT=y
 CONFIG_X86_32_SMP=y
-CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
 CONFIG_ARCH_SUPPORTS_UPROBES=y
 CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_DEBUG_RODATA=y
 CONFIG_PGTABLE_LEVELS=2
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 CONFIG_IRQ_WORK=y
 CONFIG_BUILDTIME_EXTABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
 
 #
 # General setup
@@ -49,7 +52,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
 CONFIG_CROSS_COMPILE=""
 # CONFIG_COMPILE_TEST is not set
 CONFIG_LOCALVERSION="-ARCH"
-CONFIG_LOCALVERSION_AUTO=y
+# CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
@@ -103,7 +106,7 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ_COMMON=y
 # CONFIG_HZ_PERIODIC is not set
 CONFIG_NO_HZ_IDLE=y
-# CONFIG_NO_HZ is not set
+CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 
 #
@@ -121,42 +124,47 @@ CONFIG_TASK_IO_ACCOUNTING=y
 #
 # RCU Subsystem
 #
-CONFIG_PREEMPT_RCU=y
-# CONFIG_RCU_EXPERT is not set
+CONFIG_TREE_RCU=y
+CONFIG_RCU_EXPERT=y
 CONFIG_SRCU=y
 # CONFIG_TASKS_RCU is not set
 CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_FANOUT=32
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RCU_FAST_NO_HZ is not set
 # CONFIG_TREE_RCU_TRACE is not set
+CONFIG_RCU_KTHREAD_PRIO=0
+# CONFIG_RCU_NOCB_CPU is not set
 # CONFIG_RCU_EXPEDITE_BOOT is not set
 CONFIG_BUILD_BIN2C=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=19
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_NMI_LOG_BUF_SHIFT=13
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
 CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_PIDS=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
 CONFIG_PAGE_COUNTER=y
 CONFIG_MEMCG=y
 CONFIG_MEMCG_SWAP=y
 CONFIG_MEMCG_SWAP_ENABLED=y
-CONFIG_MEMCG_KMEM=y
-# CONFIG_CGROUP_HUGETLB is not set
-# CONFIG_CGROUP_PERF is not set
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_CGROUP_WRITEBACK=y
 CONFIG_CGROUP_SCHED=y
 CONFIG_FAIR_GROUP_SCHED=y
 CONFIG_CFS_BANDWIDTH=y
 # CONFIG_RT_GROUP_SCHED is not set
-CONFIG_BLK_CGROUP=y
-# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_FREEZER=y
+# CONFIG_CGROUP_HUGETLB is not set
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_PERF is not set
+# CONFIG_CGROUP_DEBUG is not set
 # CONFIG_CHECKPOINT_RESTORE is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
@@ -175,6 +183,7 @@ CONFIG_RD_LZMA=y
 CONFIG_RD_XZ=y
 CONFIG_RD_LZO=y
 CONFIG_RD_LZ4=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
@@ -190,7 +199,10 @@ CONFIG_SYSFS_SYSCALL=y
 # CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
+CONFIG_KALLSYMS_BASE_RELATIVE=y
 CONFIG_PRINTK=y
+CONFIG_PRINTK_NMI=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
@@ -220,6 +232,7 @@ CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
 CONFIG_SLUB_CPU_PARTIAL=y
 # CONFIG_SYSTEM_DATA_VERIFICATION is not set
 CONFIG_PROFILING=y
@@ -232,6 +245,7 @@ CONFIG_OPROFILE_NMI_TIMER=y
 CONFIG_KPROBES=y
 CONFIG_JUMP_LABEL=y
 # CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_OPTPROBES=y
 CONFIG_KPROBES_ON_FTRACE=y
 CONFIG_UPROBES=y
 # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
@@ -244,8 +258,8 @@ CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
 CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_NMI=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
 CONFIG_HAVE_DMA_CONTIGUOUS=y
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
 CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
@@ -266,19 +280,29 @@ CONFIG_HAVE_CMPXCHG_DOUBLE=y
 CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
 CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
 CONFIG_HAVE_CC_STACKPROTECTOR=y
 CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_CC_STACKPROTECTOR_NONE is not set
 # CONFIG_CC_STACKPROTECTOR_REGULAR is not set
 CONFIG_CC_STACKPROTECTOR_STRONG=y
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
 CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
 CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
 CONFIG_MODULES_USE_ELF_REL=y
 CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_HAVE_EXIT_THREAD=y
+CONFIG_ARCH_MMAP_RND_BITS=8
 CONFIG_HAVE_COPY_THREAD_TLS=y
+# CONFIG_HAVE_ARCH_HASH is not set
+CONFIG_ISA_BUS_API=y
 CONFIG_CLONE_BACKWARDS=y
 CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_OLD_SIGACTION=y
+# CONFIG_CPU_NO_EFFICIENT_FFS is not set
+# CONFIG_HAVE_ARCH_VMAP_STACK is not set
 
 #
 # GCOV-based kernel profiling
@@ -332,6 +356,7 @@ CONFIG_KARMA_PARTITION=y
 CONFIG_EFI_PARTITION=y
 # CONFIG_SYSV68_PARTITION is not set
 # CONFIG_CMDLINE_PARTITION is not set
+CONFIG_BLK_MQ_PCI=y
 
 #
 # IO Schedulers
@@ -340,14 +365,18 @@ CONFIG_IOSCHED_NOOP=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
 CONFIG_CFQ_GROUP_IOSCHED=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
 # CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_DEFAULT_IOSCHED="deadline"
 CONFIG_PREEMPT_NOTIFIERS=y
 CONFIG_PADATA=y
 CONFIG_ASN1=m
-CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
 CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
 CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_RWSEM_SPIN_ON_OWNER=y
@@ -364,12 +393,14 @@ CONFIG_FREEZER=y
 CONFIG_ZONE_DMA=y
 CONFIG_SMP=y
 CONFIG_X86_FEATURE_NAMES=y
+CONFIG_X86_FAST_FEATURE_TESTS=y
 CONFIG_X86_MPPARSE=y
 # CONFIG_X86_BIGSMP is not set
+# CONFIG_GOLDFISH is not set
 # CONFIG_X86_EXTENDED_PLATFORM is not set
 CONFIG_X86_INTEL_LPSS=y
 # CONFIG_X86_AMD_PLATFORM_DEVICE is not set
-CONFIG_IOSF_MBI=m
+CONFIG_IOSF_MBI=y
 # CONFIG_IOSF_MBI_DEBUG is not set
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
 CONFIG_X86_32_IRIS=m
@@ -429,10 +460,9 @@ CONFIG_DMI=y
 CONFIG_NR_CPUS=8
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
-# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_COUNT=y
+# CONFIG_PREEMPT is not set
 CONFIG_X86_LOCAL_APIC=y
 CONFIG_X86_IO_APIC=y
 CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
@@ -443,6 +473,14 @@ CONFIG_X86_MCE_AMD=y
 CONFIG_X86_MCE_THRESHOLD=y
 # CONFIG_X86_MCE_INJECT is not set
 CONFIG_X86_THERMAL_VECTOR=y
+
+#
+# Performance monitoring
+#
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
+CONFIG_PERF_EVENTS_INTEL_RAPL=m
+CONFIG_PERF_EVENTS_INTEL_CSTATE=m
+CONFIG_PERF_EVENTS_AMD_POWER=m
 # CONFIG_X86_LEGACY_VM86 is not set
 # CONFIG_VM86 is not set
 CONFIG_X86_16BIT=y
@@ -482,7 +520,6 @@ CONFIG_BALLOON_COMPACTION=y
 CONFIG_COMPACTION=y
 CONFIG_MIGRATION=y
 # CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
 CONFIG_MMU_NOTIFIER=y
@@ -494,12 +531,14 @@ CONFIG_HWPOISON_INJECT=m
 CONFIG_TRANSPARENT_HUGEPAGE=y
 CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
 # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
 CONFIG_CLEANCACHE=y
 CONFIG_FRONTSWAP=y
 # CONFIG_CMA is not set
 CONFIG_ZSWAP=y
 CONFIG_ZPOOL=y
 CONFIG_ZBUD=y
+CONFIG_Z3FOLD=y
 CONFIG_ZSMALLOC=y
 # CONFIG_PGTABLE_MAPPING is not set
 # CONFIG_ZSMALLOC_STAT is not set
@@ -520,15 +559,15 @@ CONFIG_X86_PAT=y
 CONFIG_ARCH_USES_PG_UNCACHED=y
 CONFIG_ARCH_RANDOM=y
 CONFIG_X86_SMAP=y
-# CONFIG_X86_INTEL_MPX is not set
+CONFIG_X86_INTEL_MPX=y
 CONFIG_EFI=y
 CONFIG_EFI_STUB=y
 CONFIG_SECCOMP=y
-# CONFIG_HZ_100 is not set
+CONFIG_HZ_100=y
 # CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
+# CONFIG_HZ_300 is not set
 # CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
+CONFIG_HZ=100
 CONFIG_SCHED_HRTICK=y
 CONFIG_KEXEC=y
 CONFIG_CRASH_DUMP=y
@@ -565,11 +604,13 @@ CONFIG_PM_DEBUG=y
 CONFIG_PM_ADVANCED_DEBUG=y
 # CONFIG_PM_TEST_SUSPEND is not set
 CONFIG_PM_SLEEP_DEBUG=y
-# CONFIG_DPM_WATCHDOG is not set
 CONFIG_PM_TRACE=y
 CONFIG_PM_TRACE_RTC=y
 CONFIG_PM_CLK=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
 CONFIG_ACPI=y
 CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
 CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
@@ -586,14 +627,16 @@ CONFIG_ACPI_VIDEO=m
 CONFIG_ACPI_FAN=m
 CONFIG_ACPI_DOCK=y
 CONFIG_ACPI_CPU_FREQ_PSS=y
+CONFIG_ACPI_PROCESSOR_CSTATE=y
 CONFIG_ACPI_PROCESSOR_IDLE=y
-CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_PROCESSOR=y
 CONFIG_ACPI_IPMI=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
 # CONFIG_ACPI_CUSTOM_DSDT is not set
-CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y
+CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
+CONFIG_ACPI_TABLE_UPGRADE=y
 # CONFIG_ACPI_DEBUG is not set
 CONFIG_ACPI_PCI_SLOT=y
 CONFIG_X86_PM_TIMER=y
@@ -612,8 +655,13 @@ CONFIG_ACPI_APEI_PCIEAER=y
 CONFIG_ACPI_APEI_MEMORY_FAILURE=y
 CONFIG_ACPI_APEI_EINJ=m
 CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_DPTF_POWER=m
+CONFIG_ACPI_WATCHDOG=y
 CONFIG_ACPI_EXTLOG=m
-# CONFIG_PMIC_OPREGION is not set
+CONFIG_PMIC_OPREGION=y
+CONFIG_CRC_PMIC_OPREGION=y
+CONFIG_BXT_WC_PMIC_OPREGION=y
+CONFIG_ACPI_CONFIGFS=m
 CONFIG_SFI=y
 CONFIG_X86_APM_BOOT=y
 CONFIG_APM=y
@@ -627,19 +675,22 @@ CONFIG_APM_DO_ENABLE=y
 # CPU Frequency scaling
 #
 CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
 CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT=y
 CONFIG_CPU_FREQ_STAT_DETAILS=y
 # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
 CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
 CONFIG_CPU_FREQ_GOV_POWERSAVE=m
 CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
 CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
 
 #
 # CPU frequency scaling drivers
@@ -704,6 +755,8 @@ CONFIG_PCIEASPM_DEFAULT=y
 # CONFIG_PCIEASPM_POWERSAVE is not set
 # CONFIG_PCIEASPM_PERFORMANCE is not set
 CONFIG_PCIE_PME=y
+CONFIG_PCIE_DPC=y
+CONFIG_PCIE_PTM=y
 CONFIG_PCI_MSI=y
 CONFIG_PCI_MSI_IRQ_DOMAIN=y
 # CONFIG_PCI_DEBUG is not set
@@ -715,10 +768,21 @@ CONFIG_PCI_IOV=y
 CONFIG_PCI_PRI=y
 CONFIG_PCI_PASID=y
 CONFIG_PCI_LABEL=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
 
 #
 # PCI host controller drivers
 #
+# CONFIG_PCIE_DW_PLAT is not set
 CONFIG_ISA_DMA_API=y
 CONFIG_ISA=y
 # CONFIG_EISA is not set
@@ -752,37 +816,14 @@ CONFIG_I82365=m
 CONFIG_TCIC=m
 CONFIG_PCMCIA_PROBE=y
 CONFIG_PCCARD_NONSTATIC=y
-CONFIG_HOTPLUG_PCI=y
-CONFIG_HOTPLUG_PCI_COMPAQ=m
-# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-CONFIG_HOTPLUG_PCI_IBM=m
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-CONFIG_HOTPLUG_PCI_CPCI=y
-CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
-CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
-CONFIG_HOTPLUG_PCI_SHPC=m
-CONFIG_RAPIDIO=m
-CONFIG_RAPIDIO_TSI721=m
-CONFIG_RAPIDIO_DISC_TIMEOUT=30
-# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
-CONFIG_RAPIDIO_DMA_ENGINE=y
-CONFIG_RAPIDIO_DEBUG=y
-CONFIG_RAPIDIO_ENUM_BASIC=m
-
-#
-# RapidIO Switch drivers
-#
-CONFIG_RAPIDIO_TSI57X=m
-CONFIG_RAPIDIO_CPS_XX=m
-CONFIG_RAPIDIO_TSI568=m
-CONFIG_RAPIDIO_CPS_GEN2=m
+# CONFIG_RAPIDIO is not set
 # CONFIG_X86_SYSFB is not set
 
 #
 # Executable file formats / Emulations
 #
 CONFIG_BINFMT_ELF=y
+CONFIG_ELFCORE=y
 CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
 CONFIG_BINFMT_SCRIPT=y
 CONFIG_HAVE_AOUT=y
@@ -793,6 +834,7 @@ CONFIG_HAVE_ATOMIC_IOMAP=y
 CONFIG_PMC_ATOM=y
 CONFIG_NET=y
 CONFIG_NET_INGRESS=y
+CONFIG_NET_EGRESS=y
 
 #
 # Networking options
@@ -841,10 +883,10 @@ CONFIG_INET_TUNNEL=m
 CONFIG_INET_XFRM_MODE_TRANSPORT=m
 CONFIG_INET_XFRM_MODE_TUNNEL=m
 CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=y
 CONFIG_INET_DIAG=m
 CONFIG_INET_TCP_DIAG=m
 CONFIG_INET_UDP_DIAG=m
+CONFIG_INET_DIAG_DESTROY=y
 CONFIG_TCP_CONG_ADVANCED=y
 CONFIG_TCP_CONG_BIC=m
 CONFIG_TCP_CONG_CUBIC=y
@@ -853,6 +895,7 @@ CONFIG_TCP_CONG_HTCP=m
 CONFIG_TCP_CONG_HSTCP=m
 CONFIG_TCP_CONG_HYBLA=m
 CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_NV=m
 CONFIG_TCP_CONG_SCALABLE=m
 CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
@@ -860,6 +903,7 @@ CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
 CONFIG_TCP_CONG_DCTCP=m
 CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_BBR=m
 CONFIG_DEFAULT_CUBIC=y
 # CONFIG_DEFAULT_RENO is not set
 CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -885,6 +929,8 @@ CONFIG_IPV6_SIT_6RD=y
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_GRE=m
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 CONFIG_IPV6_SUBTREES=y
 CONFIG_IPV6_MROUTE=y
@@ -953,9 +999,10 @@ CONFIG_NF_TABLES_INET=m
 CONFIG_NF_TABLES_NETDEV=m
 CONFIG_NFT_EXTHDR=m
 CONFIG_NFT_META=m
+CONFIG_NFT_NUMGEN=m
 CONFIG_NFT_CT=m
-CONFIG_NFT_RBTREE=m
-CONFIG_NFT_HASH=m
+CONFIG_NFT_SET_RBTREE=m
+CONFIG_NFT_SET_HASH=m
 CONFIG_NFT_COUNTER=m
 CONFIG_NFT_LOG=m
 CONFIG_NFT_LIMIT=m
@@ -963,9 +1010,14 @@ CONFIG_NFT_MASQ=m
 CONFIG_NFT_REDIR=m
 CONFIG_NFT_NAT=m
 CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
 CONFIG_NFT_REJECT=m
 CONFIG_NFT_REJECT_INET=m
 CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NF_DUP_NETDEV=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FWD_NETDEV=m
 CONFIG_NETFILTER_XTABLES=m
 
 #
@@ -1118,7 +1170,6 @@ CONFIG_IP_VS_PE_SIP=m
 #
 CONFIG_NF_DEFRAG_IPV4=m
 CONFIG_NF_CONNTRACK_IPV4=m
-# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
 CONFIG_NF_TABLES_IPV4=m
 CONFIG_NFT_CHAIN_ROUTE_IPV4=m
 CONFIG_NFT_REJECT_IPV4=m
@@ -1245,6 +1296,7 @@ CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
 # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
 CONFIG_SCTP_COOKIE_HMAC_MD5=y
 CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_INET_SCTP_DIAG=m
 # CONFIG_RDS is not set
 # CONFIG_TIPC is not set
 CONFIG_ATM=m
@@ -1271,6 +1323,7 @@ CONFIG_NET_DSA_TAG_BRCM=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
 CONFIG_NET_DSA_TAG_TRAILER=y
+CONFIG_NET_DSA_TAG_QCA=y
 CONFIG_VLAN_8021Q=m
 # CONFIG_VLAN_8021Q_GVRP is not set
 CONFIG_VLAN_8021Q_MVRP=y
@@ -1283,6 +1336,7 @@ CONFIG_LLC2=m
 # CONFIG_LAPB is not set
 CONFIG_PHONET=m
 CONFIG_6LOWPAN=m
+# CONFIG_6LOWPAN_DEBUGFS is not set
 CONFIG_6LOWPAN_NHC=m
 CONFIG_6LOWPAN_NHC_DEST=m
 CONFIG_6LOWPAN_NHC_FRAGMENT=m
@@ -1291,6 +1345,12 @@ CONFIG_6LOWPAN_NHC_IPV6=m
 CONFIG_6LOWPAN_NHC_MOBILITY=m
 CONFIG_6LOWPAN_NHC_ROUTING=m
 CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
+CONFIG_6LOWPAN_GHC_UDP=m
+CONFIG_6LOWPAN_GHC_ICMPV6=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
 CONFIG_IEEE802154=m
 CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y
 CONFIG_IEEE802154_SOCKET=m
@@ -1344,7 +1404,16 @@ CONFIG_NET_CLS_FLOW=m
 CONFIG_NET_CLS_CGROUP=m
 CONFIG_NET_CLS_BPF=m
 CONFIG_NET_CLS_FLOWER=m
-# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_MATCHALL=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_CANID=m
+CONFIG_NET_EMATCH_IPSET=m
 CONFIG_NET_CLS_ACT=y
 CONFIG_NET_ACT_POLICE=m
 CONFIG_NET_ACT_GACT=m
@@ -1359,15 +1428,23 @@ CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_ACT_VLAN=m
 CONFIG_NET_ACT_BPF=m
 CONFIG_NET_ACT_CONNMARK=m
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_IFE=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+CONFIG_NET_IFE_SKBMARK=m
+CONFIG_NET_IFE_SKBPRIO=m
+CONFIG_NET_IFE_SKBTCINDEX=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
 CONFIG_DNS_RESOLVER=m
 CONFIG_BATMAN_ADV=m
+CONFIG_BATMAN_ADV_BATMAN_V=y
 CONFIG_BATMAN_ADV_BLA=y
 CONFIG_BATMAN_ADV_DAT=y
 CONFIG_BATMAN_ADV_NC=y
 CONFIG_BATMAN_ADV_MCAST=y
+CONFIG_BATMAN_ADV_DEBUGFS=y
 # CONFIG_BATMAN_ADV_DEBUG is not set
 CONFIG_OPENVSWITCH=m
 CONFIG_OPENVSWITCH_GRE=m
@@ -1375,7 +1452,8 @@ CONFIG_OPENVSWITCH_VXLAN=m
 CONFIG_OPENVSWITCH_GENEVE=m
 CONFIG_VSOCKETS=m
 CONFIG_VMWARE_VMCI_VSOCKETS=m
-CONFIG_NETLINK_MMAP=y
+CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_VIRTIO_VSOCKETS_COMMON=m
 CONFIG_NETLINK_DIAG=m
 CONFIG_MPLS=y
 CONFIG_NET_MPLS_GSO=m
@@ -1384,9 +1462,11 @@ CONFIG_MPLS_IPTUNNEL=m
 CONFIG_HSR=m
 CONFIG_NET_SWITCHDEV=y
 CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_NET_NCSI=y
 CONFIG_RPS=y
 CONFIG_RFS_ACCEL=y
 CONFIG_XPS=y
+CONFIG_SOCK_CGROUP_DATA=y
 # CONFIG_CGROUP_NET_PRIO is not set
 CONFIG_CGROUP_NET_CLASSID=y
 CONFIG_NET_RX_BUSY_POLL=y
@@ -1436,8 +1516,16 @@ CONFIG_CAN_SLCAN=m
 CONFIG_CAN_DEV=m
 CONFIG_CAN_CALC_BITTIMING=y
 CONFIG_CAN_LEDS=y
-CONFIG_PCH_CAN=m
 # CONFIG_CAN_GRCAN is not set
+CONFIG_PCH_CAN=m
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PLATFORM=m
+CONFIG_CAN_C_CAN_PCI=m
+CONFIG_CAN_CC770=m
+# CONFIG_CAN_CC770_ISA is not set
+CONFIG_CAN_CC770_PLATFORM=m
+CONFIG_CAN_IFI_CANFD=m
+CONFIG_CAN_M_CAN=m
 CONFIG_CAN_SJA1000=m
 # CONFIG_CAN_SJA1000_ISA is not set
 CONFIG_CAN_SJA1000_PLATFORM=m
@@ -1449,13 +1537,8 @@ CONFIG_CAN_PEAK_PCIEC=y
 CONFIG_CAN_KVASER_PCI=m
 CONFIG_CAN_PLX_PCI=m
 # CONFIG_CAN_TSCAN1 is not set
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
-CONFIG_CAN_C_CAN_PCI=m
-CONFIG_CAN_M_CAN=m
-CONFIG_CAN_CC770=m
-# CONFIG_CAN_CC770_ISA is not set
-CONFIG_CAN_CC770_PLATFORM=m
+CONFIG_CAN_SOFTING=m
+# CONFIG_CAN_SOFTING_CS is not set
 
 #
 # CAN SPI interfaces
@@ -1471,8 +1554,6 @@ CONFIG_CAN_GS_USB=m
 CONFIG_CAN_KVASER_USB=m
 CONFIG_CAN_PEAK_USB=m
 CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_SOFTING=m
-# CONFIG_CAN_SOFTING_CS is not set
 # CONFIG_CAN_DEBUG_DEVICES is not set
 CONFIG_IRDA=m
 
@@ -1543,6 +1624,7 @@ CONFIG_BT_HIDP=m
 CONFIG_BT_HS=y
 CONFIG_BT_LE=y
 CONFIG_BT_6LOWPAN=m
+CONFIG_BT_LEDS=y
 # CONFIG_BT_SELFTEST is not set
 CONFIG_BT_DEBUGFS=y
 
@@ -1566,6 +1648,8 @@ CONFIG_BT_HCIUART_3WIRE=y
 CONFIG_BT_HCIUART_INTEL=y
 CONFIG_BT_HCIUART_BCM=y
 CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_AG6XX=y
+CONFIG_BT_HCIUART_MRVL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
 CONFIG_BT_HCIBFUSB=m
@@ -1579,8 +1663,12 @@ CONFIG_BT_MRVL_SDIO=m
 CONFIG_BT_ATH3K=m
 CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
+CONFIG_AF_RXRPC_IPV6=y
+# CONFIG_AF_RXRPC_INJECT_LOSS is not set
 # CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
+CONFIG_RXKAD=y
+CONFIG_AF_KCM=m
+CONFIG_STREAM_PARSER=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
 CONFIG_WIRELESS_EXT=y
@@ -1591,7 +1679,6 @@ CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
 CONFIG_CFG80211_DEFAULT_PS=y
 # CONFIG_CFG80211_DEBUGFS is not set
 # CONFIG_CFG80211_INTERNAL_REGDB is not set
@@ -1644,7 +1731,6 @@ CONFIG_NFC_HCI=m
 #
 # Near Field Communication (NFC) devices
 #
-CONFIG_NFC_PN533=m
 CONFIG_NFC_WILINK=m
 CONFIG_NFC_TRF7970A=m
 CONFIG_NFC_MEI_PHY=m
@@ -1654,18 +1740,24 @@ CONFIG_NFC_FDP=m
 CONFIG_NFC_FDP_I2C=m
 CONFIG_NFC_PN544=m
 CONFIG_NFC_PN544_MEI=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_PN533_USB=m
+CONFIG_NFC_PN533_I2C=m
 CONFIG_NFC_MICROREAD=m
 CONFIG_NFC_MICROREAD_MEI=m
 CONFIG_NFC_MRVL=m
 CONFIG_NFC_MRVL_USB=m
 CONFIG_NFC_MRVL_I2C=m
-CONFIG_NFC_ST21NFCA=m
 CONFIG_NFC_ST_NCI=m
 CONFIG_NFC_ST_NCI_I2C=m
 # CONFIG_NFC_ST_NCI_SPI is not set
 # CONFIG_NFC_NXP_NCI is not set
 # CONFIG_NFC_S3FWRN5_I2C is not set
+# CONFIG_NFC_ST95HF is not set
 CONFIG_LWTUNNEL=y
+CONFIG_DST_CACHE=y
+CONFIG_NET_DEVLINK=m
+CONFIG_MAY_USE_DEVLINK=m
 
 #
 # Device Drivers
@@ -1689,12 +1781,13 @@ CONFIG_ALLOW_DEV_COREDUMP=y
 CONFIG_DEV_COREDUMP=y
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
 # CONFIG_SYS_HYPERVISOR is not set
 # CONFIG_GENERIC_CPU_DEVICES is not set
 CONFIG_GENERIC_CPU_AUTOPROBE=y
 CONFIG_REGMAP=y
 CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=m
+CONFIG_REGMAP_SPI=y
 CONFIG_REGMAP_SPMI=m
 CONFIG_REGMAP_MMIO=y
 CONFIG_REGMAP_IRQ=y
@@ -1764,6 +1857,7 @@ CONFIG_MTD_ABSENT=m
 CONFIG_MTD_COMPLEX_MAPPINGS=y
 # CONFIG_MTD_PHYSMAP is not set
 CONFIG_MTD_PHYSMAP_OF=m
+# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set
 # CONFIG_MTD_SBC_GXX is not set
 # CONFIG_MTD_AMD76XROM is not set
 # CONFIG_MTD_ICHXROM is not set
@@ -1798,32 +1892,8 @@ CONFIG_MTD_BLOCK2MTD=m
 #
 # Disk-On-Chip Device Drivers
 #
-CONFIG_MTD_DOCG3=m
-CONFIG_BCH_CONST_M=14
-CONFIG_BCH_CONST_T=4
-CONFIG_MTD_NAND_ECC=m
-CONFIG_MTD_NAND_ECC_SMC=y
-CONFIG_MTD_NAND=m
-# CONFIG_MTD_NAND_ECC_BCH is not set
-CONFIG_MTD_SM_COMMON=m
-CONFIG_MTD_NAND_DENALI=m
-CONFIG_MTD_NAND_DENALI_PCI=m
-CONFIG_MTD_NAND_DENALI_DT=m
-CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
-CONFIG_MTD_NAND_GPIO=m
-# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
-CONFIG_MTD_NAND_IDS=m
-CONFIG_MTD_NAND_RICOH=m
-CONFIG_MTD_NAND_DISKONCHIP=m
-# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
-CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
-# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
-CONFIG_MTD_NAND_DOCG4=m
-CONFIG_MTD_NAND_CAFE=m
-CONFIG_MTD_NAND_CS553X=m
-CONFIG_MTD_NAND_NANDSIM=m
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_NAND_HISI504 is not set
+# CONFIG_MTD_DOCG3 is not set
+# CONFIG_MTD_NAND is not set
 # CONFIG_MTD_ONENAND is not set
 
 #
@@ -1848,7 +1918,6 @@ CONFIG_OF_NET=y
 CONFIG_OF_MDIO=m
 CONFIG_OF_PCI=y
 CONFIG_OF_PCI_IRQ=y
-CONFIG_OF_MTD=y
 # CONFIG_OF_OVERLAY is not set
 CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
 CONFIG_PARPORT=m
@@ -1876,7 +1945,6 @@ CONFIG_BLK_DEV_FD=m
 # CONFIG_PARIDE is not set
 CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
 CONFIG_ZRAM=m
-CONFIG_ZRAM_LZ4_COMPRESS=y
 CONFIG_BLK_CPQ_CISS_DA=m
 # CONFIG_CISS_SCSI_TAPE is not set
 CONFIG_BLK_DEV_DAC960=m
@@ -1901,7 +1969,14 @@ CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
 CONFIG_BLK_DEV_RBD=m
 CONFIG_BLK_DEV_RSXX=m
+CONFIG_NVME_CORE=m
 CONFIG_BLK_DEV_NVME=m
+# CONFIG_BLK_DEV_NVME_SCSI is not set
+CONFIG_NVME_FABRICS=m
+CONFIG_NVME_RDMA=m
+CONFIG_NVME_TARGET=m
+CONFIG_NVME_TARGET_LOOP=m
+CONFIG_NVME_TARGET_RDMA=m
 
 #
 # Misc devices
@@ -1926,20 +2001,17 @@ CONFIG_APDS9802ALS=m
 CONFIG_ISL29003=m
 CONFIG_ISL29020=m
 CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1780=m
 CONFIG_SENSORS_BH1770=m
 CONFIG_SENSORS_APDS990X=m
 CONFIG_HMC6352=m
 CONFIG_DS1682=m
 # CONFIG_TI_DAC7512 is not set
 CONFIG_VMWARE_BALLOON=m
-CONFIG_BMP085=y
-CONFIG_BMP085_I2C=m
-# CONFIG_BMP085_SPI is not set
 CONFIG_PCH_PHUB=m
 CONFIG_USB_SWITCH_FSA9480=m
 # CONFIG_LATTICE_ECP3_CONFIG is not set
 # CONFIG_SRAM is not set
+# CONFIG_PANEL is not set
 CONFIG_C2PORT=m
 CONFIG_C2PORT_DURAMAR_2150=m
 
@@ -1980,6 +2052,10 @@ CONFIG_VMWARE_VMCI=m
 #
 
 #
+# VOP Bus Driver
+#
+
+#
 # Intel MIC Host Driver
 #
 
@@ -1994,10 +2070,14 @@ CONFIG_VMWARE_VMCI=m
 #
 # Intel MIC Coprocessor State Management (COSM) Drivers
 #
+
+#
+# VOP Driver
+#
+CONFIG_VHOST_RING=m
 CONFIG_ECHO=m
 # CONFIG_CXL_BASE is not set
-# CONFIG_CXL_KERNEL_API is not set
-# CONFIG_CXL_EEH is not set
+# CONFIG_CXL_AFU_DRIVER_OPS is not set
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
@@ -2050,7 +2130,6 @@ CONFIG_BLK_DEV_3W_XXXX_RAID=m
 CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
 CONFIG_SCSI_3W_SAS=m
-CONFIG_SCSI_7000FASST=m
 CONFIG_SCSI_ACARD=m
 CONFIG_SCSI_AHA152X=m
 CONFIG_SCSI_AHA1542=m
@@ -2075,7 +2154,6 @@ CONFIG_SCSI_MVSAS_TASKLET=y
 CONFIG_SCSI_MVUMI=m
 CONFIG_SCSI_DPT_I2O=m
 CONFIG_SCSI_ADVANSYS=m
-CONFIG_SCSI_IN2000=m
 CONFIG_SCSI_ARCMSR=m
 CONFIG_SCSI_ESAS2R=m
 CONFIG_MEGARAID_NEWGEN=y
@@ -2087,9 +2165,12 @@ CONFIG_SCSI_MPT3SAS=m
 CONFIG_SCSI_MPT2SAS_MAX_SGE=128
 CONFIG_SCSI_MPT3SAS_MAX_SGE=128
 CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_SMARTPQI=m
 CONFIG_SCSI_UFSHCD=m
 CONFIG_SCSI_UFSHCD_PCI=m
+# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
 CONFIG_SCSI_UFSHCD_PLATFORM=m
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
 # CONFIG_SCSI_FLASHPOINT is not set
@@ -2102,7 +2183,6 @@ CONFIG_FCOE_FNIC=m
 CONFIG_SCSI_SNIC=m
 # CONFIG_SCSI_SNIC_DEBUG_FS is not set
 CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_DTC3280=m
 CONFIG_SCSI_EATA=m
 # CONFIG_SCSI_EATA_TAGGED_QUEUE is not set
 # CONFIG_SCSI_EATA_LINKED_COMMANDS is not set
@@ -2112,7 +2192,6 @@ CONFIG_SCSI_GDTH=m
 CONFIG_SCSI_ISCI=m
 CONFIG_SCSI_GENERIC_NCR5380=m
 CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
-CONFIG_SCSI_GENERIC_NCR53C400=y
 CONFIG_SCSI_IPS=m
 CONFIG_SCSI_INITIO=m
 CONFIG_SCSI_INIA100=m
@@ -2130,23 +2209,17 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y
 CONFIG_SCSI_IPR=m
 # CONFIG_SCSI_IPR_TRACE is not set
 # CONFIG_SCSI_IPR_DUMP is not set
-CONFIG_SCSI_PAS16=m
 CONFIG_SCSI_QLOGIC_FAS=m
 CONFIG_SCSI_QLOGIC_1280=m
 CONFIG_SCSI_QLA_FC=m
 CONFIG_TCM_QLA2XXX=m
+# CONFIG_TCM_QLA2XXX_DEBUG is not set
 CONFIG_SCSI_QLA_ISCSI=m
 CONFIG_SCSI_LPFC=m
 # CONFIG_SCSI_LPFC_DEBUG_FS is not set
 CONFIG_SCSI_SYM53C416=m
 CONFIG_SCSI_DC395x=m
 CONFIG_SCSI_AM53C974=m
-CONFIG_SCSI_T128=m
-CONFIG_SCSI_U14_34F=m
-# CONFIG_SCSI_U14_34F_TAGGED_QUEUE is not set
-# CONFIG_SCSI_U14_34F_LINKED_COMMANDS is not set
-CONFIG_SCSI_U14_34F_MAX_TAGS=8
-CONFIG_SCSI_ULTRASTOR=m
 CONFIG_SCSI_NSP32=m
 CONFIG_SCSI_WD719X=m
 # CONFIG_SCSI_DEBUG is not set
@@ -2201,6 +2274,9 @@ CONFIG_ATA_BMDMA=y
 # SATA SFF controllers with BMDMA
 #
 CONFIG_ATA_PIIX=m
+CONFIG_SATA_DWC=m
+# CONFIG_SATA_DWC_OLD_DMA is not set
+# CONFIG_SATA_DWC_DEBUG is not set
 CONFIG_SATA_MV=m
 CONFIG_SATA_NV=m
 CONFIG_SATA_PROMISE=m
@@ -2291,14 +2367,13 @@ CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_MQ_DEFAULT is not set
 # CONFIG_DM_DEBUG is not set
 CONFIG_DM_BUFIO=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
 CONFIG_DM_BIO_PRISON=m
 CONFIG_DM_PERSISTENT_DATA=m
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
 CONFIG_DM_THIN_PROVISIONING=m
 CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_MQ=m
 CONFIG_DM_CACHE_SMQ=m
 CONFIG_DM_CACHE_CLEANER=m
 CONFIG_DM_ERA=m
@@ -2313,6 +2388,7 @@ CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
 CONFIG_DM_FLAKEY=m
 CONFIG_DM_VERITY=m
+CONFIG_DM_VERITY_FEC=y
 CONFIG_DM_SWITCH=m
 CONFIG_DM_LOG_WRITES=m
 CONFIG_TARGET_CORE=m
@@ -2323,6 +2399,7 @@ CONFIG_TCM_USER2=m
 CONFIG_LOOPBACK_TARGET=m
 CONFIG_TCM_FC=m
 CONFIG_ISCSI_TARGET=m
+CONFIG_ISCSI_TARGET_CXGB4=m
 CONFIG_SBP_TARGET=m
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
@@ -2361,13 +2438,12 @@ CONFIG_MACVTAP=m
 CONFIG_IPVLAN=m
 CONFIG_VXLAN=m
 CONFIG_GENEVE=m
+CONFIG_GTP=m
+CONFIG_MACSEC=m
 CONFIG_NETCONSOLE=m
 CONFIG_NETCONSOLE_DYNAMIC=y
 CONFIG_NETPOLL=y
 CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_RIONET=m
-CONFIG_RIONET_TX_SIZE=128
-CONFIG_RIONET_RX_SIZE=128
 CONFIG_TUN=m
 # CONFIG_TUN_VNET_CROSS_LE is not set
 CONFIG_VETH=m
@@ -2415,23 +2491,20 @@ CONFIG_CAIF_SPI_SLAVE=m
 CONFIG_CAIF_SPI_SYNC=y
 CONFIG_CAIF_HSI=m
 CONFIG_CAIF_VIRTIO=m
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_RING=m
-CONFIG_VHOST=m
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
 
 #
 # Distributed Switch Architecture drivers
 #
-CONFIG_NET_DSA_MV88E6XXX=m
 CONFIG_NET_DSA_MV88E6060=m
-CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
-CONFIG_NET_DSA_MV88E6131=m
-CONFIG_NET_DSA_MV88E6123_61_65=m
-CONFIG_NET_DSA_MV88E6171=m
-CONFIG_NET_DSA_MV88E6352=m
 CONFIG_NET_DSA_BCM_SF2=m
+CONFIG_B53=m
+CONFIG_B53_SPI_DRIVER=m
+CONFIG_B53_MDIO_DRIVER=m
+CONFIG_B53_MMAP_DRIVER=m
+CONFIG_B53_SRAB_DRIVER=m
+CONFIG_NET_DSA_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
+CONFIG_NET_DSA_QCA8K=m
 CONFIG_ETHERNET=y
 CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
@@ -2449,6 +2522,8 @@ CONFIG_NET_VENDOR_ALTEON=y
 CONFIG_ACENIC=m
 # CONFIG_ACENIC_OMIT_TIGON_I is not set
 CONFIG_ALTERA_TSE=m
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_ENA_ETHERNET=m
 CONFIG_NET_VENDOR_AMD=y
 CONFIG_AMD8111_ETH=m
 CONFIG_LANCE=m
@@ -2479,7 +2554,6 @@ CONFIG_CNIC=m
 CONFIG_TIGON3=m
 CONFIG_BNX2X=m
 CONFIG_BNX2X_SRIOV=y
-CONFIG_BNX2X_VXLAN=y
 CONFIG_SYSTEMPORT=m
 CONFIG_BNXT=m
 CONFIG_BNXT_SRIOV=y
@@ -2492,6 +2566,7 @@ CONFIG_CHELSIO_T1_1G=y
 CONFIG_CHELSIO_T3=m
 CONFIG_CHELSIO_T4=m
 CONFIG_CHELSIO_T4VF=m
+CONFIG_CHELSIO_LIB=m
 CONFIG_NET_VENDOR_CIRRUS=y
 CONFIG_CS89x0=m
 # CONFIG_CS89x0_PLATFORM is not set
@@ -2519,7 +2594,6 @@ CONFIG_SUNDANCE=m
 CONFIG_NET_VENDOR_EMULEX=y
 CONFIG_BE2NET=m
 CONFIG_BE2NET_HWMON=y
-CONFIG_BE2NET_VXLAN=y
 # CONFIG_NET_VENDOR_EZCHIP is not set
 CONFIG_NET_VENDOR_EXAR=y
 CONFIG_S2IO=m
@@ -2533,23 +2607,22 @@ CONFIG_NET_VENDOR_INTEL=y
 CONFIG_E100=m
 CONFIG_E1000=m
 CONFIG_E1000E=m
+CONFIG_E1000E_HWTS=y
 CONFIG_IGB=m
 CONFIG_IGB_HWMON=y
 CONFIG_IGBVF=m
 CONFIG_IXGB=m
 CONFIG_IXGBE=m
-CONFIG_IXGBE_VXLAN=y
 CONFIG_IXGBE_HWMON=y
 CONFIG_IXGBEVF=m
 CONFIG_I40E=m
-CONFIG_I40E_VXLAN=y
 CONFIG_I40EVF=m
 CONFIG_FM10K=m
-# CONFIG_FM10K_VXLAN is not set
 CONFIG_NET_VENDOR_I825XX=y
 CONFIG_JME=m
 CONFIG_NET_VENDOR_MARVELL=y
 CONFIG_MVMDIO=m
+# CONFIG_MVNETA_BM is not set
 CONFIG_SKGE=m
 # CONFIG_SKGE_DEBUG is not set
 CONFIG_SKGE_GENESIS=y
@@ -2557,12 +2630,12 @@ CONFIG_SKY2=m
 # CONFIG_SKY2_DEBUG is not set
 CONFIG_NET_VENDOR_MELLANOX=y
 CONFIG_MLX4_EN=m
-CONFIG_MLX4_EN_VXLAN=y
 CONFIG_MLX4_CORE=m
 CONFIG_MLX4_DEBUG=y
 CONFIG_MLX5_CORE=m
 CONFIG_MLX5_CORE_EN=y
 CONFIG_MLXSW_CORE=m
+CONFIG_MLXSW_CORE_HWMON=y
 CONFIG_MLXSW_PCI=m
 CONFIG_MLXSW_SWITCHX2=m
 CONFIG_MLXSW_SPECTRUM=m
@@ -2581,6 +2654,9 @@ CONFIG_FEALNX=m
 CONFIG_NET_VENDOR_NATSEMI=y
 CONFIG_NATSEMI=m
 CONFIG_NS83820=m
+CONFIG_NET_VENDOR_NETRONOME=y
+CONFIG_NFP_NETVF=m
+# CONFIG_NFP_NET_DEBUG is not set
 CONFIG_NET_VENDOR_8390=y
 CONFIG_PCMCIA_AXNET=m
 CONFIG_NE2000=m
@@ -2600,14 +2676,15 @@ CONFIG_NET_VENDOR_QLOGIC=y
 CONFIG_QLA3XXX=m
 CONFIG_QLCNIC=m
 CONFIG_QLCNIC_SRIOV=y
-CONFIG_QLCNIC_VXLAN=y
 CONFIG_QLCNIC_HWMON=y
 CONFIG_QLGE=m
 CONFIG_NETXEN_NIC=m
 CONFIG_QED=m
+CONFIG_QED_SRIOV=y
 CONFIG_QEDE=m
 CONFIG_NET_VENDOR_QUALCOMM=y
 CONFIG_QCA7000=m
+CONFIG_QCOM_EMAC=m
 CONFIG_NET_VENDOR_REALTEK=y
 CONFIG_ATP=m
 CONFIG_8139CP=m
@@ -2668,47 +2745,57 @@ CONFIG_WIZNET_W5300=m
 # CONFIG_WIZNET_BUS_DIRECT is not set
 # CONFIG_WIZNET_BUS_INDIRECT is not set
 CONFIG_WIZNET_BUS_ANY=y
+CONFIG_WIZNET_W5100_SPI=m
 CONFIG_NET_VENDOR_XIRCOM=y
 CONFIG_PCMCIA_XIRC2PS=m
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
 CONFIG_NET_SB1000=m
 CONFIG_PHYLIB=m
+CONFIG_SWPHY=y
+
+#
+# MDIO bus device drivers
+#
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_BUS_MUX=m
+CONFIG_MDIO_BUS_MUX_GPIO=m
+CONFIG_MDIO_BUS_MUX_MMIOREG=m
+# CONFIG_MDIO_GPIO is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
 
 #
 # MII PHY device drivers
 #
+CONFIG_AMD_PHY=m
 CONFIG_AQUANTIA_PHY=m
 CONFIG_AT803X_PHY=m
-CONFIG_AMD_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_TERANETICS_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_BROADCOM_PHY=m
 CONFIG_BCM7XXX_PHY=m
 CONFIG_BCM87XX_PHY=m
+CONFIG_BCM_NET_PHYLIB=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_DP83848_PHY=m
+CONFIG_DP83867_PHY=m
+CONFIG_FIXED_PHY=m
 CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
+CONFIG_INTEL_XWAY_PHY=m
 CONFIG_LSI_ET1011C_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_MARVELL_PHY=m
 CONFIG_MICREL_PHY=m
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
 CONFIG_MICROCHIP_PHY=m
-CONFIG_FIXED_PHY=m
-CONFIG_MDIO_BITBANG=m
-# CONFIG_MDIO_GPIO is not set
-CONFIG_MDIO_BUS_MUX=m
-CONFIG_MDIO_BUS_MUX_GPIO=m
-CONFIG_MDIO_BUS_MUX_MMIOREG=m
-CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MICROSEMI_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_STE10XP=m
+CONFIG_TERANETICS_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_XILINX_GMII2RGMII=m
 # CONFIG_MICREL_KS8995MA is not set
 CONFIG_PLIP=m
 CONFIG_PPP=m
@@ -2757,6 +2844,7 @@ CONFIG_USB_NET_NET1080=m
 CONFIG_USB_NET_PLUSB=m
 CONFIG_USB_NET_MCS7830=m
 CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
 CONFIG_USB_NET_CDC_SUBSET=m
 CONFIG_USB_ALI_M5632=y
 CONFIG_USB_AN2720=y
@@ -2776,28 +2864,10 @@ CONFIG_USB_SIERRA_NET=m
 CONFIG_USB_VL600=m
 CONFIG_USB_NET_CH9200=m
 CONFIG_WLAN=y
-CONFIG_PCMCIA_RAYCS=m
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AIRO=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-CONFIG_PRISM54=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_WLAN_VENDOR_ADMTEK=y
 CONFIG_ADM8211=m
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-# CONFIG_MAC80211_HWSIM is not set
-CONFIG_MWL8K=m
 CONFIG_ATH_COMMON=m
-CONFIG_ATH_CARDS=m
+CONFIG_WLAN_VENDOR_ATH=y
 # CONFIG_ATH_DEBUG is not set
 CONFIG_ATH5K=m
 # CONFIG_ATH5K_DEBUG is not set
@@ -2818,6 +2888,7 @@ CONFIG_ATH9K_RFKILL=y
 CONFIG_ATH9K_PCOEM=y
 CONFIG_ATH9K_HTC=m
 # CONFIG_ATH9K_HTC_DEBUGFS is not set
+# CONFIG_ATH9K_HWRNG is not set
 CONFIG_CARL9170=m
 CONFIG_CARL9170_LEDS=y
 # CONFIG_CARL9170_DEBUGFS is not set
@@ -2834,11 +2905,18 @@ CONFIG_WIL6210_ISR_COR=y
 # CONFIG_WIL6210_TRACING is not set
 CONFIG_ATH10K=m
 CONFIG_ATH10K_PCI=m
+CONFIG_ATH10K_AHB=y
 # CONFIG_ATH10K_DEBUG is not set
 CONFIG_ATH10K_DEBUGFS=y
 # CONFIG_ATH10K_TRACING is not set
 CONFIG_WCN36XX=m
 # CONFIG_WCN36XX_DEBUGFS is not set
+CONFIG_WLAN_VENDOR_ATMEL=y
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_WLAN_VENDOR_BROADCOM=y
 CONFIG_B43=m
 CONFIG_B43_BCMA=y
 CONFIG_B43_SSB=y
@@ -2878,12 +2956,10 @@ CONFIG_BRCMFMAC_USB=y
 CONFIG_BRCMFMAC_PCIE=y
 # CONFIG_BRCM_TRACING is not set
 # CONFIG_BRCMDBG is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_AIRO=m
+CONFIG_AIRO_CS=m
+CONFIG_WLAN_VENDOR_INTEL=y
 CONFIG_IPW2100=m
 CONFIG_IPW2100_MONITOR=y
 # CONFIG_IPW2100_DEBUG is not set
@@ -2895,13 +2971,22 @@ CONFIG_IPW2200_QOS=y
 # CONFIG_IPW2200_DEBUG is not set
 CONFIG_LIBIPW=m
 # CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+
+#
+# iwl3945 / iwl4965 Debugging Options
+#
+# CONFIG_IWLEGACY_DEBUG is not set
+# CONFIG_IWLEGACY_DEBUGFS is not set
 CONFIG_IWLWIFI=m
 CONFIG_IWLWIFI_LEDS=y
 CONFIG_IWLDVM=m
 CONFIG_IWLMVM=m
 CONFIG_IWLWIFI_OPMODE_MODULAR=y
 # CONFIG_IWLWIFI_BCAST_FILTERING is not set
-# CONFIG_IWLWIFI_UAPSD is not set
+# CONFIG_IWLWIFI_PCIE_RTPM is not set
 
 #
 # Debugging Options
@@ -2909,22 +2994,13 @@ CONFIG_IWLWIFI_OPMODE_MODULAR=y
 # CONFIG_IWLWIFI_DEBUG is not set
 # CONFIG_IWLWIFI_DEBUGFS is not set
 CONFIG_IWLWIFI_DEVICE_TRACING=y
-CONFIG_IWLEGACY=m
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-
-#
-# iwl3945 / iwl4965 Debugging Options
-#
-# CONFIG_IWLEGACY_DEBUG is not set
-# CONFIG_IWLEGACY_DEBUGFS is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
+CONFIG_WLAN_VENDOR_INTERSIL=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
 CONFIG_HERMES=m
 CONFIG_HERMES_PRISM=y
 CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -2941,6 +3017,26 @@ CONFIG_P54_PCI=m
 CONFIG_P54_SPI=m
 # CONFIG_P54_SPI_DEFAULT_EEPROM is not set
 CONFIG_P54_LEDS=y
+CONFIG_PRISM54=m
+CONFIG_WLAN_VENDOR_MARVELL=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_MWL8K=m
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_MT7601U=m
+CONFIG_WLAN_VENDOR_RALINK=y
 CONFIG_RT2X00=m
 CONFIG_RT2400PCI=m
 CONFIG_RT2500PCI=m
@@ -2970,8 +3066,10 @@ CONFIG_RT2X00_LIB_CRYPTO=y
 CONFIG_RT2X00_LIB_LEDS=y
 # CONFIG_RT2X00_LIB_DEBUGFS is not set
 # CONFIG_RT2X00_DEBUG is not set
-CONFIG_WL_MEDIATEK=y
-CONFIG_MT7601U=m
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
 CONFIG_RTL_CARDS=m
 CONFIG_RTL8192CE=m
 CONFIG_RTL8192SE=m
@@ -2991,7 +3089,16 @@ CONFIG_RTL8723_COMMON=m
 CONFIG_RTLBTCOEXIST=m
 CONFIG_RTL8XXXU=m
 CONFIG_RTL8XXXU_UNTESTED=y
-CONFIG_WL_TI=y
+CONFIG_WLAN_VENDOR_RSI=y
+CONFIG_RSI_91X=m
+# CONFIG_RSI_DEBUGFS is not set
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
+CONFIG_WLAN_VENDOR_ST=y
+CONFIG_CW1200=m
+CONFIG_CW1200_WLAN_SDIO=m
+CONFIG_CW1200_WLAN_SPI=m
+CONFIG_WLAN_VENDOR_TI=y
 CONFIG_WL1251=m
 # CONFIG_WL1251_SPI is not set
 CONFIG_WL1251_SDIO=m
@@ -3001,19 +3108,14 @@ CONFIG_WLCORE=m
 # CONFIG_WLCORE_SPI is not set
 CONFIG_WLCORE_SDIO=m
 CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_WLAN_VENDOR_ZYDAS=y
+CONFIG_USB_ZD1201=m
 CONFIG_ZD1211RW=m
 # CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_PCIE=m
-CONFIG_MWIFIEX_USB=m
-CONFIG_CW1200=m
-CONFIG_CW1200_WLAN_SDIO=m
-CONFIG_CW1200_WLAN_SPI=m
-CONFIG_RSI_91X=m
-# CONFIG_RSI_DEBUGFS is not set
-CONFIG_RSI_SDIO=m
-CONFIG_RSI_USB=m
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_WL3501=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_USB_NET_RNDIS_WLAN=m
 
 #
 # WiMAX Wireless Broadband devices
@@ -3029,6 +3131,7 @@ CONFIG_IEEE802154_AT86RF230=m
 # CONFIG_IEEE802154_MRF24J40 is not set
 # CONFIG_IEEE802154_CC2520 is not set
 CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_ADF7242 is not set
 CONFIG_VMXNET3=m
 CONFIG_FUJITSU_ES=m
 CONFIG_HYPERV_NET=m
@@ -3116,14 +3219,6 @@ CONFIG_HISAX_ST5481=m
 CONFIG_HISAX_HFCUSB=m
 CONFIG_HISAX_HFC4S8S=m
 CONFIG_HISAX_FRITZ_PCIPNP=m
-
-#
-# Active cards
-#
-CONFIG_ISDN_DRV_ICN=m
-CONFIG_ISDN_DRV_PCBIT=m
-CONFIG_ISDN_DRV_SC=m
-CONFIG_ISDN_DRV_ACT2000=m
 CONFIG_ISDN_CAPI=m
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_CAPI20=m
@@ -3205,13 +3300,14 @@ CONFIG_INPUT_EVDEV=m
 # Input Device Drivers
 #
 CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADC is not set
 CONFIG_KEYBOARD_ADP5588=m
 CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=m
 CONFIG_KEYBOARD_QT1070=m
 CONFIG_KEYBOARD_QT2160=m
 # CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_GPIO is not set
+CONFIG_KEYBOARD_GPIO=m
 # CONFIG_KEYBOARD_GPIO_POLLED is not set
 CONFIG_KEYBOARD_TCA6416=m
 CONFIG_KEYBOARD_TCA8418=m
@@ -3234,6 +3330,7 @@ CONFIG_KEYBOARD_MPR121=m
 CONFIG_INPUT_MOUSE=y
 CONFIG_MOUSE_PS2=m
 CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
 CONFIG_MOUSE_PS2_LOGIPS2PP=y
 CONFIG_MOUSE_PS2_SYNAPTICS=y
 CONFIG_MOUSE_PS2_CYPRESS=y
@@ -3297,6 +3394,7 @@ CONFIG_TABLET_USB_AIPTEK=m
 CONFIG_TABLET_USB_GTCO=m
 CONFIG_TABLET_USB_HANWANG=m
 CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_PEGASUS=m
 CONFIG_TABLET_SERIAL_WACOM4=m
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_PROPERTIES=y
@@ -3307,6 +3405,7 @@ CONFIG_TOUCHSCREEN_AD7879_I2C=m
 # CONFIG_TOUCHSCREEN_AD7879_SPI is not set
 # CONFIG_TOUCHSCREEN_AR1021_I2C is not set
 CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT_T37=y
 CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
 CONFIG_TOUCHSCREEN_BU21013=m
 # CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
@@ -3321,11 +3420,12 @@ CONFIG_TOUCHSCREEN_DYNAPRO=m
 CONFIG_TOUCHSCREEN_HAMPSHIRE=m
 CONFIG_TOUCHSCREEN_EETI=m
 CONFIG_TOUCHSCREEN_EGALAX=m
-CONFIG_TOUCHSCREEN_FT6236=m
+CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
 CONFIG_TOUCHSCREEN_FUJITSU=m
 CONFIG_TOUCHSCREEN_GOODIX=m
 CONFIG_TOUCHSCREEN_ILI210X=m
 CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
 CONFIG_TOUCHSCREEN_ELAN=m
 CONFIG_TOUCHSCREEN_ELO=m
 CONFIG_TOUCHSCREEN_WACOM_W8001=m
@@ -3333,6 +3433,7 @@ CONFIG_TOUCHSCREEN_WACOM_I2C=m
 CONFIG_TOUCHSCREEN_MAX11801=m
 CONFIG_TOUCHSCREEN_MCS5000=m
 CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
 CONFIG_TOUCHSCREEN_MTOUCH=m
 CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
 CONFIG_TOUCHSCREEN_INEXIO=m
@@ -3376,8 +3477,12 @@ CONFIG_TOUCHSCREEN_TSC200X_CORE=m
 CONFIG_TOUCHSCREEN_TSC2004=m
 # CONFIG_TOUCHSCREEN_TSC2005 is not set
 CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_RM_TS=m
+CONFIG_TOUCHSCREEN_SILEAD=m
+CONFIG_TOUCHSCREEN_SIS_I2C=m
 CONFIG_TOUCHSCREEN_ST1232=m
 CONFIG_TOUCHSCREEN_SUR40=m
+CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
 # CONFIG_TOUCHSCREEN_SX8654 is not set
 CONFIG_TOUCHSCREEN_TPS6507X=m
 CONFIG_TOUCHSCREEN_ZFORCE=m
@@ -3387,6 +3492,7 @@ CONFIG_INPUT_AD714X=m
 CONFIG_INPUT_AD714X_I2C=m
 CONFIG_INPUT_AD714X_SPI=m
 # CONFIG_INPUT_ARIZONA_HAPTICS is not set
+# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
 CONFIG_INPUT_BMA150=m
 CONFIG_INPUT_E3X0_BUTTON=m
 CONFIG_INPUT_PCSPKR=m
@@ -3397,6 +3503,7 @@ CONFIG_INPUT_APANEL=m
 CONFIG_INPUT_GP2A=m
 CONFIG_INPUT_GPIO_BEEPER=m
 # CONFIG_INPUT_GPIO_TILT_POLLED is not set
+# CONFIG_INPUT_GPIO_DECODER is not set
 CONFIG_INPUT_WISTRON_BTNS=m
 CONFIG_INPUT_ATLAS_BTNS=m
 CONFIG_INPUT_ATI_REMOTE2=m
@@ -3420,9 +3527,18 @@ CONFIG_INPUT_ADXL34X_SPI=m
 CONFIG_INPUT_CMA3000=m
 CONFIG_INPUT_CMA3000_I2C=m
 CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
+CONFIG_INPUT_SOC_BUTTON_ARRAY=m
 # CONFIG_INPUT_DRV260X_HAPTICS is not set
 # CONFIG_INPUT_DRV2665_HAPTICS is not set
 # CONFIG_INPUT_DRV2667_HAPTICS is not set
+CONFIG_RMI4_CORE=m
+CONFIG_RMI4_I2C=m
+CONFIG_RMI4_SPI=m
+CONFIG_RMI4_2D_SENSOR=y
+CONFIG_RMI4_F11=y
+CONFIG_RMI4_F12=y
+CONFIG_RMI4_F30=y
+CONFIG_RMI4_F54=y
 
 #
 # Hardware I/O ports
@@ -3460,7 +3576,6 @@ CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_HW_CONSOLE=y
 CONFIG_VT_HW_CONSOLE_BINDING=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
 # CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_NONSTANDARD=y
 CONFIG_ROCKETPORT=m
@@ -3487,18 +3602,30 @@ CONFIG_SERIAL_EARLYCON=y
 CONFIG_SERIAL_8250=y
 # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
 CONFIG_SERIAL_8250_PNP=y
+# CONFIG_SERIAL_8250_FINTEK is not set
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_DMA=y
 CONFIG_SERIAL_8250_PCI=y
 CONFIG_SERIAL_8250_CS=m
 CONFIG_SERIAL_8250_NR_UARTS=32
 CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+# CONFIG_SERIAL_8250_FOURPORT is not set
+# CONFIG_SERIAL_8250_ACCENT is not set
+# CONFIG_SERIAL_8250_BOCA is not set
+# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
+# CONFIG_SERIAL_8250_HUB6 is not set
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_RSA=y
 # CONFIG_SERIAL_8250_FSL is not set
 CONFIG_SERIAL_8250_DW=m
 CONFIG_SERIAL_8250_RT288X=y
-# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_LPSS=y
 CONFIG_SERIAL_8250_MID=y
+CONFIG_SERIAL_8250_MOXA=m
+CONFIG_SERIAL_OF_PLATFORM=m
 
 #
 # Non-8250 serial port support
@@ -3509,7 +3636,6 @@ CONFIG_SERIAL_8250_MID=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 CONFIG_SERIAL_JSM=m
-CONFIG_SERIAL_OF_PLATFORM=m
 CONFIG_SERIAL_SCCNXP=m
 CONFIG_SERIAL_SC16IS7XX_CORE=m
 CONFIG_SERIAL_SC16IS7XX=m
@@ -3538,7 +3664,6 @@ CONFIG_IPMI_HANDLER=m
 # CONFIG_IPMI_PANIC_EVENT is not set
 CONFIG_IPMI_DEVICE_INTERFACE=m
 CONFIG_IPMI_SI=m
-# CONFIG_IPMI_SI_PROBE_DEFAULTS is not set
 CONFIG_IPMI_SSIF=m
 CONFIG_IPMI_WATCHDOG=m
 CONFIG_IPMI_POWEROFF=m
@@ -3573,7 +3698,9 @@ CONFIG_HPET_MMAP=y
 CONFIG_HPET_MMAP_DEFAULT=y
 CONFIG_HANGCHECK_TIMER=m
 CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_CORE=m
 CONFIG_TCG_TIS=m
+# CONFIG_TCG_TIS_SPI is not set
 CONFIG_TCG_TIS_I2C_ATMEL=m
 CONFIG_TCG_TIS_I2C_INFINEON=m
 CONFIG_TCG_TIS_I2C_NUVOTON=m
@@ -3581,7 +3708,9 @@ CONFIG_TCG_NSC=m
 CONFIG_TCG_ATMEL=m
 CONFIG_TCG_INFINEON=m
 CONFIG_TCG_CRB=m
-# CONFIG_TCG_TIS_ST33ZP24 is not set
+# CONFIG_TCG_VTPM_PROXY is not set
+# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
+# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
 CONFIG_TELCLOCK=m
 CONFIG_DEVPORT=y
 # CONFIG_XILLYBUS is not set
@@ -3605,6 +3734,7 @@ CONFIG_I2C_MUX_PCA9541=m
 CONFIG_I2C_MUX_PCA954x=m
 # CONFIG_I2C_MUX_PINCTRL is not set
 # CONFIG_I2C_MUX_REG is not set
+# CONFIG_I2C_DEMUX_PINCTRL is not set
 CONFIG_I2C_HELPER_AUTO=y
 CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
@@ -3647,6 +3777,7 @@ CONFIG_I2C_SCMI=m
 CONFIG_I2C_DESIGNWARE_CORE=m
 CONFIG_I2C_DESIGNWARE_PLATFORM=m
 CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
 CONFIG_I2C_EG20T=m
 # CONFIG_I2C_EMEV2 is not set
 # CONFIG_I2C_GPIO is not set
@@ -3689,30 +3820,32 @@ CONFIG_SPI_MASTER=y
 # SPI Master Controller Drivers
 #
 CONFIG_SPI_ALTERA=m
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
 CONFIG_SPI_BITBANG=m
 CONFIG_SPI_BUTTERFLY=m
 # CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_DESIGNWARE=m
+CONFIG_SPI_DW_PCI=m
+# CONFIG_SPI_DW_MID_DMA is not set
+CONFIG_SPI_DW_MMIO=m
 CONFIG_SPI_GPIO=m
 CONFIG_SPI_LM70_LLP=m
 # CONFIG_SPI_FSL_SPI is not set
 CONFIG_SPI_OC_TINY=m
-CONFIG_SPI_PXA2XX_DMA=y
 CONFIG_SPI_PXA2XX=m
 CONFIG_SPI_PXA2XX_PCI=m
+CONFIG_SPI_ROCKCHIP=m
 CONFIG_SPI_SC18IS602=m
 CONFIG_SPI_TOPCLIFF_PCH=m
 CONFIG_SPI_XCOMM=m
 CONFIG_SPI_XILINX=m
 CONFIG_SPI_ZYNQMP_GQSPI=m
-CONFIG_SPI_DESIGNWARE=m
-CONFIG_SPI_DW_PCI=m
-# CONFIG_SPI_DW_MID_DMA is not set
-CONFIG_SPI_DW_MMIO=m
 
 #
 # SPI Protocol Masters
 #
 CONFIG_SPI_SPIDEV=m
+# CONFIG_SPI_LOOPBACK_TEST is not set
 CONFIG_SPI_TLE62X0=m
 CONFIG_SPMI=m
 # CONFIG_HSI is not set
@@ -3722,7 +3855,6 @@ CONFIG_SPMI=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
-# CONFIG_NTP_PPS is not set
 
 #
 # PPS clients support
@@ -3754,13 +3886,11 @@ CONFIG_GENERIC_PINCONF=y
 # CONFIG_PINCTRL_AMD is not set
 # CONFIG_PINCTRL_SINGLE is not set
 CONFIG_PINCTRL_BAYTRAIL=y
-CONFIG_PINCTRL_CHERRYVIEW=m
-CONFIG_PINCTRL_INTEL=m
-CONFIG_PINCTRL_BROXTON=m
-CONFIG_PINCTRL_SUNRISEPOINT=m
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_PINCTRL_CHERRYVIEW=y
+CONFIG_PINCTRL_INTEL=y
+CONFIG_PINCTRL_BROXTON=y
+CONFIG_PINCTRL_SUNRISEPOINT=y
 CONFIG_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
 CONFIG_OF_GPIO=y
 CONFIG_GPIO_ACPI=y
 CONFIG_GPIOLIB_IRQCHIP=y
@@ -3777,7 +3907,8 @@ CONFIG_GPIO_SYSFS=y
 # CONFIG_GPIO_GENERIC_PLATFORM is not set
 # CONFIG_GPIO_GRGPIO is not set
 CONFIG_GPIO_ICH=m
-CONFIG_GPIO_LYNXPOINT=m
+CONFIG_GPIO_LYNXPOINT=y
+# CONFIG_GPIO_MOCKUP is not set
 # CONFIG_GPIO_SYSCON is not set
 # CONFIG_GPIO_VX855 is not set
 # CONFIG_GPIO_XILINX is not set
@@ -3786,11 +3917,15 @@ CONFIG_GPIO_LYNXPOINT=m
 #
 # Port-mapped I/O GPIO drivers
 #
+# CONFIG_GPIO_104_DIO_48E is not set
 # CONFIG_GPIO_104_IDIO_16 is not set
+# CONFIG_GPIO_104_IDI_48 is not set
 # CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_GPIO_MM is not set
 # CONFIG_GPIO_IT87 is not set
 CONFIG_GPIO_SCH=m
 CONFIG_GPIO_SCH311X=m
+# CONFIG_GPIO_WS16C48 is not set
 
 #
 # I2C GPIO expanders
@@ -3802,6 +3937,8 @@ CONFIG_GPIO_SCH311X=m
 # CONFIG_GPIO_PCA953X is not set
 # CONFIG_GPIO_PCF857X is not set
 # CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# CONFIG_GPIO_TS4900 is not set
 
 #
 # MFD GPIO expanders
@@ -3810,13 +3947,14 @@ CONFIG_GPIO_SCH311X=m
 CONFIG_GPIO_CRYSTAL_COVE=y
 CONFIG_GPIO_CS5535=y
 # CONFIG_GPIO_LP3943 is not set
+# CONFIG_GPIO_TPS65218 is not set
 # CONFIG_GPIO_UCB1400 is not set
+CONFIG_GPIO_WHISKEY_COVE=y
 
 #
 # PCI GPIO expanders
 #
 CONFIG_GPIO_AMD8111=m
-# CONFIG_GPIO_INTEL_MID is not set
 # CONFIG_GPIO_ML_IOH is not set
 # CONFIG_GPIO_PCH is not set
 # CONFIG_GPIO_RDC321X is not set
@@ -3828,6 +3966,7 @@ CONFIG_GPIO_AMD8111=m
 # CONFIG_GPIO_74X164 is not set
 # CONFIG_GPIO_MAX7301 is not set
 # CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_PISOSR is not set
 
 #
 # SPI or I2C GPIO expanders
@@ -3839,6 +3978,16 @@ CONFIG_GPIO_AMD8111=m
 #
 CONFIG_GPIO_VIPERBOARD=m
 # CONFIG_W1 is not set
+CONFIG_POWER_AVS=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_RESTART is not set
+# CONFIG_POWER_RESET_SYSCON is not set
+# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+CONFIG_REBOOT_MODE=m
+CONFIG_SYSCON_REBOOT_MODE=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 CONFIG_PDA_POWER=m
@@ -3867,14 +4016,6 @@ CONFIG_CHARGER_BQ24735=m
 # CONFIG_BATTERY_GAUGE_LTC2941 is not set
 # CONFIG_BATTERY_RT5033 is not set
 # CONFIG_CHARGER_RT9455 is not set
-CONFIG_POWER_RESET=y
-CONFIG_POWER_RESET_GPIO=y
-# CONFIG_POWER_RESET_GPIO_RESTART is not set
-# CONFIG_POWER_RESET_LTC2952 is not set
-# CONFIG_POWER_RESET_RESTART is not set
-# CONFIG_POWER_RESET_SYSCON is not set
-# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
-CONFIG_POWER_AVS=y
 CONFIG_HWMON=y
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -3916,6 +4057,7 @@ CONFIG_SENSORS_F71882FG=m
 CONFIG_SENSORS_F75375S=m
 CONFIG_SENSORS_MC13783_ADC=m
 CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_FTSTEUTATES=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
 CONFIG_SENSORS_G760A=m
@@ -3932,6 +4074,7 @@ CONFIG_SENSORS_JC42=m
 CONFIG_SENSORS_POWR1220=m
 CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LTC2945=m
+CONFIG_SENSORS_LTC2990=m
 CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4222=m
@@ -3943,12 +4086,12 @@ CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
 CONFIG_SENSORS_MAX1668=m
 CONFIG_SENSORS_MAX197=m
+CONFIG_SENSORS_MAX31722=m
 CONFIG_SENSORS_MAX6639=m
 CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
 CONFIG_SENSORS_MAX6697=m
 CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_HTU21=m
 CONFIG_SENSORS_MCP3021=m
 CONFIG_SENSORS_ADCXX=m
 CONFIG_SENSORS_LM63=m
@@ -3980,6 +4123,7 @@ CONFIG_SENSORS_PMBUS=m
 CONFIG_SENSORS_ADM1275=m
 CONFIG_SENSORS_LM25066=m
 CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_LTC3815=m
 CONFIG_SENSORS_MAX16064=m
 CONFIG_SENSORS_MAX20751=m
 CONFIG_SENSORS_MAX34440=m
@@ -3991,6 +4135,7 @@ CONFIG_SENSORS_ZL6100=m
 CONFIG_SENSORS_PWM_FAN=m
 CONFIG_SENSORS_SHT15=m
 CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
 CONFIG_SENSORS_SHTC1=m
 CONFIG_SENSORS_SIS5595=m
 CONFIG_SENSORS_DME1737=m
@@ -4011,6 +4156,7 @@ CONFIG_SENSORS_ADS7871=m
 CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_INA209=m
 CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_INA3221=m
 CONFIG_SENSORS_TC74=m
 CONFIG_SENSORS_THMC50=m
 CONFIG_SENSORS_TMP102=m
@@ -4052,24 +4198,35 @@ CONFIG_THERMAL_GOV_USER_SPACE=y
 # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
 # CONFIG_CPU_THERMAL is not set
 # CONFIG_THERMAL_EMULATION is not set
+# CONFIG_QORIQ_THERMAL is not set
 CONFIG_INTEL_POWERCLAMP=m
 CONFIG_X86_PKG_TEMP_THERMAL=m
 CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
 CONFIG_INTEL_SOC_DTS_THERMAL=m
+
+#
+# ACPI INT340X thermal drivers
+#
 CONFIG_INT340X_THERMAL=m
 CONFIG_ACPI_THERMAL_REL=m
+CONFIG_INT3406_THERMAL=m
+CONFIG_INTEL_BXT_PMIC_THERMAL=m
 CONFIG_INTEL_PCH_THERMAL=m
 CONFIG_QCOM_SPMI_TEMP_ALARM=m
+CONFIG_GENERIC_ADC_THERMAL=m
 CONFIG_WATCHDOG=y
 CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_SYSFS=y
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
 CONFIG_GPIO_WATCHDOG=m
+CONFIG_WDAT_WDT=m
 CONFIG_XILINX_WATCHDOG=m
+CONFIG_ZIIRAVE_WATCHDOG=m
 # CONFIG_CADENCE_WATCHDOG is not set
 CONFIG_DW_WATCHDOG=m
 # CONFIG_RN5T618_WATCHDOG is not set
@@ -4079,6 +4236,7 @@ CONFIG_ACQUIRE_WDT=m
 CONFIG_ADVANTECH_WDT=m
 CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
+CONFIG_EBC_C384_WDT=m
 CONFIG_F71808E_WDT=m
 CONFIG_SP5100_TCO=m
 CONFIG_GEODE_WDT=m
@@ -4110,7 +4268,8 @@ CONFIG_W83877F_WDT=m
 CONFIG_W83977F_WDT=m
 CONFIG_MACHZ_WDT=m
 CONFIG_SBC_EPX_C3_WATCHDOG=m
-CONFIG_BCM7038_WDT=m
+CONFIG_INTEL_MEI_WDT=m
+CONFIG_NI903X_WDT=m
 CONFIG_MEN_A21_WDT=m
 
 #
@@ -4130,6 +4289,15 @@ CONFIG_WDTPCI=m
 # USB-based Watchdog Cards
 #
 CONFIG_USBPCWATCHDOG=m
+
+#
+# Watchdog Pretimeout Governors
+#
+CONFIG_WATCHDOG_PRETIMEOUT_GOV=y
+# CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP is not set
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC=y
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=m
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=y
 CONFIG_SSB_POSSIBLE=y
 
 #
@@ -4145,7 +4313,6 @@ CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
 CONFIG_SSB_PCMCIAHOST=y
 CONFIG_SSB_SDIOHOST_POSSIBLE=y
 CONFIG_SSB_SDIOHOST=y
-CONFIG_SSB_HOST_SOC=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
@@ -4170,6 +4337,7 @@ CONFIG_BCMA_DRIVER_GPIO=y
 #
 CONFIG_MFD_CORE=y
 CONFIG_MFD_CS5535=m
+# CONFIG_MFD_ACT8945A is not set
 # CONFIG_MFD_AS3711 is not set
 # CONFIG_MFD_AS3722 is not set
 # CONFIG_PMIC_ADP5520 is not set
@@ -4177,7 +4345,7 @@ CONFIG_MFD_CS5535=m
 # CONFIG_MFD_ATMEL_FLEXCOM is not set
 # CONFIG_MFD_ATMEL_HLCDC is not set
 CONFIG_MFD_BCM590XX=m
-# CONFIG_MFD_AXP20X is not set
+# CONFIG_MFD_AXP20X_I2C is not set
 CONFIG_MFD_CROS_EC=m
 CONFIG_MFD_CROS_EC_I2C=m
 CONFIG_MFD_CROS_EC_SPI=m
@@ -4189,6 +4357,7 @@ CONFIG_MFD_CROS_EC_SPI=m
 # CONFIG_MFD_DA9063 is not set
 # CONFIG_MFD_DA9150 is not set
 # CONFIG_MFD_DLN2 is not set
+# CONFIG_MFD_EXYNOS_LPASS is not set
 CONFIG_MFD_MC13XXX=m
 # CONFIG_MFD_MC13XXX_SPI is not set
 CONFIG_MFD_MC13XXX_I2C=m
@@ -4208,6 +4377,7 @@ CONFIG_MFD_INTEL_LPSS_PCI=m
 # CONFIG_MFD_88PM805 is not set
 # CONFIG_MFD_88PM860X is not set
 # CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77620 is not set
 # CONFIG_MFD_MAX77686 is not set
 # CONFIG_MFD_MAX77693 is not set
 # CONFIG_MFD_MAX77843 is not set
@@ -4248,12 +4418,13 @@ CONFIG_MFD_LP3943=m
 # CONFIG_TPS6105X is not set
 CONFIG_TPS65010=m
 CONFIG_TPS6507X=m
+# CONFIG_MFD_TPS65086 is not set
 # CONFIG_MFD_TPS65090 is not set
 CONFIG_MFD_TPS65217=m
+# CONFIG_MFD_TI_LP873X is not set
 CONFIG_MFD_TPS65218=m
 # CONFIG_MFD_TPS6586X is not set
 # CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912 is not set
 # CONFIG_MFD_TPS65912_I2C is not set
 # CONFIG_MFD_TPS65912_SPI is not set
 # CONFIG_MFD_TPS80031 is not set
@@ -4268,6 +4439,7 @@ CONFIG_MFD_VX855=m
 CONFIG_MFD_ARIZONA=y
 CONFIG_MFD_ARIZONA_I2C=m
 # CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_CS47L24 is not set
 CONFIG_MFD_WM5102=y
 CONFIG_MFD_WM5110=y
 # CONFIG_MFD_WM8997 is not set
@@ -4289,12 +4461,15 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
 CONFIG_MEDIA_RADIO_SUPPORT=y
 CONFIG_MEDIA_SDR_SUPPORT=y
 CONFIG_MEDIA_RC_SUPPORT=y
+CONFIG_MEDIA_CEC_EDID=y
 CONFIG_MEDIA_CONTROLLER=y
+# CONFIG_MEDIA_CONTROLLER_DVB is not set
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_SUBDEV_API=y
 CONFIG_VIDEO_V4L2=m
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_PCI_SKELETON is not set
 CONFIG_VIDEO_TUNER=m
 CONFIG_V4L2_MEM2MEM_DEV=m
 # CONFIG_V4L2_FLASH_LED_CLASS is not set
@@ -4450,6 +4625,7 @@ CONFIG_VIDEO_TM6000_DVB=m
 #
 CONFIG_DVB_USB=m
 # CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_DIB3000MC=m
 CONFIG_DVB_USB_A800=m
 CONFIG_DVB_USB_DIBUSB_MB=m
 CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
@@ -4517,7 +4693,9 @@ CONFIG_MEDIA_PCI_SUPPORT=y
 #
 CONFIG_VIDEO_MEYE=m
 CONFIG_VIDEO_SOLO6X10=m
+CONFIG_VIDEO_TW5864=m
 CONFIG_VIDEO_TW68=m
+CONFIG_VIDEO_TW686X=m
 CONFIG_VIDEO_ZORAN=m
 CONFIG_VIDEO_ZORAN_DC30=m
 CONFIG_VIDEO_ZORAN_ZR36060=m
@@ -4651,7 +4829,7 @@ CONFIG_SMS_SIANO_RC=y
 # CONFIG_SMS_SIANO_DEBUGFS is not set
 
 #
-# Media ancillary drivers (tuners, sensors, i2c, frontends)
+# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
 #
 CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
 CONFIG_MEDIA_ATTACH=y
@@ -4666,6 +4844,7 @@ CONFIG_VIDEO_TDA9840=m
 CONFIG_VIDEO_TEA6415C=m
 CONFIG_VIDEO_TEA6420=m
 CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS3308=m
 CONFIG_VIDEO_CS5345=m
 CONFIG_VIDEO_CS53L32A=m
 CONFIG_VIDEO_UDA1342=m
@@ -4792,6 +4971,8 @@ CONFIG_DVB_M88DS3103=m
 CONFIG_DVB_DRXK=m
 CONFIG_DVB_TDA18271C2DD=m
 CONFIG_DVB_SI2165=m
+CONFIG_DVB_MN88472=m
+CONFIG_DVB_MN88473=m
 
 #
 # DVB-S (satellite) frontends
@@ -4852,6 +5033,7 @@ CONFIG_DVB_RTL2832=m
 CONFIG_DVB_RTL2832_SDR=m
 CONFIG_DVB_SI2168=m
 CONFIG_DVB_AS102_FE=m
+CONFIG_DVB_GP8PSK_FE=m
 
 #
 # DVB-C (cable) frontends
@@ -4917,6 +5099,7 @@ CONFIG_DVB_M88RS2000=m
 CONFIG_DVB_AF9033=m
 CONFIG_DVB_HORUS3A=m
 CONFIG_DVB_ASCOT2E=m
+CONFIG_DVB_HELENE=m
 
 #
 # Tools to develop new frontends
@@ -4943,6 +5126,7 @@ CONFIG_VGA_ARB_MAX_GPUS=16
 CONFIG_VGA_SWITCHEROO=y
 CONFIG_DRM=m
 CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_DP_AUX_CHARDEV=y
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_KMS_FB_HELPER=y
 CONFIG_DRM_FBDEV_EMULATION=y
@@ -4952,28 +5136,29 @@ CONFIG_DRM_TTM=m
 #
 # I2C encoder or helper chips
 #
-CONFIG_DRM_I2C_ADV7511=m
 CONFIG_DRM_I2C_CH7006=m
 CONFIG_DRM_I2C_SIL164=m
 CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
-# CONFIG_DRM_RADEON_USERPTR is not set
-# CONFIG_DRM_RADEON_UMS is not set
+CONFIG_DRM_RADEON_USERPTR=y
 CONFIG_DRM_AMDGPU=m
-# CONFIG_DRM_AMDGPU_CIK is not set
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_CIK=y
 CONFIG_DRM_AMDGPU_USERPTR=y
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+
+#
+# ACP (Audio CoProcessor) Configuration
+#
+CONFIG_DRM_AMD_ACP=y
 CONFIG_DRM_NOUVEAU=m
 CONFIG_NOUVEAU_DEBUG=5
 CONFIG_NOUVEAU_DEBUG_DEFAULT=3
 CONFIG_DRM_NOUVEAU_BACKLIGHT=y
 CONFIG_DRM_I915=m
 # CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
-CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_I915_USERPTR=y
+CONFIG_DRM_I915_GVT=y
 CONFIG_DRM_VGEM=m
 CONFIG_DRM_VMWGFX=m
 CONFIG_DRM_VMWGFX_FBCON=y
@@ -4993,17 +5178,28 @@ CONFIG_DRM_PANEL=y
 # Display Panels
 #
 # CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
 # CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
 # CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
 # CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
 # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
 CONFIG_DRM_BRIDGE=y
 
 #
 # Display Interface Bridges
 #
+CONFIG_DRM_ANALOGIX_ANX78XX=m
+# CONFIG_DRM_DUMB_VGA_DAC is not set
 # CONFIG_DRM_NXP_PTN3460 is not set
 # CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+CONFIG_DRM_I2C_ADV7511=m
+# CONFIG_DRM_I2C_ADV7533 is not set
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_LEGACY is not set
 
 #
 # Frame buffer Devices
@@ -5011,6 +5207,7 @@ CONFIG_DRM_BRIDGE=y
 CONFIG_FB=y
 CONFIG_FIRMWARE_EDID=y
 CONFIG_FB_CMDLINE=y
+CONFIG_FB_NOTIFY=y
 CONFIG_FB_DDC=m
 CONFIG_FB_BOOT_VESA_SUPPORT=y
 CONFIG_FB_CFB_FILLRECT=y
@@ -5142,11 +5339,14 @@ CONFIG_SOUND_OSS_CORE=y
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
 CONFIG_SND_DMAENGINE_PCM=m
 CONFIG_SND_HWDEP=m
 CONFIG_SND_RAWMIDI=m
 CONFIG_SND_COMPRESS_OFFLOAD=m
 CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -5352,7 +5552,6 @@ CONFIG_SND_FIREWIRE_LIB=m
 CONFIG_SND_DICE=m
 CONFIG_SND_OXFW=m
 CONFIG_SND_ISIGHT=m
-CONFIG_SND_SCS1X=m
 CONFIG_SND_FIREWORKS=m
 CONFIG_SND_BEBOB=m
 CONFIG_SND_FIREWIRE_DIGI00X=m
@@ -5365,8 +5564,10 @@ CONFIG_SND_SOC_AC97_BUS=y
 CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
 CONFIG_SND_SOC_COMPRESS=y
 CONFIG_SND_SOC_TOPOLOGY=y
+CONFIG_SND_SOC_AMD_ACP=m
 # CONFIG_SND_ATMEL_SOC is not set
 CONFIG_SND_DESIGNWARE_I2S=m
+CONFIG_SND_DESIGNWARE_PCM=m
 
 #
 # SoC Audio for Freescale CPUs
@@ -5381,28 +5582,29 @@ CONFIG_SND_DESIGNWARE_I2S=m
 # CONFIG_SND_SOC_FSL_SPDIF is not set
 # CONFIG_SND_SOC_FSL_ESAI is not set
 # CONFIG_SND_SOC_IMX_AUDMUX is not set
+# CONFIG_SND_SOC_IMG is not set
 CONFIG_SND_SST_MFLD_PLATFORM=m
 CONFIG_SND_SST_IPC=m
 CONFIG_SND_SST_IPC_ACPI=m
 CONFIG_SND_SOC_INTEL_SST=m
+CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
 CONFIG_SND_SOC_INTEL_SST_ACPI=m
+CONFIG_SND_SOC_INTEL_SST_MATCH=m
 CONFIG_SND_SOC_INTEL_HASWELL=m
-CONFIG_SND_SOC_INTEL_BAYTRAIL=m
 CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
 CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
 CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
 CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
 CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
 CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
 CONFIG_SND_SOC_INTEL_SKYLAKE=m
 CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-
-#
-# Allwinner SoC Audio support
-#
-# CONFIG_SND_SUN4I_CODEC is not set
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
 # CONFIG_SND_SOC_XTFPGA_I2S is not set
 CONFIG_SND_SOC_I2C_AND_SPI=m
 
@@ -5411,13 +5613,16 @@ CONFIG_SND_SOC_I2C_AND_SPI=m
 #
 CONFIG_SND_SOC_AC97_CODEC=m
 # CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
 # CONFIG_SND_SOC_AK4104 is not set
 # CONFIG_SND_SOC_AK4554 is not set
 # CONFIG_SND_SOC_AK4613 is not set
 # CONFIG_SND_SOC_AK4642 is not set
 # CONFIG_SND_SOC_AK5386 is not set
 # CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_BT_SCO is not set
 # CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
 # CONFIG_SND_SOC_CS42L51_I2C is not set
 # CONFIG_SND_SOC_CS42L52 is not set
 # CONFIG_SND_SOC_CS42L56 is not set
@@ -5428,35 +5633,52 @@ CONFIG_SND_SOC_AC97_CODEC=m
 # CONFIG_SND_SOC_CS4271_SPI is not set
 # CONFIG_SND_SOC_CS42XX8_I2C is not set
 # CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DA7219=m
 CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_HDMI_CODEC=m
 # CONFIG_SND_SOC_ES8328 is not set
 # CONFIG_SND_SOC_GTM601 is not set
+CONFIG_SND_SOC_HDAC_HDMI=m
+# CONFIG_SND_SOC_INNO_RK3036 is not set
 CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
 # CONFIG_SND_SOC_PCM1681 is not set
-# CONFIG_SND_SOC_PCM1792A is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
 # CONFIG_SND_SOC_PCM512x_I2C is not set
 # CONFIG_SND_SOC_PCM512x_SPI is not set
 CONFIG_SND_SOC_RL6231=m
 CONFIG_SND_SOC_RL6347A=m
 CONFIG_SND_SOC_RT286=m
+CONFIG_SND_SOC_RT298=m
+# CONFIG_SND_SOC_RT5616 is not set
 # CONFIG_SND_SOC_RT5631 is not set
 CONFIG_SND_SOC_RT5640=m
 CONFIG_SND_SOC_RT5645=m
+CONFIG_SND_SOC_RT5651=m
+CONFIG_SND_SOC_RT5663=m
 CONFIG_SND_SOC_RT5670=m
-# CONFIG_SND_SOC_RT5677_SPI is not set
+CONFIG_SND_SOC_RT5677=m
+CONFIG_SND_SOC_RT5677_SPI=m
 # CONFIG_SND_SOC_SGTL5000 is not set
 CONFIG_SND_SOC_SI476X=m
 # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
 CONFIG_SND_SOC_SPDIF=m
 # CONFIG_SND_SOC_SSM2602_SPI is not set
 # CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
+CONFIG_SND_SOC_SSM4567=m
 # CONFIG_SND_SOC_STA32X is not set
 # CONFIG_SND_SOC_STA350 is not set
 # CONFIG_SND_SOC_STI_SAS is not set
 # CONFIG_SND_SOC_TAS2552 is not set
 # CONFIG_SND_SOC_TAS5086 is not set
 # CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
 # CONFIG_SND_SOC_TFA9879 is not set
 # CONFIG_SND_SOC_TLV320AIC23_I2C is not set
 # CONFIG_SND_SOC_TLV320AIC23_SPI is not set
@@ -5478,10 +5700,17 @@ CONFIG_SND_SOC_TS3A227E=m
 # CONFIG_SND_SOC_WM8804_I2C is not set
 # CONFIG_SND_SOC_WM8804_SPI is not set
 # CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8960 is not set
 # CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
 # CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8825=m
 # CONFIG_SND_SOC_TPA6130A2 is not set
+CONFIG_SND_SIMPLE_CARD_UTILS=m
 CONFIG_SND_SIMPLE_CARD=m
+# CONFIG_SND_SIMPLE_SCU_CARD is not set
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
 
@@ -5502,6 +5731,7 @@ CONFIG_HID_ACRUX=m
 CONFIG_HID_ACRUX_FF=y
 CONFIG_HID_APPLE=m
 CONFIG_HID_APPLEIR=m
+CONFIG_HID_ASUS=m
 CONFIG_HID_AUREAL=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_BETOP_FF=m
@@ -5509,6 +5739,7 @@ CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
 CONFIG_HID_CORSAIR=m
 CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CMEDIA=m
 CONFIG_HID_CP2112=m
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
@@ -5531,6 +5762,7 @@ CONFIG_HID_ICADE=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
 CONFIG_HID_LCPOWER=m
+CONFIG_HID_LED=m
 CONFIG_HID_LENOVO=m
 CONFIG_HID_LOGITECH=m
 CONFIG_HID_LOGITECH_DJ=m
@@ -5584,6 +5816,7 @@ CONFIG_ZEROPLUS_FF=y
 CONFIG_HID_ZYDACRON=m
 CONFIG_HID_SENSOR_HUB=m
 # CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
+CONFIG_HID_ALPS=m
 
 #
 # USB HID support
@@ -5610,7 +5843,7 @@ CONFIG_USB_DEFAULT_PERSIST=y
 CONFIG_USB_DYNAMIC_MINORS=y
 # CONFIG_USB_OTG is not set
 # CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_ULPI_BUS is not set
+CONFIG_USB_LEDS_TRIGGER_USBPORT=m
 CONFIG_USB_MON=m
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
@@ -5689,12 +5922,12 @@ CONFIG_USB_MDC800=m
 CONFIG_USB_MICROTEK=m
 CONFIG_USBIP_CORE=m
 CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
 CONFIG_USBIP_HOST=m
 # CONFIG_USBIP_DEBUG is not set
 CONFIG_USB_MUSB_HDRC=m
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
+CONFIG_USB_MUSB_HOST=y
 
 #
 # Platform Glue Layer
@@ -5778,7 +6011,6 @@ CONFIG_USB_SEVSEG=m
 CONFIG_USB_RIO500=m
 CONFIG_USB_LEGOTOWER=m
 CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
 CONFIG_USB_IDMOUSE=m
@@ -5795,8 +6027,10 @@ CONFIG_USB_ISIGHTFW=m
 CONFIG_USB_YUREX=m
 CONFIG_USB_EZUSB_FX2=m
 CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_HSIC_USB4604=m
 CONFIG_USB_LINK_LAYER_TEST=m
 CONFIG_USB_CHAOSKEY=m
+CONFIG_UCSI=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -5812,89 +6046,17 @@ CONFIG_NOP_USB_XCEIV=m
 CONFIG_TAHVO_USB=m
 # CONFIG_TAHVO_USB_HOST_BY_DEFAULT is not set
 CONFIG_USB_ISP1301=m
-CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-
-#
-# USB Peripheral Controller
-#
-CONFIG_USB_FUSB300=m
-# CONFIG_USB_FOTG210_UDC is not set
-CONFIG_USB_GR_UDC=m
-CONFIG_USB_R8A66597=m
-CONFIG_USB_PXA27X=m
-CONFIG_USB_MV_UDC=m
-CONFIG_USB_MV_U3D=m
-CONFIG_USB_M66592=m
-CONFIG_USB_BDC_UDC=m
-
-#
-# Platform Support
-#
-CONFIG_USB_BDC_PCI=m
-CONFIG_USB_AMD5536UDC=m
-CONFIG_USB_NET2272=m
-CONFIG_USB_NET2272_DMA=y
-CONFIG_USB_NET2280=m
-CONFIG_USB_GOKU=m
-CONFIG_USB_EG20T=m
-CONFIG_USB_GADGET_XILINX=m
-CONFIG_USB_DUMMY_HCD=m
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC2=m
-CONFIG_USB_F_UVC=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-# CONFIG_USB_CONFIGFS is not set
-# CONFIG_USB_ZERO is not set
-CONFIG_USB_AUDIO=m
-# CONFIG_GADGET_UAC1 is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_GADGET_TARGET=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_G_NOKIA is not set
-# CONFIG_USB_G_ACM_MS is not set
-# CONFIG_USB_G_MULTI is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-# CONFIG_USB_G_DBGP_PRINTK is not set
-CONFIG_USB_G_DBGP_SERIAL=y
-CONFIG_USB_G_WEBCAM=m
+# CONFIG_USB_GADGET is not set
 CONFIG_USB_LED_TRIG=y
+# CONFIG_USB_ULPI_BUS is not set
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
 CONFIG_UWB_I1480U=m
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
+CONFIG_PWRSEQ_EMMC=m
+CONFIG_PWRSEQ_SIMPLE=m
 
 #
 # MMC/SD/SDIO Card Drivers
@@ -5963,6 +6125,7 @@ CONFIG_LEDS_PCA9532=m
 # CONFIG_LEDS_PCA9532_GPIO is not set
 CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP3952=m
 # CONFIG_LEDS_LP5521 is not set
 # CONFIG_LEDS_LP5523 is not set
 # CONFIG_LEDS_LP5562 is not set
@@ -5983,6 +6146,8 @@ CONFIG_LEDS_TLC591XX=m
 CONFIG_LEDS_LM355x=m
 CONFIG_LEDS_OT200=m
 CONFIG_LEDS_KTD2692=m
+# CONFIG_LEDS_IS31FL319X is not set
+# CONFIG_LEDS_IS31FL32XX is not set
 
 #
 # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
@@ -5995,6 +6160,8 @@ CONFIG_LEDS_BLINKM=m
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_MTD=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
 CONFIG_LEDS_TRIGGER_CPU=y
@@ -6006,6 +6173,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
 #
 CONFIG_LEDS_TRIGGER_TRANSIENT=m
 CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_PANIC=y
 CONFIG_ACCESSIBILITY=y
 CONFIG_A11Y_BRAILLE_CONSOLE=y
 CONFIG_INFINIBAND=m
@@ -6014,11 +6182,13 @@ CONFIG_INFINIBAND_USER_ACCESS=m
 CONFIG_INFINIBAND_USER_MEM=y
 CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
 CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
 CONFIG_INFINIBAND_MTHCA=m
 CONFIG_INFINIBAND_MTHCA_DEBUG=y
 CONFIG_INFINIBAND_CXGB3=m
 # CONFIG_INFINIBAND_CXGB3_DEBUG is not set
 CONFIG_INFINIBAND_CXGB4=m
+CONFIG_INFINIBAND_I40IW=m
 CONFIG_MLX4_INFINIBAND=m
 CONFIG_MLX5_INFINIBAND=m
 CONFIG_INFINIBAND_NES=m
@@ -6033,6 +6203,7 @@ CONFIG_INFINIBAND_SRP=m
 CONFIG_INFINIBAND_SRPT=m
 CONFIG_INFINIBAND_ISER=m
 CONFIG_INFINIBAND_ISERT=m
+CONFIG_RDMA_RXE=m
 CONFIG_EDAC_ATOMIC_SCRUB=y
 CONFIG_EDAC_SUPPORT=y
 CONFIG_EDAC=y
@@ -6059,6 +6230,7 @@ CONFIG_EDAC_I5000=m
 CONFIG_EDAC_I5100=m
 CONFIG_EDAC_I7300=m
 CONFIG_RTC_LIB=y
+CONFIG_RTC_MC146818_LIB=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_HCTOSYS=y
 CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
@@ -6081,32 +6253,31 @@ CONFIG_RTC_DRV_TEST=m
 # CONFIG_RTC_DRV_ABB5ZES3 is not set
 CONFIG_RTC_DRV_ABX80X=m
 CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1307_HWMON=y
+# CONFIG_RTC_DRV_DS1307_CENTURY is not set
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1374_WDT=y
 CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS3232=m
 CONFIG_RTC_DRV_HYM8563=m
 CONFIG_RTC_DRV_MAX6900=m
 CONFIG_RTC_DRV_RK808=m
 CONFIG_RTC_DRV_RS5C372=m
 CONFIG_RTC_DRV_ISL1208=m
 CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_ISL12057=m
 CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF2127=m
 CONFIG_RTC_DRV_PCF8523=m
-CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF8583=m
 CONFIG_RTC_DRV_M41T80=m
 CONFIG_RTC_DRV_M41T80_WDT=y
 CONFIG_RTC_DRV_BQ32K=m
 CONFIG_RTC_DRV_S35390A=m
 CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8010=m
 CONFIG_RTC_DRV_RX8581=m
 CONFIG_RTC_DRV_RX8025=m
 CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3029C2=m
 # CONFIG_RTC_DRV_RV8803 is not set
 
 #
@@ -6114,17 +6285,28 @@ CONFIG_RTC_DRV_RV3029C2=m
 #
 # CONFIG_RTC_DRV_M41T93 is not set
 # CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
 # CONFIG_RTC_DRV_DS1305 is not set
 # CONFIG_RTC_DRV_DS1343 is not set
 # CONFIG_RTC_DRV_DS1347 is not set
 # CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
+CONFIG_RTC_DRV_MAX6916=m
 # CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
 # CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
 # CONFIG_RTC_DRV_PCF2123 is not set
-# CONFIG_RTC_DRV_RX4581 is not set
 # CONFIG_RTC_DRV_MCP795 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_RV3029_HWMON=y
 
 #
 # Platform RTC drivers
@@ -6177,9 +6359,11 @@ CONFIG_DMA_OF=y
 CONFIG_FSL_EDMA=m
 CONFIG_INTEL_IDMA64=m
 CONFIG_PCH_DMA=m
-CONFIG_DW_DMAC_CORE=m
-CONFIG_DW_DMAC=m
-CONFIG_DW_DMAC_PCI=m
+# CONFIG_QCOM_HIDMA_MGMT is not set
+# CONFIG_QCOM_HIDMA is not set
+CONFIG_DW_DMAC_CORE=y
+CONFIG_DW_DMAC=y
+CONFIG_DW_DMAC_PCI=y
 CONFIG_HSU_DMA=y
 
 #
@@ -6187,12 +6371,19 @@ CONFIG_HSU_DMA=y
 #
 CONFIG_ASYNC_TX_DMA=y
 # CONFIG_DMATEST is not set
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_SW_SYNC is not set
 CONFIG_AUXDISPLAY=y
 CONFIG_KS0108=m
 CONFIG_KS0108_PORT=0x378
 CONFIG_KS0108_DELAY=2
 CONFIG_CFAG12864B=m
 CONFIG_CFAG12864B_RATE=20
+# CONFIG_IMG_ASCII_LCD is not set
 CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV_GENIRQ=m
@@ -6206,10 +6397,12 @@ CONFIG_UIO_PRUSS=m
 CONFIG_VFIO_IOMMU_TYPE1=m
 CONFIG_VFIO_VIRQFD=m
 CONFIG_VFIO=m
+# CONFIG_VFIO_NOIOMMU is not set
 CONFIG_VFIO_PCI=m
 CONFIG_VFIO_PCI_VGA=y
 CONFIG_VFIO_PCI_MMAP=y
 CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI_IGD=y
 CONFIG_IRQ_BYPASS_MANAGER=m
 CONFIG_VIRT_DRIVERS=y
 CONFIG_VIRTIO=m
@@ -6308,8 +6501,10 @@ CONFIG_COMEDI_ADL_PCI8164=m
 CONFIG_COMEDI_ADL_PCI9111=m
 CONFIG_COMEDI_ADL_PCI9118=m
 CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1720=m
 CONFIG_COMEDI_ADV_PCI1723=m
 CONFIG_COMEDI_ADV_PCI1724=m
+CONFIG_COMEDI_ADV_PCI1760=m
 CONFIG_COMEDI_ADV_PCI_DIO=m
 CONFIG_COMEDI_AMPLC_DIO200_PCI=m
 CONFIG_COMEDI_AMPLC_PC236_PCI=m
@@ -6373,7 +6568,6 @@ CONFIG_COMEDI_NI_TIO=m
 CONFIG_FB_OLPC_DCON=m
 CONFIG_FB_OLPC_DCON_1=y
 CONFIG_FB_OLPC_DCON_1_5=y
-# CONFIG_PANEL is not set
 CONFIG_RTL8192U=m
 CONFIG_RTLLIB=m
 CONFIG_RTLLIB_CRYPTO_CCMP=m
@@ -6383,9 +6577,6 @@ CONFIG_RTL8192E=m
 CONFIG_R8712U=m
 CONFIG_R8188EU=m
 CONFIG_88EU_AP_MODE=y
-CONFIG_R8723AU=m
-CONFIG_8723AU_AP_MODE=y
-CONFIG_8723AU_BT_COEXIST=y
 CONFIG_RTS5208=m
 CONFIG_VT6655=m
 CONFIG_VT6656=m
@@ -6399,11 +6590,8 @@ CONFIG_VT6656=m
 #
 # CONFIG_ADIS16201 is not set
 # CONFIG_ADIS16203 is not set
-# CONFIG_ADIS16204 is not set
 # CONFIG_ADIS16209 is not set
-# CONFIG_ADIS16220 is not set
 # CONFIG_ADIS16240 is not set
-# CONFIG_LIS3L02DQ is not set
 # CONFIG_SCA3000 is not set
 
 #
@@ -6452,13 +6640,6 @@ CONFIG_VT6656=m
 # CONFIG_TSL2x7x is not set
 
 #
-# Magnetometer sensors
-#
-CONFIG_SENSORS_HMC5843=m
-CONFIG_SENSORS_HMC5843_I2C=m
-CONFIG_SENSORS_HMC5843_SPI=m
-
-#
 # Active energy metering IC
 #
 # CONFIG_ADE7753 is not set
@@ -6477,8 +6658,6 @@ CONFIG_SENSORS_HMC5843_SPI=m
 #
 # Triggers - standalone
 #
-# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set
-# CONFIG_IIO_SIMPLE_DUMMY is not set
 # CONFIG_FB_SM750 is not set
 CONFIG_FB_XGI=m
 
@@ -6501,12 +6680,10 @@ CONFIG_SPEAKUP_SYNTH_SOFT=m
 CONFIG_SPEAKUP_SYNTH_SPKOUT=m
 CONFIG_SPEAKUP_SYNTH_TXPRT=m
 CONFIG_SPEAKUP_SYNTH_DUMMY=m
-CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
 CONFIG_STAGING_MEDIA=y
 CONFIG_I2C_BCM2048=m
+# CONFIG_MEDIA_CEC is not set
 CONFIG_DVB_CXD2099=m
-CONFIG_DVB_MN88472=m
-CONFIG_DVB_MN88473=m
 CONFIG_LIRC_STAGING=y
 CONFIG_LIRC_BT829=m
 CONFIG_LIRC_IMON=m
@@ -6516,44 +6693,43 @@ CONFIG_LIRC_SERIAL=m
 CONFIG_LIRC_SERIAL_TRANSMITTER=y
 CONFIG_LIRC_SIR=m
 CONFIG_LIRC_ZILOG=m
-# CONFIG_STAGING_RDMA is not set
 
 #
 # Android
 #
 # CONFIG_STAGING_BOARD is not set
-CONFIG_WIMAX_GDM72XX=m
-CONFIG_WIMAX_GDM72XX_QOS=y
-CONFIG_WIMAX_GDM72XX_K_MODE=y
-CONFIG_WIMAX_GDM72XX_WIMAX2=y
-CONFIG_WIMAX_GDM72XX_USB=y
-# CONFIG_WIMAX_GDM72XX_SDIO is not set
-CONFIG_WIMAX_GDM72XX_USB_PM=y
 CONFIG_LTE_GDM724X=m
 CONFIG_FIREWIRE_SERIAL=m
 CONFIG_FWTTY_MAX_TOTAL_PORTS=64
 CONFIG_FWTTY_MAX_CARD_PORTS=32
-# CONFIG_MTD_SPINAND_MT29F is not set
-CONFIG_LUSTRE_FS=m
-CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
-# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
-CONFIG_LUSTRE_LLITE_LLOOP=m
 CONFIG_LNET=m
 CONFIG_LNET_MAX_PAYLOAD=1048576
 CONFIG_LNET_SELFTEST=m
-CONFIG_LNET_XPRT_IB=m
+CONFIG_LUSTRE_FS=m
+CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
+# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
 CONFIG_DGNC=m
-CONFIG_DGAP=m
 CONFIG_GS_FPGABOOT=m
 CONFIG_COMMON_CLK_XLNX_CLKWZRD=m
 # CONFIG_FB_TFT is not set
-# CONFIG_WILC1000_DRIVER is not set
+# CONFIG_WILC1000_SDIO is not set
+# CONFIG_WILC1000_SPI is not set
 # CONFIG_MOST is not set
+
+#
+# Old ISDN4Linux (deprecated)
+#
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_ACT2000=m
+# CONFIG_KS7010 is not set
+# CONFIG_GREYBUS is not set
 CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACER_WMI=m
 CONFIG_ACERHDF=m
 CONFIG_ALIENWARE_WMI=m
 CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_SMBIOS=m
 CONFIG_DELL_LAPTOP=m
 CONFIG_DELL_WMI=m
 CONFIG_DELL_WMI_AIO=m
@@ -6586,6 +6762,7 @@ CONFIG_EEEPC_LAPTOP=m
 CONFIG_ASUS_WMI=m
 CONFIG_ASUS_NB_WMI=m
 CONFIG_EEEPC_WMI=m
+CONFIG_ASUS_WIRELESS=m
 CONFIG_ACPI_WMI=m
 CONFIG_MSI_WMI=m
 CONFIG_TOPSTAR_LAPTOP=m
@@ -6594,7 +6771,10 @@ CONFIG_TOSHIBA_BT_RFKILL=m
 CONFIG_TOSHIBA_HAPS=m
 CONFIG_TOSHIBA_WMI=m
 CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_VBTN=m
 CONFIG_INTEL_IPS=m
+CONFIG_INTEL_PMC_CORE=y
 CONFIG_IBM_RTL=m
 CONFIG_XO1_RFKILL=m
 CONFIG_XO15_EBOOK=m
@@ -6604,16 +6784,18 @@ CONFIG_INTEL_OAKTRAIL=m
 CONFIG_SAMSUNG_Q10=m
 CONFIG_APPLE_GMUX=m
 CONFIG_INTEL_RST=m
-CONFIG_INTEL_SMARTCONNECT=y
+CONFIG_INTEL_SMARTCONNECT=m
 CONFIG_PVPANIC=m
 CONFIG_INTEL_PMC_IPC=m
 CONFIG_SURFACE_PRO3_BUTTON=m
+CONFIG_INTEL_PUNIT_IPC=m
 CONFIG_CHROME_PLATFORMS=y
 CONFIG_CHROMEOS_LAPTOP=m
 CONFIG_CHROMEOS_PSTORE=m
 CONFIG_CROS_EC_CHARDEV=m
 CONFIG_CROS_EC_LPC=m
 CONFIG_CROS_EC_PROTO=y
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
 CONFIG_CLKDEV_LOOKUP=y
 CONFIG_HAVE_CLK_PREPARE=y
 CONFIG_COMMON_CLK=y
@@ -6625,10 +6807,13 @@ CONFIG_COMMON_CLK_RK808=m
 # CONFIG_COMMON_CLK_SI5351 is not set
 # CONFIG_COMMON_CLK_SI514 is not set
 # CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
 # CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_NXP is not set
 # CONFIG_COMMON_CLK_PWM is not set
 # CONFIG_COMMON_CLK_PXA is not set
-# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_PIC32 is not set
 
 #
 # Hardware Spinlock drivers
@@ -6674,6 +6859,10 @@ CONFIG_STE_MODEM_RPROC=m
 #
 # SOC (System On Chip) specific Drivers
 #
+
+#
+# Broadcom SoC drivers
+#
 # CONFIG_SUNXI_SRAM is not set
 # CONFIG_SOC_TI is not set
 CONFIG_PM_DEVFREQ=y
@@ -6685,6 +6874,7 @@ CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
 CONFIG_DEVFREQ_GOV_PERFORMANCE=m
 CONFIG_DEVFREQ_GOV_POWERSAVE=m
 CONFIG_DEVFREQ_GOV_USERSPACE=m
+CONFIG_DEVFREQ_GOV_PASSIVE=m
 
 #
 # DEVFREQ Drivers
@@ -6698,6 +6888,8 @@ CONFIG_EXTCON=m
 # CONFIG_EXTCON_ADC_JACK is not set
 # CONFIG_EXTCON_ARIZONA is not set
 CONFIG_EXTCON_GPIO=m
+# CONFIG_EXTCON_MAX3355 is not set
+# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
 # CONFIG_EXTCON_RT8973A is not set
 CONFIG_EXTCON_SM5502=m
 # CONFIG_EXTCON_USB_GPIO is not set
@@ -6707,24 +6899,35 @@ CONFIG_IIO_BUFFER=y
 CONFIG_IIO_BUFFER_CB=m
 CONFIG_IIO_KFIFO_BUF=m
 CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_CONFIGFS=m
 CONFIG_IIO_TRIGGER=y
 CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+CONFIG_IIO_SW_DEVICE=m
+CONFIG_IIO_SW_TRIGGER=m
 
 #
 # Accelerometers
 #
 # CONFIG_BMA180 is not set
+# CONFIG_BMA220 is not set
 # CONFIG_BMC150_ACCEL is not set
+# CONFIG_DMARD06 is not set
+# CONFIG_DMARD09 is not set
 CONFIG_HID_SENSOR_ACCEL_3D=m
 CONFIG_IIO_ST_ACCEL_3AXIS=m
 CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
 CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
 # CONFIG_KXSD9 is not set
 CONFIG_KXCJK1013=m
+# CONFIG_MC3230 is not set
+# CONFIG_MMA7455_I2C is not set
+# CONFIG_MMA7455_SPI is not set
+CONFIG_MMA7660=m
 # CONFIG_MMA8452 is not set
 # CONFIG_MMA9551 is not set
 # CONFIG_MMA9553 is not set
 # CONFIG_MXC4005 is not set
+# CONFIG_MXC6255 is not set
 # CONFIG_STK8312 is not set
 # CONFIG_STK8BA50 is not set
 
@@ -6741,6 +6944,8 @@ CONFIG_KXCJK1013=m
 # CONFIG_AD7923 is not set
 # CONFIG_AD799X is not set
 # CONFIG_HI8435 is not set
+# CONFIG_INA2XX_ADC is not set
+# CONFIG_LTC2485 is not set
 # CONFIG_MAX1027 is not set
 # CONFIG_MAX1363 is not set
 # CONFIG_MCP320X is not set
@@ -6748,8 +6953,14 @@ CONFIG_KXCJK1013=m
 # CONFIG_NAU7802 is not set
 # CONFIG_QCOM_SPMI_IADC is not set
 # CONFIG_QCOM_SPMI_VADC is not set
+# CONFIG_STX104 is not set
 # CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC12138 is not set
 # CONFIG_TI_ADC128S052 is not set
+# CONFIG_TI_ADC161S626 is not set
+# CONFIG_TI_ADS1015 is not set
+# CONFIG_TI_ADS8688 is not set
 # CONFIG_TI_AM335X_ADC is not set
 # CONFIG_VF610_ADC is not set
 # CONFIG_VIPERBOARD_ADC is not set
@@ -6762,6 +6973,8 @@ CONFIG_KXCJK1013=m
 #
 # Chemical Sensors
 #
+# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_IAQCORE is not set
 # CONFIG_VZ89X is not set
 
 #
@@ -6787,18 +7000,29 @@ CONFIG_IIO_ST_SENSORS_CORE=m
 # CONFIG_AD5421 is not set
 # CONFIG_AD5446 is not set
 # CONFIG_AD5449 is not set
+# CONFIG_AD5592R is not set
+# CONFIG_AD5593R is not set
 # CONFIG_AD5504 is not set
 # CONFIG_AD5624R_SPI is not set
 # CONFIG_AD5686 is not set
 # CONFIG_AD5755 is not set
+# CONFIG_AD5761 is not set
 # CONFIG_AD5764 is not set
 # CONFIG_AD5791 is not set
 # CONFIG_AD7303 is not set
+# CONFIG_CIO_DAC is not set
+# CONFIG_AD8801 is not set
 # CONFIG_M62332 is not set
 # CONFIG_MAX517 is not set
 # CONFIG_MAX5821 is not set
 # CONFIG_MCP4725 is not set
 # CONFIG_MCP4922 is not set
+# CONFIG_VF610_DAC is not set
+
+#
+# IIO dummy driver
+#
+# CONFIG_IIO_SIMPLE_DUMMY is not set
 
 #
 # Frequency Synthesizers DDS/PLL
@@ -6830,8 +7054,20 @@ CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
 # CONFIG_ITG3200 is not set
 
 #
+# Health Sensors
+#
+
+#
+# Heart Rate Monitors
+#
+# CONFIG_AFE4403 is not set
+# CONFIG_AFE4404 is not set
+CONFIG_MAX30100=m
+
+#
 # Humidity sensors
 #
+# CONFIG_AM2315 is not set
 # CONFIG_DHT11 is not set
 # CONFIG_HDC100X is not set
 # CONFIG_HTU21 is not set
@@ -6843,8 +7079,12 @@ CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
 #
 # CONFIG_ADIS16400 is not set
 # CONFIG_ADIS16480 is not set
+# CONFIG_BMI160_I2C is not set
+# CONFIG_BMI160_SPI is not set
 # CONFIG_KMX61 is not set
-# CONFIG_INV_MPU6050_IIO is not set
+CONFIG_INV_MPU6050_IIO=m
+# CONFIG_INV_MPU6050_I2C is not set
+CONFIG_INV_MPU6050_SPI=m
 
 #
 # Light sensors
@@ -6855,6 +7095,7 @@ CONFIG_ACPI_ALS=m
 # CONFIG_APDS9300 is not set
 # CONFIG_APDS9960 is not set
 CONFIG_BH1750=m
+CONFIG_BH1780=m
 # CONFIG_CM32181 is not set
 # CONFIG_CM3232 is not set
 # CONFIG_CM3323 is not set
@@ -6867,8 +7108,10 @@ CONFIG_HID_SENSOR_ALS=m
 CONFIG_RPR0521=m
 # CONFIG_SENSORS_LM3533 is not set
 # CONFIG_LTR501 is not set
+# CONFIG_MAX44000 is not set
 CONFIG_OPT3001=m
 CONFIG_PA12203001=m
+# CONFIG_SI1145 is not set
 CONFIG_STK3310=m
 # CONFIG_TCS3414 is not set
 # CONFIG_TCS3472 is not set
@@ -6876,19 +7119,25 @@ CONFIG_STK3310=m
 # CONFIG_TSL4531 is not set
 # CONFIG_US5182D is not set
 # CONFIG_VCNL4000 is not set
+# CONFIG_VEML6070 is not set
 
 #
 # Magnetometer sensors
 #
+# CONFIG_AK8974 is not set
 # CONFIG_AK8975 is not set
 # CONFIG_AK09911 is not set
-# CONFIG_BMC150_MAGN is not set
+# CONFIG_BMC150_MAGN_I2C is not set
+# CONFIG_BMC150_MAGN_SPI is not set
 # CONFIG_MAG3110 is not set
 CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
 # CONFIG_MMC35240 is not set
 CONFIG_IIO_ST_MAGN_3AXIS=m
 CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
 CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
+CONFIG_SENSORS_HMC5843=m
+CONFIG_SENSORS_HMC5843_I2C=m
+CONFIG_SENSORS_HMC5843_SPI=m
 
 #
 # Inclinometer sensors
@@ -6899,25 +7148,35 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m
 #
 # Triggers - standalone
 #
+# CONFIG_IIO_HRTIMER_TRIGGER is not set
 CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_TIGHTLOOP_TRIGGER=m
 # CONFIG_IIO_SYSFS_TRIGGER is not set
 
 #
 # Digital potentiometers
 #
+# CONFIG_DS1803 is not set
+# CONFIG_MAX5487 is not set
+# CONFIG_MCP4131 is not set
 # CONFIG_MCP4531 is not set
+# CONFIG_TPL0102 is not set
 
 #
 # Pressure sensors
 #
 # CONFIG_BMP280 is not set
 # CONFIG_HID_SENSOR_PRESS is not set
-# CONFIG_MPL115 is not set
+# CONFIG_HP03 is not set
+# CONFIG_MPL115_I2C is not set
+# CONFIG_MPL115_SPI is not set
 # CONFIG_MPL3115 is not set
 # CONFIG_MS5611 is not set
 # CONFIG_MS5637 is not set
 # CONFIG_IIO_ST_PRESS is not set
 # CONFIG_T5403 is not set
+# CONFIG_HP206C is not set
+# CONFIG_ZPA2326 is not set
 
 #
 # Lightning sensors
@@ -6933,6 +7192,7 @@ CONFIG_IIO_INTERRUPT_TRIGGER=m
 #
 # Temperature sensors
 #
+# CONFIG_MAXIM_THERMOCOUPLE is not set
 # CONFIG_MLX90614 is not set
 # CONFIG_TMP006 is not set
 # CONFIG_TSYS01 is not set
@@ -6942,6 +7202,7 @@ CONFIG_IIO_INTERRUPT_TRIGGER=m
 CONFIG_PWM=y
 CONFIG_PWM_SYSFS=y
 # CONFIG_PWM_CRC is not set
+# CONFIG_PWM_CROS_EC is not set
 CONFIG_PWM_FSL_FTM=m
 # CONFIG_PWM_LP3943 is not set
 CONFIG_PWM_LPSS=m
@@ -6949,10 +7210,21 @@ CONFIG_PWM_LPSS_PCI=m
 CONFIG_PWM_LPSS_PLATFORM=m
 # CONFIG_PWM_PCA9685 is not set
 CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC_MAX_NR=1
 CONFIG_IPACK_BUS=m
 CONFIG_BOARD_TPCI200=m
 CONFIG_SERIAL_IPOCTAL=m
 CONFIG_RESET_CONTROLLER=y
+# CONFIG_RESET_ATH79 is not set
+# CONFIG_RESET_BERLIN is not set
+# CONFIG_RESET_LPC18XX is not set
+# CONFIG_RESET_MESON is not set
+# CONFIG_RESET_PISTACHIO is not set
+# CONFIG_RESET_SOCFPGA is not set
+# CONFIG_RESET_STM32 is not set
+# CONFIG_RESET_SUNXI is not set
+# CONFIG_TI_SYSCON_RESET is not set
+# CONFIG_RESET_ZYNQ is not set
 CONFIG_FMC=m
 CONFIG_FMC_FAKEDEV=m
 CONFIG_FMC_TRIVIAL=m
@@ -6974,18 +7246,27 @@ CONFIG_INTEL_RAPL=m
 # Performance monitor support
 #
 CONFIG_RAS=y
-CONFIG_AMD_MCE_INJ=m
+# CONFIG_MCE_AMD_INJ is not set
 CONFIG_THUNDERBOLT=m
 
 #
 # Android
 #
 # CONFIG_ANDROID is not set
-# CONFIG_NVMEM is not set
-# CONFIG_STM is not set
+CONFIG_DEV_DAX=m
+CONFIG_NR_DEV_DAX=32768
+CONFIG_NVMEM=m
+CONFIG_STM=m
 # CONFIG_STM_DUMMY is not set
-# CONFIG_STM_SOURCE_CONSOLE is not set
-# CONFIG_INTEL_TH is not set
+CONFIG_STM_SOURCE_CONSOLE=m
+CONFIG_STM_SOURCE_HEARTBEAT=m
+CONFIG_INTEL_TH=m
+CONFIG_INTEL_TH_PCI=m
+CONFIG_INTEL_TH_GTH=m
+CONFIG_INTEL_TH_STH=m
+CONFIG_INTEL_TH_MSU=m
+CONFIG_INTEL_TH_PTI=m
+# CONFIG_INTEL_TH_DEBUG is not set
 
 #
 # FPGA Configuration Support
@@ -7005,6 +7286,8 @@ CONFIG_DMI_SYSFS=m
 CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
 CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
+CONFIG_FW_CFG_SYSFS=m
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
 # CONFIG_GOOGLE_FIRMWARE is not set
 
 #
@@ -7015,19 +7298,23 @@ CONFIG_EFI_ESRT=y
 CONFIG_EFI_RUNTIME_MAP=y
 # CONFIG_EFI_FAKE_MEMMAP is not set
 CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_CAPSULE_LOADER=m
+# CONFIG_EFI_TEST is not set
 CONFIG_UEFI_CPER=y
 
 #
 # File systems
 #
 CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_FS_IOMAP=y
 # CONFIG_EXT2_FS is not set
 # CONFIG_EXT3_FS is not set
 CONFIG_EXT4_FS=m
 CONFIG_EXT4_USE_FOR_EXT2=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_ENCRYPTION is not set
+CONFIG_EXT4_ENCRYPTION=y
+CONFIG_EXT4_FS_ENCRYPTION=y
 # CONFIG_EXT4_DEBUG is not set
 CONFIG_JBD2=m
 # CONFIG_JBD2_DEBUG is not set
@@ -7072,10 +7359,14 @@ CONFIG_F2FS_FS_SECURITY=y
 CONFIG_F2FS_CHECK_FS=y
 CONFIG_F2FS_FS_ENCRYPTION=y
 # CONFIG_F2FS_IO_TRACE is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
 # CONFIG_FS_DAX is not set
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
 CONFIG_FILE_LOCKING=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_FS_ENCRYPTION=m
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
 CONFIG_INOTIFY_USER=y
@@ -7123,6 +7414,7 @@ CONFIG_MSDOS_FS=m
 CONFIG_VFAT_FS=m
 CONFIG_FAT_DEFAULT_CODEPAGE=437
 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
 CONFIG_NTFS_FS=m
 # CONFIG_NTFS_DEBUG is not set
 CONFIG_NTFS_RW=y
@@ -7146,6 +7438,7 @@ CONFIG_HUGETLB_PAGE=y
 CONFIG_CONFIGFS_FS=y
 CONFIG_EFIVAR_FS=y
 CONFIG_MISC_FILESYSTEMS=y
+CONFIG_ORANGEFS_FS=m
 # CONFIG_ADFS_FS is not set
 CONFIG_AFFS_FS=m
 CONFIG_ECRYPT_FS=m
@@ -7201,10 +7494,13 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
 # CONFIG_ROMFS_BACKED_BY_BOTH is not set
 CONFIG_ROMFS_ON_BLOCK=y
 CONFIG_PSTORE=y
+CONFIG_PSTORE_ZLIB_COMPRESS=y
+# CONFIG_PSTORE_LZO_COMPRESS is not set
+# CONFIG_PSTORE_LZ4_COMPRESS is not set
 # CONFIG_PSTORE_CONSOLE is not set
 # CONFIG_PSTORE_PMSG is not set
 # CONFIG_PSTORE_FTRACE is not set
-CONFIG_PSTORE_RAM=m
+CONFIG_PSTORE_RAM=y
 # CONFIG_SYSV_FS is not set
 CONFIG_UFS_FS=m
 # CONFIG_UFS_FS_WRITE is not set
@@ -7238,6 +7534,9 @@ CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_BLOCKLAYOUT=y
+CONFIG_NFSD_SCSILAYOUT=y
+# CONFIG_NFSD_FLEXFILELAYOUT is not set
 CONFIG_NFSD_V4_SECURITY_LABEL=y
 # CONFIG_NFSD_FAULT_INJECTION is not set
 CONFIG_GRACE_PERIOD=m
@@ -7258,7 +7557,7 @@ CONFIG_CEPH_FS_POSIX_ACL=y
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 # CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_WEAK_PW_HASH is not set
 CONFIG_CIFS_UPCALL=y
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
@@ -7268,15 +7567,7 @@ CONFIG_CIFS_DFS_UPCALL=y
 CONFIG_CIFS_SMB2=y
 CONFIG_CIFS_SMB311=y
 CONFIG_CIFS_FSCACHE=y
-CONFIG_NCP_FS=m
-# CONFIG_NCPFS_PACKET_SIGNING is not set
-# CONFIG_NCPFS_IOCTL_LOCKING is not set
-# CONFIG_NCPFS_STRONG is not set
-CONFIG_NCPFS_NFS_NS=y
-CONFIG_NCPFS_OS2_NS=y
-CONFIG_NCPFS_SMALLDOS=y
-CONFIG_NCPFS_NLS=y
-# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_NCP_FS is not set
 CONFIG_CODA_FS=m
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
@@ -7356,7 +7647,7 @@ CONFIG_DYNAMIC_DEBUG=y
 # Compile-time checks and compiler options
 #
 # CONFIG_DEBUG_INFO is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_FRAME_WARN=1024
 CONFIG_STRIP_ASM_SYMS=y
@@ -7379,6 +7670,8 @@ CONFIG_DEBUG_KERNEL=y
 #
 # CONFIG_PAGE_EXTENSION is not set
 # CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_PAGE_REF is not set
 # CONFIG_DEBUG_OBJECTS is not set
 # CONFIG_SLUB_DEBUG_ON is not set
 # CONFIG_SLUB_STATS is not set
@@ -7408,6 +7701,7 @@ CONFIG_DETECT_HUNG_TASK=y
 CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_WQ_WATCHDOG is not set
 # CONFIG_PANIC_ON_OOPS is not set
 CONFIG_PANIC_ON_OOPS_VALUE=0
 CONFIG_PANIC_TIMEOUT=0
@@ -7417,7 +7711,6 @@ CONFIG_SCHEDSTATS=y
 # CONFIG_SCHED_STACK_END_CHECK is not set
 # CONFIG_DEBUG_TIMEKEEPING is not set
 CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_PREEMPT is not set
 
 #
 # Lock Debugging (spinlocks, mutexes, etc...)
@@ -7447,21 +7740,21 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_PROVE_RCU is not set
 # CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_TORTURE_TEST is not set
+# CONFIG_RCU_PERF_TEST is not set
 # CONFIG_RCU_TORTURE_TEST is not set
 CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_RCU_TRACE is not set
 # CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
 # CONFIG_NOTIFIER_ERROR_INJECTION is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
-CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_NOP_TRACER=y
 CONFIG_HAVE_FUNCTION_TRACER=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
 CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
@@ -7480,8 +7773,8 @@ CONFIG_FTRACE=y
 CONFIG_FUNCTION_TRACER=y
 CONFIG_FUNCTION_GRAPH_TRACER=y
 # CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_PREEMPT_TRACER is not set
 CONFIG_SCHED_TRACER=y
+CONFIG_HWLAT_TRACER=y
 CONFIG_FTRACE_SYSCALLS=y
 CONFIG_TRACER_SNAPSHOT=y
 # CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
@@ -7500,6 +7793,7 @@ CONFIG_FUNCTION_PROFILER=y
 CONFIG_FTRACE_MCOUNT_RECORD=y
 # CONFIG_FTRACE_STARTUP_TEST is not set
 CONFIG_MMIOTRACE=y
+# CONFIG_HIST_TRIGGERS is not set
 # CONFIG_MMIOTRACE_TEST is not set
 # CONFIG_TRACEPOINT_BENCHMARK is not set
 CONFIG_RING_BUFFER_BENCHMARK=m
@@ -7523,7 +7817,10 @@ CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_TEST_STRING_HELPERS is not set
 CONFIG_TEST_KSTRTOX=m
 # CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_UUID is not set
 # CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_HASH is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_DMA_API_DEBUG is not set
 # CONFIG_TEST_LKM is not set
@@ -7536,15 +7833,19 @@ CONFIG_TEST_KSTRTOX=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set
+# CONFIG_UBSAN is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
 CONFIG_STRICT_DEVMEM=y
+CONFIG_IO_STRICT_DEVMEM=y
 # CONFIG_X86_VERBOSE_BOOTUP is not set
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 CONFIG_EARLY_PRINTK_EFI=y
-CONFIG_X86_PTDUMP_CORE=y
+# CONFIG_X86_PTDUMP_CORE is not set
 # CONFIG_X86_PTDUMP is not set
 # CONFIG_EFI_PGT_DUMP is not set
-CONFIG_DEBUG_RODATA=y
 # CONFIG_DEBUG_RODATA_TEST is not set
 # CONFIG_DEBUG_WX is not set
 CONFIG_DEBUG_SET_MODULE_RONX=y
@@ -7568,7 +7869,6 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_OPTIMIZE_INLINING is not set
 # CONFIG_DEBUG_ENTRY is not set
 # CONFIG_DEBUG_NMI_SELFTEST is not set
-# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
 # CONFIG_X86_DEBUG_FPU is not set
 # CONFIG_PUNIT_ATOM_DEBUG is not set
 
@@ -7577,18 +7877,22 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
 #
 CONFIG_KEYS=y
 CONFIG_PERSISTENT_KEYRINGS=y
-CONFIG_BIG_KEYS=y
 CONFIG_TRUSTED_KEYS=m
 CONFIG_ENCRYPTED_KEYS=m
+CONFIG_KEY_DH_OPERATIONS=y
 # CONFIG_SECURITY_DMESG_RESTRICT is not set
 CONFIG_SECURITY=y
 CONFIG_SECURITYFS=y
 # CONFIG_SECURITY_NETWORK is not set
 CONFIG_SECURITY_PATH=y
 # CONFIG_INTEL_TXT is not set
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y
+CONFIG_HARDENED_USERCOPY=y
 # CONFIG_SECURITY_SMACK is not set
 # CONFIG_SECURITY_TOMOYO is not set
 # CONFIG_SECURITY_APPARMOR is not set
+# CONFIG_SECURITY_LOADPIN is not set
 CONFIG_SECURITY_YAMA=y
 CONFIG_INTEGRITY=y
 # CONFIG_INTEGRITY_SIGNATURE is not set
@@ -7611,19 +7915,21 @@ CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
 CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER=y
 CONFIG_CRYPTO_BLKCIPHER2=y
 CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
 CONFIG_CRYPTO_RNG_DEFAULT=m
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_AKCIPHER2=y
 CONFIG_CRYPTO_AKCIPHER=m
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=m
 CONFIG_CRYPTO_RSA=m
-CONFIG_CRYPTO_MANAGER=m
+CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
 CONFIG_CRYPTO_USER=m
 CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
@@ -7654,7 +7960,7 @@ CONFIG_CRYPTO_ECHAINIV=m
 CONFIG_CRYPTO_CBC=m
 CONFIG_CRYPTO_CTR=m
 CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_ECB=y
 CONFIG_CRYPTO_LRW=m
 CONFIG_CRYPTO_PCBC=m
 CONFIG_CRYPTO_XTS=m
@@ -7688,6 +7994,7 @@ CONFIG_CRYPTO_RMD320=m
 CONFIG_CRYPTO_SHA1=m
 CONFIG_CRYPTO_SHA256=m
 CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA3=m
 CONFIG_CRYPTO_TGR192=m
 CONFIG_CRYPTO_WP512=m
 
@@ -7723,7 +8030,6 @@ CONFIG_CRYPTO_TWOFISH_586=m
 # Compression
 #
 CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_ZLIB=m
 CONFIG_CRYPTO_LZO=y
 CONFIG_CRYPTO_842=m
 CONFIG_CRYPTO_LZ4=m
@@ -7757,25 +8063,29 @@ CONFIG_CRYPTO_DEV_CCP_DD=m
 CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
 CONFIG_CRYPTO_DEV_QAT=m
 CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_CRYPTO_DEV_QAT_C3XXX=m
+CONFIG_CRYPTO_DEV_QAT_C62X=m
 CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
-CONFIG_ASYMMETRIC_KEY_TYPE=m
+CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
+CONFIG_CRYPTO_DEV_QAT_C62XVF=m
+CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
 CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
-CONFIG_PUBLIC_KEY_ALGO_RSA=m
 CONFIG_X509_CERTIFICATE_PARSER=m
 CONFIG_PKCS7_MESSAGE_PARSER=m
-CONFIG_PKCS7_TEST_KEY=m
 
 #
 # Certificates for signature checking
 #
 CONFIG_SYSTEM_TRUSTED_KEYRING=y
 CONFIG_SYSTEM_TRUSTED_KEYS=""
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
+CONFIG_SECONDARY_TRUSTED_KEYRING=y
 CONFIG_HAVE_KVM=y
 CONFIG_HAVE_KVM_IRQCHIP=y
 CONFIG_HAVE_KVM_IRQFD=y
 CONFIG_HAVE_KVM_IRQ_ROUTING=y
 CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_APIC_ARCHITECTURE=y
 CONFIG_KVM_MMIO=y
 CONFIG_KVM_ASYNC_PF=y
 CONFIG_HAVE_KVM_MSI=y
@@ -7789,6 +8099,11 @@ CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
 CONFIG_KVM_MMU_AUDIT=y
 CONFIG_KVM_DEVICE_ASSIGNMENT=y
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_SCSI=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VHOST=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
 # CONFIG_LGUEST is not set
 CONFIG_BINARY_PRINTF=y
 
@@ -7807,7 +8122,7 @@ CONFIG_GENERIC_PCI_IOMAP=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_IO=y
 CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_CRC_CCITT=m
+CONFIG_CRC_CCITT=y
 CONFIG_CRC16=m
 CONFIG_CRC_T10DIF=y
 CONFIG_CRC_ITU_T=m
@@ -7847,18 +8162,16 @@ CONFIG_DECOMPRESS_XZ=y
 CONFIG_DECOMPRESS_LZO=y
 CONFIG_DECOMPRESS_LZ4=y
 CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON=y
 CONFIG_REED_SOLOMON_ENC8=y
 CONFIG_REED_SOLOMON_DEC8=y
-CONFIG_REED_SOLOMON_DEC16=y
-CONFIG_BCH=m
-CONFIG_BCH_CONST_PARAMS=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
 CONFIG_TEXTSEARCH_FSM=m
 CONFIG_BTREE=y
 CONFIG_INTERVAL_TREE=y
+CONFIG_RADIX_TREE_MULTIORDER=y
 CONFIG_ASSOCIATIVE_ARRAY=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT_MAP=y
@@ -7869,12 +8182,12 @@ CONFIG_DQL=y
 CONFIG_GLOB=y
 # CONFIG_GLOB_SELFTEST is not set
 CONFIG_NLATTR=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
 CONFIG_LRU_CACHE=m
 CONFIG_CLZ_TAB=y
 CONFIG_CORDIC=m
 CONFIG_DDR=y
-CONFIG_MPILIB=m
+CONFIG_IRQ_POLL=y
+CONFIG_MPILIB=y
 CONFIG_OID_REGISTRY=m
 CONFIG_UCS2_STRING=y
 CONFIG_FONT_SUPPORT=y
@@ -7892,5 +8205,7 @@ CONFIG_FONT_8x16=y
 # CONFIG_FONT_10x18 is not set
 CONFIG_FONT_AUTOSELECT=y
 # CONFIG_SG_SPLIT is not set
+CONFIG_SG_POOL=y
 CONFIG_ARCH_HAS_SG_CHAIN=y
 CONFIG_ARCH_HAS_MMIO_FLUSH=y
+CONFIG_SBITMAP=y
diff --git a/abs/core/linux/config.x86_64 b/abs/core/linux/config.x86_64
index 90ea644..a12945a 100644
--- a/abs/core/linux/config.x86_64
+++ b/abs/core/linux/config.x86_64
@@ -1,18 +1,20 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.4.0 Kernel Configuration
+# Linux/x86 4.9.13-1 Kernel Configuration
 #
 CONFIG_64BIT=y
 CONFIG_X86_64=y
 CONFIG_X86=y
 CONFIG_INSTRUCTION_DECODER=y
-CONFIG_PERF_EVENTS_INTEL_UNCORE=y
 CONFIG_OUTPUT_FORMAT="elf64-x86-64"
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
 CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_MMU=y
+CONFIG_ARCH_MMAP_RND_BITS_MIN=28
+CONFIG_ARCH_MMAP_RND_BITS_MAX=32
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16
 CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_NEED_SG_DMA_LENGTH=y
 CONFIG_GENERIC_ISA_DMA=y
@@ -37,13 +39,14 @@ CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_HAVE_INTEL_TXT=y
 CONFIG_X86_64_SMP=y
-CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
 CONFIG_ARCH_SUPPORTS_UPROBES=y
 CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_DEBUG_RODATA=y
 CONFIG_PGTABLE_LEVELS=4
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 CONFIG_IRQ_WORK=y
 CONFIG_BUILDTIME_EXTABLE_SORT=y
+CONFIG_THREAD_INFO_IN_TASK=y
 
 #
 # General setup
@@ -52,7 +55,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
 CONFIG_CROSS_COMPILE=""
 # CONFIG_COMPILE_TEST is not set
 CONFIG_LOCALVERSION="-ARCH"
-CONFIG_LOCALVERSION_AUTO=y
+# CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
@@ -107,7 +110,7 @@ CONFIG_NO_HZ_COMMON=y
 # CONFIG_HZ_PERIODIC is not set
 CONFIG_NO_HZ_IDLE=y
 # CONFIG_NO_HZ_FULL is not set
-# CONFIG_NO_HZ is not set
+CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 
 #
@@ -126,18 +129,24 @@ CONFIG_TASK_IO_ACCOUNTING=y
 #
 # RCU Subsystem
 #
-CONFIG_PREEMPT_RCU=y
-# CONFIG_RCU_EXPERT is not set
+CONFIG_TREE_RCU=y
+CONFIG_RCU_EXPERT=y
 CONFIG_SRCU=y
 # CONFIG_TASKS_RCU is not set
 CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_FANOUT=64
+CONFIG_RCU_FANOUT_LEAF=16
+# CONFIG_RCU_FAST_NO_HZ is not set
 # CONFIG_TREE_RCU_TRACE is not set
+CONFIG_RCU_KTHREAD_PRIO=0
+# CONFIG_RCU_NOCB_CPU is not set
 # CONFIG_RCU_EXPEDITE_BOOT is not set
 CONFIG_BUILD_BIN2C=y
 CONFIG_IKCONFIG=y
 CONFIG_IKCONFIG_PROC=y
 CONFIG_LOG_BUF_SHIFT=19
 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_NMI_LOG_BUF_SHIFT=13
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
 CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
@@ -145,27 +154,26 @@ CONFIG_ARCH_SUPPORTS_INT128=y
 CONFIG_NUMA_BALANCING=y
 CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
 CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_PIDS=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
 CONFIG_PAGE_COUNTER=y
 CONFIG_MEMCG=y
 CONFIG_MEMCG_SWAP=y
 CONFIG_MEMCG_SWAP_ENABLED=y
-CONFIG_MEMCG_KMEM=y
-# CONFIG_CGROUP_HUGETLB is not set
-# CONFIG_CGROUP_PERF is not set
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_CGROUP_WRITEBACK=y
 CONFIG_CGROUP_SCHED=y
 CONFIG_FAIR_GROUP_SCHED=y
 CONFIG_CFS_BANDWIDTH=y
 # CONFIG_RT_GROUP_SCHED is not set
-CONFIG_BLK_CGROUP=y
-# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_CGROUP_WRITEBACK=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_FREEZER=y
+# CONFIG_CGROUP_HUGETLB is not set
+CONFIG_CPUSETS=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_PERF is not set
+# CONFIG_CGROUP_DEBUG is not set
 # CONFIG_CHECKPOINT_RESTORE is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
@@ -184,6 +192,7 @@ CONFIG_RD_LZMA=y
 CONFIG_RD_XZ=y
 CONFIG_RD_LZO=y
 CONFIG_RD_LZ4=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
 # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
@@ -199,7 +208,10 @@ CONFIG_SYSFS_SYSCALL=y
 # CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
+CONFIG_KALLSYMS_BASE_RELATIVE=y
 CONFIG_PRINTK=y
+CONFIG_PRINTK_NMI=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
@@ -229,6 +241,7 @@ CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
 CONFIG_SLUB_CPU_PARTIAL=y
 # CONFIG_SYSTEM_DATA_VERIFICATION is not set
 CONFIG_PROFILING=y
@@ -241,6 +254,7 @@ CONFIG_OPROFILE_NMI_TIMER=y
 CONFIG_KPROBES=y
 CONFIG_JUMP_LABEL=y
 # CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_OPTPROBES=y
 CONFIG_KPROBES_ON_FTRACE=y
 CONFIG_UPROBES=y
 # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
@@ -253,8 +267,8 @@ CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
 CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_NMI=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
 CONFIG_HAVE_DMA_CONTIGUOUS=y
 CONFIG_GENERIC_SMP_IDLE_THREAD=y
 CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
@@ -276,11 +290,14 @@ CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
 CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
 CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
 CONFIG_HAVE_CC_STACKPROTECTOR=y
 CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_CC_STACKPROTECTOR_NONE is not set
 # CONFIG_CC_STACKPROTECTOR_REGULAR is not set
 CONFIG_CC_STACKPROTECTOR_STRONG=y
+CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
 CONFIG_HAVE_CONTEXT_TRACKING=y
 CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
 CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
@@ -290,9 +307,20 @@ CONFIG_HAVE_ARCH_SOFT_DIRTY=y
 CONFIG_MODULES_USE_ELF_RELA=y
 CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
 CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_HAVE_EXIT_THREAD=y
+CONFIG_ARCH_MMAP_RND_BITS=28
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
 CONFIG_HAVE_COPY_THREAD_TLS=y
+CONFIG_HAVE_STACK_VALIDATION=y
+# CONFIG_HAVE_ARCH_HASH is not set
+# CONFIG_ISA_BUS_API is not set
 CONFIG_OLD_SIGSUSPEND3=y
 CONFIG_COMPAT_OLD_SIGACTION=y
+# CONFIG_CPU_NO_EFFICIENT_FFS is not set
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
 
 #
 # GCOV-based kernel profiling
@@ -346,6 +374,7 @@ CONFIG_EFI_PARTITION=y
 # CONFIG_SYSV68_PARTITION is not set
 # CONFIG_CMDLINE_PARTITION is not set
 CONFIG_BLOCK_COMPAT=y
+CONFIG_BLK_MQ_PCI=y
 
 #
 # IO Schedulers
@@ -354,14 +383,18 @@ CONFIG_IOSCHED_NOOP=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
 CONFIG_CFQ_GROUP_IOSCHED=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
+CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_CFQ is not set
 # CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_DEFAULT_IOSCHED="deadline"
 CONFIG_PREEMPT_NOTIFIERS=y
 CONFIG_PADATA=y
 CONFIG_ASN1=m
-CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
 CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
 CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_RWSEM_SPIN_ON_OWNER=y
@@ -378,12 +411,14 @@ CONFIG_FREEZER=y
 CONFIG_ZONE_DMA=y
 CONFIG_SMP=y
 CONFIG_X86_FEATURE_NAMES=y
+CONFIG_X86_FAST_FEATURE_TESTS=y
 CONFIG_X86_X2APIC=y
 CONFIG_X86_MPPARSE=y
+# CONFIG_GOLDFISH is not set
 # CONFIG_X86_EXTENDED_PLATFORM is not set
 CONFIG_X86_INTEL_LPSS=y
 # CONFIG_X86_AMD_PLATFORM_DEVICE is not set
-CONFIG_IOSF_MBI=m
+CONFIG_IOSF_MBI=y
 # CONFIG_IOSF_MBI_DEBUG is not set
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
 CONFIG_SCHED_OMIT_FRAME_POINTER=y
@@ -430,10 +465,9 @@ CONFIG_IOMMU_HELPER=y
 CONFIG_NR_CPUS=128
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
-# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
-CONFIG_PREEMPT_COUNT=y
+# CONFIG_PREEMPT is not set
 CONFIG_X86_LOCAL_APIC=y
 CONFIG_X86_IO_APIC=y
 CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
@@ -443,6 +477,14 @@ CONFIG_X86_MCE_AMD=y
 CONFIG_X86_MCE_THRESHOLD=y
 # CONFIG_X86_MCE_INJECT is not set
 CONFIG_X86_THERMAL_VECTOR=y
+
+#
+# Performance monitoring
+#
+CONFIG_PERF_EVENTS_INTEL_UNCORE=y
+CONFIG_PERF_EVENTS_INTEL_RAPL=m
+CONFIG_PERF_EVENTS_INTEL_CSTATE=m
+CONFIG_PERF_EVENTS_AMD_POWER=m
 # CONFIG_VM86 is not set
 CONFIG_X86_16BIT=y
 CONFIG_X86_ESPFIX64=y
@@ -486,6 +528,7 @@ CONFIG_MEMORY_ISOLATION=y
 CONFIG_HAVE_BOOTMEM_INFO_NODE=y
 CONFIG_MEMORY_HOTPLUG=y
 CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
 CONFIG_MEMORY_HOTREMOVE=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
@@ -495,7 +538,6 @@ CONFIG_COMPACTION=y
 CONFIG_MIGRATION=y
 CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
 CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
 CONFIG_MMU_NOTIFIER=y
@@ -507,12 +549,14 @@ CONFIG_HWPOISON_INJECT=m
 CONFIG_TRANSPARENT_HUGEPAGE=y
 CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
 # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_TRANSPARENT_HUGE_PAGECACHE=y
 CONFIG_CLEANCACHE=y
 CONFIG_FRONTSWAP=y
 # CONFIG_CMA is not set
 CONFIG_ZSWAP=y
 CONFIG_ZPOOL=y
 CONFIG_ZBUD=y
+CONFIG_Z3FOLD=y
 CONFIG_ZSMALLOC=y
 # CONFIG_PGTABLE_MAPPING is not set
 # CONFIG_ZSMALLOC_STAT is not set
@@ -520,7 +564,10 @@ CONFIG_GENERIC_EARLY_IOREMAP=y
 CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
 # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
 # CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_ZONE_DEVICE=y
 CONFIG_FRAME_VECTOR=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_ARCH_HAS_PKEYS=y
 CONFIG_X86_PMEM_LEGACY_DEVICE=y
 CONFIG_X86_PMEM_LEGACY=y
 CONFIG_X86_CHECK_BIOS_CORRUPTION=y
@@ -534,16 +581,17 @@ CONFIG_X86_PAT=y
 CONFIG_ARCH_USES_PG_UNCACHED=y
 CONFIG_ARCH_RANDOM=y
 CONFIG_X86_SMAP=y
-# CONFIG_X86_INTEL_MPX is not set
+CONFIG_X86_INTEL_MPX=y
+CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
 CONFIG_EFI=y
 CONFIG_EFI_STUB=y
 CONFIG_EFI_MIXED=y
 CONFIG_SECCOMP=y
-# CONFIG_HZ_100 is not set
+CONFIG_HZ_100=y
 # CONFIG_HZ_250 is not set
-CONFIG_HZ_300=y
+# CONFIG_HZ_300 is not set
 # CONFIG_HZ_1000 is not set
-CONFIG_HZ=300
+CONFIG_HZ=100
 CONFIG_SCHED_HRTICK=y
 CONFIG_KEXEC=y
 CONFIG_CRASH_DUMP=y
@@ -586,11 +634,12 @@ CONFIG_PM_DEBUG=y
 CONFIG_PM_ADVANCED_DEBUG=y
 # CONFIG_PM_TEST_SUSPEND is not set
 CONFIG_PM_SLEEP_DEBUG=y
-# CONFIG_DPM_WATCHDOG is not set
 CONFIG_PM_TRACE=y
 CONFIG_PM_TRACE_RTC=y
 CONFIG_PM_CLK=y
-# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
 CONFIG_ACPI=y
 CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
 CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
@@ -607,15 +656,17 @@ CONFIG_ACPI_VIDEO=m
 CONFIG_ACPI_FAN=m
 CONFIG_ACPI_DOCK=y
 CONFIG_ACPI_CPU_FREQ_PSS=y
+CONFIG_ACPI_PROCESSOR_CSTATE=y
 CONFIG_ACPI_PROCESSOR_IDLE=y
-CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_PROCESSOR=y
 CONFIG_ACPI_IPMI=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
 CONFIG_ACPI_NUMA=y
 # CONFIG_ACPI_CUSTOM_DSDT is not set
-CONFIG_ACPI_INITRD_TABLE_OVERRIDE=y
+CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y
+CONFIG_ACPI_TABLE_UPGRADE=y
 # CONFIG_ACPI_DEBUG is not set
 CONFIG_ACPI_PCI_SLOT=y
 CONFIG_X86_PM_TIMER=y
@@ -637,27 +688,35 @@ CONFIG_ACPI_APEI_PCIEAER=y
 CONFIG_ACPI_APEI_MEMORY_FAILURE=y
 CONFIG_ACPI_APEI_EINJ=m
 CONFIG_ACPI_APEI_ERST_DEBUG=m
+CONFIG_DPTF_POWER=m
+CONFIG_ACPI_WATCHDOG=y
 CONFIG_ACPI_EXTLOG=m
-# CONFIG_PMIC_OPREGION is not set
+CONFIG_PMIC_OPREGION=y
+CONFIG_CRC_PMIC_OPREGION=y
+CONFIG_BXT_WC_PMIC_OPREGION=y
+CONFIG_ACPI_CONFIGFS=m
 CONFIG_SFI=y
 
 #
 # CPU Frequency scaling
 #
 CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
 CONFIG_CPU_FREQ_GOV_COMMON=y
-CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT=y
 CONFIG_CPU_FREQ_STAT_DETAILS=y
 # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
 CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
 CONFIG_CPU_FREQ_GOV_POWERSAVE=m
 CONFIG_CPU_FREQ_GOV_USERSPACE=m
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=m
 CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
 
 #
 # CPU frequency scaling drivers
@@ -710,6 +769,8 @@ CONFIG_PCIEASPM_DEFAULT=y
 # CONFIG_PCIEASPM_POWERSAVE is not set
 # CONFIG_PCIEASPM_PERFORMANCE is not set
 CONFIG_PCIE_PME=y
+CONFIG_PCIE_DPC=y
+CONFIG_PCIE_PTM=y
 CONFIG_PCI_BUS_ADDR_T_64BIT=y
 CONFIG_PCI_MSI=y
 CONFIG_PCI_MSI_IRQ_DOMAIN=y
@@ -723,10 +784,20 @@ CONFIG_PCI_IOV=y
 CONFIG_PCI_PRI=y
 CONFIG_PCI_PASID=y
 CONFIG_PCI_LABEL=y
+CONFIG_PCI_HYPERV=m
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=y
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_SHPC=m
 
 #
 # PCI host controller drivers
 #
+# CONFIG_PCIE_DW_PLAT is not set
+CONFIG_VMD=m
 CONFIG_ISA_DMA_API=y
 CONFIG_AMD_NB=y
 CONFIG_PCCARD=m
@@ -746,28 +817,7 @@ CONFIG_YENTA_TOSHIBA=y
 CONFIG_PD6729=m
 CONFIG_I82092=m
 CONFIG_PCCARD_NONSTATIC=y
-CONFIG_HOTPLUG_PCI=y
-CONFIG_HOTPLUG_PCI_ACPI=y
-CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-CONFIG_HOTPLUG_PCI_CPCI=y
-CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
-CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
-CONFIG_HOTPLUG_PCI_SHPC=m
-CONFIG_RAPIDIO=m
-CONFIG_RAPIDIO_TSI721=m
-CONFIG_RAPIDIO_DISC_TIMEOUT=30
-# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set
-CONFIG_RAPIDIO_DMA_ENGINE=y
-CONFIG_RAPIDIO_DEBUG=y
-CONFIG_RAPIDIO_ENUM_BASIC=m
-
-#
-# RapidIO Switch drivers
-#
-CONFIG_RAPIDIO_TSI57X=m
-CONFIG_RAPIDIO_CPS_XX=m
-CONFIG_RAPIDIO_TSI568=m
-CONFIG_RAPIDIO_CPS_GEN2=m
+# CONFIG_RAPIDIO is not set
 # CONFIG_X86_SYSFB is not set
 
 #
@@ -775,6 +825,7 @@ CONFIG_RAPIDIO_CPS_GEN2=m
 #
 CONFIG_BINFMT_ELF=y
 CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ELFCORE=y
 CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
 CONFIG_BINFMT_SCRIPT=y
 # CONFIG_HAVE_AOUT is not set
@@ -792,6 +843,7 @@ CONFIG_PMC_ATOM=y
 CONFIG_NET=y
 CONFIG_COMPAT_NETLINK_MESSAGES=y
 CONFIG_NET_INGRESS=y
+CONFIG_NET_EGRESS=y
 
 #
 # Networking options
@@ -840,10 +892,10 @@ CONFIG_INET_TUNNEL=m
 CONFIG_INET_XFRM_MODE_TRANSPORT=m
 CONFIG_INET_XFRM_MODE_TUNNEL=m
 CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=y
 CONFIG_INET_DIAG=m
 CONFIG_INET_TCP_DIAG=m
 CONFIG_INET_UDP_DIAG=m
+CONFIG_INET_DIAG_DESTROY=y
 CONFIG_TCP_CONG_ADVANCED=y
 CONFIG_TCP_CONG_BIC=m
 CONFIG_TCP_CONG_CUBIC=y
@@ -852,6 +904,7 @@ CONFIG_TCP_CONG_HTCP=m
 CONFIG_TCP_CONG_HSTCP=m
 CONFIG_TCP_CONG_HYBLA=m
 CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_NV=m
 CONFIG_TCP_CONG_SCALABLE=m
 CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
@@ -859,6 +912,7 @@ CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
 CONFIG_TCP_CONG_DCTCP=m
 CONFIG_TCP_CONG_CDG=m
+CONFIG_TCP_CONG_BBR=m
 CONFIG_DEFAULT_CUBIC=y
 # CONFIG_DEFAULT_RENO is not set
 CONFIG_DEFAULT_TCP_CONG="cubic"
@@ -884,6 +938,8 @@ CONFIG_IPV6_SIT_6RD=y
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_GRE=m
+CONFIG_IPV6_FOU=m
+CONFIG_IPV6_FOU_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 CONFIG_IPV6_SUBTREES=y
 CONFIG_IPV6_MROUTE=y
@@ -952,9 +1008,10 @@ CONFIG_NF_TABLES_INET=m
 CONFIG_NF_TABLES_NETDEV=m
 CONFIG_NFT_EXTHDR=m
 CONFIG_NFT_META=m
+CONFIG_NFT_NUMGEN=m
 CONFIG_NFT_CT=m
-CONFIG_NFT_RBTREE=m
-CONFIG_NFT_HASH=m
+CONFIG_NFT_SET_RBTREE=m
+CONFIG_NFT_SET_HASH=m
 CONFIG_NFT_COUNTER=m
 CONFIG_NFT_LOG=m
 CONFIG_NFT_LIMIT=m
@@ -962,9 +1019,14 @@ CONFIG_NFT_MASQ=m
 CONFIG_NFT_REDIR=m
 CONFIG_NFT_NAT=m
 CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
 CONFIG_NFT_REJECT=m
 CONFIG_NFT_REJECT_INET=m
 CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NF_DUP_NETDEV=m
+CONFIG_NFT_DUP_NETDEV=m
+CONFIG_NFT_FWD_NETDEV=m
 CONFIG_NETFILTER_XTABLES=m
 
 #
@@ -1117,7 +1179,6 @@ CONFIG_IP_VS_PE_SIP=m
 #
 CONFIG_NF_DEFRAG_IPV4=m
 CONFIG_NF_CONNTRACK_IPV4=m
-# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
 CONFIG_NF_TABLES_IPV4=m
 CONFIG_NFT_CHAIN_ROUTE_IPV4=m
 CONFIG_NFT_REJECT_IPV4=m
@@ -1244,6 +1305,7 @@ CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
 # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
 CONFIG_SCTP_COOKIE_HMAC_MD5=y
 CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_INET_SCTP_DIAG=m
 # CONFIG_RDS is not set
 # CONFIG_TIPC is not set
 CONFIG_ATM=m
@@ -1270,6 +1332,7 @@ CONFIG_NET_DSA_TAG_BRCM=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
 CONFIG_NET_DSA_TAG_TRAILER=y
+CONFIG_NET_DSA_TAG_QCA=y
 CONFIG_VLAN_8021Q=m
 # CONFIG_VLAN_8021Q_GVRP is not set
 CONFIG_VLAN_8021Q_MVRP=y
@@ -1282,6 +1345,7 @@ CONFIG_LLC2=m
 # CONFIG_LAPB is not set
 CONFIG_PHONET=m
 CONFIG_6LOWPAN=m
+# CONFIG_6LOWPAN_DEBUGFS is not set
 CONFIG_6LOWPAN_NHC=m
 CONFIG_6LOWPAN_NHC_DEST=m
 CONFIG_6LOWPAN_NHC_FRAGMENT=m
@@ -1290,6 +1354,12 @@ CONFIG_6LOWPAN_NHC_IPV6=m
 CONFIG_6LOWPAN_NHC_MOBILITY=m
 CONFIG_6LOWPAN_NHC_ROUTING=m
 CONFIG_6LOWPAN_NHC_UDP=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_HOP=m
+CONFIG_6LOWPAN_GHC_UDP=m
+CONFIG_6LOWPAN_GHC_ICMPV6=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_DEST=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG=m
+CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE=m
 CONFIG_IEEE802154=m
 CONFIG_IEEE802154_NL802154_EXPERIMENTAL=y
 CONFIG_IEEE802154_SOCKET=m
@@ -1343,7 +1413,16 @@ CONFIG_NET_CLS_FLOW=m
 CONFIG_NET_CLS_CGROUP=m
 CONFIG_NET_CLS_BPF=m
 CONFIG_NET_CLS_FLOWER=m
-# CONFIG_NET_EMATCH is not set
+CONFIG_NET_CLS_MATCHALL=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_CANID=m
+CONFIG_NET_EMATCH_IPSET=m
 CONFIG_NET_CLS_ACT=y
 CONFIG_NET_ACT_POLICE=m
 CONFIG_NET_ACT_GACT=m
@@ -1358,15 +1437,23 @@ CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_ACT_VLAN=m
 CONFIG_NET_ACT_BPF=m
 CONFIG_NET_ACT_CONNMARK=m
+CONFIG_NET_ACT_SKBMOD=m
+CONFIG_NET_ACT_IFE=m
+CONFIG_NET_ACT_TUNNEL_KEY=m
+CONFIG_NET_IFE_SKBMARK=m
+CONFIG_NET_IFE_SKBPRIO=m
+CONFIG_NET_IFE_SKBTCINDEX=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
 CONFIG_DNS_RESOLVER=m
 CONFIG_BATMAN_ADV=m
+CONFIG_BATMAN_ADV_BATMAN_V=y
 CONFIG_BATMAN_ADV_BLA=y
 CONFIG_BATMAN_ADV_DAT=y
 CONFIG_BATMAN_ADV_NC=y
 CONFIG_BATMAN_ADV_MCAST=y
+CONFIG_BATMAN_ADV_DEBUGFS=y
 # CONFIG_BATMAN_ADV_DEBUG is not set
 CONFIG_OPENVSWITCH=m
 CONFIG_OPENVSWITCH_GRE=m
@@ -1374,7 +1461,8 @@ CONFIG_OPENVSWITCH_VXLAN=m
 CONFIG_OPENVSWITCH_GENEVE=m
 CONFIG_VSOCKETS=m
 CONFIG_VMWARE_VMCI_VSOCKETS=m
-CONFIG_NETLINK_MMAP=y
+CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_VIRTIO_VSOCKETS_COMMON=m
 CONFIG_NETLINK_DIAG=m
 CONFIG_MPLS=y
 CONFIG_NET_MPLS_GSO=m
@@ -1383,9 +1471,11 @@ CONFIG_MPLS_IPTUNNEL=m
 CONFIG_HSR=m
 CONFIG_NET_SWITCHDEV=y
 CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_NET_NCSI=y
 CONFIG_RPS=y
 CONFIG_RFS_ACCEL=y
 CONFIG_XPS=y
+CONFIG_SOCK_CGROUP_DATA=y
 # CONFIG_CGROUP_NET_PRIO is not set
 CONFIG_CGROUP_NET_CLASSID=y
 CONFIG_NET_RX_BUSY_POLL=y
@@ -1432,6 +1522,14 @@ CONFIG_CAN_SLCAN=m
 CONFIG_CAN_DEV=m
 CONFIG_CAN_CALC_BITTIMING=y
 CONFIG_CAN_LEDS=y
+CONFIG_CAN_C_CAN=m
+CONFIG_CAN_C_CAN_PLATFORM=m
+CONFIG_CAN_C_CAN_PCI=m
+CONFIG_CAN_CC770=m
+# CONFIG_CAN_CC770_ISA is not set
+CONFIG_CAN_CC770_PLATFORM=m
+CONFIG_CAN_IFI_CANFD=m
+CONFIG_CAN_M_CAN=m
 CONFIG_CAN_SJA1000=m
 # CONFIG_CAN_SJA1000_ISA is not set
 CONFIG_CAN_SJA1000_PLATFORM=m
@@ -1442,13 +1540,8 @@ CONFIG_CAN_PEAK_PCI=m
 CONFIG_CAN_PEAK_PCIEC=y
 CONFIG_CAN_KVASER_PCI=m
 CONFIG_CAN_PLX_PCI=m
-CONFIG_CAN_C_CAN=m
-CONFIG_CAN_C_CAN_PLATFORM=m
-CONFIG_CAN_C_CAN_PCI=m
-CONFIG_CAN_M_CAN=m
-CONFIG_CAN_CC770=m
-# CONFIG_CAN_CC770_ISA is not set
-CONFIG_CAN_CC770_PLATFORM=m
+CONFIG_CAN_SOFTING=m
+# CONFIG_CAN_SOFTING_CS is not set
 
 #
 # CAN SPI interfaces
@@ -1464,8 +1557,6 @@ CONFIG_CAN_GS_USB=m
 CONFIG_CAN_KVASER_USB=m
 CONFIG_CAN_PEAK_USB=m
 CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_SOFTING=m
-# CONFIG_CAN_SOFTING_CS is not set
 # CONFIG_CAN_DEBUG_DEVICES is not set
 CONFIG_IRDA=m
 
@@ -1535,6 +1626,7 @@ CONFIG_BT_HIDP=m
 CONFIG_BT_HS=y
 CONFIG_BT_LE=y
 CONFIG_BT_6LOWPAN=m
+CONFIG_BT_LEDS=y
 # CONFIG_BT_SELFTEST is not set
 CONFIG_BT_DEBUGFS=y
 
@@ -1558,6 +1650,8 @@ CONFIG_BT_HCIUART_3WIRE=y
 CONFIG_BT_HCIUART_INTEL=y
 CONFIG_BT_HCIUART_BCM=y
 CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_AG6XX=y
+CONFIG_BT_HCIUART_MRVL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
 CONFIG_BT_HCIBFUSB=m
@@ -1571,8 +1665,12 @@ CONFIG_BT_MRVL_SDIO=m
 CONFIG_BT_ATH3K=m
 CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
+CONFIG_AF_RXRPC_IPV6=y
+# CONFIG_AF_RXRPC_INJECT_LOSS is not set
 # CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
+CONFIG_RXKAD=y
+CONFIG_AF_KCM=m
+CONFIG_STREAM_PARSER=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
 CONFIG_WIRELESS_EXT=y
@@ -1583,7 +1681,6 @@ CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
 CONFIG_CFG80211_DEFAULT_PS=y
 # CONFIG_CFG80211_DEBUGFS is not set
 # CONFIG_CFG80211_INTERNAL_REGDB is not set
@@ -1636,7 +1733,6 @@ CONFIG_NFC_HCI=m
 #
 # Near Field Communication (NFC) devices
 #
-CONFIG_NFC_PN533=m
 CONFIG_NFC_WILINK=m
 CONFIG_NFC_TRF7970A=m
 CONFIG_NFC_MEI_PHY=m
@@ -1646,19 +1742,25 @@ CONFIG_NFC_FDP=m
 CONFIG_NFC_FDP_I2C=m
 CONFIG_NFC_PN544=m
 CONFIG_NFC_PN544_MEI=m
+CONFIG_NFC_PN533=m
+CONFIG_NFC_PN533_USB=m
+CONFIG_NFC_PN533_I2C=m
 CONFIG_NFC_MICROREAD=m
 CONFIG_NFC_MICROREAD_MEI=m
 CONFIG_NFC_MRVL=m
 CONFIG_NFC_MRVL_USB=m
 CONFIG_NFC_MRVL_I2C=m
-CONFIG_NFC_ST21NFCA=m
 CONFIG_NFC_ST_NCI=m
 CONFIG_NFC_ST_NCI_I2C=m
 # CONFIG_NFC_ST_NCI_SPI is not set
 # CONFIG_NFC_NXP_NCI is not set
 # CONFIG_NFC_S3FWRN5_I2C is not set
+# CONFIG_NFC_ST95HF is not set
 CONFIG_LWTUNNEL=y
-CONFIG_HAVE_BPF_JIT=y
+CONFIG_DST_CACHE=y
+CONFIG_NET_DEVLINK=m
+CONFIG_MAY_USE_DEVLINK=m
+CONFIG_HAVE_EBPF_JIT=y
 
 #
 # Device Drivers
@@ -1682,12 +1784,13 @@ CONFIG_ALLOW_DEV_COREDUMP=y
 CONFIG_DEV_COREDUMP=y
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
 CONFIG_SYS_HYPERVISOR=y
 # CONFIG_GENERIC_CPU_DEVICES is not set
 CONFIG_GENERIC_CPU_AUTOPROBE=y
 CONFIG_REGMAP=y
 CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=m
+CONFIG_REGMAP_SPI=y
 CONFIG_REGMAP_MMIO=y
 CONFIG_REGMAP_IRQ=y
 CONFIG_DMA_SHARED_BUFFER=y
@@ -1788,31 +1891,8 @@ CONFIG_MTD_BLOCK2MTD=m
 #
 # Disk-On-Chip Device Drivers
 #
-CONFIG_MTD_DOCG3=m
-CONFIG_BCH_CONST_M=14
-CONFIG_BCH_CONST_T=4
-CONFIG_MTD_NAND_ECC=m
-CONFIG_MTD_NAND_ECC_SMC=y
-CONFIG_MTD_NAND=m
-# CONFIG_MTD_NAND_ECC_BCH is not set
-CONFIG_MTD_SM_COMMON=m
-CONFIG_MTD_NAND_DENALI=m
-CONFIG_MTD_NAND_DENALI_PCI=m
-CONFIG_MTD_NAND_DENALI_DT=m
-CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
-CONFIG_MTD_NAND_GPIO=m
-# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
-CONFIG_MTD_NAND_IDS=m
-CONFIG_MTD_NAND_RICOH=m
-CONFIG_MTD_NAND_DISKONCHIP=m
-# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
-CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
-# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
-CONFIG_MTD_NAND_DOCG4=m
-CONFIG_MTD_NAND_CAFE=m
-CONFIG_MTD_NAND_NANDSIM=m
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_NAND_HISI504 is not set
+# CONFIG_MTD_DOCG3 is not set
+# CONFIG_MTD_NAND is not set
 # CONFIG_MTD_ONENAND is not set
 
 #
@@ -1852,7 +1932,6 @@ CONFIG_BLK_DEV_FD=m
 # CONFIG_PARIDE is not set
 CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
 CONFIG_ZRAM=m
-CONFIG_ZRAM_LZ4_COMPRESS=y
 CONFIG_BLK_CPQ_CISS_DA=m
 # CONFIG_CISS_SCSI_TAPE is not set
 CONFIG_BLK_DEV_DAC960=m
@@ -1880,7 +1959,14 @@ CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
 CONFIG_BLK_DEV_RBD=m
 CONFIG_BLK_DEV_RSXX=m
+CONFIG_NVME_CORE=m
 CONFIG_BLK_DEV_NVME=m
+# CONFIG_BLK_DEV_NVME_SCSI is not set
+CONFIG_NVME_FABRICS=m
+CONFIG_NVME_RDMA=m
+CONFIG_NVME_TARGET=m
+CONFIG_NVME_TARGET_LOOP=m
+CONFIG_NVME_TARGET_RDMA=m
 
 #
 # Misc devices
@@ -1902,19 +1988,16 @@ CONFIG_APDS9802ALS=m
 CONFIG_ISL29003=m
 CONFIG_ISL29020=m
 CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1780=m
 CONFIG_SENSORS_BH1770=m
 CONFIG_SENSORS_APDS990X=m
 CONFIG_HMC6352=m
 CONFIG_DS1682=m
 # CONFIG_TI_DAC7512 is not set
 CONFIG_VMWARE_BALLOON=m
-CONFIG_BMP085=y
-CONFIG_BMP085_I2C=m
-# CONFIG_BMP085_SPI is not set
 CONFIG_USB_SWITCH_FSA9480=m
 # CONFIG_LATTICE_ECP3_CONFIG is not set
 # CONFIG_SRAM is not set
+# CONFIG_PANEL is not set
 CONFIG_C2PORT=m
 CONFIG_C2PORT_DURAMAR_2150=m
 
@@ -1957,6 +2040,11 @@ CONFIG_INTEL_MIC_BUS=m
 CONFIG_SCIF_BUS=m
 
 #
+# VOP Bus Driver
+#
+CONFIG_VOP_BUS=m
+
+#
 # Intel MIC Host Driver
 #
 CONFIG_INTEL_MIC_HOST=m
@@ -1975,12 +2063,17 @@ CONFIG_SCIF=m
 # Intel MIC Coprocessor State Management (COSM) Drivers
 #
 CONFIG_MIC_COSM=m
+
+#
+# VOP Driver
+#
+CONFIG_VOP=m
+CONFIG_VHOST_RING=m
 CONFIG_GENWQE=m
 CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
 CONFIG_ECHO=m
 # CONFIG_CXL_BASE is not set
-# CONFIG_CXL_KERNEL_API is not set
-# CONFIG_CXL_EEH is not set
+# CONFIG_CXL_AFU_DRIVER_OPS is not set
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
@@ -2066,9 +2159,12 @@ CONFIG_SCSI_MPT3SAS=m
 CONFIG_SCSI_MPT2SAS_MAX_SGE=128
 CONFIG_SCSI_MPT3SAS_MAX_SGE=128
 CONFIG_SCSI_MPT2SAS=m
+CONFIG_SCSI_SMARTPQI=m
 CONFIG_SCSI_UFSHCD=m
 CONFIG_SCSI_UFSHCD_PCI=m
+# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
 CONFIG_SCSI_UFSHCD_PLATFORM=m
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
 CONFIG_SCSI_FLASHPOINT=y
@@ -2108,6 +2204,7 @@ CONFIG_SCSI_IPR=m
 CONFIG_SCSI_QLOGIC_1280=m
 CONFIG_SCSI_QLA_FC=m
 CONFIG_TCM_QLA2XXX=m
+# CONFIG_TCM_QLA2XXX_DEBUG is not set
 CONFIG_SCSI_QLA_ISCSI=m
 CONFIG_SCSI_LPFC=m
 # CONFIG_SCSI_LPFC_DEBUG_FS is not set
@@ -2163,6 +2260,9 @@ CONFIG_ATA_BMDMA=y
 # SATA SFF controllers with BMDMA
 #
 CONFIG_ATA_PIIX=m
+CONFIG_SATA_DWC=m
+# CONFIG_SATA_DWC_OLD_DMA is not set
+# CONFIG_SATA_DWC_DEBUG is not set
 CONFIG_SATA_MV=m
 CONFIG_SATA_NV=m
 CONFIG_SATA_PROMISE=m
@@ -2245,14 +2345,13 @@ CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_MQ_DEFAULT is not set
 # CONFIG_DM_DEBUG is not set
 CONFIG_DM_BUFIO=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
 CONFIG_DM_BIO_PRISON=m
 CONFIG_DM_PERSISTENT_DATA=m
-# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
 CONFIG_DM_THIN_PROVISIONING=m
 CONFIG_DM_CACHE=m
-CONFIG_DM_CACHE_MQ=m
 CONFIG_DM_CACHE_SMQ=m
 CONFIG_DM_CACHE_CLEANER=m
 CONFIG_DM_ERA=m
@@ -2267,6 +2366,7 @@ CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
 CONFIG_DM_FLAKEY=m
 CONFIG_DM_VERITY=m
+CONFIG_DM_VERITY_FEC=y
 CONFIG_DM_SWITCH=m
 CONFIG_DM_LOG_WRITES=m
 CONFIG_TARGET_CORE=m
@@ -2277,6 +2377,7 @@ CONFIG_TCM_USER2=m
 CONFIG_LOOPBACK_TARGET=m
 CONFIG_TCM_FC=m
 CONFIG_ISCSI_TARGET=m
+CONFIG_ISCSI_TARGET_CXGB4=m
 CONFIG_SBP_TARGET=m
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
@@ -2315,13 +2416,12 @@ CONFIG_MACVTAP=m
 CONFIG_IPVLAN=m
 CONFIG_VXLAN=m
 CONFIG_GENEVE=m
+CONFIG_GTP=m
+CONFIG_MACSEC=m
 CONFIG_NETCONSOLE=m
 CONFIG_NETCONSOLE_DYNAMIC=y
 CONFIG_NETPOLL=y
 CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_RIONET=m
-CONFIG_RIONET_TX_SIZE=128
-CONFIG_RIONET_RX_SIZE=128
 CONFIG_TUN=m
 # CONFIG_TUN_VNET_CROSS_LE is not set
 CONFIG_VETH=m
@@ -2369,23 +2469,20 @@ CONFIG_CAIF_SPI_SLAVE=m
 CONFIG_CAIF_SPI_SYNC=y
 CONFIG_CAIF_HSI=m
 CONFIG_CAIF_VIRTIO=m
-CONFIG_VHOST_NET=m
-CONFIG_VHOST_SCSI=m
-CONFIG_VHOST_RING=m
-CONFIG_VHOST=m
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
 
 #
 # Distributed Switch Architecture drivers
 #
-CONFIG_NET_DSA_MV88E6XXX=m
 CONFIG_NET_DSA_MV88E6060=m
-CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
-CONFIG_NET_DSA_MV88E6131=m
-CONFIG_NET_DSA_MV88E6123_61_65=m
-CONFIG_NET_DSA_MV88E6171=m
-CONFIG_NET_DSA_MV88E6352=m
 CONFIG_NET_DSA_BCM_SF2=m
+CONFIG_B53=m
+CONFIG_B53_SPI_DRIVER=m
+CONFIG_B53_MDIO_DRIVER=m
+CONFIG_B53_MMAP_DRIVER=m
+CONFIG_B53_SRAB_DRIVER=m
+CONFIG_NET_DSA_MV88E6XXX=m
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
+CONFIG_NET_DSA_QCA8K=m
 CONFIG_ETHERNET=y
 CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
@@ -2401,6 +2498,8 @@ CONFIG_NET_VENDOR_ALTEON=y
 CONFIG_ACENIC=m
 # CONFIG_ACENIC_OMIT_TIGON_I is not set
 CONFIG_ALTERA_TSE=m
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_ENA_ETHERNET=m
 CONFIG_NET_VENDOR_AMD=y
 CONFIG_AMD8111_ETH=m
 CONFIG_PCNET32=m
@@ -2427,7 +2526,6 @@ CONFIG_CNIC=m
 CONFIG_TIGON3=m
 CONFIG_BNX2X=m
 CONFIG_BNX2X_SRIOV=y
-CONFIG_BNX2X_VXLAN=y
 CONFIG_BNXT=m
 CONFIG_BNXT_SRIOV=y
 CONFIG_NET_VENDOR_BROCADE=y
@@ -2439,6 +2537,7 @@ CONFIG_CHELSIO_T1_1G=y
 CONFIG_CHELSIO_T3=m
 CONFIG_CHELSIO_T4=m
 CONFIG_CHELSIO_T4VF=m
+CONFIG_CHELSIO_LIB=m
 CONFIG_NET_VENDOR_CISCO=y
 CONFIG_ENIC=m
 CONFIG_CX_ECAT=m
@@ -2463,7 +2562,6 @@ CONFIG_SUNDANCE=m
 CONFIG_NET_VENDOR_EMULEX=y
 CONFIG_BE2NET=m
 CONFIG_BE2NET_HWMON=y
-CONFIG_BE2NET_VXLAN=y
 # CONFIG_NET_VENDOR_EZCHIP is not set
 CONFIG_NET_VENDOR_EXAR=y
 CONFIG_S2IO=m
@@ -2477,25 +2575,24 @@ CONFIG_NET_VENDOR_INTEL=y
 CONFIG_E100=m
 CONFIG_E1000=m
 CONFIG_E1000E=m
+CONFIG_E1000E_HWTS=y
 CONFIG_IGB=m
 CONFIG_IGB_HWMON=y
 CONFIG_IGB_DCA=y
 CONFIG_IGBVF=m
 CONFIG_IXGB=m
 CONFIG_IXGBE=m
-CONFIG_IXGBE_VXLAN=y
 CONFIG_IXGBE_HWMON=y
 CONFIG_IXGBE_DCA=y
 CONFIG_IXGBEVF=m
 CONFIG_I40E=m
-CONFIG_I40E_VXLAN=y
 CONFIG_I40EVF=m
 CONFIG_FM10K=m
-# CONFIG_FM10K_VXLAN is not set
 CONFIG_NET_VENDOR_I825XX=y
 CONFIG_JME=m
 CONFIG_NET_VENDOR_MARVELL=y
 CONFIG_MVMDIO=m
+# CONFIG_MVNETA_BM is not set
 CONFIG_SKGE=m
 # CONFIG_SKGE_DEBUG is not set
 CONFIG_SKGE_GENESIS=y
@@ -2503,12 +2600,12 @@ CONFIG_SKY2=m
 # CONFIG_SKY2_DEBUG is not set
 CONFIG_NET_VENDOR_MELLANOX=y
 CONFIG_MLX4_EN=m
-CONFIG_MLX4_EN_VXLAN=y
 CONFIG_MLX4_CORE=m
 CONFIG_MLX4_DEBUG=y
 CONFIG_MLX5_CORE=m
 CONFIG_MLX5_CORE_EN=y
 CONFIG_MLXSW_CORE=m
+CONFIG_MLXSW_CORE_HWMON=y
 CONFIG_MLXSW_PCI=m
 CONFIG_MLXSW_SWITCHX2=m
 CONFIG_MLXSW_SPECTRUM=m
@@ -2528,6 +2625,9 @@ CONFIG_FEALNX=m
 CONFIG_NET_VENDOR_NATSEMI=y
 CONFIG_NATSEMI=m
 CONFIG_NS83820=m
+CONFIG_NET_VENDOR_NETRONOME=y
+CONFIG_NFP_NETVF=m
+# CONFIG_NFP_NET_DEBUG is not set
 CONFIG_NET_VENDOR_8390=y
 CONFIG_PCMCIA_AXNET=m
 CONFIG_NE2K_PCI=m
@@ -2543,13 +2643,14 @@ CONFIG_NET_VENDOR_QLOGIC=y
 CONFIG_QLA3XXX=m
 CONFIG_QLCNIC=m
 CONFIG_QLCNIC_SRIOV=y
-CONFIG_QLCNIC_VXLAN=y
 CONFIG_QLCNIC_HWMON=y
 CONFIG_QLGE=m
 CONFIG_NETXEN_NIC=m
 CONFIG_QED=m
+CONFIG_QED_SRIOV=y
 CONFIG_QEDE=m
 CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_QCOM_EMAC=m
 CONFIG_NET_VENDOR_REALTEK=y
 CONFIG_ATP=m
 CONFIG_8139CP=m
@@ -2608,45 +2709,56 @@ CONFIG_WIZNET_W5300=m
 # CONFIG_WIZNET_BUS_DIRECT is not set
 # CONFIG_WIZNET_BUS_INDIRECT is not set
 CONFIG_WIZNET_BUS_ANY=y
+CONFIG_WIZNET_W5100_SPI=m
 CONFIG_NET_VENDOR_XIRCOM=y
 CONFIG_PCMCIA_XIRC2PS=m
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
 CONFIG_NET_SB1000=m
 CONFIG_PHYLIB=m
+CONFIG_SWPHY=y
+
+#
+# MDIO bus device drivers
+#
+CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_CAVIUM=m
+# CONFIG_MDIO_GPIO is not set
+CONFIG_MDIO_OCTEON=m
+# CONFIG_MDIO_THUNDER is not set
 
 #
 # MII PHY device drivers
 #
+CONFIG_AMD_PHY=m
 CONFIG_AQUANTIA_PHY=m
 CONFIG_AT803X_PHY=m
-CONFIG_AMD_PHY=m
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_TERANETICS_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BCM_NET_PHYLIB=m
-CONFIG_BROADCOM_PHY=m
 CONFIG_BCM7XXX_PHY=m
 CONFIG_BCM87XX_PHY=m
+CONFIG_BCM_NET_PHYLIB=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_DP83848_PHY=m
+CONFIG_DP83867_PHY=m
+CONFIG_FIXED_PHY=m
 CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
+CONFIG_INTEL_XWAY_PHY=m
 CONFIG_LSI_ET1011C_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_MARVELL_PHY=m
 CONFIG_MICREL_PHY=m
-CONFIG_DP83848_PHY=m
-CONFIG_DP83867_PHY=m
 CONFIG_MICROCHIP_PHY=m
-CONFIG_FIXED_PHY=m
-CONFIG_MDIO_BITBANG=m
-# CONFIG_MDIO_GPIO is not set
-CONFIG_MDIO_OCTEON=m
-CONFIG_MDIO_BCM_UNIMAC=m
+CONFIG_MICROSEMI_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_STE10XP=m
+CONFIG_TERANETICS_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_XILINX_GMII2RGMII=m
 # CONFIG_MICREL_KS8995MA is not set
 CONFIG_PLIP=m
 CONFIG_PPP=m
@@ -2695,6 +2807,7 @@ CONFIG_USB_NET_NET1080=m
 CONFIG_USB_NET_PLUSB=m
 CONFIG_USB_NET_MCS7830=m
 CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
 CONFIG_USB_NET_CDC_SUBSET=m
 CONFIG_USB_ALI_M5632=y
 CONFIG_USB_AN2720=y
@@ -2714,28 +2827,10 @@ CONFIG_USB_SIERRA_NET=m
 CONFIG_USB_VL600=m
 CONFIG_USB_NET_CH9200=m
 CONFIG_WLAN=y
-CONFIG_PCMCIA_RAYCS=m
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AIRO=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-CONFIG_PRISM54=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_WLAN_VENDOR_ADMTEK=y
 CONFIG_ADM8211=m
-CONFIG_RTL8180=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-# CONFIG_MAC80211_HWSIM is not set
-CONFIG_MWL8K=m
 CONFIG_ATH_COMMON=m
-CONFIG_ATH_CARDS=m
+CONFIG_WLAN_VENDOR_ATH=y
 # CONFIG_ATH_DEBUG is not set
 CONFIG_ATH5K=m
 # CONFIG_ATH5K_DEBUG is not set
@@ -2756,6 +2851,7 @@ CONFIG_ATH9K_RFKILL=y
 CONFIG_ATH9K_PCOEM=y
 CONFIG_ATH9K_HTC=m
 # CONFIG_ATH9K_HTC_DEBUGFS is not set
+# CONFIG_ATH9K_HWRNG is not set
 CONFIG_CARL9170=m
 CONFIG_CARL9170_LEDS=y
 # CONFIG_CARL9170_DEBUGFS is not set
@@ -2777,6 +2873,12 @@ CONFIG_ATH10K_DEBUGFS=y
 # CONFIG_ATH10K_TRACING is not set
 CONFIG_WCN36XX=m
 # CONFIG_WCN36XX_DEBUGFS is not set
+CONFIG_WLAN_VENDOR_ATMEL=y
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_WLAN_VENDOR_BROADCOM=y
 CONFIG_B43=m
 CONFIG_B43_BCMA=y
 CONFIG_B43_SSB=y
@@ -2816,12 +2918,10 @@ CONFIG_BRCMFMAC_USB=y
 CONFIG_BRCMFMAC_PCIE=y
 # CONFIG_BRCM_TRACING is not set
 # CONFIG_BRCMDBG is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_AIRO=m
+CONFIG_AIRO_CS=m
+CONFIG_WLAN_VENDOR_INTEL=y
 CONFIG_IPW2100=m
 CONFIG_IPW2100_MONITOR=y
 # CONFIG_IPW2100_DEBUG is not set
@@ -2833,13 +2933,22 @@ CONFIG_IPW2200_QOS=y
 # CONFIG_IPW2200_DEBUG is not set
 CONFIG_LIBIPW=m
 # CONFIG_LIBIPW_DEBUG is not set
+CONFIG_IWLEGACY=m
+CONFIG_IWL4965=m
+CONFIG_IWL3945=m
+
+#
+# iwl3945 / iwl4965 Debugging Options
+#
+# CONFIG_IWLEGACY_DEBUG is not set
+# CONFIG_IWLEGACY_DEBUGFS is not set
 CONFIG_IWLWIFI=m
 CONFIG_IWLWIFI_LEDS=y
 CONFIG_IWLDVM=m
 CONFIG_IWLMVM=m
 CONFIG_IWLWIFI_OPMODE_MODULAR=y
 # CONFIG_IWLWIFI_BCAST_FILTERING is not set
-# CONFIG_IWLWIFI_UAPSD is not set
+# CONFIG_IWLWIFI_PCIE_RTPM is not set
 
 #
 # Debugging Options
@@ -2847,22 +2956,13 @@ CONFIG_IWLWIFI_OPMODE_MODULAR=y
 # CONFIG_IWLWIFI_DEBUG is not set
 # CONFIG_IWLWIFI_DEBUGFS is not set
 CONFIG_IWLWIFI_DEVICE_TRACING=y
-CONFIG_IWLEGACY=m
-CONFIG_IWL4965=m
-CONFIG_IWL3945=m
-
-#
-# iwl3945 / iwl4965 Debugging Options
-#
-# CONFIG_IWLEGACY_DEBUG is not set
-# CONFIG_IWLEGACY_DEBUGFS is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_CS=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-# CONFIG_LIBERTAS_DEBUG is not set
-CONFIG_LIBERTAS_MESH=y
+CONFIG_WLAN_VENDOR_INTERSIL=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
 CONFIG_HERMES=m
 CONFIG_HERMES_PRISM=y
 CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -2879,6 +2979,26 @@ CONFIG_P54_PCI=m
 CONFIG_P54_SPI=m
 # CONFIG_P54_SPI_DEFAULT_EEPROM is not set
 CONFIG_P54_LEDS=y
+CONFIG_PRISM54=m
+CONFIG_WLAN_VENDOR_MARVELL=y
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_CS=m
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_MWIFIEX_PCIE=m
+CONFIG_MWIFIEX_USB=m
+CONFIG_MWL8K=m
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_MT7601U=m
+CONFIG_WLAN_VENDOR_RALINK=y
 CONFIG_RT2X00=m
 CONFIG_RT2400PCI=m
 CONFIG_RT2500PCI=m
@@ -2908,8 +3028,10 @@ CONFIG_RT2X00_LIB_CRYPTO=y
 CONFIG_RT2X00_LIB_LEDS=y
 # CONFIG_RT2X00_LIB_DEBUGFS is not set
 # CONFIG_RT2X00_DEBUG is not set
-CONFIG_WL_MEDIATEK=y
-CONFIG_MT7601U=m
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
 CONFIG_RTL_CARDS=m
 CONFIG_RTL8192CE=m
 CONFIG_RTL8192SE=m
@@ -2929,29 +3051,32 @@ CONFIG_RTL8723_COMMON=m
 CONFIG_RTLBTCOEXIST=m
 CONFIG_RTL8XXXU=m
 CONFIG_RTL8XXXU_UNTESTED=y
-CONFIG_WL_TI=y
+CONFIG_WLAN_VENDOR_RSI=y
+CONFIG_RSI_91X=m
+# CONFIG_RSI_DEBUGFS is not set
+CONFIG_RSI_SDIO=m
+CONFIG_RSI_USB=m
+CONFIG_WLAN_VENDOR_ST=y
+CONFIG_CW1200=m
+CONFIG_CW1200_WLAN_SDIO=m
+CONFIG_CW1200_WLAN_SPI=m
+CONFIG_WLAN_VENDOR_TI=y
 CONFIG_WL1251=m
 # CONFIG_WL1251_SPI is not set
 CONFIG_WL1251_SDIO=m
 CONFIG_WL12XX=m
 CONFIG_WL18XX=m
 CONFIG_WLCORE=m
-# CONFIG_WLCORE_SPI is not set
 CONFIG_WLCORE_SDIO=m
 CONFIG_WILINK_PLATFORM_DATA=y
+CONFIG_WLAN_VENDOR_ZYDAS=y
+CONFIG_USB_ZD1201=m
 CONFIG_ZD1211RW=m
 # CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-CONFIG_MWIFIEX_PCIE=m
-CONFIG_MWIFIEX_USB=m
-CONFIG_CW1200=m
-CONFIG_CW1200_WLAN_SDIO=m
-CONFIG_CW1200_WLAN_SPI=m
-CONFIG_RSI_91X=m
-# CONFIG_RSI_DEBUGFS is not set
-CONFIG_RSI_SDIO=m
-CONFIG_RSI_USB=m
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_WL3501=m
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_USB_NET_RNDIS_WLAN=m
 
 #
 # WiMAX Wireless Broadband devices
@@ -2967,6 +3092,7 @@ CONFIG_IEEE802154_AT86RF230=m
 # CONFIG_IEEE802154_MRF24J40 is not set
 # CONFIG_IEEE802154_CC2520 is not set
 CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_ADF7242 is not set
 CONFIG_XEN_NETDEV_FRONTEND=m
 CONFIG_XEN_NETDEV_BACKEND=m
 CONFIG_VMXNET3=m
@@ -3046,10 +3172,6 @@ CONFIG_HISAX_ST5481=m
 CONFIG_HISAX_HFCUSB=m
 CONFIG_HISAX_HFC4S8S=m
 CONFIG_HISAX_FRITZ_PCIPNP=m
-
-#
-# Active cards
-#
 CONFIG_ISDN_CAPI=m
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_CAPI20=m
@@ -3129,13 +3251,14 @@ CONFIG_INPUT_EVDEV=m
 # Input Device Drivers
 #
 CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADC is not set
 CONFIG_KEYBOARD_ADP5588=m
 CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=m
 CONFIG_KEYBOARD_QT1070=m
 CONFIG_KEYBOARD_QT2160=m
 # CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_GPIO is not set
+CONFIG_KEYBOARD_GPIO=m
 # CONFIG_KEYBOARD_GPIO_POLLED is not set
 CONFIG_KEYBOARD_TCA6416=m
 CONFIG_KEYBOARD_TCA8418=m
@@ -3155,6 +3278,7 @@ CONFIG_KEYBOARD_MPR121=m
 CONFIG_INPUT_MOUSE=y
 CONFIG_MOUSE_PS2=m
 CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
 CONFIG_MOUSE_PS2_LOGIPS2PP=y
 CONFIG_MOUSE_PS2_SYNAPTICS=y
 CONFIG_MOUSE_PS2_CYPRESS=y
@@ -3213,6 +3337,7 @@ CONFIG_TABLET_USB_AIPTEK=m
 CONFIG_TABLET_USB_GTCO=m
 CONFIG_TABLET_USB_HANWANG=m
 CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_PEGASUS=m
 CONFIG_TABLET_SERIAL_WACOM4=m
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_PROPERTIES=y
@@ -3222,6 +3347,7 @@ CONFIG_TOUCHSCREEN_AD7879=m
 CONFIG_TOUCHSCREEN_AD7879_I2C=m
 # CONFIG_TOUCHSCREEN_AD7879_SPI is not set
 CONFIG_TOUCHSCREEN_ATMEL_MXT=m
+CONFIG_TOUCHSCREEN_ATMEL_MXT_T37=y
 CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
 CONFIG_TOUCHSCREEN_BU21013=m
 CONFIG_TOUCHSCREEN_CY8CTMG110=m
@@ -3234,11 +3360,12 @@ CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m
 CONFIG_TOUCHSCREEN_DYNAPRO=m
 CONFIG_TOUCHSCREEN_HAMPSHIRE=m
 CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_FT6236=m
+CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
 CONFIG_TOUCHSCREEN_FUJITSU=m
 CONFIG_TOUCHSCREEN_GOODIX=m
 CONFIG_TOUCHSCREEN_ILI210X=m
 CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_EKTF2127=m
 CONFIG_TOUCHSCREEN_ELAN=m
 CONFIG_TOUCHSCREEN_ELO=m
 CONFIG_TOUCHSCREEN_WACOM_W8001=m
@@ -3246,6 +3373,7 @@ CONFIG_TOUCHSCREEN_WACOM_I2C=m
 CONFIG_TOUCHSCREEN_MAX11801=m
 CONFIG_TOUCHSCREEN_MCS5000=m
 CONFIG_TOUCHSCREEN_MMS114=m
+CONFIG_TOUCHSCREEN_MELFAS_MIP4=m
 CONFIG_TOUCHSCREEN_MTOUCH=m
 CONFIG_TOUCHSCREEN_INEXIO=m
 CONFIG_TOUCHSCREEN_MK712=m
@@ -3287,8 +3415,12 @@ CONFIG_TOUCHSCREEN_TSC200X_CORE=m
 CONFIG_TOUCHSCREEN_TSC2004=m
 # CONFIG_TOUCHSCREEN_TSC2005 is not set
 CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_RM_TS=m
+CONFIG_TOUCHSCREEN_SILEAD=m
+CONFIG_TOUCHSCREEN_SIS_I2C=m
 CONFIG_TOUCHSCREEN_ST1232=m
 CONFIG_TOUCHSCREEN_SUR40=m
+CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
 # CONFIG_TOUCHSCREEN_SX8654 is not set
 CONFIG_TOUCHSCREEN_TPS6507X=m
 CONFIG_TOUCHSCREEN_ZFORCE=m
@@ -3308,6 +3440,7 @@ CONFIG_INPUT_APANEL=m
 CONFIG_INPUT_GP2A=m
 # CONFIG_INPUT_GPIO_BEEPER is not set
 # CONFIG_INPUT_GPIO_TILT_POLLED is not set
+# CONFIG_INPUT_GPIO_DECODER is not set
 CONFIG_INPUT_ATLAS_BTNS=m
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
@@ -3330,9 +3463,18 @@ CONFIG_INPUT_CMA3000=m
 CONFIG_INPUT_CMA3000_I2C=m
 CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
 CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
+CONFIG_INPUT_SOC_BUTTON_ARRAY=m
 # CONFIG_INPUT_DRV260X_HAPTICS is not set
 # CONFIG_INPUT_DRV2665_HAPTICS is not set
 # CONFIG_INPUT_DRV2667_HAPTICS is not set
+CONFIG_RMI4_CORE=m
+CONFIG_RMI4_I2C=m
+CONFIG_RMI4_SPI=m
+CONFIG_RMI4_2D_SENSOR=y
+CONFIG_RMI4_F11=y
+CONFIG_RMI4_F12=y
+CONFIG_RMI4_F30=y
+CONFIG_RMI4_F54=y
 
 #
 # Hardware I/O ports
@@ -3368,7 +3510,6 @@ CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_HW_CONSOLE=y
 CONFIG_VT_HW_CONSOLE_BINDING=y
 CONFIG_UNIX98_PTYS=y
-CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
 # CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_NONSTANDARD=y
 CONFIG_ROCKETPORT=m
@@ -3395,18 +3536,24 @@ CONFIG_SERIAL_EARLYCON=y
 CONFIG_SERIAL_8250=y
 # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
 CONFIG_SERIAL_8250_PNP=y
+# CONFIG_SERIAL_8250_FINTEK is not set
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_8250_DMA=y
 CONFIG_SERIAL_8250_PCI=y
 CONFIG_SERIAL_8250_CS=m
 CONFIG_SERIAL_8250_NR_UARTS=32
 CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-# CONFIG_SERIAL_8250_EXTENDED is not set
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_RSA=y
 # CONFIG_SERIAL_8250_FSL is not set
 CONFIG_SERIAL_8250_DW=m
 CONFIG_SERIAL_8250_RT288X=y
-# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_LPSS=y
 CONFIG_SERIAL_8250_MID=y
+CONFIG_SERIAL_8250_MOXA=m
 
 #
 # Non-8250 serial port support
@@ -3444,7 +3591,6 @@ CONFIG_IPMI_HANDLER=m
 # CONFIG_IPMI_PANIC_EVENT is not set
 CONFIG_IPMI_DEVICE_INTERFACE=m
 CONFIG_IPMI_SI=m
-# CONFIG_IPMI_SI_PROBE_DEFAULTS is not set
 CONFIG_IPMI_SSIF=m
 CONFIG_IPMI_WATCHDOG=m
 CONFIG_IPMI_POWEROFF=m
@@ -3474,7 +3620,9 @@ CONFIG_HPET_MMAP=y
 CONFIG_HPET_MMAP_DEFAULT=y
 CONFIG_HANGCHECK_TIMER=m
 CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_CORE=m
 CONFIG_TCG_TIS=m
+# CONFIG_TCG_TIS_SPI is not set
 CONFIG_TCG_TIS_I2C_ATMEL=m
 CONFIG_TCG_TIS_I2C_INFINEON=m
 CONFIG_TCG_TIS_I2C_NUVOTON=m
@@ -3483,7 +3631,9 @@ CONFIG_TCG_ATMEL=m
 CONFIG_TCG_INFINEON=m
 CONFIG_TCG_XEN=m
 CONFIG_TCG_CRB=m
-# CONFIG_TCG_TIS_ST33ZP24 is not set
+# CONFIG_TCG_VTPM_PROXY is not set
+# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
+# CONFIG_TCG_TIS_ST33ZP24_SPI is not set
 CONFIG_TELCLOCK=m
 CONFIG_DEVPORT=y
 # CONFIG_XILLYBUS is not set
@@ -3548,6 +3698,7 @@ CONFIG_I2C_SCMI=m
 CONFIG_I2C_DESIGNWARE_CORE=m
 CONFIG_I2C_DESIGNWARE_PLATFORM=m
 CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
 # CONFIG_I2C_EMEV2 is not set
 # CONFIG_I2C_GPIO is not set
 CONFIG_I2C_OCORES=m
@@ -3585,28 +3736,30 @@ CONFIG_SPI_MASTER=y
 # SPI Master Controller Drivers
 #
 CONFIG_SPI_ALTERA=m
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
 CONFIG_SPI_BITBANG=m
 CONFIG_SPI_BUTTERFLY=m
 # CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_DESIGNWARE=m
+CONFIG_SPI_DW_PCI=m
+# CONFIG_SPI_DW_MID_DMA is not set
+CONFIG_SPI_DW_MMIO=m
 CONFIG_SPI_GPIO=m
 CONFIG_SPI_LM70_LLP=m
 CONFIG_SPI_OC_TINY=m
-CONFIG_SPI_PXA2XX_DMA=y
 CONFIG_SPI_PXA2XX=m
 CONFIG_SPI_PXA2XX_PCI=m
+CONFIG_SPI_ROCKCHIP=m
 CONFIG_SPI_SC18IS602=m
 CONFIG_SPI_XCOMM=m
 CONFIG_SPI_XILINX=m
 CONFIG_SPI_ZYNQMP_GQSPI=m
-CONFIG_SPI_DESIGNWARE=m
-CONFIG_SPI_DW_PCI=m
-# CONFIG_SPI_DW_MID_DMA is not set
-CONFIG_SPI_DW_MMIO=m
 
 #
 # SPI Protocol Masters
 #
 CONFIG_SPI_SPIDEV=m
+# CONFIG_SPI_LOOPBACK_TEST is not set
 CONFIG_SPI_TLE62X0=m
 CONFIG_SPMI=m
 # CONFIG_HSI is not set
@@ -3616,7 +3769,6 @@ CONFIG_SPMI=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
-# CONFIG_NTP_PPS is not set
 
 #
 # PPS clients support
@@ -3646,13 +3798,11 @@ CONFIG_GENERIC_PINCONF=y
 # CONFIG_DEBUG_PINCTRL is not set
 # CONFIG_PINCTRL_AMD is not set
 CONFIG_PINCTRL_BAYTRAIL=y
-CONFIG_PINCTRL_CHERRYVIEW=m
-CONFIG_PINCTRL_INTEL=m
-CONFIG_PINCTRL_BROXTON=m
-CONFIG_PINCTRL_SUNRISEPOINT=m
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_PINCTRL_CHERRYVIEW=y
+CONFIG_PINCTRL_INTEL=y
+CONFIG_PINCTRL_BROXTON=y
+CONFIG_PINCTRL_SUNRISEPOINT=y
 CONFIG_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
 CONFIG_GPIO_ACPI=y
 CONFIG_GPIOLIB_IRQCHIP=y
 # CONFIG_DEBUG_GPIO is not set
@@ -3665,14 +3815,14 @@ CONFIG_GPIO_SYSFS=y
 # CONFIG_GPIO_DWAPB is not set
 # CONFIG_GPIO_GENERIC_PLATFORM is not set
 CONFIG_GPIO_ICH=m
-CONFIG_GPIO_LYNXPOINT=m
+CONFIG_GPIO_LYNXPOINT=y
+# CONFIG_GPIO_MOCKUP is not set
 # CONFIG_GPIO_VX855 is not set
 # CONFIG_GPIO_ZX is not set
 
 #
 # Port-mapped I/O GPIO drivers
 #
-# CONFIG_GPIO_104_IDIO_16 is not set
 # CONFIG_GPIO_F7188X is not set
 # CONFIG_GPIO_IT87 is not set
 CONFIG_GPIO_SCH=m
@@ -3687,6 +3837,8 @@ CONFIG_GPIO_SCH311X=m
 # CONFIG_GPIO_PCA953X is not set
 # CONFIG_GPIO_PCF857X is not set
 # CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# CONFIG_GPIO_TS4900 is not set
 
 #
 # MFD GPIO expanders
@@ -3694,13 +3846,14 @@ CONFIG_GPIO_SCH311X=m
 # CONFIG_GPIO_ARIZONA is not set
 CONFIG_GPIO_CRYSTAL_COVE=y
 # CONFIG_GPIO_LP3943 is not set
+# CONFIG_GPIO_TPS65218 is not set
 # CONFIG_GPIO_UCB1400 is not set
+CONFIG_GPIO_WHISKEY_COVE=y
 
 #
 # PCI GPIO expanders
 #
 CONFIG_GPIO_AMD8111=m
-# CONFIG_GPIO_INTEL_MID is not set
 # CONFIG_GPIO_ML_IOH is not set
 # CONFIG_GPIO_RDC321X is not set
 
@@ -3709,17 +3862,20 @@ CONFIG_GPIO_AMD8111=m
 #
 # CONFIG_GPIO_MAX7301 is not set
 # CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_PISOSR is not set
 
 #
 # SPI or I2C GPIO expanders
 #
-# CONFIG_GPIO_MCP23S08 is not set
 
 #
 # USB GPIO expanders
 #
 CONFIG_GPIO_VIPERBOARD=m
 # CONFIG_W1 is not set
+CONFIG_POWER_AVS=y
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_RESET_RESTART is not set
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 CONFIG_PDA_POWER=m
@@ -3747,9 +3903,6 @@ CONFIG_CHARGER_BQ24735=m
 # CONFIG_BATTERY_GAUGE_LTC2941 is not set
 # CONFIG_BATTERY_RT5033 is not set
 # CONFIG_CHARGER_RT9455 is not set
-CONFIG_POWER_RESET=y
-# CONFIG_POWER_RESET_RESTART is not set
-CONFIG_POWER_AVS=y
 CONFIG_HWMON=y
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -3791,6 +3944,7 @@ CONFIG_SENSORS_F71882FG=m
 CONFIG_SENSORS_F75375S=m
 CONFIG_SENSORS_MC13783_ADC=m
 CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_FTSTEUTATES=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
 CONFIG_SENSORS_G760A=m
@@ -3807,6 +3961,7 @@ CONFIG_SENSORS_JC42=m
 CONFIG_SENSORS_POWR1220=m
 CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LTC2945=m
+CONFIG_SENSORS_LTC2990=m
 CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4222=m
@@ -3818,12 +3973,12 @@ CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
 CONFIG_SENSORS_MAX1668=m
 CONFIG_SENSORS_MAX197=m
+CONFIG_SENSORS_MAX31722=m
 CONFIG_SENSORS_MAX6639=m
 CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
 CONFIG_SENSORS_MAX6697=m
 CONFIG_SENSORS_MAX31790=m
-CONFIG_SENSORS_HTU21=m
 CONFIG_SENSORS_MCP3021=m
 CONFIG_SENSORS_ADCXX=m
 CONFIG_SENSORS_LM63=m
@@ -3855,6 +4010,7 @@ CONFIG_SENSORS_PMBUS=m
 CONFIG_SENSORS_ADM1275=m
 CONFIG_SENSORS_LM25066=m
 CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_LTC3815=m
 CONFIG_SENSORS_MAX16064=m
 CONFIG_SENSORS_MAX20751=m
 CONFIG_SENSORS_MAX34440=m
@@ -3865,6 +4021,7 @@ CONFIG_SENSORS_UCD9200=m
 CONFIG_SENSORS_ZL6100=m
 CONFIG_SENSORS_SHT15=m
 CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SHT3x=m
 CONFIG_SENSORS_SHTC1=m
 CONFIG_SENSORS_SIS5595=m
 CONFIG_SENSORS_DME1737=m
@@ -3885,6 +4042,7 @@ CONFIG_SENSORS_ADS7871=m
 CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_INA209=m
 CONFIG_SENSORS_INA2XX=m
+CONFIG_SENSORS_INA3221=m
 CONFIG_SENSORS_TC74=m
 CONFIG_SENSORS_THMC50=m
 CONFIG_SENSORS_TMP102=m
@@ -3928,21 +4086,30 @@ CONFIG_INTEL_POWERCLAMP=m
 CONFIG_X86_PKG_TEMP_THERMAL=m
 CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
 CONFIG_INTEL_SOC_DTS_THERMAL=m
+
+#
+# ACPI INT340X thermal drivers
+#
 CONFIG_INT340X_THERMAL=m
 CONFIG_ACPI_THERMAL_REL=m
+CONFIG_INT3406_THERMAL=m
+CONFIG_INTEL_BXT_PMIC_THERMAL=m
 CONFIG_INTEL_PCH_THERMAL=m
+CONFIG_GENERIC_ADC_THERMAL=m
 CONFIG_WATCHDOG=y
 CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_SYSFS=y
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
+CONFIG_WDAT_WDT=m
 CONFIG_XILINX_WATCHDOG=m
+CONFIG_ZIIRAVE_WATCHDOG=m
 # CONFIG_CADENCE_WATCHDOG is not set
 CONFIG_DW_WATCHDOG=m
-# CONFIG_RN5T618_WATCHDOG is not set
 # CONFIG_MAX63XX_WATCHDOG is not set
 CONFIG_RETU_WATCHDOG=m
 CONFIG_ACQUIRE_WDT=m
@@ -3977,7 +4144,8 @@ CONFIG_W83877F_WDT=m
 CONFIG_W83977F_WDT=m
 CONFIG_MACHZ_WDT=m
 CONFIG_SBC_EPX_C3_WATCHDOG=m
-CONFIG_BCM7038_WDT=m
+CONFIG_INTEL_MEI_WDT=m
+CONFIG_NI903X_WDT=m
 CONFIG_MEN_A21_WDT=m
 CONFIG_XEN_WDT=m
 
@@ -3991,6 +4159,15 @@ CONFIG_WDTPCI=m
 # USB-based Watchdog Cards
 #
 CONFIG_USBPCWATCHDOG=m
+
+#
+# Watchdog Pretimeout Governors
+#
+CONFIG_WATCHDOG_PRETIMEOUT_GOV=y
+# CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP is not set
+CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC=y
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=m
+CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=y
 CONFIG_SSB_POSSIBLE=y
 
 #
@@ -4006,7 +4183,6 @@ CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
 CONFIG_SSB_PCMCIAHOST=y
 CONFIG_SSB_SDIOHOST_POSSIBLE=y
 CONFIG_SSB_SDIOHOST=y
-CONFIG_SSB_HOST_SOC=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
@@ -4034,7 +4210,7 @@ CONFIG_MFD_CORE=y
 # CONFIG_PMIC_ADP5520 is not set
 # CONFIG_MFD_AAT2870_CORE is not set
 CONFIG_MFD_BCM590XX=m
-# CONFIG_MFD_AXP20X is not set
+# CONFIG_MFD_AXP20X_I2C is not set
 CONFIG_MFD_CROS_EC=m
 CONFIG_MFD_CROS_EC_I2C=m
 # CONFIG_MFD_CROS_EC_SPI is not set
@@ -4046,6 +4222,7 @@ CONFIG_MFD_CROS_EC_I2C=m
 # CONFIG_MFD_DA9063 is not set
 # CONFIG_MFD_DA9150 is not set
 # CONFIG_MFD_DLN2 is not set
+# CONFIG_MFD_EXYNOS_LPASS is not set
 CONFIG_MFD_MC13XXX=m
 # CONFIG_MFD_MC13XXX_SPI is not set
 CONFIG_MFD_MC13XXX_I2C=m
@@ -4084,7 +4261,6 @@ CONFIG_MFD_RTSX_PCI=m
 CONFIG_MFD_RT5033=m
 CONFIG_MFD_RTSX_USB=m
 # CONFIG_MFD_RC5T583 is not set
-CONFIG_MFD_RN5T618=m
 # CONFIG_MFD_SEC_CORE is not set
 CONFIG_MFD_SI476X_CORE=m
 CONFIG_MFD_SM501=m
@@ -4101,12 +4277,13 @@ CONFIG_MFD_LP3943=m
 # CONFIG_TPS6105X is not set
 CONFIG_TPS65010=m
 CONFIG_TPS6507X=m
+# CONFIG_MFD_TPS65086 is not set
 # CONFIG_MFD_TPS65090 is not set
 CONFIG_MFD_TPS65217=m
+# CONFIG_MFD_TI_LP873X is not set
 CONFIG_MFD_TPS65218=m
 # CONFIG_MFD_TPS6586X is not set
 # CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912 is not set
 # CONFIG_MFD_TPS65912_I2C is not set
 # CONFIG_MFD_TPS65912_SPI is not set
 # CONFIG_MFD_TPS80031 is not set
@@ -4119,6 +4296,7 @@ CONFIG_MFD_VX855=m
 CONFIG_MFD_ARIZONA=y
 CONFIG_MFD_ARIZONA_I2C=m
 # CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_CS47L24 is not set
 CONFIG_MFD_WM5102=y
 CONFIG_MFD_WM5110=y
 # CONFIG_MFD_WM8997 is not set
@@ -4140,12 +4318,15 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
 CONFIG_MEDIA_RADIO_SUPPORT=y
 CONFIG_MEDIA_SDR_SUPPORT=y
 CONFIG_MEDIA_RC_SUPPORT=y
+CONFIG_MEDIA_CEC_EDID=y
 CONFIG_MEDIA_CONTROLLER=y
+# CONFIG_MEDIA_CONTROLLER_DVB is not set
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_SUBDEV_API=y
 CONFIG_VIDEO_V4L2=m
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_PCI_SKELETON is not set
 CONFIG_VIDEO_TUNER=m
 CONFIG_V4L2_MEM2MEM_DEV=m
 # CONFIG_V4L2_FLASH_LED_CLASS is not set
@@ -4301,6 +4482,7 @@ CONFIG_VIDEO_TM6000_DVB=m
 #
 CONFIG_DVB_USB=m
 # CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_DIB3000MC=m
 CONFIG_DVB_USB_A800=m
 CONFIG_DVB_USB_DIBUSB_MB=m
 CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
@@ -4368,7 +4550,9 @@ CONFIG_MEDIA_PCI_SUPPORT=y
 #
 CONFIG_VIDEO_MEYE=m
 CONFIG_VIDEO_SOLO6X10=m
+CONFIG_VIDEO_TW5864=m
 CONFIG_VIDEO_TW68=m
+CONFIG_VIDEO_TW686X=m
 CONFIG_VIDEO_ZORAN=m
 CONFIG_VIDEO_ZORAN_DC30=m
 CONFIG_VIDEO_ZORAN_ZR36060=m
@@ -4501,7 +4685,7 @@ CONFIG_SMS_SIANO_RC=y
 # CONFIG_SMS_SIANO_DEBUGFS is not set
 
 #
-# Media ancillary drivers (tuners, sensors, i2c, frontends)
+# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
 #
 CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
 CONFIG_MEDIA_ATTACH=y
@@ -4516,6 +4700,7 @@ CONFIG_VIDEO_TDA9840=m
 CONFIG_VIDEO_TEA6415C=m
 CONFIG_VIDEO_TEA6420=m
 CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_CS3308=m
 CONFIG_VIDEO_CS5345=m
 CONFIG_VIDEO_CS53L32A=m
 CONFIG_VIDEO_UDA1342=m
@@ -4642,6 +4827,8 @@ CONFIG_DVB_M88DS3103=m
 CONFIG_DVB_DRXK=m
 CONFIG_DVB_TDA18271C2DD=m
 CONFIG_DVB_SI2165=m
+CONFIG_DVB_MN88472=m
+CONFIG_DVB_MN88473=m
 
 #
 # DVB-S (satellite) frontends
@@ -4702,6 +4889,7 @@ CONFIG_DVB_RTL2832=m
 CONFIG_DVB_RTL2832_SDR=m
 CONFIG_DVB_SI2168=m
 CONFIG_DVB_AS102_FE=m
+CONFIG_DVB_GP8PSK_FE=m
 
 #
 # DVB-C (cable) frontends
@@ -4767,6 +4955,7 @@ CONFIG_DVB_M88RS2000=m
 CONFIG_DVB_AF9033=m
 CONFIG_DVB_HORUS3A=m
 CONFIG_DVB_ASCOT2E=m
+CONFIG_DVB_HELENE=m
 
 #
 # Tools to develop new frontends
@@ -4787,6 +4976,7 @@ CONFIG_VGA_ARB_MAX_GPUS=16
 CONFIG_VGA_SWITCHEROO=y
 CONFIG_DRM=m
 CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_DP_AUX_CHARDEV=y
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_KMS_FB_HELPER=y
 CONFIG_DRM_FBDEV_EMULATION=y
@@ -4796,28 +4986,29 @@ CONFIG_DRM_TTM=m
 #
 # I2C encoder or helper chips
 #
-CONFIG_DRM_I2C_ADV7511=m
 CONFIG_DRM_I2C_CH7006=m
 CONFIG_DRM_I2C_SIL164=m
 CONFIG_DRM_I2C_NXP_TDA998X=m
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
-# CONFIG_DRM_RADEON_USERPTR is not set
-# CONFIG_DRM_RADEON_UMS is not set
+CONFIG_DRM_RADEON_USERPTR=y
 CONFIG_DRM_AMDGPU=m
-# CONFIG_DRM_AMDGPU_CIK is not set
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_CIK=y
 CONFIG_DRM_AMDGPU_USERPTR=y
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
+
+#
+# ACP (Audio CoProcessor) Configuration
+#
+CONFIG_DRM_AMD_ACP=y
 CONFIG_DRM_NOUVEAU=m
 CONFIG_NOUVEAU_DEBUG=5
 CONFIG_NOUVEAU_DEBUG_DEFAULT=3
 CONFIG_DRM_NOUVEAU_BACKLIGHT=y
 CONFIG_DRM_I915=m
 # CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
-CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_I915_USERPTR=y
+CONFIG_DRM_I915_GVT=y
 CONFIG_DRM_VGEM=m
 CONFIG_DRM_VMWGFX=m
 CONFIG_DRM_VMWGFX_FBCON=y
@@ -4841,7 +5032,9 @@ CONFIG_DRM_BRIDGE=y
 #
 # Display Interface Bridges
 #
+CONFIG_DRM_ANALOGIX_ANX78XX=m
 CONFIG_HSA_AMD=m
+# CONFIG_DRM_LEGACY is not set
 
 #
 # Frame buffer Devices
@@ -4849,6 +5042,7 @@ CONFIG_HSA_AMD=m
 CONFIG_FB=y
 CONFIG_FIRMWARE_EDID=y
 CONFIG_FB_CMDLINE=y
+CONFIG_FB_NOTIFY=y
 # CONFIG_FB_DDC is not set
 CONFIG_FB_BOOT_VESA_SUPPORT=y
 CONFIG_FB_CFB_FILLRECT=y
@@ -4971,11 +5165,14 @@ CONFIG_SOUND_OSS_CORE=y
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
 CONFIG_SND_DMAENGINE_PCM=m
 CONFIG_SND_HWDEP=m
 CONFIG_SND_RAWMIDI=m
 CONFIG_SND_COMPRESS_OFFLOAD=m
 CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -5140,7 +5337,6 @@ CONFIG_SND_FIREWIRE_LIB=m
 CONFIG_SND_DICE=m
 CONFIG_SND_OXFW=m
 CONFIG_SND_ISIGHT=m
-CONFIG_SND_SCS1X=m
 CONFIG_SND_FIREWORKS=m
 CONFIG_SND_BEBOB=m
 CONFIG_SND_FIREWIRE_DIGI00X=m
@@ -5153,8 +5349,10 @@ CONFIG_SND_SOC_AC97_BUS=y
 CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
 CONFIG_SND_SOC_COMPRESS=y
 CONFIG_SND_SOC_TOPOLOGY=y
+CONFIG_SND_SOC_AMD_ACP=m
 # CONFIG_SND_ATMEL_SOC is not set
 CONFIG_SND_DESIGNWARE_I2S=m
+CONFIG_SND_DESIGNWARE_PCM=m
 
 #
 # SoC Audio for Freescale CPUs
@@ -5169,28 +5367,29 @@ CONFIG_SND_DESIGNWARE_I2S=m
 # CONFIG_SND_SOC_FSL_SPDIF is not set
 # CONFIG_SND_SOC_FSL_ESAI is not set
 # CONFIG_SND_SOC_IMX_AUDMUX is not set
+# CONFIG_SND_SOC_IMG is not set
 CONFIG_SND_SST_MFLD_PLATFORM=m
 CONFIG_SND_SST_IPC=m
 CONFIG_SND_SST_IPC_ACPI=m
 CONFIG_SND_SOC_INTEL_SST=m
+CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
 CONFIG_SND_SOC_INTEL_SST_ACPI=m
+CONFIG_SND_SOC_INTEL_SST_MATCH=m
 CONFIG_SND_SOC_INTEL_HASWELL=m
-CONFIG_SND_SOC_INTEL_BAYTRAIL=m
 CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m
-CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
 CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
 CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
+CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
 CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
 CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
 CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
 CONFIG_SND_SOC_INTEL_SKYLAKE=m
 CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-
-#
-# Allwinner SoC Audio support
-#
-# CONFIG_SND_SUN4I_CODEC is not set
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
 # CONFIG_SND_SOC_XTFPGA_I2S is not set
 CONFIG_SND_SOC_I2C_AND_SPI=m
 
@@ -5199,13 +5398,16 @@ CONFIG_SND_SOC_I2C_AND_SPI=m
 #
 CONFIG_SND_SOC_AC97_CODEC=m
 # CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
 # CONFIG_SND_SOC_AK4104 is not set
 # CONFIG_SND_SOC_AK4554 is not set
 # CONFIG_SND_SOC_AK4613 is not set
 # CONFIG_SND_SOC_AK4642 is not set
 # CONFIG_SND_SOC_AK5386 is not set
 # CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_BT_SCO is not set
 # CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
 # CONFIG_SND_SOC_CS42L51_I2C is not set
 # CONFIG_SND_SOC_CS42L52 is not set
 # CONFIG_SND_SOC_CS42L56 is not set
@@ -5216,35 +5418,52 @@ CONFIG_SND_SOC_AC97_CODEC=m
 # CONFIG_SND_SOC_CS4271_SPI is not set
 # CONFIG_SND_SOC_CS42XX8_I2C is not set
 # CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DA7219=m
 CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_HDMI_CODEC=m
 # CONFIG_SND_SOC_ES8328 is not set
 # CONFIG_SND_SOC_GTM601 is not set
+CONFIG_SND_SOC_HDAC_HDMI=m
+# CONFIG_SND_SOC_INNO_RK3036 is not set
 CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
 # CONFIG_SND_SOC_PCM1681 is not set
-# CONFIG_SND_SOC_PCM1792A is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
 # CONFIG_SND_SOC_PCM512x_I2C is not set
 # CONFIG_SND_SOC_PCM512x_SPI is not set
 CONFIG_SND_SOC_RL6231=m
 CONFIG_SND_SOC_RL6347A=m
 CONFIG_SND_SOC_RT286=m
+CONFIG_SND_SOC_RT298=m
+# CONFIG_SND_SOC_RT5616 is not set
 # CONFIG_SND_SOC_RT5631 is not set
 CONFIG_SND_SOC_RT5640=m
 CONFIG_SND_SOC_RT5645=m
+CONFIG_SND_SOC_RT5651=m
+CONFIG_SND_SOC_RT5663=m
 CONFIG_SND_SOC_RT5670=m
-# CONFIG_SND_SOC_RT5677_SPI is not set
+CONFIG_SND_SOC_RT5677=m
+CONFIG_SND_SOC_RT5677_SPI=m
 # CONFIG_SND_SOC_SGTL5000 is not set
 CONFIG_SND_SOC_SI476X=m
 # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
 CONFIG_SND_SOC_SPDIF=m
 # CONFIG_SND_SOC_SSM2602_SPI is not set
 # CONFIG_SND_SOC_SSM2602_I2C is not set
-# CONFIG_SND_SOC_SSM4567 is not set
+CONFIG_SND_SOC_SSM4567=m
 # CONFIG_SND_SOC_STA32X is not set
 # CONFIG_SND_SOC_STA350 is not set
 # CONFIG_SND_SOC_STI_SAS is not set
 # CONFIG_SND_SOC_TAS2552 is not set
 # CONFIG_SND_SOC_TAS5086 is not set
 # CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
 # CONFIG_SND_SOC_TFA9879 is not set
 # CONFIG_SND_SOC_TLV320AIC23_I2C is not set
 # CONFIG_SND_SOC_TLV320AIC23_SPI is not set
@@ -5266,9 +5485,15 @@ CONFIG_SND_SOC_TS3A227E=m
 # CONFIG_SND_SOC_WM8804_I2C is not set
 # CONFIG_SND_SOC_WM8804_SPI is not set
 # CONFIG_SND_SOC_WM8903 is not set
+# CONFIG_SND_SOC_WM8960 is not set
 # CONFIG_SND_SOC_WM8962 is not set
+# CONFIG_SND_SOC_WM8974 is not set
 # CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8825=m
 # CONFIG_SND_SOC_TPA6130A2 is not set
+CONFIG_SND_SIMPLE_CARD_UTILS=m
 CONFIG_SND_SIMPLE_CARD=m
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
@@ -5290,6 +5515,7 @@ CONFIG_HID_ACRUX=m
 CONFIG_HID_ACRUX_FF=y
 CONFIG_HID_APPLE=m
 CONFIG_HID_APPLEIR=m
+CONFIG_HID_ASUS=m
 CONFIG_HID_AUREAL=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_BETOP_FF=m
@@ -5297,6 +5523,7 @@ CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
 CONFIG_HID_CORSAIR=m
 CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_CMEDIA=m
 CONFIG_HID_CP2112=m
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
@@ -5319,6 +5546,7 @@ CONFIG_HID_ICADE=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
 CONFIG_HID_LCPOWER=m
+CONFIG_HID_LED=m
 CONFIG_HID_LENOVO=m
 CONFIG_HID_LOGITECH=m
 CONFIG_HID_LOGITECH_DJ=m
@@ -5372,6 +5600,7 @@ CONFIG_ZEROPLUS_FF=y
 CONFIG_HID_ZYDACRON=m
 CONFIG_HID_SENSOR_HUB=m
 # CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set
+CONFIG_HID_ALPS=m
 
 #
 # USB HID support
@@ -5384,6 +5613,11 @@ CONFIG_USB_HIDDEV=y
 # I2C HID support
 #
 CONFIG_I2C_HID=m
+
+#
+# Intel ISH HID support
+#
+CONFIG_INTEL_ISH_HID=m
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
 CONFIG_USB_SUPPORT=y
 CONFIG_USB_COMMON=m
@@ -5398,7 +5632,7 @@ CONFIG_USB_DEFAULT_PERSIST=y
 CONFIG_USB_DYNAMIC_MINORS=y
 # CONFIG_USB_OTG is not set
 # CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_ULPI_BUS is not set
+CONFIG_USB_LEDS_TRIGGER_USBPORT=m
 CONFIG_USB_MON=m
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
@@ -5477,12 +5711,12 @@ CONFIG_USB_MDC800=m
 CONFIG_USB_MICROTEK=m
 CONFIG_USBIP_CORE=m
 CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
 CONFIG_USBIP_HOST=m
 # CONFIG_USBIP_DEBUG is not set
 CONFIG_USB_MUSB_HDRC=m
-# CONFIG_USB_MUSB_HOST is not set
-# CONFIG_USB_MUSB_GADGET is not set
-CONFIG_USB_MUSB_DUAL_ROLE=y
+CONFIG_USB_MUSB_HOST=y
 
 #
 # Platform Glue Layer
@@ -5566,7 +5800,6 @@ CONFIG_USB_SEVSEG=m
 CONFIG_USB_RIO500=m
 CONFIG_USB_LEGOTOWER=m
 CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
 CONFIG_USB_IDMOUSE=m
@@ -5583,8 +5816,10 @@ CONFIG_USB_ISIGHTFW=m
 CONFIG_USB_YUREX=m
 CONFIG_USB_EZUSB_FX2=m
 CONFIG_USB_HSIC_USB3503=m
+CONFIG_USB_HSIC_USB4604=m
 CONFIG_USB_LINK_LAYER_TEST=m
 CONFIG_USB_CHAOSKEY=m
+CONFIG_UCSI=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -5600,81 +5835,9 @@ CONFIG_NOP_USB_XCEIV=m
 CONFIG_TAHVO_USB=m
 # CONFIG_TAHVO_USB_HOST_BY_DEFAULT is not set
 CONFIG_USB_ISP1301=m
-CONFIG_USB_GADGET=m
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-
-#
-# USB Peripheral Controller
-#
-# CONFIG_USB_FOTG210_UDC is not set
-CONFIG_USB_GR_UDC=m
-CONFIG_USB_R8A66597=m
-CONFIG_USB_PXA27X=m
-CONFIG_USB_MV_UDC=m
-CONFIG_USB_MV_U3D=m
-CONFIG_USB_M66592=m
-CONFIG_USB_BDC_UDC=m
-
-#
-# Platform Support
-#
-CONFIG_USB_BDC_PCI=m
-CONFIG_USB_AMD5536UDC=m
-CONFIG_USB_NET2272=m
-CONFIG_USB_NET2272_DMA=y
-CONFIG_USB_NET2280=m
-CONFIG_USB_GOKU=m
-CONFIG_USB_EG20T=m
-CONFIG_USB_DUMMY_HCD=m
-CONFIG_USB_LIBCOMPOSITE=m
-CONFIG_USB_F_ACM=m
-CONFIG_USB_U_SERIAL=m
-CONFIG_USB_U_ETHER=m
-CONFIG_USB_F_SERIAL=m
-CONFIG_USB_F_OBEX=m
-CONFIG_USB_F_NCM=m
-CONFIG_USB_F_ECM=m
-CONFIG_USB_F_SUBSET=m
-CONFIG_USB_F_RNDIS=m
-CONFIG_USB_F_MASS_STORAGE=m
-CONFIG_USB_F_FS=m
-CONFIG_USB_F_UAC2=m
-CONFIG_USB_F_UVC=m
-CONFIG_USB_F_MIDI=m
-CONFIG_USB_F_HID=m
-CONFIG_USB_F_PRINTER=m
-# CONFIG_USB_CONFIGFS is not set
-# CONFIG_USB_ZERO is not set
-CONFIG_USB_AUDIO=m
-# CONFIG_GADGET_UAC1 is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-CONFIG_USB_FUNCTIONFS_GENERIC=y
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_GADGET_TARGET=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_G_NOKIA is not set
-# CONFIG_USB_G_ACM_MS is not set
-# CONFIG_USB_G_MULTI is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-# CONFIG_USB_G_DBGP_PRINTK is not set
-CONFIG_USB_G_DBGP_SERIAL=y
-CONFIG_USB_G_WEBCAM=m
+# CONFIG_USB_GADGET is not set
 CONFIG_USB_LED_TRIG=y
+# CONFIG_USB_ULPI_BUS is not set
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
@@ -5744,6 +5907,7 @@ CONFIG_LEDS_PCA9532=m
 # CONFIG_LEDS_PCA9532_GPIO is not set
 CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP3952=m
 # CONFIG_LEDS_LP5521 is not set
 # CONFIG_LEDS_LP5523 is not set
 # CONFIG_LEDS_LP5562 is not set
@@ -5766,6 +5930,7 @@ CONFIG_LEDS_LM355x=m
 # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
 #
 CONFIG_LEDS_BLINKM=m
+CONFIG_LEDS_MLXCPLD=m
 
 #
 # LED Triggers
@@ -5773,6 +5938,8 @@ CONFIG_LEDS_BLINKM=m
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_MTD=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
 CONFIG_LEDS_TRIGGER_CPU=y
@@ -5784,6 +5951,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
 #
 CONFIG_LEDS_TRIGGER_TRANSIENT=m
 CONFIG_LEDS_TRIGGER_CAMERA=m
+CONFIG_LEDS_TRIGGER_PANIC=y
 CONFIG_ACCESSIBILITY=y
 CONFIG_A11Y_BRAILLE_CONSOLE=y
 CONFIG_INFINIBAND=m
@@ -5792,6 +5960,7 @@ CONFIG_INFINIBAND_USER_ACCESS=m
 CONFIG_INFINIBAND_USER_MEM=y
 CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
 CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
 CONFIG_INFINIBAND_MTHCA=m
 CONFIG_INFINIBAND_MTHCA_DEBUG=y
 CONFIG_INFINIBAND_QIB=m
@@ -5799,6 +5968,7 @@ CONFIG_INFINIBAND_QIB=m
 CONFIG_INFINIBAND_CXGB3=m
 # CONFIG_INFINIBAND_CXGB3_DEBUG is not set
 CONFIG_INFINIBAND_CXGB4=m
+CONFIG_INFINIBAND_I40IW=m
 CONFIG_MLX4_INFINIBAND=m
 CONFIG_MLX5_INFINIBAND=m
 CONFIG_INFINIBAND_NES=m
@@ -5813,6 +5983,13 @@ CONFIG_INFINIBAND_SRP=m
 CONFIG_INFINIBAND_SRPT=m
 CONFIG_INFINIBAND_ISER=m
 CONFIG_INFINIBAND_ISERT=m
+CONFIG_INFINIBAND_RDMAVT=m
+CONFIG_RDMA_RXE=m
+CONFIG_INFINIBAND_HFI1=m
+# CONFIG_HFI1_DEBUG_SDMA_ORDER is not set
+CONFIG_HFI1_VERBS_31BIT_PSN=y
+# CONFIG_SDMA_VERBOSITY is not set
+# CONFIG_INFINIBAND_QEDR is not set
 CONFIG_EDAC_ATOMIC_SCRUB=y
 CONFIG_EDAC_SUPPORT=y
 CONFIG_EDAC=y
@@ -5834,7 +6011,9 @@ CONFIG_EDAC_I5000=m
 CONFIG_EDAC_I5100=m
 CONFIG_EDAC_I7300=m
 CONFIG_EDAC_SBRIDGE=m
+CONFIG_EDAC_SKX=m
 CONFIG_RTC_LIB=y
+CONFIG_RTC_MC146818_LIB=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_HCTOSYS=y
 CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
@@ -5857,30 +6036,29 @@ CONFIG_RTC_DRV_TEST=m
 # CONFIG_RTC_DRV_ABB5ZES3 is not set
 CONFIG_RTC_DRV_ABX80X=m
 CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1307_HWMON=y
+# CONFIG_RTC_DRV_DS1307_CENTURY is not set
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1374_WDT=y
 CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS3232=m
 CONFIG_RTC_DRV_MAX6900=m
 CONFIG_RTC_DRV_RS5C372=m
 CONFIG_RTC_DRV_ISL1208=m
 CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_ISL12057=m
 CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF2127=m
 CONFIG_RTC_DRV_PCF8523=m
-CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF85063=m
+CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF8583=m
 CONFIG_RTC_DRV_M41T80=m
 CONFIG_RTC_DRV_M41T80_WDT=y
 CONFIG_RTC_DRV_BQ32K=m
 CONFIG_RTC_DRV_S35390A=m
 CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8010=m
 CONFIG_RTC_DRV_RX8581=m
 CONFIG_RTC_DRV_RX8025=m
 CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3029C2=m
 # CONFIG_RTC_DRV_RV8803 is not set
 
 #
@@ -5888,17 +6066,28 @@ CONFIG_RTC_DRV_RV3029C2=m
 #
 # CONFIG_RTC_DRV_M41T93 is not set
 # CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
 # CONFIG_RTC_DRV_DS1305 is not set
 # CONFIG_RTC_DRV_DS1343 is not set
 # CONFIG_RTC_DRV_DS1347 is not set
 # CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
+CONFIG_RTC_DRV_MAX6916=m
 # CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
 # CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_DS3234 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
 # CONFIG_RTC_DRV_PCF2123 is not set
-# CONFIG_RTC_DRV_RX4581 is not set
 # CONFIG_RTC_DRV_MCP795 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_RV3029_HWMON=y
 
 #
 # Platform RTC drivers
@@ -5948,9 +6137,11 @@ CONFIG_DMA_ACPI=y
 CONFIG_INTEL_IDMA64=m
 CONFIG_INTEL_IOATDMA=m
 CONFIG_INTEL_MIC_X100_DMA=m
-CONFIG_DW_DMAC_CORE=m
-CONFIG_DW_DMAC=m
-CONFIG_DW_DMAC_PCI=m
+# CONFIG_QCOM_HIDMA_MGMT is not set
+# CONFIG_QCOM_HIDMA is not set
+CONFIG_DW_DMAC_CORE=y
+CONFIG_DW_DMAC=y
+CONFIG_DW_DMAC_PCI=y
 CONFIG_HSU_DMA=y
 
 #
@@ -5959,6 +6150,12 @@ CONFIG_HSU_DMA=y
 CONFIG_ASYNC_TX_DMA=y
 # CONFIG_DMATEST is not set
 CONFIG_DMA_ENGINE_RAID=y
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_SW_SYNC is not set
 CONFIG_DCA=m
 CONFIG_AUXDISPLAY=y
 CONFIG_KS0108=m
@@ -5966,6 +6163,7 @@ CONFIG_KS0108_PORT=0x378
 CONFIG_KS0108_DELAY=2
 CONFIG_CFAG12864B=m
 CONFIG_CFAG12864B_RATE=20
+# CONFIG_IMG_ASCII_LCD is not set
 CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV_GENIRQ=m
@@ -5979,10 +6177,12 @@ CONFIG_UIO_PRUSS=m
 CONFIG_VFIO_IOMMU_TYPE1=m
 CONFIG_VFIO_VIRQFD=m
 CONFIG_VFIO=m
+# CONFIG_VFIO_NOIOMMU is not set
 CONFIG_VFIO_PCI=m
 CONFIG_VFIO_PCI_VGA=y
 CONFIG_VFIO_PCI_MMAP=y
 CONFIG_VFIO_PCI_INTX=y
+CONFIG_VFIO_PCI_IGD=y
 CONFIG_IRQ_BYPASS_MANAGER=m
 CONFIG_VIRT_DRIVERS=y
 CONFIG_VIRTIO=m
@@ -6065,8 +6265,10 @@ CONFIG_COMEDI_ADL_PCI8164=m
 CONFIG_COMEDI_ADL_PCI9111=m
 CONFIG_COMEDI_ADL_PCI9118=m
 CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1720=m
 CONFIG_COMEDI_ADV_PCI1723=m
 CONFIG_COMEDI_ADV_PCI1724=m
+CONFIG_COMEDI_ADV_PCI1760=m
 CONFIG_COMEDI_ADV_PCI_DIO=m
 CONFIG_COMEDI_AMPLC_DIO200_PCI=m
 CONFIG_COMEDI_AMPLC_PC236_PCI=m
@@ -6125,7 +6327,6 @@ CONFIG_COMEDI_AMPLC_PC236=m
 CONFIG_COMEDI_DAS08=m
 CONFIG_COMEDI_NI_LABPC=m
 CONFIG_COMEDI_NI_TIO=m
-# CONFIG_PANEL is not set
 CONFIG_RTL8192U=m
 CONFIG_RTLLIB=m
 CONFIG_RTLLIB_CRYPTO_CCMP=m
@@ -6135,9 +6336,6 @@ CONFIG_RTL8192E=m
 CONFIG_R8712U=m
 CONFIG_R8188EU=m
 CONFIG_88EU_AP_MODE=y
-CONFIG_R8723AU=m
-CONFIG_8723AU_AP_MODE=y
-CONFIG_8723AU_BT_COEXIST=y
 CONFIG_RTS5208=m
 CONFIG_VT6655=m
 CONFIG_VT6656=m
@@ -6151,11 +6349,8 @@ CONFIG_VT6656=m
 #
 # CONFIG_ADIS16201 is not set
 # CONFIG_ADIS16203 is not set
-# CONFIG_ADIS16204 is not set
 # CONFIG_ADIS16209 is not set
-# CONFIG_ADIS16220 is not set
 # CONFIG_ADIS16240 is not set
-# CONFIG_LIS3L02DQ is not set
 # CONFIG_SCA3000 is not set
 
 #
@@ -6204,13 +6399,6 @@ CONFIG_VT6656=m
 # CONFIG_TSL2x7x is not set
 
 #
-# Magnetometer sensors
-#
-CONFIG_SENSORS_HMC5843=m
-CONFIG_SENSORS_HMC5843_I2C=m
-CONFIG_SENSORS_HMC5843_SPI=m
-
-#
 # Active energy metering IC
 #
 # CONFIG_ADE7753 is not set
@@ -6229,8 +6417,6 @@ CONFIG_SENSORS_HMC5843_SPI=m
 #
 # Triggers - standalone
 #
-# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set
-# CONFIG_IIO_SIMPLE_DUMMY is not set
 # CONFIG_FB_SM750 is not set
 CONFIG_FB_XGI=m
 
@@ -6249,12 +6435,10 @@ CONFIG_SPEAKUP_SYNTH_SOFT=m
 CONFIG_SPEAKUP_SYNTH_SPKOUT=m
 CONFIG_SPEAKUP_SYNTH_TXPRT=m
 CONFIG_SPEAKUP_SYNTH_DUMMY=m
-CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
 CONFIG_STAGING_MEDIA=y
 CONFIG_I2C_BCM2048=m
+# CONFIG_MEDIA_CEC is not set
 CONFIG_DVB_CXD2099=m
-CONFIG_DVB_MN88472=m
-CONFIG_DVB_MN88473=m
 CONFIG_LIRC_STAGING=y
 CONFIG_LIRC_BT829=m
 CONFIG_LIRC_IMON=m
@@ -6264,44 +6448,40 @@ CONFIG_LIRC_SERIAL=m
 CONFIG_LIRC_SERIAL_TRANSMITTER=y
 CONFIG_LIRC_SIR=m
 CONFIG_LIRC_ZILOG=m
-# CONFIG_STAGING_RDMA is not set
 
 #
 # Android
 #
-CONFIG_WIMAX_GDM72XX=m
-CONFIG_WIMAX_GDM72XX_QOS=y
-CONFIG_WIMAX_GDM72XX_K_MODE=y
-CONFIG_WIMAX_GDM72XX_WIMAX2=y
-CONFIG_WIMAX_GDM72XX_USB=y
-# CONFIG_WIMAX_GDM72XX_SDIO is not set
-CONFIG_WIMAX_GDM72XX_USB_PM=y
 CONFIG_LTE_GDM724X=m
 CONFIG_FIREWIRE_SERIAL=m
 CONFIG_FWTTY_MAX_TOTAL_PORTS=64
 CONFIG_FWTTY_MAX_CARD_PORTS=32
-# CONFIG_MTD_SPINAND_MT29F is not set
-CONFIG_LUSTRE_FS=m
-CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
-# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
-CONFIG_LUSTRE_LLITE_LLOOP=m
 CONFIG_LNET=m
 CONFIG_LNET_MAX_PAYLOAD=1048576
 CONFIG_LNET_SELFTEST=m
-CONFIG_LNET_XPRT_IB=m
+CONFIG_LUSTRE_FS=m
+CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192
+# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set
 CONFIG_DGNC=m
-CONFIG_DGAP=m
 CONFIG_GS_FPGABOOT=m
-CONFIG_CRYPTO_SKEIN=y
+# CONFIG_CRYPTO_SKEIN is not set
 # CONFIG_UNISYSSPAR is not set
 # CONFIG_FB_TFT is not set
-# CONFIG_WILC1000_DRIVER is not set
+# CONFIG_WILC1000_SDIO is not set
+# CONFIG_WILC1000_SPI is not set
 # CONFIG_MOST is not set
+
+#
+# Old ISDN4Linux (deprecated)
+#
+# CONFIG_KS7010 is not set
+# CONFIG_GREYBUS is not set
 CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACER_WMI=m
 CONFIG_ACERHDF=m
 CONFIG_ALIENWARE_WMI=m
 CONFIG_ASUS_LAPTOP=m
+CONFIG_DELL_SMBIOS=m
 CONFIG_DELL_LAPTOP=m
 CONFIG_DELL_WMI=m
 CONFIG_DELL_WMI_AIO=m
@@ -6333,6 +6513,7 @@ CONFIG_EEEPC_LAPTOP=m
 CONFIG_ASUS_WMI=m
 CONFIG_ASUS_NB_WMI=m
 CONFIG_EEEPC_WMI=m
+CONFIG_ASUS_WIRELESS=m
 CONFIG_ACPI_WMI=m
 CONFIG_MSI_WMI=m
 CONFIG_TOPSTAR_LAPTOP=m
@@ -6341,7 +6522,10 @@ CONFIG_TOSHIBA_BT_RFKILL=m
 CONFIG_TOSHIBA_HAPS=m
 CONFIG_TOSHIBA_WMI=m
 CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_HID_EVENT=m
+CONFIG_INTEL_VBTN=m
 CONFIG_INTEL_IPS=m
+CONFIG_INTEL_PMC_CORE=y
 CONFIG_IBM_RTL=m
 CONFIG_SAMSUNG_LAPTOP=m
 CONFIG_MXM_WMI=m
@@ -6349,16 +6533,19 @@ CONFIG_INTEL_OAKTRAIL=m
 CONFIG_SAMSUNG_Q10=m
 CONFIG_APPLE_GMUX=m
 CONFIG_INTEL_RST=m
-CONFIG_INTEL_SMARTCONNECT=y
+CONFIG_INTEL_SMARTCONNECT=m
 CONFIG_PVPANIC=m
 CONFIG_INTEL_PMC_IPC=m
 CONFIG_SURFACE_PRO3_BUTTON=m
+CONFIG_INTEL_PUNIT_IPC=m
+CONFIG_INTEL_TELEMETRY=m
 CONFIG_CHROME_PLATFORMS=y
 CONFIG_CHROMEOS_LAPTOP=m
 CONFIG_CHROMEOS_PSTORE=m
 CONFIG_CROS_EC_CHARDEV=m
 CONFIG_CROS_EC_LPC=m
 CONFIG_CROS_EC_PROTO=y
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
 CONFIG_CLKDEV_LOOKUP=y
 CONFIG_HAVE_CLK_PREPARE=y
 CONFIG_COMMON_CLK=y
@@ -6367,8 +6554,11 @@ CONFIG_COMMON_CLK=y
 # Common Clock Framework
 #
 # CONFIG_COMMON_CLK_SI5351 is not set
-# CONFIG_COMMON_CLK_PXA is not set
 # CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_NXP is not set
+# CONFIG_COMMON_CLK_PXA is not set
+# CONFIG_COMMON_CLK_PIC32 is not set
 
 #
 # Hardware Spinlock drivers
@@ -6394,7 +6584,6 @@ CONFIG_IOMMU_SUPPORT=y
 #
 CONFIG_IOMMU_IOVA=y
 CONFIG_AMD_IOMMU=y
-# CONFIG_AMD_IOMMU_STATS is not set
 CONFIG_AMD_IOMMU_V2=m
 CONFIG_DMAR_TABLE=y
 CONFIG_INTEL_IOMMU=y
@@ -6416,6 +6605,10 @@ CONFIG_STE_MODEM_RPROC=m
 #
 # SOC (System On Chip) specific Drivers
 #
+
+#
+# Broadcom SoC drivers
+#
 # CONFIG_SUNXI_SRAM is not set
 # CONFIG_SOC_TI is not set
 CONFIG_PM_DEVFREQ=y
@@ -6427,6 +6620,7 @@ CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=m
 CONFIG_DEVFREQ_GOV_PERFORMANCE=m
 CONFIG_DEVFREQ_GOV_POWERSAVE=m
 CONFIG_DEVFREQ_GOV_USERSPACE=m
+CONFIG_DEVFREQ_GOV_PASSIVE=m
 
 #
 # DEVFREQ Drivers
@@ -6440,6 +6634,8 @@ CONFIG_EXTCON=m
 # CONFIG_EXTCON_ADC_JACK is not set
 # CONFIG_EXTCON_ARIZONA is not set
 CONFIG_EXTCON_GPIO=m
+# CONFIG_EXTCON_MAX3355 is not set
+# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
 # CONFIG_EXTCON_RT8973A is not set
 CONFIG_EXTCON_SM5502=m
 # CONFIG_EXTCON_USB_GPIO is not set
@@ -6449,24 +6645,34 @@ CONFIG_IIO_BUFFER=y
 CONFIG_IIO_BUFFER_CB=m
 CONFIG_IIO_KFIFO_BUF=m
 CONFIG_IIO_TRIGGERED_BUFFER=m
+CONFIG_IIO_CONFIGFS=m
 CONFIG_IIO_TRIGGER=y
 CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+CONFIG_IIO_SW_DEVICE=m
+CONFIG_IIO_SW_TRIGGER=m
 
 #
 # Accelerometers
 #
 # CONFIG_BMA180 is not set
+# CONFIG_BMA220 is not set
 # CONFIG_BMC150_ACCEL is not set
+# CONFIG_DMARD09 is not set
 CONFIG_HID_SENSOR_ACCEL_3D=m
 CONFIG_IIO_ST_ACCEL_3AXIS=m
 CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m
 CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m
 # CONFIG_KXSD9 is not set
 CONFIG_KXCJK1013=m
+# CONFIG_MC3230 is not set
+# CONFIG_MMA7455_I2C is not set
+# CONFIG_MMA7455_SPI is not set
+CONFIG_MMA7660=m
 # CONFIG_MMA8452 is not set
 # CONFIG_MMA9551 is not set
 # CONFIG_MMA9553 is not set
 # CONFIG_MXC4005 is not set
+# CONFIG_MXC6255 is not set
 # CONFIG_STK8312 is not set
 # CONFIG_STK8BA50 is not set
 
@@ -6483,6 +6689,8 @@ CONFIG_KXCJK1013=m
 # CONFIG_AD7923 is not set
 # CONFIG_AD799X is not set
 # CONFIG_HI8435 is not set
+# CONFIG_INA2XX_ADC is not set
+# CONFIG_LTC2485 is not set
 # CONFIG_MAX1027 is not set
 # CONFIG_MAX1363 is not set
 # CONFIG_MCP320X is not set
@@ -6491,7 +6699,11 @@ CONFIG_KXCJK1013=m
 # CONFIG_QCOM_SPMI_IADC is not set
 # CONFIG_QCOM_SPMI_VADC is not set
 # CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC12138 is not set
 # CONFIG_TI_ADC128S052 is not set
+# CONFIG_TI_ADC161S626 is not set
+# CONFIG_TI_ADS1015 is not set
 # CONFIG_TI_AM335X_ADC is not set
 # CONFIG_VIPERBOARD_ADC is not set
 
@@ -6503,6 +6715,8 @@ CONFIG_KXCJK1013=m
 #
 # Chemical Sensors
 #
+# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_IAQCORE is not set
 # CONFIG_VZ89X is not set
 
 #
@@ -6528,19 +6742,28 @@ CONFIG_IIO_ST_SENSORS_CORE=m
 # CONFIG_AD5421 is not set
 # CONFIG_AD5446 is not set
 # CONFIG_AD5449 is not set
+# CONFIG_AD5592R is not set
+# CONFIG_AD5593R is not set
 # CONFIG_AD5504 is not set
 # CONFIG_AD5624R_SPI is not set
 # CONFIG_AD5686 is not set
 # CONFIG_AD5755 is not set
+# CONFIG_AD5761 is not set
 # CONFIG_AD5764 is not set
 # CONFIG_AD5791 is not set
 # CONFIG_AD7303 is not set
+# CONFIG_AD8801 is not set
 # CONFIG_M62332 is not set
 # CONFIG_MAX517 is not set
 # CONFIG_MCP4725 is not set
 # CONFIG_MCP4922 is not set
 
 #
+# IIO dummy driver
+#
+# CONFIG_IIO_SIMPLE_DUMMY is not set
+
+#
 # Frequency Synthesizers DDS/PLL
 #
 
@@ -6570,8 +6793,20 @@ CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
 # CONFIG_ITG3200 is not set
 
 #
+# Health Sensors
+#
+
+#
+# Heart Rate Monitors
+#
+# CONFIG_AFE4403 is not set
+# CONFIG_AFE4404 is not set
+CONFIG_MAX30100=m
+
+#
 # Humidity sensors
 #
+# CONFIG_AM2315 is not set
 # CONFIG_DHT11 is not set
 # CONFIG_HDC100X is not set
 # CONFIG_HTU21 is not set
@@ -6583,8 +6818,11 @@ CONFIG_IIO_ST_GYRO_SPI_3AXIS=m
 #
 # CONFIG_ADIS16400 is not set
 # CONFIG_ADIS16480 is not set
+# CONFIG_BMI160_I2C is not set
+# CONFIG_BMI160_SPI is not set
 # CONFIG_KMX61 is not set
-# CONFIG_INV_MPU6050_IIO is not set
+# CONFIG_INV_MPU6050_I2C is not set
+# CONFIG_INV_MPU6050_SPI is not set
 
 #
 # Light sensors
@@ -6595,6 +6833,7 @@ CONFIG_ACPI_ALS=m
 # CONFIG_APDS9300 is not set
 # CONFIG_APDS9960 is not set
 CONFIG_BH1750=m
+CONFIG_BH1780=m
 # CONFIG_CM32181 is not set
 # CONFIG_CM3232 is not set
 # CONFIG_CM3323 is not set
@@ -6607,8 +6846,10 @@ CONFIG_HID_SENSOR_ALS=m
 CONFIG_RPR0521=m
 # CONFIG_SENSORS_LM3533 is not set
 # CONFIG_LTR501 is not set
+# CONFIG_MAX44000 is not set
 CONFIG_OPT3001=m
 CONFIG_PA12203001=m
+# CONFIG_SI1145 is not set
 CONFIG_STK3310=m
 # CONFIG_TCS3414 is not set
 # CONFIG_TCS3472 is not set
@@ -6616,19 +6857,24 @@ CONFIG_STK3310=m
 # CONFIG_TSL4531 is not set
 # CONFIG_US5182D is not set
 # CONFIG_VCNL4000 is not set
+# CONFIG_VEML6070 is not set
 
 #
 # Magnetometer sensors
 #
 # CONFIG_AK8975 is not set
 # CONFIG_AK09911 is not set
-# CONFIG_BMC150_MAGN is not set
+# CONFIG_BMC150_MAGN_I2C is not set
+# CONFIG_BMC150_MAGN_SPI is not set
 # CONFIG_MAG3110 is not set
 CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
 # CONFIG_MMC35240 is not set
 CONFIG_IIO_ST_MAGN_3AXIS=m
 CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
 CONFIG_IIO_ST_MAGN_SPI_3AXIS=m
+CONFIG_SENSORS_HMC5843=m
+CONFIG_SENSORS_HMC5843_I2C=m
+CONFIG_SENSORS_HMC5843_SPI=m
 
 #
 # Inclinometer sensors
@@ -6639,25 +6885,35 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m
 #
 # Triggers - standalone
 #
+# CONFIG_IIO_HRTIMER_TRIGGER is not set
 CONFIG_IIO_INTERRUPT_TRIGGER=m
+CONFIG_IIO_TIGHTLOOP_TRIGGER=m
 # CONFIG_IIO_SYSFS_TRIGGER is not set
 
 #
 # Digital potentiometers
 #
+# CONFIG_DS1803 is not set
+# CONFIG_MAX5487 is not set
+# CONFIG_MCP4131 is not set
 # CONFIG_MCP4531 is not set
+# CONFIG_TPL0102 is not set
 
 #
 # Pressure sensors
 #
 # CONFIG_BMP280 is not set
 # CONFIG_HID_SENSOR_PRESS is not set
-# CONFIG_MPL115 is not set
+# CONFIG_HP03 is not set
+# CONFIG_MPL115_I2C is not set
+# CONFIG_MPL115_SPI is not set
 # CONFIG_MPL3115 is not set
 # CONFIG_MS5611 is not set
 # CONFIG_MS5637 is not set
 # CONFIG_IIO_ST_PRESS is not set
 # CONFIG_T5403 is not set
+# CONFIG_HP206C is not set
+# CONFIG_ZPA2326 is not set
 
 #
 # Lightning sensors
@@ -6673,6 +6929,7 @@ CONFIG_IIO_INTERRUPT_TRIGGER=m
 #
 # Temperature sensors
 #
+# CONFIG_MAXIM_THERMOCOUPLE is not set
 # CONFIG_MLX90614 is not set
 # CONFIG_TMP006 is not set
 # CONFIG_TSYS01 is not set
@@ -6680,10 +6937,21 @@ CONFIG_IIO_INTERRUPT_TRIGGER=m
 # CONFIG_NTB is not set
 # CONFIG_VME_BUS is not set
 # CONFIG_PWM is not set
+CONFIG_ARM_GIC_MAX_NR=1
 CONFIG_IPACK_BUS=m
 CONFIG_BOARD_TPCI200=m
 CONFIG_SERIAL_IPOCTAL=m
 CONFIG_RESET_CONTROLLER=y
+# CONFIG_RESET_ATH79 is not set
+# CONFIG_RESET_BERLIN is not set
+# CONFIG_RESET_LPC18XX is not set
+# CONFIG_RESET_MESON is not set
+# CONFIG_RESET_PISTACHIO is not set
+# CONFIG_RESET_SOCFPGA is not set
+# CONFIG_RESET_STM32 is not set
+# CONFIG_RESET_SUNXI is not set
+# CONFIG_TI_SYSCON_RESET is not set
+# CONFIG_RESET_ZYNQ is not set
 CONFIG_FMC=m
 CONFIG_FMC_FAKEDEV=m
 CONFIG_FMC_TRIVIAL=m
@@ -6705,7 +6973,7 @@ CONFIG_INTEL_RAPL=m
 # Performance monitor support
 #
 CONFIG_RAS=y
-CONFIG_AMD_MCE_INJ=m
+# CONFIG_MCE_AMD_INJ is not set
 CONFIG_THUNDERBOLT=m
 
 #
@@ -6718,11 +6986,24 @@ CONFIG_ND_BLK=m
 CONFIG_ND_CLAIM=y
 CONFIG_ND_BTT=m
 CONFIG_BTT=y
-# CONFIG_NVMEM is not set
-# CONFIG_STM is not set
+CONFIG_ND_PFN=m
+CONFIG_NVDIMM_PFN=y
+CONFIG_NVDIMM_DAX=y
+CONFIG_DEV_DAX=m
+CONFIG_DEV_DAX_PMEM=m
+CONFIG_NR_DEV_DAX=32768
+CONFIG_NVMEM=m
+CONFIG_STM=m
 # CONFIG_STM_DUMMY is not set
-# CONFIG_STM_SOURCE_CONSOLE is not set
-# CONFIG_INTEL_TH is not set
+CONFIG_STM_SOURCE_CONSOLE=m
+CONFIG_STM_SOURCE_HEARTBEAT=m
+CONFIG_INTEL_TH=m
+CONFIG_INTEL_TH_PCI=m
+CONFIG_INTEL_TH_GTH=m
+CONFIG_INTEL_TH_STH=m
+CONFIG_INTEL_TH_MSU=m
+CONFIG_INTEL_TH_PTI=m
+# CONFIG_INTEL_TH_DEBUG is not set
 
 #
 # FPGA Configuration Support
@@ -6742,6 +7023,8 @@ CONFIG_DMI_SYSFS=m
 CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y
 CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
+CONFIG_FW_CFG_SYSFS=m
+# CONFIG_FW_CFG_SYSFS_CMDLINE is not set
 # CONFIG_GOOGLE_FIRMWARE is not set
 
 #
@@ -6752,19 +7035,23 @@ CONFIG_EFI_ESRT=y
 CONFIG_EFI_RUNTIME_MAP=y
 # CONFIG_EFI_FAKE_MEMMAP is not set
 CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_CAPSULE_LOADER=m
+# CONFIG_EFI_TEST is not set
 CONFIG_UEFI_CPER=y
 
 #
 # File systems
 #
 CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_FS_IOMAP=y
 # CONFIG_EXT2_FS is not set
 # CONFIG_EXT3_FS is not set
 CONFIG_EXT4_FS=m
 CONFIG_EXT4_USE_FOR_EXT2=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_ENCRYPTION is not set
+CONFIG_EXT4_ENCRYPTION=y
+CONFIG_EXT4_FS_ENCRYPTION=y
 # CONFIG_EXT4_DEBUG is not set
 CONFIG_JBD2=m
 # CONFIG_JBD2_DEBUG is not set
@@ -6809,10 +7096,14 @@ CONFIG_F2FS_FS_SECURITY=y
 CONFIG_F2FS_CHECK_FS=y
 CONFIG_F2FS_FS_ENCRYPTION=y
 # CONFIG_F2FS_IO_TRACE is not set
+# CONFIG_F2FS_FAULT_INJECTION is not set
 # CONFIG_FS_DAX is not set
 CONFIG_FS_POSIX_ACL=y
 CONFIG_EXPORTFS=y
+CONFIG_EXPORTFS_BLOCK_OPS=y
 CONFIG_FILE_LOCKING=y
+# CONFIG_MANDATORY_FILE_LOCKING is not set
+CONFIG_FS_ENCRYPTION=m
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
 CONFIG_INOTIFY_USER=y
@@ -6861,6 +7152,7 @@ CONFIG_MSDOS_FS=m
 CONFIG_VFAT_FS=m
 CONFIG_FAT_DEFAULT_CODEPAGE=437
 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
 CONFIG_NTFS_FS=m
 # CONFIG_NTFS_DEBUG is not set
 CONFIG_NTFS_RW=y
@@ -6881,9 +7173,11 @@ CONFIG_TMPFS_POSIX_ACL=y
 CONFIG_TMPFS_XATTR=y
 CONFIG_HUGETLBFS=y
 CONFIG_HUGETLB_PAGE=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
 CONFIG_CONFIGFS_FS=y
 CONFIG_EFIVAR_FS=y
 CONFIG_MISC_FILESYSTEMS=y
+CONFIG_ORANGEFS_FS=m
 # CONFIG_ADFS_FS is not set
 CONFIG_AFFS_FS=m
 CONFIG_ECRYPT_FS=m
@@ -6939,10 +7233,13 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y
 # CONFIG_ROMFS_BACKED_BY_BOTH is not set
 CONFIG_ROMFS_ON_BLOCK=y
 CONFIG_PSTORE=y
+CONFIG_PSTORE_ZLIB_COMPRESS=y
+# CONFIG_PSTORE_LZO_COMPRESS is not set
+# CONFIG_PSTORE_LZ4_COMPRESS is not set
 # CONFIG_PSTORE_CONSOLE is not set
 # CONFIG_PSTORE_PMSG is not set
 # CONFIG_PSTORE_FTRACE is not set
-CONFIG_PSTORE_RAM=m
+CONFIG_PSTORE_RAM=y
 # CONFIG_SYSV_FS is not set
 CONFIG_UFS_FS=m
 # CONFIG_UFS_FS_WRITE is not set
@@ -6976,6 +7273,9 @@ CONFIG_NFSD_V3=y
 CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_NFSD_PNFS=y
+CONFIG_NFSD_BLOCKLAYOUT=y
+CONFIG_NFSD_SCSILAYOUT=y
+# CONFIG_NFSD_FLEXFILELAYOUT is not set
 CONFIG_NFSD_V4_SECURITY_LABEL=y
 # CONFIG_NFSD_FAULT_INJECTION is not set
 CONFIG_GRACE_PERIOD=m
@@ -6996,7 +7296,7 @@ CONFIG_CEPH_FS_POSIX_ACL=y
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 # CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_WEAK_PW_HASH is not set
 CONFIG_CIFS_UPCALL=y
 CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
@@ -7006,15 +7306,7 @@ CONFIG_CIFS_DFS_UPCALL=y
 CONFIG_CIFS_SMB2=y
 CONFIG_CIFS_SMB311=y
 CONFIG_CIFS_FSCACHE=y
-CONFIG_NCP_FS=m
-# CONFIG_NCPFS_PACKET_SIGNING is not set
-# CONFIG_NCPFS_IOCTL_LOCKING is not set
-# CONFIG_NCPFS_STRONG is not set
-CONFIG_NCPFS_NFS_NS=y
-CONFIG_NCPFS_OS2_NS=y
-CONFIG_NCPFS_SMALLDOS=y
-CONFIG_NCPFS_NLS=y
-# CONFIG_NCPFS_EXTRAS is not set
+# CONFIG_NCP_FS is not set
 CONFIG_CODA_FS=m
 CONFIG_AFS_FS=m
 # CONFIG_AFS_DEBUG is not set
@@ -7094,7 +7386,7 @@ CONFIG_DYNAMIC_DEBUG=y
 # Compile-time checks and compiler options
 #
 # CONFIG_DEBUG_INFO is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
 # CONFIG_ENABLE_MUST_CHECK is not set
 CONFIG_FRAME_WARN=2048
 CONFIG_STRIP_ASM_SYMS=y
@@ -7107,6 +7399,7 @@ CONFIG_DEBUG_FS=y
 CONFIG_SECTION_MISMATCH_WARN_ONLY=y
 CONFIG_ARCH_WANT_FRAME_POINTERS=y
 CONFIG_FRAME_POINTER=y
+CONFIG_STACK_VALIDATION=y
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
 CONFIG_MAGIC_SYSRQ=y
 CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
@@ -7117,6 +7410,8 @@ CONFIG_DEBUG_KERNEL=y
 #
 # CONFIG_PAGE_EXTENSION is not set
 # CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_PAGE_REF is not set
 # CONFIG_DEBUG_OBJECTS is not set
 # CONFIG_SLUB_DEBUG_ON is not set
 # CONFIG_SLUB_STATS is not set
@@ -7132,6 +7427,8 @@ CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
 CONFIG_HAVE_ARCH_KMEMCHECK=y
 CONFIG_HAVE_ARCH_KASAN=y
 # CONFIG_KASAN is not set
+CONFIG_ARCH_HAS_KCOV=y
+# CONFIG_KCOV is not set
 # CONFIG_DEBUG_SHIRQ is not set
 
 #
@@ -7147,6 +7444,7 @@ CONFIG_DETECT_HUNG_TASK=y
 CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_WQ_WATCHDOG is not set
 # CONFIG_PANIC_ON_OOPS is not set
 CONFIG_PANIC_ON_OOPS_VALUE=0
 CONFIG_PANIC_TIMEOUT=0
@@ -7156,7 +7454,6 @@ CONFIG_SCHEDSTATS=y
 # CONFIG_SCHED_STACK_END_CHECK is not set
 # CONFIG_DEBUG_TIMEKEEPING is not set
 CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_PREEMPT is not set
 
 #
 # Lock Debugging (spinlocks, mutexes, etc...)
@@ -7186,21 +7483,21 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_PROVE_RCU is not set
 # CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_TORTURE_TEST is not set
+# CONFIG_RCU_PERF_TEST is not set
 # CONFIG_RCU_TORTURE_TEST is not set
 CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_RCU_TRACE is not set
 # CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
 # CONFIG_NOTIFIER_ERROR_INJECTION is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
-CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
-# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 CONFIG_USER_STACKTRACE_SUPPORT=y
 CONFIG_NOP_TRACER=y
 CONFIG_HAVE_FUNCTION_TRACER=y
 CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
 CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
@@ -7220,8 +7517,8 @@ CONFIG_FTRACE=y
 CONFIG_FUNCTION_TRACER=y
 CONFIG_FUNCTION_GRAPH_TRACER=y
 # CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_PREEMPT_TRACER is not set
 CONFIG_SCHED_TRACER=y
+CONFIG_HWLAT_TRACER=y
 CONFIG_FTRACE_SYSCALLS=y
 CONFIG_TRACER_SNAPSHOT=y
 # CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set
@@ -7240,6 +7537,7 @@ CONFIG_FUNCTION_PROFILER=y
 CONFIG_FTRACE_MCOUNT_RECORD=y
 # CONFIG_FTRACE_STARTUP_TEST is not set
 CONFIG_MMIOTRACE=y
+# CONFIG_HIST_TRIGGERS is not set
 # CONFIG_MMIOTRACE_TEST is not set
 # CONFIG_TRACEPOINT_BENCHMARK is not set
 CONFIG_RING_BUFFER_BENCHMARK=m
@@ -7263,7 +7561,10 @@ CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_TEST_STRING_HELPERS is not set
 CONFIG_TEST_KSTRTOX=m
 # CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_UUID is not set
 # CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_HASH is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_DMA_API_DEBUG is not set
 # CONFIG_TEST_LKM is not set
@@ -7276,15 +7577,19 @@ CONFIG_TEST_KSTRTOX=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set
+# CONFIG_UBSAN is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
 CONFIG_STRICT_DEVMEM=y
+CONFIG_IO_STRICT_DEVMEM=y
 # CONFIG_X86_VERBOSE_BOOTUP is not set
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 CONFIG_EARLY_PRINTK_EFI=y
-CONFIG_X86_PTDUMP_CORE=y
+# CONFIG_X86_PTDUMP_CORE is not set
 # CONFIG_X86_PTDUMP is not set
 # CONFIG_EFI_PGT_DUMP is not set
-CONFIG_DEBUG_RODATA=y
 # CONFIG_DEBUG_RODATA_TEST is not set
 # CONFIG_DEBUG_WX is not set
 CONFIG_DEBUG_SET_MODULE_RONX=y
@@ -7309,7 +7614,6 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_OPTIMIZE_INLINING is not set
 # CONFIG_DEBUG_ENTRY is not set
 # CONFIG_DEBUG_NMI_SELFTEST is not set
-# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set
 # CONFIG_X86_DEBUG_FPU is not set
 # CONFIG_PUNIT_ATOM_DEBUG is not set
 
@@ -7318,18 +7622,22 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
 #
 CONFIG_KEYS=y
 CONFIG_PERSISTENT_KEYRINGS=y
-CONFIG_BIG_KEYS=y
 CONFIG_TRUSTED_KEYS=m
 CONFIG_ENCRYPTED_KEYS=m
+CONFIG_KEY_DH_OPERATIONS=y
 # CONFIG_SECURITY_DMESG_RESTRICT is not set
 CONFIG_SECURITY=y
 CONFIG_SECURITYFS=y
 # CONFIG_SECURITY_NETWORK is not set
 CONFIG_SECURITY_PATH=y
 # CONFIG_INTEL_TXT is not set
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y
+CONFIG_HARDENED_USERCOPY=y
 # CONFIG_SECURITY_SMACK is not set
 # CONFIG_SECURITY_TOMOYO is not set
 # CONFIG_SECURITY_APPARMOR is not set
+# CONFIG_SECURITY_LOADPIN is not set
 CONFIG_SECURITY_YAMA=y
 CONFIG_INTEGRITY=y
 # CONFIG_INTEGRITY_SIGNATURE is not set
@@ -7352,19 +7660,21 @@ CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
 CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER=y
 CONFIG_CRYPTO_BLKCIPHER2=y
 CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
 CONFIG_CRYPTO_RNG_DEFAULT=m
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_AKCIPHER2=y
 CONFIG_CRYPTO_AKCIPHER=m
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=m
 CONFIG_CRYPTO_RSA=m
-CONFIG_CRYPTO_MANAGER=m
+CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
 CONFIG_CRYPTO_USER=m
 CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
@@ -7395,7 +7705,7 @@ CONFIG_CRYPTO_ECHAINIV=m
 CONFIG_CRYPTO_CBC=m
 CONFIG_CRYPTO_CTR=m
 CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_ECB=y
 CONFIG_CRYPTO_LRW=m
 CONFIG_CRYPTO_PCBC=m
 CONFIG_CRYPTO_XTS=m
@@ -7433,8 +7743,11 @@ CONFIG_CRYPTO_SHA1_SSSE3=m
 CONFIG_CRYPTO_SHA256_SSSE3=m
 CONFIG_CRYPTO_SHA512_SSSE3=m
 CONFIG_CRYPTO_SHA1_MB=m
+CONFIG_CRYPTO_SHA256_MB=m
+CONFIG_CRYPTO_SHA512_MB=m
 CONFIG_CRYPTO_SHA256=m
 CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA3=m
 CONFIG_CRYPTO_TGR192=m
 CONFIG_CRYPTO_WP512=m
 CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
@@ -7483,7 +7796,6 @@ CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
 # Compression
 #
 CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_ZLIB=m
 CONFIG_CRYPTO_LZO=y
 CONFIG_CRYPTO_842=m
 CONFIG_CRYPTO_LZ4=m
@@ -7514,25 +7826,29 @@ CONFIG_CRYPTO_DEV_CCP_DD=m
 CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
 CONFIG_CRYPTO_DEV_QAT=m
 CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
+CONFIG_CRYPTO_DEV_QAT_C3XXX=m
+CONFIG_CRYPTO_DEV_QAT_C62X=m
 CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
-CONFIG_ASYMMETRIC_KEY_TYPE=m
+CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
+CONFIG_CRYPTO_DEV_QAT_C62XVF=m
+CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
 CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
-CONFIG_PUBLIC_KEY_ALGO_RSA=m
 CONFIG_X509_CERTIFICATE_PARSER=m
 CONFIG_PKCS7_MESSAGE_PARSER=m
-CONFIG_PKCS7_TEST_KEY=m
 
 #
 # Certificates for signature checking
 #
 CONFIG_SYSTEM_TRUSTED_KEYRING=y
 CONFIG_SYSTEM_TRUSTED_KEYS=""
+# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
+CONFIG_SECONDARY_TRUSTED_KEYRING=y
 CONFIG_HAVE_KVM=y
 CONFIG_HAVE_KVM_IRQCHIP=y
 CONFIG_HAVE_KVM_IRQFD=y
 CONFIG_HAVE_KVM_IRQ_ROUTING=y
 CONFIG_HAVE_KVM_EVENTFD=y
-CONFIG_KVM_APIC_ARCHITECTURE=y
 CONFIG_KVM_MMIO=y
 CONFIG_KVM_ASYNC_PF=y
 CONFIG_HAVE_KVM_MSI=y
@@ -7547,6 +7863,11 @@ CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
 CONFIG_KVM_MMU_AUDIT=y
 CONFIG_KVM_DEVICE_ASSIGNMENT=y
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_SCSI=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_VHOST=m
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
 CONFIG_BINARY_PRINTF=y
 
 #
@@ -7565,7 +7886,7 @@ CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_IO=y
 CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
 CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
-CONFIG_CRC_CCITT=m
+CONFIG_CRC_CCITT=y
 CONFIG_CRC16=m
 CONFIG_CRC_T10DIF=y
 CONFIG_CRC_ITU_T=m
@@ -7605,18 +7926,16 @@ CONFIG_DECOMPRESS_XZ=y
 CONFIG_DECOMPRESS_LZO=y
 CONFIG_DECOMPRESS_LZ4=y
 CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON=y
 CONFIG_REED_SOLOMON_ENC8=y
 CONFIG_REED_SOLOMON_DEC8=y
-CONFIG_REED_SOLOMON_DEC16=y
-CONFIG_BCH=m
-CONFIG_BCH_CONST_PARAMS=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
 CONFIG_TEXTSEARCH_FSM=m
 CONFIG_BTREE=y
 CONFIG_INTERVAL_TREE=y
+CONFIG_RADIX_TREE_MULTIORDER=y
 CONFIG_ASSOCIATIVE_ARRAY=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT_MAP=y
@@ -7627,12 +7946,12 @@ CONFIG_DQL=y
 CONFIG_GLOB=y
 # CONFIG_GLOB_SELFTEST is not set
 CONFIG_NLATTR=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
 CONFIG_LRU_CACHE=m
 CONFIG_CLZ_TAB=y
 CONFIG_CORDIC=m
 CONFIG_DDR=y
-CONFIG_MPILIB=m
+CONFIG_IRQ_POLL=y
+CONFIG_MPILIB=y
 CONFIG_OID_REGISTRY=m
 CONFIG_UCS2_STRING=y
 CONFIG_FONT_SUPPORT=y
@@ -7650,6 +7969,8 @@ CONFIG_FONT_8x16=y
 # CONFIG_FONT_10x18 is not set
 CONFIG_FONT_AUTOSELECT=y
 # CONFIG_SG_SPLIT is not set
+CONFIG_SG_POOL=y
 CONFIG_ARCH_HAS_SG_CHAIN=y
 CONFIG_ARCH_HAS_PMEM_API=y
 CONFIG_ARCH_HAS_MMIO_FLUSH=y
+CONFIG_SBITMAP=y
diff --git a/abs/core/linux/linux.install b/abs/core/linux/linux.install
index 15dc8b6..0893e29 100644
--- a/abs/core/linux/linux.install
+++ b/abs/core/linux/linux.install
@@ -1,7 +1,7 @@
 # arg 1:  the new package version
 # arg 2:  the old package version
 
-KERNEL_NAME=
+KERNEL_NAME=-lts
 KERNEL_VERSION=
 
 post_install () {
diff --git a/abs/core/linux/linux.install.pkg b/abs/core/linux/linux.install.pkg
index 80ccf2c..9f7c302 100644
--- a/abs/core/linux/linux.install.pkg
+++ b/abs/core/linux/linux.install.pkg
@@ -2,7 +2,7 @@
 # arg 2:  the old package version
 
 KERNEL_NAME=
-KERNEL_VERSION=4.4.58-1-ARCH
+KERNEL_VERSION=4.9.20-1-ARCH
 
 post_install () {
   # updating module dependencies
diff --git a/abs/core/linux/linux.preset b/abs/core/linux/linux.preset
index b06292d..7300e9c 100644
--- a/abs/core/linux/linux.preset
+++ b/abs/core/linux/linux.preset
@@ -1,14 +1,14 @@
-# mkinitcpio preset file for the 'linux' package
+# mkinitcpio preset file for the 'linux-lts' package
 
 ALL_config="/etc/mkinitcpio.conf"
-ALL_kver="/boot/vmlinuz-linux"
+ALL_kver="/boot/vmlinuz-linux-lts"
 
 PRESETS=('default' 'fallback')
 
 #default_config="/etc/mkinitcpio.conf"
-default_image="/boot/initramfs-linux.img"
+default_image="/boot/initramfs-linux-lts.img"
 #default_options=""
 
 #fallback_config="/etc/mkinitcpio.conf"
-fallback_image="/boot/initramfs-linux-fallback.img" 
+fallback_image="/boot/initramfs-linux-lts-fallback.img" 
 fallback_options="-S autodetect"
-- 
cgit v0.12


From 7902bd1364bfe330d5a74104326b775a35988703 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Apr 2017 19:17:14 +0000
Subject: ceton_infinitv: rebuild for kernel 4.9.20. add patch for building on
 4.7+

---
 abs/core/ceton_infinitv/PKGBUILD          | 12 +++++++-----
 abs/core/ceton_infinitv/kernel-4.7+.patch | 14 ++++++++++++++
 2 files changed, 21 insertions(+), 5 deletions(-)
 create mode 100644 abs/core/ceton_infinitv/kernel-4.7+.patch

diff --git a/abs/core/ceton_infinitv/PKGBUILD b/abs/core/ceton_infinitv/PKGBUILD
index 78d9943..d575351 100755
--- a/abs/core/ceton_infinitv/PKGBUILD
+++ b/abs/core/ceton_infinitv/PKGBUILD
@@ -2,30 +2,31 @@
 
 pkgname=ceton_infinitv
 #_kernver=`uname -r`
-_kernver=4.4.58-1-ARCH
-_extramods="extramodules-4.4-ARCH"
+_kernver=4.9.20-1-ARCH
+_extramods="extramodules-4.9-ARCH"
 pkgver=2013.0326.2226
-pkgrel=19
+pkgrel=20
 usb_pkgver=0.1.0
 pci_pkgver=`echo $pkgver | tr . _`
 pkgdesc="Drivers for Ceton InfiniTV4 - pci/usb "
 arch=('i686' 'x86_64')
 license=('GPL2')
 url="http://cetoncorp.com/infinitv_support/linux_drivers"
-depends=('linux>=4.4' 'linux<4.5' 'libgusb' 'libnl1' 'ctntad')
+depends=('linux>=4.9' 'linux<4.10' 'libgusb' 'libnl1' 'ctntad')
 makedepends=(linux-headers)
 install=ceton.install
 source=("http://cetoncorp.com/downloads/ceton_infinitv_linux_driver_$pci_pkgver.tar.gz"
         "98-ctn91xx.rules"
         "http://cetoncorp.com/downloads/infinitv-usbd-$usb_pkgver.tar.gz"
         "ceton_usb_init.sh" "ifctn.sh"
-        "ceton_usb_udev.rules"
+        "ceton_usb_udev.rules" "kernel-4.7+.patch"
         "http://cetoncorp.com/downloads/reset_network.py"
         "no-date-time-warn.patch")
 
 build() {
   cd $srcdir/ceton_infinitv_linux_driver
   patch -p1 -i $srcdir/no-date-time-warn.patch
+  patch -p1 -i $srcdir/kernel-4.7+.patch
   make KERNEL_VERSION=$_kernver
 
   cd $srcdir/infinitv-usbd-$usb_pkgver
@@ -54,5 +55,6 @@ md5sums=('de329d7c9477a22fa8cb18f3a74b2ff5'
          '9f95a08bdd8c2a9e8d62e7daf52a90f6'
          '3fc4c4981d2dab54b297f17564b7729f'
          '8da7dd477d7d47f03e85be4d6476e183'
+         '7c7a55b940c54d919271a92afa8fb489'
          'e48d82ff70b05a74aaace9cdcb6875db'
          'c90f09bb099d403dceeef5b09af32526')
diff --git a/abs/core/ceton_infinitv/kernel-4.7+.patch b/abs/core/ceton_infinitv/kernel-4.7+.patch
new file mode 100644
index 0000000..c47cef3
--- /dev/null
+++ b/abs/core/ceton_infinitv/kernel-4.7+.patch
@@ -0,0 +1,14 @@
+--- ceton_infinitv_linux_driver/ctn91xx_net.c.orig	2017-04-06 18:56:02.072900758 +0000
++++ ceton_infinitv_linux_driver/ctn91xx_net.c	2017-04-06 18:59:01.536518743 +0000
+@@ -228,7 +228,11 @@
+         sdump_buffer( skb->data, skb->len, "tx");
+ #endif
+ 
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
++        netif_trans_update(ndev);
++#else
+         ndev->trans_start = jiffies;
++#endif
+         ctn91xx_write8( 1, msg_base, MSG_BUFFER_MSG_AVAIL );
+ 
+     } else {
-- 
cgit v0.12


From d944f6ec87e7216b3f42a925ab42576e1b66f7be Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Apr 2017 19:17:56 +0000
Subject: nvidia-340xx: rebuild for kernel

---
 abs/core/nvidia-340xx/PKGBUILD             | 8 ++++----
 abs/core/nvidia-340xx/nvidia-340xx.install | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core/nvidia-340xx/PKGBUILD b/abs/core/nvidia-340xx/PKGBUILD
index a3de95b..5f404fa 100644
--- a/abs/core/nvidia-340xx/PKGBUILD
+++ b/abs/core/nvidia-340xx/PKGBUILD
@@ -5,11 +5,11 @@
 pkgbase=nvidia-340xx
 pkgname=(nvidia-340xx nvidia-340xx-dkms)
 pkgver=340.102
-_extramodules=extramodules-4.4-ARCH
-pkgrel=5
+_extramodules=extramodules-4.9-ARCH
+pkgrel=6
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
-makedepends=("nvidia-340xx-utils=${pkgver}" 'linux' 'linux-headers>=4.4' 'linux-headers<4.5')
+makedepends=("nvidia-340xx-utils=${pkgver}" 'linux' 'linux-headers>=4.9' 'linux-headers<4.10')
 conflicts=('nvidia')
 license=('custom')
 options=(!strip)
@@ -46,7 +46,7 @@ build() {
 
 package_nvidia-340xx() {
     pkgdesc="NVIDIA drivers for linux, 340xx legacy branch"
-    depends=('linux>=4.4' 'linux<4.5' 'libgl' "nvidia-340xx-utils=${pkgver}")
+    depends=('linux>=4.9' 'linux<4.10' 'libgl' "nvidia-340xx-utils=${pkgver}")
     conflict+=('nvidia-340xx-dkms')
     install=nvidia-340xx.install
 
diff --git a/abs/core/nvidia-340xx/nvidia-340xx.install b/abs/core/nvidia-340xx/nvidia-340xx.install
index 0979433..9858d46 100644
--- a/abs/core/nvidia-340xx/nvidia-340xx.install
+++ b/abs/core/nvidia-340xx/nvidia-340xx.install
@@ -1,5 +1,5 @@
 post_install() {
-    EXTRAMODULES='extramodules-4.4-ARCH'
+    EXTRAMODULES='extramodules-4.9-ARCH'
     depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
     echo 'In order to use nvidia module, reboot the system.'
 }
-- 
cgit v0.12


From b287a01635dd77b80717c06b31b451d4e5d4205c Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Apr 2017 19:29:35 +0000
Subject: nvidia: rebuild for kernel

---
 abs/core/nvidia/PKGBUILD       | 8 ++++----
 abs/core/nvidia/nvidia.install | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core/nvidia/PKGBUILD b/abs/core/nvidia/PKGBUILD
index b5a0707..2ebee1f 100644
--- a/abs/core/nvidia/PKGBUILD
+++ b/abs/core/nvidia/PKGBUILD
@@ -6,12 +6,12 @@
 pkgbase=nvidia
 pkgname=(nvidia nvidia-dkms)
 pkgver=378.13
-_extramodules=extramodules-4.4-ARCH
-pkgrel=4
+_extramodules=extramodules-4.9-ARCH
+pkgrel=5
 pkgdesc="NVIDIA drivers for linux"
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
-makedepends=('nvidia-libgl' "nvidia-utils=${pkgver}" 'linux' 'linux-headers>=4.4' 'linux-headers<4.5')
+makedepends=('nvidia-libgl' "nvidia-utils=${pkgver}" 'linux' 'linux-headers>=4.9' 'linux-headers<4.10')
 license=('custom')
 options=('!strip')
 source=('kernel_4.10.patch')
@@ -53,7 +53,7 @@ build() {
 
 package_nvidia() {
     pkgdesc="NVIDIA drivers for linux"
-    depends=('linux>=4.4' 'linux<4.5' "nvidia-utils=${pkgver}" 'libgl')
+    depends=('linux>=4.9' 'linux<4.10' "nvidia-utils=${pkgver}" 'libgl')
     install=nvidia.install
 
     install -D -m644 "${srcdir}/${_pkg}/kernel/nvidia.ko" \
diff --git a/abs/core/nvidia/nvidia.install b/abs/core/nvidia/nvidia.install
index e08e837..0169714 100644
--- a/abs/core/nvidia/nvidia.install
+++ b/abs/core/nvidia/nvidia.install
@@ -1,5 +1,5 @@
 post_install() {
-    EXTRAMODULES='extramodules-4.4-ARCH'
+    EXTRAMODULES='extramodules-4.9-ARCH'
     depmod $(cat /usr/lib/modules/${EXTRAMODULES}/version)
     echo 'In order to use nvidia module, reboot the system.'
 }
-- 
cgit v0.12


From dbc5c1d74e31f43ad0f25e631830bf01ebf1086a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Apr 2017 19:32:50 +0000
Subject: nvidia-304xx: rebuild for kernel

---
 abs/core/nvidia-304xx/PKGBUILD             | 8 ++++----
 abs/core/nvidia-304xx/nvidia-304xx.install | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/core/nvidia-304xx/PKGBUILD b/abs/core/nvidia-304xx/PKGBUILD
index a8eaf80..a61edee 100644
--- a/abs/core/nvidia-304xx/PKGBUILD
+++ b/abs/core/nvidia-304xx/PKGBUILD
@@ -5,11 +5,11 @@
 pkgbase=nvidia-304xx
 pkgname=(nvidia-304xx nvidia-304xx-dkms)
 pkgver=304.135
-_extramodules=extramodules-4.4-ARCH
-pkgrel=3
+_extramodules=extramodules-4.9-ARCH
+pkgrel=4
 arch=('i686' 'x86_64')
 url="http://www.nvidia.com/"
-makedepends=('linux' 'linux-headers>=4.4' 'linux-headers<4.5')
+makedepends=('linux' 'linux-headers>=4.9' 'linux-headers<4.10')
 conflicts=('nvidia')
 license=('custom')
 options=('!strip')
@@ -49,7 +49,7 @@ build() {
 
 package_nvidia-304xx() {
     pkgdesc="NVIDIA drivers for linux, 304xx legacy branch"
-    depends=('linux>=4.4' 'linux<4.5' 'libgl' "nvidia-304xx-utils=${pkgver}")
+    depends=('linux>=4.9' 'linux<4.10' 'libgl' "nvidia-304xx-utils=${pkgver}")
 	conflicts+=('nvidia-304xx-dkms')
     install=nvidia-304xx.install
 
diff --git a/abs/core/nvidia-304xx/nvidia-304xx.install b/abs/core/nvidia-304xx/nvidia-304xx.install
index 0979433..9858d46 100644
--- a/abs/core/nvidia-304xx/nvidia-304xx.install
+++ b/abs/core/nvidia-304xx/nvidia-304xx.install
@@ -1,5 +1,5 @@
 post_install() {
-    EXTRAMODULES='extramodules-4.4-ARCH'
+    EXTRAMODULES='extramodules-4.9-ARCH'
     depmod $(cat /usr/lib/modules/$EXTRAMODULES/version)
     echo 'In order to use nvidia module, reboot the system.'
 }
-- 
cgit v0.12


From 9a848edf519eb1532e5c4649dc03548fe4195d3e Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Thu, 6 Apr 2017 19:41:43 +0000
Subject: linux-api-headers: update to 4.9.20

---
 abs/core/linux-api-headers/PKGBUILD | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/core/linux-api-headers/PKGBUILD b/abs/core/linux-api-headers/PKGBUILD
index 3bc8b4d..a1ef29c 100644
--- a/abs/core/linux-api-headers/PKGBUILD
+++ b/abs/core/linux-api-headers/PKGBUILD
@@ -4,8 +4,8 @@
 # toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
 
 pkgname=linux-api-headers
-pkgver=4.4.1
-_basever=4.4
+pkgver=4.9.20
+_basever=4.9
 pkgrel=1
 pkgdesc="Kernel headers sanitized for use in userspace"
 arch=('i686' 'x86_64')
@@ -15,9 +15,9 @@ source=(http://www.kernel.org/pub/linux/kernel/v4.x/linux-${_basever}.tar.xz
         http://www.kernel.org/pub/linux/kernel/v4.x/linux-${_basever}.tar.sign
         http://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz
         http://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.sign)
-md5sums=('9a78fa2eb6c68ca5a40ed5af08142599'
+md5sums=('0a68ef3615c64bd5ee54a3320e46667d'
          'SKIP'
-         'd9e951895c8c249f0bf52d85f3e63bce'
+         '1d336b33f01320e3bdbdc2d9b52aadbd'
          'SKIP')
 validpgpkeys=('ABAF11C65A2970B130ABE3C479BE3E4300411886'   # Linus Torvalds
               '647F28654894E3BD457199BE38DBBDC86092693E')  # Greg Kroah-Hartman
-- 
cgit v0.12


From 590f6014402de26ca01fd74c7c21e820fcd959fc Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Mon, 10 Apr 2017 12:59:28 +0000
Subject: LinHES-config: systemd-coredump.conf: remove execute bit

---
 abs/core/LinHES-config/PKGBUILD              | 4 ++--
 abs/core/LinHES-config/systemd-coredump.conf | 0
 2 files changed, 2 insertions(+), 2 deletions(-)
 mode change 100755 => 100644 abs/core/LinHES-config/systemd-coredump.conf

diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index c31677e..e0beaae 100755
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=8.4.3
-pkgrel=6
+pkgrel=7
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config )
 pkgdesc="Install and configure your system"
 depends=('bc' 'libstatgrab' 'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
@@ -134,7 +134,7 @@ package() {
     install -o root -g root  -D -m 0755 hdhr.conf $pkgdir/etc/sysctl.d/hdhr.conf
 
     #systemd conf
-    install -o root -g root  -D -m 0755 systemd-coredump.conf $pkgdir/etc/systemd/coredump.conf.d/coredump.conf
+    install -o root -g root  -D -m 0644 systemd-coredump.conf $pkgdir/etc/systemd/coredump.conf.d/coredump.conf
 
     #modules blacklist files
     install -o root -g root  -D -m 0755 blacklist_pcspkr.conf $pkgdir/etc/modprobe.d/blacklist_pcspkr.conf
diff --git a/abs/core/LinHES-config/systemd-coredump.conf b/abs/core/LinHES-config/systemd-coredump.conf
old mode 100755
new mode 100644
-- 
cgit v0.12


From 89c0562bd12b6a5a1f17b31fa7194c3827574684 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 18 Apr 2017 16:08:20 +0000
Subject: plex-media-server: update to 1.5.5.3634

---
 abs/extra/plex-media-server/PKGBUILD | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/abs/extra/plex-media-server/PKGBUILD b/abs/extra/plex-media-server/PKGBUILD
index fe386da..6d14e83 100644
--- a/abs/extra/plex-media-server/PKGBUILD
+++ b/abs/extra/plex-media-server/PKGBUILD
@@ -7,8 +7,8 @@
 # Contributor: Praekon <praekon@googlemail.com>
 
 pkgname=plex-media-server
-pkgver=1.5.3.3580
-_pkgsum=4b377d295
+pkgver=1.5.5.3634
+_pkgsum=995f1dead
 pkgrel=1
 pkgdesc='Plex Media Server'
 arch=('armv7h' 'i686' 'x86_64')
@@ -57,6 +57,6 @@ md5sums=('dfd6778f5c0d3d64c2c3a71dca02b7cc'
          '97241861f2c0b7c82d1945a6c5de8e35'
          '506ec15815bba749a743780edd2323c8'
          'bd703bc750b989a27edd590eb8c8e9d7')
-md5sums_armv7h=('f5442574d7a29fe0458de9d740c5ee9d')
-md5sums_i686=('0a6b742f62d3bd23fa165bdcd944e3e5')
-md5sums_x86_64=('15201a8e0e656be9c35ec7af1a9cc0ae')
+md5sums_armv7h=('ecddf56daadc88b2f985ea73c837cd1b')
+md5sums_i686=('154e67a62134d735e91842e78d087871')
+md5sums_x86_64=('47d2026555372b7fa0508ce615e512a6')
-- 
cgit v0.12


From 0a8de86de9f21f7877075ac2800254239ae84a81 Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Tue, 18 Apr 2017 16:12:33 +0000
Subject: nano: update to 2.8.1

---
 abs/core/nano/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core/nano/PKGBUILD b/abs/core/nano/PKGBUILD
index 38fda47..0b809b3 100644
--- a/abs/core/nano/PKGBUILD
+++ b/abs/core/nano/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: Judd <judd@archlinux.org>
 
 pkgname=nano
-pkgver=2.7.5
+pkgver=2.8.1
 pkgrel=1
 pkgdesc="Pico editor clone with enhancements"
 arch=('i686' 'x86_64')
@@ -12,8 +12,8 @@ url="http://www.nano-editor.org"
 groups=('base')
 depends=('ncurses' 'file' 'sh')
 backup=('etc/nanorc')
-source=(https://www.nano-editor.org/dist/v2.7/${pkgname}-${pkgver}.tar.gz{,.asc})
-sha256sums=('226be22f46359007aa76499623739f4a7d5fa294a2899c70b21bc09b8d81d907'
+source=(https://www.nano-editor.org/dist/v2.8/${pkgname}-${pkgver}.tar.gz{,.asc})
+sha256sums=('a48650dab5fc069bb953d020721b6c0f650969abf5a34a27dfd6f038215c5910'
             'SKIP')
 validpgpkeys=('8DA6FE7BFA7A418AB3CB2354BCB356DF91009FA7' # "Chris Allegretta <chrisa@asty.org>"
               'A7F6A64A67DA09EF92782DD79DF4862AF1175C5B' # "Benno Schulenberg <bensberg@justemail.net>"
-- 
cgit v0.12