diff options
author | Tony Lambiris | 2017-03-24 01:05:27 -0400 |
---|---|---|
committer | Tony Lambiris | 2017-03-24 01:05:27 -0400 |
commit | 35f7ea802ca62c1f09e692307261ef73109018d4 (patch) | |
tree | f16581f57ca56e5dcd49766598003330e676a510 | |
parent | abaa6b65dc79d454392d533f56608a6213e4ec84 (diff) | |
download | aur-35f7ea802ca62c1f09e692307261ef73109018d4.tar.gz |
Version bump for linux-macbook
-rw-r--r-- | .SRCINFO | 40 | ||||
-rw-r--r-- | 0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch | 47 | ||||
-rw-r--r-- | 99-linux.hook (renamed from 99-linux-macbook.hook) | 0 | ||||
-rw-r--r-- | PKGBUILD | 56 | ||||
-rw-r--r-- | apple-gmux.patch | 14 | ||||
-rw-r--r-- | change-default-console-loglevel.patch | 11 | ||||
-rw-r--r-- | config.i686 (renamed from config) | 198 | ||||
-rw-r--r-- | config.x86_64 | 192 | ||||
-rw-r--r-- | intel-pstate-backport.patch | 1231 | ||||
-rw-r--r-- | linux.install (renamed from linux-macbook.install) | 0 | ||||
-rw-r--r-- | linux.preset (renamed from linux-macbook.preset) | 0 | ||||
-rw-r--r-- | macbook-suspend.patch | 14 | ||||
-rw-r--r-- | net_handle_no_dst_on_skb_in_icmp6_send.patch | 68 | ||||
-rw-r--r-- | poweroff-quirk-workaround.patch | 2 |
14 files changed, 1467 insertions, 406 deletions
@@ -1,6 +1,6 @@ pkgbase = linux-macbook - pkgver = 4.9.11 - pkgrel = 2 + pkgver = 4.10.4 + pkgrel = 1 url = https://www.kernel.org/ arch = i686 arch = x86_64 @@ -12,42 +12,38 @@ pkgbase = linux-macbook makedepends = bc makedepends = libelf options = !strip - source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.tar.xz - source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.tar.sign - source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.9.11.xz - source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.9.11.sign - source = config + source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.10.tar.xz + source = https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.10.tar.sign + source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.10.4.xz + source = https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.10.4.sign + source = config.i686 source = config.x86_64 - source = 99-linux-macbook.hook - source = linux-macbook.preset + source = 99-linux.hook + source = linux.preset source = macbook-wakeup.service source = apple-gmux.patch source = macbook-suspend.patch source = poweroff-quirk-workaround.patch source = intel-pstate-backport.patch - source = change-default-console-loglevel.patch - source = 0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886 validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E - sha256sums = 029098dcffab74875e086ae970e3828456838da6e0ba22ce3f64ef764f3d7f1a + sha256sums = 3c95d9f049bd085e5c346d2c77f063b8425f191460fcd3ae9fe7e94e0477dc4b sha256sums = SKIP - sha256sums = 23e773a670f3cac11a92c4e442405dea6d2c28fea0f914ea2ba4bea313c26541 + sha256sums = 68e935fbe1c3faaf186824a44b79a26f1ab85f04a1dade2e5bce5f8c2941624d sha256sums = SKIP - sha256sums = 49ec194851a7f96fbeedddb6125bf51d0e73e949f28026dca0d9ff36fc4ce5ff - sha256sums = 36fa6355b46655570838351a6f4b2a4904d4e1c550ce0b7a21aa5ebe1bad2d2d + sha256sums = 6957209a54486548de8fc217352bb50efe52986b85b7dc88c1d13ef9e8dc3e2a + sha256sums = 37a281f78616fee061aafa4b1189284c9e13d0eb52e40d7f446f1a50dfc99800 sha256sums = 834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0 sha256sums = ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65 sha256sums = 72f0b3ce04f33dfae305297bd045fba8cb5e5c8594ffd7a68a4d8ed293b1b1b5 - sha256sums = bb8af32880059e681396a250d8e78f600f248da8ad4f0e76d7923badb5ee8b42 - sha256sums = 896455ba219148e10c1fd19ec98f9871b384f9d0018598c1bb36ad7f3c8607c1 - sha256sums = 24f914e16f5efd13608e835ded81b4da731798737a88228fb8684f6db80f7d2c - sha256sums = c0a25b413bc542472868c63318213dfe788beeece750d15f7ff1568aca8968ec - sha256sums = 1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99 - sha256sums = 85954ac18da9dc1bec5df28e2f097d13016e39fa9631074f85b6364af340fcd9 + sha256sums = e74dbeaa3fd04dbf93ef4498015234bdb65351857e07c03c00cee69fcfc844b4 + sha256sums = 8f91c4b8b30fb0db3fdf92223618b4a399041f4be399bc8eacbbcbbe646ca678 + sha256sums = ad800989f9cf2fd04e6db09409b9a531e883eeb825f430d14df8c6ee7870621a + sha256sums = 3d9fdbb4bee270efa6eef1d8e40a5ae562a87d5a2edae629e0829cc51714de13 pkgname = linux-macbook pkgdesc = The Linux-macbook kernel and modules - install = linux-macbook.install + install = linux.install depends = coreutils depends = linux-firmware depends = kmod diff --git a/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch b/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch deleted file mode 100644 index 9adaf0b305f2..000000000000 --- a/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5edabca9d4cff7f1f2b68f0bac55ef99d9798ba4 Mon Sep 17 00:00:00 2001 -From: Andrey Konovalov <andreyknvl@google.com> -Date: Thu, 16 Feb 2017 17:22:46 +0100 -Subject: [PATCH] dccp: fix freeing skb too early for IPV6_RECVPKTINFO - -In the current DCCP implementation an skb for a DCCP_PKT_REQUEST packet -is forcibly freed via __kfree_skb in dccp_rcv_state_process if -dccp_v6_conn_request successfully returns. - -However, if IPV6_RECVPKTINFO is set on a socket, the address of the skb -is saved to ireq->pktopts and the ref count for skb is incremented in -dccp_v6_conn_request, so skb is still in use. Nevertheless, it gets freed -in dccp_rcv_state_process. - -Fix by calling consume_skb instead of doing goto discard and therefore -calling __kfree_skb. - -Similar fixes for TCP: - -fb7e2399ec17f1004c0e0ccfd17439f8759ede01 [TCP]: skb is unexpectedly freed. -0aea76d35c9651d55bbaf746e7914e5f9ae5a25d tcp: SYN packets are now -simply consumed - -Signed-off-by: Andrey Konovalov <andreyknvl@google.com> -Acked-by: Eric Dumazet <edumazet@google.com> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - net/dccp/input.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/net/dccp/input.c b/net/dccp/input.c -index ba347184bda9b3fe..8fedc2d497709b3d 100644 ---- a/net/dccp/input.c -+++ b/net/dccp/input.c -@@ -606,7 +606,8 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb, - if (inet_csk(sk)->icsk_af_ops->conn_request(sk, - skb) < 0) - return 1; -- goto discard; -+ consume_skb(skb); -+ return 0; - } - if (dh->dccph_type == DCCP_PKT_RESET) - goto discard; --- -2.11.1 - diff --git a/99-linux-macbook.hook b/99-linux.hook index 9851151995bc..9851151995bc 100644 --- a/99-linux-macbook.hook +++ b/99-linux.hook @@ -1,12 +1,12 @@ -# Id: PKGBUILD 277473 2016-09-30 19:28:40Z tpowa $ +# $Id: PKGBUILD 291104 2017-03-20 13:40:57Z tpowa $ # Maintainer: Tobias Powalowski <tpowa@archlinux.org> # Maintainer: Thomas Baechler <thomas@archlinux.org> # Maintainer: Tony Lambiris <tony@critialstack.com> pkgbase=linux-macbook -_srcname=linux-4.9 -pkgver=4.9.11 -pkgrel=2 +_srcname=linux-4.10 +pkgver=4.10.4 +pkgrel=1 arch=('i686' 'x86_64') url="https://www.kernel.org/" license=('GPL2') @@ -17,11 +17,11 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz" "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' + 'config.i686' 'config.x86_64' # pacman hook for initramfs regeneration - '99-linux-macbook.hook' + '99-linux.hook' # standard config files for mkinitcpio ramdisk - 'linux-macbook.preset' + 'linux.preset' # service file for suspend/resume events 'macbook-wakeup.service' # macbook specific patches @@ -29,25 +29,21 @@ source=("https://www.kernel.org/pub/linux/kernel/v4.x/${_srcname}.tar.xz" 'macbook-suspend.patch' 'poweroff-quirk-workaround.patch' 'intel-pstate-backport.patch' - 'change-default-console-loglevel.patch' - '0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch' ) -sha256sums=('029098dcffab74875e086ae970e3828456838da6e0ba22ce3f64ef764f3d7f1a' +sha256sums=('3c95d9f049bd085e5c346d2c77f063b8425f191460fcd3ae9fe7e94e0477dc4b' 'SKIP' - '23e773a670f3cac11a92c4e442405dea6d2c28fea0f914ea2ba4bea313c26541' + '68e935fbe1c3faaf186824a44b79a26f1ab85f04a1dade2e5bce5f8c2941624d' 'SKIP' - '49ec194851a7f96fbeedddb6125bf51d0e73e949f28026dca0d9ff36fc4ce5ff' - '36fa6355b46655570838351a6f4b2a4904d4e1c550ce0b7a21aa5ebe1bad2d2d' + '6957209a54486548de8fc217352bb50efe52986b85b7dc88c1d13ef9e8dc3e2a' + '37a281f78616fee061aafa4b1189284c9e13d0eb52e40d7f446f1a50dfc99800' '834bd254b56ab71d73f59b3221f056c72f559553c04718e350ab2a3e2991afe0' 'ad6344badc91ad0630caacde83f7f9b97276f80d26a20619a87952be65492c65' '72f0b3ce04f33dfae305297bd045fba8cb5e5c8594ffd7a68a4d8ed293b1b1b5' - 'bb8af32880059e681396a250d8e78f600f248da8ad4f0e76d7923badb5ee8b42' - '896455ba219148e10c1fd19ec98f9871b384f9d0018598c1bb36ad7f3c8607c1' - '24f914e16f5efd13608e835ded81b4da731798737a88228fb8684f6db80f7d2c' - 'c0a25b413bc542472868c63318213dfe788beeece750d15f7ff1568aca8968ec' - '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99' - '85954ac18da9dc1bec5df28e2f097d13016e39fa9631074f85b6364af340fcd9') + 'e74dbeaa3fd04dbf93ef4498015234bdb65351857e07c03c00cee69fcfc844b4' + '8f91c4b8b30fb0db3fdf92223618b4a399041f4be399bc8eacbbcbbe646ca678' + 'ad800989f9cf2fd04e6db09409b9a531e883eeb825f430d14df8c6ee7870621a' + '3d9fdbb4bee270efa6eef1d8e40a5ae562a87d5a2edae629e0829cc51714de13') validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman @@ -61,30 +57,18 @@ prepare() { # add upstream patch patch -p1 -i "${srcdir}/patch-${pkgver}" - # https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-6074 - patch -p1 -i "${srcdir}/0001-dccp-fix-freeing-skb-too-early-for-IPV6_RECVPKTINFO.patch" - # add latest fixes from stable queue, if needed # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git - # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) - # remove this when a Kconfig knob is made available by upstream - # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) - patch -p1 -i "${srcdir}/change-default-console-loglevel.patch" - # macbook specific patches patch -p1 -F1 -i "${srcdir}/apple-gmux.patch" # patch components below grabbed from https://patchwork.kernel.org/patch/9140867/ patch -p1 -F1 -i "${srcdir}/macbook-suspend.patch" patch -p1 -F1 -i "${srcdir}/poweroff-quirk-workaround.patch" # backported changes to the intel-pstate driver from master branch - #patch -p1 -F3 -i "${srcdir}/intel-pstate-backport.patch" + #patch -p0 -F3 -i "${srcdir}/intel-pstate-backport.patch" - if [ "${CARCH}" = "x86_64" ]; then - cat "${srcdir}/config.x86_64" > ./.config - else - cat "${srcdir}/config" > ./.config - fi + cat "${srcdir}/config.${CARCH}" > ./.config if [ "${_kernelname}" != "" ]; then sed -i "s|CONFIG_LOCALVERSION=.*|CONFIG_LOCALVERSION=\"${_kernelname}\"|g" ./.config @@ -124,7 +108,7 @@ _package() { depends=('coreutils' 'linux-firmware' 'kmod' 'mkinitcpio>=0.7') optdepends=('crda: to set the correct wireless channels of your country') backup=("etc/mkinitcpio.d/${pkgbase}.preset") - install=linux-macbook.install + install=linux.install cd "${srcdir}/${_srcname}" @@ -145,11 +129,11 @@ _package() { true && install=${install}.pkg # install mkinitcpio preset file for kernel - sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/linux-macbook.preset" | + sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/linux.preset" | install -D -m644 /dev/stdin "${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset" # install pacman hook for initramfs regeneration - sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux-macbook.hook" | + sed "s|%PKGBASE%|${pkgbase}|g" "${srcdir}/99-linux.hook" | install -D -m644 /dev/stdin "${pkgdir}/usr/share/libalpm/hooks/99-${pkgbase}.hook" # remove build and source links diff --git a/apple-gmux.patch b/apple-gmux.patch index f1a0621580a4..ce1f86717632 100644 --- a/apple-gmux.patch +++ b/apple-gmux.patch @@ -1,24 +1,24 @@ ---- a/drivers/platform/x86/apple-gmux.c -+++ a/drivers/platform/x86/apple-gmux.c +--- a/drivers/platform/x86/apple-gmux.c ++++ a/drivers/platform/x86/apple-gmux.c @@ -419,6 +419,7 @@ static int gmux_resume(struct device *dev) - + static struct pci_dev *gmux_get_io_pdev(void) { + struct pci_dev *igp = NULL, *dgp = NULL; struct pci_dev *pdev = NULL; - + while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev))) { @@ -428,10 +429,18 @@ static struct pci_dev *gmux_get_io_pdev(void) if (!(cmd & PCI_COMMAND_IO)) continue; - + - return pdev; + if (pdev->bus && pdev->bus->number > 0 && !dgp) + dgp = pci_dev_get(pdev); + else if (pdev->bus && pdev->bus->number == 0 && !igp) + igp = pci_dev_get(pdev); } - + - return NULL; + if (dgp && !igp) + pr_warn("Found only discrete GPU %s, integrated GPU is hidden," @@ -27,5 +27,5 @@ + pci_dev_put(dgp); + return igp; } - + static int gmux_probe(struct pnp_dev *pnp, const struct pnp_device_id *id) diff --git a/change-default-console-loglevel.patch b/change-default-console-loglevel.patch deleted file mode 100644 index 11da2a9d8ba8..000000000000 --- a/change-default-console-loglevel.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- linux-3.16/include/linux/printk.h.old 2014-08-04 18:48:30.686043266 +0200 -+++ linux-3.16/include/linux/printk.h 2014-08-04 18:48:47.706218528 +0200 -@@ -37,7 +37,7 @@ - #define CONSOLE_LOGLEVEL_SILENT 0 /* Mum's the word */ - #define CONSOLE_LOGLEVEL_MIN 1 /* Minimum loglevel we let people use */ - #define CONSOLE_LOGLEVEL_QUIET 4 /* Shhh ..., when booted with "quiet" */ --#define CONSOLE_LOGLEVEL_DEFAULT 7 /* anything MORE serious than KERN_DEBUG */ -+#define CONSOLE_LOGLEVEL_DEFAULT 4 /* anything MORE serious than KERN_DEBUG */ - #define CONSOLE_LOGLEVEL_DEBUG 10 /* issue debug messages */ - #define CONSOLE_LOGLEVEL_MOTORMOUTH 15 /* You can't shut this one up */ - diff --git a/config b/config.i686 index a9fa229d82c2..114327a99c55 100644 --- a/config +++ b/config.i686 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.9.5-1 Kernel Configuration +# Linux/x86 4.10.0-1 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -159,7 +159,9 @@ CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y # CONFIG_CGROUP_DEBUG is not set +CONFIG_SOCK_CGROUP_DATA=y # CONFIG_CHECKPOINT_RESTORE is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y @@ -178,6 +180,7 @@ CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y +CONFIG_INITRAMFS_COMPRESSION=".gz" CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y @@ -192,6 +195,7 @@ CONFIG_MULTIUSER=y CONFIG_SGETMASK_SYSCALL=y CONFIG_SYSFS_SYSCALL=y # CONFIG_SYSCTL_SYSCALL is not set +CONFIG_POSIX_TIMERS=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set @@ -323,8 +327,12 @@ CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_ZONED=y CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_CMDLINE_PARSER is not set +CONFIG_BLK_WBT=y +CONFIG_BLK_WBT_SQ=y +CONFIG_BLK_WBT_MQ=y # # Partition Types @@ -387,6 +395,7 @@ CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_MPPARSE=y # CONFIG_X86_BIGSMP is not set # CONFIG_GOLDFISH is not set +CONFIG_INTEL_RDT_A=y # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_X86_INTEL_LPSS=y CONFIG_X86_AMD_PLATFORM_DEVICE=y @@ -451,6 +460,7 @@ CONFIG_DMI=y CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y @@ -822,6 +832,7 @@ CONFIG_HAVE_AOUT=y # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_MISC=y CONFIG_COREDUMP=y +CONFIG_COMPAT_32=y CONFIG_HAVE_ATOMIC_IOMAP=y CONFIG_PMC_ATOM=y CONFIG_NET=y @@ -878,6 +889,7 @@ CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m CONFIG_INET_UDP_DIAG=m +CONFIG_INET_RAW_DIAG=m CONFIG_INET_DIAG_DESTROY=y CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m @@ -928,6 +940,9 @@ CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_MROUTE=y CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y +CONFIG_IPV6_SEG6_LWTUNNEL=y +# CONFIG_IPV6_SEG6_INLINE is not set +CONFIG_IPV6_SEG6_HMAC=y CONFIG_NETLABEL=y CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y @@ -947,6 +962,7 @@ CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_COMMON=m +CONFIG_NF_LOG_NETDEV=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y @@ -955,10 +971,10 @@ CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CONNTRACK_TIMEOUT=y CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CONNTRACK_LABELS=y -CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_DCCP=y CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m @@ -976,9 +992,9 @@ CONFIG_NF_CT_NETLINK_HELPER=m CONFIG_NETFILTER_NETLINK_GLUE_CT=y CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y -CONFIG_NF_NAT_PROTO_DCCP=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_PROTO_DCCP=y +CONFIG_NF_NAT_PROTO_UDPLITE=y +CONFIG_NF_NAT_PROTO_SCTP=y CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m @@ -991,6 +1007,7 @@ CONFIG_NF_TABLES_INET=m CONFIG_NF_TABLES_NETDEV=m CONFIG_NFT_EXTHDR=m CONFIG_NFT_META=m +CONFIG_NFT_RT=m CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_SET_RBTREE=m @@ -1001,12 +1018,15 @@ CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m CONFIG_NFT_REDIR=m CONFIG_NFT_NAT=m +CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NF_DUP_NETDEV=m CONFIG_NFT_DUP_NETDEV=m CONFIG_NFT_FWD_NETDEV=m @@ -1107,6 +1127,7 @@ CONFIG_IP_SET_HASH_IPMARK=m CONFIG_IP_SET_HASH_IPPORT=m CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_IPMAC=m CONFIG_IP_SET_HASH_MAC=m CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_HASH_NET=m @@ -1162,10 +1183,12 @@ CONFIG_IP_VS_PE_SIP=m # CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TABLES_IPV4=m CONFIG_NFT_CHAIN_ROUTE_IPV4=m CONFIG_NFT_REJECT_IPV4=m CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m CONFIG_NF_TABLES_ARP=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m @@ -1207,10 +1230,12 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TABLES_IPV6=m CONFIG_NFT_CHAIN_ROUTE_IPV6=m CONFIG_NFT_REJECT_IPV6=m CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m @@ -1458,7 +1483,6 @@ CONFIG_NET_NCSI=y CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y -CONFIG_SOCK_CGROUP_DATA=y # CONFIG_CGROUP_NET_PRIO is not set CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y @@ -1747,6 +1771,7 @@ CONFIG_NFC_ST_NCI_I2C=m # CONFIG_NFC_S3FWRN5_I2C is not set # CONFIG_NFC_ST95HF is not set CONFIG_LWTUNNEL=y +CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y CONFIG_NET_DEVLINK=m CONFIG_MAY_USE_DEVLINK=m @@ -1774,6 +1799,7 @@ CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y @@ -1784,7 +1810,7 @@ CONFIG_REGMAP_SPMI=m CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_FENCE_TRACE is not set +# CONFIG_DMA_FENCE_TRACE is not set # # Bus devices @@ -1966,9 +1992,12 @@ CONFIG_BLK_DEV_NVME=m # CONFIG_BLK_DEV_NVME_SCSI is not set CONFIG_NVME_FABRICS=m CONFIG_NVME_RDMA=m +CONFIG_NVME_FC=m CONFIG_NVME_TARGET=m CONFIG_NVME_TARGET_LOOP=m CONFIG_NVME_TARGET_RDMA=m +CONFIG_NVME_TARGET_FC=m +# CONFIG_NVME_TARGET_FCLOOP is not set # # Misc devices @@ -2183,7 +2212,6 @@ CONFIG_SCSI_FUTURE_DOMAIN=m CONFIG_SCSI_GDTH=m CONFIG_SCSI_ISCI=m CONFIG_SCSI_GENERIC_NCR5380=m -CONFIG_SCSI_GENERIC_NCR5380_MMIO=m CONFIG_SCSI_IPS=m CONFIG_SCSI_INITIO=m CONFIG_SCSI_INIA100=m @@ -2207,6 +2235,7 @@ CONFIG_SCSI_QLA_FC=m CONFIG_TCM_QLA2XXX=m # CONFIG_TCM_QLA2XXX_DEBUG is not set CONFIG_SCSI_QLA_ISCSI=m +CONFIG_QEDI=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_SYM53C416=m @@ -2359,7 +2388,7 @@ CONFIG_BLK_DEV_DM=m # CONFIG_DM_MQ_DEFAULT is not set # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m @@ -2510,6 +2539,8 @@ CONFIG_NET_VENDOR_ADAPTEC=y CONFIG_ADAPTEC_STARFIRE=m CONFIG_NET_VENDOR_AGERE=y CONFIG_ET131X=m +CONFIG_NET_VENDOR_ALACRITECH=y +CONFIG_SLICOSS=m CONFIG_NET_VENDOR_ALTEON=y CONFIG_ACENIC=m # CONFIG_ACENIC_OMIT_TIGON_I is not set @@ -2522,9 +2553,9 @@ CONFIG_LANCE=m CONFIG_PCNET32=m CONFIG_PCMCIA_NMCLAN=m CONFIG_NI65=m +CONFIG_AMD_XGBE=m +CONFIG_AMD_XGBE_HAVE_ECC=y CONFIG_NET_VENDOR_ARC=y -CONFIG_ARC_EMAC_CORE=m -CONFIG_ARC_EMAC=m CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m CONFIG_ATL1=m @@ -2535,6 +2566,7 @@ CONFIG_NET_VENDOR_AURORA=y CONFIG_AURORA_NB8800=m CONFIG_NET_CADENCE=y CONFIG_MACB=m +CONFIG_MACB_PCI=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -2628,9 +2660,13 @@ CONFIG_MLX5_CORE=m CONFIG_MLX5_CORE_EN=y CONFIG_MLXSW_CORE=m CONFIG_MLXSW_CORE_HWMON=y +CONFIG_MLXSW_CORE_THERMAL=y CONFIG_MLXSW_PCI=m +CONFIG_MLXSW_I2C=m +CONFIG_MLXSW_SWITCHIB=m CONFIG_MLXSW_SWITCHX2=m CONFIG_MLXSW_SPECTRUM=m +CONFIG_MLXSW_MINIMAL=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m CONFIG_KS8851=m @@ -2672,8 +2708,10 @@ CONFIG_QLCNIC_HWMON=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m CONFIG_QED=m +CONFIG_QED_LL2=y CONFIG_QED_SRIOV=y CONFIG_QEDE=m +CONFIG_QED_ISCSI=y CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_QCA7000=m CONFIG_QCOM_EMAC=m @@ -2699,11 +2737,14 @@ CONFIG_SC92031=m CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m CONFIG_SIS190=m +CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_SFC=m CONFIG_SFC_MTD=y CONFIG_SFC_MCDI_MON=y CONFIG_SFC_SRIOV=y CONFIG_SFC_MCDI_LOGGING=y +CONFIG_SFC_FALCON=m +CONFIG_SFC_FALCON_MTD=y CONFIG_NET_VENDOR_SMSC=y CONFIG_SMC9194=m CONFIG_PCMCIA_SMC91C92=m @@ -2745,6 +2786,7 @@ CONFIG_PCMCIA_XIRC2PS=m CONFIG_NET_SB1000=m CONFIG_PHYLIB=m CONFIG_SWPHY=y +CONFIG_LED_TRIGGER_PHY=y # # MDIO bus device drivers @@ -3526,11 +3568,16 @@ CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_RMI4_CORE=m CONFIG_RMI4_I2C=m CONFIG_RMI4_SPI=m +CONFIG_RMI4_SMB=m +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=m CONFIG_RMI4_2D_SENSOR=y CONFIG_RMI4_F11=y CONFIG_RMI4_F12=y CONFIG_RMI4_F30=y +CONFIG_RMI4_F34=y CONFIG_RMI4_F54=y +CONFIG_RMI4_F55=y # # Hardware I/O ports @@ -3679,6 +3726,7 @@ CONFIG_SONYPI=m CONFIG_SYNCLINK_CS=m CONFIG_CARDMAN_4000=m CONFIG_CARDMAN_4040=m +CONFIG_SCR24X=m CONFIG_IPWIRELESS=m CONFIG_MWAVE=m CONFIG_PC8736x_GPIO=m @@ -3727,6 +3775,7 @@ CONFIG_I2C_MUX_PCA954x=m # CONFIG_I2C_MUX_PINCTRL is not set # CONFIG_I2C_MUX_REG is not set # CONFIG_I2C_DEMUX_PINCTRL is not set +# CONFIG_I2C_MUX_MLXCPLD is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -3877,6 +3926,7 @@ CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_SINGLE is not set +# CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_CHERRYVIEW=y CONFIG_PINCTRL_INTEL=y @@ -3904,7 +3954,6 @@ CONFIG_GPIO_LYNXPOINT=y # CONFIG_GPIO_SYSCON is not set # CONFIG_GPIO_VX855 is not set # CONFIG_GPIO_XILINX is not set -# CONFIG_GPIO_ZX is not set # # Port-mapped I/O GPIO drivers @@ -3930,7 +3979,6 @@ CONFIG_GPIO_SCH311X=m # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_SX150X is not set # CONFIG_GPIO_TPIC2810 is not set -# CONFIG_GPIO_TS4900 is not set # # MFD GPIO expanders @@ -4085,6 +4133,7 @@ CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_MAX6697=m CONFIG_SENSORS_MAX31790=m CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_TC654=m CONFIG_SENSORS_ADCXX=m CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM70=m @@ -4153,6 +4202,7 @@ CONFIG_SENSORS_TC74=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP103=m +CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VIA_CPUTEMP=m @@ -4169,6 +4219,7 @@ CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_XGENE=m # # ACPI drivers @@ -4349,7 +4400,6 @@ CONFIG_MFD_CROS_EC_SPI=m # CONFIG_MFD_DA9063 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set -# CONFIG_MFD_EXYNOS_LPASS is not set CONFIG_MFD_MC13XXX=m # CONFIG_MFD_MC13XXX_SPI is not set CONFIG_MFD_MC13XXX_I2C=m @@ -4453,6 +4503,8 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y CONFIG_MEDIA_SDR_SUPPORT=y CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_MEDIA_CEC_SUPPORT=y +CONFIG_MEDIA_CEC_DEBUG=y CONFIG_MEDIA_CEC_EDID=y CONFIG_MEDIA_CONTROLLER=y # CONFIG_MEDIA_CONTROLLER_DVB is not set @@ -4480,6 +4532,7 @@ CONFIG_DVB_NET=y CONFIG_TTPCI_EEPROM=m CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set # # Media drivers @@ -4515,6 +4568,8 @@ CONFIG_IR_IGUANA=m CONFIG_IR_TTUSBIR=m CONFIG_RC_LOOPBACK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_SERIAL=m +CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_MEDIA_USB_SUPPORT=y # @@ -4678,6 +4733,11 @@ CONFIG_VIDEO_EM28XX_RC=m CONFIG_USB_AIRSPY=m CONFIG_USB_HACKRF=m CONFIG_USB_MSI2500=m + +# +# USB HDMI CEC adapters +# +CONFIG_USB_PULSE8_CEC=m CONFIG_MEDIA_PCI_SUPPORT=y # @@ -5124,6 +5184,8 @@ CONFIG_DRM_KMS_FB_HELPER=y CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_LOAD_EDID_FIRMWARE=y CONFIG_DRM_TTM=m +CONFIG_DRM_GEM_CMA_HELPER=y +CONFIG_DRM_KMS_CMA_HELPER=y # # I2C encoder or helper chips @@ -5148,9 +5210,10 @@ CONFIG_NOUVEAU_DEBUG=5 CONFIG_NOUVEAU_DEBUG_DEFAULT=3 CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I915=m -# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set +# CONFIG_DRM_I915_ALPHA_SUPPORT is not set +CONFIG_DRM_I915_CAPTURE_ERROR=y +CONFIG_DRM_I915_COMPRESS_ERROR=y CONFIG_DRM_I915_USERPTR=y -CONFIG_DRM_I915_GVT=y CONFIG_DRM_VGEM=m CONFIG_DRM_VMWGFX=m CONFIG_DRM_VMWGFX_FBCON=y @@ -5186,11 +5249,17 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m # CONFIG_DRM_DUMB_VGA_DAC is not set # CONFIG_DRM_NXP_PTN3460 is not set # CONFIG_DRM_PARADE_PS8622 is not set +# CONFIG_DRM_SIL_SII8620 is not set # CONFIG_DRM_SII902X is not set # CONFIG_DRM_TOSHIBA_TC358767 is not set +# CONFIG_DRM_TI_TFP410 is not set CONFIG_DRM_I2C_ADV7511=m +CONFIG_DRM_I2C_ADV7511_AUDIO=y # CONFIG_DRM_I2C_ADV7533 is not set # CONFIG_DRM_ARCPGU is not set +CONFIG_DRM_HISI_HIBMC=m +CONFIG_DRM_MXS=y +CONFIG_DRM_MXSFB=m # CONFIG_DRM_LEGACY is not set # @@ -5615,6 +5684,8 @@ CONFIG_SND_SOC_AC97_CODEC=m # CONFIG_SND_SOC_BT_SCO is not set # CONFIG_SND_SOC_CS35L32 is not set # CONFIG_SND_SOC_CS35L33 is not set +# CONFIG_SND_SOC_CS35L34 is not set +# CONFIG_SND_SOC_CS42L42 is not set # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -5637,6 +5708,8 @@ CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98357A=m # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX9860 is not set +# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set # CONFIG_SND_SOC_PCM1681 is not set # CONFIG_SND_SOC_PCM179X_I2C is not set # CONFIG_SND_SOC_PCM179X_SPI is not set @@ -5653,7 +5726,6 @@ CONFIG_SND_SOC_RT298=m CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m CONFIG_SND_SOC_RT5651=m -CONFIG_SND_SOC_RT5663=m CONFIG_SND_SOC_RT5670=m CONFIG_SND_SOC_RT5677=m CONFIG_SND_SOC_RT5677_SPI=m @@ -5764,6 +5836,7 @@ CONFIG_LOGIRUMBLEPAD2_FF=y CONFIG_LOGIG940_FF=y CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MAYFLASH=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -5800,6 +5873,7 @@ CONFIG_HID_TOPSEED=m CONFIG_HID_THINGM=m CONFIG_HID_THRUSTMASTER=m CONFIG_THRUSTMASTER_FF=y +CONFIG_HID_UDRAW_PS3=m CONFIG_HID_WACOM=m CONFIG_HID_WIIMOTE=m CONFIG_HID_XINMO=m @@ -5957,6 +6031,7 @@ CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_F81232=m +CONFIG_USB_SERIAL_F8153X=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -6049,10 +6124,6 @@ CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set CONFIG_PWRSEQ_EMMC=m CONFIG_PWRSEQ_SIMPLE=m - -# -# MMC/SD/SDIO Card Drivers -# CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y @@ -6069,6 +6140,7 @@ CONFIG_MMC_SDHCI_ACPI=m CONFIG_MMC_SDHCI_PLTFM=m CONFIG_MMC_SDHCI_OF_ARASAN=m # CONFIG_MMC_SDHCI_OF_AT91 is not set +CONFIG_MMC_SDHCI_CADENCE=m # CONFIG_MMC_SDHCI_F_SDH30 is not set CONFIG_MMC_WBSD=m CONFIG_MMC_TIFM_SD=m @@ -6145,6 +6217,8 @@ CONFIG_LEDS_KTD2692=m # LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) # CONFIG_LEDS_BLINKM=m +CONFIG_LEDS_USER=m +CONFIG_LEDS_NIC78BX=m # # LED Triggers @@ -6186,6 +6260,7 @@ CONFIG_MLX5_INFINIBAND=m CONFIG_INFINIBAND_NES=m # CONFIG_INFINIBAND_NES_DEBUG is not set CONFIG_INFINIBAND_OCRDMA=m +CONFIG_INFINIBAND_VMWARE_PVRDMA=m CONFIG_INFINIBAND_USNIC=m CONFIG_INFINIBAND_IPOIB=m CONFIG_INFINIBAND_IPOIB_CM=y @@ -6333,6 +6408,7 @@ CONFIG_RTC_DRV_ZYNQMP=m # CONFIG_RTC_DRV_MC13XXX=m CONFIG_RTC_DRV_SNVS=m +CONFIG_RTC_DRV_R7301=m # # HID Sensor RTC drivers @@ -6376,6 +6452,7 @@ CONFIG_KS0108_DELAY=2 CONFIG_CFAG12864B=m CONFIG_CFAG12864B_RATE=20 # CONFIG_IMG_ASCII_LCD is not set +# CONFIG_HT16K33 is not set CONFIG_UIO=m CONFIG_UIO_CIF=m CONFIG_UIO_PDRV_GENIRQ=m @@ -6386,6 +6463,7 @@ CONFIG_UIO_PCI_GENERIC=m CONFIG_UIO_NETX=m CONFIG_UIO_PRUSS=m # CONFIG_UIO_MF624 is not set +CONFIG_UIO_HV_GENERIC=m CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO_VIRQFD=m CONFIG_VFIO=m @@ -6395,6 +6473,8 @@ CONFIG_VFIO_PCI_VGA=y CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y CONFIG_VFIO_PCI_IGD=y +CONFIG_VFIO_MDEV=m +CONFIG_VFIO_MDEV_DEVICE=m CONFIG_IRQ_BYPASS_MANAGER=m CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=m @@ -6416,7 +6496,6 @@ CONFIG_HYPERV=m CONFIG_HYPERV_UTILS=m CONFIG_HYPERV_BALLOON=m CONFIG_STAGING=y -CONFIG_SLICOSS=m CONFIG_PRISM2_USB=m CONFIG_COMEDI=m # CONFIG_COMEDI_DEBUG is not set @@ -6584,7 +6663,6 @@ CONFIG_VT6656=m # CONFIG_ADIS16203 is not set # CONFIG_ADIS16209 is not set # CONFIG_ADIS16240 is not set -# CONFIG_SCA3000 is not set # # Analog to digital converters @@ -6626,9 +6704,7 @@ CONFIG_VT6656=m # # Light sensors # -# CONFIG_SENSORS_ISL29018 is not set # CONFIG_SENSORS_ISL29028 is not set -# CONFIG_TSL2583 is not set # CONFIG_TSL2x7x is not set # @@ -6674,15 +6750,12 @@ CONFIG_SPEAKUP_SYNTH_TXPRT=m CONFIG_SPEAKUP_SYNTH_DUMMY=m CONFIG_STAGING_MEDIA=y CONFIG_I2C_BCM2048=m -# CONFIG_MEDIA_CEC is not set CONFIG_DVB_CXD2099=m CONFIG_LIRC_STAGING=y CONFIG_LIRC_BT829=m CONFIG_LIRC_IMON=m CONFIG_LIRC_PARALLEL=m CONFIG_LIRC_SASEM=m -CONFIG_LIRC_SERIAL=m -CONFIG_LIRC_SERIAL_TRANSMITTER=y CONFIG_LIRC_SIR=m CONFIG_LIRC_ZILOG=m @@ -6741,6 +6814,7 @@ CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m # CONFIG_SONYPI_COMPAT is not set CONFIG_IDEAPAD_LAPTOP=m +CONFIG_SURFACE3_WMI=m CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set @@ -6779,8 +6853,11 @@ CONFIG_INTEL_RST=m CONFIG_INTEL_SMARTCONNECT=m CONFIG_PVPANIC=m CONFIG_INTEL_PMC_IPC=m +CONFIG_INTEL_BXTWC_PMIC_TMU=m CONFIG_SURFACE_PRO3_BUTTON=m +CONFIG_SURFACE_3_BUTTON=m CONFIG_INTEL_PUNIT_IPC=m +# CONFIG_MLX_CPLD_PLATFORM is not set CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m @@ -6806,6 +6883,13 @@ CONFIG_COMMON_CLK_RK808=m # CONFIG_COMMON_CLK_PWM is not set # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set +# CONFIG_COMMON_CLK_MT2701 is not set +# CONFIG_COMMON_CLK_MT2701_MMSYS is not set +# CONFIG_COMMON_CLK_MT2701_IMGSYS is not set +# CONFIG_COMMON_CLK_MT2701_VDECSYS is not set +# CONFIG_COMMON_CLK_MT2701_HIFSYS is not set +# CONFIG_COMMON_CLK_MT2701_ETHSYS is not set +# CONFIG_COMMON_CLK_MT2701_BDPSYS is not set # # Hardware Spinlock drivers @@ -6823,7 +6907,11 @@ CONFIG_CLKBLD_I8253=y # CONFIG_SH_TIMER_MTU2 is not set # CONFIG_SH_TIMER_TMU is not set # CONFIG_EM_TIMER_STI is not set -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +# CONFIG_PLATFORM_MHU is not set +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set +# CONFIG_MAILBOX_TEST is not set CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -6842,7 +6930,6 @@ CONFIG_INTEL_IOMMU_FLOPPY_WA=y # Remoteproc drivers # CONFIG_REMOTEPROC=m -CONFIG_STE_MODEM_RPROC=m # # Rpmsg drivers @@ -6903,8 +6990,11 @@ CONFIG_IIO_SW_TRIGGER=m # CONFIG_BMA180 is not set # CONFIG_BMA220 is not set # CONFIG_BMC150_ACCEL is not set +# CONFIG_DA280 is not set +# CONFIG_DA311 is not set # CONFIG_DMARD06 is not set # CONFIG_DMARD09 is not set +# CONFIG_DMARD10 is not set CONFIG_HID_SENSOR_ACCEL_3D=m CONFIG_IIO_ST_ACCEL_3AXIS=m CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m @@ -6920,6 +7010,7 @@ CONFIG_MMA7660=m # CONFIG_MMA9553 is not set # CONFIG_MXC4005 is not set # CONFIG_MXC6255 is not set +# CONFIG_SCA3000 is not set # CONFIG_STK8312 is not set # CONFIG_STK8BA50 is not set @@ -6930,11 +7021,13 @@ CONFIG_MMA7660=m # CONFIG_AD7291 is not set # CONFIG_AD7298 is not set # CONFIG_AD7476 is not set +# CONFIG_AD7766 is not set # CONFIG_AD7791 is not set # CONFIG_AD7793 is not set # CONFIG_AD7887 is not set # CONFIG_AD7923 is not set # CONFIG_AD799X is not set +# CONFIG_ENVELOPE_DETECTOR is not set # CONFIG_HI8435 is not set # CONFIG_INA2XX_ADC is not set # CONFIG_LTC2485 is not set @@ -6968,6 +7061,8 @@ CONFIG_MMA7660=m # CONFIG_ATLAS_PH_SENSOR is not set # CONFIG_IAQCORE is not set # CONFIG_VZ89X is not set +CONFIG_IIO_CROS_EC_SENSORS_CORE=m +CONFIG_IIO_CROS_EC_SENSORS=m # # Hid Sensor IIO Common @@ -6984,6 +7079,11 @@ CONFIG_IIO_ST_SENSORS_SPI=m CONFIG_IIO_ST_SENSORS_CORE=m # +# Counters +# +# CONFIG_104_QUAD_8 is not set + +# # Digital to analog converters # # CONFIG_AD5064 is not set @@ -7004,6 +7104,7 @@ CONFIG_IIO_ST_SENSORS_CORE=m # CONFIG_AD7303 is not set # CONFIG_CIO_DAC is not set # CONFIG_AD8801 is not set +# CONFIG_DPOT_DAC is not set # CONFIG_M62332 is not set # CONFIG_MAX517 is not set # CONFIG_MAX5821 is not set @@ -7062,6 +7163,7 @@ CONFIG_MAX30100=m # CONFIG_AM2315 is not set # CONFIG_DHT11 is not set # CONFIG_HDC100X is not set +# CONFIG_HTS221 is not set # CONFIG_HTU21 is not set # CONFIG_SI7005 is not set # CONFIG_SI7020 is not set @@ -7093,6 +7195,7 @@ CONFIG_BH1780=m # CONFIG_CM3323 is not set # CONFIG_CM36651 is not set # CONFIG_GP2AP020A00F is not set +# CONFIG_SENSORS_ISL29018 is not set # CONFIG_ISL29125 is not set CONFIG_HID_SENSOR_ALS=m # CONFIG_HID_SENSOR_PROX is not set @@ -7108,6 +7211,7 @@ CONFIG_STK3310=m # CONFIG_TCS3414 is not set # CONFIG_TCS3472 is not set # CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL2583 is not set # CONFIG_TSL4531 is not set # CONFIG_US5182D is not set # CONFIG_VCNL4000 is not set @@ -7155,8 +7259,14 @@ CONFIG_IIO_TIGHTLOOP_TRIGGER=m # CONFIG_TPL0102 is not set # +# Digital potentiostats +# +# CONFIG_LMP91000 is not set + +# # Pressure sensors # +# CONFIG_ABP060MG is not set # CONFIG_BMP280 is not set # CONFIG_HID_SENSOR_PRESS is not set # CONFIG_HP03 is not set @@ -7217,6 +7327,7 @@ CONFIG_RESET_CONTROLLER=y # CONFIG_RESET_SUNXI is not set # CONFIG_TI_SYSCON_RESET is not set # CONFIG_RESET_ZYNQ is not set +# CONFIG_RESET_TEGRA_BPMP is not set CONFIG_FMC=m CONFIG_FMC_FAKEDEV=m CONFIG_FMC_TRIVIAL=m @@ -7252,6 +7363,7 @@ CONFIG_STM=m # CONFIG_STM_DUMMY is not set CONFIG_STM_SOURCE_CONSOLE=m CONFIG_STM_SOURCE_HEARTBEAT=m +CONFIG_STM_SOURCE_FTRACE=m CONFIG_INTEL_TH=m CONFIG_INTEL_TH_PCI=m CONFIG_INTEL_TH_GTH=m @@ -7268,6 +7380,7 @@ CONFIG_INTEL_TH_PTI=m # # Firmware Drivers # +# CONFIG_ARM_SCPI_PROTOCOL is not set CONFIG_EDD=m # CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y @@ -7292,7 +7405,13 @@ CONFIG_EFI_RUNTIME_MAP=y CONFIG_EFI_RUNTIME_WRAPPERS=y CONFIG_EFI_CAPSULE_LOADER=m # CONFIG_EFI_TEST is not set +CONFIG_APPLE_PROPERTIES=y CONFIG_UEFI_CPER=y +CONFIG_EFI_DEV_PATH_PARSER=y + +# +# Tegra firmware driver +# # # File systems @@ -7376,6 +7495,7 @@ CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m CONFIG_OVERLAY_FS=m +CONFIG_OVERLAY_FS_REDIRECT_DIR=y # # Caches @@ -7458,7 +7578,7 @@ CONFIG_UBIFS_FS=m CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS_ZLIB=y CONFIG_UBIFS_ATIME_SUPPORT=y -CONFIG_LOGFS=m +CONFIG_UBIFS_FS_ENCRYPTION=y CONFIG_CRAMFS=m CONFIG_SQUASHFS=m # CONFIG_SQUASHFS_FILE_CACHE is not set @@ -7631,6 +7751,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y # printk and dmesg options # CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_BOOT_PRINTK_DELAY is not set CONFIG_DYNAMIC_DEBUG=y @@ -7824,6 +7945,7 @@ CONFIG_TEST_KSTRTOX=m # CONFIG_TEST_UDELAY is not set # CONFIG_MEMTEST is not set # CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set @@ -7920,6 +8042,7 @@ CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=m CONFIG_CRYPTO_KPP2=y CONFIG_CRYPTO_KPP=m +CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_RSA=m CONFIG_CRYPTO_DH=m CONFIG_CRYPTO_ECDH=m @@ -7937,6 +8060,7 @@ CONFIG_CRYPTO_MCRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_ABLK_HELPER=m +CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m # @@ -7964,7 +8088,7 @@ CONFIG_CRYPTO_KEYWRAP=m # Hash modes # CONFIG_CRYPTO_CMAC=m -CONFIG_CRYPTO_HMAC=m +CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -7985,8 +8109,8 @@ CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_SHA3=m CONFIG_CRYPTO_TGR192=m @@ -8052,6 +8176,7 @@ CONFIG_CRYPTO_DEV_PADLOCK_SHA=m CONFIG_CRYPTO_DEV_GEODE=m CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set CONFIG_CRYPTO_DEV_CCP=y CONFIG_CRYPTO_DEV_CCP_DD=m CONFIG_CRYPTO_DEV_CCP_CRYPTO=m @@ -8063,6 +8188,7 @@ CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_CHELSIO=m +CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m CONFIG_X509_CERTIFICATE_PARSER=m diff --git a/config.x86_64 b/config.x86_64 index a3b5af627633..547d33abb5db 100644 --- a/config.x86_64 +++ b/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.9.5-1 Kernel Configuration +# Linux/x86 4.10.0-1 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -168,7 +168,9 @@ CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y # CONFIG_CGROUP_DEBUG is not set +CONFIG_SOCK_CGROUP_DATA=y # CONFIG_CHECKPOINT_RESTORE is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y @@ -187,6 +189,7 @@ CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y +CONFIG_INITRAMFS_COMPRESSION=".gz" CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y @@ -201,6 +204,7 @@ CONFIG_MULTIUSER=y CONFIG_SGETMASK_SYSCALL=y CONFIG_SYSFS_SYSCALL=y # CONFIG_SYSCTL_SYSCALL is not set +CONFIG_POSIX_TIMERS=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y @@ -340,8 +344,12 @@ CONFIG_BLOCK=y CONFIG_BLK_DEV_BSG=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_ZONED=y CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_CMDLINE_PARSER is not set +CONFIG_BLK_WBT=y +CONFIG_BLK_WBT_SQ=y +CONFIG_BLK_WBT_MQ=y # # Partition Types @@ -405,6 +413,7 @@ CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set +CONFIG_INTEL_RDT_A=y # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_X86_INTEL_LPSS=y CONFIG_X86_AMD_PLATFORM_DEVICE=y @@ -456,6 +465,7 @@ CONFIG_IOMMU_HELPER=y CONFIG_NR_CPUS=128 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y @@ -586,6 +596,8 @@ CONFIG_HZ_300=y CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y +CONFIG_KEXEC_FILE=y +# CONFIG_KEXEC_VERIFY_SIG is not set CONFIG_CRASH_DUMP=y CONFIG_KEXEC_JUMP=y CONFIG_PHYSICAL_START=0x1000000 @@ -650,6 +662,7 @@ CONFIG_ACPI_DOCK=y CONFIG_ACPI_CPU_FREQ_PSS=y CONFIG_ACPI_PROCESSOR_CSTATE=y CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_IPMI=m CONFIG_ACPI_HOTPLUG_CPU=y @@ -737,12 +750,6 @@ CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_INTEL_IDLE=y # -# Memory power savings -# -CONFIG_I7300_IDLE_IOAT_CHANNEL=y -CONFIG_I7300_IDLE=m - -# # Bus options (PCI etc.) # CONFIG_PCI=y @@ -826,6 +833,7 @@ CONFIG_COREDUMP=y CONFIG_IA32_EMULATION=y # CONFIG_IA32_AOUT is not set # CONFIG_X86_X32 is not set +CONFIG_COMPAT_32=y CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y @@ -887,6 +895,7 @@ CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m CONFIG_INET_UDP_DIAG=m +CONFIG_INET_RAW_DIAG=m CONFIG_INET_DIAG_DESTROY=y CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m @@ -937,6 +946,9 @@ CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_MROUTE=y CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y +CONFIG_IPV6_SEG6_LWTUNNEL=y +# CONFIG_IPV6_SEG6_INLINE is not set +CONFIG_IPV6_SEG6_HMAC=y CONFIG_NETLABEL=y CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y @@ -956,6 +968,7 @@ CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_COMMON=m +CONFIG_NF_LOG_NETDEV=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y @@ -964,10 +977,10 @@ CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CONNTRACK_TIMEOUT=y CONFIG_NF_CONNTRACK_TIMESTAMP=y CONFIG_NF_CONNTRACK_LABELS=y -CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_DCCP=y CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CT_PROTO_SCTP=y +CONFIG_NF_CT_PROTO_UDPLITE=y CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m @@ -985,9 +998,9 @@ CONFIG_NF_CT_NETLINK_HELPER=m CONFIG_NETFILTER_NETLINK_GLUE_CT=y CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y -CONFIG_NF_NAT_PROTO_DCCP=m -CONFIG_NF_NAT_PROTO_UDPLITE=m -CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_PROTO_DCCP=y +CONFIG_NF_NAT_PROTO_UDPLITE=y +CONFIG_NF_NAT_PROTO_SCTP=y CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m @@ -1000,6 +1013,7 @@ CONFIG_NF_TABLES_INET=m CONFIG_NF_TABLES_NETDEV=m CONFIG_NFT_EXTHDR=m CONFIG_NFT_META=m +CONFIG_NFT_RT=m CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_SET_RBTREE=m @@ -1010,12 +1024,15 @@ CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m CONFIG_NFT_REDIR=m CONFIG_NFT_NAT=m +CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NF_DUP_NETDEV=m CONFIG_NFT_DUP_NETDEV=m CONFIG_NFT_FWD_NETDEV=m @@ -1116,6 +1133,7 @@ CONFIG_IP_SET_HASH_IPMARK=m CONFIG_IP_SET_HASH_IPPORT=m CONFIG_IP_SET_HASH_IPPORTIP=m CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_IPMAC=m CONFIG_IP_SET_HASH_MAC=m CONFIG_IP_SET_HASH_NETPORTNET=m CONFIG_IP_SET_HASH_NET=m @@ -1171,10 +1189,12 @@ CONFIG_IP_VS_PE_SIP=m # CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TABLES_IPV4=m CONFIG_NFT_CHAIN_ROUTE_IPV4=m CONFIG_NFT_REJECT_IPV4=m CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m CONFIG_NF_TABLES_ARP=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m @@ -1216,10 +1236,12 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TABLES_IPV6=m CONFIG_NFT_CHAIN_ROUTE_IPV6=m CONFIG_NFT_REJECT_IPV6=m CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m @@ -1467,7 +1489,6 @@ CONFIG_NET_NCSI=y CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y -CONFIG_SOCK_CGROUP_DATA=y # CONFIG_CGROUP_NET_PRIO is not set CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y @@ -1749,6 +1770,7 @@ CONFIG_NFC_ST_NCI_I2C=m # CONFIG_NFC_S3FWRN5_I2C is not set # CONFIG_NFC_ST95HF is not set CONFIG_LWTUNNEL=y +CONFIG_LWTUNNEL_BPF=y CONFIG_DST_CACHE=y CONFIG_NET_DEVLINK=m CONFIG_MAY_USE_DEVLINK=m @@ -1777,6 +1799,7 @@ CONFIG_DEV_COREDUMP=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_SYS_HYPERVISOR=y # CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y @@ -1786,7 +1809,7 @@ CONFIG_REGMAP_SPI=y CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y CONFIG_DMA_SHARED_BUFFER=y -# CONFIG_FENCE_TRACE is not set +# CONFIG_DMA_FENCE_TRACE is not set # # Bus devices @@ -1956,9 +1979,12 @@ CONFIG_BLK_DEV_NVME=m # CONFIG_BLK_DEV_NVME_SCSI is not set CONFIG_NVME_FABRICS=m CONFIG_NVME_RDMA=m +CONFIG_NVME_FC=m CONFIG_NVME_TARGET=m CONFIG_NVME_TARGET_LOOP=m CONFIG_NVME_TARGET_RDMA=m +CONFIG_NVME_TARGET_FC=m +# CONFIG_NVME_TARGET_FCLOOP is not set # # Misc devices @@ -2198,6 +2224,7 @@ CONFIG_SCSI_QLA_FC=m CONFIG_TCM_QLA2XXX=m # CONFIG_TCM_QLA2XXX_DEBUG is not set CONFIG_SCSI_QLA_ISCSI=m +CONFIG_QEDI=m CONFIG_SCSI_LPFC=m # CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_DC395x=m @@ -2337,7 +2364,7 @@ CONFIG_BLK_DEV_DM=m # CONFIG_DM_MQ_DEFAULT is not set # CONFIG_DM_DEBUG is not set CONFIG_DM_BUFIO=m -# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m CONFIG_DM_CRYPT=m @@ -2486,6 +2513,8 @@ CONFIG_NET_VENDOR_ADAPTEC=y CONFIG_ADAPTEC_STARFIRE=m CONFIG_NET_VENDOR_AGERE=y CONFIG_ET131X=m +CONFIG_NET_VENDOR_ALACRITECH=y +CONFIG_SLICOSS=m CONFIG_NET_VENDOR_ALTEON=y CONFIG_ACENIC=m # CONFIG_ACENIC_OMIT_TIGON_I is not set @@ -2496,6 +2525,8 @@ CONFIG_NET_VENDOR_AMD=y CONFIG_AMD8111_ETH=m CONFIG_PCNET32=m CONFIG_PCMCIA_NMCLAN=m +CONFIG_AMD_XGBE=m +CONFIG_AMD_XGBE_HAVE_ECC=y CONFIG_NET_VENDOR_ARC=y CONFIG_NET_VENDOR_ATHEROS=y CONFIG_ATL2=m @@ -2507,6 +2538,7 @@ CONFIG_NET_VENDOR_AURORA=y CONFIG_AURORA_NB8800=m CONFIG_NET_CADENCE=y CONFIG_MACB=m +CONFIG_MACB_PCI=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -2584,7 +2616,6 @@ CONFIG_NET_VENDOR_I825XX=y CONFIG_JME=m CONFIG_NET_VENDOR_MARVELL=y CONFIG_MVMDIO=m -# CONFIG_MVNETA_BM is not set CONFIG_SKGE=m # CONFIG_SKGE_DEBUG is not set CONFIG_SKGE_GENESIS=y @@ -2598,9 +2629,13 @@ CONFIG_MLX5_CORE=m CONFIG_MLX5_CORE_EN=y CONFIG_MLXSW_CORE=m CONFIG_MLXSW_CORE_HWMON=y +CONFIG_MLXSW_CORE_THERMAL=y CONFIG_MLXSW_PCI=m +CONFIG_MLXSW_I2C=m +CONFIG_MLXSW_SWITCHIB=m CONFIG_MLXSW_SWITCHX2=m CONFIG_MLXSW_SPECTRUM=m +CONFIG_MLXSW_MINIMAL=m CONFIG_NET_VENDOR_MICREL=y CONFIG_KS8842=m CONFIG_KS8851=m @@ -2639,8 +2674,10 @@ CONFIG_QLCNIC_HWMON=y CONFIG_QLGE=m CONFIG_NETXEN_NIC=m CONFIG_QED=m +CONFIG_QED_LL2=y CONFIG_QED_SRIOV=y CONFIG_QEDE=m +CONFIG_QED_ISCSI=y CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_QCOM_EMAC=m CONFIG_NET_VENDOR_REALTEK=y @@ -2665,11 +2702,14 @@ CONFIG_SC92031=m CONFIG_NET_VENDOR_SIS=y CONFIG_SIS900=m CONFIG_SIS190=m +CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_SFC=m CONFIG_SFC_MTD=y CONFIG_SFC_MCDI_MON=y CONFIG_SFC_SRIOV=y CONFIG_SFC_MCDI_LOGGING=y +CONFIG_SFC_FALCON=m +CONFIG_SFC_FALCON_MTD=y CONFIG_NET_VENDOR_SMSC=y CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m @@ -2709,6 +2749,7 @@ CONFIG_PCMCIA_XIRC2PS=m CONFIG_NET_SB1000=m CONFIG_PHYLIB=m CONFIG_SWPHY=y +CONFIG_LED_TRIGGER_PHY=y # # MDIO bus device drivers @@ -3462,11 +3503,16 @@ CONFIG_INPUT_SOC_BUTTON_ARRAY=m CONFIG_RMI4_CORE=m CONFIG_RMI4_I2C=m CONFIG_RMI4_SPI=m +CONFIG_RMI4_SMB=m +CONFIG_RMI4_F03=y +CONFIG_RMI4_F03_SERIO=m CONFIG_RMI4_2D_SENSOR=y CONFIG_RMI4_F11=y CONFIG_RMI4_F12=y CONFIG_RMI4_F30=y +CONFIG_RMI4_F34=y CONFIG_RMI4_F54=y +CONFIG_RMI4_F55=y # # Hardware I/O ports @@ -3603,6 +3649,7 @@ CONFIG_APPLICOM=m CONFIG_SYNCLINK_CS=m CONFIG_CARDMAN_4000=m CONFIG_CARDMAN_4040=m +CONFIG_SCR24X=m CONFIG_IPWIRELESS=m CONFIG_MWAVE=m CONFIG_RAW_DRIVER=m @@ -3648,6 +3695,7 @@ CONFIG_I2C_MUX_PCA9541=m CONFIG_I2C_MUX_PCA954x=m # CONFIG_I2C_MUX_PINCTRL is not set # CONFIG_I2C_MUX_REG is not set +# CONFIG_I2C_MUX_MLXCPLD is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m @@ -3713,6 +3761,7 @@ CONFIG_I2C_VIPERBOARD=m # # Other I2C/SMBus bus drivers # +# CONFIG_I2C_MLXCPLD is not set # CONFIG_I2C_CROS_EC_TUNNEL is not set # CONFIG_I2C_STUB is not set CONFIG_I2C_SLAVE=y @@ -3789,6 +3838,7 @@ CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set # CONFIG_PINCTRL_AMD is not set +# CONFIG_PINCTRL_SX150X is not set CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_CHERRYVIEW=y CONFIG_PINCTRL_INTEL=y @@ -3810,7 +3860,6 @@ CONFIG_GPIO_ICH=m CONFIG_GPIO_LYNXPOINT=y # CONFIG_GPIO_MOCKUP is not set # CONFIG_GPIO_VX855 is not set -# CONFIG_GPIO_ZX is not set # # Port-mapped I/O GPIO drivers @@ -3830,7 +3879,6 @@ CONFIG_GPIO_SCH311X=m # CONFIG_GPIO_PCF857X is not set # CONFIG_GPIO_SX150X is not set # CONFIG_GPIO_TPIC2810 is not set -# CONFIG_GPIO_TS4900 is not set # # MFD GPIO expanders @@ -3972,6 +4020,7 @@ CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_MAX6697=m CONFIG_SENSORS_MAX31790=m CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_TC654=m CONFIG_SENSORS_ADCXX=m CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM70=m @@ -4039,6 +4088,7 @@ CONFIG_SENSORS_TC74=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP103=m +CONFIG_SENSORS_TMP108=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VIA_CPUTEMP=m @@ -4055,6 +4105,7 @@ CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_XGENE=m # # ACPI drivers @@ -4214,7 +4265,6 @@ CONFIG_MFD_CROS_EC_I2C=m # CONFIG_MFD_DA9063 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_DLN2 is not set -# CONFIG_MFD_EXYNOS_LPASS is not set CONFIG_MFD_MC13XXX=m # CONFIG_MFD_MC13XXX_SPI is not set CONFIG_MFD_MC13XXX_I2C=m @@ -4310,6 +4360,8 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y CONFIG_MEDIA_SDR_SUPPORT=y CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_MEDIA_CEC_SUPPORT=y +CONFIG_MEDIA_CEC_DEBUG=y CONFIG_MEDIA_CEC_EDID=y CONFIG_MEDIA_CONTROLLER=y # CONFIG_MEDIA_CONTROLLER_DVB is not set @@ -4337,6 +4389,7 @@ CONFIG_DVB_NET=y CONFIG_TTPCI_EEPROM=m CONFIG_DVB_MAX_ADAPTERS=8 # CONFIG_DVB_DYNAMIC_MINORS is not set +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set # # Media drivers @@ -4372,6 +4425,8 @@ CONFIG_IR_IGUANA=m CONFIG_IR_TTUSBIR=m CONFIG_RC_LOOPBACK=m CONFIG_IR_GPIO_CIR=m +CONFIG_IR_SERIAL=m +CONFIG_IR_SERIAL_TRANSMITTER=y CONFIG_MEDIA_USB_SUPPORT=y # @@ -4535,6 +4590,11 @@ CONFIG_VIDEO_EM28XX_RC=m CONFIG_USB_AIRSPY=m CONFIG_USB_HACKRF=m CONFIG_USB_MSI2500=m + +# +# USB HDMI CEC adapters +# +CONFIG_USB_PULSE8_CEC=m CONFIG_MEDIA_PCI_SUPPORT=y # @@ -4998,9 +5058,12 @@ CONFIG_NOUVEAU_DEBUG=5 CONFIG_NOUVEAU_DEBUG_DEFAULT=3 CONFIG_DRM_NOUVEAU_BACKLIGHT=y CONFIG_DRM_I915=m -# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set +# CONFIG_DRM_I915_ALPHA_SUPPORT is not set +CONFIG_DRM_I915_CAPTURE_ERROR=y +CONFIG_DRM_I915_COMPRESS_ERROR=y CONFIG_DRM_I915_USERPTR=y CONFIG_DRM_I915_GVT=y +CONFIG_DRM_I915_GVT_KVMGT=m CONFIG_DRM_VGEM=m CONFIG_DRM_VMWGFX=m CONFIG_DRM_VMWGFX_FBCON=y @@ -5026,6 +5089,7 @@ CONFIG_DRM_BRIDGE=y # CONFIG_DRM_ANALOGIX_ANX78XX=m CONFIG_HSA_AMD=m +CONFIG_DRM_HISI_HIBMC=m # CONFIG_DRM_LEGACY is not set # @@ -5400,6 +5464,8 @@ CONFIG_SND_SOC_AC97_CODEC=m # CONFIG_SND_SOC_BT_SCO is not set # CONFIG_SND_SOC_CS35L32 is not set # CONFIG_SND_SOC_CS35L33 is not set +# CONFIG_SND_SOC_CS35L34 is not set +# CONFIG_SND_SOC_CS42L42 is not set # CONFIG_SND_SOC_CS42L51_I2C is not set # CONFIG_SND_SOC_CS42L52 is not set # CONFIG_SND_SOC_CS42L56 is not set @@ -5422,6 +5488,8 @@ CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98357A=m # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX9860 is not set +# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set # CONFIG_SND_SOC_PCM1681 is not set # CONFIG_SND_SOC_PCM179X_I2C is not set # CONFIG_SND_SOC_PCM179X_SPI is not set @@ -5438,7 +5506,6 @@ CONFIG_SND_SOC_RT298=m CONFIG_SND_SOC_RT5640=m CONFIG_SND_SOC_RT5645=m CONFIG_SND_SOC_RT5651=m -CONFIG_SND_SOC_RT5663=m CONFIG_SND_SOC_RT5670=m CONFIG_SND_SOC_RT5677=m CONFIG_SND_SOC_RT5677_SPI=m @@ -5548,6 +5615,7 @@ CONFIG_LOGIRUMBLEPAD2_FF=y CONFIG_LOGIG940_FF=y CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MAYFLASH=m CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m @@ -5584,6 +5652,7 @@ CONFIG_HID_TOPSEED=m CONFIG_HID_THINGM=m CONFIG_HID_THRUSTMASTER=m CONFIG_THRUSTMASTER_FF=y +CONFIG_HID_UDRAW_PS3=m CONFIG_HID_WACOM=m CONFIG_HID_WIIMOTE=m CONFIG_HID_XINMO=m @@ -5746,6 +5815,7 @@ CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_F81232=m +CONFIG_USB_SERIAL_F8153X=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m @@ -5836,10 +5906,6 @@ CONFIG_UWB_WHCI=m CONFIG_UWB_I1480U=m CONFIG_MMC=m # CONFIG_MMC_DEBUG is not set - -# -# MMC/SD/SDIO Card Drivers -# CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_MINORS=8 CONFIG_MMC_BLOCK_BOUNCE=y @@ -5923,6 +5989,8 @@ CONFIG_LEDS_LM355x=m # CONFIG_LEDS_BLINKM=m CONFIG_LEDS_MLXCPLD=m +CONFIG_LEDS_USER=m +CONFIG_LEDS_NIC78BX=m # # LED Triggers @@ -5966,6 +6034,7 @@ CONFIG_MLX5_INFINIBAND=m CONFIG_INFINIBAND_NES=m # CONFIG_INFINIBAND_NES_DEBUG is not set CONFIG_INFINIBAND_OCRDMA=m +CONFIG_INFINIBAND_VMWARE_PVRDMA=m CONFIG_INFINIBAND_USNIC=m CONFIG_INFINIBAND_IPOIB=m CONFIG_INFINIBAND_IPOIB_CM=y @@ -6166,6 +6235,7 @@ CONFIG_UIO_PCI_GENERIC=m CONFIG_UIO_NETX=m CONFIG_UIO_PRUSS=m # CONFIG_UIO_MF624 is not set +CONFIG_UIO_HV_GENERIC=m CONFIG_VFIO_IOMMU_TYPE1=m CONFIG_VFIO_VIRQFD=m CONFIG_VFIO=m @@ -6175,6 +6245,8 @@ CONFIG_VFIO_PCI_VGA=y CONFIG_VFIO_PCI_MMAP=y CONFIG_VFIO_PCI_INTX=y CONFIG_VFIO_PCI_IGD=y +CONFIG_VFIO_MDEV=m +CONFIG_VFIO_MDEV_DEVICE=m CONFIG_IRQ_BYPASS_MANAGER=m CONFIG_VIRT_DRIVERS=y CONFIG_VIRTIO=m @@ -6226,7 +6298,6 @@ CONFIG_XEN_ACPI=y CONFIG_XEN_SYMS=y CONFIG_XEN_HAVE_VPMU=y CONFIG_STAGING=y -CONFIG_SLICOSS=m CONFIG_PRISM2_USB=m CONFIG_COMEDI=m # CONFIG_COMEDI_DEBUG is not set @@ -6343,7 +6414,6 @@ CONFIG_VT6656=m # CONFIG_ADIS16203 is not set # CONFIG_ADIS16209 is not set # CONFIG_ADIS16240 is not set -# CONFIG_SCA3000 is not set # # Analog to digital converters @@ -6385,9 +6455,7 @@ CONFIG_VT6656=m # # Light sensors # -# CONFIG_SENSORS_ISL29018 is not set # CONFIG_SENSORS_ISL29028 is not set -# CONFIG_TSL2583 is not set # CONFIG_TSL2x7x is not set # @@ -6429,15 +6497,12 @@ CONFIG_SPEAKUP_SYNTH_TXPRT=m CONFIG_SPEAKUP_SYNTH_DUMMY=m CONFIG_STAGING_MEDIA=y CONFIG_I2C_BCM2048=m -# CONFIG_MEDIA_CEC is not set CONFIG_DVB_CXD2099=m CONFIG_LIRC_STAGING=y CONFIG_LIRC_BT829=m CONFIG_LIRC_IMON=m CONFIG_LIRC_PARALLEL=m CONFIG_LIRC_SASEM=m -CONFIG_LIRC_SERIAL=m -CONFIG_LIRC_SERIAL_TRANSMITTER=y CONFIG_LIRC_SIR=m CONFIG_LIRC_ZILOG=m @@ -6492,6 +6557,7 @@ CONFIG_COMPAL_LAPTOP=m CONFIG_SONY_LAPTOP=m # CONFIG_SONYPI_COMPAT is not set CONFIG_IDEAPAD_LAPTOP=m +CONFIG_SURFACE3_WMI=m CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set @@ -6528,9 +6594,13 @@ CONFIG_INTEL_RST=m CONFIG_INTEL_SMARTCONNECT=m CONFIG_PVPANIC=m CONFIG_INTEL_PMC_IPC=m +CONFIG_INTEL_BXTWC_PMIC_TMU=m CONFIG_SURFACE_PRO3_BUTTON=m +CONFIG_SURFACE_3_BUTTON=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_TELEMETRY=m +# CONFIG_MLX_PLATFORM is not set +# CONFIG_MLX_CPLD_PLATFORM is not set CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m @@ -6551,6 +6621,13 @@ CONFIG_COMMON_CLK=y # CONFIG_COMMON_CLK_NXP is not set # CONFIG_COMMON_CLK_PXA is not set # CONFIG_COMMON_CLK_PIC32 is not set +# CONFIG_COMMON_CLK_MT2701 is not set +# CONFIG_COMMON_CLK_MT2701_MMSYS is not set +# CONFIG_COMMON_CLK_MT2701_IMGSYS is not set +# CONFIG_COMMON_CLK_MT2701_VDECSYS is not set +# CONFIG_COMMON_CLK_MT2701_HIFSYS is not set +# CONFIG_COMMON_CLK_MT2701_ETHSYS is not set +# CONFIG_COMMON_CLK_MT2701_BDPSYS is not set # # Hardware Spinlock drivers @@ -6567,7 +6644,9 @@ CONFIG_CLKBLD_I8253=y # CONFIG_SH_TIMER_MTU2 is not set # CONFIG_SH_TIMER_TMU is not set # CONFIG_EM_TIMER_STI is not set -# CONFIG_MAILBOX is not set +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y @@ -6588,7 +6667,6 @@ CONFIG_IRQ_REMAP=y # Remoteproc drivers # CONFIG_REMOTEPROC=m -CONFIG_STE_MODEM_RPROC=m # # Rpmsg drivers @@ -6649,7 +6727,10 @@ CONFIG_IIO_SW_TRIGGER=m # CONFIG_BMA180 is not set # CONFIG_BMA220 is not set # CONFIG_BMC150_ACCEL is not set +# CONFIG_DA280 is not set +# CONFIG_DA311 is not set # CONFIG_DMARD09 is not set +# CONFIG_DMARD10 is not set CONFIG_HID_SENSOR_ACCEL_3D=m CONFIG_IIO_ST_ACCEL_3AXIS=m CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m @@ -6665,6 +6746,7 @@ CONFIG_MMA7660=m # CONFIG_MMA9553 is not set # CONFIG_MXC4005 is not set # CONFIG_MXC6255 is not set +# CONFIG_SCA3000 is not set # CONFIG_STK8312 is not set # CONFIG_STK8BA50 is not set @@ -6675,6 +6757,7 @@ CONFIG_MMA7660=m # CONFIG_AD7291 is not set # CONFIG_AD7298 is not set # CONFIG_AD7476 is not set +# CONFIG_AD7766 is not set # CONFIG_AD7791 is not set # CONFIG_AD7793 is not set # CONFIG_AD7887 is not set @@ -6710,6 +6793,8 @@ CONFIG_MMA7660=m # CONFIG_ATLAS_PH_SENSOR is not set # CONFIG_IAQCORE is not set # CONFIG_VZ89X is not set +CONFIG_IIO_CROS_EC_SENSORS_CORE=m +CONFIG_IIO_CROS_EC_SENSORS=m # # Hid Sensor IIO Common @@ -6726,6 +6811,10 @@ CONFIG_IIO_ST_SENSORS_SPI=m CONFIG_IIO_ST_SENSORS_CORE=m # +# Counters +# + +# # Digital to analog converters # # CONFIG_AD5064 is not set @@ -6801,6 +6890,7 @@ CONFIG_MAX30100=m # CONFIG_AM2315 is not set # CONFIG_DHT11 is not set # CONFIG_HDC100X is not set +# CONFIG_HTS221 is not set # CONFIG_HTU21 is not set # CONFIG_SI7005 is not set # CONFIG_SI7020 is not set @@ -6831,6 +6921,7 @@ CONFIG_BH1780=m # CONFIG_CM3323 is not set # CONFIG_CM36651 is not set # CONFIG_GP2AP020A00F is not set +# CONFIG_SENSORS_ISL29018 is not set # CONFIG_ISL29125 is not set CONFIG_HID_SENSOR_ALS=m # CONFIG_HID_SENSOR_PROX is not set @@ -6846,6 +6937,7 @@ CONFIG_STK3310=m # CONFIG_TCS3414 is not set # CONFIG_TCS3472 is not set # CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL2583 is not set # CONFIG_TSL4531 is not set # CONFIG_US5182D is not set # CONFIG_VCNL4000 is not set @@ -6892,8 +6984,14 @@ CONFIG_IIO_TIGHTLOOP_TRIGGER=m # CONFIG_TPL0102 is not set # +# Digital potentiostats +# +# CONFIG_LMP91000 is not set + +# # Pressure sensors # +# CONFIG_ABP060MG is not set # CONFIG_BMP280 is not set # CONFIG_HID_SENSOR_PRESS is not set # CONFIG_HP03 is not set @@ -6944,6 +7042,7 @@ CONFIG_RESET_CONTROLLER=y # CONFIG_RESET_SUNXI is not set # CONFIG_TI_SYSCON_RESET is not set # CONFIG_RESET_ZYNQ is not set +# CONFIG_RESET_TEGRA_BPMP is not set CONFIG_FMC=m CONFIG_FMC_FAKEDEV=m CONFIG_FMC_TRIVIAL=m @@ -6989,6 +7088,7 @@ CONFIG_STM=m # CONFIG_STM_DUMMY is not set CONFIG_STM_SOURCE_CONSOLE=m CONFIG_STM_SOURCE_HEARTBEAT=m +CONFIG_STM_SOURCE_FTRACE=m CONFIG_INTEL_TH=m CONFIG_INTEL_TH_PCI=m CONFIG_INTEL_TH_GTH=m @@ -7005,6 +7105,7 @@ CONFIG_INTEL_TH_PTI=m # # Firmware Drivers # +# CONFIG_ARM_SCPI_PROTOCOL is not set CONFIG_EDD=m # CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y @@ -7029,7 +7130,13 @@ CONFIG_EFI_RUNTIME_MAP=y CONFIG_EFI_RUNTIME_WRAPPERS=y CONFIG_EFI_CAPSULE_LOADER=m # CONFIG_EFI_TEST is not set +CONFIG_APPLE_PROPERTIES=y CONFIG_UEFI_CPER=y +CONFIG_EFI_DEV_PATH_PARSER=y + +# +# Tegra firmware driver +# # # File systems @@ -7114,6 +7221,7 @@ CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=m CONFIG_CUSE=m CONFIG_OVERLAY_FS=m +CONFIG_OVERLAY_FS_REDIRECT_DIR=y # # Caches @@ -7197,7 +7305,7 @@ CONFIG_UBIFS_FS=m CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS_ZLIB=y CONFIG_UBIFS_ATIME_SUPPORT=y -CONFIG_LOGFS=m +CONFIG_UBIFS_FS_ENCRYPTION=y CONFIG_CRAMFS=m CONFIG_SQUASHFS=m # CONFIG_SQUASHFS_FILE_CACHE is not set @@ -7370,6 +7478,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y # printk and dmesg options # CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 # CONFIG_BOOT_PRINTK_DELAY is not set CONFIG_DYNAMIC_DEBUG=y @@ -7568,6 +7677,7 @@ CONFIG_TEST_KSTRTOX=m # CONFIG_TEST_UDELAY is not set # CONFIG_MEMTEST is not set # CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set @@ -7665,6 +7775,7 @@ CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=m CONFIG_CRYPTO_KPP2=y CONFIG_CRYPTO_KPP=m +CONFIG_CRYPTO_ACOMP2=y CONFIG_CRYPTO_RSA=m CONFIG_CRYPTO_DH=m CONFIG_CRYPTO_ECDH=m @@ -7682,6 +7793,7 @@ CONFIG_CRYPTO_MCRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m CONFIG_CRYPTO_ABLK_HELPER=m +CONFIG_CRYPTO_SIMD=m CONFIG_CRYPTO_GLUE_HELPER_X86=m # @@ -7709,7 +7821,7 @@ CONFIG_CRYPTO_KEYWRAP=m # Hash modes # CONFIG_CRYPTO_CMAC=m -CONFIG_CRYPTO_HMAC=m +CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_VMAC=m @@ -7732,14 +7844,14 @@ CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD256=m CONFIG_CRYPTO_RMD320=m -CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA1_SSSE3=m CONFIG_CRYPTO_SHA256_SSSE3=m CONFIG_CRYPTO_SHA512_SSSE3=m CONFIG_CRYPTO_SHA1_MB=m CONFIG_CRYPTO_SHA256_MB=m CONFIG_CRYPTO_SHA512_MB=m -CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_SHA3=m CONFIG_CRYPTO_TGR192=m @@ -7815,6 +7927,7 @@ CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set CONFIG_CRYPTO_DEV_CCP=y CONFIG_CRYPTO_DEV_CCP_DD=m CONFIG_CRYPTO_DEV_CCP_CRYPTO=m @@ -7826,6 +7939,7 @@ CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_CHELSIO=m +CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m CONFIG_X509_CERTIFICATE_PARSER=m diff --git a/intel-pstate-backport.patch b/intel-pstate-backport.patch index 9e466e174119..cf1427867261 100644 --- a/intel-pstate-backport.patch +++ b/intel-pstate-backport.patch @@ -1,148 +1,1117 @@ ---- linux-4.8/drivers/cpufreq/intel_pstate.c.orig 2016-10-02 19:24:33.000000000 -0400 -+++ linux-4.8/drivers/cpufreq/intel_pstate.c 2016-10-09 19:32:01.073141319 -0400 -@@ -181,6 +181,8 @@ - * @cpu: CPU number for this instance data - * @update_util: CPUFreq utility callback information - * @update_util_set: CPUFreq utility callback is set -+ * @iowait_boost: iowait-related boost fraction -+ * @last_update: Time of the last update. - * @pstate: Stores P state limits for this CPU - * @vid: Stores VID limits for this CPU - * @pid: Stores PID parameters for this CPU -@@ -206,6 +208,7 @@ - struct vid_data vid; - struct _pid pid; - -+ u64 last_update; - u64 last_sample_time; - u64 prev_aperf; - u64 prev_mperf; -@@ -216,6 +219,7 @@ - struct acpi_processor_performance acpi_perf_data; - bool valid_pss_table; - #endif -+ unsigned int iowait_boost; - }; +--- drivers/cpufreq/intel_pstate.c.orig 2017-02-19 17:34:00.000000000 -0500 ++++ drivers/cpufreq/intel_pstate.c 2017-03-23 23:47:19.095511820 -0400 +@@ -19,7 +19,7 @@ + #include <linux/hrtimer.h> + #include <linux/tick.h> + #include <linux/slab.h> +-#include <linux/sched.h> ++#include <linux/sched/cpufreq.h> + #include <linux/list.h> + #include <linux/cpu.h> + #include <linux/cpufreq.h> +@@ -39,11 +39,6 @@ - static struct cpudata **all_cpu_data; -@@ -229,6 +233,7 @@ - * @p_gain_pct: PID proportional gain - * @i_gain_pct: PID integral gain - * @d_gain_pct: PID derivative gain -+ * @boost_iowait: Whether or not to use iowait boosting. - * - * Stores per CPU model static PID configuration data. - */ -@@ -240,6 +245,7 @@ - int p_gain_pct; - int d_gain_pct; - int i_gain_pct; -+ bool boost_iowait; - }; + #define INTEL_CPUFREQ_TRANSITION_LATENCY 20000 + +-#define ATOM_RATIOS 0x66a +-#define ATOM_VIDS 0x66b +-#define ATOM_TURBO_RATIOS 0x66c +-#define ATOM_TURBO_VIDS 0x66d +- + #ifdef CONFIG_ACPI + #include <acpi/processor.h> + #include <acpi/cppc_acpi.h> +@@ -89,6 +84,11 @@ + return div64_u64(x << EXT_FRAC_BITS, y); + } ++static inline int32_t percent_ext_fp(int percent) ++{ ++ return div_ext_fp(percent, 100); ++} ++ /** -@@ -1029,7 +1035,7 @@ - }, - }; + * struct sample - Store performance sample + * @core_avg_perf: Ratio of APERF/MPERF which is the actual average +@@ -358,42 +358,24 @@ + static int hwp_active __read_mostly; + static bool per_cpu_limits __read_mostly; --static struct cpu_defaults silvermont_params = { -+static const struct cpu_defaults silvermont_params = { - .pid_policy = { - .sample_rate_ms = 10, - .deadband = 0, -@@ -1037,6 +1043,7 @@ - .p_gain_pct = 14, - .d_gain_pct = 0, - .i_gain_pct = 4, -+ .boost_iowait = true, - }, - .funcs = { - .get_max = atom_get_max_pstate, -@@ -1050,7 +1057,7 @@ - }, - }; ++static bool driver_registered __read_mostly; ++ + #ifdef CONFIG_ACPI + static bool acpi_ppc; + #endif + +-static struct perf_limits performance_limits = { +- .no_turbo = 0, +- .turbo_disabled = 0, +- .max_perf_pct = 100, +- .max_perf = int_ext_tofp(1), +- .min_perf_pct = 100, +- .min_perf = int_ext_tofp(1), +- .max_policy_pct = 100, +- .max_sysfs_pct = 100, +- .min_policy_pct = 0, +- .min_sysfs_pct = 0, +-}; +- +-static struct perf_limits powersave_limits = { +- .no_turbo = 0, +- .turbo_disabled = 0, +- .max_perf_pct = 100, +- .max_perf = int_ext_tofp(1), +- .min_perf_pct = 0, +- .min_perf = 0, +- .max_policy_pct = 100, +- .max_sysfs_pct = 100, +- .min_policy_pct = 0, +- .min_sysfs_pct = 0, +-}; ++static struct perf_limits global; + +-#ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE +-static struct perf_limits *limits = &performance_limits; +-#else +-static struct perf_limits *limits = &powersave_limits; +-#endif ++static void intel_pstate_init_limits(struct perf_limits *limits) ++{ ++ memset(limits, 0, sizeof(*limits)); ++ limits->max_perf_pct = 100; ++ limits->max_perf = int_ext_tofp(1); ++ limits->max_policy_pct = 100; ++ limits->max_sysfs_pct = 100; ++} + ++static DEFINE_MUTEX(intel_pstate_driver_lock); + static DEFINE_MUTEX(intel_pstate_limits_lock); + + #ifdef CONFIG_ACPI +@@ -515,7 +497,7 @@ + * correct max turbo frequency based on the turbo state. + * Also need to convert to MHz as _PSS freq is in MHz. + */ +- if (!limits->turbo_disabled) ++ if (!global.turbo_disabled) + cpu->acpi_perf_data.states[0].core_frequency = + policy->cpuinfo.max_freq / 1000; + cpu->valid_pss_table = true; +@@ -538,7 +520,6 @@ + + acpi_processor_unregister_performance(policy->cpu); + } +- + #else + static inline void intel_pstate_init_acpi_perf_limits(struct cpufreq_policy *policy) + { +@@ -635,7 +616,7 @@ + + cpu = all_cpu_data[0]; + rdmsrl(MSR_IA32_MISC_ENABLE, misc_en); +- limits->turbo_disabled = ++ global.turbo_disabled = + (misc_en & MSR_IA32_MISC_ENABLE_TURBO_DISABLE || + cpu->pstate.max_pstate == cpu->pstate.turbo_pstate); + } +@@ -859,12 +840,11 @@ + + static void intel_pstate_hwp_set(struct cpufreq_policy *policy) + { +- int min, hw_min, max, hw_max, cpu, range, adj_range; +- struct perf_limits *perf_limits = limits; ++ int min, hw_min, max, hw_max, cpu; ++ struct perf_limits *perf_limits = &global; + u64 value, cap; + + for_each_cpu(cpu, policy->cpus) { +- int max_perf_pct, min_perf_pct; + struct cpudata *cpu_data = all_cpu_data[cpu]; + s16 epp; --static struct cpu_defaults airmont_params = { -+static const struct cpu_defaults airmont_params = { - .pid_policy = { - .sample_rate_ms = 10, - .deadband = 0, -@@ -1058,6 +1065,7 @@ - .p_gain_pct = 14, - .d_gain_pct = 0, - .i_gain_pct = 4, -+ .boost_iowait = true, - }, - .funcs = { - .get_max = atom_get_max_pstate, -@@ -1071,7 +1079,7 @@ - }, +@@ -873,26 +853,22 @@ + + rdmsrl_on_cpu(cpu, MSR_HWP_CAPABILITIES, &cap); + hw_min = HWP_LOWEST_PERF(cap); +- hw_max = HWP_HIGHEST_PERF(cap); +- range = hw_max - hw_min; ++ if (global.no_turbo) ++ hw_max = HWP_GUARANTEED_PERF(cap); ++ else ++ hw_max = HWP_HIGHEST_PERF(cap); + +- max_perf_pct = perf_limits->max_perf_pct; +- min_perf_pct = perf_limits->min_perf_pct; ++ max = fp_ext_toint(hw_max * perf_limits->max_perf); ++ if (cpu_data->policy == CPUFREQ_POLICY_PERFORMANCE) ++ min = max; ++ else ++ min = fp_ext_toint(hw_max * perf_limits->min_perf); + + rdmsrl_on_cpu(cpu, MSR_HWP_REQUEST, &value); +- adj_range = min_perf_pct * range / 100; +- min = hw_min + adj_range; ++ + value &= ~HWP_MIN_PERF(~0L); + value |= HWP_MIN_PERF(min); + +- adj_range = max_perf_pct * range / 100; +- max = hw_min + adj_range; +- if (limits->no_turbo) { +- hw_max = HWP_GUARANTEED_PERF(cap); +- if (hw_max < max) +- max = hw_max; +- } +- + value &= ~HWP_MAX_PERF(~0L); + value |= HWP_MAX_PERF(max); + +@@ -996,6 +972,7 @@ + static int pid_param_set(void *data, u64 val) + { + *(u32 *)data = val; ++ pid_params.sample_rate_ns = pid_params.sample_rate_ms * NSEC_PER_MSEC; + intel_pstate_reset_all_pid(); + return 0; + } +@@ -1007,35 +984,57 @@ + } + DEFINE_SIMPLE_ATTRIBUTE(fops_pid_param, pid_param_get, pid_param_set, "%llu\n"); + ++static struct dentry *debugfs_parent; ++ + struct pid_param { + char *name; + void *value; ++ struct dentry *dentry; }; --static struct cpu_defaults knl_params = { -+static const struct cpu_defaults knl_params = { - .pid_policy = { - .sample_rate_ms = 10, - .deadband = 0, -@@ -1091,7 +1099,7 @@ - }, + static struct pid_param pid_files[] = { +- {"sample_rate_ms", &pid_params.sample_rate_ms}, +- {"d_gain_pct", &pid_params.d_gain_pct}, +- {"i_gain_pct", &pid_params.i_gain_pct}, +- {"deadband", &pid_params.deadband}, +- {"setpoint", &pid_params.setpoint}, +- {"p_gain_pct", &pid_params.p_gain_pct}, +- {NULL, NULL} ++ {"sample_rate_ms", &pid_params.sample_rate_ms, }, ++ {"d_gain_pct", &pid_params.d_gain_pct, }, ++ {"i_gain_pct", &pid_params.i_gain_pct, }, ++ {"deadband", &pid_params.deadband, }, ++ {"setpoint", &pid_params.setpoint, }, ++ {"p_gain_pct", &pid_params.p_gain_pct, }, ++ {NULL, NULL, } }; --static struct cpu_defaults bxt_params = { -+static const struct cpu_defaults bxt_params = { - .pid_policy = { - .sample_rate_ms = 10, - .deadband = 0, -@@ -1099,6 +1107,7 @@ - .p_gain_pct = 14, - .d_gain_pct = 0, - .i_gain_pct = 4, -+ .boost_iowait = true, - }, - .funcs = { - .get_max = core_get_max_pstate, -@@ -1222,36 +1231,18 @@ - static inline int32_t get_target_pstate_use_cpu_load(struct cpudata *cpu) - { - struct sample *sample = &cpu->sample; -- u64 cummulative_iowait, delta_iowait_us; -- u64 delta_iowait_mperf; -- u64 mperf, now; -- int32_t cpu_load; -+ int32_t busy_frac, boost; - -- cummulative_iowait = get_cpu_iowait_time_us(cpu->cpu, &now); -+ busy_frac = div_fp(sample->mperf, sample->tsc); +-static void __init intel_pstate_debug_expose_params(void) ++static void intel_pstate_debug_expose_params(void) + { +- struct dentry *debugfs_parent; +- int i = 0; ++ int i; + + debugfs_parent = debugfs_create_dir("pstate_snb", NULL); + if (IS_ERR_OR_NULL(debugfs_parent)) + return; +- while (pid_files[i].name) { +- debugfs_create_file(pid_files[i].name, 0660, +- debugfs_parent, pid_files[i].value, +- &fops_pid_param); +- i++; ++ ++ for (i = 0; pid_files[i].name; i++) { ++ struct dentry *dentry; ++ ++ dentry = debugfs_create_file(pid_files[i].name, 0660, ++ debugfs_parent, pid_files[i].value, ++ &fops_pid_param); ++ if (!IS_ERR(dentry)) ++ pid_files[i].dentry = dentry; ++ } ++} ++ ++static void intel_pstate_debug_hide_params(void) ++{ ++ int i; ++ ++ if (IS_ERR_OR_NULL(debugfs_parent)) ++ return; ++ ++ for (i = 0; pid_files[i].name; i++) { ++ debugfs_remove(pid_files[i].dentry); ++ pid_files[i].dentry = NULL; + } ++ ++ debugfs_remove(debugfs_parent); ++ debugfs_parent = NULL; + } -- /* -- * Convert iowait time into number of IO cycles spent at max_freq. -- * IO is considered as busy only for the cpu_load algorithm. For -- * performance this is not needed since we always try to reach the -- * maximum P-State, so we are already boosting the IOs. -- */ -- delta_iowait_us = cummulative_iowait - cpu->prev_cummulative_iowait; -- delta_iowait_mperf = div64_u64(delta_iowait_us * cpu->pstate.scaling * -- cpu->pstate.max_pstate, MSEC_PER_SEC); + /************************** debugfs end ************************/ +@@ -1045,9 +1044,37 @@ + static ssize_t show_##file_name \ + (struct kobject *kobj, struct attribute *attr, char *buf) \ + { \ +- return sprintf(buf, "%u\n", limits->object); \ ++ return sprintf(buf, "%u\n", global.object); \ + } + ++static ssize_t intel_pstate_show_status(char *buf); ++static int intel_pstate_update_status(const char *buf, size_t size); ++ ++static ssize_t show_status(struct kobject *kobj, ++ struct attribute *attr, char *buf) ++{ ++ ssize_t ret; ++ ++ mutex_lock(&intel_pstate_driver_lock); ++ ret = intel_pstate_show_status(buf); ++ mutex_unlock(&intel_pstate_driver_lock); ++ ++ return ret; ++} ++ ++static ssize_t store_status(struct kobject *a, struct attribute *b, ++ const char *buf, size_t count) ++{ ++ char *p = memchr(buf, '\n', count); ++ int ret; ++ ++ mutex_lock(&intel_pstate_driver_lock); ++ ret = intel_pstate_update_status(buf, p ? p - buf : count); ++ mutex_unlock(&intel_pstate_driver_lock); ++ ++ return ret < 0 ? ret : count; ++} ++ + static ssize_t show_turbo_pct(struct kobject *kobj, + struct attribute *attr, char *buf) + { +@@ -1055,12 +1082,22 @@ + int total, no_turbo, turbo_pct; + uint32_t turbo_fp; + ++ mutex_lock(&intel_pstate_driver_lock); ++ ++ if (!driver_registered) { ++ mutex_unlock(&intel_pstate_driver_lock); ++ return -EAGAIN; ++ } ++ + cpu = all_cpu_data[0]; + + 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(no_turbo, total); + turbo_pct = 100 - fp_toint(mul_fp(turbo_fp, int_tofp(100))); ++ ++ mutex_unlock(&intel_pstate_driver_lock); ++ + return sprintf(buf, "%u\n", turbo_pct); + } + +@@ -1070,8 +1107,18 @@ + struct cpudata *cpu; + int total; + ++ mutex_lock(&intel_pstate_driver_lock); ++ ++ if (!driver_registered) { ++ mutex_unlock(&intel_pstate_driver_lock); ++ return -EAGAIN; ++ } ++ + cpu = all_cpu_data[0]; + total = cpu->pstate.turbo_pstate - cpu->pstate.min_pstate + 1; ++ ++ mutex_unlock(&intel_pstate_driver_lock); ++ + return sprintf(buf, "%u\n", total); + } + +@@ -1080,11 +1127,20 @@ + { + ssize_t ret; + ++ mutex_lock(&intel_pstate_driver_lock); ++ ++ if (!driver_registered) { ++ mutex_unlock(&intel_pstate_driver_lock); ++ return -EAGAIN; ++ } ++ + update_turbo_state(); +- if (limits->turbo_disabled) +- ret = sprintf(buf, "%u\n", limits->turbo_disabled); ++ if (global.turbo_disabled) ++ ret = sprintf(buf, "%u\n", global.turbo_disabled); + else +- ret = sprintf(buf, "%u\n", limits->no_turbo); ++ ret = sprintf(buf, "%u\n", global.no_turbo); ++ ++ mutex_unlock(&intel_pstate_driver_lock); + + return ret; + } +@@ -1099,21 +1155,31 @@ + if (ret != 1) + return -EINVAL; + ++ mutex_lock(&intel_pstate_driver_lock); ++ ++ if (!driver_registered) { ++ mutex_unlock(&intel_pstate_driver_lock); ++ return -EAGAIN; ++ } ++ + mutex_lock(&intel_pstate_limits_lock); + + update_turbo_state(); +- if (limits->turbo_disabled) { ++ if (global.turbo_disabled) { + pr_warn("Turbo disabled by BIOS or unavailable on processor\n"); + mutex_unlock(&intel_pstate_limits_lock); ++ mutex_unlock(&intel_pstate_driver_lock); + return -EPERM; + } + +- limits->no_turbo = clamp_t(int, input, 0, 1); ++ global.no_turbo = clamp_t(int, input, 0, 1); + + mutex_unlock(&intel_pstate_limits_lock); + + intel_pstate_update_policies(); + ++ mutex_unlock(&intel_pstate_driver_lock); ++ + return count; + } + +@@ -1127,21 +1193,27 @@ + if (ret != 1) + return -EINVAL; + ++ mutex_lock(&intel_pstate_driver_lock); ++ ++ if (!driver_registered) { ++ mutex_unlock(&intel_pstate_driver_lock); ++ return -EAGAIN; ++ } ++ + mutex_lock(&intel_pstate_limits_lock); + +- limits->max_sysfs_pct = clamp_t(int, input, 0 , 100); +- limits->max_perf_pct = min(limits->max_policy_pct, +- limits->max_sysfs_pct); +- limits->max_perf_pct = max(limits->min_policy_pct, +- limits->max_perf_pct); +- limits->max_perf_pct = max(limits->min_perf_pct, +- limits->max_perf_pct); +- limits->max_perf = div_ext_fp(limits->max_perf_pct, 100); ++ global.max_sysfs_pct = clamp_t(int, input, 0 , 100); ++ global.max_perf_pct = min(global.max_policy_pct, global.max_sysfs_pct); ++ global.max_perf_pct = max(global.min_policy_pct, global.max_perf_pct); ++ global.max_perf_pct = max(global.min_perf_pct, global.max_perf_pct); ++ global.max_perf = percent_ext_fp(global.max_perf_pct); + + mutex_unlock(&intel_pstate_limits_lock); + + intel_pstate_update_policies(); + ++ mutex_unlock(&intel_pstate_driver_lock); ++ + return count; + } + +@@ -1155,27 +1227,34 @@ + if (ret != 1) + return -EINVAL; + ++ mutex_lock(&intel_pstate_driver_lock); ++ ++ if (!driver_registered) { ++ mutex_unlock(&intel_pstate_driver_lock); ++ return -EAGAIN; ++ } ++ + mutex_lock(&intel_pstate_limits_lock); + +- limits->min_sysfs_pct = clamp_t(int, input, 0 , 100); +- limits->min_perf_pct = max(limits->min_policy_pct, +- limits->min_sysfs_pct); +- limits->min_perf_pct = min(limits->max_policy_pct, +- limits->min_perf_pct); +- limits->min_perf_pct = min(limits->max_perf_pct, +- limits->min_perf_pct); +- limits->min_perf = div_ext_fp(limits->min_perf_pct, 100); ++ global.min_sysfs_pct = clamp_t(int, input, 0 , 100); ++ global.min_perf_pct = max(global.min_policy_pct, global.min_sysfs_pct); ++ global.min_perf_pct = min(global.max_policy_pct, global.min_perf_pct); ++ global.min_perf_pct = min(global.max_perf_pct, global.min_perf_pct); ++ global.min_perf = percent_ext_fp(global.min_perf_pct); + + mutex_unlock(&intel_pstate_limits_lock); + + intel_pstate_update_policies(); + ++ mutex_unlock(&intel_pstate_driver_lock); ++ + return count; + } + + show_one(max_perf_pct, max_perf_pct); + show_one(min_perf_pct, min_perf_pct); + ++define_one_global_rw(status); + define_one_global_rw(no_turbo); + define_one_global_rw(max_perf_pct); + define_one_global_rw(min_perf_pct); +@@ -1183,6 +1262,7 @@ + define_one_global_ro(num_pstates); + + static struct attribute *intel_pstate_attributes[] = { ++ &status.attr, + &no_turbo.attr, + &turbo_pct.attr, + &num_pstates.attr, +@@ -1258,7 +1338,7 @@ + { + u64 value; + +- rdmsrl(ATOM_RATIOS, value); ++ rdmsrl(MSR_ATOM_CORE_RATIOS, value); + return (value >> 8) & 0x7F; + } + +@@ -1266,7 +1346,7 @@ + { + u64 value; + +- rdmsrl(ATOM_RATIOS, value); ++ rdmsrl(MSR_ATOM_CORE_RATIOS, value); + return (value >> 16) & 0x7F; + } + +@@ -1274,7 +1354,7 @@ + { + u64 value; + +- rdmsrl(ATOM_TURBO_RATIOS, value); ++ rdmsrl(MSR_ATOM_CORE_TURBO_RATIOS, value); + return value & 0x7F; + } + +@@ -1285,7 +1365,7 @@ + u32 vid; + + val = (u64)pstate << 8; +- if (limits->no_turbo && !limits->turbo_disabled) ++ if (global.no_turbo && !global.turbo_disabled) + val |= (u64)1 << 32; + + vid_fp = cpudata->vid.min + mul_fp( +@@ -1336,7 +1416,7 @@ + { + u64 value; + +- rdmsrl(ATOM_VIDS, value); ++ rdmsrl(MSR_ATOM_CORE_VIDS, value); + cpudata->vid.min = int_tofp((value >> 8) & 0x7f); + cpudata->vid.max = int_tofp((value >> 16) & 0x7f); + cpudata->vid.ratio = div_fp( +@@ -1344,7 +1424,7 @@ + int_tofp(cpudata->pstate.max_pstate - + cpudata->pstate.min_pstate)); + +- rdmsrl(ATOM_TURBO_VIDS, value); ++ rdmsrl(MSR_ATOM_CORE_TURBO_VIDS, value); + cpudata->vid.turbo = value & 0x7f; + } + +@@ -1364,48 +1444,71 @@ + return (value >> 8) & 0xFF; + } + ++static int core_get_tdp_ratio(u64 plat_info) ++{ ++ /* Check how many TDP levels present */ ++ if (plat_info & 0x600000000) { ++ u64 tdp_ctrl; ++ u64 tdp_ratio; ++ int tdp_msr; ++ int err; ++ ++ /* Get the TDP level (0, 1, 2) to get ratios */ ++ err = rdmsrl_safe(MSR_CONFIG_TDP_CONTROL, &tdp_ctrl); ++ if (err) ++ return err; ++ ++ /* TDP MSR are continuous starting at 0x648 */ ++ tdp_msr = MSR_CONFIG_TDP_NOMINAL + (tdp_ctrl & 0x03); ++ err = rdmsrl_safe(tdp_msr, &tdp_ratio); ++ if (err) ++ return err; ++ ++ /* For level 1 and 2, bits[23:16] contain the ratio */ ++ if (tdp_ctrl & 0x03) ++ tdp_ratio >>= 16; ++ ++ tdp_ratio &= 0xff; /* ratios are only 8 bits long */ ++ pr_debug("tdp_ratio %x\n", (int)tdp_ratio); ++ ++ return (int)tdp_ratio; ++ } ++ ++ return -ENXIO; ++} ++ + static int core_get_max_pstate(void) + { + u64 tar; + u64 plat_info; + int max_pstate; ++ int tdp_ratio; + int err; + + rdmsrl(MSR_PLATFORM_INFO, plat_info); + max_pstate = (plat_info >> 8) & 0xFF; + ++ tdp_ratio = core_get_tdp_ratio(plat_info); ++ if (tdp_ratio <= 0) ++ return max_pstate; ++ ++ if (hwp_active) { ++ /* Turbo activation ratio is not used on HWP platforms */ ++ return tdp_ratio; ++ } ++ + err = rdmsrl_safe(MSR_TURBO_ACTIVATION_RATIO, &tar); + if (!err) { ++ int tar_levels; ++ + /* Do some sanity checking for safety */ +- if (plat_info & 0x600000000) { +- u64 tdp_ctrl; +- u64 tdp_ratio; +- int tdp_msr; +- +- err = rdmsrl_safe(MSR_CONFIG_TDP_CONTROL, &tdp_ctrl); +- if (err) +- goto skip_tar; +- +- tdp_msr = MSR_CONFIG_TDP_NOMINAL + (tdp_ctrl & 0x3); +- err = rdmsrl_safe(tdp_msr, &tdp_ratio); +- if (err) +- goto skip_tar; +- +- /* For level 1 and 2, bits[23:16] contain the ratio */ +- if (tdp_ctrl) +- tdp_ratio >>= 16; - -- mperf = cpu->sample.mperf + delta_iowait_mperf; -- cpu->prev_cummulative_iowait = cummulative_iowait; -+ boost = cpu->iowait_boost; -+ cpu->iowait_boost >>= 1; +- tdp_ratio &= 0xff; /* ratios are only 8 bits long */ +- if (tdp_ratio - 1 == tar) { +- max_pstate = tar; +- pr_debug("max_pstate=TAC %x\n", max_pstate); +- } else { +- goto skip_tar; +- } ++ tar_levels = tar & 0xff; ++ if (tdp_ratio - 1 == tar_levels) { ++ max_pstate = tar_levels; ++ pr_debug("max_pstate=TAC %x\n", max_pstate); + } + } + +-skip_tar: + return max_pstate; + } + +@@ -1432,7 +1535,7 @@ + u64 val; + + val = (u64)pstate << 8; +- if (limits->no_turbo && !limits->turbo_disabled) ++ if (global.no_turbo && !global.turbo_disabled) + val |= (u64)1 << 32; + + return val; +@@ -1558,9 +1661,9 @@ + int max_perf = cpu->pstate.turbo_pstate; + int max_perf_adj; + int min_perf; +- struct perf_limits *perf_limits = limits; ++ struct perf_limits *perf_limits = &global; + +- if (limits->no_turbo || limits->turbo_disabled) ++ if (global.no_turbo || global.turbo_disabled) + max_perf = cpu->pstate.max_pstate; + + if (per_cpu_limits) +@@ -1695,7 +1798,7 @@ + + sample->busy_scaled = busy_frac * 100; + +- target = limits->no_turbo || limits->turbo_disabled ? ++ target = global.no_turbo || global.turbo_disabled ? + cpu->pstate.max_pstate : cpu->pstate.turbo_pstate; + target += target >> 2; + target = mul_fp(target, busy_frac); +@@ -1759,13 +1862,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); + return pstate; + } + + static void intel_pstate_update_pstate(struct cpudata *cpu, int pstate) + { +- pstate = intel_pstate_prepare_request(cpu, pstate); + if (pstate == cpu->pstate.current_pstate) + return; + +@@ -1785,6 +1886,8 @@ + + update_turbo_state(); + ++ target_pstate = intel_pstate_prepare_request(cpu, target_pstate); ++ trace_cpu_frequency(target_pstate * cpu->pstate.scaling, cpu->cpu); + intel_pstate_update_pstate(cpu, target_pstate); + + sample = &cpu->sample; +@@ -1952,53 +2055,37 @@ + synchronize_sched(); + } + +-static void intel_pstate_set_performance_limits(struct perf_limits *limits) +-{ +- limits->no_turbo = 0; +- limits->turbo_disabled = 0; +- limits->max_perf_pct = 100; +- limits->max_perf = int_ext_tofp(1); +- limits->min_perf_pct = 100; +- limits->min_perf = int_ext_tofp(1); +- limits->max_policy_pct = 100; +- limits->max_sysfs_pct = 100; +- limits->min_policy_pct = 0; +- limits->min_sysfs_pct = 0; +-} +- + static void intel_pstate_update_perf_limits(struct cpufreq_policy *policy, + struct perf_limits *limits) + { ++ int32_t max_policy_perf, min_policy_perf; + +- limits->max_policy_pct = DIV_ROUND_UP(policy->max * 100, +- policy->cpuinfo.max_freq); +- limits->max_policy_pct = clamp_t(int, limits->max_policy_pct, 0, 100); ++ max_policy_perf = div_ext_fp(policy->max, policy->cpuinfo.max_freq); ++ max_policy_perf = clamp_t(int32_t, max_policy_perf, 0, int_ext_tofp(1)); + if (policy->max == policy->min) { +- limits->min_policy_pct = limits->max_policy_pct; ++ min_policy_perf = max_policy_perf; + } else { +- limits->min_policy_pct = DIV_ROUND_UP(policy->min * 100, +- policy->cpuinfo.max_freq); +- limits->min_policy_pct = clamp_t(int, limits->min_policy_pct, +- 0, 100); +- } +- +- /* Normalize user input to [min_policy_pct, max_policy_pct] */ +- limits->min_perf_pct = max(limits->min_policy_pct, +- limits->min_sysfs_pct); +- limits->min_perf_pct = min(limits->max_policy_pct, +- limits->min_perf_pct); +- limits->max_perf_pct = min(limits->max_policy_pct, +- limits->max_sysfs_pct); +- limits->max_perf_pct = max(limits->min_policy_pct, +- limits->max_perf_pct); ++ min_policy_perf = div_ext_fp(policy->min, ++ policy->cpuinfo.max_freq); ++ min_policy_perf = clamp_t(int32_t, min_policy_perf, ++ 0, max_policy_perf); ++ } ++ ++ /* Normalize user input to [min_perf, max_perf] */ ++ limits->min_perf = max(min_policy_perf, ++ percent_ext_fp(limits->min_sysfs_pct)); ++ limits->min_perf = min(limits->min_perf, max_policy_perf); ++ limits->max_perf = min(max_policy_perf, ++ percent_ext_fp(limits->max_sysfs_pct)); ++ limits->max_perf = max(min_policy_perf, limits->max_perf); + +- /* Make sure min_perf_pct <= max_perf_pct */ +- limits->min_perf_pct = min(limits->max_perf_pct, limits->min_perf_pct); ++ /* Make sure min_perf <= max_perf */ ++ limits->min_perf = min(limits->min_perf, limits->max_perf); + +- limits->min_perf = div_ext_fp(limits->min_perf_pct, 100); +- limits->max_perf = div_ext_fp(limits->max_perf_pct, 100); + limits->max_perf = round_up(limits->max_perf, EXT_FRAC_BITS); + limits->min_perf = round_up(limits->min_perf, EXT_FRAC_BITS); ++ limits->max_perf_pct = fp_ext_toint(limits->max_perf * 100); ++ limits->min_perf_pct = fp_ext_toint(limits->min_perf * 100); + + pr_debug("cpu:%d max_perf_pct:%d min_perf_pct:%d\n", policy->cpu, + limits->max_perf_pct, limits->min_perf_pct); +@@ -2007,7 +2094,7 @@ + static int intel_pstate_set_policy(struct cpufreq_policy *policy) + { + struct cpudata *cpu; +- struct perf_limits *perf_limits = NULL; ++ struct perf_limits *perf_limits = &global; + + if (!policy->cpuinfo.max_freq) + return -ENODEV; +@@ -2030,28 +2117,8 @@ + + mutex_lock(&intel_pstate_limits_lock); + +- if (policy->policy == CPUFREQ_POLICY_PERFORMANCE) { +- if (!perf_limits) { +- limits = &performance_limits; +- perf_limits = limits; +- } +- if (policy->max >= policy->cpuinfo.max_freq && +- !limits->no_turbo) { +- pr_debug("set performance\n"); +- intel_pstate_set_performance_limits(perf_limits); +- goto out; +- } +- } else { +- pr_debug("set powersave\n"); +- if (!perf_limits) { +- limits = &powersave_limits; +- perf_limits = limits; +- } +- +- } +- + intel_pstate_update_perf_limits(policy, perf_limits); +- out: ++ + if (cpu->policy == CPUFREQ_POLICY_PERFORMANCE) { + /* + * NOHZ_FULL CPUs need this as the governor callback may not +@@ -2072,6 +2139,13 @@ + + static int intel_pstate_verify_policy(struct cpufreq_policy *policy) + { ++ struct cpudata *cpu = all_cpu_data[policy->cpu]; ++ ++ update_turbo_state(); ++ policy->cpuinfo.max_freq = global.turbo_disabled || global.no_turbo ? ++ cpu->pstate.max_freq : ++ cpu->pstate.turbo_freq; ++ + cpufreq_verify_within_cpu_limits(policy); + + if (policy->policy != CPUFREQ_POLICY_POWERSAVE && +@@ -2083,9 +2157,9 @@ + unsigned int max_freq, min_freq; + + max_freq = policy->cpuinfo.max_freq * +- limits->max_sysfs_pct / 100; ++ global.max_sysfs_pct / 100; + min_freq = policy->cpuinfo.max_freq * +- limits->min_sysfs_pct / 100; ++ global.min_sysfs_pct / 100; + cpufreq_verify_within_limits(policy, min_freq, max_freq); + } + +@@ -2128,13 +2202,8 @@ + + cpu = all_cpu_data[policy->cpu]; - /* -- * The load can be estimated as the ratio of the mperf counter -- * running at a constant frequency during active periods -- * (C0) and the time stamp counter running at the same frequency -- * also during C-states. +- * We need sane value in the cpu->perf_limits, so inherit from global +- * perf_limits limits, which are seeded with values based on the +- * CONFIG_CPU_FREQ_DEFAULT_GOV_*, during boot up. - */ -- cpu_load = div64_u64(int_tofp(100) * mperf, sample->tsc); -- cpu->sample.busy_scaled = cpu_load; -+ if (busy_frac < boost) -+ busy_frac = boost; + if (per_cpu_limits) +- memcpy(cpu->perf_limits, limits, sizeof(struct perf_limits)); ++ intel_pstate_init_limits(cpu->perf_limits); + + policy->min = cpu->pstate.min_pstate * cpu->pstate.scaling; + policy->max = cpu->pstate.turbo_pstate * cpu->pstate.scaling; +@@ -2142,7 +2211,7 @@ + /* cpuinfo and default policy values */ + policy->cpuinfo.min_freq = cpu->pstate.min_pstate * cpu->pstate.scaling; + update_turbo_state(); +- policy->cpuinfo.max_freq = limits->turbo_disabled ? ++ policy->cpuinfo.max_freq = global.turbo_disabled ? + cpu->pstate.max_pstate : cpu->pstate.turbo_pstate; + policy->cpuinfo.max_freq *= cpu->pstate.scaling; + +@@ -2162,7 +2231,7 @@ + return ret; + + policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; +- if (limits->min_perf_pct == 100 && limits->max_perf_pct == 100) ++ if (IS_ENABLED(CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE)) + policy->policy = CPUFREQ_POLICY_PERFORMANCE; + else + policy->policy = CPUFREQ_POLICY_POWERSAVE; +@@ -2186,46 +2255,16 @@ + static int intel_cpufreq_verify_policy(struct cpufreq_policy *policy) + { + struct cpudata *cpu = all_cpu_data[policy->cpu]; +- struct perf_limits *perf_limits = limits; + + update_turbo_state(); +- policy->cpuinfo.max_freq = limits->turbo_disabled ? ++ policy->cpuinfo.max_freq = global.no_turbo || global.turbo_disabled ? + cpu->pstate.max_freq : cpu->pstate.turbo_freq; + + cpufreq_verify_within_cpu_limits(policy); + +- if (per_cpu_limits) +- perf_limits = cpu->perf_limits; +- +- mutex_lock(&intel_pstate_limits_lock); +- +- intel_pstate_update_perf_limits(policy, perf_limits); +- +- mutex_unlock(&intel_pstate_limits_lock); +- + return 0; + } + +-static unsigned int intel_cpufreq_turbo_update(struct cpudata *cpu, +- struct cpufreq_policy *policy, +- unsigned int target_freq) +-{ +- unsigned int max_freq; +- +- update_turbo_state(); +- +- max_freq = limits->no_turbo || limits->turbo_disabled ? +- cpu->pstate.max_freq : cpu->pstate.turbo_freq; +- policy->cpuinfo.max_freq = max_freq; +- if (policy->max > max_freq) +- policy->max = max_freq; +- +- if (target_freq > max_freq) +- target_freq = max_freq; +- +- return target_freq; +-} +- + static int intel_cpufreq_target(struct cpufreq_policy *policy, + unsigned int target_freq, + unsigned int relation) +@@ -2234,8 +2273,10 @@ + struct cpufreq_freqs freqs; + int target_pstate; + ++ update_turbo_state(); ++ + freqs.old = policy->cur; +- freqs.new = intel_cpufreq_turbo_update(cpu, policy, target_freq); ++ freqs.new = target_freq; + + cpufreq_freq_transition_begin(policy, &freqs); + switch (relation) { +@@ -2255,6 +2296,7 @@ + wrmsrl_on_cpu(policy->cpu, MSR_IA32_PERF_CTL, + pstate_funcs.get_val(cpu, target_pstate)); + } ++ freqs.new = target_pstate * cpu->pstate.scaling; + cpufreq_freq_transition_end(policy, &freqs, false); + + return 0; +@@ -2266,10 +2308,12 @@ + struct cpudata *cpu = all_cpu_data[policy->cpu]; + int target_pstate; + +- target_freq = intel_cpufreq_turbo_update(cpu, policy, target_freq); ++ update_turbo_state(); ++ + target_pstate = DIV_ROUND_UP(target_freq, cpu->pstate.scaling); ++ target_pstate = intel_pstate_prepare_request(cpu, target_pstate); + intel_pstate_update_pstate(cpu, target_pstate); +- return target_freq; ++ return target_pstate * cpu->pstate.scaling; + } + + static int intel_cpufreq_cpu_init(struct cpufreq_policy *policy) +@@ -2299,6 +2343,113 @@ + + static struct cpufreq_driver *intel_pstate_driver = &intel_pstate; + ++static void intel_pstate_driver_cleanup(void) ++{ ++ unsigned int cpu; ++ ++ get_online_cpus(); ++ for_each_online_cpu(cpu) { ++ if (all_cpu_data[cpu]) { ++ if (intel_pstate_driver == &intel_pstate) ++ intel_pstate_clear_update_util_hook(cpu); ++ ++ kfree(all_cpu_data[cpu]); ++ all_cpu_data[cpu] = NULL; ++ } ++ } ++ put_online_cpus(); ++} ++ ++static int intel_pstate_register_driver(void) ++{ ++ int ret; ++ ++ intel_pstate_init_limits(&global); ++ ++ ret = cpufreq_register_driver(intel_pstate_driver); ++ if (ret) { ++ intel_pstate_driver_cleanup(); ++ return ret; ++ } ++ ++ mutex_lock(&intel_pstate_limits_lock); ++ driver_registered = true; ++ mutex_unlock(&intel_pstate_limits_lock); ++ ++ if (intel_pstate_driver == &intel_pstate && !hwp_active && ++ pstate_funcs.get_target_pstate != get_target_pstate_use_cpu_load) ++ intel_pstate_debug_expose_params(); ++ ++ return 0; ++} ++ ++static int intel_pstate_unregister_driver(void) ++{ ++ if (hwp_active) ++ return -EBUSY; ++ ++ if (intel_pstate_driver == &intel_pstate && !hwp_active && ++ pstate_funcs.get_target_pstate != get_target_pstate_use_cpu_load) ++ intel_pstate_debug_hide_params(); ++ ++ mutex_lock(&intel_pstate_limits_lock); ++ driver_registered = false; ++ mutex_unlock(&intel_pstate_limits_lock); ++ ++ cpufreq_unregister_driver(intel_pstate_driver); ++ intel_pstate_driver_cleanup(); ++ ++ return 0; ++} ++ ++static ssize_t intel_pstate_show_status(char *buf) ++{ ++ if (!driver_registered) ++ return sprintf(buf, "off\n"); ++ ++ return sprintf(buf, "%s\n", intel_pstate_driver == &intel_pstate ? ++ "active" : "passive"); ++} ++ ++static int intel_pstate_update_status(const char *buf, size_t size) ++{ ++ int ret; ++ ++ if (size == 3 && !strncmp(buf, "off", size)) ++ return driver_registered ? ++ intel_pstate_unregister_driver() : -EINVAL; ++ ++ if (size == 6 && !strncmp(buf, "active", size)) { ++ if (driver_registered) { ++ if (intel_pstate_driver == &intel_pstate) ++ return 0; ++ ++ ret = intel_pstate_unregister_driver(); ++ if (ret) ++ return ret; ++ } ++ ++ intel_pstate_driver = &intel_pstate; ++ return intel_pstate_register_driver(); ++ } ++ ++ if (size == 7 && !strncmp(buf, "passive", size)) { ++ if (driver_registered) { ++ if (intel_pstate_driver != &intel_pstate) ++ return 0; ++ ++ ret = intel_pstate_unregister_driver(); ++ if (ret) ++ return ret; ++ } ++ ++ intel_pstate_driver = &intel_cpufreq; ++ return intel_pstate_register_driver(); ++ } ++ ++ return -EINVAL; ++} ++ + static int no_load __initdata; + static int no_hwp __initdata; + static int hwp_only __initdata; +@@ -2486,9 +2637,9 @@ + + static int __init intel_pstate_init(void) + { +- int cpu, rc = 0; + const struct x86_cpu_id *id; + struct cpu_defaults *cpu_def; ++ int rc = 0; -- return get_avg_pstate(cpu) - pid_calc(&cpu->pid, cpu_load); -+ sample->busy_scaled = busy_frac * 100; -+ return get_avg_pstate(cpu) - pid_calc(&cpu->pid, sample->busy_scaled); + if (no_load) + return -ENODEV; +@@ -2520,45 +2671,29 @@ + if (intel_pstate_platform_pwr_mgmt_exists()) + return -ENODEV; + ++ if (!hwp_active && hwp_only) ++ return -ENOTSUPP; ++ + pr_info("Intel P-state driver initializing\n"); + + all_cpu_data = vzalloc(sizeof(void *) * num_possible_cpus()); + if (!all_cpu_data) + return -ENOMEM; + +- if (!hwp_active && hwp_only) +- goto out; +- + intel_pstate_request_control_from_smm(); + +- rc = cpufreq_register_driver(intel_pstate_driver); +- if (rc) +- goto out; +- +- if (intel_pstate_driver == &intel_pstate && !hwp_active && +- pstate_funcs.get_target_pstate != get_target_pstate_use_cpu_load) +- intel_pstate_debug_expose_params(); +- + intel_pstate_sysfs_expose_params(); + ++ mutex_lock(&intel_pstate_driver_lock); ++ rc = intel_pstate_register_driver(); ++ mutex_unlock(&intel_pstate_driver_lock); ++ if (rc) ++ return rc; ++ + if (hwp_active) + pr_info("HWP enabled\n"); + +- return rc; +-out: +- get_online_cpus(); +- for_each_online_cpu(cpu) { +- if (all_cpu_data[cpu]) { +- if (intel_pstate_driver == &intel_pstate) +- intel_pstate_clear_update_util_hook(cpu); +- +- kfree(all_cpu_data[cpu]); +- } +- } +- +- put_online_cpus(); +- vfree(all_cpu_data); +- return -ENODEV; ++ return 0; } + device_initcall(intel_pstate_init); - static inline int32_t get_target_pstate_use_performance(struct cpudata *cpu) diff --git a/linux-macbook.install b/linux.install index da6dcfa7b760..da6dcfa7b760 100644 --- a/linux-macbook.install +++ b/linux.install diff --git a/linux-macbook.preset b/linux.preset index 66709a8c1537..66709a8c1537 100644 --- a/linux-macbook.preset +++ b/linux.preset diff --git a/macbook-suspend.patch b/macbook-suspend.patch index 2b85a931d71d..7f3cc8dbc153 100644 --- a/macbook-suspend.patch +++ b/macbook-suspend.patch @@ -14,7 +14,7 @@ index ee72ebe..e347047 100644 @@ -3405,6 +3407,11 @@ void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) end = __end_pci_fixups_final; break; - + + case pci_fixup_assign: + start = __start_pci_fixups_assign; + end = __end_pci_fixups_assign; @@ -36,19 +36,18 @@ index 55641a3..730d6fd 100644 /* Fall through */ default: pbus_size_io(bus, realloc_head ? 0 : additional_io_size, -diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 6a67ab9..3ba05f0 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h -@@ -283,6 +283,9 @@ +@@ -299,6 +299,9 @@ VMLINUX_SYMBOL(__start_pci_fixups_final) = .; \ - *(.pci_fixup_final) \ + KEEP(*(.pci_fixup_final)) \ VMLINUX_SYMBOL(__end_pci_fixups_final) = .; \ + VMLINUX_SYMBOL(__start_pci_fixups_assign) = .; \ -+ *(.pci_fixup_assign) \ ++ KEEP(*(.pci_fixup_assign)) \ + VMLINUX_SYMBOL(__end_pci_fixups_assign) = .; \ VMLINUX_SYMBOL(__start_pci_fixups_enable) = .; \ - *(.pci_fixup_enable) \ + KEEP(*(.pci_fixup_enable)) \ VMLINUX_SYMBOL(__end_pci_fixups_enable) = .; \ diff --git a/include/linux/pci.h b/include/linux/pci.h index b67e4df..14a35bb 100644 @@ -77,10 +76,9 @@ index 48958d3..248acdb 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -877,6 +877,7 @@ static void check_section(const char *modname, struct elf_info *elf, - + #define ALL_PCI_INIT_SECTIONS \ ".pci_fixup_early", ".pci_fixup_header", ".pci_fixup_final", \ + ".pci_fixup_assign", \ ".pci_fixup_enable", ".pci_fixup_resume", \ ".pci_fixup_resume_early", ".pci_fixup_suspend" - diff --git a/net_handle_no_dst_on_skb_in_icmp6_send.patch b/net_handle_no_dst_on_skb_in_icmp6_send.patch deleted file mode 100644 index 06448a90affe..000000000000 --- a/net_handle_no_dst_on_skb_in_icmp6_send.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 79dc7e3f1cd323be4c81aa1a94faa1b3ed987fb2 Mon Sep 17 00:00:00 2001 -From: David Ahern <dsa@cumulusnetworks.com> -Date: Sun, 27 Nov 2016 18:52:53 -0800 -Subject: [PATCH] net: handle no dst on skb in icmp6_send - -Andrey reported the following while fuzzing the kernel with syzkaller: - -kasan: CONFIG_KASAN_INLINE enabled -kasan: GPF could be caused by NULL-ptr deref or user memory access -general protection fault: 0000 [#1] SMP KASAN -Modules linked in: -CPU: 0 PID: 3859 Comm: a.out Not tainted 4.9.0-rc6+ #429 -Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 -task: ffff8800666d4200 task.stack: ffff880067348000 -RIP: 0010:[<ffffffff833617ec>] [<ffffffff833617ec>] -icmp6_send+0x5fc/0x1e30 net/ipv6/icmp.c:451 -RSP: 0018:ffff88006734f2c0 EFLAGS: 00010206 -RAX: ffff8800666d4200 RBX: 0000000000000000 RCX: 0000000000000000 -RDX: 0000000000000000 RSI: dffffc0000000000 RDI: 0000000000000018 -RBP: ffff88006734f630 R08: ffff880064138418 R09: 0000000000000003 -R10: dffffc0000000000 R11: 0000000000000005 R12: 0000000000000000 -R13: ffffffff84e7e200 R14: ffff880064138484 R15: ffff8800641383c0 -FS: 00007fb3887a07c0(0000) GS:ffff88006cc00000(0000) knlGS:0000000000000000 -CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -CR2: 0000000020000000 CR3: 000000006b040000 CR4: 00000000000006f0 -Stack: - ffff8800666d4200 ffff8800666d49f8 ffff8800666d4200 ffffffff84c02460 - ffff8800666d4a1a 1ffff1000ccdaa2f ffff88006734f498 0000000000000046 - ffff88006734f440 ffffffff832f4269 ffff880064ba7456 0000000000000000 -Call Trace: - [<ffffffff83364ddc>] icmpv6_param_prob+0x2c/0x40 net/ipv6/icmp.c:557 - [< inline >] ip6_tlvopt_unknown net/ipv6/exthdrs.c:88 - [<ffffffff83394405>] ip6_parse_tlv+0x555/0x670 net/ipv6/exthdrs.c:157 - [<ffffffff8339a759>] ipv6_parse_hopopts+0x199/0x460 net/ipv6/exthdrs.c:663 - [<ffffffff832ee773>] ipv6_rcv+0xfa3/0x1dc0 net/ipv6/ip6_input.c:191 - ... - -icmp6_send / icmpv6_send is invoked for both rx and tx paths. In both -cases the dst->dev should be preferred for determining the L3 domain -if the dst has been set on the skb. Fallback to the skb->dev if it has -not. This covers the case reported here where icmp6_send is invoked on -Rx before the route lookup. - -Fixes: 5d41ce29e ("net: icmp6_send should use dst dev to determine L3 domain") -Reported-by: Andrey Konovalov <andreyknvl@google.com> -Signed-off-by: David Ahern <dsa@cumulusnetworks.com> -Signed-off-by: David S. Miller <davem@davemloft.net> ---- - net/ipv6/icmp.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c -index 7370ad2..2772004 100644 ---- a/net/ipv6/icmp.c -+++ b/net/ipv6/icmp.c -@@ -447,8 +447,10 @@ static void icmp6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info, - - if (__ipv6_addr_needs_scope_id(addr_type)) - iif = skb->dev->ifindex; -- else -- iif = l3mdev_master_ifindex(skb_dst(skb)->dev); -+ else { -+ dst = skb_dst(skb); -+ iif = l3mdev_master_ifindex(dst ? dst->dev : skb->dev); -+ } - - /* - * Must not send error if the source does not uniquely diff --git a/poweroff-quirk-workaround.patch b/poweroff-quirk-workaround.patch index 833181df379e..1e8613dcd845 100644 --- a/poweroff-quirk-workaround.patch +++ b/poweroff-quirk-workaround.patch @@ -2,7 +2,7 @@ +++ linux-4.9/drivers/pci/quirks.c 2017-02-09 21:27:32.370965329 -0500 @@ -4551,6 +4551,24 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x443, quirk_intel_qat_vf_cap); - + /* + * On Mac Pro 11, the allocation of pci bridge memory resource + * broke ACPI Sleep Type register region. |