summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Lambiris2016-08-12 23:44:36 -0400
committerTony Lambiris2016-08-12 23:44:36 -0400
commit5e1aae2c381876829eb1cc84de19ee56967175af (patch)
treefac1ae347c7eee8878a28ffffe39003cb0826ba9
parenta5de2d64e1fe96b944bfd9f4c668b89f7aec5722 (diff)
downloadaur-5e1aae2c381876829eb1cc84de19ee56967175af.tar.gz
Bump to linux 4.7
-rw-r--r--.SRCINFO22
-rw-r--r--PKGBUILD40
-rw-r--r--config153
-rw-r--r--config.x86_64160
-rw-r--r--intel-pstate-backport.patch959
-rw-r--r--linux-macbook.preset6
6 files changed, 482 insertions, 858 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 6aa2e408c670..09f374caaf7c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,5 +1,5 @@
pkgbase = linux-macbook
- pkgver = 4.6.4
+ pkgver = 4.7
pkgrel = 1
url = http://www.kernel.org/
arch = i686
@@ -12,10 +12,8 @@ pkgbase = linux-macbook
makedepends = bc
makedepends = libelf
options = !strip
- source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.tar.xz
- source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.6.tar.sign
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.6.4.xz
- source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.6.4.sign
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.7.tar.xz
+ source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.7.tar.sign
source = config
source = config.x86_64
source = linux-macbook.preset
@@ -23,21 +21,17 @@ pkgbase = linux-macbook
source = macbook-suspend.patch
source = intel-pstate-backport.patch
source = change-default-console-loglevel.patch
- source = 0001-linux-4.6-rtlwifi-fix-atomic.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
- sha256sums = a93771cd5a8ad27798f22e9240538dfea48d3a2bf2a6a6ab415de3f02d25d866
+ sha256sums = 5190c3d1209aeda04168145bf50569dc0984f80467159b1dc50ad731e3285f10
sha256sums = SKIP
- sha256sums = f500a3b841c41420914938d681e258c712fbbd7ebec5fe70f0abc071a1738e47
- sha256sums = SKIP
- sha256sums = 5b31f30dc031aa964e7a45a476d479a9f72044729148bb6dd855e958c0fad3b6
- sha256sums = 4ffdc4f4e1cccc73312a32c2a700c9197723901f242a11d69f15f1abf582d7ce
- sha256sums = eeb4a578e4ec4babc279084b224e44f85dd7b654f970df14c01e2372d07decb3
+ sha256sums = e9b7f502b5e27fc4154f0b98f3870f2988b58414df948a61a82502d84bc68a72
+ sha256sums = 0004f61a57696a41a1bca1a4a2e6abb03b6ae1b2e67ce73055ae062764660f2f
+ sha256sums = f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c
sha256sums = bb8af32880059e681396a250d8e78f600f248da8ad4f0e76d7923badb5ee8b42
sha256sums = 103cac598bf92519d6c0b04ca729565bad75015daade422c81225e399c967b4c
- sha256sums = dc0b1eed205118261f3894750cab4ed5a13c8d5e8132c623890efd11976e9326
+ sha256sums = c9873d1703881f35d25e553d2359a7e846916fab0e981579e1afdf6b034f3a0e
sha256sums = 1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99
- sha256sums = ae0d16e81a915fae130125ba9d0b6fd2427e06f50b8b9514abc4029efe61ee98
pkgname = linux-macbook
pkgdesc = The Linux-macbook kernel and modules (with brightness key and suspend patches)
diff --git a/PKGBUILD b/PKGBUILD
index abc3b8a9f94c..2c814a6a0e8d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,8 +4,8 @@
# Maintainer: Tony Lambiris <tony@critialstack.com>
pkgbase=linux-macbook # Build kernel with a different name
-_srcname=linux-4.6
-pkgver=4.6.4
+_srcname=linux-4.7
+pkgver=4.7
pkgrel=1
arch=('i686' 'x86_64')
url="http://www.kernel.org/"
@@ -14,8 +14,8 @@ makedepends=('xmlto' 'docbook-xsl' 'kmod' 'inetutils' 'bc' 'libelf')
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"
+ #"https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.xz"
+ #"https://www.kernel.org/pub/linux/kernel/v4.x/patch-${pkgver}.sign"
# the main kernel config files
'config' 'config.x86_64'
# standard config files for mkinitcpio ramdisk
@@ -23,21 +23,17 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz"
'apple-gmux.patch'
'macbook-suspend.patch'
'intel-pstate-backport.patch'
- 'change-default-console-loglevel.patch'
- '0001-linux-4.6-rtlwifi-fix-atomic.patch')
+ 'change-default-console-loglevel.patch')
-sha256sums=('a93771cd5a8ad27798f22e9240538dfea48d3a2bf2a6a6ab415de3f02d25d866'
+sha256sums=('5190c3d1209aeda04168145bf50569dc0984f80467159b1dc50ad731e3285f10'
'SKIP'
- 'f500a3b841c41420914938d681e258c712fbbd7ebec5fe70f0abc071a1738e47'
- 'SKIP'
- '5b31f30dc031aa964e7a45a476d479a9f72044729148bb6dd855e958c0fad3b6'
- '4ffdc4f4e1cccc73312a32c2a700c9197723901f242a11d69f15f1abf582d7ce'
- 'eeb4a578e4ec4babc279084b224e44f85dd7b654f970df14c01e2372d07decb3'
+ 'e9b7f502b5e27fc4154f0b98f3870f2988b58414df948a61a82502d84bc68a72'
+ '0004f61a57696a41a1bca1a4a2e6abb03b6ae1b2e67ce73055ae062764660f2f'
+ 'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c'
'bb8af32880059e681396a250d8e78f600f248da8ad4f0e76d7923badb5ee8b42'
'103cac598bf92519d6c0b04ca729565bad75015daade422c81225e399c967b4c'
- 'dc0b1eed205118261f3894750cab4ed5a13c8d5e8132c623890efd11976e9326'
- '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99'
- 'ae0d16e81a915fae130125ba9d0b6fd2427e06f50b8b9514abc4029efe61ee98')
+ 'c9873d1703881f35d25e553d2359a7e846916fab0e981579e1afdf6b034f3a0e'
+ '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99')
validpgpkeys=(
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
@@ -49,7 +45,7 @@ prepare() {
cd "${srcdir}/${_srcname}"
# add upstream patch
- patch -p1 -i "${srcdir}/patch-${pkgver}"
+ #patch -p1 -i "${srcdir}/patch-${pkgver}"
# add latest fixes from stable queue, if needed
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
@@ -59,13 +55,9 @@ prepare() {
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227)
patch -p1 -i "${srcdir}/change-default-console-loglevel.patch"
- # fix rtlwifi atomic
- # https://bugs.archlinux.org/task/49401
- patch -p1 -i "${srcdir}/0001-linux-4.6-rtlwifi-fix-atomic.patch"
-
- patch -p1 -i "${srcdir}/apple-gmux.patch"
- patch -p1 -i "${srcdir}/macbook-suspend.patch"
- patch -p1 -i "${srcdir}/intel-pstate-backport.patch"
+ patch -p1 -F3 -i "${srcdir}/apple-gmux.patch"
+ patch -p1 -F3 -i "${srcdir}/macbook-suspend.patch"
+ patch -p1 -F3 -i "${srcdir}/intel-pstate-backport.patch"
if [ "${CARCH}" = "x86_64" ]; then
cat "${srcdir}/config.x86_64" > ./.config
@@ -180,7 +172,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
diff --git a/config b/config
index 0a0c2f907d44..f9bd3d229878 100644
--- a/config
+++ b/config
@@ -1,12 +1,11 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.6.0 Kernel Configuration
+# Linux/x86 4.7.0 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
@@ -137,6 +136,7 @@ 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
@@ -178,6 +178,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
@@ -196,6 +197,7 @@ CONFIG_KALLSYMS=y
# 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
@@ -249,6 +251,7 @@ 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_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
@@ -280,11 +283,15 @@ 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
#
# GCOV-based kernel profiling
@@ -451,6 +458,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
@@ -462,7 +477,6 @@ CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_PERF_EVENTS_AMD_POWER=m
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
# CONFIG_NOHIGHMEM is not set
@@ -491,7 +505,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
@@ -509,6 +522,7 @@ CONFIG_FRONTSWAP=y
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
@@ -529,7 +543,7 @@ 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
@@ -605,7 +619,7 @@ 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_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_PCI_SLOT=y
CONFIG_X86_PM_TIMER=y
@@ -639,6 +653,7 @@ 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_DETAILS=y
@@ -647,11 +662,13 @@ CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
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_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=m
#
# CPU frequency scaling drivers
@@ -716,6 +733,7 @@ CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
+CONFIG_PCIE_DPC=m
CONFIG_PCI_MSI=y
CONFIG_PCI_MSI_IRQ_DOMAIN=y
# CONFIG_PCI_DEBUG is not set
@@ -797,6 +815,7 @@ CONFIG_RAPIDIO_CPS_GEN2=m
# 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
@@ -901,6 +920,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
@@ -1264,6 +1285,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
@@ -1287,7 +1309,6 @@ CONFIG_HAVE_NET_DSA=y
CONFIG_NET_DSA=m
CONFIG_NET_DSA_HWMON=y
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_VLAN_8021Q=m
@@ -1613,7 +1634,7 @@ CONFIG_BT_ATH3K=m
CONFIG_BT_WILINK=m
CONFIG_AF_RXRPC=m
# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
+# CONFIG_RXKAD is not set
CONFIG_AF_KCM=m
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
@@ -1677,7 +1698,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
@@ -1687,6 +1707,9 @@ 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
@@ -1800,6 +1823,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
@@ -2159,7 +2183,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
@@ -2182,6 +2205,7 @@ 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
@@ -2248,6 +2272,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
@@ -2370,6 +2397,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
@@ -2408,6 +2436,7 @@ 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
@@ -2472,13 +2501,8 @@ CONFIG_VHOST=m
#
# 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=m
-CONFIG_NET_DSA_MV88E6171=m
-CONFIG_NET_DSA_MV88E6352=m
+CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_ETHERNET=y
CONFIG_MDIO=m
@@ -2540,7 +2564,7 @@ CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T3=m
CONFIG_CHELSIO_T4=m
-# CONFIG_CHELSIO_T4_UWIRE is not set
+CONFIG_CHELSIO_T4_UWIRE=y
CONFIG_CHELSIO_T4VF=m
CONFIG_NET_VENDOR_CIRRUS=y
CONFIG_CS89x0=m
@@ -2615,7 +2639,6 @@ CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_CORE_EN=y
-CONFIG_MLX5_CORE_EN_VXLAN=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_PCI=m
@@ -2663,7 +2686,10 @@ CONFIG_QLCNIC_HWMON=y
CONFIG_QLGE=m
CONFIG_NETXEN_NIC=m
CONFIG_QED=m
+CONFIG_QED_SRIOV=y
CONFIG_QEDE=m
+# CONFIG_QEDE_VXLAN is not set
+# CONFIG_QEDE_GENEVE is not set
CONFIG_NET_VENDOR_QUALCOMM=y
CONFIG_QCA7000=m
CONFIG_NET_VENDOR_REALTEK=y
@@ -2726,6 +2752,7 @@ 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
@@ -2957,7 +2984,6 @@ 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=y
#
@@ -3537,7 +3563,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
@@ -3564,6 +3589,7 @@ 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
@@ -3574,7 +3600,6 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# 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_MID=y
CONFIG_SERIAL_8250_MOXA=m
CONFIG_SERIAL_OF_PLATFORM=m
@@ -3607,7 +3632,6 @@ CONFIG_SERIAL_RP2=m
CONFIG_SERIAL_RP2_NR_UARTS=32
CONFIG_SERIAL_FSL_LPUART=m
CONFIG_SERIAL_CONEXANT_DIGICOLOR=m
-# CONFIG_SERIAL_MVEBU_UART is not set
CONFIG_PRINTER=m
# CONFIG_LP_CONSOLE is not set
CONFIG_PPDEV=m
@@ -3784,6 +3808,7 @@ CONFIG_SPI_LM70_LLP=m
CONFIG_SPI_OC_TINY=m
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
@@ -4032,6 +4057,7 @@ 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
@@ -4145,10 +4171,16 @@ 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_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
@@ -4301,6 +4333,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
@@ -4613,6 +4646,7 @@ CONFIG_MEDIA_PCI_SUPPORT=y
CONFIG_VIDEO_MEYE=m
CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_TW68=m
+CONFIG_VIDEO_TW686X=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_ZR36060=m
@@ -5060,6 +5094,7 @@ CONFIG_DRM_RADEON=m
CONFIG_DRM_AMDGPU=m
# CONFIG_DRM_AMDGPU_CIK is not set
CONFIG_DRM_AMDGPU_USERPTR=y
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
CONFIG_DRM_AMD_POWERPLAY=y
#
@@ -5107,8 +5142,10 @@ CONFIG_DRM_BRIDGE=y
#
# Display Interface Bridges
#
+CONFIG_DRM_ANALOGIX_ANX78XX=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_ARCPGU is not set
#
# Frame buffer Devices
@@ -5498,6 +5535,7 @@ CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST_MATCH=m
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_RT298_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
@@ -5556,6 +5594,7 @@ CONFIG_SND_SOC_MAX98357A=m
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
@@ -5576,6 +5615,7 @@ CONFIG_SND_SOC_SSM4567=m
# 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
@@ -5597,6 +5637,7 @@ 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
@@ -5623,6 +5664,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
@@ -5812,6 +5854,7 @@ CONFIG_USB_MICROTEK=m
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VUDC=m
# CONFIG_USBIP_DEBUG is not set
CONFIG_USB_MUSB_HDRC=m
# CONFIG_USB_MUSB_HOST is not set
@@ -5919,6 +5962,7 @@ CONFIG_USB_EZUSB_FX2=m
CONFIG_USB_HSIC_USB3503=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
@@ -6019,6 +6063,8 @@ CONFIG_UWB_WHCI=m
CONFIG_UWB_I1480U=m
CONFIG_MMC=m
# CONFIG_MMC_DEBUG is not set
+# CONFIG_PWRSEQ_EMMC is not set
+# CONFIG_PWRSEQ_SIMPLE is not set
#
# MMC/SD/SDIO Card Drivers
@@ -6120,6 +6166,7 @@ CONFIG_LEDS_BLINKM=m
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
+CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_CPU=y
@@ -6131,6 +6178,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
@@ -6233,8 +6281,6 @@ 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_RV3029_HWMON=y
# CONFIG_RTC_DRV_RV8803 is not set
#
@@ -6242,6 +6288,7 @@ CONFIG_RTC_DRV_RV3029_HWMON=y
#
# 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
@@ -6260,6 +6307,8 @@ CONFIG_RTC_I2C_AND_SPI=y
#
CONFIG_RTC_DRV_DS3232=m
CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_RV3029_HWMON=y
#
# Platform RTC drivers
@@ -6324,6 +6373,11 @@ CONFIG_HSU_DMA=y
#
CONFIG_ASYNC_TX_DMA=y
# CONFIG_DMATEST is not set
+
+#
+# DMABUF options
+#
+# CONFIG_SYNC_FILE is not set
CONFIG_AUXDISPLAY=y
CONFIG_KS0108=m
CONFIG_KS0108_PORT=0x378
@@ -6539,9 +6593,7 @@ 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
@@ -6645,7 +6697,6 @@ CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
CONFIG_LIRC_ZILOG=m
-# CONFIG_STAGING_RDMA is not set
#
# Android
@@ -6727,6 +6778,7 @@ CONFIG_TOSHIBA_WMI=m
CONFIG_ACPI_CMPC=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IPS=m
+CONFIG_INTEL_PMC_CORE=y
CONFIG_IBM_RTL=m
CONFIG_XO1_RFKILL=m
CONFIG_XO15_EBOOK=m
@@ -6747,6 +6799,7 @@ 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
@@ -6764,6 +6817,8 @@ CONFIG_COMMON_CLK_RK808=m
# CONFIG_COMMON_CLK_NXP is not set
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_PXA is not set
+# CONFIG_COMMON_CLK_PIC32 is not set
+# CONFIG_COMMON_CLK_OXNAS is not set
#
# Hardware Spinlock drivers
@@ -6820,6 +6875,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
@@ -6934,6 +6990,8 @@ 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
@@ -6998,6 +7056,7 @@ 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
@@ -7009,6 +7068,8 @@ CONFIG_MAX30100=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=m
# CONFIG_INV_MPU6050_I2C is not set
@@ -7023,6 +7084,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
@@ -7035,6 +7097,7 @@ 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_STK3310=m
@@ -7044,13 +7107,15 @@ 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
@@ -7077,14 +7142,16 @@ CONFIG_IIO_INTERRUPT_TRIGGER=m
#
# Digital potentiometers
#
+# CONFIG_DS1803 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_HP03 is not set
# CONFIG_MPL115_I2C is not set
# CONFIG_MPL115_SPI is not set
# CONFIG_MPL3115 is not set
@@ -7092,6 +7159,7 @@ CONFIG_IIO_INTERRUPT_TRIGGER=m
# CONFIG_MS5637 is not set
# CONFIG_IIO_ST_PRESS is not set
# CONFIG_T5403 is not set
+# CONFIG_HP206C is not set
#
# Lightning sensors
@@ -7149,13 +7217,14 @@ 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_DEV_DAX=m
CONFIG_NVMEM=m
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set
@@ -7190,6 +7259,7 @@ 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 is not set
CONFIG_UEFI_CPER=y
#
@@ -7247,6 +7317,7 @@ 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
@@ -7631,6 +7702,7 @@ 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
@@ -7686,6 +7758,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
@@ -7710,7 +7783,9 @@ CONFIG_ASYNC_RAID6_TEST=m
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
@@ -7769,6 +7844,7 @@ 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
@@ -7778,6 +7854,7 @@ CONFIG_SECURITY_PATH=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
@@ -7800,17 +7877,17 @@ 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_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=m
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=m
CONFIG_CRYPTO_RSA=m
-CONFIG_CRYPTO_MANAGER=m
+CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
@@ -7841,7 +7918,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
@@ -7948,11 +8025,10 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
-CONFIG_ASYMMETRIC_KEY_TYPE=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
CONFIG_X509_CERTIFICATE_PARSER=m
CONFIG_PKCS7_MESSAGE_PARSER=m
-CONFIG_PKCS7_TEST_KEY=m
#
# Certificates for signature checking
@@ -7960,6 +8036,7 @@ CONFIG_PKCS7_TEST_KEY=m
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
@@ -8049,6 +8126,7 @@ 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
@@ -8065,7 +8143,7 @@ CONFIG_CLZ_TAB=y
CONFIG_CORDIC=m
CONFIG_DDR=y
CONFIG_IRQ_POLL=y
-CONFIG_MPILIB=m
+CONFIG_MPILIB=y
CONFIG_OID_REGISTRY=m
CONFIG_UCS2_STRING=y
CONFIG_FONT_SUPPORT=y
@@ -8083,5 +8161,6 @@ 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
diff --git a/config.x86_64 b/config.x86_64
index 6b22013388ed..8cd604b5da1a 100644
--- a/config.x86_64
+++ b/config.x86_64
@@ -1,12 +1,11 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 4.6.0 Kernel Configuration
+# Linux/x86 4.7.0 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
@@ -142,6 +141,7 @@ 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
@@ -187,6 +187,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
@@ -205,6 +206,7 @@ CONFIG_KALLSYMS=y
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
@@ -258,6 +260,7 @@ 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_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
@@ -295,13 +298,17 @@ 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
#
# GCOV-based kernel profiling
@@ -454,6 +461,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
@@ -463,7 +478,6 @@ CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
-CONFIG_PERF_EVENTS_AMD_POWER=m
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
@@ -498,6 +512,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
@@ -507,7 +522,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
@@ -525,6 +539,7 @@ CONFIG_FRONTSWAP=y
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
@@ -548,7 +563,7 @@ 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
@@ -632,7 +647,7 @@ 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_ACPI_TABLE_UPGRADE=y
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_PCI_SLOT=y
CONFIG_X86_PM_TIMER=y
@@ -662,6 +677,7 @@ 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_DETAILS=y
@@ -670,11 +686,13 @@ CONFIG_CPU_FREQ_STAT_DETAILS=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
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_CONSERVATIVE=m
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=m
#
# CPU frequency scaling drivers
@@ -727,6 +745,7 @@ CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PCIE_PME=y
+CONFIG_PCIE_DPC=m
CONFIG_PCI_BUS_ADDR_T_64BIT=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MSI_IRQ_DOMAIN=y
@@ -795,6 +814,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
@@ -906,6 +926,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
@@ -1269,6 +1291,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
@@ -1292,7 +1315,6 @@ CONFIG_HAVE_NET_DSA=y
CONFIG_NET_DSA=m
CONFIG_NET_DSA_HWMON=y
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_VLAN_8021Q=m
@@ -1611,7 +1633,7 @@ CONFIG_BT_ATH3K=m
CONFIG_BT_WILINK=m
CONFIG_AF_RXRPC=m
# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
+# CONFIG_RXKAD is not set
CONFIG_AF_KCM=m
CONFIG_FIB_RULES=y
CONFIG_WIRELESS=y
@@ -1675,7 +1697,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
@@ -1685,6 +1706,9 @@ 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
@@ -1700,7 +1724,7 @@ CONFIG_LWTUNNEL=y
CONFIG_DST_CACHE=y
CONFIG_NET_DEVLINK=m
CONFIG_MAY_USE_DEVLINK=m
-CONFIG_HAVE_BPF_JIT=y
+CONFIG_HAVE_EBPF_JIT=y
#
# Device Drivers
@@ -2162,6 +2186,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
@@ -2217,6 +2242,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
@@ -2331,6 +2359,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
@@ -2369,6 +2398,7 @@ 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
@@ -2433,13 +2463,8 @@ CONFIG_VHOST=m
#
# 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=m
-CONFIG_NET_DSA_MV88E6171=m
-CONFIG_NET_DSA_MV88E6352=m
+CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_ETHERNET=y
CONFIG_MDIO=m
@@ -2494,7 +2519,7 @@ CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T3=m
CONFIG_CHELSIO_T4=m
-# CONFIG_CHELSIO_T4_UWIRE is not set
+CONFIG_CHELSIO_T4_UWIRE=y
CONFIG_CHELSIO_T4VF=m
CONFIG_NET_VENDOR_CISCO=y
CONFIG_ENIC=m
@@ -2568,7 +2593,6 @@ CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_CORE_EN=y
-CONFIG_MLX5_CORE_EN_VXLAN=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_PCI=m
@@ -2613,7 +2637,10 @@ CONFIG_QLCNIC_HWMON=y
CONFIG_QLGE=m
CONFIG_NETXEN_NIC=m
CONFIG_QED=m
+CONFIG_QED_SRIOV=y
CONFIG_QEDE=m
+# CONFIG_QEDE_VXLAN is not set
+# CONFIG_QEDE_GENEVE is not set
CONFIG_NET_VENDOR_QUALCOMM=y
CONFIG_NET_VENDOR_REALTEK=y
CONFIG_ATP=m
@@ -2673,6 +2700,7 @@ 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
@@ -2903,7 +2931,6 @@ 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=y
#
@@ -3456,7 +3483,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
@@ -3483,6 +3509,7 @@ 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
@@ -3493,7 +3520,6 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# 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_MID=y
CONFIG_SERIAL_8250_MOXA=m
@@ -3521,7 +3547,6 @@ CONFIG_SERIAL_ARC_NR_PORTS=1
CONFIG_SERIAL_RP2=m
CONFIG_SERIAL_RP2_NR_UARTS=32
CONFIG_SERIAL_FSL_LPUART=m
-# CONFIG_SERIAL_MVEBU_UART is not set
CONFIG_PRINTER=m
# CONFIG_LP_CONSOLE is not set
CONFIG_PPDEV=m
@@ -3689,6 +3714,7 @@ CONFIG_SPI_LM70_LLP=m
CONFIG_SPI_OC_TINY=m
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
@@ -3764,14 +3790,10 @@ CONFIG_GPIO_LYNXPOINT=y
#
# 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_IT87 is not set
CONFIG_GPIO_SCH=m
CONFIG_GPIO_SCH311X=m
-# CONFIG_GPIO_WS16C48 is not set
#
# I2C GPIO expanders
@@ -3917,6 +3939,7 @@ 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
@@ -4027,9 +4050,15 @@ 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_PCH_THERMAL=m
+CONFIG_GENERIC_ADC_THERMAL=m
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -4050,7 +4079,6 @@ 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_SBC_FITPC2_WATCHDOG=m
@@ -4473,6 +4501,7 @@ CONFIG_MEDIA_PCI_SUPPORT=y
CONFIG_VIDEO_MEYE=m
CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_TW68=m
+CONFIG_VIDEO_TW686X=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_ZR36060=m
@@ -4913,6 +4942,7 @@ CONFIG_DRM_RADEON=m
CONFIG_DRM_AMDGPU=m
# CONFIG_DRM_AMDGPU_CIK is not set
CONFIG_DRM_AMDGPU_USERPTR=y
+# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set
CONFIG_DRM_AMD_POWERPLAY=y
#
@@ -4953,6 +4983,7 @@ CONFIG_DRM_BRIDGE=y
#
# Display Interface Bridges
#
+CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_HSA_AMD=m
#
@@ -5293,6 +5324,7 @@ CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST_MATCH=m
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BXT_RT298_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
@@ -5350,6 +5382,7 @@ CONFIG_SND_SOC_MAX98357A=m
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
@@ -5370,6 +5403,7 @@ CONFIG_SND_SOC_SSM4567=m
# 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
@@ -5391,6 +5425,7 @@ 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
@@ -5417,6 +5452,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
@@ -5606,6 +5642,7 @@ CONFIG_USB_MICROTEK=m
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
+CONFIG_USBIP_VUDC=m
# CONFIG_USBIP_DEBUG is not set
CONFIG_USB_MUSB_HDRC=m
# CONFIG_USB_MUSB_HOST is not set
@@ -5713,6 +5750,7 @@ CONFIG_USB_EZUSB_FX2=m
CONFIG_USB_HSIC_USB3503=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
@@ -5903,6 +5941,7 @@ CONFIG_LEDS_BLINKM=m
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
+# CONFIG_LEDS_TRIGGER_MTD is not set
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_CPU=y
@@ -5914,6 +5953,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
@@ -5946,6 +5986,10 @@ CONFIG_INFINIBAND_SRPT=m
CONFIG_INFINIBAND_ISER=m
CONFIG_INFINIBAND_ISERT=m
CONFIG_INFINIBAND_RDMAVT=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_EDAC_ATOMIC_SCRUB=y
CONFIG_EDAC_SUPPORT=y
CONFIG_EDAC=y
@@ -6013,8 +6057,6 @@ 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_RV3029_HWMON=y
# CONFIG_RTC_DRV_RV8803 is not set
#
@@ -6022,6 +6064,7 @@ CONFIG_RTC_DRV_RV3029_HWMON=y
#
# 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
@@ -6040,6 +6083,8 @@ CONFIG_RTC_I2C_AND_SPI=y
#
CONFIG_RTC_DRV_DS3232=m
CONFIG_RTC_DRV_PCF2127=m
+CONFIG_RTC_DRV_RV3029C2=m
+CONFIG_RTC_DRV_RV3029_HWMON=y
#
# Platform RTC drivers
@@ -6102,6 +6147,11 @@ CONFIG_HSU_DMA=y
CONFIG_ASYNC_TX_DMA=y
# CONFIG_DMATEST is not set
CONFIG_DMA_ENGINE_RAID=y
+
+#
+# DMABUF options
+#
+# CONFIG_SYNC_FILE is not set
CONFIG_DCA=m
CONFIG_AUXDISPLAY=y
CONFIG_KS0108=m
@@ -6297,9 +6347,7 @@ 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
@@ -6399,7 +6447,6 @@ CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
CONFIG_LIRC_ZILOG=m
-# CONFIG_STAGING_RDMA is not set
#
# Android
@@ -6477,6 +6524,7 @@ CONFIG_TOSHIBA_WMI=m
CONFIG_ACPI_CMPC=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IPS=m
+CONFIG_INTEL_PMC_CORE=y
CONFIG_IBM_RTL=m
CONFIG_SAMSUNG_LAPTOP=m
CONFIG_MXM_WMI=m
@@ -6496,6 +6544,7 @@ 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
@@ -6508,6 +6557,8 @@ CONFIG_COMMON_CLK=y
# 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
+# CONFIG_COMMON_CLK_OXNAS is not set
#
# Hardware Spinlock drivers
@@ -6533,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
@@ -6566,6 +6616,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
@@ -6678,6 +6729,8 @@ 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
@@ -6739,6 +6792,7 @@ 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
@@ -6750,6 +6804,8 @@ CONFIG_MAX30100=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_I2C is not set
# CONFIG_INV_MPU6050_SPI is not set
@@ -6763,6 +6819,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
@@ -6775,6 +6832,7 @@ 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_STK3310=m
@@ -6784,13 +6842,15 @@ 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
@@ -6817,14 +6877,16 @@ CONFIG_IIO_INTERRUPT_TRIGGER=m
#
# Digital potentiometers
#
+# CONFIG_DS1803 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_HP03 is not set
# CONFIG_MPL115_I2C is not set
# CONFIG_MPL115_SPI is not set
# CONFIG_MPL3115 is not set
@@ -6832,6 +6894,7 @@ CONFIG_IIO_INTERRUPT_TRIGGER=m
# CONFIG_MS5637 is not set
# CONFIG_IIO_ST_PRESS is not set
# CONFIG_T5403 is not set
+# CONFIG_HP206C is not set
#
# Lightning sensors
@@ -6880,7 +6943,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
#
@@ -6893,6 +6956,7 @@ CONFIG_ND_BLK=m
CONFIG_ND_CLAIM=y
CONFIG_ND_BTT=m
CONFIG_BTT=y
+CONFIG_DEV_DAX=m
CONFIG_NVMEM=m
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set
@@ -6927,6 +6991,7 @@ 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 is not set
CONFIG_UEFI_CPER=y
#
@@ -6984,6 +7049,7 @@ 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
@@ -7373,6 +7439,7 @@ 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
@@ -7429,6 +7496,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
@@ -7453,7 +7521,9 @@ CONFIG_ASYNC_RAID6_TEST=m
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
@@ -7513,6 +7583,7 @@ 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
@@ -7522,6 +7593,7 @@ CONFIG_SECURITY_PATH=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
@@ -7544,17 +7616,17 @@ 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_RNG=y
CONFIG_CRYPTO_RNG2=y
CONFIG_CRYPTO_RNG_DEFAULT=m
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=m
CONFIG_CRYPTO_RSA=m
-CONFIG_CRYPTO_MANAGER=m
+CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
@@ -7585,7 +7657,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
@@ -7708,11 +7780,10 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
-CONFIG_ASYMMETRIC_KEY_TYPE=m
+CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
CONFIG_X509_CERTIFICATE_PARSER=m
CONFIG_PKCS7_MESSAGE_PARSER=m
-CONFIG_PKCS7_TEST_KEY=m
#
# Certificates for signature checking
@@ -7720,6 +7791,7 @@ CONFIG_PKCS7_TEST_KEY=m
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
@@ -7810,6 +7882,7 @@ 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
@@ -7826,7 +7899,7 @@ CONFIG_CLZ_TAB=y
CONFIG_CORDIC=m
CONFIG_DDR=y
CONFIG_IRQ_POLL=y
-CONFIG_MPILIB=m
+CONFIG_MPILIB=y
CONFIG_OID_REGISTRY=m
CONFIG_UCS2_STRING=y
CONFIG_FONT_SUPPORT=y
@@ -7844,6 +7917,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_PMEM_API=y
CONFIG_ARCH_HAS_MMIO_FLUSH=y
diff --git a/intel-pstate-backport.patch b/intel-pstate-backport.patch
index 8b6146401240..49e1ac003dfe 100644
--- a/intel-pstate-backport.patch
+++ b/intel-pstate-backport.patch
@@ -1,775 +1,260 @@
---- linux-4.6/drivers/cpufreq/intel_pstate.c.orig 2016-05-15 18:43:13.000000000 -0400
-+++ linux-4.6/drivers/cpufreq/intel_pstate.c 2016-06-24 17:36:23.064118833 -0400
-@@ -10,6 +10,8 @@
- * of the License.
- */
-
-+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-+
- #include <linux/kernel.h>
- #include <linux/kernel_stat.h>
- #include <linux/module.h>
-@@ -39,10 +41,17 @@
- #define ATOM_TURBO_RATIOS 0x66c
- #define ATOM_TURBO_VIDS 0x66d
-
-+#ifdef CONFIG_ACPI
-+#include <acpi/processor.h>
-+#endif
-+
- #define FRAC_BITS 8
- #define int_tofp(X) ((int64_t)(X) << FRAC_BITS)
- #define fp_toint(X) ((X) >> FRAC_BITS)
-
-+#define EXT_BITS 6
-+#define EXT_FRAC_BITS (EXT_BITS + FRAC_BITS)
-+
- static inline int32_t mul_fp(int32_t x, int32_t y)
- {
- return ((int64_t)x * (int64_t)y) >> FRAC_BITS;
-@@ -64,12 +73,22 @@
- return ret;
- }
-
-+static inline u64 mul_ext_fp(u64 x, u64 y)
-+{
-+ return (x * y) >> EXT_FRAC_BITS;
-+}
-+
-+static inline u64 div_ext_fp(u64 x, u64 y)
-+{
-+ return div64_u64(x << EXT_FRAC_BITS, y);
-+}
-+
- /**
- * struct sample - Store performance sample
-- * @core_pct_busy: Ratio of APERF/MPERF in percent, which is actual
-+ * @core_avg_perf: Ratio of APERF/MPERF which is the actual average
- * performance during last sample period
- * @busy_scaled: Scaled busy value which is used to calculate next
-- * P state. This can be different than core_pct_busy
-+ * P state. This can be different than core_avg_perf
- * to account for cpu idle period
- * @aperf: Difference of actual performance frequency clock count
- * read from APERF MSR between last and current sample
-@@ -84,7 +103,7 @@
- * data for choosing next P State.
- */
- struct sample {
-- int32_t core_pct_busy;
-+ int32_t core_avg_perf;
- int32_t busy_scaled;
- u64 aperf;
- u64 mperf;
-@@ -162,6 +181,7 @@
- * struct cpudata - Per CPU instance data storage
- * @cpu: CPU number for this instance data
- * @update_util: CPUFreq utility callback information
-+ * @update_util_set: CPUFreq utility callback is set
- * @pstate: Stores P state limits for this CPU
- * @vid: Stores VID limits for this CPU
- * @pid: Stores PID parameters for this CPU
-@@ -172,6 +192,8 @@
- * @prev_cummulative_iowait: IO Wait time difference from last and
+--- linux-4.7/drivers/cpufreq/intel_pstate.c.dist 2016-07-24 15:23:50.000000000 -0400
++++ linux-4.7/drivers/cpufreq/intel_pstate.c 2016-08-12 20:51:49.493249861 -0400
+@@ -35,6 +35,7 @@
+ #include <asm/msr.h>
+ #include <asm/cpu_device_id.h>
+ #include <asm/cpufeature.h>
++#include <asm/intel-family.h>
+
+ #define ATOM_RATIOS 0x66a
+ #define ATOM_VIDS 0x66b
+@@ -96,7 +97,6 @@
+ * read from MPERF MSR between last and current sample
+ * @tsc: Difference of time stamp counter between last and
* current sample
- * @sample: Storage for storing last Sample data
-+ * @acpi_perf_data: Stores ACPI perf information read from _PSS
-+ * @valid_pss_table: Set to true for valid ACPI _PSS entries found
+- * @freq: Effective frequency calculated from APERF/MPERF
+ * @time: Current time from scheduler
*
- * This structure stores per CPU instance data for all CPUs.
- */
-@@ -179,6 +201,7 @@
- int cpu;
-
- struct update_util_data update_util;
-+ bool update_util_set;
-
- struct pstate_data pstate;
- struct vid_data vid;
-@@ -190,6 +213,10 @@
- u64 prev_tsc;
- u64 prev_cummulative_iowait;
- struct sample sample;
-+#ifdef CONFIG_ACPI
-+ struct acpi_processor_performance acpi_perf_data;
-+ bool valid_pss_table;
-+#endif
+ * This structure is used in the cpudata structure to store performance sample
+@@ -108,7 +108,6 @@
+ u64 aperf;
+ u64 mperf;
+ u64 tsc;
+- int freq;
+ u64 time;
};
- static struct cpudata **all_cpu_data;
-@@ -258,6 +285,9 @@
- static struct pstate_funcs pstate_funcs;
- static int hwp_active;
-
-+#ifdef CONFIG_ACPI
-+static bool acpi_ppc;
-+#endif
-
- /**
- * struct perf_limits - Store user and policy limits
-@@ -331,6 +361,124 @@
- static struct perf_limits *limits = &powersave_limits;
- #endif
-
-+#ifdef CONFIG_ACPI
-+
-+static bool intel_pstate_get_ppc_enable_status(void)
-+{
-+ if (acpi_gbl_FADT.preferred_profile == PM_ENTERPRISE_SERVER ||
-+ acpi_gbl_FADT.preferred_profile == PM_PERFORMANCE_SERVER)
-+ return true;
-+
-+ return acpi_ppc;
-+}
-+
-+/*
-+ * The max target pstate ratio is a 8 bit value in both PLATFORM_INFO MSR and
-+ * in TURBO_RATIO_LIMIT MSR, which pstate driver stores in max_pstate and
-+ * max_turbo_pstate fields. The PERF_CTL MSR contains 16 bit value for P state
-+ * ratio, out of it only high 8 bits are used. For example 0x1700 is setting
-+ * target ratio 0x17. The _PSS control value stores in a format which can be
-+ * directly written to PERF_CTL MSR. But in intel_pstate driver this shift
-+ * occurs during write to PERF_CTL (E.g. for cores core_set_pstate()).
-+ * This function converts the _PSS control value to intel pstate driver format
-+ * for comparison and assignment.
-+ */
-+static int convert_to_native_pstate_format(struct cpudata *cpu, int index)
-+{
-+ return cpu->acpi_perf_data.states[index].control >> 8;
-+}
-+
-+static void intel_pstate_init_acpi_perf_limits(struct cpufreq_policy *policy)
-+{
-+ struct cpudata *cpu;
-+ int turbo_pss_ctl;
-+ int ret;
-+ int i;
-+
-+ if (hwp_active)
-+ return;
-+
-+ if (!intel_pstate_get_ppc_enable_status())
-+ return;
-+
-+ cpu = all_cpu_data[policy->cpu];
-+
-+ ret = acpi_processor_register_performance(&cpu->acpi_perf_data,
-+ policy->cpu);
-+ if (ret)
-+ return;
-+
-+ /*
-+ * Check if the control value in _PSS is for PERF_CTL MSR, which should
-+ * guarantee that the states returned by it map to the states in our
-+ * list directly.
-+ */
-+ if (cpu->acpi_perf_data.control_register.space_id !=
-+ ACPI_ADR_SPACE_FIXED_HARDWARE)
-+ goto err;
-+
-+ /*
-+ * If there is only one entry _PSS, simply ignore _PSS and continue as
-+ * usual without taking _PSS into account
-+ */
-+ if (cpu->acpi_perf_data.state_count < 2)
-+ goto err;
-+
-+ pr_debug("CPU%u - ACPI _PSS perf data\n", policy->cpu);
-+ for (i = 0; i < cpu->acpi_perf_data.state_count; i++) {
-+ pr_debug(" %cP%d: %u MHz, %u mW, 0x%x\n",
-+ (i == cpu->acpi_perf_data.state ? '*' : ' '), i,
-+ (u32) cpu->acpi_perf_data.states[i].core_frequency,
-+ (u32) cpu->acpi_perf_data.states[i].power,
-+ (u32) cpu->acpi_perf_data.states[i].control);
-+ }
-+
-+ /*
-+ * The _PSS table doesn't contain whole turbo frequency range.
-+ * This just contains +1 MHZ above the max non turbo frequency,
-+ * with control value corresponding to max turbo ratio. But
-+ * when cpufreq set policy is called, it will call with this
-+ * max frequency, which will cause a reduced performance as
-+ * this driver uses real max turbo frequency as the max
-+ * frequency. So correct this frequency in _PSS table to
-+ * correct max turbo frequency based on the turbo ratio.
-+ * Also need to convert to MHz as _PSS freq is in MHz.
-+ */
-+ turbo_pss_ctl = convert_to_native_pstate_format(cpu, 0);
-+ if (turbo_pss_ctl > cpu->pstate.max_pstate)
-+ cpu->acpi_perf_data.states[0].core_frequency =
-+ policy->cpuinfo.max_freq / 1000;
-+ cpu->valid_pss_table = true;
-+ pr_info("_PPC limits will be enforced\n");
-+
-+ return;
-+
-+ err:
-+ cpu->valid_pss_table = false;
-+ acpi_processor_unregister_performance(policy->cpu);
-+}
-+
-+static void intel_pstate_exit_perf_limits(struct cpufreq_policy *policy)
-+{
-+ struct cpudata *cpu;
-+
-+ cpu = all_cpu_data[policy->cpu];
-+ if (!cpu->valid_pss_table)
-+ return;
-+
-+ acpi_processor_unregister_performance(policy->cpu);
-+}
-+
-+#else
-+static void intel_pstate_init_acpi_perf_limits(struct cpufreq_policy *policy)
-+{
-+}
-+
-+static void intel_pstate_exit_perf_limits(struct cpufreq_policy *policy)
-+{
-+}
-+#endif
-+
- static inline void pid_reset(struct _pid *pid, int setpoint, int busy,
- int deadband, int integral) {
- pid->setpoint = int_tofp(setpoint);
-@@ -341,17 +489,17 @@
-
- static inline void pid_p_gain_set(struct _pid *pid, int percent)
+@@ -281,9 +280,9 @@
+ static inline int32_t get_target_pstate_use_performance(struct cpudata *cpu);
+ static inline int32_t get_target_pstate_use_cpu_load(struct cpudata *cpu);
+
+-static struct pstate_adjust_policy pid_params;
+-static struct pstate_funcs pstate_funcs;
+-static int hwp_active;
++static struct pstate_adjust_policy pid_params __read_mostly;
++static struct pstate_funcs pstate_funcs __read_mostly;
++static int hwp_active __read_mostly;
+
+ #ifdef CONFIG_ACPI
+ static bool acpi_ppc;
+@@ -807,7 +806,8 @@
+ static void intel_pstate_hwp_enable(struct cpudata *cpudata)
{
-- pid->p_gain = div_fp(int_tofp(percent), int_tofp(100));
-+ pid->p_gain = div_fp(percent, 100);
- }
+ /* First disable HWP notification interrupt as we don't process them */
+- wrmsrl_on_cpu(cpudata->cpu, MSR_HWP_INTERRUPT, 0x00);
++ if (static_cpu_has(X86_FEATURE_HWP_NOTIFY))
++ wrmsrl_on_cpu(cpudata->cpu, MSR_HWP_INTERRUPT, 0x00);
- static inline void pid_i_gain_set(struct _pid *pid, int percent)
- {
-- pid->i_gain = div_fp(int_tofp(percent), int_tofp(100));
-+ pid->i_gain = div_fp(percent, 100);
+ wrmsrl_on_cpu(cpudata->cpu, MSR_PM_ENABLE, 0x1);
}
+@@ -944,7 +944,7 @@
+ if (err)
+ goto skip_tar;
+
+- tdp_msr = MSR_CONFIG_TDP_NOMINAL + tdp_ctrl;
++ tdp_msr = MSR_CONFIG_TDP_NOMINAL + (tdp_ctrl & 0x3);
+ err = rdmsrl_safe(tdp_msr, &tdp_ratio);
+ if (err)
+ goto skip_tar;
+@@ -972,7 +972,7 @@
+ u64 value;
+ int nont, ret;
+
+- rdmsrl(MSR_NHM_TURBO_RATIO_LIMIT, value);
++ rdmsrl(MSR_TURBO_RATIO_LIMIT, value);
+ nont = core_get_max_pstate();
+ ret = (value) & 255;
+ if (ret <= nont)
+@@ -1001,7 +1001,7 @@
+ u64 value;
+ int nont, ret;
+
+- rdmsrl(MSR_NHM_TURBO_RATIO_LIMIT, value);
++ rdmsrl(MSR_TURBO_RATIO_LIMIT, value);
+ nont = core_get_max_pstate();
+ ret = (((value) >> 8) & 0xFF);
+ if (ret <= nont)
+@@ -1091,6 +1091,26 @@
+ },
+ };
- static inline void pid_d_gain_set(struct _pid *pid, int percent)
++static struct cpu_defaults bxt_params = {
++ .pid_policy = {
++ .sample_rate_ms = 10,
++ .deadband = 0,
++ .setpoint = 60,
++ .p_gain_pct = 14,
++ .d_gain_pct = 0,
++ .i_gain_pct = 4,
++ },
++ .funcs = {
++ .get_max = core_get_max_pstate,
++ .get_max_physical = core_get_max_pstate_physical,
++ .get_min = core_get_min_pstate,
++ .get_turbo = core_get_turbo_pstate,
++ .get_scaling = core_get_scaling,
++ .get_val = core_get_val,
++ .get_target_pstate = get_target_pstate_use_cpu_load,
++ },
++};
++
+ static void intel_pstate_get_min_max(struct cpudata *cpu, int *min, int *max)
{
-- pid->d_gain = div_fp(int_tofp(percent), int_tofp(100));
-+ pid->d_gain = div_fp(percent, 100);
+ int max_perf = cpu->pstate.turbo_pstate;
+@@ -1113,17 +1133,12 @@
+ *min = clamp_t(int, min_perf, cpu->pstate.min_pstate, max_perf);
}
- static signed int pid_calc(struct _pid *pid, int32_t busy)
-@@ -537,7 +685,7 @@
-
- total = cpu->pstate.turbo_pstate - cpu->pstate.min_pstate + 1;
- no_turbo = cpu->pstate.max_pstate - cpu->pstate.min_pstate + 1;
-- turbo_fp = div_fp(int_tofp(no_turbo), int_tofp(total));
-+ turbo_fp = div_fp(no_turbo, total);
- turbo_pct = 100 - fp_toint(mul_fp(turbo_fp, int_tofp(100)));
- return sprintf(buf, "%u\n", turbo_pct);
- }
-@@ -579,7 +727,7 @@
-
- update_turbo_state();
- if (limits->turbo_disabled) {
-- pr_warn("intel_pstate: Turbo disabled by BIOS or unavailable on processor\n");
-+ pr_warn("Turbo disabled by BIOS or unavailable on processor\n");
- return -EPERM;
- }
-
-@@ -608,8 +756,7 @@
- limits->max_perf_pct);
- limits->max_perf_pct = max(limits->min_perf_pct,
- limits->max_perf_pct);
-- limits->max_perf = div_fp(int_tofp(limits->max_perf_pct),
-- int_tofp(100));
-+ limits->max_perf = div_fp(limits->max_perf_pct, 100);
-
- if (hwp_active)
- intel_pstate_hwp_set_online_cpus();
-@@ -633,8 +780,7 @@
- limits->min_perf_pct);
- limits->min_perf_pct = min(limits->max_perf_pct,
- limits->min_perf_pct);
-- limits->min_perf = div_fp(int_tofp(limits->min_perf_pct),
-- int_tofp(100));
-+ limits->min_perf = div_fp(limits->min_perf_pct, 100);
-
- if (hwp_active)
- intel_pstate_hwp_set_online_cpus();
-@@ -1019,15 +1165,11 @@
- intel_pstate_set_min_pstate(cpu);
- }
-
--static inline void intel_pstate_calc_busy(struct cpudata *cpu)
-+static inline void intel_pstate_calc_avg_perf(struct cpudata *cpu)
- {
- struct sample *sample = &cpu->sample;
-- int64_t core_pct;
+-static inline void intel_pstate_record_pstate(struct cpudata *cpu, int pstate)
+-{
+- trace_cpu_frequency(pstate * cpu->pstate.scaling, cpu->cpu);
+- cpu->pstate.current_pstate = pstate;
+-}
-
-- core_pct = int_tofp(sample->aperf) * int_tofp(100);
-- core_pct = div64_u64(core_pct, int_tofp(sample->mperf));
-
-- sample->core_pct_busy = (int32_t)core_pct;
-+ sample->core_avg_perf = div_ext_fp(sample->aperf, sample->mperf);
- }
-
- static inline bool intel_pstate_sample(struct cpudata *cpu, u64 time)
-@@ -1070,9 +1212,14 @@
-
- static inline int32_t get_avg_frequency(struct cpudata *cpu)
+ static void intel_pstate_set_min_pstate(struct cpudata *cpu)
{
-- return fp_toint(mul_fp(cpu->sample.core_pct_busy,
-- int_tofp(cpu->pstate.max_pstate_physical *
-- cpu->pstate.scaling / 100)));
-+ return mul_ext_fp(cpu->sample.core_avg_perf,
-+ cpu->pstate.max_pstate_physical * cpu->pstate.scaling);
-+}
-+
-+static inline int32_t get_avg_pstate(struct cpudata *cpu)
-+{
-+ return mul_ext_fp(cpu->pstate.max_pstate_physical,
-+ cpu->sample.core_avg_perf);
- }
-
- static inline int32_t get_target_pstate_use_cpu_load(struct cpudata *cpu)
-@@ -1107,49 +1254,43 @@
- cpu_load = div64_u64(int_tofp(100) * mperf, sample->tsc);
- cpu->sample.busy_scaled = cpu_load;
-
-- return cpu->pstate.current_pstate - pid_calc(&cpu->pid, cpu_load);
-+ return get_avg_pstate(cpu) - pid_calc(&cpu->pid, cpu_load);
- }
-
- static inline int32_t get_target_pstate_use_performance(struct cpudata *cpu)
- {
-- int32_t core_busy, max_pstate, current_pstate, sample_ratio;
-+ int32_t perf_scaled, max_pstate, current_pstate, sample_ratio;
- u64 duration_ns;
+ int pstate = cpu->pstate.min_pstate;
+- intel_pstate_record_pstate(cpu, pstate);
++ trace_cpu_frequency(pstate * cpu->pstate.scaling, cpu->cpu);
++ cpu->pstate.current_pstate = pstate;
/*
-- * core_busy is the ratio of actual performance to max
-- * max_pstate is the max non turbo pstate available
-- * current_pstate was the pstate that was requested during
-- * the last sample period.
-- *
-- * We normalize core_busy, which was our actual percent
-- * performance to what we requested during the last sample
-- * period. The result will be a percentage of busy at a
-- * specified pstate.
-+ * perf_scaled is the average performance during the last sampling
-+ * period scaled by the ratio of the maximum P-state to the P-state
-+ * requested last time (in percent). That measures the system's
-+ * response to the previous P-state selection.
- */
-- core_busy = cpu->sample.core_pct_busy;
-- max_pstate = int_tofp(cpu->pstate.max_pstate_physical);
-- current_pstate = int_tofp(cpu->pstate.current_pstate);
-- core_busy = mul_fp(core_busy, div_fp(max_pstate, current_pstate));
-+ max_pstate = cpu->pstate.max_pstate_physical;
-+ current_pstate = cpu->pstate.current_pstate;
-+ perf_scaled = mul_ext_fp(cpu->sample.core_avg_perf,
-+ div_fp(100 * max_pstate, current_pstate));
-
- /*
- * Since our utilization update callback will not run unless we are
- * in C0, check if the actual elapsed time is significantly greater (3x)
- * than our sample interval. If it is, then we were idle for a long
-- * enough period of time to adjust our busyness.
-+ * enough period of time to adjust our performance metric.
- */
- duration_ns = cpu->sample.time - cpu->last_sample_time;
- if ((s64)duration_ns > pid_params.sample_rate_ns * 3) {
-- sample_ratio = div_fp(int_tofp(pid_params.sample_rate_ns),
-- int_tofp(duration_ns));
-- core_busy = mul_fp(core_busy, sample_ratio);
-+ sample_ratio = div_fp(pid_params.sample_rate_ns, duration_ns);
-+ perf_scaled = mul_fp(perf_scaled, sample_ratio);
- } else {
- sample_ratio = div_fp(100 * cpu->sample.mperf, cpu->sample.tsc);
- if (sample_ratio < int_tofp(1))
-- core_busy = 0;
-+ perf_scaled = 0;
- }
-
-- cpu->sample.busy_scaled = core_busy;
-- return cpu->pstate.current_pstate - pid_calc(&cpu->pid, core_busy);
-+ cpu->sample.busy_scaled = perf_scaled;
-+ return cpu->pstate.current_pstate - pid_calc(&cpu->pid, perf_scaled);
+ * Generally, there is no guarantee that this code will always run on
+ * the CPU being updated, so force the register update to run on the
+@@ -1283,10 +1298,11 @@
+
+ intel_pstate_get_min_max(cpu, &min_perf, &max_perf);
+ pstate = clamp_t(int, pstate, min_perf, max_perf);
++ trace_cpu_frequency(pstate * cpu->pstate.scaling, cpu->cpu);
+ if (pstate == cpu->pstate.current_pstate)
+ return;
+
+- intel_pstate_record_pstate(cpu, pstate);
++ cpu->pstate.current_pstate = pstate;
+ wrmsrl(MSR_IA32_PERF_CTL, pstate_funcs.get_val(cpu, pstate));
}
- static inline void intel_pstate_update_pstate(struct cpudata *cpu, int pstate)
-@@ -1179,7 +1320,7 @@
- intel_pstate_update_pstate(cpu, target_pstate);
-
- sample = &cpu->sample;
-- trace_pstate_sample(fp_toint(sample->core_pct_busy),
-+ trace_pstate_sample(mul_ext_fp(100, sample->core_avg_perf),
- fp_toint(sample->busy_scaled),
- from,
- cpu->pstate.current_pstate,
-@@ -1199,7 +1340,7 @@
- bool sample_taken = intel_pstate_sample(cpu, time);
-
- if (sample_taken) {
-- intel_pstate_calc_busy(cpu);
-+ intel_pstate_calc_avg_perf(cpu);
- if (!hwp_active)
- intel_pstate_adjust_busy_pstate(cpu);
- }
-@@ -1261,23 +1402,16 @@
-
- intel_pstate_busy_pid_reset(cpu);
+@@ -1334,29 +1350,32 @@
+ (unsigned long)&policy }
+
+ static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
+- ICPU(0x2a, core_params),
+- ICPU(0x2d, core_params),
+- ICPU(0x37, silvermont_params),
+- ICPU(0x3a, core_params),
+- ICPU(0x3c, core_params),
+- ICPU(0x3d, core_params),
+- ICPU(0x3e, core_params),
+- ICPU(0x3f, core_params),
+- ICPU(0x45, core_params),
+- ICPU(0x46, core_params),
+- ICPU(0x47, core_params),
+- ICPU(0x4c, airmont_params),
+- ICPU(0x4e, core_params),
+- ICPU(0x4f, core_params),
+- ICPU(0x5e, core_params),
+- ICPU(0x56, core_params),
+- ICPU(0x57, knl_params),
++ ICPU(INTEL_FAM6_SANDYBRIDGE, core_params),
++ ICPU(INTEL_FAM6_SANDYBRIDGE_X, core_params),
++ ICPU(INTEL_FAM6_ATOM_SILVERMONT1, silvermont_params),
++ ICPU(INTEL_FAM6_IVYBRIDGE, core_params),
++ ICPU(INTEL_FAM6_HASWELL_CORE, core_params),
++ ICPU(INTEL_FAM6_BROADWELL_CORE, core_params),
++ ICPU(INTEL_FAM6_IVYBRIDGE_X, core_params),
++ ICPU(INTEL_FAM6_HASWELL_X, core_params),
++ ICPU(INTEL_FAM6_HASWELL_ULT, core_params),
++ ICPU(INTEL_FAM6_HASWELL_GT3E, core_params),
++ ICPU(INTEL_FAM6_BROADWELL_GT3E, core_params),
++ ICPU(INTEL_FAM6_ATOM_AIRMONT, airmont_params),
++ ICPU(INTEL_FAM6_SKYLAKE_MOBILE, core_params),
++ ICPU(INTEL_FAM6_BROADWELL_X, core_params),
++ ICPU(INTEL_FAM6_SKYLAKE_DESKTOP, core_params),
++ ICPU(INTEL_FAM6_BROADWELL_XEON_D, core_params),
++ ICPU(INTEL_FAM6_XEON_PHI_KNL, knl_params),
++ ICPU(INTEL_FAM6_ATOM_GOLDMONT, bxt_params),
+ {}
+ };
+ MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids);
+
+-static const struct x86_cpu_id intel_pstate_cpu_oob_ids[] = {
+- ICPU(0x56, core_params),
++static const struct x86_cpu_id intel_pstate_cpu_oob_ids[] __initconst = {
++ ICPU(INTEL_FAM6_BROADWELL_XEON_D, core_params),
++ ICPU(INTEL_FAM6_BROADWELL_X, core_params),
++ ICPU(INTEL_FAM6_SKYLAKE_X, core_params),
+ {}
+ };
-- cpu->update_util.func = intel_pstate_update_util;
--
-- pr_debug("intel_pstate: controlling: cpu %d\n", cpunum);
-+ pr_debug("controlling: cpu %d\n", cpunum);
+@@ -1575,12 +1594,12 @@
+ .name = "intel_pstate",
+ };
+-static int __initdata no_load;
+-static int __initdata no_hwp;
+-static int __initdata hwp_only;
+-static unsigned int force_load;
++static int no_load __initdata;
++static int no_hwp __initdata;
++static int hwp_only __initdata;
++static unsigned int force_load __initdata;
+
+-static int intel_pstate_msrs_not_valid(void)
++static int __init intel_pstate_msrs_not_valid(void)
+ {
+ if (!pstate_funcs.get_max() ||
+ !pstate_funcs.get_min() ||
+@@ -1590,7 +1609,7 @@
return 0;
}
- static unsigned int intel_pstate_get(unsigned int cpu_num)
+-static void copy_pid_params(struct pstate_adjust_policy *policy)
++static void __init copy_pid_params(struct pstate_adjust_policy *policy)
{
-- struct sample *sample;
-- struct cpudata *cpu;
-+ struct cpudata *cpu = all_cpu_data[cpu_num];
-
-- cpu = all_cpu_data[cpu_num];
-- if (!cpu)
-- return 0;
-- sample = &cpu->sample;
-- return get_avg_frequency(cpu);
-+ return cpu ? get_avg_frequency(cpu) : 0;
+ pid_params.sample_rate_ms = policy->sample_rate_ms;
+ pid_params.sample_rate_ns = pid_params.sample_rate_ms * NSEC_PER_MSEC;
+@@ -1601,7 +1620,7 @@
+ pid_params.setpoint = policy->setpoint;
}
- static void intel_pstate_set_update_util_hook(unsigned int cpu_num)
-@@ -1286,12 +1420,20 @@
-
- /* Prevent intel_pstate_update_util() from using stale data. */
- cpu->sample.time = 0;
-- cpufreq_set_update_util_data(cpu_num, &cpu->update_util);
-+ cpufreq_add_update_util_hook(cpu_num, &cpu->update_util,
-+ intel_pstate_update_util);
-+ cpu->update_util_set = true;
- }
-
- static void intel_pstate_clear_update_util_hook(unsigned int cpu)
+-static void copy_cpu_funcs(struct pstate_funcs *funcs)
++static void __init copy_cpu_funcs(struct pstate_funcs *funcs)
{
-- cpufreq_set_update_util_data(cpu, NULL);
-+ struct cpudata *cpu_data = all_cpu_data[cpu];
-+
-+ if (!cpu_data->update_util_set)
-+ return;
-+
-+ cpufreq_remove_update_util_hook(cpu);
-+ cpu_data->update_util_set = false;
- synchronize_sched();
- }
+ pstate_funcs.get_max = funcs->get_max;
+ pstate_funcs.get_max_physical = funcs->get_max_physical;
+@@ -1616,7 +1635,7 @@
-@@ -1311,20 +1453,31 @@
+ #ifdef CONFIG_ACPI
- static int intel_pstate_set_policy(struct cpufreq_policy *policy)
+-static bool intel_pstate_no_acpi_pss(void)
++static bool __init intel_pstate_no_acpi_pss(void)
{
-+ struct cpudata *cpu;
-+
- if (!policy->cpuinfo.max_freq)
- return -ENODEV;
-
- intel_pstate_clear_update_util_hook(policy->cpu);
-
-+ cpu = all_cpu_data[0];
-+ if (cpu->pstate.max_pstate_physical > cpu->pstate.max_pstate) {
-+ if (policy->max < policy->cpuinfo.max_freq &&
-+ policy->max > cpu->pstate.max_pstate * cpu->pstate.scaling) {
-+ pr_debug("policy->max > max non turbo frequency\n");
-+ policy->max = policy->cpuinfo.max_freq;
-+ }
-+ }
-+
- if (policy->policy == CPUFREQ_POLICY_PERFORMANCE) {
- limits = &performance_limits;
- if (policy->max >= policy->cpuinfo.max_freq) {
-- pr_debug("intel_pstate: set performance\n");
-+ pr_debug("set performance\n");
- intel_pstate_set_performance_limits(limits);
- goto out;
- }
- } else {
-- pr_debug("intel_pstate: set powersave\n");
-+ pr_debug("set powersave\n");
- limits = &powersave_limits;
- }
-
-@@ -1348,10 +1501,8 @@
- /* Make sure min_perf_pct <= max_perf_pct */
- limits->min_perf_pct = min(limits->max_perf_pct, limits->min_perf_pct);
-
-- limits->min_perf = div_fp(int_tofp(limits->min_perf_pct),
-- int_tofp(100));
-- limits->max_perf = div_fp(int_tofp(limits->max_perf_pct),
-- int_tofp(100));
-+ limits->min_perf = div_fp(limits->min_perf_pct, 100);
-+ limits->max_perf = div_fp(limits->max_perf_pct, 100);
-
- out:
- intel_pstate_set_update_util_hook(policy->cpu);
-@@ -1377,7 +1528,7 @@
- int cpu_num = policy->cpu;
- struct cpudata *cpu = all_cpu_data[cpu_num];
-
-- pr_debug("intel_pstate: CPU %d exiting\n", cpu_num);
-+ pr_debug("CPU %d exiting\n", cpu_num);
-
- intel_pstate_clear_update_util_hook(cpu_num);
-
-@@ -1410,12 +1561,20 @@
- policy->cpuinfo.min_freq = cpu->pstate.min_pstate * cpu->pstate.scaling;
- policy->cpuinfo.max_freq =
- cpu->pstate.turbo_pstate * cpu->pstate.scaling;
-+ intel_pstate_init_acpi_perf_limits(policy);
- policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
- cpumask_set_cpu(policy->cpu, policy->cpus);
-
- return 0;
- }
-
-+static int intel_pstate_cpu_exit(struct cpufreq_policy *policy)
-+{
-+ intel_pstate_exit_perf_limits(policy);
-+
-+ return 0;
-+}
-+
- static struct cpufreq_driver intel_pstate_driver = {
- .flags = CPUFREQ_CONST_LOOPS,
- .verify = intel_pstate_verify_policy,
-@@ -1423,6 +1582,7 @@
- .resume = intel_pstate_hwp_set_policy,
- .get = intel_pstate_get,
- .init = intel_pstate_cpu_init,
-+ .exit = intel_pstate_cpu_exit,
- .stop_cpu = intel_pstate_stop_cpu,
- .name = "intel_pstate",
- };
-@@ -1466,8 +1626,7 @@
-
- }
-
--#if IS_ENABLED(CONFIG_ACPI)
--#include <acpi/processor.h>
-+#ifdef CONFIG_ACPI
-
- static bool intel_pstate_no_acpi_pss(void)
- {
-@@ -1623,7 +1782,7 @@
- if (intel_pstate_platform_pwr_mgmt_exists())
- return -ENODEV;
-
-- pr_info("Intel P-state driver initializing.\n");
-+ pr_info("Intel P-state driver initializing\n");
-
- all_cpu_data = vzalloc(sizeof(void *) * num_possible_cpus());
- if (!all_cpu_data)
-@@ -1640,7 +1799,7 @@
- intel_pstate_sysfs_expose_params();
-
- if (hwp_active)
-- pr_info("intel_pstate: HWP enabled\n");
-+ pr_info("HWP enabled\n");
-
- return rc;
- out:
-@@ -1666,13 +1825,19 @@
- if (!strcmp(str, "disable"))
- no_load = 1;
- if (!strcmp(str, "no_hwp")) {
-- pr_info("intel_pstate: HWP disabled\n");
-+ pr_info("HWP disabled\n");
- no_hwp = 1;
- }
- if (!strcmp(str, "force"))
- force_load = 1;
- if (!strcmp(str, "hwp_only"))
- hwp_only = 1;
-+
-+#ifdef CONFIG_ACPI
-+ if (!strcmp(str, "support_acpi_ppc"))
-+ acpi_ppc = true;
-+#endif
-+
- return 0;
- }
- early_param("intel_pstate", intel_pstate_setup);
---- linux-4.6/kernel/sched/cpufreq.c.orig 2016-06-24 15:32:20.064495916 -0400
-+++ linux-4.6/kernel/sched/cpufreq.c 2016-06-24 15:33:47.717298423 -0400
-@@ -35,3 +35,52 @@
- rcu_assign_pointer(per_cpu(cpufreq_update_util_data, cpu), data);
- }
- EXPORT_SYMBOL_GPL(cpufreq_set_update_util_data);
-+
-+/**
-+ * cpufreq_add_update_util_hook - Populate the CPU's update_util_data pointer.
-+ * @cpu: The CPU to set the pointer for.
-+ * @data: New pointer value.
-+ * @func: Callback function to set for the CPU.
-+ *
-+ * Set and publish the update_util_data pointer for the given CPU.
-+ *
-+ * The update_util_data pointer of @cpu is set to @data and the callback
-+ * function pointer in the target struct update_util_data is set to @func.
-+ * That function will be called by cpufreq_update_util() from RCU-sched
-+ * read-side critical sections, so it must not sleep. @data will always be
-+ * passed to it as the first argument which allows the function to get to the
-+ * target update_util_data structure and its container.
-+ *
-+ * The update_util_data pointer of @cpu must be NULL when this function is
-+ * called or it will WARN() and return with no effect.
-+ */
-+void cpufreq_add_update_util_hook(int cpu, struct update_util_data *data,
-+ void (*func)(struct update_util_data *data, u64 time,
-+ unsigned long util, unsigned long max))
-+{
-+ if (WARN_ON(!data || !func))
-+ return;
-+
-+ if (WARN_ON(per_cpu(cpufreq_update_util_data, cpu)))
-+ return;
-+
-+ data->func = func;
-+ rcu_assign_pointer(per_cpu(cpufreq_update_util_data, cpu), data);
-+}
-+EXPORT_SYMBOL_GPL(cpufreq_add_update_util_hook);
-+
-+/**
-+ * cpufreq_remove_update_util_hook - Clear the CPU's update_util_data pointer.
-+ * @cpu: The CPU to clear the pointer for.
-+ *
-+ * Clear the update_util_data pointer for the given CPU.
-+ *
-+ * Callers must use RCU-sched callbacks to free any memory that might be
-+ * accessed via the old update_util_data pointer or invoke synchronize_sched()
-+ * right after this function to avoid use-after-free.
-+ */
-+void cpufreq_remove_update_util_hook(int cpu)
-+{
-+ rcu_assign_pointer(per_cpu(cpufreq_update_util_data, cpu), NULL);
-+}
-+EXPORT_SYMBOL_GPL(cpufreq_remove_update_util_hook);
---- linux-4.6/include/linux/sched.h.dist 2016-06-24 19:19:15.391657951 -0400
-+++ linux-4.6/include/linux/sched.h 2016-06-24 19:21:46.863939933 -0400
-@@ -3241,6 +3241,10 @@
- };
-
- void cpufreq_set_update_util_data(int cpu, struct update_util_data *data);
-+void cpufreq_add_update_util_hook(int cpu, struct update_util_data *data,
-+ void (*func)(struct update_util_data *data, u64 time,
-+ unsigned long util, unsigned long max));
-+void cpufreq_remove_update_util_hook(int cpu);
- #endif /* CONFIG_CPU_FREQ */
+ int i;
- #endif
---- linux-4.6/drivers/cpufreq/intel_pstate.c.orig 2016-07-03 10:37:53.324091642 -0400
-+++ linux-4.6/drivers/cpufreq/intel_pstate.c 2016-07-03 10:38:50.450757945 -0400
-@@ -372,26 +372,9 @@
- return acpi_ppc;
+@@ -1645,7 +1664,7 @@
+ return true;
}
--/*
-- * The max target pstate ratio is a 8 bit value in both PLATFORM_INFO MSR and
-- * in TURBO_RATIO_LIMIT MSR, which pstate driver stores in max_pstate and
-- * max_turbo_pstate fields. The PERF_CTL MSR contains 16 bit value for P state
-- * ratio, out of it only high 8 bits are used. For example 0x1700 is setting
-- * target ratio 0x17. The _PSS control value stores in a format which can be
-- * directly written to PERF_CTL MSR. But in intel_pstate driver this shift
-- * occurs during write to PERF_CTL (E.g. for cores core_set_pstate()).
-- * This function converts the _PSS control value to intel pstate driver format
-- * for comparison and assignment.
-- */
--static int convert_to_native_pstate_format(struct cpudata *cpu, int index)
--{
-- return cpu->acpi_perf_data.states[index].control >> 8;
--}
--
- static void intel_pstate_init_acpi_perf_limits(struct cpufreq_policy *policy)
+-static bool intel_pstate_has_acpi_ppc(void)
++static bool __init intel_pstate_has_acpi_ppc(void)
{
- struct cpudata *cpu;
-- int turbo_pss_ctl;
- int ret;
int i;
-@@ -441,15 +424,14 @@
- * max frequency, which will cause a reduced performance as
- * this driver uses real max turbo frequency as the max
- * frequency. So correct this frequency in _PSS table to
-- * correct max turbo frequency based on the turbo ratio.
-+ * correct max turbo frequency based on the turbo state.
- * Also need to convert to MHz as _PSS freq is in MHz.
- */
-- turbo_pss_ctl = convert_to_native_pstate_format(cpu, 0);
-- if (turbo_pss_ctl > cpu->pstate.max_pstate)
-+ if (!limits->turbo_disabled)
- cpu->acpi_perf_data.states[0].core_frequency =
- policy->cpuinfo.max_freq / 1000;
- cpu->valid_pss_table = true;
-- pr_info("_PPC limits will be enforced\n");
-+ pr_debug("_PPC limits will be enforced\n");
+@@ -1673,7 +1692,7 @@
+ };
- return;
+ /* Hardware vendor-specific info that has its own power management modes */
+-static struct hw_vendor_info vendor_info[] = {
++static struct hw_vendor_info vendor_info[] __initdata = {
+ {1, "HP ", "ProLiant", PSS},
+ {1, "ORACLE", "X4-2 ", PPC},
+ {1, "ORACLE", "X4-2L ", PPC},
+@@ -1692,7 +1711,7 @@
+ {0, "", ""},
+ };
-@@ -1418,6 +1400,9 @@
+-static bool intel_pstate_platform_pwr_mgmt_exists(void)
++static bool __init intel_pstate_platform_pwr_mgmt_exists(void)
{
- struct cpudata *cpu = all_cpu_data[cpu_num];
-
-+ if (cpu->update_util_set)
-+ return;
-+
- /* Prevent intel_pstate_update_util() from using stale data. */
- cpu->sample.time = 0;
- cpufreq_add_update_util_hook(cpu_num, &cpu->update_util,
-@@ -1458,15 +1443,15 @@
- if (!policy->cpuinfo.max_freq)
- return -ENODEV;
-
-- intel_pstate_clear_update_util_hook(policy->cpu);
-+ pr_debug("set_policy cpuinfo.max %u policy->max %u\n",
-+ policy->cpuinfo.max_freq, policy->max);
-
- cpu = all_cpu_data[0];
-- if (cpu->pstate.max_pstate_physical > cpu->pstate.max_pstate) {
-- if (policy->max < policy->cpuinfo.max_freq &&
-- policy->max > cpu->pstate.max_pstate * cpu->pstate.scaling) {
-- pr_debug("policy->max > max non turbo frequency\n");
-- policy->max = policy->cpuinfo.max_freq;
-- }
-+ if (cpu->pstate.max_pstate_physical > cpu->pstate.max_pstate &&
-+ policy->max < policy->cpuinfo.max_freq &&
-+ policy->max > cpu->pstate.max_pstate * cpu->pstate.scaling) {
-+ pr_debug("policy->max > max non turbo frequency\n");
-+ policy->max = policy->cpuinfo.max_freq;
- }
-
- if (policy->policy == CPUFREQ_POLICY_PERFORMANCE) {
-@@ -1496,13 +1481,13 @@
- limits->max_sysfs_pct);
- limits->max_perf_pct = max(limits->min_policy_pct,
- limits->max_perf_pct);
-- limits->max_perf = round_up(limits->max_perf, FRAC_BITS);
-
- /* Make sure min_perf_pct <= max_perf_pct */
- limits->min_perf_pct = min(limits->max_perf_pct, limits->min_perf_pct);
-
- limits->min_perf = div_fp(limits->min_perf_pct, 100);
- limits->max_perf = div_fp(limits->max_perf_pct, 100);
-+ limits->max_perf = round_up(limits->max_perf, FRAC_BITS);
-
- out:
- intel_pstate_set_update_util_hook(policy->cpu);
-@@ -1559,8 +1544,11 @@
-
- /* cpuinfo and default policy values */
- policy->cpuinfo.min_freq = cpu->pstate.min_pstate * cpu->pstate.scaling;
-- policy->cpuinfo.max_freq =
-- cpu->pstate.turbo_pstate * cpu->pstate.scaling;
-+ update_turbo_state();
-+ policy->cpuinfo.max_freq = limits->turbo_disabled ?
-+ cpu->pstate.max_pstate : cpu->pstate.turbo_pstate;
-+ policy->cpuinfo.max_freq *= cpu->pstate.scaling;
-+
- intel_pstate_init_acpi_perf_limits(policy);
- policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
- cpumask_set_cpu(policy->cpu, policy->cpus);
+ struct acpi_table_header hdr;
+ struct hw_vendor_info *v_info;
diff --git a/linux-macbook.preset b/linux-macbook.preset
index ee0e5c62eb3c..b06292d104ef 100644
--- a/linux-macbook.preset
+++ b/linux-macbook.preset
@@ -1,14 +1,14 @@
# mkinitcpio preset file for the 'linux' package
ALL_config="/etc/mkinitcpio.conf"
-ALL_kver="/boot/vmlinuz-linux-macbook"
+ALL_kver="/boot/vmlinuz-linux"
PRESETS=('default' 'fallback')
#default_config="/etc/mkinitcpio.conf"
-default_image="/boot/initramfs-linux-macbook.img"
+default_image="/boot/initramfs-linux.img"
#default_options=""
#fallback_config="/etc/mkinitcpio.conf"
-fallback_image="/boot/initramfs-linux-macbook-fallback.img"
+fallback_image="/boot/initramfs-linux-fallback.img"
fallback_options="-S autodetect"