From 71674309f1c119481444bc9eab2bc2538646247b Mon Sep 17 00:00:00 2001 From: David P Date: Fri, 20 Apr 2018 15:14:53 -0300 Subject: upgpkg: libre/linux-libre 4.16.3_gnu-1 Signed-off-by: David P --- ...RM-atags-add-support-for-Marvell-s-u-boot.patch | 6 +- ...to-disallow-unprivileged-CLONE_NEWUSER-by.patch | 20 +- ...dt-retrieve-MAC-addresses-from-Marvell-bo.patch | 6 +- ...p-Only-use-the-alternate-fixed-mode-if-it.patch | 16 +- ...lly-revert-swiotlb-remove-various-exports.patch | 29 + .../0003-SMILE-Plug-device-tree-file.patch | 10 +- ...vboxguest-on-guests-with-more-than-4G-RAM.patch | 552 ++++++++++++++ .../linux-libre/0004-fix-mvsdio-eMMC-timing.patch | 6 +- ...amd-display-disable-CRTCs-with-NULL-FB-on.patch | 95 +++ ...x-Allow-mac-address-to-be-set-as-a-parame.patch | 6 +- ...tia-Regression-on-reset-with-1.x-firmware.patch | 72 ++ .../0006-set-default-cubietruck-led-triggers.patch | 6 +- ...odroid-set-higher-minimum-buck2-regulator.patch | 10 +- .../0008-ARM-dove-enable-ethernet-on-D3Plug.patch | 31 + .../0008-disable-USB3-port-on-ODROID-XU.patch | 27 - .../0009-ARM-dove-enable-ethernet-on-D3Plug.patch | 31 - .../0009-power-add-power-sequence-library.patch | 790 +++++++++++++++++++++ .../0010-power-add-power-sequence-library.patch | 790 --------------------- ...d-power-sequence-handling-for-USB-devices.patch | 164 +++++ ...imx6qdl-Enable-usb-node-children-with-reg.patch | 49 ++ ...d-power-sequence-handling-for-USB-devices.patch | 164 ----- ...imx6qdl-Enable-usb-node-children-with-reg.patch | 49 -- ...6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch | 80 +++ ...-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch | 74 ++ ...-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch | 74 -- libre/linux-libre/PKGBUILD | 100 +-- libre/linux-libre/config.armv7h | 290 ++++---- libre/linux-libre/config.i686 | 374 ++++++---- libre/linux-libre/config.x86_64 | 377 ++++++---- 29 files changed, 2645 insertions(+), 1653 deletions(-) create mode 100644 libre/linux-libre/0003-Partially-revert-swiotlb-remove-various-exports.patch create mode 100644 libre/linux-libre/0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch create mode 100644 libre/linux-libre/0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch create mode 100644 libre/linux-libre/0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch create mode 100644 libre/linux-libre/0008-ARM-dove-enable-ethernet-on-D3Plug.patch delete mode 100644 libre/linux-libre/0008-disable-USB3-port-on-ODROID-XU.patch delete mode 100644 libre/linux-libre/0009-ARM-dove-enable-ethernet-on-D3Plug.patch create mode 100644 libre/linux-libre/0009-power-add-power-sequence-library.patch delete mode 100644 libre/linux-libre/0010-power-add-power-sequence-library.patch create mode 100644 libre/linux-libre/0010-usb-core-add-power-sequence-handling-for-USB-devices.patch create mode 100644 libre/linux-libre/0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch delete mode 100644 libre/linux-libre/0011-usb-core-add-power-sequence-handling-for-USB-devices.patch delete mode 100644 libre/linux-libre/0012-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch create mode 100644 libre/linux-libre/0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch create mode 100644 libre/linux-libre/0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch delete mode 100644 libre/linux-libre/0014-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch diff --git a/libre/linux-libre/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch b/libre/linux-libre/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch index 8df0c4761..a48aeb5a9 100644 --- a/libre/linux-libre/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch +++ b/libre/linux-libre/0001-ARM-atags-add-support-for-Marvell-s-u-boot.patch @@ -1,7 +1,7 @@ -From e1c642a72eb85ec98e1903f9391fb29076234369 Mon Sep 17 00:00:00 2001 +From cfaf96614497debcf1bc54ed9b4c45678eee282e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 2 Dec 2012 19:59:28 +0100 -Subject: [PATCH 01/14] ARM: atags: add support for Marvell's u-boot +Subject: [PATCH 01/13] ARM: atags: add support for Marvell's u-boot Marvell uses a specific atag in its u-boot which includes among other information the MAC addresses for up to 4 network interfaces. @@ -47,5 +47,5 @@ index 6b335a9ff8c8..614150b53643 100644 }; -- -2.16.1 +2.16.2 diff --git a/libre/linux-libre/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch b/libre/linux-libre/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch index b39ed26b7..10d9a4bfd 100644 --- a/libre/linux-libre/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch +++ b/libre/linux-libre/0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch @@ -1,8 +1,8 @@ -From 188720e92122385994143a06cb16a930053eb503 Mon Sep 17 00:00:00 2001 -Message-Id: <188720e92122385994143a06cb16a930053eb503.1520639721.git.jan.steffens@gmail.com> +From ff9d06de19e83c0c5a00a4d46376b4d1032c4f99 Mon Sep 17 00:00:00 2001 +Message-Id: From: Serge Hallyn Date: Fri, 31 May 2013 19:12:12 +0100 -Subject: [PATCH 1/2] add sysctl to disallow unprivileged CLONE_NEWUSER by +Subject: [PATCH 1/6] add sysctl to disallow unprivileged CLONE_NEWUSER by default Signed-off-by: Serge Hallyn @@ -15,10 +15,10 @@ Signed-off-by: Daniel Micay 3 files changed, 30 insertions(+) diff --git a/kernel/fork.c b/kernel/fork.c -index 2295fc69717f..6f320a216e7d 100644 +index e5d9d405ae4e..c4be89c51f25 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -102,6 +102,11 @@ +@@ -103,6 +103,11 @@ #define CREATE_TRACE_POINTS #include @@ -30,7 +30,7 @@ index 2295fc69717f..6f320a216e7d 100644 /* * Minimum number of threads to boot the kernel -@@ -1550,6 +1555,10 @@ static __latent_entropy struct task_struct *copy_process( +@@ -1591,6 +1596,10 @@ static __latent_entropy struct task_struct *copy_process( if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) return ERR_PTR(-EINVAL); @@ -41,7 +41,7 @@ index 2295fc69717f..6f320a216e7d 100644 /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. -@@ -2343,6 +2352,12 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) +@@ -2385,6 +2394,12 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) if (unshare_flags & CLONE_NEWNS) unshare_flags |= CLONE_FS; @@ -55,7 +55,7 @@ index 2295fc69717f..6f320a216e7d 100644 if (err) goto bad_unshare_out; diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 557d46728577..c19d7a828913 100644 +index f98f28c12020..7256d339a32a 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -105,6 +105,9 @@ extern int core_uses_pid; @@ -68,7 +68,7 @@ index 557d46728577..c19d7a828913 100644 extern int pid_max; extern int pid_max_min, pid_max_max; extern int percpu_pagelist_fraction; -@@ -513,6 +516,15 @@ static struct ctl_table kern_table[] = { +@@ -515,6 +518,15 @@ static struct ctl_table kern_table[] = { .proc_handler = proc_dointvec, }, #endif @@ -99,5 +99,5 @@ index 246d4d4ce5c7..f64432b45cec 100644 static DEFINE_MUTEX(userns_state_mutex); -- -2.16.2 +2.17.0 diff --git a/libre/linux-libre/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch b/libre/linux-libre/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch index 1f782d2b4..8e09349dc 100644 --- a/libre/linux-libre/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch +++ b/libre/linux-libre/0002-ARM-atags-fdt-retrieve-MAC-addresses-from-Marvell-bo.patch @@ -1,7 +1,7 @@ -From d52721ca6718ac91256b3073dd6a4749940bc0d3 Mon Sep 17 00:00:00 2001 +From e47ba83e454cf97a7b3d33e5b5b625682ae1cd49 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 2 Dec 2012 19:56:58 +0100 -Subject: [PATCH 02/14] ARM: atags/fdt: retrieve MAC addresses from Marvell +Subject: [PATCH 02/13] ARM: atags/fdt: retrieve MAC addresses from Marvell boot loader The atags are parsed and if a Marvell atag is found, up to 4 MAC @@ -43,5 +43,5 @@ index 41fa7316c52b..807ed160a4b9 100644 } -- -2.16.1 +2.16.2 diff --git a/libre/linux-libre/0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch b/libre/linux-libre/0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch index 2383c31fd..32c398976 100644 --- a/libre/linux-libre/0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch +++ b/libre/linux-libre/0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch @@ -1,10 +1,10 @@ -From 704e31424615c87ad82424a9b09a452d762daed0 Mon Sep 17 00:00:00 2001 -Message-Id: <704e31424615c87ad82424a9b09a452d762daed0.1520639721.git.jan.steffens@gmail.com> -In-Reply-To: <188720e92122385994143a06cb16a930053eb503.1520639721.git.jan.steffens@gmail.com> -References: <188720e92122385994143a06cb16a930053eb503.1520639721.git.jan.steffens@gmail.com> +From 3dcbf4dd14d295c3a238d73e9f791a827b906058 Mon Sep 17 00:00:00 2001 +Message-Id: <3dcbf4dd14d295c3a238d73e9f791a827b906058.1524129246.git.jan.steffens@gmail.com> +In-Reply-To: +References: From: Jim Bride Date: Mon, 6 Nov 2017 13:38:57 -0800 -Subject: [PATCH 2/2] drm/i915/edp: Only use the alternate fixed mode if it's +Subject: [PATCH 2/6] drm/i915/edp: Only use the alternate fixed mode if it's asked for In commit dc911f5bd8aa ("drm/i915/edp: Allow alternate fixed mode for @@ -24,10 +24,10 @@ Signed-off-by: Jim Bride 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c -index add4b2434aa3..14a8bef9fdfe 100644 +index a29868cd30c7..b6d07b615b12 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c -@@ -1616,7 +1616,8 @@ static bool intel_edp_compare_alt_mode(struct drm_display_mode *m1, +@@ -1597,7 +1597,8 @@ static bool intel_edp_compare_alt_mode(struct drm_display_mode *m1, m1->vdisplay == m2->vdisplay && m1->vsync_start == m2->vsync_start && m1->vsync_end == m2->vsync_end && @@ -38,5 +38,5 @@ index add4b2434aa3..14a8bef9fdfe 100644 } -- -2.16.2 +2.17.0 diff --git a/libre/linux-libre/0003-Partially-revert-swiotlb-remove-various-exports.patch b/libre/linux-libre/0003-Partially-revert-swiotlb-remove-various-exports.patch new file mode 100644 index 000000000..5a5f9ce0d --- /dev/null +++ b/libre/linux-libre/0003-Partially-revert-swiotlb-remove-various-exports.patch @@ -0,0 +1,29 @@ +From 1b03bcc6faecde170f9bea83accdde7bbd36df96 Mon Sep 17 00:00:00 2001 +Message-Id: <1b03bcc6faecde170f9bea83accdde7bbd36df96.1524129246.git.jan.steffens@gmail.com> +In-Reply-To: +References: +From: "Jan Alexander Steffens (heftig)" +Date: Fri, 6 Apr 2018 16:19:38 +0200 +Subject: [PATCH 3/6] Partially revert "swiotlb: remove various exports" + +This partially reverts commit 4bd89ed39b2ab8dc4ac4b6c59b07d420b0213bec. +The proprietary NVIDIA driver needs one of the exports. +--- + lib/swiotlb.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/swiotlb.c b/lib/swiotlb.c +index c43ec2271469..77d699f14af7 100644 +--- a/lib/swiotlb.c ++++ b/lib/swiotlb.c +@@ -1016,6 +1016,7 @@ swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems, + } + return nelems; + } ++EXPORT_SYMBOL(swiotlb_map_sg_attrs); + + /* + * Unmap a set of streaming mode DMA translations. Again, cpu read rules +-- +2.17.0 + diff --git a/libre/linux-libre/0003-SMILE-Plug-device-tree-file.patch b/libre/linux-libre/0003-SMILE-Plug-device-tree-file.patch index e6cab4cd4..7b556c79b 100644 --- a/libre/linux-libre/0003-SMILE-Plug-device-tree-file.patch +++ b/libre/linux-libre/0003-SMILE-Plug-device-tree-file.patch @@ -1,7 +1,7 @@ -From f8f42603eeec186337ebab563de5b91ae6050de6 Mon Sep 17 00:00:00 2001 +From 51132fdfa4b66feb87499903f568132b7ec92785 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Fri, 5 Sep 2014 15:41:19 -0600 -Subject: [PATCH 03/14] SMILE Plug device tree file +Subject: [PATCH 03/13] SMILE Plug device tree file This adds a dts file for the SMILE Plug, which only differs from the Mirabox dts with the LED definitions. @@ -14,10 +14,10 @@ Signed-off-by: Kevin Mihelich create mode 100644 arch/arm/boot/dts/armada-370-smileplug.dts diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile -index d0381e9caf21..e142999e7cff 100644 +index ade7a38543dc..4bd5a6614e93 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile -@@ -1046,6 +1046,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \ +@@ -1072,6 +1072,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \ armada-370-db.dtb \ armada-370-dlink-dns327l.dtb \ armada-370-mirabox.dtb \ @@ -205,5 +205,5 @@ index 000000000000..d01308ab848b + }; +}; -- -2.16.1 +2.16.2 diff --git a/libre/linux-libre/0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch b/libre/linux-libre/0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch new file mode 100644 index 000000000..05924c39c --- /dev/null +++ b/libre/linux-libre/0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch @@ -0,0 +1,552 @@ +From b04d533fa7e16e58243296b5063a624e91d2048e Mon Sep 17 00:00:00 2001 +Message-Id: +In-Reply-To: +References: +From: "Jan Alexander Steffens (heftig)" +Date: Wed, 11 Apr 2018 21:27:44 +0200 +Subject: [PATCH 4/6] Fix vboxguest on guests with more than 4G RAM + +Squashed commit of the following: + +commit 042b191f6b98165d6bcca3ae09a0f9b289d6155e +Author: Hans de Goede +Date: Thu Mar 29 17:28:57 2018 +0200 + + virt: vbox: Log an error when we fail to get the host version + + This was the only error path during probe without a message being logged + about what went wrong, this fixes this. + + Signed-off-by: Hans de Goede + +commit e4111a6c617687f7cb414ddfa8176206910db76e +Author: Hans de Goede +Date: Thu Mar 29 17:28:56 2018 +0200 + + virt: vbox: Use __get_free_pages instead of kmalloc for DMA32 memory + + It is not possible to get DMA32 zone memory through kmalloc, causing + the vboxguest driver to malfunction due to getting memory above + 4G which the PCI device cannot handle. + + This commit changes the kmalloc calls where the 4G limit matters to + using __get_free_pages() fixing vboxguest not working on x86_64 guests + with more then 4G RAM. + + Cc: stable@vger.kernel.org + Reported-by: Eloy Coto Pereiro + Signed-off-by: Hans de Goede + +commit 2cb20368ce32e7275a351eadadd4c8f3da742a28 +Author: Hans de Goede +Date: Thu Mar 29 17:28:55 2018 +0200 + + virt: vbox: Add vbg_req_free() helper function + + This is a preparation patch for fixing issues on x86_64 virtual-machines + with more then 4G of RAM, atm we pass __GFP_DMA32 to kmalloc, but kmalloc + does not honor that, so we need to switch to get_pages, which means we + will not be able to use kfree to free memory allocated with vbg_alloc_req. + + While at it also remove a comment on a vbg_alloc_req call which talks + about Windows (inherited from the vbox upstream cross-platform code). + + Cc: stable@vger.kernel.org + Signed-off-by: Hans de Goede + +commit fa5c012bc9c3e1ada5cde0bfa3c6706be97b7cb0 +Author: Hans de Goede +Date: Thu Mar 29 17:28:54 2018 +0200 + + virt: vbox: Move declarations of vboxguest private functions to private header + + Move the declarations of functions from vboxguest_utils.c which are only + meant for vboxguest internal use from include/linux/vbox_utils.h to + drivers/virt/vboxguest/vboxguest_core.h. + + Cc: stable@vger.kernel.org + Signed-off-by: Hans de Goede +--- + drivers/virt/vboxguest/vboxguest_core.c | 70 +++++++++++++----------- + drivers/virt/vboxguest/vboxguest_core.h | 9 +++ + drivers/virt/vboxguest/vboxguest_linux.c | 19 ++++++- + drivers/virt/vboxguest/vboxguest_utils.c | 17 ++++-- + include/linux/vbox_utils.h | 23 -------- + 5 files changed, 76 insertions(+), 62 deletions(-) + +diff --git a/drivers/virt/vboxguest/vboxguest_core.c b/drivers/virt/vboxguest/vboxguest_core.c +index 190dbf8cfcb5..2f3856a95856 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.c ++++ b/drivers/virt/vboxguest/vboxguest_core.c +@@ -114,7 +114,7 @@ static void vbg_guest_mappings_init(struct vbg_dev *gdev) + } + + out: +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + kfree(pages); + } + +@@ -144,7 +144,7 @@ static void vbg_guest_mappings_exit(struct vbg_dev *gdev) + + rc = vbg_req_perform(gdev, req); + +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + + if (rc < 0) { + vbg_err("%s error: %d\n", __func__, rc); +@@ -214,8 +214,8 @@ static int vbg_report_guest_info(struct vbg_dev *gdev) + ret = vbg_status_code_to_errno(rc); + + out_free: +- kfree(req2); +- kfree(req1); ++ vbg_req_free(req2, sizeof(*req2)); ++ vbg_req_free(req1, sizeof(*req1)); + return ret; + } + +@@ -245,7 +245,7 @@ static int vbg_report_driver_status(struct vbg_dev *gdev, bool active) + if (rc == VERR_NOT_IMPLEMENTED) /* Compatibility with older hosts. */ + rc = VINF_SUCCESS; + +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + + return vbg_status_code_to_errno(rc); + } +@@ -431,58 +431,52 @@ static int vbg_heartbeat_host_config(struct vbg_dev *gdev, bool enabled) + rc = vbg_req_perform(gdev, req); + do_div(req->interval_ns, 1000000); /* ns -> ms */ + gdev->heartbeat_interval_ms = req->interval_ns; +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + + return vbg_status_code_to_errno(rc); + } + + /** + * Initializes the heartbeat timer. This feature may be disabled by the host. + * Return: 0 or negative errno value. + * @gdev: The Guest extension device. + */ + static int vbg_heartbeat_init(struct vbg_dev *gdev) + { + int ret; + + /* Make sure that heartbeat checking is disabled if we fail. */ + ret = vbg_heartbeat_host_config(gdev, false); + if (ret < 0) + return ret; + + ret = vbg_heartbeat_host_config(gdev, true); + if (ret < 0) + return ret; + +- /* +- * Preallocate the request to use it from the timer callback because: +- * 1) on Windows vbg_req_alloc must be called at IRQL <= APC_LEVEL +- * and the timer callback runs at DISPATCH_LEVEL; +- * 2) avoid repeated allocations. +- */ + gdev->guest_heartbeat_req = vbg_req_alloc( + sizeof(*gdev->guest_heartbeat_req), + VMMDEVREQ_GUEST_HEARTBEAT); + if (!gdev->guest_heartbeat_req) + return -ENOMEM; + + vbg_info("%s: Setting up heartbeat to trigger every %d milliseconds\n", + __func__, gdev->heartbeat_interval_ms); + mod_timer(&gdev->heartbeat_timer, 0); + + return 0; + } + + /** + * Cleanup hearbeat code, stop HB timer and disable host heartbeat checking. + * @gdev: The Guest extension device. + */ + static void vbg_heartbeat_exit(struct vbg_dev *gdev) + { + del_timer_sync(&gdev->heartbeat_timer); + vbg_heartbeat_host_config(gdev, false); +- kfree(gdev->guest_heartbeat_req); +- ++ vbg_req_free(gdev->guest_heartbeat_req, ++ sizeof(*gdev->guest_heartbeat_req)); + } + + /** +@@ -543,7 +537,7 @@ static int vbg_reset_host_event_filter(struct vbg_dev *gdev, + if (rc < 0) + vbg_err("%s error, rc: %d\n", __func__, rc); + +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + return vbg_status_code_to_errno(rc); + } + +@@ -617,32 +611,32 @@ static int vbg_set_session_event_filter(struct vbg_dev *gdev, + + out: + mutex_unlock(&gdev->session_mutex); +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + + return ret; + } + + /** + * Init and termination worker for set guest capabilities to zero on the host. + * Return: 0 or negative errno value. + * @gdev: The Guest extension device. + */ + static int vbg_reset_host_capabilities(struct vbg_dev *gdev) + { + struct vmmdev_mask *req; + int rc; + + req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_SET_GUEST_CAPABILITIES); + if (!req) + return -ENOMEM; + + req->not_mask = U32_MAX; + req->or_mask = 0; + rc = vbg_req_perform(gdev, req); + if (rc < 0) + vbg_err("%s error, rc: %d\n", __func__, rc); + +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + return vbg_status_code_to_errno(rc); + } + +@@ -712,44 +706,46 @@ static int vbg_set_session_capabilities(struct vbg_dev *gdev, + + out: + mutex_unlock(&gdev->session_mutex); +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + + return ret; + } + + /** + * vbg_query_host_version get the host feature mask and version information. + * Return: 0 or negative errno value. + * @gdev: The Guest extension device. + */ + static int vbg_query_host_version(struct vbg_dev *gdev) + { + struct vmmdev_host_version *req; + int rc, ret; + + req = vbg_req_alloc(sizeof(*req), VMMDEVREQ_GET_HOST_VERSION); + if (!req) + return -ENOMEM; + + rc = vbg_req_perform(gdev, req); + ret = vbg_status_code_to_errno(rc); +- if (ret) ++ if (ret) { ++ vbg_err("%s error: %d\n", __func__, rc); + goto out; ++ } + + snprintf(gdev->host_version, sizeof(gdev->host_version), "%u.%u.%ur%u", + req->major, req->minor, req->build, req->revision); + gdev->host_features = req->features; + + vbg_info("vboxguest: host-version: %s %#x\n", gdev->host_version, + gdev->host_features); + + if (!(req->features & VMMDEV_HVF_HGCM_PHYS_PAGE_LIST)) { + vbg_err("vboxguest: Error host too old (does not support page-lists)\n"); + ret = -ENODEV; + } + + out: +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + return ret; + } + +@@ -847,36 +843,46 @@ int vbg_core_init(struct vbg_dev *gdev, u32 fixed_events) + return 0; + + err_free_reqs: +- kfree(gdev->mouse_status_req); +- kfree(gdev->ack_events_req); +- kfree(gdev->cancel_req); +- kfree(gdev->mem_balloon.change_req); +- kfree(gdev->mem_balloon.get_req); ++ vbg_req_free(gdev->mouse_status_req, ++ sizeof(*gdev->mouse_status_req)); ++ vbg_req_free(gdev->ack_events_req, ++ sizeof(*gdev->ack_events_req)); ++ vbg_req_free(gdev->cancel_req, ++ sizeof(*gdev->cancel_req)); ++ vbg_req_free(gdev->mem_balloon.change_req, ++ sizeof(*gdev->mem_balloon.change_req)); ++ vbg_req_free(gdev->mem_balloon.get_req, ++ sizeof(*gdev->mem_balloon.get_req)); + return ret; + } + + /** + * Call this on exit to clean-up vboxguest-core managed resources. + * + * The native code should call this before the driver is loaded, + * but don't call this on shutdown. + * @gdev: The Guest extension device. + */ + void vbg_core_exit(struct vbg_dev *gdev) + { + vbg_heartbeat_exit(gdev); + vbg_guest_mappings_exit(gdev); + + /* Clear the host flags (mouse status etc). */ + vbg_reset_host_event_filter(gdev, 0); + vbg_reset_host_capabilities(gdev); + vbg_core_set_mouse_status(gdev, 0); + +- kfree(gdev->mouse_status_req); +- kfree(gdev->ack_events_req); +- kfree(gdev->cancel_req); +- kfree(gdev->mem_balloon.change_req); +- kfree(gdev->mem_balloon.get_req); ++ vbg_req_free(gdev->mouse_status_req, ++ sizeof(*gdev->mouse_status_req)); ++ vbg_req_free(gdev->ack_events_req, ++ sizeof(*gdev->ack_events_req)); ++ vbg_req_free(gdev->cancel_req, ++ sizeof(*gdev->cancel_req)); ++ vbg_req_free(gdev->mem_balloon.change_req, ++ sizeof(*gdev->mem_balloon.change_req)); ++ vbg_req_free(gdev->mem_balloon.get_req, ++ sizeof(*gdev->mem_balloon.get_req)); + } + + /** +@@ -1415,7 +1421,7 @@ static int vbg_ioctl_write_core_dump(struct vbg_dev *gdev, + req->flags = dump->u.in.flags; + dump->hdr.rc = vbg_req_perform(gdev, req); + +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + return 0; + } + +@@ -1513,7 +1519,7 @@ int vbg_core_set_mouse_status(struct vbg_dev *gdev, u32 features) + if (rc < 0) + vbg_err("%s error, rc: %d\n", __func__, rc); + +- kfree(req); ++ vbg_req_free(req, sizeof(*req)); + return vbg_status_code_to_errno(rc); + } + +diff --git a/drivers/virt/vboxguest/vboxguest_core.h b/drivers/virt/vboxguest/vboxguest_core.h +index 6c784bf4fa6d..7ad9ec45bfa9 100644 +--- a/drivers/virt/vboxguest/vboxguest_core.h ++++ b/drivers/virt/vboxguest/vboxguest_core.h +@@ -171,4 +171,13 @@ irqreturn_t vbg_core_isr(int irq, void *dev_id); + + void vbg_linux_mouse_event(struct vbg_dev *gdev); + ++/* Private (non exported) functions form vboxguest_utils.c */ ++void *vbg_req_alloc(size_t len, enum vmmdev_request_type req_type); ++void vbg_req_free(void *req, size_t len); ++int vbg_req_perform(struct vbg_dev *gdev, void *req); ++int vbg_hgcm_call32( ++ struct vbg_dev *gdev, u32 client_id, u32 function, u32 timeout_ms, ++ struct vmmdev_hgcm_function_parameter32 *parm32, u32 parm_count, ++ int *vbox_status); ++ + #endif +diff --git a/drivers/virt/vboxguest/vboxguest_linux.c b/drivers/virt/vboxguest/vboxguest_linux.c +index 82e280d38cc2..398d22693234 100644 +--- a/drivers/virt/vboxguest/vboxguest_linux.c ++++ b/drivers/virt/vboxguest/vboxguest_linux.c +@@ -87,52 +87,65 @@ static long vbg_misc_device_ioctl(struct file *filp, unsigned int req, + struct vbg_session *session = filp->private_data; + size_t returned_size, size; + struct vbg_ioctl_hdr hdr; ++ bool is_vmmdev_req; + int ret = 0; + void *buf; + + if (copy_from_user(&hdr, (void *)arg, sizeof(hdr))) + return -EFAULT; + + if (hdr.version != VBG_IOCTL_HDR_VERSION) + return -EINVAL; + + if (hdr.size_in < sizeof(hdr) || + (hdr.size_out && hdr.size_out < sizeof(hdr))) + return -EINVAL; + + size = max(hdr.size_in, hdr.size_out); + if (_IOC_SIZE(req) && _IOC_SIZE(req) != size) + return -EINVAL; + if (size > SZ_16M) + return -E2BIG; + +- /* __GFP_DMA32 because IOCTL_VMMDEV_REQUEST passes this to the host */ +- buf = kmalloc(size, GFP_KERNEL | __GFP_DMA32); ++ /* ++ * IOCTL_VMMDEV_REQUEST needs the buffer to be below 4G to avoid ++ * the need for a bounce-buffer and another copy later on. ++ */ ++ is_vmmdev_req = (req & ~IOCSIZE_MASK) == VBG_IOCTL_VMMDEV_REQUEST(0) || ++ req == VBG_IOCTL_VMMDEV_REQUEST_BIG; ++ ++ if (is_vmmdev_req) ++ buf = vbg_req_alloc(size, VBG_IOCTL_HDR_TYPE_DEFAULT); ++ else ++ buf = kmalloc(size, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + if (copy_from_user(buf, (void *)arg, hdr.size_in)) { + ret = -EFAULT; + goto out; + } + if (hdr.size_in < size) + memset(buf + hdr.size_in, 0, size - hdr.size_in); + + ret = vbg_core_ioctl(session, req, buf); + if (ret) + goto out; + + returned_size = ((struct vbg_ioctl_hdr *)buf)->size_out; + if (returned_size > size) { + vbg_debug("%s: too much output data %zu > %zu\n", + __func__, returned_size, size); + returned_size = size; + } + if (copy_to_user((void *)arg, buf, returned_size) != 0) + ret = -EFAULT; + + out: +- kfree(buf); ++ if (is_vmmdev_req) ++ vbg_req_free(buf, size); ++ else ++ kfree(buf); + + return ret; + } +diff --git a/drivers/virt/vboxguest/vboxguest_utils.c b/drivers/virt/vboxguest/vboxguest_utils.c +index 0f0dab8023cf..bf4474214b4d 100644 +--- a/drivers/virt/vboxguest/vboxguest_utils.c ++++ b/drivers/virt/vboxguest/vboxguest_utils.c +@@ -65,23 +65,32 @@ VBG_LOG(vbg_debug, pr_debug); + void *vbg_req_alloc(size_t len, enum vmmdev_request_type req_type) + { + struct vmmdev_request_header *req; ++ int order = get_order(PAGE_ALIGN(len)); + +- req = kmalloc(len, GFP_KERNEL | __GFP_DMA32); ++ req = (void *)__get_free_pages(GFP_KERNEL | GFP_DMA32, order); + if (!req) + return NULL; + + memset(req, 0xaa, len); + + req->size = len; + req->version = VMMDEV_REQUEST_HEADER_VERSION; + req->request_type = req_type; + req->rc = VERR_GENERAL_FAILURE; + req->reserved1 = 0; + req->reserved2 = 0; + + return req; + } + ++void vbg_req_free(void *req, size_t len) ++{ ++ if (!req) ++ return; ++ ++ free_pages((unsigned long)req, get_order(PAGE_ALIGN(len))); ++} ++ + /* Note this function returns a VBox status code, not a negative errno!! */ + int vbg_req_perform(struct vbg_dev *gdev, void *req) + { +@@ -137,7 +146,7 @@ int vbg_hgcm_connect(struct vbg_dev *gdev, + rc = hgcm_connect->header.result; + } + +- kfree(hgcm_connect); ++ vbg_req_free(hgcm_connect, sizeof(*hgcm_connect)); + + *vbox_status = rc; + return 0; +@@ -166,7 +175,7 @@ int vbg_hgcm_disconnect(struct vbg_dev *gdev, u32 client_id, int *vbox_status) + if (rc >= 0) + rc = hgcm_disconnect->header.result; + +- kfree(hgcm_disconnect); ++ vbg_req_free(hgcm_disconnect, sizeof(*hgcm_disconnect)); + + *vbox_status = rc; + return 0; +@@ -623,7 +632,7 @@ int vbg_hgcm_call(struct vbg_dev *gdev, u32 client_id, u32 function, + } + + if (!leak_it) +- kfree(call); ++ vbg_req_free(call, size); + + free_bounce_bufs: + if (bounce_bufs) { +diff --git a/include/linux/vbox_utils.h b/include/linux/vbox_utils.h +index c71def6b310f..a240ed2a0372 100644 +--- a/include/linux/vbox_utils.h ++++ b/include/linux/vbox_utils.h +@@ -24,39 +24,16 @@ __printf(1, 2) void vbg_debug(const char *fmt, ...); + #define vbg_debug pr_debug + #endif + +-/** +- * Allocate memory for generic request and initialize the request header. +- * +- * Return: the allocated memory +- * @len: Size of memory block required for the request. +- * @req_type: The generic request type. +- */ +-void *vbg_req_alloc(size_t len, enum vmmdev_request_type req_type); +- +-/** +- * Perform a generic request. +- * +- * Return: VBox status code +- * @gdev: The Guest extension device. +- * @req: Pointer to the request structure. +- */ +-int vbg_req_perform(struct vbg_dev *gdev, void *req); +- + int vbg_hgcm_connect(struct vbg_dev *gdev, + struct vmmdev_hgcm_service_location *loc, + u32 *client_id, int *vbox_status); + + int vbg_hgcm_disconnect(struct vbg_dev *gdev, u32 client_id, int *vbox_status); + + int vbg_hgcm_call(struct vbg_dev *gdev, u32 client_id, u32 function, + u32 timeout_ms, struct vmmdev_hgcm_function_parameter *parms, + u32 parm_count, int *vbox_status); + +-int vbg_hgcm_call32( +- struct vbg_dev *gdev, u32 client_id, u32 function, u32 timeout_ms, +- struct vmmdev_hgcm_function_parameter32 *parm32, u32 parm_count, +- int *vbox_status); +- + /** + * Convert a VirtualBox status code to a standard Linux kernel return value. + * Return: 0 or negative errno value. +-- +2.17.0 + diff --git a/libre/linux-libre/0004-fix-mvsdio-eMMC-timing.patch b/libre/linux-libre/0004-fix-mvsdio-eMMC-timing.patch index 842dfcd77..a91e7574c 100644 --- a/libre/linux-libre/0004-fix-mvsdio-eMMC-timing.patch +++ b/libre/linux-libre/0004-fix-mvsdio-eMMC-timing.patch @@ -1,7 +1,7 @@ -From c6275cb1cf73c56e9c2e74ae7c41abf3b70cb5ae Mon Sep 17 00:00:00 2001 +From ab62597d0e8a83ba11af33f294a58b4462e9369a Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Fri, 5 Sep 2014 15:43:56 -0600 -Subject: [PATCH 04/14] fix mvsdio eMMC timing +Subject: [PATCH 04/13] fix mvsdio eMMC timing These changes from Globalscale change the MMC timing to allow the eMMC versions of the Mirabox and SMILE Plug to work. @@ -34,5 +34,5 @@ index 210247b3d11a..1a1802dc9ef4 100644 host->clock = ios->clock; host->ns_per_clk = 1000000000 / (host->base_clock / (m+1)); -- -2.16.1 +2.16.2 diff --git a/libre/linux-libre/0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch b/libre/linux-libre/0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch new file mode 100644 index 000000000..8fc4edeaf --- /dev/null +++ b/libre/linux-libre/0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch @@ -0,0 +1,95 @@ +From 23675bf063a1b39fccd29e7f573ec6729a11b3fa Mon Sep 17 00:00:00 2001 +Message-Id: <23675bf063a1b39fccd29e7f573ec6729a11b3fa.1524129246.git.jan.steffens@gmail.com> +In-Reply-To: +References: +From: Harry Wentland +Date: Thu, 12 Apr 2018 10:51:52 -0400 +Subject: [PATCH 5/6] Revert "drm/amd/display: disable CRTCs with NULL FB on + their primary plane (V2)" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This seems to cause flickering and lock-ups for a wide range of users. +Revert until we've found a proper fix for the flickering and lock-ups. + +This reverts commit 36cc549d59864b7161f0e23d710c1c4d1b9cf022. + +Cc: Shirish S +Cc: Alex Deucher +Cc: stable@vger.kernel.org +Reviewed-by: Michel Dänzer +Signed-off-by: Harry Wentland +Signed-off-by: Alex Deucher +--- + .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 31 ------------------- + 1 file changed, 31 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index 63c67346d316..8a6e6fbc78cd 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -4776,60 +4776,29 @@ static int dm_update_planes_state(struct dc *dc, + return ret; + } + +-static int dm_atomic_check_plane_state_fb(struct drm_atomic_state *state, +- struct drm_crtc *crtc) +-{ +- struct drm_plane *plane; +- struct drm_crtc_state *crtc_state; +- +- WARN_ON(!drm_atomic_get_new_crtc_state(state, crtc)); +- +- drm_for_each_plane_mask(plane, state->dev, crtc->state->plane_mask) { +- struct drm_plane_state *plane_state = +- drm_atomic_get_plane_state(state, plane); +- +- if (IS_ERR(plane_state)) +- return -EDEADLK; +- +- crtc_state = drm_atomic_get_crtc_state(plane_state->state, crtc); +- if (IS_ERR(crtc_state)) +- return PTR_ERR(crtc_state); +- +- if (crtc->primary == plane && crtc_state->active) { +- if (!plane_state->fb) +- return -EINVAL; +- } +- } +- return 0; +-} +- + static int amdgpu_dm_atomic_check(struct drm_device *dev, + struct drm_atomic_state *state) + { + struct amdgpu_device *adev = dev->dev_private; + struct dc *dc = adev->dm.dc; + struct dm_atomic_state *dm_state = to_dm_atomic_state(state); + struct drm_connector *connector; + struct drm_connector_state *old_con_state, *new_con_state; + struct drm_crtc *crtc; + struct drm_crtc_state *old_crtc_state, *new_crtc_state; + int ret, i; + + /* + * This bool will be set for true for any modeset/reset + * or plane update which implies non fast surface update. + */ + bool lock_and_validation_needed = false; + + ret = drm_atomic_helper_check_modeset(dev, state); + if (ret) + goto fail; + + for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) { +- ret = dm_atomic_check_plane_state_fb(state, crtc); +- if (ret) +- goto fail; +- + if (!drm_atomic_crtc_needs_modeset(new_crtc_state) && + !new_crtc_state->color_mgmt_changed) + continue; +-- +2.17.0 + diff --git a/libre/linux-libre/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch b/libre/linux-libre/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch index ad19d606d..1352c0d1d 100644 --- a/libre/linux-libre/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch +++ b/libre/linux-libre/0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch @@ -1,7 +1,7 @@ -From 0764c77a4c04d9e7d770e62ac6f8edac76a39183 Mon Sep 17 00:00:00 2001 +From 8bb2616581e4e5aa7395bec730995629be259954 Mon Sep 17 00:00:00 2001 From: popcornmix Date: Tue, 18 Feb 2014 01:43:50 -0300 -Subject: [PATCH 05/14] net/smsc95xx: Allow mac address to be set as a +Subject: [PATCH 05/13] net/smsc95xx: Allow mac address to be set as a parameter --- @@ -92,5 +92,5 @@ index 309b88acd3d0..7bc9feb891a1 100644 /* maybe the boot loader passed the MAC address in devicetree */ -- -2.16.1 +2.16.2 diff --git a/libre/linux-libre/0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch b/libre/linux-libre/0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch new file mode 100644 index 000000000..d32cfc408 --- /dev/null +++ b/libre/linux-libre/0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch @@ -0,0 +1,72 @@ +From fb08717dc5ecf3ada73f93663b528d9d4ce4380b Mon Sep 17 00:00:00 2001 +Message-Id: +In-Reply-To: +References: +From: Igor Russkikh +Date: Wed, 11 Apr 2018 15:23:24 +0300 +Subject: [PATCH 6/6] net: aquantia: Regression on reset with 1.x firmware + +On ASUS XG-C100C with 1.5.44 firmware a special mode called "dirty wake" +is active. With this mode when motherboard gets powered (but no poweron +happens yet), NIC automatically enables powersave link and watches +for WOL packet. +This normally allows to powerup the PC after AC power failures. + +Not all motherboards or bios settings gives power to PCI slots, +so this mode is not enabled on all the hardware. + +4.16 linux driver introduced full hardware reset sequence +This is required since before that we had no NIC hardware +reset implemented and there were side effects of "not clean start". + +But this full reset is incompatible with "dirty wake" WOL feature +it keeps the PHY link in a special mode forever. As a consequence, +driver sees no link and no traffic. + +To fix this we forcibly change FW state to idle state before doing +the full reset. This makes FW to restore link state. + +Fixes: c8c82eb net: aquantia: Introduce global AQC hardware reset sequence +Signed-off-by: Igor Russkikh +Signed-off-by: David S. Miller +--- + .../aquantia/atlantic/hw_atl/hw_atl_utils.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c +index d3b847ec7465..c58b2c227260 100644 +--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c ++++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c +@@ -48,6 +48,8 @@ + #define FORCE_FLASHLESS 0 + + static int hw_atl_utils_ver_match(u32 ver_expected, u32 ver_actual); ++static int hw_atl_utils_mpi_set_state(struct aq_hw_s *self, ++ enum hal_atl_utils_fw_state_e state); + + int hw_atl_utils_initfw(struct aq_hw_s *self, const struct aq_fw_ops **fw_ops) + { +@@ -247,6 +249,20 @@ int hw_atl_utils_soft_reset(struct aq_hw_s *self) + + self->rbl_enabled = (boot_exit_code != 0); + ++ /* FW 1.x may bootup in an invalid POWER state (WOL feature). ++ * We should work around this by forcing its state back to DEINIT ++ */ ++ if (!hw_atl_utils_ver_match(HW_ATL_FW_VER_1X, ++ aq_hw_read_reg(self, ++ HW_ATL_MPI_FW_VERSION))) { ++ int err = 0; ++ ++ hw_atl_utils_mpi_set_state(self, MPI_DEINIT); ++ AQ_HW_WAIT_FOR((aq_hw_read_reg(self, HW_ATL_MPI_STATE_ADR) & ++ HW_ATL_MPI_STATE_MSK) == MPI_DEINIT, ++ 10, 1000U); ++ } ++ + if (self->rbl_enabled) + return hw_atl_utils_soft_reset_rbl(self); + else +-- +2.17.0 + diff --git a/libre/linux-libre/0006-set-default-cubietruck-led-triggers.patch b/libre/linux-libre/0006-set-default-cubietruck-led-triggers.patch index ff270752a..9f593508e 100644 --- a/libre/linux-libre/0006-set-default-cubietruck-led-triggers.patch +++ b/libre/linux-libre/0006-set-default-cubietruck-led-triggers.patch @@ -1,7 +1,7 @@ -From 8049afc8467f9f7fdeb3b7db97e0e8c64805e867 Mon Sep 17 00:00:00 2001 +From 877e229054b1ecdcb350356475f2654e66c13288 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Sat, 14 Feb 2015 12:32:27 +0100 -Subject: [PATCH 06/14] set default cubietruck led triggers +Subject: [PATCH 06/13] set default cubietruck led triggers Signed-off-by: Kevin Mihelich --- @@ -29,5 +29,5 @@ index 8c9bedc602ec..b3a765ba03fd 100644 }; -- -2.16.1 +2.16.2 diff --git a/libre/linux-libre/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch b/libre/linux-libre/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch index a8836586a..9ea37c85b 100644 --- a/libre/linux-libre/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch +++ b/libre/linux-libre/0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch @@ -1,7 +1,7 @@ -From fa5e1322788ebe804da87c671b6491b21d143d18 Mon Sep 17 00:00:00 2001 +From 75c68a3a6868e6e0891e807b51249523bdfae611 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Thu, 11 Aug 2016 00:42:37 -0600 -Subject: [PATCH 07/14] exynos4412-odroid: set higher minimum buck2 regulator +Subject: [PATCH 07/13] exynos4412-odroid: set higher minimum buck2 regulator voltage Set a higher minimum voltage to help reboot issue. @@ -13,10 +13,10 @@ Signed-off-by: Kevin Mihelich 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi -index a21be71000c1..65cdf0d9c512 100644 +index 556ea78b8e32..f3a3fe4af289 100644 --- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi +++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi -@@ -421,7 +421,7 @@ +@@ -418,7 +418,7 @@ buck2_reg: BUCK2 { regulator-name = "vdd_arm"; @@ -26,5 +26,5 @@ index a21be71000c1..65cdf0d9c512 100644 regulator-always-on; regulator-boot-on; -- -2.16.1 +2.16.2 diff --git a/libre/linux-libre/0008-ARM-dove-enable-ethernet-on-D3Plug.patch b/libre/linux-libre/0008-ARM-dove-enable-ethernet-on-D3Plug.patch new file mode 100644 index 000000000..d7acb09af --- /dev/null +++ b/libre/linux-libre/0008-ARM-dove-enable-ethernet-on-D3Plug.patch @@ -0,0 +1,31 @@ +From 728f5a9864ab09dd0485102e62ff6d4483c184fc Mon Sep 17 00:00:00 2001 +From: Kevin Mihelich +Date: Sun, 7 May 2017 13:32:25 -0600 +Subject: [PATCH 08/13] ARM: dove: enable ethernet on D3Plug + +Signed-off-by: Kevin Mihelich +--- + arch/arm/boot/dts/dove-d3plug.dts | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/arch/arm/boot/dts/dove-d3plug.dts b/arch/arm/boot/dts/dove-d3plug.dts +index 826026c28f90..a4c9963e1261 100644 +--- a/arch/arm/boot/dts/dove-d3plug.dts ++++ b/arch/arm/boot/dts/dove-d3plug.dts +@@ -61,6 +61,13 @@ + &uart0 { status = "okay"; }; + &sata0 { status = "okay"; }; + &i2c0 { status = "okay"; }; ++&mdio { status = "okay"; }; ++ð { status = "okay"; }; ++ ++ðphy { ++ compatible = "marvell,88e1310"; ++ reg = <1>; ++}; + + /* Samsung M8G2F eMMC */ + &sdio0 { +-- +2.16.2 + diff --git a/libre/linux-libre/0008-disable-USB3-port-on-ODROID-XU.patch b/libre/linux-libre/0008-disable-USB3-port-on-ODROID-XU.patch deleted file mode 100644 index 868d3d5f1..000000000 --- a/libre/linux-libre/0008-disable-USB3-port-on-ODROID-XU.patch +++ /dev/null @@ -1,27 +0,0 @@ -From f9e3db4a1d7ec8578be2012ca727c8a2259f8de8 Mon Sep 17 00:00:00 2001 -From: Kevin Mihelich -Date: Sat, 25 Feb 2017 19:39:51 -0700 -Subject: [PATCH 08/14] disable USB3 port on ODROID-XU - -Ports report over-current condition and are non-operable. - -Signed-off-by: Kevin Mihelich ---- - arch/arm/boot/dts/exynos5410-odroidxu.dts | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts -index a45eaae33f8f..7f7de094724e 100644 ---- a/arch/arm/boot/dts/exynos5410-odroidxu.dts -+++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts -@@ -630,6 +630,7 @@ - - &usbdrd_dwc3_0 { - dr_mode = "host"; -+ status = "disabled"; - }; - - &usbdrd_dwc3_1 { --- -2.16.1 - diff --git a/libre/linux-libre/0009-ARM-dove-enable-ethernet-on-D3Plug.patch b/libre/linux-libre/0009-ARM-dove-enable-ethernet-on-D3Plug.patch deleted file mode 100644 index a1c658823..000000000 --- a/libre/linux-libre/0009-ARM-dove-enable-ethernet-on-D3Plug.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0025f973fdfa0c4409439ee65a4c074241e1d210 Mon Sep 17 00:00:00 2001 -From: Kevin Mihelich -Date: Sun, 7 May 2017 13:32:25 -0600 -Subject: [PATCH 09/14] ARM: dove: enable ethernet on D3Plug - -Signed-off-by: Kevin Mihelich ---- - arch/arm/boot/dts/dove-d3plug.dts | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/arch/arm/boot/dts/dove-d3plug.dts b/arch/arm/boot/dts/dove-d3plug.dts -index 826026c28f90..a4c9963e1261 100644 ---- a/arch/arm/boot/dts/dove-d3plug.dts -+++ b/arch/arm/boot/dts/dove-d3plug.dts -@@ -61,6 +61,13 @@ - &uart0 { status = "okay"; }; - &sata0 { status = "okay"; }; - &i2c0 { status = "okay"; }; -+&mdio { status = "okay"; }; -+ð { status = "okay"; }; -+ -+ðphy { -+ compatible = "marvell,88e1310"; -+ reg = <1>; -+}; - - /* Samsung M8G2F eMMC */ - &sdio0 { --- -2.16.1 - diff --git a/libre/linux-libre/0009-power-add-power-sequence-library.patch b/libre/linux-libre/0009-power-add-power-sequence-library.patch new file mode 100644 index 000000000..049ba39ce --- /dev/null +++ b/libre/linux-libre/0009-power-add-power-sequence-library.patch @@ -0,0 +1,790 @@ +From 4ab3153b568ce58a01e0e379ffe8061c4f0435b6 Mon Sep 17 00:00:00 2001 +From: Peter Chen +Date: Wed, 21 Jun 2017 14:42:03 +0800 +Subject: [PATCH 09/13] power: add power sequence library + +We have an well-known problem that the device needs to do some power +sequence before it can be recognized by related host, the typical +example like hard-wired mmc devices and usb devices. + +This power sequence is hard to be described at device tree and handled by +related host driver, so we have created a common power sequence +library to cover this requirement. The core code has supplied +some common helpers for host driver, and individual power sequence +libraries handle kinds of power sequence for devices. The pwrseq +librares always need to allocate extra instance for compatible +string match. + +pwrseq_generic is intended for general purpose of power sequence, which +handles gpios and clocks currently, and can cover other controls in +future. The host driver just needs to call of_pwrseq_on/of_pwrseq_off +if only one power sequence is needed, else call of_pwrseq_on_list +/of_pwrseq_off_list instead (eg, USB hub driver). + +For new power sequence library, it needs to add its compatible string +and allocation function at pwrseq_match_table_list, then the pwrseq +core will match it with DT's, and choose this library at runtime. + +Signed-off-by: Peter Chen +Tested-by: Maciej S. Szmigiero +Tested-by Joshua Clayton +Reviewed-by: Matthias Kaehlcke +Tested-by: Matthias Kaehlcke +--- + Documentation/power/power-sequence/design.rst | 54 +++++ + MAINTAINERS | 9 + + drivers/power/Kconfig | 1 + + drivers/power/Makefile | 1 + + drivers/power/pwrseq/Kconfig | 20 ++ + drivers/power/pwrseq/Makefile | 2 + + drivers/power/pwrseq/core.c | 293 ++++++++++++++++++++++++++ + drivers/power/pwrseq/pwrseq_generic.c | 210 ++++++++++++++++++ + include/linux/power/pwrseq.h | 84 ++++++++ + 9 files changed, 674 insertions(+) + create mode 100644 Documentation/power/power-sequence/design.rst + create mode 100644 drivers/power/pwrseq/Kconfig + create mode 100644 drivers/power/pwrseq/Makefile + create mode 100644 drivers/power/pwrseq/core.c + create mode 100644 drivers/power/pwrseq/pwrseq_generic.c + create mode 100644 include/linux/power/pwrseq.h + +diff --git a/Documentation/power/power-sequence/design.rst b/Documentation/power/power-sequence/design.rst +new file mode 100644 +index 000000000000..554608e5f3b6 +--- /dev/null ++++ b/Documentation/power/power-sequence/design.rst +@@ -0,0 +1,54 @@ ++==================================== ++Power Sequence Library ++==================================== ++ ++:Date: Feb, 2017 ++:Author: Peter Chen ++ ++ ++Introduction ++============ ++ ++We have an well-known problem that the device needs to do a power ++sequence before it can be recognized by related host, the typical ++examples are hard-wired mmc devices and usb devices. The host controller ++can't know what kinds of this device is in its bus if the power ++sequence has not done, since the related devices driver's probe calling ++is determined by runtime according to eunumeration results. Besides, ++the devices may have custom power sequence, so the power sequence library ++which is independent with the devices is needed. ++ ++Design ++============ ++ ++The power sequence library includes the core file and customer power ++sequence library. The core file exports interfaces are called by ++host controller driver for power sequence and customer power sequence ++library files to register its power sequence instance to global ++power sequence list. The custom power sequence library creates power ++sequence instance and implement custom power sequence. ++ ++Since the power sequence describes hardware design, the description is ++located at board description file, eg, device tree dts file. And ++a specific power sequence belongs to device, so its description ++is under the device node, please refer to: ++Documentation/devicetree/bindings/power/pwrseq/pwrseq-generic.txt ++ ++Custom power sequence library allocates one power sequence instance at ++bootup periods using postcore_initcall, this static allocated instance is ++used to compare with device-tree (DT) node to see if this library can be ++used for the node or not. When the result is matched, the core API will ++try to get resourses (->get, implemented at each library) for power ++sequence, if all resources are got, it will try to allocate another ++instance for next possible request from host driver. ++ ++Then, the host controller driver can carry out power sequence on for this ++DT node, the library will do corresponding operations, like open clocks, ++toggle gpio, etc. The power sequence off routine will close and free the ++resources, and is called when the parent is removed. And the power ++sequence suspend and resume routine can be called at host driver's ++suspend and resume routine if needed. ++ ++The exported interfaces ++.. kernel-doc:: drivers/power/pwrseq/core.c ++ :export: +diff --git a/MAINTAINERS b/MAINTAINERS +index 4623caf8d72d..7569287f8b33 100644 +--- a/MAINTAINERS ++++ b/MAINTAINERS +@@ -11086,6 +11086,15 @@ F: drivers/firmware/psci*.c + F: include/linux/psci.h + F: include/uapi/linux/psci.h + ++POWER SEQUENCE LIBRARY ++M: Peter Chen ++T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git ++L: linux-pm@vger.kernel.org ++S: Maintained ++F: Documentation/devicetree/bindings/power/pwrseq/ ++F: drivers/power/pwrseq/ ++F: include/linux/power/pwrseq.h ++ + POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS + M: Sebastian Reichel + L: linux-pm@vger.kernel.org +diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig +index 63454b5cac27..c1bb0465f956 100644 +--- a/drivers/power/Kconfig ++++ b/drivers/power/Kconfig +@@ -1,3 +1,4 @@ + source "drivers/power/avs/Kconfig" + source "drivers/power/reset/Kconfig" + source "drivers/power/supply/Kconfig" ++source "drivers/power/pwrseq/Kconfig" +diff --git a/drivers/power/Makefile b/drivers/power/Makefile +index ff35c712d824..7db80354b691 100644 +--- a/drivers/power/Makefile ++++ b/drivers/power/Makefile +@@ -1,3 +1,4 @@ + obj-$(CONFIG_POWER_AVS) += avs/ + obj-$(CONFIG_POWER_RESET) += reset/ + obj-$(CONFIG_POWER_SUPPLY) += supply/ ++obj-$(CONFIG_POWER_SEQUENCE) += pwrseq/ +diff --git a/drivers/power/pwrseq/Kconfig b/drivers/power/pwrseq/Kconfig +new file mode 100644 +index 000000000000..c6b356926cca +--- /dev/null ++++ b/drivers/power/pwrseq/Kconfig +@@ -0,0 +1,20 @@ ++# ++# Power Sequence library ++# ++ ++menuconfig POWER_SEQUENCE ++ bool "Power sequence control" ++ help ++ It is used for drivers which needs to do power sequence ++ (eg, turn on clock, toggle reset gpio) before the related ++ devices can be found by hardware, eg, USB bus. ++ ++if POWER_SEQUENCE ++ ++config PWRSEQ_GENERIC ++ bool "Generic power sequence control" ++ depends on OF ++ help ++ This is the generic power sequence control library, and is ++ supposed to support common power sequence usage. ++endif +diff --git a/drivers/power/pwrseq/Makefile b/drivers/power/pwrseq/Makefile +new file mode 100644 +index 000000000000..ad82389028c2 +--- /dev/null ++++ b/drivers/power/pwrseq/Makefile +@@ -0,0 +1,2 @@ ++obj-$(CONFIG_POWER_SEQUENCE) += core.o ++obj-$(CONFIG_PWRSEQ_GENERIC) += pwrseq_generic.o +diff --git a/drivers/power/pwrseq/core.c b/drivers/power/pwrseq/core.c +new file mode 100644 +index 000000000000..6b78a6691683 +--- /dev/null ++++ b/drivers/power/pwrseq/core.c +@@ -0,0 +1,293 @@ ++/* ++ * core.c power sequence core file ++ * ++ * Copyright (C) 2016 Freescale Semiconductor, Inc. ++ * Author: Peter Chen ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 of ++ * the License as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * Static power sequence match table ++ * - Add compatible (the same with dts node) and related allocation function. ++ * - Update related binding doc. ++ */ ++static const struct of_device_id pwrseq_match_table_list[] = { ++ { .compatible = "usb424,2513", .data = &pwrseq_generic_alloc_instance}, ++ { .compatible = "usb424,2514", .data = &pwrseq_generic_alloc_instance}, ++ { /* sentinel */ } ++}; ++ ++static int pwrseq_get(struct device_node *np, struct pwrseq *p) ++{ ++ if (p && p->get) ++ return p->get(np, p); ++ ++ return -ENOTSUPP; ++} ++ ++static int pwrseq_on(struct pwrseq *p) ++{ ++ if (p && p->on) ++ return p->on(p); ++ ++ return -ENOTSUPP; ++} ++ ++static void pwrseq_off(struct pwrseq *p) ++{ ++ if (p && p->off) ++ p->off(p); ++} ++ ++static void pwrseq_put(struct pwrseq *p) ++{ ++ if (p && p->put) ++ p->put(p); ++} ++ ++/** ++ * of_pwrseq_on - Carry out power sequence on for device node ++ * ++ * @np: the device node would like to power on ++ * ++ * Carry out a single device power on. If multiple devices ++ * need to be handled, use of_pwrseq_on_list() instead. ++ * ++ * Return a pointer to the power sequence instance on success, or NULL if ++ * not exist, or an error code on failure. ++ */ ++struct pwrseq *of_pwrseq_on(struct device_node *np) ++{ ++ struct pwrseq *pwrseq; ++ int ret; ++ const struct of_device_id *of_id; ++ struct pwrseq *(*alloc_instance)(void); ++ ++ of_id = of_match_node(pwrseq_match_table_list, np); ++ if (!of_id) ++ return NULL; ++ ++ alloc_instance = of_id->data; ++ /* Allocate pwrseq instance */ ++ pwrseq = alloc_instance(); ++ if (IS_ERR(pwrseq)) ++ return pwrseq; ++ ++ ret = pwrseq_get(np, pwrseq); ++ if (ret) ++ goto pwr_put; ++ ++ ret = pwrseq_on(pwrseq); ++ if (ret) ++ goto pwr_put; ++ ++ return pwrseq; ++ ++pwr_put: ++ pwrseq_put(pwrseq); ++ return ERR_PTR(ret); ++} ++EXPORT_SYMBOL_GPL(of_pwrseq_on); ++ ++/** ++ * of_pwrseq_off - Carry out power sequence off for this pwrseq instance ++ * ++ * @pwrseq: the pwrseq instance which related device would like to be off ++ * ++ * This API is used to power off single device, it is the opposite ++ * operation for of_pwrseq_on. ++ */ ++void of_pwrseq_off(struct pwrseq *pwrseq) ++{ ++ pwrseq_off(pwrseq); ++ pwrseq_put(pwrseq); ++} ++EXPORT_SYMBOL_GPL(of_pwrseq_off); ++ ++/** ++ * of_pwrseq_on_list - Carry out power sequence on for list ++ * ++ * @np: the device node would like to power on ++ * @head: the list head for pwrseq list on this bus ++ * ++ * This API is used to power on multiple devices at single bus. ++ * If there are several devices on bus (eg, USB bus), uses this ++ * this API. Otherwise, use of_pwrseq_on instead. After the device ++ * is powered on successfully, it will be added to pwrseq list for ++ * this bus. The caller needs to use mutex_lock for concurrent. ++ * ++ * Return 0 on success, or -ENOENT if not exist, or an error value on failure. ++ */ ++int of_pwrseq_on_list(struct device_node *np, struct list_head *head) ++{ ++ struct pwrseq *pwrseq; ++ struct pwrseq_list_per_dev *pwrseq_list_node; ++ ++ pwrseq_list_node = kzalloc(sizeof(*pwrseq_list_node), GFP_KERNEL); ++ if (!pwrseq_list_node) ++ return -ENOMEM; ++ ++ pwrseq = of_pwrseq_on(np); ++ if (!pwrseq) ++ return -ENOENT; ++ ++ if (IS_ERR(pwrseq)) { ++ kfree(pwrseq_list_node); ++ return PTR_ERR(pwrseq); ++ } ++ ++ pwrseq_list_node->pwrseq = pwrseq; ++ list_add(&pwrseq_list_node->list, head); ++ ++ return 0; ++} ++EXPORT_SYMBOL_GPL(of_pwrseq_on_list); ++ ++/** ++ * of_pwrseq_off_list - Carry out power sequence off for the list ++ * ++ * @head: the list head for pwrseq instance list on this bus ++ * ++ * This API is used to power off all devices on this bus, it is ++ * the opposite operation for of_pwrseq_on_list. ++ * The caller needs to use mutex_lock for concurrent. ++ */ ++void of_pwrseq_off_list(struct list_head *head) ++{ ++ struct pwrseq *pwrseq; ++ struct pwrseq_list_per_dev *pwrseq_list_node, *tmp_node; ++ ++ list_for_each_entry_safe(pwrseq_list_node, tmp_node, head, list) { ++ pwrseq = pwrseq_list_node->pwrseq; ++ of_pwrseq_off(pwrseq); ++ list_del(&pwrseq_list_node->list); ++ kfree(pwrseq_list_node); ++ } ++} ++EXPORT_SYMBOL_GPL(of_pwrseq_off_list); ++ ++/** ++ * pwrseq_suspend - Carry out power sequence suspend for this pwrseq instance ++ * ++ * @pwrseq: the pwrseq instance ++ * ++ * This API is used to do suspend operation on pwrseq instance. ++ * ++ * Return 0 on success, or an error value otherwise. ++ */ ++int pwrseq_suspend(struct pwrseq *p) ++{ ++ int ret = 0; ++ ++ if (p && p->suspend) ++ ret = p->suspend(p); ++ else ++ return ret; ++ ++ if (!ret) ++ p->suspended = true; ++ else ++ pr_err("%s failed\n", __func__); ++ ++ return ret; ++} ++EXPORT_SYMBOL_GPL(pwrseq_suspend); ++ ++/** ++ * pwrseq_resume - Carry out power sequence resume for this pwrseq instance ++ * ++ * @pwrseq: the pwrseq instance ++ * ++ * This API is used to do resume operation on pwrseq instance. ++ * ++ * Return 0 on success, or an error value otherwise. ++ */ ++int pwrseq_resume(struct pwrseq *p) ++{ ++ int ret = 0; ++ ++ if (p && p->resume) ++ ret = p->resume(p); ++ else ++ return ret; ++ ++ if (!ret) ++ p->suspended = false; ++ else ++ pr_err("%s failed\n", __func__); ++ ++ return ret; ++} ++EXPORT_SYMBOL_GPL(pwrseq_resume); ++ ++/** ++ * pwrseq_suspend_list - Carry out power sequence suspend for list ++ * ++ * @head: the list head for pwrseq instance list on this bus ++ * ++ * This API is used to do suspend on all power sequence instances on this bus. ++ * The caller needs to use mutex_lock for concurrent. ++ */ ++int pwrseq_suspend_list(struct list_head *head) ++{ ++ struct pwrseq *pwrseq; ++ struct pwrseq_list_per_dev *pwrseq_list_node; ++ int ret = 0; ++ ++ list_for_each_entry(pwrseq_list_node, head, list) { ++ ret = pwrseq_suspend(pwrseq_list_node->pwrseq); ++ if (ret) ++ break; ++ } ++ ++ if (ret) { ++ list_for_each_entry(pwrseq_list_node, head, list) { ++ pwrseq = pwrseq_list_node->pwrseq; ++ if (pwrseq->suspended) ++ pwrseq_resume(pwrseq); ++ } ++ } ++ ++ return ret; ++} ++EXPORT_SYMBOL_GPL(pwrseq_suspend_list); ++ ++/** ++ * pwrseq_resume_list - Carry out power sequence resume for the list ++ * ++ * @head: the list head for pwrseq instance list on this bus ++ * ++ * This API is used to do resume on all power sequence instances on this bus. ++ * The caller needs to use mutex_lock for concurrent. ++ */ ++int pwrseq_resume_list(struct list_head *head) ++{ ++ struct pwrseq_list_per_dev *pwrseq_list_node; ++ int ret = 0; ++ ++ list_for_each_entry(pwrseq_list_node, head, list) { ++ ret = pwrseq_resume(pwrseq_list_node->pwrseq); ++ if (ret) ++ break; ++ } ++ ++ return ret; ++} ++EXPORT_SYMBOL_GPL(pwrseq_resume_list); +diff --git a/drivers/power/pwrseq/pwrseq_generic.c b/drivers/power/pwrseq/pwrseq_generic.c +new file mode 100644 +index 000000000000..b7bbd6c5b47d +--- /dev/null ++++ b/drivers/power/pwrseq/pwrseq_generic.c +@@ -0,0 +1,210 @@ ++/* ++ * pwrseq_generic.c Generic power sequence handling ++ * ++ * Copyright (C) 2016 Freescale Semiconductor, Inc. ++ * Author: Peter Chen ++ * ++ * This program is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 of ++ * the License as published by the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++struct pwrseq_generic { ++ struct pwrseq pwrseq; ++ struct gpio_desc *gpiod_reset; ++ struct clk *clks[PWRSEQ_MAX_CLKS]; ++ u32 duration_us; ++ bool suspended; ++}; ++ ++#define to_generic_pwrseq(p) container_of(p, struct pwrseq_generic, pwrseq) ++ ++static int pwrseq_generic_suspend(struct pwrseq *pwrseq) ++{ ++ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); ++ int clk; ++ ++ for (clk = PWRSEQ_MAX_CLKS - 1; clk >= 0; clk--) ++ clk_disable_unprepare(pwrseq_gen->clks[clk]); ++ ++ pwrseq_gen->suspended = true; ++ return 0; ++} ++ ++static int pwrseq_generic_resume(struct pwrseq *pwrseq) ++{ ++ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); ++ int clk, ret = 0; ++ ++ for (clk = 0; clk < PWRSEQ_MAX_CLKS && pwrseq_gen->clks[clk]; clk++) { ++ ret = clk_prepare_enable(pwrseq_gen->clks[clk]); ++ if (ret) { ++ pr_err("Can't enable clock, ret=%d\n", ret); ++ goto err_disable_clks; ++ } ++ } ++ ++ pwrseq_gen->suspended = false; ++ return ret; ++ ++err_disable_clks: ++ while (--clk >= 0) ++ clk_disable_unprepare(pwrseq_gen->clks[clk]); ++ ++ return ret; ++} ++ ++static void pwrseq_generic_put(struct pwrseq *pwrseq) ++{ ++ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); ++ int clk; ++ ++ if (pwrseq_gen->gpiod_reset) ++ gpiod_put(pwrseq_gen->gpiod_reset); ++ ++ for (clk = 0; clk < PWRSEQ_MAX_CLKS; clk++) ++ clk_put(pwrseq_gen->clks[clk]); ++ ++ kfree(pwrseq_gen); ++} ++ ++static void pwrseq_generic_off(struct pwrseq *pwrseq) ++{ ++ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); ++ int clk; ++ ++ if (pwrseq_gen->suspended) ++ return; ++ ++ for (clk = PWRSEQ_MAX_CLKS - 1; clk >= 0; clk--) ++ clk_disable_unprepare(pwrseq_gen->clks[clk]); ++} ++ ++static int pwrseq_generic_on(struct pwrseq *pwrseq) ++{ ++ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); ++ int clk, ret = 0; ++ struct gpio_desc *gpiod_reset = pwrseq_gen->gpiod_reset; ++ ++ for (clk = 0; clk < PWRSEQ_MAX_CLKS && pwrseq_gen->clks[clk]; clk++) { ++ ret = clk_prepare_enable(pwrseq_gen->clks[clk]); ++ if (ret) { ++ pr_err("Can't enable clock, ret=%d\n", ret); ++ goto err_disable_clks; ++ } ++ } ++ ++ if (gpiod_reset) { ++ u32 duration_us = pwrseq_gen->duration_us; ++ ++ if (duration_us <= 10) ++ udelay(10); ++ else ++ usleep_range(duration_us, duration_us + 100); ++ gpiod_set_value(gpiod_reset, 0); ++ } ++ ++ return ret; ++ ++err_disable_clks: ++ while (--clk >= 0) ++ clk_disable_unprepare(pwrseq_gen->clks[clk]); ++ ++ return ret; ++} ++ ++static int pwrseq_generic_get(struct device_node *np, struct pwrseq *pwrseq) ++{ ++ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); ++ enum of_gpio_flags flags; ++ int reset_gpio, clk, ret = 0; ++ ++ for (clk = 0; clk < PWRSEQ_MAX_CLKS; clk++) { ++ pwrseq_gen->clks[clk] = of_clk_get(np, clk); ++ if (IS_ERR(pwrseq_gen->clks[clk])) { ++ ret = PTR_ERR(pwrseq_gen->clks[clk]); ++ if (ret != -ENOENT) ++ goto err_put_clks; ++ pwrseq_gen->clks[clk] = NULL; ++ break; ++ } ++ } ++ ++ reset_gpio = of_get_named_gpio_flags(np, "reset-gpios", 0, &flags); ++ if (gpio_is_valid(reset_gpio)) { ++ unsigned long gpio_flags; ++ ++ if (flags & OF_GPIO_ACTIVE_LOW) ++ gpio_flags = GPIOF_ACTIVE_LOW | GPIOF_OUT_INIT_LOW; ++ else ++ gpio_flags = GPIOF_OUT_INIT_HIGH; ++ ++ ret = gpio_request_one(reset_gpio, gpio_flags, ++ "pwrseq-reset-gpios"); ++ if (ret) ++ goto err_put_clks; ++ ++ pwrseq_gen->gpiod_reset = gpio_to_desc(reset_gpio); ++ of_property_read_u32(np, "reset-duration-us", ++ &pwrseq_gen->duration_us); ++ } else if (reset_gpio == -ENOENT) { ++ ; /* no such gpio */ ++ } else { ++ ret = reset_gpio; ++ pr_err("Failed to get reset gpio on %s, err = %d\n", ++ np->full_name, reset_gpio); ++ goto err_put_clks; ++ } ++ ++ return 0; ++ ++err_put_clks: ++ while (--clk >= 0) ++ clk_put(pwrseq_gen->clks[clk]); ++ return ret; ++} ++ ++/** ++ * pwrseq_generic_alloc_instance - power sequence instance allocation ++ * ++ * This function is used to allocate one generic power sequence instance, ++ * it is called when the system boots up and after one power sequence ++ * instance is got successfully. ++ * ++ * Return zero on success or an error code otherwise. ++ */ ++struct pwrseq *pwrseq_generic_alloc_instance(void) ++{ ++ struct pwrseq_generic *pwrseq_gen; ++ ++ pwrseq_gen = kzalloc(sizeof(*pwrseq_gen), GFP_KERNEL); ++ if (!pwrseq_gen) ++ return ERR_PTR(-ENOMEM); ++ ++ pwrseq_gen->pwrseq.get = pwrseq_generic_get; ++ pwrseq_gen->pwrseq.on = pwrseq_generic_on; ++ pwrseq_gen->pwrseq.off = pwrseq_generic_off; ++ pwrseq_gen->pwrseq.put = pwrseq_generic_put; ++ pwrseq_gen->pwrseq.suspend = pwrseq_generic_suspend; ++ pwrseq_gen->pwrseq.resume = pwrseq_generic_resume; ++ ++ return &pwrseq_gen->pwrseq; ++} +diff --git a/include/linux/power/pwrseq.h b/include/linux/power/pwrseq.h +new file mode 100644 +index 000000000000..c5b278f5f2ae +--- /dev/null ++++ b/include/linux/power/pwrseq.h +@@ -0,0 +1,84 @@ ++#ifndef __LINUX_PWRSEQ_H ++#define __LINUX_PWRSEQ_H ++ ++#include ++ ++#define PWRSEQ_MAX_CLKS 3 ++ ++/** ++ * struct pwrseq - the power sequence structure ++ * @pwrseq_of_match_table: the OF device id table this pwrseq library supports ++ * @node: the list pointer to be added to pwrseq list ++ * @get: the API is used to get pwrseq instance from the device node ++ * @on: do power on for this pwrseq instance ++ * @off: do power off for this pwrseq instance ++ * @put: release the resources on this pwrseq instance ++ * @suspend: do suspend operation on this pwrseq instance ++ * @resume: do resume operation on this pwrseq instance ++ */ ++struct pwrseq { ++ const struct of_device_id *pwrseq_of_match_table; ++ struct list_head node; ++ int (*get)(struct device_node *np, struct pwrseq *p); ++ int (*on)(struct pwrseq *p); ++ void (*off)(struct pwrseq *p); ++ void (*put)(struct pwrseq *p); ++ int (*suspend)(struct pwrseq *p); ++ int (*resume)(struct pwrseq *p); ++ bool suspended; ++}; ++ ++/* used for power sequence instance list in one driver */ ++struct pwrseq_list_per_dev { ++ struct pwrseq *pwrseq; ++ struct list_head list; ++}; ++ ++#if IS_ENABLED(CONFIG_POWER_SEQUENCE) ++struct pwrseq *of_pwrseq_on(struct device_node *np); ++void of_pwrseq_off(struct pwrseq *pwrseq); ++int of_pwrseq_on_list(struct device_node *np, struct list_head *head); ++void of_pwrseq_off_list(struct list_head *head); ++int pwrseq_suspend(struct pwrseq *p); ++int pwrseq_resume(struct pwrseq *p); ++int pwrseq_suspend_list(struct list_head *head); ++int pwrseq_resume_list(struct list_head *head); ++#else ++static inline struct pwrseq *of_pwrseq_on(struct device_node *np) ++{ ++ return NULL; ++} ++static void of_pwrseq_off(struct pwrseq *pwrseq) {} ++static int of_pwrseq_on_list(struct device_node *np, struct list_head *head) ++{ ++ return 0; ++} ++static void of_pwrseq_off_list(struct list_head *head) {} ++static int pwrseq_suspend(struct pwrseq *p) ++{ ++ return 0; ++} ++static int pwrseq_resume(struct pwrseq *p) ++{ ++ return 0; ++} ++static int pwrseq_suspend_list(struct list_head *head) ++{ ++ return 0; ++} ++static int pwrseq_resume_list(struct list_head *head) ++{ ++ return 0; ++} ++#endif /* CONFIG_POWER_SEQUENCE */ ++ ++#if IS_ENABLED(CONFIG_PWRSEQ_GENERIC) ++extern struct pwrseq *pwrseq_generic_alloc_instance(void); ++#else ++static inline struct pwrseq *pwrseq_generic_alloc_instance(void) ++{ ++ return ERR_PTR(-ENOTSUPP); ++} ++#endif /* CONFIG_PWRSEQ_GENERIC */ ++ ++#endif /* __LINUX_PWRSEQ_H */ +-- +2.16.2 + diff --git a/libre/linux-libre/0010-power-add-power-sequence-library.patch b/libre/linux-libre/0010-power-add-power-sequence-library.patch deleted file mode 100644 index 74d8a615d..000000000 --- a/libre/linux-libre/0010-power-add-power-sequence-library.patch +++ /dev/null @@ -1,790 +0,0 @@ -From c63f0d2231c841534a30c60db102ad9afc835994 Mon Sep 17 00:00:00 2001 -From: Peter Chen -Date: Wed, 21 Jun 2017 14:42:03 +0800 -Subject: [PATCH 10/14] power: add power sequence library - -We have an well-known problem that the device needs to do some power -sequence before it can be recognized by related host, the typical -example like hard-wired mmc devices and usb devices. - -This power sequence is hard to be described at device tree and handled by -related host driver, so we have created a common power sequence -library to cover this requirement. The core code has supplied -some common helpers for host driver, and individual power sequence -libraries handle kinds of power sequence for devices. The pwrseq -librares always need to allocate extra instance for compatible -string match. - -pwrseq_generic is intended for general purpose of power sequence, which -handles gpios and clocks currently, and can cover other controls in -future. The host driver just needs to call of_pwrseq_on/of_pwrseq_off -if only one power sequence is needed, else call of_pwrseq_on_list -/of_pwrseq_off_list instead (eg, USB hub driver). - -For new power sequence library, it needs to add its compatible string -and allocation function at pwrseq_match_table_list, then the pwrseq -core will match it with DT's, and choose this library at runtime. - -Signed-off-by: Peter Chen -Tested-by: Maciej S. Szmigiero -Tested-by Joshua Clayton -Reviewed-by: Matthias Kaehlcke -Tested-by: Matthias Kaehlcke ---- - Documentation/power/power-sequence/design.rst | 54 +++++ - MAINTAINERS | 9 + - drivers/power/Kconfig | 1 + - drivers/power/Makefile | 1 + - drivers/power/pwrseq/Kconfig | 20 ++ - drivers/power/pwrseq/Makefile | 2 + - drivers/power/pwrseq/core.c | 293 ++++++++++++++++++++++++++ - drivers/power/pwrseq/pwrseq_generic.c | 210 ++++++++++++++++++ - include/linux/power/pwrseq.h | 84 ++++++++ - 9 files changed, 674 insertions(+) - create mode 100644 Documentation/power/power-sequence/design.rst - create mode 100644 drivers/power/pwrseq/Kconfig - create mode 100644 drivers/power/pwrseq/Makefile - create mode 100644 drivers/power/pwrseq/core.c - create mode 100644 drivers/power/pwrseq/pwrseq_generic.c - create mode 100644 include/linux/power/pwrseq.h - -diff --git a/Documentation/power/power-sequence/design.rst b/Documentation/power/power-sequence/design.rst -new file mode 100644 -index 000000000000..554608e5f3b6 ---- /dev/null -+++ b/Documentation/power/power-sequence/design.rst -@@ -0,0 +1,54 @@ -+==================================== -+Power Sequence Library -+==================================== -+ -+:Date: Feb, 2017 -+:Author: Peter Chen -+ -+ -+Introduction -+============ -+ -+We have an well-known problem that the device needs to do a power -+sequence before it can be recognized by related host, the typical -+examples are hard-wired mmc devices and usb devices. The host controller -+can't know what kinds of this device is in its bus if the power -+sequence has not done, since the related devices driver's probe calling -+is determined by runtime according to eunumeration results. Besides, -+the devices may have custom power sequence, so the power sequence library -+which is independent with the devices is needed. -+ -+Design -+============ -+ -+The power sequence library includes the core file and customer power -+sequence library. The core file exports interfaces are called by -+host controller driver for power sequence and customer power sequence -+library files to register its power sequence instance to global -+power sequence list. The custom power sequence library creates power -+sequence instance and implement custom power sequence. -+ -+Since the power sequence describes hardware design, the description is -+located at board description file, eg, device tree dts file. And -+a specific power sequence belongs to device, so its description -+is under the device node, please refer to: -+Documentation/devicetree/bindings/power/pwrseq/pwrseq-generic.txt -+ -+Custom power sequence library allocates one power sequence instance at -+bootup periods using postcore_initcall, this static allocated instance is -+used to compare with device-tree (DT) node to see if this library can be -+used for the node or not. When the result is matched, the core API will -+try to get resourses (->get, implemented at each library) for power -+sequence, if all resources are got, it will try to allocate another -+instance for next possible request from host driver. -+ -+Then, the host controller driver can carry out power sequence on for this -+DT node, the library will do corresponding operations, like open clocks, -+toggle gpio, etc. The power sequence off routine will close and free the -+resources, and is called when the parent is removed. And the power -+sequence suspend and resume routine can be called at host driver's -+suspend and resume routine if needed. -+ -+The exported interfaces -+.. kernel-doc:: drivers/power/pwrseq/core.c -+ :export: -diff --git a/MAINTAINERS b/MAINTAINERS -index 845fc25812f1..c0925efb554c 100644 ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -10898,6 +10898,15 @@ F: drivers/firmware/psci*.c - F: include/linux/psci.h - F: include/uapi/linux/psci.h - -+POWER SEQUENCE LIBRARY -+M: Peter Chen -+T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git -+L: linux-pm@vger.kernel.org -+S: Maintained -+F: Documentation/devicetree/bindings/power/pwrseq/ -+F: drivers/power/pwrseq/ -+F: include/linux/power/pwrseq.h -+ - POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS - M: Sebastian Reichel - L: linux-pm@vger.kernel.org -diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig -index 63454b5cac27..c1bb0465f956 100644 ---- a/drivers/power/Kconfig -+++ b/drivers/power/Kconfig -@@ -1,3 +1,4 @@ - source "drivers/power/avs/Kconfig" - source "drivers/power/reset/Kconfig" - source "drivers/power/supply/Kconfig" -+source "drivers/power/pwrseq/Kconfig" -diff --git a/drivers/power/Makefile b/drivers/power/Makefile -index ff35c712d824..7db80354b691 100644 ---- a/drivers/power/Makefile -+++ b/drivers/power/Makefile -@@ -1,3 +1,4 @@ - obj-$(CONFIG_POWER_AVS) += avs/ - obj-$(CONFIG_POWER_RESET) += reset/ - obj-$(CONFIG_POWER_SUPPLY) += supply/ -+obj-$(CONFIG_POWER_SEQUENCE) += pwrseq/ -diff --git a/drivers/power/pwrseq/Kconfig b/drivers/power/pwrseq/Kconfig -new file mode 100644 -index 000000000000..c6b356926cca ---- /dev/null -+++ b/drivers/power/pwrseq/Kconfig -@@ -0,0 +1,20 @@ -+# -+# Power Sequence library -+# -+ -+menuconfig POWER_SEQUENCE -+ bool "Power sequence control" -+ help -+ It is used for drivers which needs to do power sequence -+ (eg, turn on clock, toggle reset gpio) before the related -+ devices can be found by hardware, eg, USB bus. -+ -+if POWER_SEQUENCE -+ -+config PWRSEQ_GENERIC -+ bool "Generic power sequence control" -+ depends on OF -+ help -+ This is the generic power sequence control library, and is -+ supposed to support common power sequence usage. -+endif -diff --git a/drivers/power/pwrseq/Makefile b/drivers/power/pwrseq/Makefile -new file mode 100644 -index 000000000000..ad82389028c2 ---- /dev/null -+++ b/drivers/power/pwrseq/Makefile -@@ -0,0 +1,2 @@ -+obj-$(CONFIG_POWER_SEQUENCE) += core.o -+obj-$(CONFIG_PWRSEQ_GENERIC) += pwrseq_generic.o -diff --git a/drivers/power/pwrseq/core.c b/drivers/power/pwrseq/core.c -new file mode 100644 -index 000000000000..6b78a6691683 ---- /dev/null -+++ b/drivers/power/pwrseq/core.c -@@ -0,0 +1,293 @@ -+/* -+ * core.c power sequence core file -+ * -+ * Copyright (C) 2016 Freescale Semiconductor, Inc. -+ * Author: Peter Chen -+ * -+ * This program is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 of -+ * the License as published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+/* -+ * Static power sequence match table -+ * - Add compatible (the same with dts node) and related allocation function. -+ * - Update related binding doc. -+ */ -+static const struct of_device_id pwrseq_match_table_list[] = { -+ { .compatible = "usb424,2513", .data = &pwrseq_generic_alloc_instance}, -+ { .compatible = "usb424,2514", .data = &pwrseq_generic_alloc_instance}, -+ { /* sentinel */ } -+}; -+ -+static int pwrseq_get(struct device_node *np, struct pwrseq *p) -+{ -+ if (p && p->get) -+ return p->get(np, p); -+ -+ return -ENOTSUPP; -+} -+ -+static int pwrseq_on(struct pwrseq *p) -+{ -+ if (p && p->on) -+ return p->on(p); -+ -+ return -ENOTSUPP; -+} -+ -+static void pwrseq_off(struct pwrseq *p) -+{ -+ if (p && p->off) -+ p->off(p); -+} -+ -+static void pwrseq_put(struct pwrseq *p) -+{ -+ if (p && p->put) -+ p->put(p); -+} -+ -+/** -+ * of_pwrseq_on - Carry out power sequence on for device node -+ * -+ * @np: the device node would like to power on -+ * -+ * Carry out a single device power on. If multiple devices -+ * need to be handled, use of_pwrseq_on_list() instead. -+ * -+ * Return a pointer to the power sequence instance on success, or NULL if -+ * not exist, or an error code on failure. -+ */ -+struct pwrseq *of_pwrseq_on(struct device_node *np) -+{ -+ struct pwrseq *pwrseq; -+ int ret; -+ const struct of_device_id *of_id; -+ struct pwrseq *(*alloc_instance)(void); -+ -+ of_id = of_match_node(pwrseq_match_table_list, np); -+ if (!of_id) -+ return NULL; -+ -+ alloc_instance = of_id->data; -+ /* Allocate pwrseq instance */ -+ pwrseq = alloc_instance(); -+ if (IS_ERR(pwrseq)) -+ return pwrseq; -+ -+ ret = pwrseq_get(np, pwrseq); -+ if (ret) -+ goto pwr_put; -+ -+ ret = pwrseq_on(pwrseq); -+ if (ret) -+ goto pwr_put; -+ -+ return pwrseq; -+ -+pwr_put: -+ pwrseq_put(pwrseq); -+ return ERR_PTR(ret); -+} -+EXPORT_SYMBOL_GPL(of_pwrseq_on); -+ -+/** -+ * of_pwrseq_off - Carry out power sequence off for this pwrseq instance -+ * -+ * @pwrseq: the pwrseq instance which related device would like to be off -+ * -+ * This API is used to power off single device, it is the opposite -+ * operation for of_pwrseq_on. -+ */ -+void of_pwrseq_off(struct pwrseq *pwrseq) -+{ -+ pwrseq_off(pwrseq); -+ pwrseq_put(pwrseq); -+} -+EXPORT_SYMBOL_GPL(of_pwrseq_off); -+ -+/** -+ * of_pwrseq_on_list - Carry out power sequence on for list -+ * -+ * @np: the device node would like to power on -+ * @head: the list head for pwrseq list on this bus -+ * -+ * This API is used to power on multiple devices at single bus. -+ * If there are several devices on bus (eg, USB bus), uses this -+ * this API. Otherwise, use of_pwrseq_on instead. After the device -+ * is powered on successfully, it will be added to pwrseq list for -+ * this bus. The caller needs to use mutex_lock for concurrent. -+ * -+ * Return 0 on success, or -ENOENT if not exist, or an error value on failure. -+ */ -+int of_pwrseq_on_list(struct device_node *np, struct list_head *head) -+{ -+ struct pwrseq *pwrseq; -+ struct pwrseq_list_per_dev *pwrseq_list_node; -+ -+ pwrseq_list_node = kzalloc(sizeof(*pwrseq_list_node), GFP_KERNEL); -+ if (!pwrseq_list_node) -+ return -ENOMEM; -+ -+ pwrseq = of_pwrseq_on(np); -+ if (!pwrseq) -+ return -ENOENT; -+ -+ if (IS_ERR(pwrseq)) { -+ kfree(pwrseq_list_node); -+ return PTR_ERR(pwrseq); -+ } -+ -+ pwrseq_list_node->pwrseq = pwrseq; -+ list_add(&pwrseq_list_node->list, head); -+ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(of_pwrseq_on_list); -+ -+/** -+ * of_pwrseq_off_list - Carry out power sequence off for the list -+ * -+ * @head: the list head for pwrseq instance list on this bus -+ * -+ * This API is used to power off all devices on this bus, it is -+ * the opposite operation for of_pwrseq_on_list. -+ * The caller needs to use mutex_lock for concurrent. -+ */ -+void of_pwrseq_off_list(struct list_head *head) -+{ -+ struct pwrseq *pwrseq; -+ struct pwrseq_list_per_dev *pwrseq_list_node, *tmp_node; -+ -+ list_for_each_entry_safe(pwrseq_list_node, tmp_node, head, list) { -+ pwrseq = pwrseq_list_node->pwrseq; -+ of_pwrseq_off(pwrseq); -+ list_del(&pwrseq_list_node->list); -+ kfree(pwrseq_list_node); -+ } -+} -+EXPORT_SYMBOL_GPL(of_pwrseq_off_list); -+ -+/** -+ * pwrseq_suspend - Carry out power sequence suspend for this pwrseq instance -+ * -+ * @pwrseq: the pwrseq instance -+ * -+ * This API is used to do suspend operation on pwrseq instance. -+ * -+ * Return 0 on success, or an error value otherwise. -+ */ -+int pwrseq_suspend(struct pwrseq *p) -+{ -+ int ret = 0; -+ -+ if (p && p->suspend) -+ ret = p->suspend(p); -+ else -+ return ret; -+ -+ if (!ret) -+ p->suspended = true; -+ else -+ pr_err("%s failed\n", __func__); -+ -+ return ret; -+} -+EXPORT_SYMBOL_GPL(pwrseq_suspend); -+ -+/** -+ * pwrseq_resume - Carry out power sequence resume for this pwrseq instance -+ * -+ * @pwrseq: the pwrseq instance -+ * -+ * This API is used to do resume operation on pwrseq instance. -+ * -+ * Return 0 on success, or an error value otherwise. -+ */ -+int pwrseq_resume(struct pwrseq *p) -+{ -+ int ret = 0; -+ -+ if (p && p->resume) -+ ret = p->resume(p); -+ else -+ return ret; -+ -+ if (!ret) -+ p->suspended = false; -+ else -+ pr_err("%s failed\n", __func__); -+ -+ return ret; -+} -+EXPORT_SYMBOL_GPL(pwrseq_resume); -+ -+/** -+ * pwrseq_suspend_list - Carry out power sequence suspend for list -+ * -+ * @head: the list head for pwrseq instance list on this bus -+ * -+ * This API is used to do suspend on all power sequence instances on this bus. -+ * The caller needs to use mutex_lock for concurrent. -+ */ -+int pwrseq_suspend_list(struct list_head *head) -+{ -+ struct pwrseq *pwrseq; -+ struct pwrseq_list_per_dev *pwrseq_list_node; -+ int ret = 0; -+ -+ list_for_each_entry(pwrseq_list_node, head, list) { -+ ret = pwrseq_suspend(pwrseq_list_node->pwrseq); -+ if (ret) -+ break; -+ } -+ -+ if (ret) { -+ list_for_each_entry(pwrseq_list_node, head, list) { -+ pwrseq = pwrseq_list_node->pwrseq; -+ if (pwrseq->suspended) -+ pwrseq_resume(pwrseq); -+ } -+ } -+ -+ return ret; -+} -+EXPORT_SYMBOL_GPL(pwrseq_suspend_list); -+ -+/** -+ * pwrseq_resume_list - Carry out power sequence resume for the list -+ * -+ * @head: the list head for pwrseq instance list on this bus -+ * -+ * This API is used to do resume on all power sequence instances on this bus. -+ * The caller needs to use mutex_lock for concurrent. -+ */ -+int pwrseq_resume_list(struct list_head *head) -+{ -+ struct pwrseq_list_per_dev *pwrseq_list_node; -+ int ret = 0; -+ -+ list_for_each_entry(pwrseq_list_node, head, list) { -+ ret = pwrseq_resume(pwrseq_list_node->pwrseq); -+ if (ret) -+ break; -+ } -+ -+ return ret; -+} -+EXPORT_SYMBOL_GPL(pwrseq_resume_list); -diff --git a/drivers/power/pwrseq/pwrseq_generic.c b/drivers/power/pwrseq/pwrseq_generic.c -new file mode 100644 -index 000000000000..b7bbd6c5b47d ---- /dev/null -+++ b/drivers/power/pwrseq/pwrseq_generic.c -@@ -0,0 +1,210 @@ -+/* -+ * pwrseq_generic.c Generic power sequence handling -+ * -+ * Copyright (C) 2016 Freescale Semiconductor, Inc. -+ * Author: Peter Chen -+ * -+ * This program is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 of -+ * the License as published by the Free Software Foundation. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+struct pwrseq_generic { -+ struct pwrseq pwrseq; -+ struct gpio_desc *gpiod_reset; -+ struct clk *clks[PWRSEQ_MAX_CLKS]; -+ u32 duration_us; -+ bool suspended; -+}; -+ -+#define to_generic_pwrseq(p) container_of(p, struct pwrseq_generic, pwrseq) -+ -+static int pwrseq_generic_suspend(struct pwrseq *pwrseq) -+{ -+ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); -+ int clk; -+ -+ for (clk = PWRSEQ_MAX_CLKS - 1; clk >= 0; clk--) -+ clk_disable_unprepare(pwrseq_gen->clks[clk]); -+ -+ pwrseq_gen->suspended = true; -+ return 0; -+} -+ -+static int pwrseq_generic_resume(struct pwrseq *pwrseq) -+{ -+ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); -+ int clk, ret = 0; -+ -+ for (clk = 0; clk < PWRSEQ_MAX_CLKS && pwrseq_gen->clks[clk]; clk++) { -+ ret = clk_prepare_enable(pwrseq_gen->clks[clk]); -+ if (ret) { -+ pr_err("Can't enable clock, ret=%d\n", ret); -+ goto err_disable_clks; -+ } -+ } -+ -+ pwrseq_gen->suspended = false; -+ return ret; -+ -+err_disable_clks: -+ while (--clk >= 0) -+ clk_disable_unprepare(pwrseq_gen->clks[clk]); -+ -+ return ret; -+} -+ -+static void pwrseq_generic_put(struct pwrseq *pwrseq) -+{ -+ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); -+ int clk; -+ -+ if (pwrseq_gen->gpiod_reset) -+ gpiod_put(pwrseq_gen->gpiod_reset); -+ -+ for (clk = 0; clk < PWRSEQ_MAX_CLKS; clk++) -+ clk_put(pwrseq_gen->clks[clk]); -+ -+ kfree(pwrseq_gen); -+} -+ -+static void pwrseq_generic_off(struct pwrseq *pwrseq) -+{ -+ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); -+ int clk; -+ -+ if (pwrseq_gen->suspended) -+ return; -+ -+ for (clk = PWRSEQ_MAX_CLKS - 1; clk >= 0; clk--) -+ clk_disable_unprepare(pwrseq_gen->clks[clk]); -+} -+ -+static int pwrseq_generic_on(struct pwrseq *pwrseq) -+{ -+ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); -+ int clk, ret = 0; -+ struct gpio_desc *gpiod_reset = pwrseq_gen->gpiod_reset; -+ -+ for (clk = 0; clk < PWRSEQ_MAX_CLKS && pwrseq_gen->clks[clk]; clk++) { -+ ret = clk_prepare_enable(pwrseq_gen->clks[clk]); -+ if (ret) { -+ pr_err("Can't enable clock, ret=%d\n", ret); -+ goto err_disable_clks; -+ } -+ } -+ -+ if (gpiod_reset) { -+ u32 duration_us = pwrseq_gen->duration_us; -+ -+ if (duration_us <= 10) -+ udelay(10); -+ else -+ usleep_range(duration_us, duration_us + 100); -+ gpiod_set_value(gpiod_reset, 0); -+ } -+ -+ return ret; -+ -+err_disable_clks: -+ while (--clk >= 0) -+ clk_disable_unprepare(pwrseq_gen->clks[clk]); -+ -+ return ret; -+} -+ -+static int pwrseq_generic_get(struct device_node *np, struct pwrseq *pwrseq) -+{ -+ struct pwrseq_generic *pwrseq_gen = to_generic_pwrseq(pwrseq); -+ enum of_gpio_flags flags; -+ int reset_gpio, clk, ret = 0; -+ -+ for (clk = 0; clk < PWRSEQ_MAX_CLKS; clk++) { -+ pwrseq_gen->clks[clk] = of_clk_get(np, clk); -+ if (IS_ERR(pwrseq_gen->clks[clk])) { -+ ret = PTR_ERR(pwrseq_gen->clks[clk]); -+ if (ret != -ENOENT) -+ goto err_put_clks; -+ pwrseq_gen->clks[clk] = NULL; -+ break; -+ } -+ } -+ -+ reset_gpio = of_get_named_gpio_flags(np, "reset-gpios", 0, &flags); -+ if (gpio_is_valid(reset_gpio)) { -+ unsigned long gpio_flags; -+ -+ if (flags & OF_GPIO_ACTIVE_LOW) -+ gpio_flags = GPIOF_ACTIVE_LOW | GPIOF_OUT_INIT_LOW; -+ else -+ gpio_flags = GPIOF_OUT_INIT_HIGH; -+ -+ ret = gpio_request_one(reset_gpio, gpio_flags, -+ "pwrseq-reset-gpios"); -+ if (ret) -+ goto err_put_clks; -+ -+ pwrseq_gen->gpiod_reset = gpio_to_desc(reset_gpio); -+ of_property_read_u32(np, "reset-duration-us", -+ &pwrseq_gen->duration_us); -+ } else if (reset_gpio == -ENOENT) { -+ ; /* no such gpio */ -+ } else { -+ ret = reset_gpio; -+ pr_err("Failed to get reset gpio on %s, err = %d\n", -+ np->full_name, reset_gpio); -+ goto err_put_clks; -+ } -+ -+ return 0; -+ -+err_put_clks: -+ while (--clk >= 0) -+ clk_put(pwrseq_gen->clks[clk]); -+ return ret; -+} -+ -+/** -+ * pwrseq_generic_alloc_instance - power sequence instance allocation -+ * -+ * This function is used to allocate one generic power sequence instance, -+ * it is called when the system boots up and after one power sequence -+ * instance is got successfully. -+ * -+ * Return zero on success or an error code otherwise. -+ */ -+struct pwrseq *pwrseq_generic_alloc_instance(void) -+{ -+ struct pwrseq_generic *pwrseq_gen; -+ -+ pwrseq_gen = kzalloc(sizeof(*pwrseq_gen), GFP_KERNEL); -+ if (!pwrseq_gen) -+ return ERR_PTR(-ENOMEM); -+ -+ pwrseq_gen->pwrseq.get = pwrseq_generic_get; -+ pwrseq_gen->pwrseq.on = pwrseq_generic_on; -+ pwrseq_gen->pwrseq.off = pwrseq_generic_off; -+ pwrseq_gen->pwrseq.put = pwrseq_generic_put; -+ pwrseq_gen->pwrseq.suspend = pwrseq_generic_suspend; -+ pwrseq_gen->pwrseq.resume = pwrseq_generic_resume; -+ -+ return &pwrseq_gen->pwrseq; -+} -diff --git a/include/linux/power/pwrseq.h b/include/linux/power/pwrseq.h -new file mode 100644 -index 000000000000..c5b278f5f2ae ---- /dev/null -+++ b/include/linux/power/pwrseq.h -@@ -0,0 +1,84 @@ -+#ifndef __LINUX_PWRSEQ_H -+#define __LINUX_PWRSEQ_H -+ -+#include -+ -+#define PWRSEQ_MAX_CLKS 3 -+ -+/** -+ * struct pwrseq - the power sequence structure -+ * @pwrseq_of_match_table: the OF device id table this pwrseq library supports -+ * @node: the list pointer to be added to pwrseq list -+ * @get: the API is used to get pwrseq instance from the device node -+ * @on: do power on for this pwrseq instance -+ * @off: do power off for this pwrseq instance -+ * @put: release the resources on this pwrseq instance -+ * @suspend: do suspend operation on this pwrseq instance -+ * @resume: do resume operation on this pwrseq instance -+ */ -+struct pwrseq { -+ const struct of_device_id *pwrseq_of_match_table; -+ struct list_head node; -+ int (*get)(struct device_node *np, struct pwrseq *p); -+ int (*on)(struct pwrseq *p); -+ void (*off)(struct pwrseq *p); -+ void (*put)(struct pwrseq *p); -+ int (*suspend)(struct pwrseq *p); -+ int (*resume)(struct pwrseq *p); -+ bool suspended; -+}; -+ -+/* used for power sequence instance list in one driver */ -+struct pwrseq_list_per_dev { -+ struct pwrseq *pwrseq; -+ struct list_head list; -+}; -+ -+#if IS_ENABLED(CONFIG_POWER_SEQUENCE) -+struct pwrseq *of_pwrseq_on(struct device_node *np); -+void of_pwrseq_off(struct pwrseq *pwrseq); -+int of_pwrseq_on_list(struct device_node *np, struct list_head *head); -+void of_pwrseq_off_list(struct list_head *head); -+int pwrseq_suspend(struct pwrseq *p); -+int pwrseq_resume(struct pwrseq *p); -+int pwrseq_suspend_list(struct list_head *head); -+int pwrseq_resume_list(struct list_head *head); -+#else -+static inline struct pwrseq *of_pwrseq_on(struct device_node *np) -+{ -+ return NULL; -+} -+static void of_pwrseq_off(struct pwrseq *pwrseq) {} -+static int of_pwrseq_on_list(struct device_node *np, struct list_head *head) -+{ -+ return 0; -+} -+static void of_pwrseq_off_list(struct list_head *head) {} -+static int pwrseq_suspend(struct pwrseq *p) -+{ -+ return 0; -+} -+static int pwrseq_resume(struct pwrseq *p) -+{ -+ return 0; -+} -+static int pwrseq_suspend_list(struct list_head *head) -+{ -+ return 0; -+} -+static int pwrseq_resume_list(struct list_head *head) -+{ -+ return 0; -+} -+#endif /* CONFIG_POWER_SEQUENCE */ -+ -+#if IS_ENABLED(CONFIG_PWRSEQ_GENERIC) -+extern struct pwrseq *pwrseq_generic_alloc_instance(void); -+#else -+static inline struct pwrseq *pwrseq_generic_alloc_instance(void) -+{ -+ return ERR_PTR(-ENOTSUPP); -+} -+#endif /* CONFIG_PWRSEQ_GENERIC */ -+ -+#endif /* __LINUX_PWRSEQ_H */ --- -2.16.1 - diff --git a/libre/linux-libre/0010-usb-core-add-power-sequence-handling-for-USB-devices.patch b/libre/linux-libre/0010-usb-core-add-power-sequence-handling-for-USB-devices.patch new file mode 100644 index 000000000..77b0f0b46 --- /dev/null +++ b/libre/linux-libre/0010-usb-core-add-power-sequence-handling-for-USB-devices.patch @@ -0,0 +1,164 @@ +From 939bdab48c863e3f6ab60b4397a8467e05bc2ace Mon Sep 17 00:00:00 2001 +From: Peter Chen +Date: Wed, 21 Jun 2017 14:42:05 +0800 +Subject: [PATCH 10/13] usb: core: add power sequence handling for USB devices + +Some hard-wired USB devices need to do power sequence to let the +device work normally, the typical power sequence like: enable USB +PHY clock, toggle reset pin, etc. But current Linux USB driver +lacks of such code to do it, it may cause some hard-wired USB devices +works abnormal or can't be recognized by controller at all. + +In this patch, it calls power sequence library APIs to finish +the power sequence events. It will do power on sequence at hub's +probe for all devices under this hub (includes root hub). +At hub_disconnect, it will do power off sequence which is at powered +on list. + +Signed-off-by: Peter Chen +Tested-by Joshua Clayton +Tested-by: Maciej S. Szmigiero +Reviewed-by: Vaibhav Hiremath +Acked-by: Alan Stern +--- + drivers/usb/Kconfig | 1 + + drivers/usb/core/hub.c | 49 +++++++++++++++++++++++++++++++++++++++++++++---- + drivers/usb/core/hub.h | 1 + + 3 files changed, 47 insertions(+), 4 deletions(-) + +diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig +index 148f3ee70286..575a866422be 100644 +--- a/drivers/usb/Kconfig ++++ b/drivers/usb/Kconfig +@@ -45,6 +45,7 @@ config USB + tristate "Support for Host-side USB" + depends on USB_ARCH_HAS_HCD + select USB_COMMON ++ select POWER_SEQUENCE + select NLS # for UTF-8 strings + ---help--- + Universal Serial Bus (USB) is a specification for a serial bus +diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c +index c5c1f6cf3228..a7de648c3f76 100644 +--- a/drivers/usb/core/hub.c ++++ b/drivers/usb/core/hub.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -1649,6 +1650,7 @@ static void hub_disconnect(struct usb_interface *intf) + hub->error = 0; + hub_quiesce(hub, HUB_DISCONNECT); + ++ of_pwrseq_off_list(&hub->pwrseq_list); + mutex_lock(&usb_port_peer_mutex); + + /* Avoid races with recursively_mark_NOTATTACHED() */ +@@ -1695,11 +1697,41 @@ static bool hub_descriptor_is_sane(struct usb_host_interface *desc) + return true; + } + ++#ifdef CONFIG_OF ++static int hub_of_pwrseq_on(struct usb_hub *hub) ++{ ++ struct device *parent; ++ struct usb_device *hdev = hub->hdev; ++ struct device_node *np; ++ int ret; ++ ++ if (hdev->parent) ++ parent = &hdev->dev; ++ else ++ parent = bus_to_hcd(hdev->bus)->self.sysdev; ++ ++ for_each_child_of_node(parent->of_node, np) { ++ ret = of_pwrseq_on_list(np, &hub->pwrseq_list); ++ /* Maybe no power sequence library is chosen */ ++ if (ret && ret != -ENOENT) ++ return ret; ++ } ++ ++ return 0; ++} ++#else ++static int hub_of_pwrseq_on(struct usb_hub *hub) ++{ ++ return 0; ++} ++#endif ++ + static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id) + { + struct usb_host_interface *desc; + struct usb_device *hdev; + struct usb_hub *hub; ++ int ret = -ENODEV; + + desc = intf->cur_altsetting; + hdev = interface_to_usbdev(intf); +@@ -1790,6 +1822,7 @@ static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id) + INIT_DELAYED_WORK(&hub->leds, led_work); + INIT_DELAYED_WORK(&hub->init_work, NULL); + INIT_WORK(&hub->events, hub_event); ++ INIT_LIST_HEAD(&hub->pwrseq_list); + usb_get_intf(intf); + usb_get_dev(hdev); + +@@ -1803,11 +1836,14 @@ static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id) + if (id->driver_info & HUB_QUIRK_CHECK_PORT_AUTOSUSPEND) + hub->quirk_check_port_auto_suspend = 1; + +- if (hub_configure(hub, &desc->endpoint[0].desc) >= 0) +- return 0; ++ if (hub_configure(hub, &desc->endpoint[0].desc) >= 0) { ++ ret = hub_of_pwrseq_on(hub); ++ if (!ret) ++ return 0; ++ } + + hub_disconnect(intf); +- return -ENODEV; ++ return ret; + } + + static int +@@ -3621,14 +3657,19 @@ static int hub_suspend(struct usb_interface *intf, pm_message_t msg) + + /* stop hub_wq and related activity */ + hub_quiesce(hub, HUB_SUSPEND); +- return 0; ++ return pwrseq_suspend_list(&hub->pwrseq_list); + } + + static int hub_resume(struct usb_interface *intf) + { + struct usb_hub *hub = usb_get_intfdata(intf); ++ int ret; + + dev_dbg(&intf->dev, "%s\n", __func__); ++ ret = pwrseq_resume_list(&hub->pwrseq_list); ++ if (ret) ++ return ret; ++ + hub_activate(hub, HUB_RESUME); + return 0; + } +diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h +index 2a700ccc868c..3a0e6e6b22b0 100644 +--- a/drivers/usb/core/hub.h ++++ b/drivers/usb/core/hub.h +@@ -70,6 +70,7 @@ struct usb_hub { + struct delayed_work init_work; + struct work_struct events; + struct usb_port **ports; ++ struct list_head pwrseq_list; /* powered pwrseq node list */ + }; + + /** +-- +2.16.2 + diff --git a/libre/linux-libre/0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch b/libre/linux-libre/0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch new file mode 100644 index 000000000..6fdb44623 --- /dev/null +++ b/libre/linux-libre/0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch @@ -0,0 +1,49 @@ +From 1392b78fdeca809beb269413d788a864c4f2f261 Mon Sep 17 00:00:00 2001 +From: Joshua Clayton +Date: Wed, 21 Jun 2017 14:42:06 +0800 +Subject: [PATCH 11/13] ARM: dts: imx6qdl: Enable usb node children with + +Give usb nodes #address and #size attributes, so that a child node +representing a permanently connected device such as an onboard hub may +be addressed with a attribute + +Signed-off-by: Joshua Clayton +Signed-off-by: Peter Chen +--- + arch/arm/boot/dts/imx6qdl.dtsi | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi +index 59ff86695a14..a4957bf2a82f 100644 +--- a/arch/arm/boot/dts/imx6qdl.dtsi ++++ b/arch/arm/boot/dts/imx6qdl.dtsi +@@ -983,6 +983,8 @@ + + usbh1: usb@2184200 { + compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; ++ #address-cells = <1>; ++ #size-cells = <0>; + reg = <0x02184200 0x200>; + interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6QDL_CLK_USBOH3>; +@@ -997,6 +999,8 @@ + + usbh2: usb@2184400 { + compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; ++ #address-cells = <1>; ++ #size-cells = <0>; + reg = <0x02184400 0x200>; + interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6QDL_CLK_USBOH3>; +@@ -1010,6 +1014,8 @@ + + usbh3: usb@2184600 { + compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; ++ #address-cells = <1>; ++ #size-cells = <0>; + reg = <0x02184600 0x200>; + interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks IMX6QDL_CLK_USBOH3>; +-- +2.16.2 + diff --git a/libre/linux-libre/0011-usb-core-add-power-sequence-handling-for-USB-devices.patch b/libre/linux-libre/0011-usb-core-add-power-sequence-handling-for-USB-devices.patch deleted file mode 100644 index ac86e626d..000000000 --- a/libre/linux-libre/0011-usb-core-add-power-sequence-handling-for-USB-devices.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 292560a839e5622bf2e071c1afe54bdb34209516 Mon Sep 17 00:00:00 2001 -From: Peter Chen -Date: Wed, 21 Jun 2017 14:42:05 +0800 -Subject: [PATCH 11/14] usb: core: add power sequence handling for USB devices - -Some hard-wired USB devices need to do power sequence to let the -device work normally, the typical power sequence like: enable USB -PHY clock, toggle reset pin, etc. But current Linux USB driver -lacks of such code to do it, it may cause some hard-wired USB devices -works abnormal or can't be recognized by controller at all. - -In this patch, it calls power sequence library APIs to finish -the power sequence events. It will do power on sequence at hub's -probe for all devices under this hub (includes root hub). -At hub_disconnect, it will do power off sequence which is at powered -on list. - -Signed-off-by: Peter Chen -Tested-by Joshua Clayton -Tested-by: Maciej S. Szmigiero -Reviewed-by: Vaibhav Hiremath -Acked-by: Alan Stern ---- - drivers/usb/Kconfig | 1 + - drivers/usb/core/hub.c | 49 +++++++++++++++++++++++++++++++++++++++++++++---- - drivers/usb/core/hub.h | 1 + - 3 files changed, 47 insertions(+), 4 deletions(-) - -diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig -index f699abab1787..67316ba6a84c 100644 ---- a/drivers/usb/Kconfig -+++ b/drivers/usb/Kconfig -@@ -39,6 +39,7 @@ config USB - tristate "Support for Host-side USB" - depends on USB_ARCH_HAS_HCD - select USB_COMMON -+ select POWER_SEQUENCE - select NLS # for UTF-8 strings - ---help--- - Universal Serial Bus (USB) is a specification for a serial bus -diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index cf7bbcb9a63c..34f249f73757 100644 ---- a/drivers/usb/core/hub.c -+++ b/drivers/usb/core/hub.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - #include - #include -@@ -1634,6 +1635,7 @@ static void hub_disconnect(struct usb_interface *intf) - hub->error = 0; - hub_quiesce(hub, HUB_DISCONNECT); - -+ of_pwrseq_off_list(&hub->pwrseq_list); - mutex_lock(&usb_port_peer_mutex); - - /* Avoid races with recursively_mark_NOTATTACHED() */ -@@ -1680,11 +1682,41 @@ static bool hub_descriptor_is_sane(struct usb_host_interface *desc) - return true; - } - -+#ifdef CONFIG_OF -+static int hub_of_pwrseq_on(struct usb_hub *hub) -+{ -+ struct device *parent; -+ struct usb_device *hdev = hub->hdev; -+ struct device_node *np; -+ int ret; -+ -+ if (hdev->parent) -+ parent = &hdev->dev; -+ else -+ parent = bus_to_hcd(hdev->bus)->self.sysdev; -+ -+ for_each_child_of_node(parent->of_node, np) { -+ ret = of_pwrseq_on_list(np, &hub->pwrseq_list); -+ /* Maybe no power sequence library is chosen */ -+ if (ret && ret != -ENOENT) -+ return ret; -+ } -+ -+ return 0; -+} -+#else -+static int hub_of_pwrseq_on(struct usb_hub *hub) -+{ -+ return 0; -+} -+#endif -+ - static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id) - { - struct usb_host_interface *desc; - struct usb_device *hdev; - struct usb_hub *hub; -+ int ret = -ENODEV; - - desc = intf->cur_altsetting; - hdev = interface_to_usbdev(intf); -@@ -1775,6 +1807,7 @@ static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id) - INIT_DELAYED_WORK(&hub->leds, led_work); - INIT_DELAYED_WORK(&hub->init_work, NULL); - INIT_WORK(&hub->events, hub_event); -+ INIT_LIST_HEAD(&hub->pwrseq_list); - usb_get_intf(intf); - usb_get_dev(hdev); - -@@ -1788,11 +1821,14 @@ static int hub_probe(struct usb_interface *intf, const struct usb_device_id *id) - if (id->driver_info & HUB_QUIRK_CHECK_PORT_AUTOSUSPEND) - hub->quirk_check_port_auto_suspend = 1; - -- if (hub_configure(hub, &desc->endpoint[0].desc) >= 0) -- return 0; -+ if (hub_configure(hub, &desc->endpoint[0].desc) >= 0) { -+ ret = hub_of_pwrseq_on(hub); -+ if (!ret) -+ return 0; -+ } - - hub_disconnect(intf); -- return -ENODEV; -+ return ret; - } - - static int -@@ -3606,14 +3642,19 @@ static int hub_suspend(struct usb_interface *intf, pm_message_t msg) - - /* stop hub_wq and related activity */ - hub_quiesce(hub, HUB_SUSPEND); -- return 0; -+ return pwrseq_suspend_list(&hub->pwrseq_list); - } - - static int hub_resume(struct usb_interface *intf) - { - struct usb_hub *hub = usb_get_intfdata(intf); -+ int ret; - - dev_dbg(&intf->dev, "%s\n", __func__); -+ ret = pwrseq_resume_list(&hub->pwrseq_list); -+ if (ret) -+ return ret; -+ - hub_activate(hub, HUB_RESUME); - return 0; - } -diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h -index 2a700ccc868c..3a0e6e6b22b0 100644 ---- a/drivers/usb/core/hub.h -+++ b/drivers/usb/core/hub.h -@@ -70,6 +70,7 @@ struct usb_hub { - struct delayed_work init_work; - struct work_struct events; - struct usb_port **ports; -+ struct list_head pwrseq_list; /* powered pwrseq node list */ - }; - - /** --- -2.16.1 - diff --git a/libre/linux-libre/0012-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch b/libre/linux-libre/0012-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch deleted file mode 100644 index 9631476bc..000000000 --- a/libre/linux-libre/0012-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 059a623ab52a9fdaccd7a5d1b189478d5e7a96be Mon Sep 17 00:00:00 2001 -From: Joshua Clayton -Date: Wed, 21 Jun 2017 14:42:06 +0800 -Subject: [PATCH 12/14] ARM: dts: imx6qdl: Enable usb node children with - -Give usb nodes #address and #size attributes, so that a child node -representing a permanently connected device such as an onboard hub may -be addressed with a attribute - -Signed-off-by: Joshua Clayton -Signed-off-by: Peter Chen ---- - arch/arm/boot/dts/imx6qdl.dtsi | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi -index 1ce4eabf0590..3ff1ada590d1 100644 ---- a/arch/arm/boot/dts/imx6qdl.dtsi -+++ b/arch/arm/boot/dts/imx6qdl.dtsi -@@ -969,6 +969,8 @@ - - usbh1: usb@2184200 { - compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; -+ #address-cells = <1>; -+ #size-cells = <0>; - reg = <0x02184200 0x200>; - interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6QDL_CLK_USBOH3>; -@@ -983,6 +985,8 @@ - - usbh2: usb@2184400 { - compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; -+ #address-cells = <1>; -+ #size-cells = <0>; - reg = <0x02184400 0x200>; - interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6QDL_CLK_USBOH3>; -@@ -996,6 +1000,8 @@ - - usbh3: usb@2184600 { - compatible = "fsl,imx6q-usb", "fsl,imx27-usb"; -+ #address-cells = <1>; -+ #size-cells = <0>; - reg = <0x02184600 0x200>; - interrupts = <0 42 IRQ_TYPE_LEVEL_HIGH>; - clocks = <&clks IMX6QDL_CLK_USBOH3>; --- -2.16.1 - diff --git a/libre/linux-libre/0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch b/libre/linux-libre/0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch new file mode 100644 index 000000000..b651ea9da --- /dev/null +++ b/libre/linux-libre/0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch @@ -0,0 +1,80 @@ +From bd2a35c39515f939b10d76c60cebafc621a4dcfd Mon Sep 17 00:00:00 2001 +From: Peter Chen +Date: Wed, 21 Jun 2017 14:42:07 +0800 +Subject: [PATCH 12/13] ARM: dts: imx6qdl-udoo.dtsi: fix onboard USB HUB + property + +The current dts describes USB HUB's property at USB controller's +entry, it is improper. The USB HUB should be the child node +under USB controller, and power sequence properties are under +it. Besides, using gpio pinctrl setting for USB2415's reset pin. + +Signed-off-by: Peter Chen +Signed-off-by: Joshua Clayton +Tested-by: Maciej S. Szmigiero +--- + arch/arm/boot/dts/imx6qdl-udoo.dtsi | 26 ++++++++++++-------------- + 1 file changed, 12 insertions(+), 14 deletions(-) + +diff --git a/arch/arm/boot/dts/imx6qdl-udoo.dtsi b/arch/arm/boot/dts/imx6qdl-udoo.dtsi +index 4161b7d4323a..442a6d69ede8 100644 +--- a/arch/arm/boot/dts/imx6qdl-udoo.dtsi ++++ b/arch/arm/boot/dts/imx6qdl-udoo.dtsi +@@ -9,6 +9,8 @@ + * + */ + ++#include ++ + / { + aliases { + backlight = &backlight; +@@ -65,17 +67,6 @@ + #address-cells = <1>; + #size-cells = <0>; + +- reg_usb_h1_vbus: regulator@0 { +- compatible = "regulator-fixed"; +- reg = <0>; +- regulator-name = "usb_h1_vbus"; +- regulator-min-microvolt = <5000000>; +- regulator-max-microvolt = <5000000>; +- enable-active-high; +- startup-delay-us = <2>; /* USB2415 requires a POR of 1 us minimum */ +- gpio = <&gpio7 12 0>; +- }; +- + reg_panel: regulator@1 { + compatible = "regulator-fixed"; + reg = <1>; +@@ -201,7 +192,7 @@ + + pinctrl_usbh: usbhgrp { + fsl,pins = < +- MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x80000000 ++ MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0 + MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x130b0 + >; + }; +@@ -272,9 +263,16 @@ + &usbh1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbh>; +- vbus-supply = <®_usb_h1_vbus>; +- clocks = <&clks IMX6QDL_CLK_CKO>; + status = "okay"; ++ ++ usb2415: hub@1 { ++ compatible = "usb424,2514"; ++ reg = <1>; ++ ++ clocks = <&clks IMX6QDL_CLK_CKO>; ++ reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>; ++ reset-duration-us = <3000>; ++ }; + }; + + &usdhc3 { +-- +2.16.2 + diff --git a/libre/linux-libre/0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch b/libre/linux-libre/0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch new file mode 100644 index 000000000..22a85b1f0 --- /dev/null +++ b/libre/linux-libre/0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch @@ -0,0 +1,74 @@ +From 160685d2e3325c31b65fec8d7635a5f82d22c073 Mon Sep 17 00:00:00 2001 +From: Joshua Clayton +Date: Wed, 21 Jun 2017 14:42:08 +0800 +Subject: [PATCH 13/13] ARM: dts: imx6q-evi: Fix onboard hub reset line + +Previously the onboard hub was made to work by treating its +reset gpio as a regulator enable. +Get rid of that kludge now that pwseq has added reset gpio support +Move pin muxing the hub reset pin into the usbh1 group + +Signed-off-by: Joshua Clayton +Signed-off-by: Peter Chen +--- + arch/arm/boot/dts/imx6q-evi.dts | 25 +++++++------------------ + 1 file changed, 7 insertions(+), 18 deletions(-) + +diff --git a/arch/arm/boot/dts/imx6q-evi.dts b/arch/arm/boot/dts/imx6q-evi.dts +index e0aea782c666..6f3afffc8faa 100644 +--- a/arch/arm/boot/dts/imx6q-evi.dts ++++ b/arch/arm/boot/dts/imx6q-evi.dts +@@ -54,18 +54,6 @@ + reg = <0x10000000 0x40000000>; + }; + +- reg_usbh1_vbus: regulator-usbhubreset { +- compatible = "regulator-fixed"; +- regulator-name = "usbh1_vbus"; +- regulator-min-microvolt = <5000000>; +- regulator-max-microvolt = <5000000>; +- enable-active-high; +- startup-delay-us = <2>; +- pinctrl-names = "default"; +- pinctrl-0 = <&pinctrl_usbh1_hubreset>; +- gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>; +- }; +- + reg_usb_otg_vbus: regulator-usbotgvbus { + compatible = "regulator-fixed"; + regulator-name = "usb_otg_vbus"; +@@ -213,12 +201,18 @@ + }; + + &usbh1 { +- vbus-supply = <®_usbh1_vbus>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbh1>; + dr_mode = "host"; + disable-over-current; + status = "okay"; ++ ++ usb2415host: hub@1 { ++ compatible = "usb424,2513"; ++ reg = <1>; ++ reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>; ++ reset-duration-us = <3000>; ++ }; + }; + + &usbotg { +@@ -481,11 +475,6 @@ + MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1b0b0 + /* usbh1_b OC */ + MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0 +- >; +- }; +- +- pinctrl_usbh1_hubreset: usbh1hubresetgrp { +- fsl,pins = < + MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0 + >; + }; +-- +2.16.2 + diff --git a/libre/linux-libre/0014-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch b/libre/linux-libre/0014-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch deleted file mode 100644 index dbc7fce01..000000000 --- a/libre/linux-libre/0014-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 47a3451ea61bc01753f71acfc011738f8681dc53 Mon Sep 17 00:00:00 2001 -From: Joshua Clayton -Date: Wed, 21 Jun 2017 14:42:08 +0800 -Subject: [PATCH 14/14] ARM: dts: imx6q-evi: Fix onboard hub reset line - -Previously the onboard hub was made to work by treating its -reset gpio as a regulator enable. -Get rid of that kludge now that pwseq has added reset gpio support -Move pin muxing the hub reset pin into the usbh1 group - -Signed-off-by: Joshua Clayton -Signed-off-by: Peter Chen ---- - arch/arm/boot/dts/imx6q-evi.dts | 25 +++++++------------------ - 1 file changed, 7 insertions(+), 18 deletions(-) - -diff --git a/arch/arm/boot/dts/imx6q-evi.dts b/arch/arm/boot/dts/imx6q-evi.dts -index e0aea782c666..6f3afffc8faa 100644 ---- a/arch/arm/boot/dts/imx6q-evi.dts -+++ b/arch/arm/boot/dts/imx6q-evi.dts -@@ -54,18 +54,6 @@ - reg = <0x10000000 0x40000000>; - }; - -- reg_usbh1_vbus: regulator-usbhubreset { -- compatible = "regulator-fixed"; -- regulator-name = "usbh1_vbus"; -- regulator-min-microvolt = <5000000>; -- regulator-max-microvolt = <5000000>; -- enable-active-high; -- startup-delay-us = <2>; -- pinctrl-names = "default"; -- pinctrl-0 = <&pinctrl_usbh1_hubreset>; -- gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>; -- }; -- - reg_usb_otg_vbus: regulator-usbotgvbus { - compatible = "regulator-fixed"; - regulator-name = "usb_otg_vbus"; -@@ -213,12 +201,18 @@ - }; - - &usbh1 { -- vbus-supply = <®_usbh1_vbus>; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usbh1>; - dr_mode = "host"; - disable-over-current; - status = "okay"; -+ -+ usb2415host: hub@1 { -+ compatible = "usb424,2513"; -+ reg = <1>; -+ reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>; -+ reset-duration-us = <3000>; -+ }; - }; - - &usbotg { -@@ -481,11 +475,6 @@ - MX6QDL_PAD_GPIO_3__USB_H1_OC 0x1b0b0 - /* usbh1_b OC */ - MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0 -- >; -- }; -- -- pinctrl_usbh1_hubreset: usbh1hubresetgrp { -- fsl,pins = < - MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0 - >; - }; --- -2.16.1 - diff --git a/libre/linux-libre/PKGBUILD b/libre/linux-libre/PKGBUILD index 1327cdc01..2a8d5800c 100644 --- a/libre/linux-libre/PKGBUILD +++ b/libre/linux-libre/PKGBUILD @@ -12,8 +12,8 @@ pkgbase=linux-libre # Build stock kernel #pkgbase=linux-libre-custom # Build kernel with a different name -_pkgbasever=4.15-gnu -_pkgver=4.15.17-gnu +_pkgbasever=4.16-gnu +_pkgver=4.16.3-gnu _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname _replacesoldkernels=() # '%' gets replaced with _kernelname @@ -23,7 +23,7 @@ _srcname=linux-${_pkgbasever%-*} _archpkgver=${_pkgver%-*} pkgver=${_pkgver//-/_} pkgrel=1 -rcnrel=armv7-x1 +rcnrel=armv7-x0 arch=('i686' 'x86_64' 'armv7h') url="https://linux-libre.fsfla.org/" license=('GPL2') @@ -51,26 +51,29 @@ source=( '0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch' '0006-set-default-cubietruck-led-triggers.patch' '0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch' - '0008-disable-USB3-port-on-ODROID-XU.patch' - '0009-ARM-dove-enable-ethernet-on-D3Plug.patch' - '0010-power-add-power-sequence-library.patch' - '0011-usb-core-add-power-sequence-handling-for-USB-devices.patch' - '0012-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch' - '0013-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch' - '0014-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch' + '0008-ARM-dove-enable-ethernet-on-D3Plug.patch' + '0009-power-add-power-sequence-library.patch' + '0010-usb-core-add-power-sequence-handling-for-USB-devices.patch' + '0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch' + '0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch' + '0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch' # other patches '0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch' '0002-fix-Atmel-maXTouch-touchscreen-support.patch' '0001-add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by.patch' '0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch' + '0003-Partially-revert-swiotlb-remove-various-exports.patch' + '0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch' + '0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch' + '0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch' ) validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P. ) -sha512sums=('a55cc663c6fb1e1cfa7905282b368b5d5888bc2398f0acf37e5bb9a232ded04fd566b1980e654da26aaec005332e458581495184d6bd4cec669181085d4d78a5' +sha512sums=('c6805b3649cd71cfef272384958b33da23a00908e795592470bf711dd67886ab7d7610e7d4ae8a2230fa7483466636465ed9744444464a078de37b41c3db23e0' 'SKIP' - 'f74ad4904ec4a845682d3f735e63720793c3b7a915a8678c4e0866c54e0cec928cb5c3352dee4b3e8d7129bd0515b1b6a485d976c05df6585a1d2e4658884ad4' + 'aaac5e639b353effec1f451f191e1f02d3ed593893cd814c0fd1bb6ce1705ac0806919fe2cd155ff3840a5ecd510b16c314f55ff55be6cc608817182177c2a52' 'SKIP' '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3' 'SKIP' @@ -78,32 +81,35 @@ sha512sums=('a55cc663c6fb1e1cfa7905282b368b5d5888bc2398f0acf37e5bb9a232ded04fd56 'SKIP' '7a3716bfe3b9f546da309c7492f3e08f8f506813afeb1c737a474c83313d5c313cf4582b65215c2cfce3b74d9d1021c96e8badafe8f6e5b01fe28d2b5c61ae78' 'SKIP' - '93cc2b304a116edb351d05a7b5c0a6b900fa4222474c26ac5dd15c754ddf0a0e2b7ec8bb40671fcb38c3be08c9279343456a3caf9d0b7ee4088b6afb4c465512' - '0c90ff5cfe3ed0484603255437fb7b7d3450482ede164e139324c2761f3640797932b95e5d696b074c173ef472a5cdeca04c0a56198e54b47c9394f9efd94570' - 'c23fe808c6c3fe9fa3c7c814b3f607178f22c7441858881e650a1883d19ca43b1ec2b4cd891bbc3341446c02005fe8366dddcd0baf09845a714576bb51a2f24a' + '43169d2a6429c2272b4fe9e21cc76a7992453810856967f8c51da58eff2ec3662d223d22f57303a5e8ff6caeb067aa5988d9dacc37f1d1086132a1cbcb688614' + '15463921e7783632632dfe1290c6e8a7af69a25182cdd7e8a5f67e9c4a835adcfe2feb93e58b5854c5319c60943964bae64d14b075e542e8df44658ee3830cbb' + '5ca4e5aa875c516bd53238a5b839889607d712921c661bb3b391f8e46b91717effff2825f498e6c9c3c49171974102039c016a96670b99f71d7ddeec20b4135d' '7ad5be75ee422dda3b80edd2eb614d8a9181e2c8228cd68b3881e2fb95953bf2dea6cbe7900ce1013c9de89b2802574b7b24869fc5d7a95d3cc3112c4d27063a' '4a8b324aee4cccf3a512ad04ce1a272d14e5b05c8de90feb82075f55ea3845948d817e1b0c6f298f5816834ddd3e5ce0a0e2619866289f3c1ab8fd2f35f04f44' '2dc6b0ba8f7dbf19d2446c5c5f1823587de89f4e28e9595937dd51a87755099656f2acec50e3e2546ea633ad1bfd1c722e0c2b91eef1d609103d8abdc0a7cbaf' - '9fcda845bf44fdf5a7907d4c9681eaf0d4dc67afde5d3848ee0364afc9ad6719de70770ccde8ed309747450f33275b55dc01a46fb6df4a92d5da87f0230632b3' + 'cb2744bc0d0ce866b9e67b4aec0c386fa8b8b04265b45ef4d6e41651f7ff45c81df9388da24f8e801a66d5093c06468807bf2b518faa60abebf5610c5aaf4587' 'SKIP' - 'ba44aa1252aa1b172e0bc8bbbff864ff60cad6739b2aed2f6a2402848aa65cdb8a8ca6bb9341569b089d60dfd83c3bdd744b5810061ac76b19f0d337afe4cc8d' - '738bc2874351d9e1b94319e6caf615b49753155c99dc9318a1ce9eced50f87627a7331762951f55e2bea8abdb97b80a617a08f3f0bc735e56ff831a8bbb19816' - 'f45d8d417eb3f4b6e02e337480bd99a8ebb4b9ac004c53a5432255e5841578fb64530663b6eacb3c8f40aaade8e1dc1e584aa1cf4b560103119e4b32e19b66c3' - '25ee5d9859d3df2d054fd6d53fe6b8931d6ac9f85533c54f3dd926fce917c81bd96cb3858189a20cf28a32b43efd1566cb5513f7db18a0bb8ead1a4e8a7be6fc' - 'a1aa8272760da0c8d2772cc8a57d8600f08db176206afd2a155055d2969bf0295f342a156841964a07de53fbf0356385b604ad75e5556569872dfad1863b2c27' - 'b58efc374344d10290371f3dfe8a124f855015d3ce169ccf538e6c1476092abf7ac689f0f10fb6a191fa19545b49ce13957ada066b37415f37dd5989ff93db37' - 'd2326e2e3ef6f2f5e911e6ad2fc3ac33b6f53fc5bb03e61d0e8371e6c7199028b226356926472ba676ca68a6cc57d33856c662615ed5b52566570670d0f96c89' - 'bc47549f2a79a79659d4d53f739e091c1e8f54cef8c1776be2034675cbb43f584a128607b1d4dd6a9f465706bb1470c6cb4277877dd3218e7280f503babf8300' - 'd90f3a3b74d65b84c4c2c229d10d2bb854e39e3429ba1469f8bb286819d559c68e00302de2be5043cf274b39a58686dc822c60afe1c553c4c967ef168d98af05' - '0c1a4334fcb4e75d25ec43873275b2f8a599a096b05a51ef2f9d48f3c8425a153f5f0df775e030e61b792f8b34e9c848229028fb6d2411f85028441826951dd5' - '0ccccf4411df6b86486b14e9354bf48355a2dc5bfefce693c5afc1a340db6f9db525a0306897ccbb5ed80304fa38ef13f32355cfeee1c9b684db0a9c0063d5c1' - '1a491eab1b07e9fb0b8a8dba4ef17d658c85106e7f62f3a37c34513aa9cd50b4bbb273aa445380f2e2135adea68c7102718e71bf2c9f4d3a5c24515620606605' - '9ae97a7f29323542d70576e8800e2090a69a43caee3182a453e80c3c3265d6cc04e2b5701e5d24d8a2717e29272950231b7e477aa32d69c7333c083626fc6802' - '9b8829fd9bf6c91e5c9e21184c7f57b22d786c20a15512e91cc75890a5d08a633df555973b29f2da9a7d9b965abd0c76ecdefa5498217837389ad1d0be0fb754' + 'e331035c3b6687ab8f8ddc35b77470b0abc58457790b78ce50ccf2c246ec16a05815a3f4a0107c0a1a7ee68317b984e51df66b22d76236f6d104eb7eb02db7c8' + '04ffbd0e17a5d09ef7c02042b600b4903be5355e443ea168a6760a910eca0d4a11ef679fe9203cd2e59b0741e9405de7105d51e6e3c0713ecc0c08b212e7b39b' + '5f077d9e74513014615c5d24a73e744bce8669bb5aa846b43434e29350a632bb3d07cde4aca123616e8056d8f3b12638e4222a5710a24de3d239aa83edae0e36' + 'f21ad2ebaf68c5c6180a8de3dc81fa45e4fd627c03327d7eef9b298144be9eeadb7a4e2c971dc497560de10110327fac6362e1eb492380a3d65e39f349429053' + '5a95e05920cdc9d2953f17f41d81bff3536b228e7758c7b5cad1433adf3ab014b12193cb51c6d6ae4abc18e9944ae62e83d08206450937072a287e11d68a3fb3' + '44b1d791abdc4ac100d979dc2d8b7ce07116c97c0b39ee5a91c37c63365ac29041ada3ab3f3e2983ef9dc3372066ae8addff89f2e09afa728fa830b58d9ef3dd' + 'a134d37c9eadba923f90e60142135ce10af9c3ed86117e9fb648f0c1ad9b8a159ea08ceac4f87968985af84c790e94ed0289ca888b7bd10d7cc7662717d4d02c' + '42a91729e97bb31569c43858d1cfbfaa282c9ebf9d97baa438caaa6086f796e1b48423b29490a67f47c98167963b07c0cda61033324a740725b496c00d90c4be' + 'ed5e4d84a0aceb9ebaebbd98a3155472a8def08ce8fc819106600a22584e86ab687c6cabc1fe6e29a1b64afa7a5044caeb6b135db37b4e9c277bfe3ba59ff378' + '9ce3dc6960157d55b289f809203741563fbe8d8d5a8774fbc29d13a73168540a68f6d107d6a0a9a14a8d098215e91778e1e20be433985e5ea1c4998510208988' + '1e718ff5fa0e047056ecdaa25d5c8c4b733a8e8681e9cd8f274d447ae46db8818db3c6c1339b638b6df8adbe97734133c0f37064e81857b9c48c1b10ba05e9bb' + 'ab0ed8724eed15dad76de3174f7c8210f889079be6aea1d2eae164f08ffa49cc4d32ad9e514351a62b755ec7d6d925fb287b1d21e121405e48c19be411580a30' + '6c3b29bd2ffea93bf6a5caff8f6be97a701aa8a40cbb07256f066d40505616096e029e0435ac03dce3a205704c250afdbbfaaa372870e3b3d96a3a482b1af8e5' '02af4dd2a007e41db0c63822c8ab3b80b5d25646af1906dc85d0ad9bb8bbf5236f8e381d7f91cf99ed4b0978c50aee37cb9567cdeef65b7ec3d91b882852b1af' 'b8fe56e14006ab866970ddbd501c054ae37186ddc065bb869cf7d18db8c0d455118d5bda3255fb66a0dde38b544655cfe9040ffe46e41d19830b47959b2fb168' - '0f5531df585efa48e72b335ab88973bbce6c3807db55dcfac2fcda20f69618ee5bd5881ab278bd8cdde1f96bc34d5becca11469516c56a157248e0ae793d8679' - '04dfdfca8b59c2c3c18eb4b59f6466ef6d2fe6799a8b77f403fbce0554bfc739e43ff20897d9a6ed97ca101ab1bc1b067ff4a2491e3607b42de43f45005dc323') + 'ac301d5bd282e1d336bf71ad9d1085f79f1e89cdd7daf4d9862d11bb82b3fc8eabf07fdff4603dae7f1ef99c0d8f0b93ef276bef794428d69e971335bc783b57' + 'cea45ccde152a3f125a21352db3ffa2ecb058e56a637be86c4a02ae4759f359068c929bbe9ac604087feb7ab83b45c0458cf2aef712b784c32b892e57e21a441' + '8e97dc385260d2fba5d102746f9c763cb2fc77ec34ebb9963f49f389959d77cc9fdac6e2463b373c45ceb5f65da22aaaf7aaf16bea6fdc0760d2e08371f36d3f' + '22e7066a8068065e931e3e97e13b984e71c74b81370e57d7d0ff0c74c1d6aca05b8da214b270a9e94c0b2df9c107fdd07fc50cfb77e01687533fc2d6e3d26c3e' + '84e8321d9953eb59dd3af1a5f5c9fd74aabe25ba4ef3f1baef280bf2758d7aa3189f3d86140f8daf915bffbdfb81d39b3697bccf6b681d99f7e888d5a5b7dbfa' + 'a55d10c4c2dd2ef86cf55e081b8c37825db851995072965b969b591d7ef306f0e84c7521c9c71d6812c740c5d21e9f9b618d74145f9d7cefdbd7b1d149b07f01') _kernelname=${pkgbase#linux-libre} _replacesarchkernel=("${_replacesarchkernel[@]/\%/${_kernelname}}") @@ -138,13 +144,12 @@ prepare() { patch -p1 -i ../0005-net-smsc95xx-Allow-mac-address-to-be-set-as-a-parame.patch patch -p1 -i ../0006-set-default-cubietruck-led-triggers.patch patch -p1 -i ../0007-exynos4412-odroid-set-higher-minimum-buck2-regulator.patch - patch -p1 -i ../0008-disable-USB3-port-on-ODROID-XU.patch - patch -p1 -i ../0009-ARM-dove-enable-ethernet-on-D3Plug.patch - patch -p1 -i ../0010-power-add-power-sequence-library.patch - patch -p1 -i ../0011-usb-core-add-power-sequence-handling-for-USB-devices.patch - patch -p1 -i ../0012-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch - patch -p1 -i ../0013-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch - patch -p1 -i ../0014-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch + patch -p1 -i ../0008-ARM-dove-enable-ethernet-on-D3Plug.patch + patch -p1 -i ../0009-power-add-power-sequence-library.patch + patch -p1 -i ../0010-usb-core-add-power-sequence-handling-for-USB-devices.patch + patch -p1 -i ../0011-ARM-dts-imx6qdl-Enable-usb-node-children-with-reg.patch + patch -p1 -i ../0012-ARM-dts-imx6qdl-udoo.dtsi-fix-onboard-USB-HUB-proper.patch + patch -p1 -i ../0013-ARM-dts-imx6q-evi-Fix-onboard-hub-reset-line.patch fi # add freedo as boot logo @@ -159,7 +164,19 @@ prepare() { # https://bugs.archlinux.org/task/56711 patch -Np1 -i ../0002-drm-i915-edp-Only-use-the-alternate-fixed-mode-if-it.patch - + + # NVIDIA driver compat + patch -Np1 -i ../0003-Partially-revert-swiotlb-remove-various-exports.patch + + # https://bugs.archlinux.org/task/58153 + patch -Np1 -i ../0004-Fix-vboxguest-on-guests-with-more-than-4G-RAM.patch + + # https://bugs.archlinux.org/task/58158 + patch -Np1 -i ../0005-Revert-drm-amd-display-disable-CRTCs-with-NULL-FB-on.patch + + # https://bugs.archlinux.org/task/58174 + patch -Np1 -i ../0006-net-aquantia-Regression-on-reset-with-1.x-firmware.patch + # maintain the TTY over USB disconnects # http://www.coreboot.org/EHCI_Gadget_Debug patch -p1 -i ../0001-usb-serial-gadget-no-TTY-hangup-on-USB-disconnect-WI.patch @@ -312,9 +329,6 @@ _package-headers() { install -Dt "${_builddir}/drivers/md" -m644 drivers/md/*.h install -Dt "${_builddir}/net/mac80211" -m644 net/mac80211/*.h - # http://bugs.archlinux.org/task/9912 - install -Dt "${_builddir}/drivers/media/dvb-core" -m644 drivers/media/dvb-core/*.h - # http://bugs.archlinux.org/task/13146 install -Dt "${_builddir}/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h diff --git a/libre/linux-libre/config.armv7h b/libre/linux-libre/config.armv7h index 30527de81..0fb2a2397 100644 --- a/libre/linux-libre/config.armv7h +++ b/libre/linux-libre/config.armv7h @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 4.15.17-gnu-1 Kernel Configuration +# Linux/arm 4.16.3-gnu-1 Kernel Configuration # CONFIG_ARM=y CONFIG_ARM_HAS_SG_CHAIN=y @@ -25,7 +25,6 @@ CONFIG_FIQ=y CONFIG_ARM_PATCH_PHYS_VIRT=y CONFIG_GENERIC_BUG=y CONFIG_PGTABLE_LEVELS=2 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y @@ -72,7 +71,6 @@ CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_HANDLE_DOMAIN_IRQ=y -# CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set @@ -105,7 +103,7 @@ CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y -# CONFIG_CPU_ISOLATION is not set +CONFIG_CPU_ISOLATION=y # # RCU Subsystem @@ -220,7 +218,7 @@ CONFIG_SLUB=y # CONFIG_SLOB is not set CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_SLAB_FREELIST_RANDOM=y -# CONFIG_SLAB_FREELIST_HARDENED is not set +CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLUB_CPU_PARTIAL=y CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y @@ -246,6 +244,7 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_GENERIC_IDLE_POLL_SETUP=y CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y @@ -259,10 +258,10 @@ CONFIG_SECCOMP_FILTER=y CONFIG_HAVE_GCC_PLUGINS=y # CONFIG_GCC_PLUGINS is not set CONFIG_HAVE_CC_STACKPROTECTOR=y -CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set # CONFIG_CC_STACKPROTECTOR_REGULAR is not set -CONFIG_CC_STACKPROTECTOR_STRONG=y +# CONFIG_CC_STACKPROTECTOR_STRONG is not set +CONFIG_CC_STACKPROTECTOR_AUTO=y CONFIG_THIN_ARCHIVES=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y @@ -288,7 +287,8 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y -# CONFIG_REFCOUNT_FULL is not set +CONFIG_ARCH_HAS_PHYS_TO_DMA=y +CONFIG_REFCOUNT_FULL=y # # GCOV-based kernel profiling @@ -717,6 +717,11 @@ CONFIG_PCI_ECAM=y # CONFIG_PCI_PASID is not set # CONFIG_HOTPLUG_PCI is not set +# +# Cadence PCIe controllers support +# +# CONFIG_PCIE_CADENCE_HOST is not set + # # DesignWare PCI Core Support # @@ -741,7 +746,6 @@ CONFIG_PCI_HOST_COMMON=y CONFIG_PCI_HOST_GENERIC=y CONFIG_PCIE_XILINX=y # CONFIG_PCI_V3_SEMI is not set -# CONFIG_PCIE_ALTERA is not set # CONFIG_PCIE_ROCKCHIP is not set # @@ -898,6 +902,7 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y # CONFIG_CPUFREQ_DT=y CONFIG_CPUFREQ_DT_PLATDEV=y +# CONFIG_ARM_ARMADA_37XX_CPUFREQ is not set CONFIG_ARM_BIG_LITTLE_CPUFREQ=y CONFIG_ARM_DT_BL_CPUFREQ=y CONFIG_ARM_VEXPRESS_SPC_CPUFREQ=y @@ -1000,6 +1005,7 @@ CONFIG_UNIX=y CONFIG_UNIX_DIAG=m CONFIG_TLS=m CONFIG_XFRM=y +CONFIG_XFRM_OFFLOAD=y CONFIG_XFRM_ALGO=m CONFIG_XFRM_USER=m CONFIG_XFRM_SUB_POLICY=y @@ -1037,7 +1043,7 @@ CONFIG_NET_FOU=m CONFIG_NET_FOU_IP_TUNNELS=y CONFIG_INET_AH=m CONFIG_INET_ESP=m -# CONFIG_INET_ESP_OFFLOAD is not set +CONFIG_INET_ESP_OFFLOAD=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m @@ -1076,7 +1082,7 @@ CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m -# CONFIG_INET6_ESP_OFFLOAD is not set +CONFIG_INET6_ESP_OFFLOAD=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=y CONFIG_IPV6_ILA=m @@ -1114,12 +1120,15 @@ CONFIG_BRIDGE_NETFILTER=m # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_FAMILY_BRIDGE=y +CONFIG_NETFILTER_FAMILY_ARP=y CONFIG_NETFILTER_NETLINK_ACCT=m 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_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y @@ -1167,6 +1176,7 @@ CONFIG_NFT_META=m CONFIG_NFT_RT=m CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m +CONFIG_NFT_FLOW_OFFLOAD=m CONFIG_NFT_SET_RBTREE=m CONFIG_NFT_SET_HASH=m CONFIG_NFT_SET_BITMAP=m @@ -1189,6 +1199,8 @@ CONFIG_NF_DUP_NETDEV=m CONFIG_NFT_DUP_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_FIB_NETDEV=m +# CONFIG_NF_FLOW_TABLE_INET is not set +CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m # @@ -1349,6 +1361,7 @@ CONFIG_NFT_REJECT_IPV4=m CONFIG_NFT_DUP_IPV4=m CONFIG_NFT_FIB_IPV4=m CONFIG_NF_TABLES_ARP=m +CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m @@ -1395,6 +1408,7 @@ CONFIG_NFT_CHAIN_ROUTE_IPV6=m CONFIG_NFT_REJECT_IPV6=m CONFIG_NFT_DUP_IPV6=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m @@ -1413,6 +1427,7 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_SRH=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m @@ -1463,9 +1478,7 @@ CONFIG_IP_DCCP_TFRC_LIB=y # DCCP Kernel Hacking # # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_NET_DCCPPROBE=m CONFIG_IP_SCTP=m -CONFIG_NET_SCTPPROBE=m # CONFIG_SCTP_DBG_OBJCNT is not set CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set @@ -1500,6 +1513,7 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=m +CONFIG_NET_DSA_LEGACY=y CONFIG_NET_DSA_TAG_BRCM=y CONFIG_NET_DSA_TAG_BRCM_PREPEND=y CONFIG_NET_DSA_TAG_DSA=y @@ -1511,7 +1525,6 @@ CONFIG_VLAN_8021Q_MVRP=y # CONFIG_DECNET is not set CONFIG_LLC=m CONFIG_LLC2=m -# CONFIG_IPX is not set CONFIG_ATALK=m CONFIG_DEV_APPLETALK=m CONFIG_IPDDP=m @@ -1605,7 +1618,7 @@ CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m -# CONFIG_NET_ACT_SAMPLE is not set +CONFIG_NET_ACT_SAMPLE=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m @@ -1667,7 +1680,6 @@ CONFIG_NET_FLOW_LIMIT=y # Network testing # CONFIG_NET_PKTGEN=m -# CONFIG_NET_TCPPROBE is not set CONFIG_HAMRADIO=y # @@ -1701,7 +1713,7 @@ CONFIG_CAN_SLCAN=m CONFIG_CAN_DEV=m CONFIG_CAN_CALC_BITTIMING=y CONFIG_CAN_LEDS=y -# CONFIG_CAN_FLEXCAN is not set +CONFIG_CAN_FLEXCAN=m CONFIG_CAN_GRCAN=m CONFIG_CAN_SUN4I=m CONFIG_CAN_TI_HECC=m @@ -1758,15 +1770,20 @@ CONFIG_BT_BCM=m CONFIG_BT_RTL=m CONFIG_BT_QCA=m CONFIG_BT_HCIBTUSB=m +# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_SERDEV=y CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_NOKIA=m CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIUART_3WIRE=y CONFIG_BT_HCIUART_INTEL=y +CONFIG_BT_HCIUART_BCM=y CONFIG_BT_HCIUART_QCA=y # CONFIG_BT_HCIUART_AG6XX is not set # CONFIG_BT_HCIUART_MRVL is not set @@ -1873,7 +1890,7 @@ CONFIG_NFC_NXP_NCI_I2C=m CONFIG_NFC_S3FWRN5=m CONFIG_NFC_S3FWRN5_I2C=m CONFIG_NFC_ST95HF=m -# CONFIG_PSAMPLE is not set +CONFIG_PSAMPLE=m CONFIG_NET_IFE=m CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y @@ -1898,7 +1915,6 @@ CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y -CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="am335x-bone-scale-data.bin am335x-evm-scale-data.bin am43x-evm-scale-data.bin" CONFIG_EXTRA_FIRMWARE_DIR="firmware" CONFIG_FW_LOADER_USER_HELPER=y @@ -1920,7 +1936,6 @@ CONFIG_REGMAP_I2C=y CONFIG_REGMAP_SPI=y CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y -CONFIG_REGMAP_HWSPINLOCK=y CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set CONFIG_DMA_CMA=y @@ -1963,7 +1978,7 @@ CONFIG_MTD=y # CONFIG_MTD_REDBOOT_PARTS is not set CONFIG_MTD_CMDLINE_PARTS=y # CONFIG_MTD_AFS_PARTS is not set -CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_OF_PARTS=y CONFIG_MTD_AR7_PARTS=m # @@ -2061,14 +2076,14 @@ CONFIG_MTD_NAND_RICOH=m # CONFIG_MTD_NAND_DISKONCHIP is not set # CONFIG_MTD_NAND_DOCG4 is not set CONFIG_MTD_NAND_CAFE=m -CONFIG_MTD_NAND_PXA3xx=y +CONFIG_MTD_NAND_MARVELL=y # CONFIG_MTD_NAND_NANDSIM is not set -# CONFIG_MTD_NAND_GPMI_NAND is not set +CONFIG_MTD_NAND_GPMI_NAND=y # CONFIG_MTD_NAND_BRCMNAND is not set # CONFIG_MTD_NAND_PLATFORM is not set # CONFIG_MTD_NAND_ORION is not set # CONFIG_MTD_NAND_FSL_IFC is not set -# CONFIG_MTD_NAND_VF610_NFC is not set +CONFIG_MTD_NAND_VF610_NFC=y CONFIG_MTD_NAND_MXC=m # CONFIG_MTD_NAND_DAVINCI is not set CONFIG_MTD_NAND_SUNXI=y @@ -2105,12 +2120,9 @@ CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_KOBJ=y CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y -CONFIG_OF_ADDRESS_PCI=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=y -CONFIG_OF_PCI=y -CONFIG_OF_PCI_IRQ=y CONFIG_OF_RESERVED_MEM=y CONFIG_OF_RESOLVE=y CONFIG_OF_OVERLAY=y @@ -2181,6 +2193,7 @@ CONFIG_SRAM=y CONFIG_SRAM_EXEC=y CONFIG_VEXPRESS_SYSCFG=y # CONFIG_PCI_ENDPOINT_TEST is not set +# CONFIG_MISC_RTSX is not set CONFIG_TIEQEP=m # CONFIG_C2PORT is not set @@ -2246,6 +2259,9 @@ CONFIG_BEAGLEBONE_PINMUX_HELPER=m # CONFIG_CXL_BASE is not set # CONFIG_CXL_AFU_DRIVER_OPS is not set # CONFIG_CXL_LIB is not set +# CONFIG_OCXL_BASE is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_MISC_RTSX_USB is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set @@ -2370,6 +2386,7 @@ CONFIG_SATA_PMP=y # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=y +CONFIG_SATA_MOBILE_LPM_POLICY=0 CONFIG_SATA_AHCI_PLATFORM=y # CONFIG_AHCI_DM816 is not set CONFIG_AHCI_IMX=y @@ -2480,6 +2497,7 @@ CONFIG_DM_BUFIO=m # CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_UNSTRIPED=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m @@ -2661,6 +2679,8 @@ CONFIG_NET_VENDOR_CIRRUS=y # CONFIG_CS89x0 is not set CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m +CONFIG_NET_VENDOR_CORTINA=y +# CONFIG_GEMINI_ETHERNET is not set # CONFIG_DM9000 is not set # CONFIG_DNET is not set CONFIG_NET_VENDOR_DEC=y @@ -2790,6 +2810,7 @@ CONFIG_QED=m CONFIG_QEDE=m CONFIG_NET_VENDOR_QUALCOMM=y # CONFIG_QCA7000_SPI is not set +# CONFIG_QCA7000_UART is not set # CONFIG_QCOM_EMAC is not set # CONFIG_RMNET is not set CONFIG_NET_VENDOR_REALTEK=y @@ -2826,6 +2847,7 @@ CONFIG_SMC911X=m CONFIG_SMSC911X=m # CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_SMSC9420=m +CONFIG_NET_VENDOR_SOCIONEXT=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m CONFIG_STMMAC_PLATFORM=m @@ -2882,6 +2904,7 @@ CONFIG_MDIO_BUS_MUX=m # CONFIG_MDIO_BUS_MUX_MMIOREG is not set # CONFIG_MDIO_HISI_FEMAC is not set CONFIG_MDIO_SUN4I=m +CONFIG_PHYLINK=m CONFIG_PHYLIB=y CONFIG_SWPHY=y CONFIG_LED_TRIGGER_PHY=y @@ -2889,6 +2912,7 @@ CONFIG_LED_TRIGGER_PHY=y # # MII PHY device drivers # +# CONFIG_SFP is not set CONFIG_AMD_PHY=m CONFIG_AQUANTIA_PHY=m CONFIG_AT803X_PHY=m @@ -3139,6 +3163,7 @@ CONFIG_MWIFIEX_USB=m CONFIG_MWL8K=m CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_MT7601U=m +# CONFIG_MT76x2E is not set CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=m CONFIG_RT2400PCI=m @@ -3237,6 +3262,7 @@ CONFIG_IEEE802154_ATUSB=m CONFIG_IEEE802154_ADF7242=m # CONFIG_IEEE802154_CA8210 is not set # CONFIG_VMXNET3 is not set +# CONFIG_NETDEVSIM is not set # CONFIG_ISDN is not set # CONFIG_NVM is not set @@ -3463,7 +3489,6 @@ CONFIG_INPUT_MC13783_PWRBUTTON=m CONFIG_INPUT_MMA8450=m CONFIG_INPUT_GP2A=m CONFIG_INPUT_GPIO_BEEPER=m -CONFIG_INPUT_GPIO_TILT_POLLED=m CONFIG_INPUT_GPIO_DECODER=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m @@ -3620,7 +3645,8 @@ CONFIG_SERIAL_FSL_LPUART_CONSOLE=y # CONFIG_SERIAL_ST_ASC is not set # CONFIG_SERIAL_MVEBU_UART is not set CONFIG_SERIAL_MCTRL_GPIO=y -# CONFIG_SERIAL_DEV_BUS is not set +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_TTY_PRINTK=m CONFIG_HVC_DRIVER=y # CONFIG_HVC_DCC is not set @@ -3633,13 +3659,13 @@ CONFIG_HW_RANDOM_OMAP=m CONFIG_HW_RANDOM_OMAP3_ROM=m CONFIG_HW_RANDOM_VIRTIO=m CONFIG_HW_RANDOM_IMX_RNGC=m -CONFIG_HW_RANDOM_TPM=m CONFIG_HW_RANDOM_MESON=m -# CONFIG_NVRAM is not set +CONFIG_HW_RANDOM_EXYNOS=m # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_RAW_DRIVER is not set CONFIG_TCG_TPM=m +CONFIG_HW_RANDOM_TPM=y # CONFIG_TCG_TIS is not set # CONFIG_TCG_TIS_SPI is not set CONFIG_TCG_TIS_I2C_ATMEL=m @@ -3715,6 +3741,7 @@ CONFIG_I2C_DESIGNWARE_PLATFORM=y # CONFIG_I2C_EMEV2 is not set CONFIG_I2C_EXYNOS5=y CONFIG_I2C_GPIO=y +# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set CONFIG_I2C_IMX=y # CONFIG_I2C_IMX_LPI2C is not set CONFIG_I2C_MESON=y @@ -3852,6 +3879,7 @@ CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AS3722=y +CONFIG_PINCTRL_AXP209=y # CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_MCP23S08 is not set CONFIG_PINCTRL_ROCKCHIP=y @@ -3926,7 +3954,6 @@ CONFIG_GPIO_MAX730X=m # # CONFIG_GPIO_74XX_MMIO is not set # CONFIG_GPIO_ALTERA is not set -CONFIG_GPIO_AXP209=y CONFIG_GPIO_DAVINCI=y CONFIG_GPIO_DWAPB=y # CONFIG_GPIO_EXAR is not set @@ -3982,17 +4009,18 @@ CONFIG_GPIO_TWL6040=y # PCI GPIO expanders # # CONFIG_GPIO_PCI_IDIO_16 is not set +# CONFIG_GPIO_PCIE_IDIO_24 is not set # CONFIG_GPIO_RDC321X is not set # # SPI GPIO expanders # CONFIG_GPIO_74X164=m -# CONFIG_GPIO_MAX3191X is not set +CONFIG_GPIO_MAX3191X=m CONFIG_GPIO_MAX7301=m CONFIG_GPIO_MC33880=m CONFIG_GPIO_PISOSR=m -# CONFIG_GPIO_XRA1403 is not set +CONFIG_GPIO_XRA1403=m # # USB GPIO expanders @@ -4040,7 +4068,6 @@ CONFIG_POWER_RESET_AS3722=y # CONFIG_POWER_RESET_BRCMSTB is not set CONFIG_POWER_RESET_GPIO=y CONFIG_POWER_RESET_GPIO_RESTART=y -CONFIG_POWER_RESET_IMX=y # CONFIG_POWER_RESET_LTC2952 is not set # CONFIG_POWER_RESET_QNAP is not set CONFIG_POWER_RESET_RESTART=y @@ -4099,11 +4126,11 @@ CONFIG_CHARGER_BQ24735=m # CONFIG_CHARGER_BQ25890 is not set # CONFIG_CHARGER_SMB347 is not set CONFIG_CHARGER_TPS65090=m -# CONFIG_CHARGER_TPS65217 is not set +CONFIG_CHARGER_TPS65217=y # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_CHARGER_RT9455 is not set CONFIG_POWER_SEQUENCE=y -# CONFIG_PWRSEQ_GENERIC is not set +CONFIG_PWRSEQ_GENERIC=y CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set @@ -4254,6 +4281,7 @@ CONFIG_SENSORS_VEXPRESS=y # CONFIG_SENSORS_VIA686A is not set CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83773G=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m @@ -4335,12 +4363,14 @@ CONFIG_XILINX_WATCHDOG=m # CONFIG_ZIIRAVE_WATCHDOG is not set CONFIG_ARM_SP805_WATCHDOG=m CONFIG_CADENCE_WATCHDOG=m +# CONFIG_FTWDT010_WATCHDOG is not set CONFIG_HAVE_S3C2410_WATCHDOG=y CONFIG_S3C2410_WATCHDOG=m CONFIG_DW_WATCHDOG=m CONFIG_OMAP_WATCHDOG=m CONFIG_DAVINCI_WATCHDOG=m CONFIG_ORION_WATCHDOG=m +CONFIG_RN5T618_WATCHDOG=m CONFIG_SUNXI_WATCHDOG=m CONFIG_TWL4030_WATCHDOG=m # CONFIG_TS4800_WATCHDOG is not set @@ -4370,10 +4400,6 @@ CONFIG_USBPCWATCHDOG=m # # CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# CONFIG_SSB=m CONFIG_SSB_SPROM=y CONFIG_SSB_BLOCKIO=y @@ -4420,6 +4446,7 @@ CONFIG_MFD_AXP20X_RSB=y CONFIG_MFD_CROS_EC=y CONFIG_MFD_CROS_EC_I2C=y CONFIG_MFD_CROS_EC_SPI=y +CONFIG_MFD_CROS_EC_CHARDEV=m # CONFIG_MFD_ASIC3 is not set # CONFIG_PMIC_DA903X is not set CONFIG_PMIC_DA9052=y @@ -4463,12 +4490,10 @@ CONFIG_MFD_MAX8998=y # CONFIG_UCB1400_CORE is not set # CONFIG_MFD_PM8XXX is not set # CONFIG_MFD_RDC321X is not set -CONFIG_MFD_RTSX_PCI=m # CONFIG_MFD_RT5033 is not set -CONFIG_MFD_RTSX_USB=m # CONFIG_MFD_RC5T583 is not set CONFIG_MFD_RK808=y -# CONFIG_MFD_RN5T618 is not set +CONFIG_MFD_RN5T618=y CONFIG_MFD_SEC_CORE=y # CONFIG_MFD_SI476X_CORE is not set # CONFIG_MFD_SM501 is not set @@ -4524,6 +4549,7 @@ CONFIG_MFD_WL1273_CORE=m # CONFIG_MFD_WM8350_I2C is not set CONFIG_MFD_WM8994=y CONFIG_MFD_VEXPRESS_SYSREG=y +# CONFIG_RAVE_SP_CORE is not set CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=y @@ -4575,6 +4601,7 @@ CONFIG_REGULATOR_PFUZE100=y # CONFIG_REGULATOR_PV88090 is not set CONFIG_REGULATOR_PWM=y CONFIG_REGULATOR_RK808=y +CONFIG_REGULATOR_RN5T618=y CONFIG_REGULATOR_S2MPA01=y CONFIG_REGULATOR_S2MPS11=y CONFIG_REGULATOR_S5M8767=y @@ -4600,9 +4627,8 @@ CONFIG_CEC_NOTIFIER=y CONFIG_CEC_PIN=y CONFIG_RC_CORE=m CONFIG_RC_MAP=m +CONFIG_LIRC=y CONFIG_RC_DECODERS=y -CONFIG_LIRC=m -CONFIG_IR_LIRC_CODEC=m CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m CONFIG_IR_RC6_DECODER=m @@ -4661,18 +4687,14 @@ CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_VIDEOBUF_DVB=m -CONFIG_VIDEOBUF2_CORE=m -CONFIG_VIDEOBUF2_MEMOPS=m -CONFIG_VIDEOBUF2_DMA_CONTIG=m -CONFIG_VIDEOBUF2_VMALLOC=m -CONFIG_VIDEOBUF2_DMA_SG=m -CONFIG_VIDEOBUF2_DVB=m CONFIG_DVB_CORE=y +# CONFIG_DVB_MMAP is not set CONFIG_DVB_NET=y CONFIG_TTPCI_EEPROM=m CONFIG_DVB_MAX_ADAPTERS=16 CONFIG_DVB_DYNAMIC_MINORS=y # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set # # Media drivers @@ -4999,6 +5021,13 @@ CONFIG_MEDIA_COMMON_OPTIONS=y CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_TVEEPROM=m CONFIG_CYPRESS_FIRMWARE=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_V4L2=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF2_DMA_SG=m +CONFIG_VIDEOBUF2_DVB=m CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m @@ -5110,6 +5139,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m CONFIG_SOC_CAMERA_TW9910=m CONFIG_MEDIA_TUNER=y CONFIG_MEDIA_TUNER_SIMPLE=y +CONFIG_MEDIA_TUNER_TDA18250=m CONFIG_MEDIA_TUNER_TDA8290=y CONFIG_MEDIA_TUNER_TDA827X=y CONFIG_MEDIA_TUNER_TDA18271=y @@ -5309,7 +5339,7 @@ CONFIG_TEGRA_HOST1X_FIREWALL=y CONFIG_IMX_IPUV3_CORE=m CONFIG_DRM=y CONFIG_DRM_MIPI_DSI=y -# CONFIG_DRM_DP_AUX_CHARDEV is not set +CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DEBUG_MM is not set # CONFIG_DRM_DEBUG_MM_SELFTEST is not set CONFIG_DRM_KMS_HELPER=y @@ -5373,9 +5403,6 @@ CONFIG_DRM_EXYNOS_HDMI=y # Sub-drivers # # CONFIG_DRM_EXYNOS_G2D is not set -CONFIG_DRM_EXYNOS_IPP=y -CONFIG_DRM_EXYNOS_FIMC=y -CONFIG_DRM_EXYNOS_ROTATOR=y CONFIG_DRM_ROCKCHIP=m CONFIG_ROCKCHIP_ANALOGIX_DP=y # CONFIG_ROCKCHIP_CDN_DP is not set @@ -5432,7 +5459,7 @@ CONFIG_DRM_TILCDC=m CONFIG_DRM_QXL=m CONFIG_DRM_BOCHS=m CONFIG_DRM_VIRTIO_GPU=m -# CONFIG_DRM_FSL_DCU is not set +CONFIG_DRM_FSL_DCU=m CONFIG_DRM_TEGRA=m # CONFIG_DRM_TEGRA_DEBUG is not set CONFIG_DRM_TEGRA_STAGING=y @@ -5445,6 +5472,7 @@ CONFIG_DRM_PANEL=y # # CONFIG_DRM_PANEL_LVDS is not set CONFIG_DRM_PANEL_SIMPLE=y +# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set # CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set # CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set CONFIG_DRM_PANEL_SAMSUNG_LD9040=m @@ -5501,10 +5529,17 @@ CONFIG_DRM_ETNAVIV_THERMAL=y CONFIG_DRM_MXS=y CONFIG_DRM_MXSFB=m # CONFIG_DRM_MESON is not set -# CONFIG_DRM_TINYDRM is not set +CONFIG_DRM_TINYDRM=m +CONFIG_TINYDRM_MIPI_DBI=m +CONFIG_TINYDRM_ILI9225=m +CONFIG_TINYDRM_MI0283QT=m +CONFIG_TINYDRM_REPAPER=m +CONFIG_TINYDRM_ST7586=m +CONFIG_TINYDRM_ST7735R=m # CONFIG_DRM_PL111 is not set # CONFIG_DRM_TVE200 is not set # CONFIG_DRM_LEGACY is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y # CONFIG_DRM_LIB_RANDOM is not set # @@ -5930,11 +5965,14 @@ CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98095=m # CONFIG_SND_SOC_MAX98504 is not set # CONFIG_SND_SOC_MAX98927 is not set +# CONFIG_SND_SOC_MAX98373 is not set # CONFIG_SND_SOC_MAX9860 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 +# CONFIG_SND_SOC_PCM186X_I2C is not set +# CONFIG_SND_SOC_PCM186X_SPI is not set # CONFIG_SND_SOC_PCM3168A_I2C is not set # CONFIG_SND_SOC_PCM3168A_SPI is not set # CONFIG_SND_SOC_PCM512x_I2C is not set @@ -5960,14 +5998,17 @@ CONFIG_SND_SOC_SPDIF=m # CONFIG_SND_SOC_TAS5086 is not set # CONFIG_SND_SOC_TAS571X is not set # CONFIG_SND_SOC_TAS5720 is not set -# CONFIG_SND_SOC_TDM is not set +# CONFIG_SND_SOC_TAS6424 is not set # CONFIG_SND_SOC_TFA9879 is not set CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_I2C=m # CONFIG_SND_SOC_TLV320AIC23_SPI is not set CONFIG_SND_SOC_TLV320AIC31XX=m +# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set +# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set CONFIG_SND_SOC_TLV320AIC3X=m CONFIG_SND_SOC_TS3A227E=m +# CONFIG_SND_SOC_TSCS42XX is not set CONFIG_SND_SOC_TWL4030=m CONFIG_SND_SOC_TWL6040=m # CONFIG_SND_SOC_WM8510 is not set @@ -6053,6 +6094,7 @@ CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_ICADE=m CONFIG_HID_ITE=m +CONFIG_HID_JABRA=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m CONFIG_HID_LCPOWER=m @@ -6154,6 +6196,7 @@ CONFIG_USB_WUSB_CBAF=m # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_DBGCAP is not set CONFIG_USB_XHCI_PCI=y CONFIG_USB_XHCI_PLATFORM=y CONFIG_USB_XHCI_MVEBU=y @@ -6229,8 +6272,8 @@ CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m CONFIG_USBIP_CORE=m CONFIG_USBIP_VHCI_HCD=m -CONFIG_USBIP_VHCI_HC_PORTS=8 -CONFIG_USBIP_VHCI_NR_HCS=1 +CONFIG_USBIP_VHCI_HC_PORTS=15 +CONFIG_USBIP_VHCI_NR_HCS=8 CONFIG_USBIP_HOST=m CONFIG_USBIP_VUDC=m # CONFIG_USBIP_DEBUG is not set @@ -6321,18 +6364,6 @@ CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KEYSPAN=m -# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set -# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m @@ -6571,9 +6602,8 @@ CONFIG_MMC_DW_ROCKCHIP=y CONFIG_MMC_VUB300=y CONFIG_MMC_USHC=y CONFIG_MMC_USDHI6ROL0=y -CONFIG_MMC_REALTEK_PCI=m -CONFIG_MMC_REALTEK_USB=m CONFIG_MMC_SUNXI=y +CONFIG_MMC_CQHCI=y CONFIG_MMC_TOSHIBA_PCI=m CONFIG_MMC_BCM2835=y # CONFIG_MMC_MTK is not set @@ -6595,12 +6625,10 @@ CONFIG_MSPRO_BLOCK=m CONFIG_MEMSTICK_TIFM_MS=m CONFIG_MEMSTICK_JMICRON_38X=m CONFIG_MEMSTICK_R592=m -CONFIG_MEMSTICK_REALTEK_PCI=m -CONFIG_MEMSTICK_REALTEK_USB=m CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y CONFIG_LEDS_CLASS_FLASH=m -# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set +CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y # # LED drivers @@ -6611,6 +6639,7 @@ CONFIG_LEDS_BCM6328=m CONFIG_LEDS_BCM6358=m CONFIG_LEDS_LM3530=m CONFIG_LEDS_LM3642=m +# CONFIG_LEDS_LM3692X is not set CONFIG_LEDS_PCA9532=m CONFIG_LEDS_PCA9532_GPIO=y CONFIG_LEDS_GPIO=y @@ -6670,6 +6699,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y CONFIG_LEDS_TRIGGER_TRANSIENT=m CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_LEDS_TRIGGER_NETDEV=m # CONFIG_ACCESSIBILITY is not set CONFIG_INFINIBAND=m CONFIG_INFINIBAND_USER_MAD=m @@ -6707,8 +6737,8 @@ CONFIG_EDAC_LEGACY_SYSFS=y # CONFIG_EDAC_DEBUG is not set # CONFIG_EDAC_ALTERA is not set # CONFIG_EDAC_SYNOPSYS is not set +# CONFIG_EDAC_TI is not set CONFIG_RTC_LIB=y -CONFIG_RTC_MC146818_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" @@ -6803,7 +6833,7 @@ CONFIG_RTC_DRV_RV3029_HWMON=y # # Platform RTC drivers # -CONFIG_RTC_DRV_CMOS=m +# CONFIG_RTC_DRV_CMOS is not set CONFIG_RTC_DRV_DS1286=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m @@ -6829,6 +6859,7 @@ CONFIG_RTC_DRV_BQ4802=m CONFIG_RTC_DRV_RP5C01=m CONFIG_RTC_DRV_V3020=m CONFIG_RTC_DRV_ZYNQMP=m +CONFIG_RTC_DRV_CROS_EC=y # # on-CPU RTC drivers @@ -6847,6 +6878,7 @@ CONFIG_RTC_DRV_ARMADA38X=y CONFIG_RTC_DRV_MC13XXX=y CONFIG_RTC_DRV_TEGRA=y CONFIG_RTC_DRV_MXC=y +CONFIG_RTC_DRV_MXC_V2=y CONFIG_RTC_DRV_SNVS=y CONFIG_RTC_DRV_R7301=y @@ -6920,10 +6952,7 @@ CONFIG_UIO_MF624=m # CONFIG_VFIO is not set # CONFIG_VIRT_DRIVERS is not set CONFIG_VIRTIO=y - -# -# Virtio drivers -# +CONFIG_VIRTIO_MENU=y CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_BALLOON=m @@ -6987,6 +7016,8 @@ CONFIG_USB_IRDA=m CONFIG_SIGMATEL_FIR=m # CONFIG_VLSI_FIR is not set CONFIG_MCS_FIR=m +# CONFIG_IPX is not set +# CONFIG_NCP_FS is not set CONFIG_PRISM2_USB=m # CONFIG_COMEDI is not set CONFIG_RTL8192U=m @@ -7105,8 +7136,7 @@ CONFIG_VIDEO_IMX_MEDIA=m # CONFIG_VIDEO_IMX_CSI=m CONFIG_VIDEO_OMAP4=m -CONFIG_LIRC_STAGING=y -CONFIG_LIRC_ZILOG=m +CONFIG_TEGRA_VDE=m # # Android @@ -7123,6 +7153,7 @@ CONFIG_LUSTRE_FS=m CONFIG_LUSTRE_TRANSLATE_ERRNOS=y # CONFIG_DGNC is not set CONFIG_GS_FPGABOOT=m +# CONFIG_UNISYSSPAR is not set # CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set CONFIG_FB_TFT=m CONFIG_FB_TFT_AGM1264K_FL=m @@ -7146,7 +7177,6 @@ CONFIG_FB_TFT_SH1106=m CONFIG_FB_TFT_SSD1289=m CONFIG_FB_TFT_SSD1305=m CONFIG_FB_TFT_SSD1306=m -CONFIG_FB_TFT_SSD1325=m CONFIG_FB_TFT_SSD1331=m CONFIG_FB_TFT_SSD1351=m CONFIG_FB_TFT_ST7735R=m @@ -7178,8 +7208,9 @@ CONFIG_VIDEO_BCM2835=m # CONFIG_PI433 is not set # CONFIG_GOLDFISH is not set CONFIG_CHROME_PLATFORMS=y -CONFIG_CROS_EC_CHARDEV=y +CONFIG_CROS_EC_CTL=m CONFIG_CROS_EC_PROTO=y +# CONFIG_MELLANOX_PLATFORM is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y @@ -7320,6 +7351,7 @@ CONFIG_WKUP_M3_RPROC=y # # CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set +# CONFIG_SOUNDWIRE is not set # # SOC (System On Chip) specific Drivers @@ -7365,6 +7397,11 @@ CONFIG_SOC_TI=y # CONFIG_KEYSTONE_NAVIGATOR_QMSS is not set # CONFIG_KEYSTONE_NAVIGATOR_DMA is not set CONFIG_WKUP_M3_IPC=y + +# +# Xilinx SoC drivers +# +# CONFIG_XILINX_VCU is not set CONFIG_PM_DEVFREQ=y # @@ -7379,12 +7416,12 @@ CONFIG_DEVFREQ_GOV_PASSIVE=y # # DEVFREQ Drivers # -CONFIG_ARM_EXYNOS_BUS_DEVFREQ=y +# CONFIG_ARM_EXYNOS_BUS_DEVFREQ is not set CONFIG_ARM_TEGRA_DEVFREQ=y # CONFIG_ARM_RK3399_DMC_DEVFREQ is not set CONFIG_PM_DEVFREQ_EVENT=y -CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP=y -CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU=y +# CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP is not set +# CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU is not set CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=y CONFIG_EXTCON=y @@ -7409,6 +7446,7 @@ CONFIG_TI_AEMIF=y CONFIG_TI_EMIF=y CONFIG_OMAP_GPMC=y # CONFIG_OMAP_GPMC_DEBUG is not set +CONFIG_TI_EMIF_SRAM=y CONFIG_MVEBU_DEVBUS=y CONFIG_TEGRA20_MC=y CONFIG_SAMSUNG_MC=y @@ -7418,6 +7456,7 @@ CONFIG_TEGRA124_EMC=y CONFIG_IIO=y CONFIG_IIO_BUFFER=y CONFIG_IIO_BUFFER_CB=m +CONFIG_IIO_BUFFER_HW_CONSUMER=m CONFIG_IIO_KFIFO_BUF=y CONFIG_IIO_TRIGGERED_BUFFER=y CONFIG_IIO_CONFIGFS=m @@ -7502,6 +7541,7 @@ CONFIG_MESON_SARADC=m CONFIG_NAU7802=m CONFIG_PALMAS_GPADC=m CONFIG_ROCKCHIP_SARADC=m +CONFIG_SD_ADC_MODULATOR=m CONFIG_SUN4I_GPADC=m CONFIG_TI_ADC081C=m CONFIG_TI_ADC0832=m @@ -7698,6 +7738,9 @@ CONFIG_OPT3001=m CONFIG_PA12203001=m CONFIG_SI1145=m CONFIG_STK3310=m +CONFIG_ST_UVIS25=m +CONFIG_ST_UVIS25_I2C=m +CONFIG_ST_UVIS25_SPI=m CONFIG_TCS3414=m CONFIG_TCS3472=m CONFIG_SENSORS_TSL2563=m @@ -7707,6 +7750,7 @@ CONFIG_US5182D=m CONFIG_VCNL4000=m CONFIG_VEML6070=m CONFIG_VL6180=m +CONFIG_ZOPT2201=m # # Magnetometer sensors @@ -7935,24 +7979,21 @@ CONFIG_NVMEM_SNVS_LPGPR=y # CONFIG_STM is not set # CONFIG_INTEL_TH is not set CONFIG_FPGA=m -CONFIG_FPGA_REGION=m -CONFIG_FPGA_MGR_ICE40_SPI=m -# CONFIG_FPGA_MGR_ALTERA_CVP is not set -# CONFIG_FPGA_MGR_ALTERA_PS_SPI is not set CONFIG_FPGA_MGR_SOCFPGA=m CONFIG_FPGA_MGR_SOCFPGA_A10=m -CONFIG_FPGA_MGR_XILINX_SPI=m +CONFIG_ALTERA_PR_IP_CORE=m +CONFIG_ALTERA_PR_IP_CORE_PLAT=m +# CONFIG_FPGA_MGR_ALTERA_PS_SPI is not set +# CONFIG_FPGA_MGR_ALTERA_CVP is not set CONFIG_FPGA_MGR_ZYNQ_FPGA=m +CONFIG_FPGA_MGR_XILINX_SPI=m +CONFIG_FPGA_MGR_ICE40_SPI=m CONFIG_FPGA_BRIDGE=m CONFIG_SOCFPGA_FPGA_BRIDGE=m CONFIG_ALTERA_FREEZE_BRIDGE=m -CONFIG_ALTERA_PR_IP_CORE=m -CONFIG_ALTERA_PR_IP_CORE_PLAT=m CONFIG_XILINX_PR_DECOUPLER=m - -# -# FSI support -# +CONFIG_FPGA_REGION=m +CONFIG_OF_FPGA_REGION=m # CONFIG_FSI is not set # CONFIG_TEE is not set CONFIG_MULTIPLEXER=m @@ -7964,6 +8005,8 @@ CONFIG_MULTIPLEXER=m # CONFIG_MUX_GPIO is not set # CONFIG_MUX_MMIO is not set CONFIG_PM_OPP=y +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set # # Firmware Drivers @@ -8238,8 +8281,8 @@ CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG_DUMP_KEYS is not set CONFIG_CIFS_DFS_UPCALL=y # CONFIG_CIFS_SMB311 is not set +# CONFIG_CIFS_SMB_DIRECT is not set CONFIG_CIFS_FSCACHE=y -# CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # CONFIG_9P_FS is not set @@ -8425,37 +8468,7 @@ CONFIG_RING_BUFFER_ALLOW_SWAP=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_DMA_API_DEBUG is not set - -# -# Runtime Testing -# -# CONFIG_LKDTM is not set -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_TEST_SORT is not set -# CONFIG_KPROBES_SANITY_TEST is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_RBTREE_TEST is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_PERCPU_TEST is not set -# CONFIG_ATOMIC64_SELFTEST is not set -# CONFIG_ASYNC_RAID6_TEST is not set -# CONFIG_TEST_HEXDUMP is not set -# CONFIG_TEST_STRING_HELPERS is not set -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_TEST_PRINTF is not set -# CONFIG_TEST_BITMAP is not set -# CONFIG_TEST_UUID is not set -# CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_HASH is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_BPF is not set -# CONFIG_TEST_FIND_BIT is not set -# CONFIG_TEST_FIRMWARE is not set -# CONFIG_TEST_SYSCTL is not set -# CONFIG_TEST_UDELAY is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_TEST_KMOD is not set +# CONFIG_RUNTIME_TESTING_MENU is not set # CONFIG_MEMTEST is not set # CONFIG_BUG_ON_DATA_CORRUPTION is not set # CONFIG_SAMPLES is not set @@ -8472,7 +8485,9 @@ CONFIG_KDB_CONTINUE_CATASTROPHIC=0 CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y # CONFIG_IO_STRICT_DEVMEM is not set -# CONFIG_ARM_PTDUMP is not set +# CONFIG_ARM_PTDUMP_CORE is not set +# CONFIG_ARM_PTDUMP_DEBUGFS is not set +# CONFIG_DEBUG_WX is not set CONFIG_ARM_UNWIND=y # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_LL is not set @@ -8751,7 +8766,7 @@ CONFIG_CRC32_SLICEBY8=y # CONFIG_CRC4 is not set CONFIG_CRC7=y CONFIG_LIBCRC32C=y -# CONFIG_CRC8 is not set +CONFIG_CRC8=m CONFIG_XXHASH=y # CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set # CONFIG_RANDOM32_SELFTEST is not set @@ -8790,7 +8805,8 @@ CONFIG_BTREE=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_DMA=y -# CONFIG_DMA_NOOP_OPS is not set +CONFIG_SGL_ALLOC=y +# CONFIG_DMA_DIRECT_OPS is not set # CONFIG_DMA_VIRT_OPS is not set CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y diff --git a/libre/linux-libre/config.i686 b/libre/linux-libre/config.i686 index 695c31449..5b1cc304c 100644 --- a/libre/linux-libre/config.i686 +++ b/libre/linux-libre/config.i686 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.15.2-gnu-1 Kernel Configuration +# Linux/x86 4.16.3-gnu-1 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -39,7 +39,6 @@ CONFIG_X86_32_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=2 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -91,7 +90,6 @@ CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y -# CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set @@ -231,6 +229,7 @@ CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y # CONFIG_USERFAULTFD is not set +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # CONFIG_PC104 is not set @@ -276,12 +275,14 @@ CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y @@ -305,10 +306,10 @@ CONFIG_SECCOMP_FILTER=y CONFIG_HAVE_GCC_PLUGINS=y # CONFIG_GCC_PLUGINS is not set CONFIG_HAVE_CC_STACKPROTECTOR=y -CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set # CONFIG_CC_STACKPROTECTOR_REGULAR is not set -CONFIG_CC_STACKPROTECTOR_STRONG=y +# CONFIG_CC_STACKPROTECTOR_STRONG is not set +CONFIG_CC_STACKPROTECTOR_AUTO=y CONFIG_THIN_ARCHIVES=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y @@ -333,6 +334,7 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAS_PHYS_TO_DMA=y CONFIG_ARCH_HAS_REFCOUNT=y # CONFIG_REFCOUNT_FULL is not set @@ -426,6 +428,7 @@ CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_FREEZER=y # @@ -436,10 +439,10 @@ CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_MPPARSE=y -CONFIG_X86_BIGSMP=y # CONFIG_GOLDFISH is not set CONFIG_RETPOLINE=y CONFIG_INTEL_RDT=y +CONFIG_X86_BIGSMP=y # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_X86_INTEL_LPSS=y CONFIG_X86_AMD_PLATFORM_DEVICE=y @@ -485,13 +488,12 @@ CONFIG_M686=y CONFIG_X86_GENERIC=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_L1_CACHE_SHIFT=6 -# CONFIG_X86_PPRO_FENCE is not set CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y -CONFIG_X86_MINIMUM_CPU_FAMILY=5 +CONFIG_X86_MINIMUM_CPU_FAMILY=6 CONFIG_X86_DEBUGCTLMSR=y CONFIG_PROCESSOR_SELECT=y CONFIG_CPU_SUP_INTEL=y @@ -503,6 +505,9 @@ CONFIG_CPU_SUP_UMC_32=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=64 +CONFIG_NR_CPUS_DEFAULT=32 CONFIG_NR_CPUS=64 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -598,7 +603,6 @@ CONFIG_ZSMALLOC=y # CONFIG_PGTABLE_MAPPING is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_FRAME_VECTOR=y # CONFIG_PERCPU_STATS is not set @@ -621,9 +625,9 @@ CONFIG_EFI_STUB=y CONFIG_SECCOMP=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -CONFIG_HZ_1000=y -CONFIG_HZ=1000 +CONFIG_HZ_300=y +# CONFIG_HZ_1000 is not set +CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y @@ -674,6 +678,7 @@ CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_SPCR_TABLE=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS_POWER is not set CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y @@ -697,7 +702,6 @@ CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_DEBUG=y CONFIG_ACPI_PCI_SLOT=y -CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_HOTPLUG_IOAPIC=y CONFIG_ACPI_SBS=m @@ -724,6 +728,7 @@ CONFIG_CHT_WC_PMIC_OPREGION=y CONFIG_CHT_DC_TI_PMIC_OPREGION=y CONFIG_ACPI_CONFIGFS=m CONFIG_TPS68470_PMIC_OPREGION=y +CONFIG_X86_PM_TIMER=y CONFIG_SFI=y CONFIG_X86_APM_BOOT=y CONFIG_APM=y @@ -844,6 +849,13 @@ CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m CONFIG_HOTPLUG_PCI_SHPC=m +# +# Cadence PCIe controllers support +# +CONFIG_PCIE_CADENCE=y +CONFIG_PCIE_CADENCE_HOST=y +CONFIG_PCIE_CADENCE_EP=y + # # DesignWare PCI Core Support # @@ -916,7 +928,7 @@ CONFIG_RAPIDIO_CPS_XX=m CONFIG_RAPIDIO_TSI568=m CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_RXS_GEN3=m -CONFIG_X86_SYSFB=y +# CONFIG_X86_SYSFB is not set # # Executable file formats / Emulations @@ -994,7 +1006,7 @@ CONFIG_INET_RAW_DIAG=m CONFIG_INET_DIAG_DESTROY=y CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m @@ -1008,10 +1020,10 @@ CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m CONFIG_TCP_CONG_DCTCP=m CONFIG_TCP_CONG_CDG=m -CONFIG_TCP_CONG_BBR=y -CONFIG_DEFAULT_BBR=y +CONFIG_TCP_CONG_BBR=m +CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set -CONFIG_DEFAULT_TCP_CONG="bbr" +CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y CONFIG_IPV6_ROUTER_PREF=y @@ -1057,12 +1069,15 @@ CONFIG_BRIDGE_NETFILTER=m # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_FAMILY_BRIDGE=y +CONFIG_NETFILTER_FAMILY_ARP=y CONFIG_NETFILTER_NETLINK_ACCT=m 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_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y @@ -1110,6 +1125,7 @@ CONFIG_NFT_META=m CONFIG_NFT_RT=m CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m +CONFIG_NFT_FLOW_OFFLOAD=m CONFIG_NFT_SET_RBTREE=m CONFIG_NFT_SET_HASH=m CONFIG_NFT_SET_BITMAP=m @@ -1132,6 +1148,8 @@ CONFIG_NF_DUP_NETDEV=m CONFIG_NFT_DUP_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_FIB_NETDEV=m +CONFIG_NF_FLOW_TABLE_INET=m +CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m # @@ -1292,6 +1310,7 @@ CONFIG_NFT_REJECT_IPV4=m CONFIG_NFT_DUP_IPV4=m CONFIG_NFT_FIB_IPV4=m CONFIG_NF_TABLES_ARP=m +CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m @@ -1338,6 +1357,7 @@ CONFIG_NFT_CHAIN_ROUTE_IPV6=m CONFIG_NFT_REJECT_IPV6=m CONFIG_NFT_DUP_IPV6=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m @@ -1356,6 +1376,7 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_SRH=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m @@ -1406,9 +1427,7 @@ CONFIG_IP_DCCP_TFRC_LIB=y # DCCP Kernel Hacking # # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_NET_DCCPPROBE=m CONFIG_IP_SCTP=m -CONFIG_NET_SCTPPROBE=m # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y @@ -1442,6 +1461,7 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=m +# CONFIG_NET_DSA_LEGACY is not set CONFIG_NET_DSA_TAG_BRCM=y CONFIG_NET_DSA_TAG_BRCM_PREPEND=y CONFIG_NET_DSA_TAG_DSA=y @@ -1449,7 +1469,6 @@ CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_KSZ=y CONFIG_NET_DSA_TAG_LAN9303=y CONFIG_NET_DSA_TAG_MTK=y -CONFIG_NET_DSA_TAG_TRAILER=y CONFIG_NET_DSA_TAG_QCA=y CONFIG_VLAN_8021Q=m # CONFIG_VLAN_8021Q_GVRP is not set @@ -1457,7 +1476,6 @@ CONFIG_VLAN_8021Q_MVRP=y # CONFIG_DECNET is not set CONFIG_LLC=m CONFIG_LLC2=m -# CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set @@ -1508,19 +1526,19 @@ CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_CODEL=m -CONFIG_NET_SCH_FQ_CODEL=m -CONFIG_NET_SCH_FQ=y +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_FQ=m CONFIG_NET_SCH_HHF=m CONFIG_NET_SCH_PIE=m CONFIG_NET_SCH_INGRESS=m CONFIG_NET_SCH_PLUG=m CONFIG_NET_SCH_DEFAULT=y -CONFIG_DEFAULT_FQ=y +# CONFIG_DEFAULT_FQ is not set # CONFIG_DEFAULT_CODEL is not set -# CONFIG_DEFAULT_FQ_CODEL is not set +CONFIG_DEFAULT_FQ_CODEL=y # CONFIG_DEFAULT_SFQ is not set # CONFIG_DEFAULT_PFIFO_FAST is not set -CONFIG_DEFAULT_NET_SCH="fq" +CONFIG_DEFAULT_NET_SCH="fq_codel" # # Classification @@ -1616,7 +1634,6 @@ CONFIG_NET_FLOW_LIMIT=y # Network testing # CONFIG_NET_PKTGEN=m -CONFIG_NET_TCPPROBE=m CONFIG_NET_DROP_MONITOR=m CONFIG_HAMRADIO=y @@ -1723,6 +1740,7 @@ CONFIG_BT_BCM=m CONFIG_BT_RTL=m CONFIG_BT_QCA=m CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIBTSDIO=m @@ -1874,7 +1892,6 @@ CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set @@ -1896,7 +1913,7 @@ CONFIG_REGMAP_SPMI=m CONFIG_REGMAP_W1=m CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y -CONFIG_REGMAP_HWSPINLOCK=y +CONFIG_REGMAP_SOUNDWIRE=m CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set @@ -2062,12 +2079,9 @@ CONFIG_OF_PROMTREE=y CONFIG_OF_KOBJ=y CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y -CONFIG_OF_ADDRESS_PCI=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=m -CONFIG_OF_PCI=y -CONFIG_OF_PCI_IRQ=y CONFIG_OF_RESOLVE=y CONFIG_OF_OVERLAY=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y @@ -2168,6 +2182,7 @@ CONFIG_USB_SWITCH_FSA9480=m CONFIG_LATTICE_ECP3_CONFIG=m # CONFIG_SRAM is not set CONFIG_PCI_ENDPOINT_TEST=m +CONFIG_MISC_RTSX=m CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m @@ -2236,6 +2251,9 @@ CONFIG_ECHO=m # CONFIG_CXL_BASE is not set # CONFIG_CXL_AFU_DRIVER_OPS is not set # CONFIG_CXL_LIB is not set +# CONFIG_OCXL_BASE is not set +CONFIG_MISC_RTSX_PCI=m +CONFIG_MISC_RTSX_USB=m CONFIG_HAVE_IDE=y # CONFIG_IDE is not set @@ -2413,6 +2431,7 @@ CONFIG_SATA_PMP=y # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=m +CONFIG_SATA_MOBILE_LPM_POLICY=3 CONFIG_SATA_AHCI_PLATFORM=m CONFIG_AHCI_CEVA=m CONFIG_AHCI_QORIQ=m @@ -2530,6 +2549,7 @@ CONFIG_DM_BUFIO=m # CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_UNSTRIPED=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m @@ -2672,7 +2692,6 @@ CONFIG_B53_SRAB_DRIVER=m CONFIG_NET_DSA_BCM_SF2=m CONFIG_NET_DSA_LOOP=m CONFIG_NET_DSA_MT7530=m -CONFIG_NET_DSA_MV88E6060=m CONFIG_MICROCHIP_KSZ=m CONFIG_MICROCHIP_KSZ_SPI_DRIVER=m CONFIG_NET_DSA_MV88E6XXX=m @@ -2759,6 +2778,8 @@ CONFIG_CS89x0=m # CONFIG_CS89x0_PLATFORM is not set CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m +CONFIG_NET_VENDOR_CORTINA=y +CONFIG_GEMINI_ETHERNET=m CONFIG_CX_ECAT=m CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y @@ -2939,6 +2960,7 @@ CONFIG_EPIC100=m CONFIG_SMSC911X=m # CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_SMSC9420=m +CONFIG_NET_VENDOR_SOCIONEXT=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m CONFIG_STMMAC_PLATFORM=m @@ -3121,6 +3143,7 @@ CONFIG_ATH9K_PCOEM=y CONFIG_ATH9K_HTC=m CONFIG_ATH9K_HTC_DEBUGFS=y CONFIG_ATH9K_HWRNG=y +CONFIG_ATH9K_COMMON_SPECTRAL=y CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_DEBUGFS=y @@ -3143,6 +3166,7 @@ CONFIG_ATH10K_SDIO=m CONFIG_ATH10K_USB=m CONFIG_ATH10K_DEBUG=y CONFIG_ATH10K_DEBUGFS=y +CONFIG_ATH10K_SPECTRAL=y CONFIG_ATH10K_TRACING=y CONFIG_WCN36XX=m CONFIG_WCN36XX_DEBUGFS=y @@ -3271,6 +3295,8 @@ CONFIG_MWIFIEX_USB=m CONFIG_MWL8K=m CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_MT7601U=m +CONFIG_MT76_CORE=m +CONFIG_MT76x2E=m CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=m CONFIG_RT2400PCI=m @@ -3376,6 +3402,7 @@ CONFIG_VMXNET3=m CONFIG_FUJITSU_ES=m CONFIG_THUNDERBOLT_NET=m CONFIG_HYPERV_NET=m +CONFIG_NETDEVSIM=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y @@ -3516,7 +3543,6 @@ CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m CONFIG_NVM=y # CONFIG_NVM_DEBUG is not set -CONFIG_NVM_RRPC=m CONFIG_NVM_PBLK=m # @@ -3772,7 +3798,6 @@ CONFIG_INPUT_MMA8450=m CONFIG_INPUT_APANEL=m CONFIG_INPUT_GP2A=m CONFIG_INPUT_GPIO_BEEPER=m -CONFIG_INPUT_GPIO_TILT_POLLED=m CONFIG_INPUT_GPIO_DECODER=m CONFIG_INPUT_CPCAP_PWRBUTTON=m CONFIG_INPUT_WISTRON_BTNS=m @@ -3974,7 +3999,6 @@ CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_HW_RANDOM_TPM=m CONFIG_NVRAM=m CONFIG_DTLK=m CONFIG_R3964=m @@ -3999,6 +4023,7 @@ CONFIG_HPET_MMAP=y CONFIG_HPET_MMAP_DEFAULT=y CONFIG_HANGCHECK_TIMER=m CONFIG_TCG_TPM=m +CONFIG_HW_RANDOM_TPM=y CONFIG_TCG_TIS_CORE=m CONFIG_TCG_TIS=m CONFIG_TCG_TIS_SPI=m @@ -4090,6 +4115,7 @@ CONFIG_I2C_DESIGNWARE_BAYTRAIL=y CONFIG_I2C_EG20T=m CONFIG_I2C_EMEV2=m CONFIG_I2C_GPIO=m +# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set CONFIG_I2C_KEMPLD=m CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m @@ -4205,6 +4231,7 @@ CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AS3722=m +CONFIG_PINCTRL_AXP209=m CONFIG_PINCTRL_AMD=m CONFIG_PINCTRL_MCP23S08=m CONFIG_PINCTRL_SINGLE=m @@ -4213,15 +4240,15 @@ CONFIG_PINCTRL_MAX77620=m CONFIG_PINCTRL_PALMAS=m CONFIG_PINCTRL_RK805=m CONFIG_PINCTRL_BAYTRAIL=y -CONFIG_PINCTRL_CHERRYVIEW=m -CONFIG_PINCTRL_INTEL=m -CONFIG_PINCTRL_BROXTON=m -CONFIG_PINCTRL_CANNONLAKE=m -CONFIG_PINCTRL_CEDARFORK=m -CONFIG_PINCTRL_DENVERTON=m -CONFIG_PINCTRL_GEMINILAKE=m -CONFIG_PINCTRL_LEWISBURG=m -CONFIG_PINCTRL_SUNRISEPOINT=m +CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_INTEL=y +CONFIG_PINCTRL_BROXTON=y +CONFIG_PINCTRL_CANNONLAKE=y +CONFIG_PINCTRL_CEDARFORK=y +CONFIG_PINCTRL_DENVERTON=y +CONFIG_PINCTRL_GEMINILAKE=y +CONFIG_PINCTRL_LEWISBURG=y +CONFIG_PINCTRL_SUNRISEPOINT=y CONFIG_GPIOLIB=y CONFIG_OF_GPIO=y CONFIG_GPIO_ACPI=y @@ -4237,7 +4264,6 @@ CONFIG_GPIO_MAX730X=m CONFIG_GPIO_74XX_MMIO=m CONFIG_GPIO_ALTERA=m CONFIG_GPIO_AMDPT=m -CONFIG_GPIO_AXP209=m CONFIG_GPIO_DWAPB=m CONFIG_GPIO_EXAR=m CONFIG_GPIO_FTGPIO010=y @@ -4259,6 +4285,7 @@ CONFIG_GPIO_F7188X=m CONFIG_GPIO_IT87=m CONFIG_GPIO_SCH=m CONFIG_GPIO_SCH311X=m +# CONFIG_GPIO_WINBOND is not set # CONFIG_GPIO_WS16C48 is not set # @@ -4314,6 +4341,7 @@ CONFIG_GPIO_AMD8111=m CONFIG_GPIO_ML_IOH=m # CONFIG_GPIO_PCH is not set CONFIG_GPIO_PCI_IDIO_16=m +CONFIG_GPIO_PCIE_IDIO_24=m CONFIG_GPIO_RDC321X=m CONFIG_GPIO_SODAVILLE=y @@ -4604,6 +4632,7 @@ CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83773G=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m @@ -4681,6 +4710,7 @@ CONFIG_WM831X_WATCHDOG=m CONFIG_WM8350_WATCHDOG=m CONFIG_XILINX_WATCHDOG=m CONFIG_ZIIRAVE_WATCHDOG=m +CONFIG_RAVE_SP_WATCHDOG=m CONFIG_CADENCE_WATCHDOG=m CONFIG_DW_WATCHDOG=m CONFIG_RN5T618_WATCHDOG=m @@ -4757,10 +4787,6 @@ CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC=y CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=m CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=y CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# CONFIG_SSB=m CONFIG_SSB_SPROM=y CONFIG_SSB_BLOCKIO=y @@ -4806,6 +4832,7 @@ CONFIG_MFD_AXP20X_I2C=m CONFIG_MFD_CROS_EC=m CONFIG_MFD_CROS_EC_I2C=m CONFIG_MFD_CROS_EC_SPI=m +CONFIG_MFD_CROS_EC_CHARDEV=m CONFIG_PMIC_DA903X=y CONFIG_PMIC_DA9052=y CONFIG_MFD_DA9052_SPI=y @@ -4856,9 +4883,7 @@ CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m CONFIG_UCB1400_CORE=m CONFIG_MFD_RDC321X=m -CONFIG_MFD_RTSX_PCI=m CONFIG_MFD_RT5033=m -CONFIG_MFD_RTSX_USB=m CONFIG_MFD_RC5T583=y CONFIG_MFD_RK808=m CONFIG_MFD_RN5T618=m @@ -4924,6 +4949,7 @@ CONFIG_MFD_WM831X_SPI=y CONFIG_MFD_WM8350=y CONFIG_MFD_WM8350_I2C=y CONFIG_MFD_WM8994=m +CONFIG_RAVE_SP_CORE=m CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=m @@ -5031,9 +5057,8 @@ CONFIG_CEC_NOTIFIER=y CONFIG_CEC_PIN=y CONFIG_RC_CORE=m CONFIG_RC_MAP=m +CONFIG_LIRC=y CONFIG_RC_DECODERS=y -CONFIG_LIRC=m -CONFIG_IR_LIRC_CODEC=m CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m CONFIG_IR_RC6_DECODER=m @@ -5094,18 +5119,14 @@ CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_VIDEOBUF_DVB=m -CONFIG_VIDEOBUF2_CORE=m -CONFIG_VIDEOBUF2_MEMOPS=m -CONFIG_VIDEOBUF2_DMA_CONTIG=m -CONFIG_VIDEOBUF2_VMALLOC=m -CONFIG_VIDEOBUF2_DMA_SG=m -CONFIG_VIDEOBUF2_DVB=m CONFIG_DVB_CORE=m +CONFIG_DVB_MMAP=y CONFIG_DVB_NET=y CONFIG_TTPCI_EEPROM=m CONFIG_DVB_MAX_ADAPTERS=16 # CONFIG_DVB_DYNAMIC_MINORS is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set # # Media drivers @@ -5361,6 +5382,7 @@ CONFIG_DVB_DDBRIDGE=m # CONFIG_DVB_DDBRIDGE_MSIENABLE is not set CONFIG_DVB_SMIPCIE=m CONFIG_DVB_NETUP_UNIDVB=m +CONFIG_VIDEO_IPU3_CIO2=m CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_MUX=m @@ -5429,6 +5451,13 @@ CONFIG_MEDIA_COMMON_OPTIONS=y CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_TVEEPROM=m CONFIG_CYPRESS_FIRMWARE=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_V4L2=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF2_DMA_SG=m +CONFIG_VIDEOBUF2_DVB=m CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m @@ -5553,6 +5582,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m CONFIG_SOC_CAMERA_TW9910=m CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18250=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m CONFIG_MEDIA_TUNER_TDA18271=m @@ -5773,6 +5803,7 @@ CONFIG_DRM_TTM=m CONFIG_DRM_GEM_CMA_HELPER=y CONFIG_DRM_KMS_CMA_HELPER=y CONFIG_DRM_VM=y +CONFIG_DRM_SCHED=m # # I2C encoder or helper chips @@ -5798,7 +5829,7 @@ CONFIG_DRM_AMD_ACP=y # CONFIG_DRM_AMD_DC=y CONFIG_DRM_AMD_DC_PRE_VEGA=y -CONFIG_DRM_AMD_DC_FBC=y +# CONFIG_DRM_AMD_DC_FBC is not set CONFIG_DRM_AMD_DC_DCN1_0=y # CONFIG_DEBUG_KERNEL_DC is not set @@ -5850,6 +5881,7 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_LVDS=m CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_INNOLUX_P079ZCA=m CONFIG_DRM_PANEL_JDI_LT070ME05000=m CONFIG_DRM_PANEL_SAMSUNG_LD9040=m @@ -5895,10 +5927,13 @@ CONFIG_DRM_MXS=y CONFIG_DRM_MXSFB=m CONFIG_DRM_TINYDRM=m CONFIG_TINYDRM_MIPI_DBI=m +CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m +CONFIG_TINYDRM_ST7735R=m # CONFIG_DRM_LEGACY is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y # CONFIG_DRM_LIB_RANDOM is not set # @@ -5936,8 +5971,8 @@ CONFIG_FB_TILEBLITTING=y # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set -CONFIG_FB_VGA16=m -CONFIG_FB_UVESA=m +# CONFIG_FB_VGA16 is not set +# CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set @@ -5953,10 +5988,7 @@ CONFIG_FB_I810_I2C=y # CONFIG_FB_LE80578 is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set +# CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set @@ -6317,22 +6349,26 @@ CONFIG_SND_SOC_IMG_PARALLEL_OUT=m CONFIG_SND_SOC_IMG_SPDIF_IN=m CONFIG_SND_SOC_IMG_SPDIF_OUT=m CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC=m +CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y CONFIG_SND_SST_IPC=m +CONFIG_SND_SST_IPC_PCI=m CONFIG_SND_SST_IPC_ACPI=m -CONFIG_SND_SOC_INTEL_COMMON=m +CONFIG_SND_SOC_INTEL_SST_ACPI=m CONFIG_SND_SOC_INTEL_SST=m CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m -CONFIG_SND_SOC_INTEL_SST_ACPI=m -CONFIG_SND_SOC_ACPI_INTEL_MATCH=m -CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=m CONFIG_SND_SOC_INTEL_HASWELL=m CONFIG_SND_SOC_INTEL_BAYTRAIL=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m +CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m CONFIG_SND_SOC_INTEL_SKYLAKE=m -CONFIG_SND_SOC_INTEL_MACH=m +CONFIG_SND_SOC_ACPI_INTEL_MATCH=m +CONFIG_SND_SOC_INTEL_MACH=y CONFIG_SND_SOC_INTEL_HASWELL_MACH=m CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m +CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m +CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m @@ -6365,9 +6401,9 @@ CONFIG_SND_SOC_ADAU1701=m CONFIG_SND_SOC_ADAU17X1=m CONFIG_SND_SOC_ADAU1761=m CONFIG_SND_SOC_ADAU1761_I2C=m -# CONFIG_SND_SOC_ADAU1761_SPI is not set +CONFIG_SND_SOC_ADAU1761_SPI=m CONFIG_SND_SOC_ADAU7002=m -# CONFIG_SND_SOC_AK4104 is not set +CONFIG_SND_SOC_AK4104=m CONFIG_SND_SOC_AK4554=m CONFIG_SND_SOC_AK4613=m CONFIG_SND_SOC_AK4642=m @@ -6388,7 +6424,7 @@ CONFIG_SND_SOC_CS4265=m CONFIG_SND_SOC_CS4270=m CONFIG_SND_SOC_CS4271=m CONFIG_SND_SOC_CS4271_I2C=m -# CONFIG_SND_SOC_CS4271_SPI is not set +CONFIG_SND_SOC_CS4271_SPI=m CONFIG_SND_SOC_CS42XX8=m CONFIG_SND_SOC_CS42XX8_I2C=m CONFIG_SND_SOC_CS43130=m @@ -6403,7 +6439,7 @@ CONFIG_SND_SOC_ES7134=m CONFIG_SND_SOC_ES8316=m CONFIG_SND_SOC_ES8328=m CONFIG_SND_SOC_ES8328_I2C=m -# CONFIG_SND_SOC_ES8328_SPI is not set +CONFIG_SND_SOC_ES8328_SPI=m CONFIG_SND_SOC_GTM601=m CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INNO_RK3036=m @@ -6411,19 +6447,23 @@ CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98357A=m CONFIG_SND_SOC_MAX98504=m CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MAX98373=m CONFIG_SND_SOC_MAX9860=m CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m CONFIG_SND_SOC_PCM1681=m CONFIG_SND_SOC_PCM179X=m CONFIG_SND_SOC_PCM179X_I2C=m -# CONFIG_SND_SOC_PCM179X_SPI is not set +CONFIG_SND_SOC_PCM179X_SPI=m +CONFIG_SND_SOC_PCM186X=m +CONFIG_SND_SOC_PCM186X_I2C=m +CONFIG_SND_SOC_PCM186X_SPI=m CONFIG_SND_SOC_PCM3168A=m CONFIG_SND_SOC_PCM3168A_I2C=m -# CONFIG_SND_SOC_PCM3168A_SPI is not set +CONFIG_SND_SOC_PCM3168A_SPI=m CONFIG_SND_SOC_PCM512x=m CONFIG_SND_SOC_PCM512x_I2C=m -# CONFIG_SND_SOC_PCM512x_SPI is not set +CONFIG_SND_SOC_PCM512x_SPI=m CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RL6347A=m CONFIG_SND_SOC_RT286=m @@ -6448,7 +6488,7 @@ CONFIG_SND_SOC_SIGMADSP_REGMAP=m CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m CONFIG_SND_SOC_SPDIF=m CONFIG_SND_SOC_SSM2602=m -# CONFIG_SND_SOC_SSM2602_SPI is not set +CONFIG_SND_SOC_SSM2602_SPI=m CONFIG_SND_SOC_SSM2602_I2C=m CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_STA32X=m @@ -6458,13 +6498,18 @@ CONFIG_SND_SOC_TAS2552=m CONFIG_SND_SOC_TAS5086=m CONFIG_SND_SOC_TAS571X=m CONFIG_SND_SOC_TAS5720=m +CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TFA9879=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_I2C=m -# CONFIG_SND_SOC_TLV320AIC23_SPI is not set +CONFIG_SND_SOC_TLV320AIC23_SPI=m CONFIG_SND_SOC_TLV320AIC31XX=m +CONFIG_SND_SOC_TLV320AIC32X4=m +CONFIG_SND_SOC_TLV320AIC32X4_I2C=m +CONFIG_SND_SOC_TLV320AIC32X4_SPI=m CONFIG_SND_SOC_TLV320AIC3X=m CONFIG_SND_SOC_TS3A227E=m +CONFIG_SND_SOC_TSCS42XX=m CONFIG_SND_SOC_WM8510=m CONFIG_SND_SOC_WM8523=m CONFIG_SND_SOC_WM8524=m @@ -6476,11 +6521,11 @@ CONFIG_SND_SOC_WM8737=m CONFIG_SND_SOC_WM8741=m CONFIG_SND_SOC_WM8750=m CONFIG_SND_SOC_WM8753=m -# CONFIG_SND_SOC_WM8770 is not set +CONFIG_SND_SOC_WM8770=m CONFIG_SND_SOC_WM8776=m CONFIG_SND_SOC_WM8804=m CONFIG_SND_SOC_WM8804_I2C=m -# CONFIG_SND_SOC_WM8804_SPI is not set +CONFIG_SND_SOC_WM8804_SPI=m CONFIG_SND_SOC_WM8903=m CONFIG_SND_SOC_WM8960=m CONFIG_SND_SOC_WM8962=m @@ -6550,6 +6595,7 @@ CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_ICADE=m CONFIG_HID_ITE=m +CONFIG_HID_JABRA=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m CONFIG_HID_LCPOWER=m @@ -6657,6 +6703,7 @@ CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_C67X00_HCD=m CONFIG_USB_XHCI_HCD=m +# CONFIG_USB_XHCI_DBGCAP is not set CONFIG_USB_XHCI_PCI=m CONFIG_USB_XHCI_PLATFORM=m CONFIG_USB_EHCI_HCD=m @@ -7038,6 +7085,7 @@ CONFIG_MMC_USHC=m CONFIG_MMC_USDHI6ROL0=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m +CONFIG_MMC_CQHCI=m CONFIG_MMC_TOSHIBA_PCI=m CONFIG_MMC_MTK=m CONFIG_MMC_SDHCI_XENON=m @@ -7078,6 +7126,7 @@ CONFIG_LEDS_CPCAP=m CONFIG_LEDS_LM3530=m CONFIG_LEDS_LM3533=m CONFIG_LEDS_LM3642=m +CONFIG_LEDS_LM3692X=m CONFIG_LEDS_MT6323=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_PCA9532_GPIO=y @@ -7146,6 +7195,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m CONFIG_LEDS_TRIGGER_TRANSIENT=m CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_LEDS_TRIGGER_NETDEV=m CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y CONFIG_INFINIBAND=m @@ -7335,6 +7385,7 @@ CONFIG_RTC_DRV_WM8350=m CONFIG_RTC_DRV_PCF50633=m CONFIG_RTC_DRV_AB3100=m CONFIG_RTC_DRV_ZYNQMP=m +CONFIG_RTC_DRV_CROS_EC=m # # on-CPU RTC drivers @@ -7421,11 +7472,9 @@ CONFIG_VFIO_MDEV=m CONFIG_VFIO_MDEV_DEVICE=m CONFIG_IRQ_BYPASS_MANAGER=m CONFIG_VIRT_DRIVERS=y +CONFIG_VBOXGUEST=m CONFIG_VIRTIO=m - -# -# Virtio drivers -# +CONFIG_VIRTIO_MENU=y CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_BALLOON=m @@ -7498,6 +7547,8 @@ CONFIG_ALI_FIR=m CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m +# CONFIG_IPX is not set +# CONFIG_NCP_FS is not set CONFIG_PRISM2_USB=m CONFIG_COMEDI=m # CONFIG_COMEDI_DEBUG is not set @@ -7652,8 +7703,6 @@ CONFIG_R8712U=m CONFIG_R8188EU=m CONFIG_88EU_AP_MODE=y CONFIG_R8822BE=m -CONFIG_RTLHALMAC_ST=m -CONFIG_RTLPHYDM_ST=m CONFIG_RTLWIFI_DEBUG_ST=y CONFIG_RTS5208=m CONFIG_VT6655=m @@ -7666,68 +7715,74 @@ CONFIG_VT6656=m # # Accelerometers # -# CONFIG_ADIS16201 is not set -# CONFIG_ADIS16203 is not set -# CONFIG_ADIS16209 is not set -# CONFIG_ADIS16240 is not set +CONFIG_ADIS16201=m +CONFIG_ADIS16203=m +CONFIG_ADIS16209=m +CONFIG_ADIS16240=m # # Analog to digital converters # -# CONFIG_AD7606 is not set -# CONFIG_AD7780 is not set -# CONFIG_AD7816 is not set -# CONFIG_AD7192 is not set -# CONFIG_AD7280 is not set +CONFIG_AD7606=m +CONFIG_AD7606_IFACE_PARALLEL=m +CONFIG_AD7606_IFACE_SPI=m +CONFIG_AD7780=m +CONFIG_AD7816=m +CONFIG_AD7192=m +CONFIG_AD7280=m # # Analog digital bi-direction converters # -# CONFIG_ADT7316 is not set +CONFIG_ADT7316=m +CONFIG_ADT7316_SPI=m +CONFIG_ADT7316_I2C=m # # Capacitance to digital converters # -# CONFIG_AD7150 is not set -# CONFIG_AD7152 is not set -# CONFIG_AD7746 is not set +CONFIG_AD7150=m +CONFIG_AD7152=m +CONFIG_AD7746=m # # Direct Digital Synthesis # -# CONFIG_AD9832 is not set -# CONFIG_AD9834 is not set +CONFIG_AD9832=m +CONFIG_AD9834=m # # Digital gyroscope sensors # -# CONFIG_ADIS16060 is not set +CONFIG_ADIS16060=m # # Network Analyzer, Impedance Converters # -# CONFIG_AD5933 is not set +CONFIG_AD5933=m # # Light sensors # -# CONFIG_TSL2x7x is not set +CONFIG_TSL2x7x=m # # Active energy metering IC # -# CONFIG_ADE7753 is not set -# CONFIG_ADE7754 is not set -# CONFIG_ADE7758 is not set -# CONFIG_ADE7759 is not set -# CONFIG_ADE7854 is not set +CONFIG_ADE7753=m +CONFIG_ADE7754=m +CONFIG_ADE7758=m +CONFIG_ADE7759=m +CONFIG_ADE7854=m +CONFIG_ADE7854_I2C=m +CONFIG_ADE7854_SPI=m # # Resolver to digital converters # -# CONFIG_AD2S90 is not set -# CONFIG_AD2S1200 is not set -# CONFIG_AD2S1210 is not set +CONFIG_AD2S90=m +CONFIG_AD2S1200=m +CONFIG_AD2S1210=m # # Triggers - standalone @@ -7758,8 +7813,6 @@ CONFIG_STAGING_MEDIA=y # CONFIG_INTEL_ATOMISP is not set CONFIG_I2C_BCM2048=m CONFIG_DVB_CXD2099=m -CONFIG_LIRC_STAGING=y -CONFIG_LIRC_ZILOG=m # # Android @@ -7779,6 +7832,7 @@ CONFIG_LUSTRE_FS=m # CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set CONFIG_DGNC=m CONFIG_GS_FPGABOOT=m +CONFIG_UNISYSSPAR=y CONFIG_COMMON_CLK_XLNX_CLKWZRD=m # CONFIG_FB_TFT is not set CONFIG_WILC1000=m @@ -7786,14 +7840,13 @@ CONFIG_WILC1000_SDIO=m CONFIG_WILC1000_SPI=m # CONFIG_WILC1000_HW_OOB_INTR is not set CONFIG_MOST=m -CONFIG_MOSTCORE=m -CONFIG_AIM_CDEV=m -CONFIG_AIM_NETWORK=m -CONFIG_AIM_SOUND=m -CONFIG_AIM_V4L2=m -CONFIG_HDM_DIM2=m -CONFIG_HDM_I2C=m -CONFIG_HDM_USB=m +CONFIG_MOST_CDEV=m +CONFIG_MOST_NET=m +CONFIG_MOST_SOUND=m +CONFIG_MOST_VIDEO=m +CONFIG_MOST_DIM2=m +CONFIG_MOST_I2C=m +CONFIG_MOST_USB=m CONFIG_KS7010=m # CONFIG_GREYBUS is not set CONFIG_CRYPTO_DEV_CCREE=m @@ -7806,12 +7859,13 @@ CONFIG_DRM_VBOXVIDEO=m CONFIG_PI433=m CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m +CONFIG_ACER_WIRELESS=m CONFIG_ACERHDF=m CONFIG_ALIENWARE_WMI=m CONFIG_ASUS_LAPTOP=m CONFIG_DELL_SMBIOS=m -CONFIG_DELL_SMBIOS_WMI=m -CONFIG_DELL_SMBIOS_SMM=m +CONFIG_DELL_SMBIOS_WMI=y +CONFIG_DELL_SMBIOS_SMM=y CONFIG_DELL_LAPTOP=m CONFIG_DELL_WMI=m CONFIG_DELL_WMI_DESCRIPTOR=m @@ -7822,6 +7876,7 @@ CONFIG_DELL_RBTN=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_AMILO_RFKILL=m +CONFIG_GPD_POCKET_FAN=m CONFIG_TC1100_WMI=m CONFIG_HP_ACCEL=m CONFIG_HP_WIRELESS=m @@ -7880,17 +7935,20 @@ 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=m +CONFIG_MLX_PLATFORM=m CONFIG_SILEAD_DMI=y +CONFIG_INTEL_CHTDC_TI_PWRBTN=m CONFIG_PMC_ATOM=y CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m -CONFIG_CROS_EC_CHARDEV=m +CONFIG_CROS_EC_CTL=m CONFIG_CROS_EC_LPC=m CONFIG_CROS_EC_LPC_MEC=y CONFIG_CROS_EC_PROTO=y CONFIG_CROS_KBD_LED_BACKLIGHT=m +CONFIG_MELLANOX_PLATFORM=y +CONFIG_MLXREG_HOTPLUG=m CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y @@ -7962,6 +8020,14 @@ CONFIG_RPMSG_CHAR=m CONFIG_RPMSG_QCOM_GLINK_NATIVE=m CONFIG_RPMSG_QCOM_GLINK_RPM=m CONFIG_RPMSG_VIRTIO=m +CONFIG_SOUNDWIRE=y + +# +# SoundWire Devices +# +CONFIG_SOUNDWIRE_BUS=m +CONFIG_SOUNDWIRE_CADENCE=m +CONFIG_SOUNDWIRE_INTEL=m # # SOC (System On Chip) specific Drivers @@ -7984,6 +8050,11 @@ CONFIG_RPMSG_VIRTIO=m # # CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y + +# +# Xilinx SoC drivers +# +CONFIG_XILINX_VCU=m CONFIG_PM_DEVFREQ=y # @@ -8024,6 +8095,7 @@ CONFIG_MEMORY=y CONFIG_IIO=m CONFIG_IIO_BUFFER=y CONFIG_IIO_BUFFER_CB=m +CONFIG_IIO_BUFFER_HW_CONSUMER=m CONFIG_IIO_KFIFO_BUF=m CONFIG_IIO_TRIGGERED_BUFFER=m CONFIG_IIO_CONFIGFS=m @@ -8111,6 +8183,7 @@ CONFIG_PALMAS_GPADC=m CONFIG_QCOM_VADC_COMMON=m CONFIG_QCOM_SPMI_IADC=m CONFIG_QCOM_SPMI_VADC=m +CONFIG_SD_ADC_MODULATOR=m CONFIG_TI_ADC081C=m CONFIG_TI_ADC0832=m CONFIG_TI_ADC084S021=m @@ -8309,6 +8382,9 @@ CONFIG_OPT3001=m CONFIG_PA12203001=m CONFIG_SI1145=m CONFIG_STK3310=m +CONFIG_ST_UVIS25=m +CONFIG_ST_UVIS25_I2C=m +CONFIG_ST_UVIS25_SPI=m CONFIG_TCS3414=m CONFIG_TCS3472=m CONFIG_SENSORS_TSL2563=m @@ -8318,6 +8394,7 @@ CONFIG_US5182D=m CONFIG_VCNL4000=m CONFIG_VEML6070=m CONFIG_VL6180=m +CONFIG_ZOPT2201=m # # Magnetometer sensors @@ -8539,19 +8616,16 @@ CONFIG_INTEL_TH_MSU=m CONFIG_INTEL_TH_PTI=m # CONFIG_INTEL_TH_DEBUG is not set CONFIG_FPGA=m -CONFIG_FPGA_REGION=m -CONFIG_FPGA_MGR_ICE40_SPI=m -CONFIG_FPGA_MGR_ALTERA_CVP=m +CONFIG_ALTERA_PR_IP_CORE=m +CONFIG_ALTERA_PR_IP_CORE_PLAT=m CONFIG_FPGA_MGR_ALTERA_PS_SPI=m +CONFIG_FPGA_MGR_ALTERA_CVP=m CONFIG_FPGA_MGR_XILINX_SPI=m +CONFIG_FPGA_MGR_ICE40_SPI=m CONFIG_FPGA_BRIDGE=m -CONFIG_ALTERA_PR_IP_CORE=m -CONFIG_ALTERA_PR_IP_CORE_PLAT=m CONFIG_XILINX_PR_DECOUPLER=m - -# -# FSI support -# +CONFIG_FPGA_REGION=m +CONFIG_OF_FPGA_REGION=m CONFIG_FSI=m CONFIG_FSI_MASTER_GPIO=m CONFIG_FSI_MASTER_HUB=m @@ -8565,6 +8639,10 @@ CONFIG_MUX_ADG792A=m CONFIG_MUX_GPIO=m CONFIG_MUX_MMIO=m CONFIG_PM_OPP=y +CONFIG_SIOX=m +CONFIG_SIOX_BUS_GPIO=m +CONFIG_SLIMBUS=m +CONFIG_SLIM_QCOM_CTRL=m # # Firmware Drivers @@ -8690,6 +8768,7 @@ CONFIG_OVERLAY_FS=m CONFIG_OVERLAY_FS_REDIRECT_DIR=y # CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set CONFIG_OVERLAY_FS_INDEX=y +# CONFIG_OVERLAY_FS_NFS_EXPORT is not set # # Caches @@ -8876,8 +8955,8 @@ CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG_DUMP_KEYS is not set CONFIG_CIFS_DFS_UPCALL=y CONFIG_CIFS_SMB311=y +# CONFIG_CIFS_SMB_DIRECT is not set CONFIG_CIFS_FSCACHE=y -# CONFIG_NCP_FS is not set CONFIG_CODA_FS=m CONFIG_AFS_FS=m # CONFIG_AFS_DEBUG is not set @@ -9065,6 +9144,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set +CONFIG_FUNCTION_ERROR_INJECTION=y CONFIG_LATENCYTOP=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y @@ -9107,6 +9187,7 @@ CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y CONFIG_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_FUNCTION_PROFILER=y +# CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_FTRACE_STARTUP_TEST is not set CONFIG_MMIOTRACE=y @@ -9120,10 +9201,7 @@ CONFIG_HIST_TRIGGERS=y CONFIG_TRACING_EVENTS_GPIO=y # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set - -# -# Runtime Testing -# +CONFIG_RUNTIME_TESTING_MENU=y CONFIG_LKDTM=m # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_SORT is not set @@ -9146,7 +9224,7 @@ CONFIG_LKDTM=m # CONFIG_TEST_LKM is not set # CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_BPF is not set -# CONFIG_TEST_FIND_BIT is not set +# CONFIG_FIND_BIT_BENCHMARK is not set # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_SYSCTL is not set # CONFIG_TEST_UDELAY is not set @@ -9174,7 +9252,6 @@ CONFIG_EARLY_PRINTK_EFI=y # CONFIG_DEBUG_WX is not set CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set -# CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y # CONFIG_X86_DECODER_SELFTEST is not set CONFIG_IO_DELAY_TYPE_0X80=0 @@ -9216,6 +9293,7 @@ CONFIG_SECURITY_PATH=y # CONFIG_INTEL_TXT is not set CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HARDENED_USERCOPY=y +CONFIG_HARDENED_USERCOPY_FALLBACK=y # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set CONFIG_FORTIFY_SOURCE=y # CONFIG_STATIC_USERMODEHELPER is not set @@ -9403,6 +9481,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_CHELSIO_IPSEC_INLINE=y CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y @@ -9519,7 +9598,8 @@ CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y -# CONFIG_DMA_NOOP_OPS is not set +CONFIG_SGL_ALLOC=y +# CONFIG_DMA_DIRECT_OPS is not set CONFIG_DMA_VIRT_OPS=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y diff --git a/libre/linux-libre/config.x86_64 b/libre/linux-libre/config.x86_64 index 92d14d8bd..751681ab4 100644 --- a/libre/linux-libre/config.x86_64 +++ b/libre/linux-libre/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.15.9-gnu-1 Kernel Configuration +# Linux/x86 4.16.3-gnu-1 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -42,7 +42,6 @@ CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -94,7 +93,6 @@ CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y -# CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set @@ -244,6 +242,7 @@ CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT_ALWAYS_ON=y # CONFIG_USERFAULTFD is not set +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # CONFIG_PC104 is not set @@ -289,12 +288,14 @@ CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y @@ -319,10 +320,10 @@ CONFIG_SECCOMP_FILTER=y CONFIG_HAVE_GCC_PLUGINS=y # CONFIG_GCC_PLUGINS is not set CONFIG_HAVE_CC_STACKPROTECTOR=y -CONFIG_CC_STACKPROTECTOR=y # CONFIG_CC_STACKPROTECTOR_NONE is not set # CONFIG_CC_STACKPROTECTOR_REGULAR is not set -CONFIG_CC_STACKPROTECTOR_STRONG=y +# CONFIG_CC_STACKPROTECTOR_STRONG is not set +CONFIG_CC_STACKPROTECTOR_AUTO=y CONFIG_THIN_ARCHIVES=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y CONFIG_HAVE_CONTEXT_TRACKING=y @@ -357,6 +358,7 @@ CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAS_PHYS_TO_DMA=y CONFIG_ARCH_HAS_REFCOUNT=y # CONFIG_REFCOUNT_FULL is not set @@ -450,6 +452,7 @@ CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y CONFIG_QUEUED_SPINLOCKS=y CONFIG_ARCH_USE_QUEUED_RWLOCKS=y CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y CONFIG_FREEZER=y # @@ -490,6 +493,7 @@ CONFIG_KVM_GUEST=y # CONFIG_KVM_DEBUG_FS is not set CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y +CONFIG_JAILHOUSE_GUEST=y CONFIG_NO_BOOTMEM=y # CONFIG_MK8 is not set # CONFIG_MPSC is not set @@ -516,6 +520,9 @@ CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y # CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 CONFIG_NR_CPUS=320 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -625,7 +632,6 @@ CONFIG_ZSMALLOC=y # CONFIG_PGTABLE_MAPPING is not set # CONFIG_ZSMALLOC_STAT is not set CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_ZONE_DEVICE=y @@ -663,9 +669,9 @@ CONFIG_EFI_MIXED=y CONFIG_SECCOMP=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set -# CONFIG_HZ_300 is not set -CONFIG_HZ_1000=y -CONFIG_HZ=1000 +CONFIG_HZ_300=y +# CONFIG_HZ_1000 is not set +CONFIG_HZ=300 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_KEXEC_FILE=y @@ -683,7 +689,6 @@ CONFIG_HOTPLUG_CPU=y # CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set -# CONFIG_LEGACY_VSYSCALL_NATIVE is not set # CONFIG_LEGACY_VSYSCALL_EMULATE is not set CONFIG_LEGACY_VSYSCALL_NONE=y # CONFIG_CMDLINE_BOOL is not set @@ -729,6 +734,7 @@ CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_SPCR_TABLE=y CONFIG_ACPI_LPIT=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS_POWER is not set @@ -755,7 +761,6 @@ CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_TABLE_UPGRADE=y CONFIG_ACPI_DEBUG=y CONFIG_ACPI_PCI_SLOT=y -CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_HOTPLUG_MEMORY=y CONFIG_ACPI_HOTPLUG_IOAPIC=y @@ -784,6 +789,7 @@ CONFIG_CHT_WC_PMIC_OPREGION=y CONFIG_CHT_DC_TI_PMIC_OPREGION=y CONFIG_ACPI_CONFIGFS=m CONFIG_TPS68470_PMIC_OPREGION=y +CONFIG_X86_PM_TIMER=y CONFIG_SFI=y # @@ -880,6 +886,13 @@ CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m CONFIG_HOTPLUG_PCI_SHPC=m +# +# Cadence PCIe controllers support +# +CONFIG_PCIE_CADENCE=y +CONFIG_PCIE_CADENCE_HOST=y +CONFIG_PCIE_CADENCE_EP=y + # # DesignWare PCI Core Support # @@ -939,7 +952,7 @@ CONFIG_RAPIDIO_CPS_XX=m CONFIG_RAPIDIO_TSI568=m CONFIG_RAPIDIO_CPS_GEN2=m CONFIG_RAPIDIO_RXS_GEN3=m -CONFIG_X86_SYSFB=y +# CONFIG_X86_SYSFB is not set # # Executable file formats / Emulations @@ -1024,7 +1037,7 @@ CONFIG_INET_RAW_DIAG=m CONFIG_INET_DIAG_DESTROY=y CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m -CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m @@ -1038,10 +1051,10 @@ CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m CONFIG_TCP_CONG_DCTCP=m CONFIG_TCP_CONG_CDG=m -CONFIG_TCP_CONG_BBR=y -CONFIG_DEFAULT_BBR=y +CONFIG_TCP_CONG_BBR=m +CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set -CONFIG_DEFAULT_TCP_CONG="bbr" +CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y CONFIG_IPV6_ROUTER_PREF=y @@ -1087,12 +1100,15 @@ CONFIG_BRIDGE_NETFILTER=m # CONFIG_NETFILTER_INGRESS=y CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_FAMILY_BRIDGE=y +CONFIG_NETFILTER_FAMILY_ARP=y CONFIG_NETFILTER_NETLINK_ACCT=m 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_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_ZONES=y @@ -1140,6 +1156,7 @@ CONFIG_NFT_META=m CONFIG_NFT_RT=m CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m +CONFIG_NFT_FLOW_OFFLOAD=m CONFIG_NFT_SET_RBTREE=m CONFIG_NFT_SET_HASH=m CONFIG_NFT_SET_BITMAP=m @@ -1162,6 +1179,8 @@ CONFIG_NF_DUP_NETDEV=m CONFIG_NFT_DUP_NETDEV=m CONFIG_NFT_FWD_NETDEV=m CONFIG_NFT_FIB_NETDEV=m +CONFIG_NF_FLOW_TABLE_INET=m +CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m # @@ -1322,6 +1341,7 @@ CONFIG_NFT_REJECT_IPV4=m CONFIG_NFT_DUP_IPV4=m CONFIG_NFT_FIB_IPV4=m CONFIG_NF_TABLES_ARP=m +CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m @@ -1368,6 +1388,7 @@ CONFIG_NFT_CHAIN_ROUTE_IPV6=m CONFIG_NFT_REJECT_IPV6=m CONFIG_NFT_DUP_IPV6=m CONFIG_NFT_FIB_IPV6=m +CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m @@ -1386,6 +1407,7 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_SRH=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m @@ -1436,9 +1458,7 @@ CONFIG_IP_DCCP_TFRC_LIB=y # DCCP Kernel Hacking # # CONFIG_IP_DCCP_DEBUG is not set -CONFIG_NET_DCCPPROBE=m CONFIG_IP_SCTP=m -CONFIG_NET_SCTPPROBE=m # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y @@ -1472,6 +1492,7 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_BRIDGE_VLAN_FILTERING=y CONFIG_HAVE_NET_DSA=y CONFIG_NET_DSA=m +# CONFIG_NET_DSA_LEGACY is not set CONFIG_NET_DSA_TAG_BRCM=y CONFIG_NET_DSA_TAG_BRCM_PREPEND=y CONFIG_NET_DSA_TAG_DSA=y @@ -1479,7 +1500,6 @@ CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_DSA_TAG_KSZ=y CONFIG_NET_DSA_TAG_LAN9303=y CONFIG_NET_DSA_TAG_MTK=y -CONFIG_NET_DSA_TAG_TRAILER=y CONFIG_NET_DSA_TAG_QCA=y CONFIG_VLAN_8021Q=m # CONFIG_VLAN_8021Q_GVRP is not set @@ -1487,7 +1507,6 @@ CONFIG_VLAN_8021Q_MVRP=y # CONFIG_DECNET is not set CONFIG_LLC=m CONFIG_LLC2=m -# CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set @@ -1538,19 +1557,19 @@ CONFIG_NET_SCH_MQPRIO=m CONFIG_NET_SCH_CHOKE=m CONFIG_NET_SCH_QFQ=m CONFIG_NET_SCH_CODEL=m -CONFIG_NET_SCH_FQ_CODEL=m -CONFIG_NET_SCH_FQ=y +CONFIG_NET_SCH_FQ_CODEL=y +CONFIG_NET_SCH_FQ=m CONFIG_NET_SCH_HHF=m CONFIG_NET_SCH_PIE=m CONFIG_NET_SCH_INGRESS=m CONFIG_NET_SCH_PLUG=m CONFIG_NET_SCH_DEFAULT=y -CONFIG_DEFAULT_FQ=y +# CONFIG_DEFAULT_FQ is not set # CONFIG_DEFAULT_CODEL is not set -# CONFIG_DEFAULT_FQ_CODEL is not set +CONFIG_DEFAULT_FQ_CODEL=y # CONFIG_DEFAULT_SFQ is not set # CONFIG_DEFAULT_PFIFO_FAST is not set -CONFIG_DEFAULT_NET_SCH="fq" +CONFIG_DEFAULT_NET_SCH="fq_codel" # # Classification @@ -1647,7 +1666,6 @@ CONFIG_NET_FLOW_LIMIT=y # Network testing # CONFIG_NET_PKTGEN=m -CONFIG_NET_TCPPROBE=m CONFIG_NET_DROP_MONITOR=m CONFIG_HAMRADIO=y @@ -1748,6 +1766,7 @@ CONFIG_BT_BCM=m CONFIG_BT_RTL=m CONFIG_BT_QCA=m CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIBTUSB_RTL=y CONFIG_BT_HCIBTSDIO=m @@ -1901,7 +1920,6 @@ CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y -# CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" CONFIG_FW_LOADER_USER_HELPER=y # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set @@ -1923,7 +1941,7 @@ CONFIG_REGMAP_SPMI=m CONFIG_REGMAP_W1=m CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y -CONFIG_REGMAP_HWSPINLOCK=y +CONFIG_REGMAP_SOUNDWIRE=m CONFIG_DMA_SHARED_BUFFER=y # CONFIG_DMA_FENCE_TRACE is not set @@ -2087,12 +2105,9 @@ CONFIG_OF=y CONFIG_OF_KOBJ=y CONFIG_OF_DYNAMIC=y CONFIG_OF_ADDRESS=y -CONFIG_OF_ADDRESS_PCI=y CONFIG_OF_IRQ=y CONFIG_OF_NET=y CONFIG_OF_MDIO=m -CONFIG_OF_PCI=y -CONFIG_OF_PCI_IRQ=y CONFIG_OF_RESOLVE=y CONFIG_OF_OVERLAY=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y @@ -2190,6 +2205,7 @@ CONFIG_USB_SWITCH_FSA9480=m CONFIG_LATTICE_ECP3_CONFIG=m # CONFIG_SRAM is not set CONFIG_PCI_ENDPOINT_TEST=m +CONFIG_MISC_RTSX=m CONFIG_C2PORT=m CONFIG_C2PORT_DURAMAR_2150=m @@ -2268,6 +2284,9 @@ CONFIG_ECHO=m # CONFIG_CXL_BASE is not set # CONFIG_CXL_AFU_DRIVER_OPS is not set # CONFIG_CXL_LIB is not set +# CONFIG_OCXL_BASE is not set +CONFIG_MISC_RTSX_PCI=m +CONFIG_MISC_RTSX_USB=m CONFIG_HAVE_IDE=y # CONFIG_IDE is not set @@ -2438,6 +2457,7 @@ CONFIG_SATA_PMP=y # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=m +CONFIG_SATA_MOBILE_LPM_POLICY=3 CONFIG_SATA_AHCI_PLATFORM=m CONFIG_AHCI_CEVA=m CONFIG_AHCI_QORIQ=m @@ -2547,6 +2567,7 @@ CONFIG_DM_BUFIO=m # CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set CONFIG_DM_BIO_PRISON=m CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_UNSTRIPED=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_THIN_PROVISIONING=m @@ -2689,7 +2710,6 @@ CONFIG_B53_SRAB_DRIVER=m CONFIG_NET_DSA_BCM_SF2=m CONFIG_NET_DSA_LOOP=m CONFIG_NET_DSA_MT7530=m -CONFIG_NET_DSA_MV88E6060=m CONFIG_MICROCHIP_KSZ=m CONFIG_MICROCHIP_KSZ_SPI_DRIVER=m CONFIG_NET_DSA_MV88E6XXX=m @@ -2763,6 +2783,7 @@ CONFIG_THUNDER_NIC_PF=m CONFIG_THUNDER_NIC_VF=m CONFIG_THUNDER_NIC_BGX=m CONFIG_THUNDER_NIC_RGX=m +CONFIG_CAVIUM_PTP=m CONFIG_LIQUIDIO=m CONFIG_LIQUIDIO_VF=m CONFIG_NET_VENDOR_CHELSIO=y @@ -2776,6 +2797,8 @@ CONFIG_CHELSIO_T4VF=m CONFIG_CHELSIO_LIB=m CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m +CONFIG_NET_VENDOR_CORTINA=y +CONFIG_GEMINI_ETHERNET=m CONFIG_CX_ECAT=m CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y @@ -2954,6 +2977,7 @@ CONFIG_EPIC100=m CONFIG_SMSC911X=m # CONFIG_SMSC911X_ARCH_HOOKS is not set CONFIG_SMSC9420=m +CONFIG_NET_VENDOR_SOCIONEXT=y CONFIG_NET_VENDOR_STMICRO=y CONFIG_STMMAC_ETH=m CONFIG_STMMAC_PLATFORM=m @@ -3139,6 +3163,7 @@ CONFIG_ATH9K_PCOEM=y CONFIG_ATH9K_HTC=m CONFIG_ATH9K_HTC_DEBUGFS=y CONFIG_ATH9K_HWRNG=y +CONFIG_ATH9K_COMMON_SPECTRAL=y CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_DEBUGFS=y @@ -3161,6 +3186,7 @@ CONFIG_ATH10K_SDIO=m CONFIG_ATH10K_USB=m CONFIG_ATH10K_DEBUG=y CONFIG_ATH10K_DEBUGFS=y +CONFIG_ATH10K_SPECTRAL=y CONFIG_ATH10K_TRACING=y CONFIG_WCN36XX=m CONFIG_WCN36XX_DEBUGFS=y @@ -3289,6 +3315,8 @@ CONFIG_MWIFIEX_USB=m CONFIG_MWL8K=m CONFIG_WLAN_VENDOR_MEDIATEK=y CONFIG_MT7601U=m +CONFIG_MT76_CORE=m +CONFIG_MT76x2E=m CONFIG_WLAN_VENDOR_RALINK=y CONFIG_RT2X00=m CONFIG_RT2400PCI=m @@ -3396,6 +3424,7 @@ CONFIG_VMXNET3=m CONFIG_FUJITSU_ES=m CONFIG_THUNDERBOLT_NET=m CONFIG_HYPERV_NET=m +CONFIG_NETDEVSIM=m CONFIG_ISDN=y CONFIG_ISDN_I4L=m CONFIG_ISDN_PPP=y @@ -3524,7 +3553,6 @@ CONFIG_MISDN_ISAR=m CONFIG_ISDN_HDLC=m CONFIG_NVM=y # CONFIG_NVM_DEBUG is not set -CONFIG_NVM_RRPC=m CONFIG_NVM_PBLK=m # @@ -3775,7 +3803,6 @@ CONFIG_INPUT_MMA8450=m CONFIG_INPUT_APANEL=m CONFIG_INPUT_GP2A=m CONFIG_INPUT_GPIO_BEEPER=m -CONFIG_INPUT_GPIO_TILT_POLLED=m CONFIG_INPUT_GPIO_DECODER=m CONFIG_INPUT_CPCAP_PWRBUTTON=m CONFIG_INPUT_ATLAS_BTNS=m @@ -3971,7 +3998,6 @@ CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=m -CONFIG_HW_RANDOM_TPM=m CONFIG_NVRAM=m CONFIG_R3964=m CONFIG_APPLICOM=m @@ -3992,6 +4018,7 @@ CONFIG_HPET_MMAP=y CONFIG_HPET_MMAP_DEFAULT=y CONFIG_HANGCHECK_TIMER=m CONFIG_TCG_TPM=m +CONFIG_HW_RANDOM_TPM=y CONFIG_TCG_TIS_CORE=m CONFIG_TCG_TIS=m CONFIG_TCG_TIS_SPI=m @@ -4083,6 +4110,7 @@ CONFIG_I2C_DESIGNWARE_PCI=m CONFIG_I2C_DESIGNWARE_BAYTRAIL=y CONFIG_I2C_EMEV2=m CONFIG_I2C_GPIO=m +# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set CONFIG_I2C_KEMPLD=m CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m @@ -4194,6 +4222,7 @@ CONFIG_PINCONF=y CONFIG_GENERIC_PINCONF=y # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AS3722=m +CONFIG_PINCTRL_AXP209=m CONFIG_PINCTRL_AMD=m CONFIG_PINCTRL_MCP23S08=m CONFIG_PINCTRL_SINGLE=m @@ -4202,15 +4231,15 @@ CONFIG_PINCTRL_MAX77620=m CONFIG_PINCTRL_PALMAS=m CONFIG_PINCTRL_RK805=m CONFIG_PINCTRL_BAYTRAIL=y -CONFIG_PINCTRL_CHERRYVIEW=m -CONFIG_PINCTRL_INTEL=m -CONFIG_PINCTRL_BROXTON=m -CONFIG_PINCTRL_CANNONLAKE=m -CONFIG_PINCTRL_CEDARFORK=m -CONFIG_PINCTRL_DENVERTON=m -CONFIG_PINCTRL_GEMINILAKE=m -CONFIG_PINCTRL_LEWISBURG=m -CONFIG_PINCTRL_SUNRISEPOINT=m +CONFIG_PINCTRL_CHERRYVIEW=y +CONFIG_PINCTRL_INTEL=y +CONFIG_PINCTRL_BROXTON=y +CONFIG_PINCTRL_CANNONLAKE=y +CONFIG_PINCTRL_CEDARFORK=y +CONFIG_PINCTRL_DENVERTON=y +CONFIG_PINCTRL_GEMINILAKE=y +CONFIG_PINCTRL_LEWISBURG=y +CONFIG_PINCTRL_SUNRISEPOINT=y CONFIG_GPIOLIB=y CONFIG_OF_GPIO=y CONFIG_GPIO_ACPI=y @@ -4226,7 +4255,6 @@ CONFIG_GPIO_MAX730X=m CONFIG_GPIO_74XX_MMIO=m CONFIG_GPIO_ALTERA=m CONFIG_GPIO_AMDPT=m -CONFIG_GPIO_AXP209=m CONFIG_GPIO_DWAPB=m CONFIG_GPIO_EXAR=m CONFIG_GPIO_FTGPIO010=y @@ -4300,6 +4328,7 @@ CONFIG_GPIO_WM8994=m CONFIG_GPIO_AMD8111=m CONFIG_GPIO_ML_IOH=m CONFIG_GPIO_PCI_IDIO_16=m +CONFIG_GPIO_PCIE_IDIO_24=m CONFIG_GPIO_RDC321X=m CONFIG_GPIO_SODAVILLE=y @@ -4589,6 +4618,7 @@ CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83773G=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m @@ -4666,6 +4696,7 @@ CONFIG_WM831X_WATCHDOG=m CONFIG_WM8350_WATCHDOG=m CONFIG_XILINX_WATCHDOG=m CONFIG_ZIIRAVE_WATCHDOG=m +CONFIG_RAVE_SP_WATCHDOG=m CONFIG_CADENCE_WATCHDOG=m CONFIG_DW_WATCHDOG=m CONFIG_RN5T618_WATCHDOG=m @@ -4732,10 +4763,6 @@ CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC=y CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP=m CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC=y CONFIG_SSB_POSSIBLE=y - -# -# Sonics Silicon Backplane -# CONFIG_SSB=m CONFIG_SSB_SPROM=y CONFIG_SSB_BLOCKIO=y @@ -4780,6 +4807,7 @@ CONFIG_MFD_AXP20X_I2C=m CONFIG_MFD_CROS_EC=m CONFIG_MFD_CROS_EC_I2C=m CONFIG_MFD_CROS_EC_SPI=m +CONFIG_MFD_CROS_EC_CHARDEV=m CONFIG_PMIC_DA903X=y CONFIG_PMIC_DA9052=y CONFIG_MFD_DA9052_SPI=y @@ -4830,9 +4858,7 @@ CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m CONFIG_UCB1400_CORE=m CONFIG_MFD_RDC321X=m -CONFIG_MFD_RTSX_PCI=m CONFIG_MFD_RT5033=m -CONFIG_MFD_RTSX_USB=m CONFIG_MFD_RC5T583=y CONFIG_MFD_RK808=m CONFIG_MFD_RN5T618=m @@ -4897,6 +4923,7 @@ CONFIG_MFD_WM831X_SPI=y CONFIG_MFD_WM8350=y CONFIG_MFD_WM8350_I2C=y CONFIG_MFD_WM8994=m +CONFIG_RAVE_SP_CORE=m CONFIG_REGULATOR=y # CONFIG_REGULATOR_DEBUG is not set CONFIG_REGULATOR_FIXED_VOLTAGE=m @@ -5004,9 +5031,8 @@ CONFIG_CEC_NOTIFIER=y CONFIG_CEC_PIN=y CONFIG_RC_CORE=m CONFIG_RC_MAP=m +CONFIG_LIRC=y CONFIG_RC_DECODERS=y -CONFIG_LIRC=m -CONFIG_IR_LIRC_CODEC=m CONFIG_IR_NEC_DECODER=m CONFIG_IR_RC5_DECODER=m CONFIG_IR_RC6_DECODER=m @@ -5067,18 +5093,14 @@ CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_VIDEOBUF_DVB=m -CONFIG_VIDEOBUF2_CORE=m -CONFIG_VIDEOBUF2_MEMOPS=m -CONFIG_VIDEOBUF2_DMA_CONTIG=m -CONFIG_VIDEOBUF2_VMALLOC=m -CONFIG_VIDEOBUF2_DMA_SG=m -CONFIG_VIDEOBUF2_DVB=m CONFIG_DVB_CORE=m +CONFIG_DVB_MMAP=y CONFIG_DVB_NET=y CONFIG_TTPCI_EEPROM=m CONFIG_DVB_MAX_ADAPTERS=16 # CONFIG_DVB_DYNAMIC_MINORS is not set # CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set # # Media drivers @@ -5334,6 +5356,7 @@ CONFIG_DVB_DDBRIDGE=m # CONFIG_DVB_DDBRIDGE_MSIENABLE is not set CONFIG_DVB_SMIPCIE=m CONFIG_DVB_NETUP_UNIDVB=m +CONFIG_VIDEO_IPU3_CIO2=m CONFIG_V4L_PLATFORM_DRIVERS=y CONFIG_VIDEO_CAFE_CCIC=m CONFIG_VIDEO_MUX=m @@ -5401,6 +5424,13 @@ CONFIG_MEDIA_COMMON_OPTIONS=y CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_TVEEPROM=m CONFIG_CYPRESS_FIRMWARE=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_V4L2=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF2_DMA_SG=m +CONFIG_VIDEOBUF2_DVB=m CONFIG_DVB_B2C2_FLEXCOP=m CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m @@ -5525,6 +5555,7 @@ CONFIG_SOC_CAMERA_RJ54N1=m CONFIG_SOC_CAMERA_TW9910=m CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18250=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m CONFIG_MEDIA_TUNER_TDA18271=m @@ -5739,6 +5770,7 @@ CONFIG_DRM_TTM=m CONFIG_DRM_GEM_CMA_HELPER=y CONFIG_DRM_KMS_CMA_HELPER=y CONFIG_DRM_VM=y +CONFIG_DRM_SCHED=m # # I2C encoder or helper chips @@ -5764,7 +5796,7 @@ CONFIG_DRM_AMD_ACP=y # CONFIG_DRM_AMD_DC=y CONFIG_DRM_AMD_DC_PRE_VEGA=y -CONFIG_DRM_AMD_DC_FBC=y +# CONFIG_DRM_AMD_DC_FBC is not set CONFIG_DRM_AMD_DC_DCN1_0=y # CONFIG_DEBUG_KERNEL_DC is not set @@ -5818,6 +5850,7 @@ CONFIG_DRM_PANEL=y # CONFIG_DRM_PANEL_LVDS=m CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_DRM_PANEL_ILITEK_IL9322=m CONFIG_DRM_PANEL_INNOLUX_P079ZCA=m CONFIG_DRM_PANEL_JDI_LT070ME05000=m CONFIG_DRM_PANEL_SAMSUNG_LD9040=m @@ -5864,10 +5897,13 @@ CONFIG_DRM_MXS=y CONFIG_DRM_MXSFB=m CONFIG_DRM_TINYDRM=m CONFIG_TINYDRM_MIPI_DBI=m +CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_MI0283QT=m CONFIG_TINYDRM_REPAPER=m CONFIG_TINYDRM_ST7586=m +CONFIG_TINYDRM_ST7735R=m # CONFIG_DRM_LEGACY is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y # CONFIG_DRM_LIB_RANDOM is not set # @@ -5877,7 +5913,7 @@ CONFIG_FB=y CONFIG_FIRMWARE_EDID=y CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y -CONFIG_FB_DDC=m +# CONFIG_FB_DDC is not set CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y @@ -5905,8 +5941,8 @@ CONFIG_FB_TILEBLITTING=y # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set -CONFIG_FB_VGA16=m -CONFIG_FB_UVESA=m +# CONFIG_FB_VGA16 is not set +# CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set @@ -5919,10 +5955,7 @@ CONFIG_FB_EFI=y # CONFIG_FB_LE80578 is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set -CONFIG_FB_RADEON=m -CONFIG_FB_RADEON_I2C=y -CONFIG_FB_RADEON_BACKLIGHT=y -# CONFIG_FB_RADEON_DEBUG is not set +# CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set @@ -5996,7 +6029,7 @@ CONFIG_BACKLIGHT_GPIO=m CONFIG_BACKLIGHT_LV5207LP=m CONFIG_BACKLIGHT_BD6107=m CONFIG_BACKLIGHT_ARCXCNN=m -CONFIG_VGASTATE=m +# CONFIG_VGASTATE is not set CONFIG_VIDEOMODE_HELPERS=y CONFIG_HDMI=y @@ -6239,22 +6272,26 @@ CONFIG_SND_SOC_IMG_PARALLEL_OUT=m CONFIG_SND_SOC_IMG_SPDIF_IN=m CONFIG_SND_SOC_IMG_SPDIF_OUT=m CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC=m +CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y CONFIG_SND_SST_IPC=m +CONFIG_SND_SST_IPC_PCI=m CONFIG_SND_SST_IPC_ACPI=m -CONFIG_SND_SOC_INTEL_COMMON=m +CONFIG_SND_SOC_INTEL_SST_ACPI=m CONFIG_SND_SOC_INTEL_SST=m CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m -CONFIG_SND_SOC_INTEL_SST_ACPI=m -CONFIG_SND_SOC_ACPI_INTEL_MATCH=m -CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=m CONFIG_SND_SOC_INTEL_HASWELL=m CONFIG_SND_SOC_INTEL_BAYTRAIL=m +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m +CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m CONFIG_SND_SOC_INTEL_SKYLAKE=m -CONFIG_SND_SOC_INTEL_MACH=m +CONFIG_SND_SOC_ACPI_INTEL_MATCH=m +CONFIG_SND_SOC_INTEL_MACH=y CONFIG_SND_SOC_INTEL_HASWELL_MACH=m CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m +CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m +CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m @@ -6287,9 +6324,9 @@ CONFIG_SND_SOC_ADAU1701=m CONFIG_SND_SOC_ADAU17X1=m CONFIG_SND_SOC_ADAU1761=m CONFIG_SND_SOC_ADAU1761_I2C=m -# CONFIG_SND_SOC_ADAU1761_SPI is not set +CONFIG_SND_SOC_ADAU1761_SPI=m CONFIG_SND_SOC_ADAU7002=m -# CONFIG_SND_SOC_AK4104 is not set +CONFIG_SND_SOC_AK4104=m CONFIG_SND_SOC_AK4554=m CONFIG_SND_SOC_AK4613=m CONFIG_SND_SOC_AK4642=m @@ -6310,7 +6347,7 @@ CONFIG_SND_SOC_CS4265=m CONFIG_SND_SOC_CS4270=m CONFIG_SND_SOC_CS4271=m CONFIG_SND_SOC_CS4271_I2C=m -# CONFIG_SND_SOC_CS4271_SPI is not set +CONFIG_SND_SOC_CS4271_SPI=m CONFIG_SND_SOC_CS42XX8=m CONFIG_SND_SOC_CS42XX8_I2C=m CONFIG_SND_SOC_CS43130=m @@ -6325,7 +6362,7 @@ CONFIG_SND_SOC_ES7134=m CONFIG_SND_SOC_ES8316=m CONFIG_SND_SOC_ES8328=m CONFIG_SND_SOC_ES8328_I2C=m -# CONFIG_SND_SOC_ES8328_SPI is not set +CONFIG_SND_SOC_ES8328_SPI=m CONFIG_SND_SOC_GTM601=m CONFIG_SND_SOC_HDAC_HDMI=m CONFIG_SND_SOC_INNO_RK3036=m @@ -6333,19 +6370,23 @@ CONFIG_SND_SOC_MAX98090=m CONFIG_SND_SOC_MAX98357A=m CONFIG_SND_SOC_MAX98504=m CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MAX98373=m CONFIG_SND_SOC_MAX9860=m CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m CONFIG_SND_SOC_PCM1681=m CONFIG_SND_SOC_PCM179X=m CONFIG_SND_SOC_PCM179X_I2C=m -# CONFIG_SND_SOC_PCM179X_SPI is not set +CONFIG_SND_SOC_PCM179X_SPI=m +CONFIG_SND_SOC_PCM186X=m +CONFIG_SND_SOC_PCM186X_I2C=m +CONFIG_SND_SOC_PCM186X_SPI=m CONFIG_SND_SOC_PCM3168A=m CONFIG_SND_SOC_PCM3168A_I2C=m -# CONFIG_SND_SOC_PCM3168A_SPI is not set +CONFIG_SND_SOC_PCM3168A_SPI=m CONFIG_SND_SOC_PCM512x=m CONFIG_SND_SOC_PCM512x_I2C=m -# CONFIG_SND_SOC_PCM512x_SPI is not set +CONFIG_SND_SOC_PCM512x_SPI=m CONFIG_SND_SOC_RL6231=m CONFIG_SND_SOC_RL6347A=m CONFIG_SND_SOC_RT286=m @@ -6370,7 +6411,7 @@ CONFIG_SND_SOC_SIGMADSP_REGMAP=m CONFIG_SND_SOC_SIRF_AUDIO_CODEC=m CONFIG_SND_SOC_SPDIF=m CONFIG_SND_SOC_SSM2602=m -# CONFIG_SND_SOC_SSM2602_SPI is not set +CONFIG_SND_SOC_SSM2602_SPI=m CONFIG_SND_SOC_SSM2602_I2C=m CONFIG_SND_SOC_SSM4567=m CONFIG_SND_SOC_STA32X=m @@ -6380,13 +6421,18 @@ CONFIG_SND_SOC_TAS2552=m CONFIG_SND_SOC_TAS5086=m CONFIG_SND_SOC_TAS571X=m CONFIG_SND_SOC_TAS5720=m +CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TFA9879=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_I2C=m -# CONFIG_SND_SOC_TLV320AIC23_SPI is not set +CONFIG_SND_SOC_TLV320AIC23_SPI=m CONFIG_SND_SOC_TLV320AIC31XX=m +CONFIG_SND_SOC_TLV320AIC32X4=m +CONFIG_SND_SOC_TLV320AIC32X4_I2C=m +CONFIG_SND_SOC_TLV320AIC32X4_SPI=m CONFIG_SND_SOC_TLV320AIC3X=m CONFIG_SND_SOC_TS3A227E=m +CONFIG_SND_SOC_TSCS42XX=m CONFIG_SND_SOC_WM8510=m CONFIG_SND_SOC_WM8523=m CONFIG_SND_SOC_WM8524=m @@ -6398,11 +6444,11 @@ CONFIG_SND_SOC_WM8737=m CONFIG_SND_SOC_WM8741=m CONFIG_SND_SOC_WM8750=m CONFIG_SND_SOC_WM8753=m -# CONFIG_SND_SOC_WM8770 is not set +CONFIG_SND_SOC_WM8770=m CONFIG_SND_SOC_WM8776=m CONFIG_SND_SOC_WM8804=m CONFIG_SND_SOC_WM8804_I2C=m -# CONFIG_SND_SOC_WM8804_SPI is not set +CONFIG_SND_SOC_WM8804_SPI=m CONFIG_SND_SOC_WM8903=m CONFIG_SND_SOC_WM8960=m CONFIG_SND_SOC_WM8962=m @@ -6472,6 +6518,7 @@ CONFIG_HID_WALTOP=m CONFIG_HID_GYRATION=m CONFIG_HID_ICADE=m CONFIG_HID_ITE=m +CONFIG_HID_JABRA=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m CONFIG_HID_LCPOWER=m @@ -6584,6 +6631,7 @@ CONFIG_USB_WUSB_CBAF=m # CONFIG_USB_C67X00_HCD=m CONFIG_USB_XHCI_HCD=m +# CONFIG_USB_XHCI_DBGCAP is not set CONFIG_USB_XHCI_PCI=m CONFIG_USB_XHCI_PLATFORM=m CONFIG_USB_EHCI_HCD=m @@ -6964,6 +7012,7 @@ CONFIG_MMC_USHC=m CONFIG_MMC_USDHI6ROL0=m CONFIG_MMC_REALTEK_PCI=m CONFIG_MMC_REALTEK_USB=m +CONFIG_MMC_CQHCI=m CONFIG_MMC_TOSHIBA_PCI=m CONFIG_MMC_MTK=m CONFIG_MMC_SDHCI_XENON=m @@ -7004,6 +7053,7 @@ CONFIG_LEDS_CPCAP=m CONFIG_LEDS_LM3530=m CONFIG_LEDS_LM3533=m CONFIG_LEDS_LM3642=m +CONFIG_LEDS_LM3692X=m CONFIG_LEDS_MT6323=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_PCA9532_GPIO=y @@ -7072,6 +7122,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m CONFIG_LEDS_TRIGGER_TRANSIENT=m CONFIG_LEDS_TRIGGER_CAMERA=m CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_LEDS_TRIGGER_NETDEV=m CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y CONFIG_INFINIBAND=m @@ -7267,6 +7318,7 @@ CONFIG_RTC_DRV_WM8350=m CONFIG_RTC_DRV_PCF50633=m CONFIG_RTC_DRV_AB3100=m CONFIG_RTC_DRV_ZYNQMP=m +CONFIG_RTC_DRV_CROS_EC=m # # on-CPU RTC drivers @@ -7356,11 +7408,9 @@ CONFIG_VFIO_MDEV=m CONFIG_VFIO_MDEV_DEVICE=m CONFIG_IRQ_BYPASS_MANAGER=m CONFIG_VIRT_DRIVERS=y +CONFIG_VBOXGUEST=m CONFIG_VIRTIO=m - -# -# Virtio drivers -# +CONFIG_VIRTIO_MENU=y CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_BALLOON=m @@ -7464,6 +7514,8 @@ CONFIG_ALI_FIR=m CONFIG_VLSI_FIR=m CONFIG_VIA_FIR=m CONFIG_MCS_FIR=m +# CONFIG_IPX is not set +# CONFIG_NCP_FS is not set CONFIG_PRISM2_USB=m CONFIG_COMEDI=m # CONFIG_COMEDI_DEBUG is not set @@ -7567,8 +7619,6 @@ CONFIG_R8712U=m CONFIG_R8188EU=m CONFIG_88EU_AP_MODE=y CONFIG_R8822BE=m -CONFIG_RTLHALMAC_ST=m -CONFIG_RTLPHYDM_ST=m CONFIG_RTLWIFI_DEBUG_ST=y CONFIG_RTS5208=m CONFIG_VT6655=m @@ -7581,68 +7631,74 @@ CONFIG_VT6656=m # # Accelerometers # -# CONFIG_ADIS16201 is not set -# CONFIG_ADIS16203 is not set -# CONFIG_ADIS16209 is not set -# CONFIG_ADIS16240 is not set +CONFIG_ADIS16201=m +CONFIG_ADIS16203=m +CONFIG_ADIS16209=m +CONFIG_ADIS16240=m # # Analog to digital converters # -# CONFIG_AD7606 is not set -# CONFIG_AD7780 is not set -# CONFIG_AD7816 is not set -# CONFIG_AD7192 is not set -# CONFIG_AD7280 is not set +CONFIG_AD7606=m +CONFIG_AD7606_IFACE_PARALLEL=m +CONFIG_AD7606_IFACE_SPI=m +CONFIG_AD7780=m +CONFIG_AD7816=m +CONFIG_AD7192=m +CONFIG_AD7280=m # # Analog digital bi-direction converters # -# CONFIG_ADT7316 is not set +CONFIG_ADT7316=m +CONFIG_ADT7316_SPI=m +CONFIG_ADT7316_I2C=m # # Capacitance to digital converters # -# CONFIG_AD7150 is not set -# CONFIG_AD7152 is not set -# CONFIG_AD7746 is not set +CONFIG_AD7150=m +CONFIG_AD7152=m +CONFIG_AD7746=m # # Direct Digital Synthesis # -# CONFIG_AD9832 is not set -# CONFIG_AD9834 is not set +CONFIG_AD9832=m +CONFIG_AD9834=m # # Digital gyroscope sensors # -# CONFIG_ADIS16060 is not set +CONFIG_ADIS16060=m # # Network Analyzer, Impedance Converters # -# CONFIG_AD5933 is not set +CONFIG_AD5933=m # # Light sensors # -# CONFIG_TSL2x7x is not set +CONFIG_TSL2x7x=m # # Active energy metering IC # -# CONFIG_ADE7753 is not set -# CONFIG_ADE7754 is not set -# CONFIG_ADE7758 is not set -# CONFIG_ADE7759 is not set -# CONFIG_ADE7854 is not set +CONFIG_ADE7753=m +CONFIG_ADE7754=m +CONFIG_ADE7758=m +CONFIG_ADE7759=m +CONFIG_ADE7854=m +CONFIG_ADE7854_I2C=m +CONFIG_ADE7854_SPI=m # # Resolver to digital converters # -# CONFIG_AD2S90 is not set -# CONFIG_AD2S1200 is not set -# CONFIG_AD2S1210 is not set +CONFIG_AD2S90=m +CONFIG_AD2S1200=m +CONFIG_AD2S1210=m # # Triggers - standalone @@ -7669,8 +7725,6 @@ CONFIG_STAGING_MEDIA=y # CONFIG_INTEL_ATOMISP is not set CONFIG_I2C_BCM2048=m CONFIG_DVB_CXD2099=m -CONFIG_LIRC_STAGING=y -CONFIG_LIRC_ZILOG=m # # Android @@ -7692,7 +7746,6 @@ CONFIG_DGNC=m CONFIG_GS_FPGABOOT=m CONFIG_CRYPTO_SKEIN=m CONFIG_UNISYSSPAR=y -# CONFIG_UNISYS_VISORBUS is not set CONFIG_COMMON_CLK_XLNX_CLKWZRD=m # CONFIG_FB_TFT is not set CONFIG_WILC1000=m @@ -7700,14 +7753,13 @@ CONFIG_WILC1000_SDIO=m CONFIG_WILC1000_SPI=m # CONFIG_WILC1000_HW_OOB_INTR is not set CONFIG_MOST=m -CONFIG_MOSTCORE=m -CONFIG_AIM_CDEV=m -CONFIG_AIM_NETWORK=m -CONFIG_AIM_SOUND=m -CONFIG_AIM_V4L2=m -CONFIG_HDM_DIM2=m -CONFIG_HDM_I2C=m -CONFIG_HDM_USB=m +CONFIG_MOST_CDEV=m +CONFIG_MOST_NET=m +CONFIG_MOST_SOUND=m +CONFIG_MOST_VIDEO=m +CONFIG_MOST_DIM2=m +CONFIG_MOST_I2C=m +CONFIG_MOST_USB=m CONFIG_KS7010=m # CONFIG_GREYBUS is not set CONFIG_CRYPTO_DEV_CCREE=m @@ -7720,12 +7772,13 @@ CONFIG_DRM_VBOXVIDEO=m CONFIG_PI433=m CONFIG_X86_PLATFORM_DEVICES=y CONFIG_ACER_WMI=m +CONFIG_ACER_WIRELESS=m CONFIG_ACERHDF=m CONFIG_ALIENWARE_WMI=m CONFIG_ASUS_LAPTOP=m CONFIG_DELL_SMBIOS=m -CONFIG_DELL_SMBIOS_WMI=m -CONFIG_DELL_SMBIOS_SMM=m +CONFIG_DELL_SMBIOS_WMI=y +CONFIG_DELL_SMBIOS_SMM=y CONFIG_DELL_LAPTOP=m CONFIG_DELL_WMI=m CONFIG_DELL_WMI_DESCRIPTOR=m @@ -7736,6 +7789,7 @@ CONFIG_DELL_RBTN=m CONFIG_FUJITSU_LAPTOP=m CONFIG_FUJITSU_TABLET=m CONFIG_AMILO_RFKILL=m +CONFIG_GPD_POCKET_FAN=m CONFIG_HP_ACCEL=m CONFIG_HP_WIRELESS=m CONFIG_HP_WMI=m @@ -7793,18 +7847,20 @@ CONFIG_SURFACE_3_BUTTON=m CONFIG_INTEL_PUNIT_IPC=m CONFIG_INTEL_TELEMETRY=m CONFIG_MLX_PLATFORM=m -CONFIG_MLX_CPLD_PLATFORM=m CONFIG_INTEL_TURBO_MAX_3=y CONFIG_SILEAD_DMI=y +CONFIG_INTEL_CHTDC_TI_PWRBTN=m CONFIG_PMC_ATOM=y CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m CONFIG_CHROMEOS_PSTORE=m -CONFIG_CROS_EC_CHARDEV=m +CONFIG_CROS_EC_CTL=m CONFIG_CROS_EC_LPC=m CONFIG_CROS_EC_LPC_MEC=y CONFIG_CROS_EC_PROTO=y CONFIG_CROS_KBD_LED_BACKLIGHT=m +CONFIG_MELLANOX_PLATFORM=y +CONFIG_MLXREG_HOTPLUG=m CONFIG_CLKDEV_LOOKUP=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_COMMON_CLK=y @@ -7878,6 +7934,14 @@ CONFIG_RPMSG_CHAR=m CONFIG_RPMSG_QCOM_GLINK_NATIVE=m CONFIG_RPMSG_QCOM_GLINK_RPM=m CONFIG_RPMSG_VIRTIO=m +CONFIG_SOUNDWIRE=y + +# +# SoundWire Devices +# +CONFIG_SOUNDWIRE_BUS=m +CONFIG_SOUNDWIRE_CADENCE=m +CONFIG_SOUNDWIRE_INTEL=m # # SOC (System On Chip) specific Drivers @@ -7900,6 +7964,11 @@ CONFIG_RPMSG_VIRTIO=m # # CONFIG_SUNXI_SRAM is not set CONFIG_SOC_TI=y + +# +# Xilinx SoC drivers +# +CONFIG_XILINX_VCU=m CONFIG_PM_DEVFREQ=y # @@ -7940,6 +8009,7 @@ CONFIG_MEMORY=y CONFIG_IIO=m CONFIG_IIO_BUFFER=y CONFIG_IIO_BUFFER_CB=m +CONFIG_IIO_BUFFER_HW_CONSUMER=m CONFIG_IIO_KFIFO_BUF=m CONFIG_IIO_TRIGGERED_BUFFER=m CONFIG_IIO_CONFIGFS=m @@ -8027,6 +8097,7 @@ CONFIG_PALMAS_GPADC=m CONFIG_QCOM_VADC_COMMON=m CONFIG_QCOM_SPMI_IADC=m CONFIG_QCOM_SPMI_VADC=m +CONFIG_SD_ADC_MODULATOR=m CONFIG_TI_ADC081C=m CONFIG_TI_ADC0832=m CONFIG_TI_ADC084S021=m @@ -8224,6 +8295,9 @@ CONFIG_OPT3001=m CONFIG_PA12203001=m CONFIG_SI1145=m CONFIG_STK3310=m +CONFIG_ST_UVIS25=m +CONFIG_ST_UVIS25_I2C=m +CONFIG_ST_UVIS25_SPI=m CONFIG_TCS3414=m CONFIG_TCS3472=m CONFIG_SENSORS_TSL2563=m @@ -8233,6 +8307,7 @@ CONFIG_US5182D=m CONFIG_VCNL4000=m CONFIG_VEML6070=m CONFIG_VL6180=m +CONFIG_ZOPT2201=m # # Magnetometer sensors @@ -8467,19 +8542,16 @@ CONFIG_INTEL_TH_MSU=m CONFIG_INTEL_TH_PTI=m # CONFIG_INTEL_TH_DEBUG is not set CONFIG_FPGA=m -CONFIG_FPGA_REGION=m -CONFIG_FPGA_MGR_ICE40_SPI=m -CONFIG_FPGA_MGR_ALTERA_CVP=m +CONFIG_ALTERA_PR_IP_CORE=m +CONFIG_ALTERA_PR_IP_CORE_PLAT=m CONFIG_FPGA_MGR_ALTERA_PS_SPI=m +CONFIG_FPGA_MGR_ALTERA_CVP=m CONFIG_FPGA_MGR_XILINX_SPI=m +CONFIG_FPGA_MGR_ICE40_SPI=m CONFIG_FPGA_BRIDGE=m -CONFIG_ALTERA_PR_IP_CORE=m -CONFIG_ALTERA_PR_IP_CORE_PLAT=m CONFIG_XILINX_PR_DECOUPLER=m - -# -# FSI support -# +CONFIG_FPGA_REGION=m +CONFIG_OF_FPGA_REGION=m CONFIG_FSI=m CONFIG_FSI_MASTER_GPIO=m CONFIG_FSI_MASTER_HUB=m @@ -8493,6 +8565,11 @@ CONFIG_MUX_ADG792A=m CONFIG_MUX_GPIO=m CONFIG_MUX_MMIO=m CONFIG_PM_OPP=y +# CONFIG_UNISYS_VISORBUS is not set +CONFIG_SIOX=m +CONFIG_SIOX_BUS_GPIO=m +CONFIG_SLIMBUS=m +CONFIG_SLIM_QCOM_CTRL=m # # Firmware Drivers @@ -8619,6 +8696,7 @@ CONFIG_OVERLAY_FS=m CONFIG_OVERLAY_FS_REDIRECT_DIR=y # CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set CONFIG_OVERLAY_FS_INDEX=y +# CONFIG_OVERLAY_FS_NFS_EXPORT is not set # # Caches @@ -8806,8 +8884,8 @@ CONFIG_CIFS_DEBUG=y # CONFIG_CIFS_DEBUG_DUMP_KEYS is not set CONFIG_CIFS_DFS_UPCALL=y CONFIG_CIFS_SMB311=y +# CONFIG_CIFS_SMB_DIRECT is not set CONFIG_CIFS_FSCACHE=y -# CONFIG_NCP_FS is not set CONFIG_CODA_FS=m CONFIG_AFS_FS=m # CONFIG_AFS_DEBUG is not set @@ -8999,6 +9077,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set # CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set +CONFIG_FUNCTION_ERROR_INJECTION=y CONFIG_LATENCYTOP=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y @@ -9041,6 +9120,7 @@ CONFIG_PROBE_EVENTS=y CONFIG_DYNAMIC_FTRACE=y CONFIG_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_FUNCTION_PROFILER=y +# CONFIG_BPF_KPROBE_OVERRIDE is not set CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_FTRACE_STARTUP_TEST is not set CONFIG_MMIOTRACE=y @@ -9054,10 +9134,7 @@ CONFIG_HIST_TRIGGERS=y CONFIG_TRACING_EVENTS_GPIO=y # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set - -# -# Runtime Testing -# +CONFIG_RUNTIME_TESTING_MENU=y CONFIG_LKDTM=m # CONFIG_TEST_LIST_SORT is not set # CONFIG_TEST_SORT is not set @@ -9080,7 +9157,7 @@ CONFIG_LKDTM=m # CONFIG_TEST_LKM is not set # CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_BPF is not set -# CONFIG_TEST_FIND_BIT is not set +# CONFIG_FIND_BIT_BENCHMARK is not set # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_SYSCTL is not set # CONFIG_TEST_UDELAY is not set @@ -9109,7 +9186,6 @@ CONFIG_EARLY_PRINTK_EFI=y CONFIG_DOUBLEFAULT=y # CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_DEBUG is not set -# CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y # CONFIG_X86_DECODER_SELFTEST is not set CONFIG_IO_DELAY_TYPE_0X80=0 @@ -9154,6 +9230,7 @@ CONFIG_SECURITY_PATH=y # CONFIG_INTEL_TXT is not set CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y CONFIG_HARDENED_USERCOPY=y +CONFIG_HARDENED_USERCOPY_FALLBACK=y # CONFIG_HARDENED_USERCOPY_PAGESPAN is not set CONFIG_FORTIFY_SOURCE=y # CONFIG_STATIC_USERMODEHELPER is not set @@ -9351,6 +9428,7 @@ CONFIG_CRYPTO_DEV_CCP=y CONFIG_CRYPTO_DEV_CCP_DD=m CONFIG_CRYPTO_DEV_SP_CCP=y CONFIG_CRYPTO_DEV_CCP_CRYPTO=m +CONFIG_CRYPTO_DEV_SP_PSP=y CONFIG_CRYPTO_DEV_QAT=m CONFIG_CRYPTO_DEV_QAT_DH895xCC=m CONFIG_CRYPTO_DEV_QAT_C3XXX=m @@ -9361,6 +9439,7 @@ CONFIG_CRYPTO_DEV_QAT_C62XVF=m CONFIG_CRYPTO_DEV_NITROX=m CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m CONFIG_CRYPTO_DEV_CHELSIO=m +CONFIG_CHELSIO_IPSEC_INLINE=y CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y @@ -9395,6 +9474,7 @@ CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m +CONFIG_KVM_AMD_SEV=y CONFIG_KVM_MMU_AUDIT=y CONFIG_VHOST_NET=m CONFIG_VHOST_SCSI=m @@ -9479,7 +9559,8 @@ CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y -# CONFIG_DMA_NOOP_OPS is not set +CONFIG_SGL_ALLOC=y +# CONFIG_DMA_DIRECT_OPS is not set CONFIG_DMA_VIRT_OPS=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y -- cgit v1.2.3