diff options
author | Tony Lambiris | 2016-08-12 23:44:36 -0400 |
---|---|---|
committer | Tony Lambiris | 2016-08-12 23:44:36 -0400 |
commit | 5e1aae2c381876829eb1cc84de19ee56967175af (patch) | |
tree | fac1ae347c7eee8878a28ffffe39003cb0826ba9 | |
parent | a5de2d64e1fe96b944bfd9f4c668b89f7aec5722 (diff) | |
download | aur-5e1aae2c381876829eb1cc84de19ee56967175af.tar.gz |
Bump to linux 4.7
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | PKGBUILD | 40 | ||||
-rw-r--r-- | config | 153 | ||||
-rw-r--r-- | config.x86_64 | 160 | ||||
-rw-r--r-- | intel-pstate-backport.patch | 959 | ||||
-rw-r--r-- | linux-macbook.preset | 6 |
6 files changed, 482 insertions, 858 deletions
@@ -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) @@ -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 @@ -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" |