summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorsten Leemhuis <fedora@leemhuis.info>2018-04-20 07:29:11 +0200
committerThorsten Leemhuis <fedora@leemhuis.info>2018-04-20 07:29:11 +0200
commitc05b15cdd37340ca0fec8b3153d1c2203775585d (patch)
treeb3dc37cfeb302c680bfabcab544ee4803b4beda9
parent229c3eac14c9e97b8149a7d0c544a8d8e8838cad (diff)
parentedca09d1c11074f4b857c1988b672b9927028e90 (diff)
downloadkernel-c05b15cdd37340ca0fec8b3153d1c2203775585d.tar.gz
kernel-c05b15cdd37340ca0fec8b3153d1c2203775585d.tar.xz
kernel-c05b15cdd37340ca0fec8b3153d1c2203775585d.zip
merge origin to update top 4.16kernel-4.16.3-251.vanilla.knurd.1.fc27
-rw-r--r--0001-Bluetooth-btusb-Add-a-Kconfig-option-to-enable-USB-a.patch90
-rw-r--r--0001-HID-multitouch-Properly-deal-with-Win8-PTP-reports-w.patch107
-rw-r--r--0001-Temporarily-work-around-gcc-aliasing-warning-error.patch27
-rw-r--r--0001-mm-don-t-warn-about-allocations-which-stall-for-too-.patch181
-rw-r--r--0001-net-phy-mdio-bcm-unimac-fix-potential-NULL-dereferen.patch44
-rw-r--r--0001-platform-x86-dell-laptop-Filter-out-spurious-keyboar.patch99
-rw-r--r--0001-scsi-libsas-defer-ata-device-eh-commands-to-libata.patch130
-rw-r--r--0001-scsi-libsas-direct-call-probe-and-destruct.patch299
-rw-r--r--0001-usb-usbtest-fix-NULL-pointer-dereference.patch41
-rw-r--r--0003-HID-multitouch-Combine-all-left-button-events-in-a-f.patch78
-rw-r--r--0003-ahci-Allow-setting-a-default-LPM-policy-for-mobile-c.patch270
-rw-r--r--0010-Input-silead-Add-support-for-capactive-home-button-f.patch114
-rw-r--r--ACPI-sbshc-remove-raw-pointer-from-printk-message.patch41
-rw-r--r--Add-support-for-One-by-Wacom-CTL-472-CTL-672.patch51
-rw-r--r--CVE-2017-7645.patch180
-rw-r--r--CVE-2018-1000026.patch228
-rw-r--r--HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch54
-rw-r--r--arm-clk-bcm2835-hdmi-fixes.patch56
-rw-r--r--arm-dts-Add-am335x-pocketbeagle.patch424
-rw-r--r--arm-exynos-fix-dwc3-neg.patch283
-rw-r--r--arm-imx6-cpufreq-fix-loading.patch32
-rw-r--r--arm-imx6-hummingboard2.patch902
-rw-r--r--arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch100
-rw-r--r--arm-sunxi-nvmem-fixH3.patch131
-rw-r--r--arm-tegra-fix-nouveau-crash.patch64
-rw-r--r--arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch41
-rw-r--r--arm64-mmc-sdhci_f_sdh30-add-ACPI-support.patch146
-rw-r--r--arm64-socionext-96b-enablement.patch2679
-rw-r--r--arm64-thunderx-crypto-zip-fixes.patch403
-rw-r--r--baseconfig/CONFIG_ACPI_SPCR_TABLE1
-rw-r--r--baseconfig/CONFIG_ATH10K_SPECTRAL1
-rw-r--r--baseconfig/CONFIG_ATH9K_COMMON_SPECTRAL1
-rw-r--r--baseconfig/CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION1
-rw-r--r--baseconfig/CONFIG_BPF_KPROBE_OVERRIDE1
-rw-r--r--baseconfig/CONFIG_CHELSIO_IPSEC_INLINE1
-rw-r--r--baseconfig/CONFIG_CIFS_SMB_DIRECT1
-rw-r--r--baseconfig/CONFIG_DM_UNSTRIPED1
-rw-r--r--baseconfig/CONFIG_DRM_PANEL_ILITEK_IL93221
-rw-r--r--baseconfig/CONFIG_DVB_MMAP1
-rw-r--r--baseconfig/CONFIG_DVB_ULE_DEBUG1
-rw-r--r--baseconfig/CONFIG_FIND_BIT_BENCHMARK1
-rw-r--r--baseconfig/CONFIG_GPIO_PCIE_IDIO_241
-rw-r--r--baseconfig/CONFIG_HARDENED_USERCOPY_FALLBACK1
-rw-r--r--baseconfig/CONFIG_HID_JABRA1
-rw-r--r--baseconfig/CONFIG_HW_RANDOM_TPM2
-rw-r--r--baseconfig/CONFIG_IIO_BUFFER_HW_CONSUMER1
-rw-r--r--baseconfig/CONFIG_IP6_NF_MATCH_SRH1
-rw-r--r--baseconfig/CONFIG_IPX_INTERN1
-rw-r--r--baseconfig/CONFIG_LEDS_LM3692X1
-rw-r--r--baseconfig/CONFIG_LEDS_TRIGGER_NETDEV1
-rw-r--r--baseconfig/CONFIG_LIRC2
-rw-r--r--baseconfig/CONFIG_MELLANOX_PLATFORM1
-rw-r--r--baseconfig/CONFIG_MFD_RTSX_PCI1
-rw-r--r--baseconfig/CONFIG_MFD_RTSX_USB1
-rw-r--r--baseconfig/CONFIG_MISC_RTSX_PCI1
-rw-r--r--baseconfig/CONFIG_MISC_RTSX_USB1
-rw-r--r--baseconfig/CONFIG_MLXREG_HOTPLUG1
-rw-r--r--baseconfig/CONFIG_MMC_CQHCI1
-rw-r--r--baseconfig/CONFIG_MT76x2E1
-rw-r--r--baseconfig/CONFIG_NETDEVSIM1
-rw-r--r--baseconfig/CONFIG_NET_DSA_LEGACY1
-rw-r--r--baseconfig/CONFIG_NET_VENDOR_CORTINA1
-rw-r--r--baseconfig/CONFIG_NET_VENDOR_SOCIONEXT1
-rw-r--r--baseconfig/CONFIG_NFT_FLOW_OFFLOAD1
-rw-r--r--baseconfig/CONFIG_NF_FLOW_TABLE1
-rw-r--r--baseconfig/CONFIG_NF_FLOW_TABLE_INET1
-rw-r--r--baseconfig/CONFIG_NF_FLOW_TABLE_IPV41
-rw-r--r--baseconfig/CONFIG_NF_FLOW_TABLE_IPV61
-rw-r--r--baseconfig/CONFIG_PCIE_CADENCE_HOST1
-rw-r--r--baseconfig/CONFIG_PINCTRL_AXP2091
-rw-r--r--baseconfig/CONFIG_RAVE_SP_CORE1
-rw-r--r--baseconfig/CONFIG_RUNTIME_TESTING_MENU1
-rw-r--r--baseconfig/CONFIG_SCSI_UFSHCD2
-rw-r--r--baseconfig/CONFIG_SCSI_UFS_DWC_TC_PLATFORM1
-rw-r--r--baseconfig/CONFIG_SD_ADC_MODULATOR1
-rw-r--r--baseconfig/CONFIG_SENSORS_W83773G1
-rw-r--r--baseconfig/CONFIG_SIOX1
-rw-r--r--baseconfig/CONFIG_SLIMBUS1
-rw-r--r--baseconfig/CONFIG_SND_SOC_MAX983731
-rw-r--r--baseconfig/CONFIG_SND_SOC_PCM186X_I2C1
-rw-r--r--baseconfig/CONFIG_SND_SOC_PCM186X_SPI1
-rw-r--r--baseconfig/CONFIG_SND_SOC_TAS64241
-rw-r--r--baseconfig/CONFIG_SND_SOC_TLV320AIC32X4_I2C1
-rw-r--r--baseconfig/CONFIG_SND_SOC_TLV320AIC32X4_SPI1
-rw-r--r--baseconfig/CONFIG_SND_SOC_TSCS42XX1
-rw-r--r--baseconfig/CONFIG_SOUNDWIRE1
-rw-r--r--baseconfig/CONFIG_SOUNDWIRE_BUS1
-rw-r--r--baseconfig/CONFIG_SOUNDWIRE_CADENCE1
-rw-r--r--baseconfig/CONFIG_SPI_CADENCE (renamed from baseconfig/x86/CONFIG_SPI_CADENCE)0
-rw-r--r--baseconfig/CONFIG_ST_UVIS251
-rw-r--r--baseconfig/CONFIG_ST_UVIS25_I2C1
-rw-r--r--baseconfig/CONFIG_ST_UVIS25_SPI1
-rw-r--r--baseconfig/CONFIG_TEGRA_BPMP_THERMAL1
-rw-r--r--baseconfig/CONFIG_TIMER_STATS1
-rw-r--r--baseconfig/CONFIG_UNISYS_VISORBUS1
-rw-r--r--baseconfig/CONFIG_USB_XHCI_DBGCAP1
-rw-r--r--baseconfig/CONFIG_VIRTIO_MENU1
-rw-r--r--baseconfig/CONFIG_XILINX_VCU1
-rw-r--r--baseconfig/CONFIG_ZOPT22011
-rw-r--r--baseconfig/arm/CONFIG_ARM_ARMADA_37XX_CPUFREQ1
-rw-r--r--baseconfig/arm/CONFIG_ARM_BIG_LITTLE_CPUFREQ2
-rw-r--r--baseconfig/arm/CONFIG_ARM_PTDUMP_DEBUGFS1
-rw-r--r--baseconfig/arm/CONFIG_ARM_SCPI_CPUFREQ (renamed from baseconfig/arm/armv7/CONFIG_ARM_SCPI_CPUFREQ)0
-rw-r--r--baseconfig/arm/CONFIG_CADENCE_WATCHDOG2
-rw-r--r--baseconfig/arm/CONFIG_DEBUG_WX1
-rw-r--r--baseconfig/arm/CONFIG_DRM_I2C_ADV75111
-rw-r--r--baseconfig/arm/CONFIG_DRM_I2C_ADV7511_CEC1
-rw-r--r--baseconfig/arm/CONFIG_DRM_PANEL_ILITEK_IL93221
-rw-r--r--baseconfig/arm/CONFIG_FTWDT010_WATCHDOG1
-rw-r--r--baseconfig/arm/CONFIG_GPIO_RASPBERRYPI_EXP1
-rw-r--r--baseconfig/arm/CONFIG_I2C_CADENCE (renamed from baseconfig/arm/armv7/armv7/CONFIG_I2C_CADENCE)0
-rw-r--r--baseconfig/arm/CONFIG_I2C_GPIO_FAULT_INJECTOR1
-rw-r--r--baseconfig/arm/CONFIG_MFD_CROS_EC_CHARDEV1
-rw-r--r--baseconfig/arm/CONFIG_MTD_NAND_MARVELL1
-rw-r--r--baseconfig/arm/CONFIG_NCP_FS1
-rw-r--r--baseconfig/arm/CONFIG_PHY_QCOM_UFS (renamed from baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_UFS)0
-rw-r--r--baseconfig/arm/CONFIG_PINCTRL_AXP2091
-rw-r--r--baseconfig/arm/CONFIG_PINCTRL_MSM89981
-rw-r--r--baseconfig/arm/CONFIG_QCOM_A53PLL1
-rw-r--r--baseconfig/arm/CONFIG_QCOM_CLK_APCS_MSM89161
-rw-r--r--baseconfig/arm/CONFIG_REFCOUNT_FULL (renamed from baseconfig/arm/aarch64/CONFIG_REFCOUNT_FULL)0
-rw-r--r--baseconfig/arm/CONFIG_RTC_DRV_CROS_EC1
-rw-r--r--baseconfig/arm/CONFIG_SCSI_UFSHCD1
-rw-r--r--baseconfig/arm/CONFIG_SCSI_UFSHCD_PCI (renamed from baseconfig/CONFIG_SCSI_UFSHCD_PCI)0
-rw-r--r--baseconfig/arm/CONFIG_SCSI_UFSHCD_PLATFORM1
-rw-r--r--baseconfig/arm/CONFIG_SCSI_UFS_QCOM1
-rw-r--r--baseconfig/arm/CONFIG_SD_ADC_MODULATOR1
-rw-r--r--baseconfig/arm/CONFIG_SLIMBUS1
-rw-r--r--baseconfig/arm/CONFIG_SLIM_QCOM_CTRL1
-rw-r--r--baseconfig/arm/CONFIG_SPI_CADENCE2
-rw-r--r--baseconfig/arm/CONFIG_SPMI_PMIC_CLKDIV1
-rw-r--r--baseconfig/arm/CONFIG_TEGRA_BPMP2
-rw-r--r--baseconfig/arm/CONFIG_TEGRA_HSP_MBOX2
-rw-r--r--baseconfig/arm/CONFIG_TEGRA_VDE1
-rw-r--r--baseconfig/arm/CONFIG_TINYDRM_ILI92251
-rw-r--r--baseconfig/arm/CONFIG_TINYDRM_ST7735R1
-rw-r--r--baseconfig/arm/CONFIG_UFS_FS1
-rw-r--r--baseconfig/arm/CONFIG_USB_MUSB_SUNXI (renamed from baseconfig/arm/aarch64/CONFIG_USB_MUSB_SUNXI)0
-rw-r--r--baseconfig/arm/CONFIG_USB_OTG_FSM1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_ARCH_ZYNQMP2
-rw-r--r--baseconfig/arm/aarch64/CONFIG_ARM64_PMEM2
-rw-r--r--baseconfig/arm/aarch64/CONFIG_ARM64_RAS_EXTN1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_ARM_DSU_PMU1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_ARM_SDE_INTERFACE1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_CAVIUM_PTP1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_CRYPTO_SHA3_ARM641
-rw-r--r--baseconfig/arm/aarch64/CONFIG_CRYPTO_SHA512_ARM64_CE1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_CRYPTO_SM3_ARM64_CE1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_FB_XILINX1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_GPIO_ZYNQ1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_NET_VENDOR_SOCIONEXT1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_PCIE_XILINX_NWL1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_PHY_QCOM_UFS1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_PINCTRL_MESON_AXG1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_RTC_DRV_ZYNQMP1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_SPI_ZYNQMP_GQSPI1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_STUB_CLK_HI36601
-rw-r--r--baseconfig/arm/aarch64/CONFIG_TEGRA_BPMP1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_TEGRA_BPMP_THERMAL1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_TEGRA_HSP_MBOX1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_TEGRA_IVC1
-rw-r--r--baseconfig/arm/aarch64/CONFIG_XILINX_ZYNQMP_DMA1
-rw-r--r--baseconfig/arm/armv7/CONFIG_ARM_BIG_LITTLE_CPUFREQ1
-rw-r--r--baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_FIMC1
-rw-r--r--baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_GSC1
-rw-r--r--baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_IOMMU2
-rw-r--r--baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_IPP1
-rw-r--r--baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_ROTATOR1
-rw-r--r--baseconfig/arm/armv7/CONFIG_EXYNOS_IOMMU2
-rw-r--r--baseconfig/arm/armv7/CONFIG_HW_RANDOM_EXYNOS1
-rw-r--r--baseconfig/arm/armv7/CONFIG_TEGRA_IVC1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_CADENCE_WATCHDOG1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_CHARGER_TPS652172
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_DRM_ETNAVIV_THERMAL1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_MFD_TI_LMU1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_POWER_RESET_IMX1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_REGULATOR_LM363X1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_RTC_DRV_MXC_V21
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_SERIAL_8250_OMAP2
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_SERIAL_OMAP2
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_SERIAL_OMAP_CONSOLE1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_SPI_CADENCE1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_TI_EMIF_SRAM1
-rw-r--r--baseconfig/arm/armv7/lpae/CONFIG_EDAC_TI1
-rw-r--r--baseconfig/powerpc/CONFIG_OCXL1
-rw-r--r--baseconfig/powerpc/CONFIG_PPC_IRQ_SOFT_MASK_DEBUG1
-rw-r--r--baseconfig/powerpc/CONFIG_PPC_MEM_KEYS1
-rw-r--r--baseconfig/s390x/CONFIG_EXPOLINE1
-rw-r--r--baseconfig/s390x/CONFIG_EXPOLINE_MEDIUM1
-rw-r--r--baseconfig/s390x/CONFIG_KERNEL_NOBP1
-rw-r--r--baseconfig/s390x/CONFIG_MFD_RTSX_PCI1
-rw-r--r--baseconfig/s390x/CONFIG_MFD_RTSX_USB1
-rw-r--r--baseconfig/s390x/CONFIG_MISC_RTSX_PCI1
-rw-r--r--baseconfig/s390x/CONFIG_MISC_RTSX_USB1
-rw-r--r--baseconfig/s390x/CONFIG_SCSI_UFSHCD1
-rw-r--r--baseconfig/x86/CONFIG_ACER_WIRELESS1
-rw-r--r--baseconfig/x86/CONFIG_DELL_SMBIOS_SMM2
-rw-r--r--baseconfig/x86/CONFIG_DELL_SMBIOS_WMI2
-rw-r--r--baseconfig/x86/CONFIG_GPD_POCKET_FAN1
-rw-r--r--baseconfig/x86/CONFIG_INTEL_CHTDC_TI_PWRBTN1
-rw-r--r--baseconfig/x86/CONFIG_KEXEC_SIG1
-rw-r--r--baseconfig/x86/CONFIG_KEXEC_VERIFY_SIG1
-rw-r--r--baseconfig/x86/CONFIG_MLX_PLATFORM (renamed from baseconfig/x86/x86_64/CONFIG_MLX_PLATFORM)0
-rw-r--r--baseconfig/x86/CONFIG_SCSI_UFSHCD1
-rw-r--r--baseconfig/x86/CONFIG_SCSI_UFSHCD_PCI1
-rw-r--r--baseconfig/x86/CONFIG_SCSI_UFSHCD_PLATFORM (renamed from baseconfig/CONFIG_SCSI_UFSHCD_PLATFORM)0
-rw-r--r--baseconfig/x86/CONFIG_SD_ADC_MODULATOR1
-rw-r--r--baseconfig/x86/CONFIG_SND_SOC_INTEL_SST_TOPLEVEL2
-rw-r--r--baseconfig/x86/CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI1
-rw-r--r--baseconfig/x86/CONFIG_SOUNDWIRE_INTEL1
-rw-r--r--baseconfig/x86/CONFIG_VBOXGUEST1
-rw-r--r--baseconfig/x86/CONFIG_VIDEO_IPU3_CIO21
-rw-r--r--baseconfig/x86/CONFIG_VIRT_DRIVERS1
-rw-r--r--baseconfig/x86/CONFIG_X86_PMEM_LEGACY2
-rw-r--r--baseconfig/x86/i686/CONFIG_X86_PPRO_FENCE1
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_X86_PPRO_FENCE1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_CRYPTO_DEV_SP_PSP1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_JAILHOUSE_GUEST1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_KEXEC_SIG1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_KEXEC_SIG_FORCE1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_KEXEC_VERIFY_SIG1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_KVM_AMD_SEV1
-rw-r--r--bcm2835-hwrng-Handle-deferred-clock-properly.patch42
-rw-r--r--bcm2837-enable-pmu.patch31
-rw-r--r--bcm2837-gpio-expander.patch707
-rw-r--r--bcm2837-lan78xx-fixes.patch434
-rw-r--r--bcm2837-rpi-initial-support-for-the-3.patch209
-rw-r--r--bcm283x-Fix-probing-of-bcm2835-i2s.patch118
-rw-r--r--bcm283x-clk-audio-fixes.patch98
-rw-r--r--clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch58
-rw-r--r--crypto-testmgr-Allow-different-compression-results.patch163
-rw-r--r--debugconfig/CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION1
-rw-r--r--debugconfig/CONFIG_BPF_KPROBE_OVERRIDE1
-rw-r--r--debugconfig/CONFIG_FAIL_FUNCTION1
-rw-r--r--drm-nouveau-bl-fix-backlight-regression.patch68
-rw-r--r--efi-Add-SHIM-and-image-security-database-GUID-defini.patch31
-rw-r--r--efi-lockdown.patch1317
-rw-r--r--filter-aarch64.sh4
-rw-r--r--filter-armv7hl.sh4
-rw-r--r--ipmi-fixes.patch86
-rw-r--r--iwlwifi-mvn.patch115
-rw-r--r--kernel-aarch64-debug.config130
-rw-r--r--kernel-aarch64.config129
-rw-r--r--kernel-armv7hl-debug.config123
-rw-r--r--kernel-armv7hl-lpae-debug.config118
-rw-r--r--kernel-armv7hl-lpae.config119
-rw-r--r--kernel-armv7hl.config124
-rw-r--r--kernel-i686-PAE.config92
-rw-r--r--kernel-i686-PAEdebug.config93
-rw-r--r--kernel-i686-debug.config93
-rw-r--r--kernel-i686.config92
-rw-r--r--kernel-ppc64-debug.config80
-rw-r--r--kernel-ppc64.config79
-rw-r--r--kernel-ppc64le-debug.config80
-rw-r--r--kernel-ppc64le.config79
-rw-r--r--kernel-s390x-debug.config78
-rw-r--r--kernel-s390x.config77
-rw-r--r--kernel-x86_64-debug.config95
-rw-r--r--kernel-x86_64.config94
-rw-r--r--kernel.spec176
-rw-r--r--mmc-sdhci-iproc-Disable-preset-values-for-BCM2835.patch37
-rw-r--r--net-Revert-macsec-missing-dev_put-on-error-in-macsec_newlink.patch57
-rw-r--r--of-i2c-fix-module-aliases.patch69
-rw-r--r--sources4
-rw-r--r--sunrpc-remove-incorrect-HMAC-request-initialization.patch54
-rw-r--r--wcn36xx-Fix-firmware-crash-due-to-corrupted-buffer-address.patch164
-rw-r--r--wcn36xx-reduce-verbosity-of-drivers-messages.patch95
268 files changed, 6032 insertions, 7386 deletions
diff --git a/0001-Bluetooth-btusb-Add-a-Kconfig-option-to-enable-USB-a.patch b/0001-Bluetooth-btusb-Add-a-Kconfig-option-to-enable-USB-a.patch
deleted file mode 100644
index 1f94c3d70..000000000
--- a/0001-Bluetooth-btusb-Add-a-Kconfig-option-to-enable-USB-a.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 20eeb02a0a489e35de0830b2d61f09d43763c982 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Mon, 13 Nov 2017 09:23:19 +0100
-Subject: [PATCH] Bluetooth: btusb: Add a Kconfig option to enable USB
- autosuspend by default
-
-On many laptops the btusb device is the only USB device not having USB
-autosuspend enabled, this causes not only the HCI but also the USB
-controller to stay awake, together using aprox. 0.4W of power.
-
-Modern ultrabooks idle around 6W (at 50% screen brightness), 3.5W for
-Apollo Lake devices. 0.4W is a significant chunk of this (7 / 11%).
-
-The btusb driver already contains code to allow enabling USB autosuspend,
-but currently leaves it up to the user / userspace to enable it. This
-means that for most people it will not be enabled, leading to an
-unnecessarily high power consumption.
-
-Since enabling it is not entirely without risk of regressions, this
-commit adds a Kconfig option so that Linux distributions can choose to
-enable it by default. This commit also adds a module option so that when
-distros receive bugs they can easily ask the user to disable it again
-for easy debugging.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
-Changes in v2:
--s/BT_USB_AUTOSUSPEND/BT_HCIBTUSB_AUTOSUSPEND/
--s/enable_usb_autosuspend/enable_autosuspend/
----
- drivers/bluetooth/Kconfig | 10 ++++++++++
- drivers/bluetooth/btusb.c | 7 +++++++
- 2 files changed, 17 insertions(+)
-
-diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
-index 6475f8c0d3b2..20940417d937 100644
---- a/drivers/bluetooth/Kconfig
-+++ b/drivers/bluetooth/Kconfig
-@@ -30,6 +30,16 @@ config BT_HCIBTUSB
- Say Y here to compile support for Bluetooth USB devices into the
- kernel or say M to compile it as module (btusb).
-
-+config BT_HCIBTUSB_AUTOSUSPEND
-+ bool "Enable USB autosuspend for Bluetooth USB devices by default"
-+ depends on BT_HCIBTUSB
-+ help
-+ Say Y here to enable USB autosuspend for Bluetooth USB devices by
-+ default.
-+
-+ This can be overridden by passing btusb.enable_autosuspend=[y|n]
-+ on the kernel commandline.
-+
- config BT_HCIBTUSB_BCM
- bool "Broadcom protocol support"
- depends on BT_HCIBTUSB
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index c054d7bce490..3386034a44aa 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -40,6 +40,7 @@
-
- static bool disable_scofix;
- static bool force_scofix;
-+static bool enable_autosuspend = IS_ENABLED(CONFIG_BT_HCIBTUSB_AUTOSUSPEND);
-
- static bool reset = true;
-
-@@ -3175,6 +3176,9 @@ static int btusb_probe(struct usb_interface *intf,
- }
- #endif
-
-+ if (enable_autosuspend)
-+ usb_enable_autosuspend(data->udev);
-+
- err = hci_register_dev(hdev);
- if (err < 0)
- goto out_free_dev;
-@@ -3387,6 +3391,9 @@ MODULE_PARM_DESC(disable_scofix, "Disable fixup of wrong SCO buffer size");
- module_param(force_scofix, bool, 0644);
- MODULE_PARM_DESC(force_scofix, "Force fixup of wrong SCO buffers size");
-
-+module_param(enable_autosuspend, bool, 0644);
-+MODULE_PARM_DESC(enable_autosuspend, "Enable USB autosuspend by default");
-+
- module_param(reset, bool, 0644);
- MODULE_PARM_DESC(reset, "Send HCI reset command on initialization");
-
---
-2.14.3
-
diff --git a/0001-HID-multitouch-Properly-deal-with-Win8-PTP-reports-w.patch b/0001-HID-multitouch-Properly-deal-with-Win8-PTP-reports-w.patch
deleted file mode 100644
index 56bcc7ec6..000000000
--- a/0001-HID-multitouch-Properly-deal-with-Win8-PTP-reports-w.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 8c6b638bb620eef53cb83ffe88d7b528f666af10 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 22 Nov 2017 12:57:08 +0100
-Subject: [PATCH] HID: multitouch: Properly deal with Win8 PTP reports with 0
- touches
-
-The Windows Precision Touchpad spec "Figure 4 Button Only Down and Up"
-and "Table 9 Report Sequence for Button Only Down and Up" indicate
-that the first packet of a (possibly hybrid mode multi-packet) frame
-may contain a contact-count of 0 if only a button is pressed and no
-fingers are detected.
-
-This means that a value of 0 for contact-count is a valid value and
-should be used as expected contact count when it is the first packet
-(num_received == 0), as extra check to make sure that this is the first
-packet of a buttons only frame, we also check that the timestamp is
-different.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Signed-off-by: Jiri Kosina <jkosina@suse.cz>
----
- drivers/hid/hid-multitouch.c | 32 ++++++++++++++++++++++++++++++--
- 1 file changed, 30 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index 397592959238..0a42e19d914a 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -119,6 +119,9 @@ struct mt_device {
- unsigned long mt_io_flags; /* mt flags (MT_IO_FLAGS_*) */
- int cc_index; /* contact count field index in the report */
- int cc_value_index; /* contact count value index in the field */
-+ int scantime_index; /* scantime field index in the report */
-+ int scantime_val_index; /* scantime value index in the field */
-+ int prev_scantime; /* scantime reported in the previous packet */
- unsigned last_slot_field; /* the last field of a slot */
- unsigned mt_report_id; /* the report ID of the multitouch device */
- unsigned long initial_quirks; /* initial quirks state */
-@@ -599,6 +602,12 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
- EV_MSC, MSC_TIMESTAMP);
- input_set_capability(hi->input, EV_MSC, MSC_TIMESTAMP);
- mt_store_field(usage, td, hi);
-+ /* Ignore if indexes are out of bounds. */
-+ if (field->index >= field->report->maxfield ||
-+ usage->usage_index >= field->report_count)
-+ return 1;
-+ td->scantime_index = field->index;
-+ td->scantime_val_index = usage->usage_index;
- return 1;
- case HID_DG_CONTACTCOUNT:
- /* Ignore if indexes are out of bounds. */
-@@ -866,10 +875,11 @@ static void mt_process_mt_event(struct hid_device *hid, struct hid_field *field,
- static void mt_touch_report(struct hid_device *hid, struct hid_report *report)
- {
- struct mt_device *td = hid_get_drvdata(hid);
-+ __s32 cls = td->mtclass.name;
- struct hid_field *field;
- bool first_packet;
- unsigned count;
-- int r, n;
-+ int r, n, scantime = 0;
-
- /* sticky fingers release in progress, abort */
- if (test_and_set_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags))
-@@ -879,12 +889,29 @@ static void mt_touch_report(struct hid_device *hid, struct hid_report *report)
- * Includes multi-packet support where subsequent
- * packets are sent with zero contactcount.
- */
-+ if (td->scantime_index >= 0) {
-+ field = report->field[td->scantime_index];
-+ scantime = field->value[td->scantime_val_index];
-+ }
- if (td->cc_index >= 0) {
- struct hid_field *field = report->field[td->cc_index];
- int value = field->value[td->cc_value_index];
-- if (value)
-+
-+ /*
-+ * For Win8 PTPs the first packet (td->num_received == 0) may
-+ * have a contactcount of 0 if there only is a button event.
-+ * We double check that this is not a continuation packet
-+ * of a possible multi-packet frame be checking that the
-+ * timestamp has changed.
-+ */
-+ if ((cls == MT_CLS_WIN_8 || cls == MT_CLS_WIN_8_DUAL) &&
-+ td->num_received == 0 && td->prev_scantime != scantime)
-+ td->num_expected = value;
-+ /* A non 0 contact count always indicates a first packet */
-+ else if (value)
- td->num_expected = value;
- }
-+ td->prev_scantime = scantime;
-
- first_packet = td->num_received == 0;
- for (r = 0; r < report->maxfield; r++) {
-@@ -1342,6 +1369,7 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
- td->maxcontact_report_id = -1;
- td->inputmode_value = MT_INPUTMODE_TOUCHSCREEN;
- td->cc_index = -1;
-+ td->scantime_index = -1;
- td->mt_report_id = -1;
- hid_set_drvdata(hdev, td);
-
---
-2.14.3
-
diff --git a/0001-Temporarily-work-around-gcc-aliasing-warning-error.patch b/0001-Temporarily-work-around-gcc-aliasing-warning-error.patch
new file mode 100644
index 000000000..24302d2ec
--- /dev/null
+++ b/0001-Temporarily-work-around-gcc-aliasing-warning-error.patch
@@ -0,0 +1,27 @@
+From 991b5e95d4fe7778c8f5e7d7f478d01134d51ca7 Mon Sep 17 00:00:00 2001
+From: Laura Abbott <labbott@redhat.com>
+Date: Wed, 14 Mar 2018 14:20:02 -0700
+Subject: [PATCH] Temporarily work around gcc aliasing warning/error
+
+Signed-off-by: Laura Abbott <labbott@redhat.com>
+---
+ tools/lib/str_error_r.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/tools/lib/str_error_r.c b/tools/lib/str_error_r.c
+index d6d65537b0d9..c0ede4f6adae 100644
+--- a/tools/lib/str_error_r.c
++++ b/tools/lib/str_error_r.c
+@@ -21,7 +21,8 @@
+ char *str_error_r(int errnum, char *buf, size_t buflen)
+ {
+ int err = strerror_r(errnum, buf, buflen);
++ void *temp = buf;
+ if (err)
+- snprintf(buf, buflen, "INTERNAL ERROR: strerror_r(%d, %p, %zd)=%d", errnum, buf, buflen, err);
++ snprintf(buf, buflen, "INTERNAL ERROR: strerror_r(%d, %p, %zd)=%d", errnum, temp, buflen, err);
+ return buf;
+ }
+--
+2.16.2
+
diff --git a/0001-mm-don-t-warn-about-allocations-which-stall-for-too-.patch b/0001-mm-don-t-warn-about-allocations-which-stall-for-too-.patch
deleted file mode 100644
index bc5921caf..000000000
--- a/0001-mm-don-t-warn-about-allocations-which-stall-for-too-.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 400e22499dd92613821374c8c6c88c7225359980 Mon Sep 17 00:00:00 2001
-From: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
-Date: Wed, 15 Nov 2017 17:38:37 -0800
-Subject: [PATCH] mm: don't warn about allocations which stall for too long
-
-Commit 63f53dea0c98 ("mm: warn about allocations which stall for too
-long") was a great step for reducing possibility of silent hang up
-problem caused by memory allocation stalls. But this commit reverts it,
-for it is possible to trigger OOM lockup and/or soft lockups when many
-threads concurrently called warn_alloc() (in order to warn about memory
-allocation stalls) due to current implementation of printk(), and it is
-difficult to obtain useful information due to limitation of synchronous
-warning approach.
-
-Current printk() implementation flushes all pending logs using the
-context of a thread which called console_unlock(). printk() should be
-able to flush all pending logs eventually unless somebody continues
-appending to printk() buffer.
-
-Since warn_alloc() started appending to printk() buffer while waiting
-for oom_kill_process() to make forward progress when oom_kill_process()
-is processing pending logs, it became possible for warn_alloc() to force
-oom_kill_process() loop inside printk(). As a result, warn_alloc()
-significantly increased possibility of preventing oom_kill_process()
-from making forward progress.
-
----------- Pseudo code start ----------
-Before warn_alloc() was introduced:
-
- retry:
- if (mutex_trylock(&oom_lock)) {
- while (atomic_read(&printk_pending_logs) > 0) {
- atomic_dec(&printk_pending_logs);
- print_one_log();
- }
- // Send SIGKILL here.
- mutex_unlock(&oom_lock)
- }
- goto retry;
-
-After warn_alloc() was introduced:
-
- retry:
- if (mutex_trylock(&oom_lock)) {
- while (atomic_read(&printk_pending_logs) > 0) {
- atomic_dec(&printk_pending_logs);
- print_one_log();
- }
- // Send SIGKILL here.
- mutex_unlock(&oom_lock)
- } else if (waited_for_10seconds()) {
- atomic_inc(&printk_pending_logs);
- }
- goto retry;
----------- Pseudo code end ----------
-
-Although waited_for_10seconds() becomes true once per 10 seconds,
-unbounded number of threads can call waited_for_10seconds() at the same
-time. Also, since threads doing waited_for_10seconds() keep doing
-almost busy loop, the thread doing print_one_log() can use little CPU
-resource. Therefore, this situation can be simplified like
-
----------- Pseudo code start ----------
- retry:
- if (mutex_trylock(&oom_lock)) {
- while (atomic_read(&printk_pending_logs) > 0) {
- atomic_dec(&printk_pending_logs);
- print_one_log();
- }
- // Send SIGKILL here.
- mutex_unlock(&oom_lock)
- } else {
- atomic_inc(&printk_pending_logs);
- }
- goto retry;
----------- Pseudo code end ----------
-
-when printk() is called faster than print_one_log() can process a log.
-
-One of possible mitigation would be to introduce a new lock in order to
-make sure that no other series of printk() (either oom_kill_process() or
-warn_alloc()) can append to printk() buffer when one series of printk()
-(either oom_kill_process() or warn_alloc()) is already in progress.
-
-Such serialization will also help obtaining kernel messages in readable
-form.
-
----------- Pseudo code start ----------
- retry:
- if (mutex_trylock(&oom_lock)) {
- mutex_lock(&oom_printk_lock);
- while (atomic_read(&printk_pending_logs) > 0) {
- atomic_dec(&printk_pending_logs);
- print_one_log();
- }
- // Send SIGKILL here.
- mutex_unlock(&oom_printk_lock);
- mutex_unlock(&oom_lock)
- } else {
- if (mutex_trylock(&oom_printk_lock)) {
- atomic_inc(&printk_pending_logs);
- mutex_unlock(&oom_printk_lock);
- }
- }
- goto retry;
----------- Pseudo code end ----------
-
-But this commit does not go that direction, for we don't want to
-introduce a new lock dependency, and we unlikely be able to obtain
-useful information even if we serialized oom_kill_process() and
-warn_alloc().
-
-Synchronous approach is prone to unexpected results (e.g. too late [1],
-too frequent [2], overlooked [3]). As far as I know, warn_alloc() never
-helped with providing information other than "something is going wrong".
-I want to consider asynchronous approach which can obtain information
-during stalls with possibly relevant threads (e.g. the owner of
-oom_lock and kswapd-like threads) and serve as a trigger for actions
-(e.g. turn on/off tracepoints, ask libvirt daemon to take a memory dump
-of stalling KVM guest for diagnostic purpose).
-
-This commit temporarily loses ability to report e.g. OOM lockup due to
-unable to invoke the OOM killer due to !__GFP_FS allocation request.
-But asynchronous approach will be able to detect such situation and emit
-warning. Thus, let's remove warn_alloc().
-
-[1] https://bugzilla.kernel.org/show_bug.cgi?id=192981
-[2] http://lkml.kernel.org/r/CAM_iQpWuPVGc2ky8M-9yukECtS+zKjiDasNymX7rMcBjBFyM_A@mail.gmail.com
-[3] commit db73ee0d46379922 ("mm, vmscan: do not loop on too_many_isolated for ever"))
-
-Link: http://lkml.kernel.org/r/1509017339-4802-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp
-Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
-Reported-by: Cong Wang <xiyou.wangcong@gmail.com>
-Reported-by: yuwang.yuwang <yuwang.yuwang@alibaba-inc.com>
-Reported-by: Johannes Weiner <hannes@cmpxchg.org>
-Acked-by: Michal Hocko <mhocko@suse.com>
-Acked-by: Johannes Weiner <hannes@cmpxchg.org>
-Cc: Vlastimil Babka <vbabka@suse.cz>
-Cc: Mel Gorman <mgorman@suse.de>
-Cc: Dave Hansen <dave.hansen@intel.com>
-Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
-Cc: Petr Mladek <pmladek@suse.com>
-Cc: Steven Rostedt <rostedt@goodmis.org>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
----
- mm/page_alloc.c | 10 ----------
- 1 file changed, 10 deletions(-)
-
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 04bf1ad50144..bd1a686e40fe 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -3903,8 +3903,6 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
- enum compact_result compact_result;
- int compaction_retries;
- int no_progress_loops;
-- unsigned long alloc_start = jiffies;
-- unsigned int stall_timeout = 10 * HZ;
- unsigned int cpuset_mems_cookie;
- int reserve_flags;
-
-@@ -4036,14 +4034,6 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
- if (!can_direct_reclaim)
- goto nopage;
-
-- /* Make sure we know about allocations which stall for too long */
-- if (time_after(jiffies, alloc_start + stall_timeout)) {
-- warn_alloc(gfp_mask & ~__GFP_NOWARN, ac->nodemask,
-- "page allocation stalls for %ums, order:%u",
-- jiffies_to_msecs(jiffies-alloc_start), order);
-- stall_timeout += 10 * HZ;
-- }
--
- /* Avoid recursion of direct reclaim */
- if (current->flags & PF_MEMALLOC)
- goto nopage;
---
-2.14.3
-
diff --git a/0001-net-phy-mdio-bcm-unimac-fix-potential-NULL-dereferen.patch b/0001-net-phy-mdio-bcm-unimac-fix-potential-NULL-dereferen.patch
deleted file mode 100644
index 061ef5819..000000000
--- a/0001-net-phy-mdio-bcm-unimac-fix-potential-NULL-dereferen.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 297a6961ffb8ff4dc66c9fbf53b924bd1dda05d5 Mon Sep 17 00:00:00 2001
-From: Wei Yongjun <weiyongjun1@huawei.com>
-Date: Thu, 11 Jan 2018 11:21:51 +0000
-Subject: [PATCH] net: phy: mdio-bcm-unimac: fix potential NULL dereference in
- unimac_mdio_probe()
-
-platform_get_resource() may fail and return NULL, so we should
-better check it's return value to avoid a NULL pointer dereference
-a bit later in the code.
-
-This is detected by Coccinelle semantic patch.
-
-@@
-expression pdev, res, n, t, e, e1, e2;
-@@
-
-res = platform_get_resource(pdev, t, n);
-+ if (!res)
-+ return -EINVAL;
-... when != res == NULL
-e = devm_ioremap(e1, res->start, e2);
-
-Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/phy/mdio-bcm-unimac.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/phy/mdio-bcm-unimac.c b/drivers/net/phy/mdio-bcm-unimac.c
-index 08e0647b85e2..8d370667fa1b 100644
---- a/drivers/net/phy/mdio-bcm-unimac.c
-+++ b/drivers/net/phy/mdio-bcm-unimac.c
-@@ -205,6 +205,8 @@ static int unimac_mdio_probe(struct platform_device *pdev)
- return -ENOMEM;
-
- r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+ if (!r)
-+ return -EINVAL;
-
- /* Just ioremap, as this MDIO block is usually integrated into an
- * Ethernet MAC controller register range
---
-2.14.3
-
diff --git a/0001-platform-x86-dell-laptop-Filter-out-spurious-keyboar.patch b/0001-platform-x86-dell-laptop-Filter-out-spurious-keyboar.patch
deleted file mode 100644
index 926487b3d..000000000
--- a/0001-platform-x86-dell-laptop-Filter-out-spurious-keyboar.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 714fe15daa07e7691c9731c88de71aa57f84b6c2 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 3 Jan 2018 11:13:54 +0100
-Subject: [PATCH] platform/x86: dell-laptop: Filter out spurious keyboard
- backlight change events
-
-On some Dell XPS models WMI events of type 0x0000 reporting a keycode of
-0xe00c get reported when the brightness of the LCD panel changes.
-
-This leads to us reporting false-positive kbd_led change events to
-userspace which in turn leads to the kbd backlight OSD showing when it
-should not.
-
-We already read the current keyboard backlight brightness value when
-reporting events because the led_classdev_notify_brightness_hw_changed
-API requires this. Compare this value to the last known value and filter
-out duplicate events, fixing this.
-
-Note the fixed issue is esp. a problem on XPS models with an ambient light
-sensor and automatic brightness adjustments turned on, this causes the kbd
-backlight OSD to show all the time there.
-
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1514969
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/platform/x86/dell-laptop.c | 24 ++++++++++++++++++++++--
- 1 file changed, 22 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
-index cd4725e7e0b5..2ef3297a9efc 100644
---- a/drivers/platform/x86/dell-laptop.c
-+++ b/drivers/platform/x86/dell-laptop.c
-@@ -1133,6 +1133,7 @@ static u8 kbd_previous_mode_bit;
-
- static bool kbd_led_present;
- static DEFINE_MUTEX(kbd_led_mutex);
-+static enum led_brightness kbd_led_level;
-
- /*
- * NOTE: there are three ways to set the keyboard backlight level.
-@@ -1947,6 +1948,7 @@ static enum led_brightness kbd_led_level_get(struct led_classdev *led_cdev)
- static int kbd_led_level_set(struct led_classdev *led_cdev,
- enum led_brightness value)
- {
-+ enum led_brightness new_value = value;
- struct kbd_state state;
- struct kbd_state new_state;
- u16 num;
-@@ -1976,6 +1978,9 @@ static int kbd_led_level_set(struct led_classdev *led_cdev,
- }
-
- out:
-+ if (ret == 0)
-+ kbd_led_level = new_value;
-+
- mutex_unlock(&kbd_led_mutex);
- return ret;
- }
-@@ -2003,6 +2008,9 @@ static int __init kbd_led_init(struct device *dev)
- if (kbd_led.max_brightness)
- kbd_led.max_brightness--;
- }
-+
-+ kbd_led_level = kbd_led_level_get(NULL);
-+
- ret = led_classdev_register(dev, &kbd_led);
- if (ret)
- kbd_led_present = false;
-@@ -2027,13 +2035,25 @@ static void kbd_led_exit(void)
- static int dell_laptop_notifier_call(struct notifier_block *nb,
- unsigned long action, void *data)
- {
-+ bool changed = false;
-+ enum led_brightness new_kbd_led_level;
-+
- switch (action) {
- case DELL_LAPTOP_KBD_BACKLIGHT_BRIGHTNESS_CHANGED:
- if (!kbd_led_present)
- break;
-
-- led_classdev_notify_brightness_hw_changed(&kbd_led,
-- kbd_led_level_get(&kbd_led));
-+ mutex_lock(&kbd_led_mutex);
-+ new_kbd_led_level = kbd_led_level_get(&kbd_led);
-+ if (kbd_led_level != new_kbd_led_level) {
-+ kbd_led_level = new_kbd_led_level;
-+ changed = true;
-+ }
-+ mutex_unlock(&kbd_led_mutex);
-+
-+ if (changed)
-+ led_classdev_notify_brightness_hw_changed(&kbd_led,
-+ kbd_led_level);
- break;
- }
-
---
-2.14.3
-
diff --git a/0001-scsi-libsas-defer-ata-device-eh-commands-to-libata.patch b/0001-scsi-libsas-defer-ata-device-eh-commands-to-libata.patch
deleted file mode 100644
index 2e65d9b99..000000000
--- a/0001-scsi-libsas-defer-ata-device-eh-commands-to-libata.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 318aaf34f1179b39fa9c30fa0f3288b645beee39 Mon Sep 17 00:00:00 2001
-From: Jason Yan <yanaijie@huawei.com>
-Date: Thu, 8 Mar 2018 10:34:53 +0800
-Subject: [PATCH] scsi: libsas: defer ata device eh commands to libata
-
-When ata device doing EH, some commands still attached with tasks are
-not passed to libata when abort failed or recover failed, so libata did
-not handle these commands. After these commands done, sas task is freed,
-but ata qc is not freed. This will cause ata qc leak and trigger a
-warning like below:
-
-WARNING: CPU: 0 PID: 28512 at drivers/ata/libata-eh.c:4037
-ata_eh_finish+0xb4/0xcc
-CPU: 0 PID: 28512 Comm: kworker/u32:2 Tainted: G W OE 4.14.0#1
-......
-Call trace:
-[<ffff0000088b7bd0>] ata_eh_finish+0xb4/0xcc
-[<ffff0000088b8420>] ata_do_eh+0xc4/0xd8
-[<ffff0000088b8478>] ata_std_error_handler+0x44/0x8c
-[<ffff0000088b8068>] ata_scsi_port_error_handler+0x480/0x694
-[<ffff000008875fc4>] async_sas_ata_eh+0x4c/0x80
-[<ffff0000080f6be8>] async_run_entry_fn+0x4c/0x170
-[<ffff0000080ebd70>] process_one_work+0x144/0x390
-[<ffff0000080ec100>] worker_thread+0x144/0x418
-[<ffff0000080f2c98>] kthread+0x10c/0x138
-[<ffff0000080855dc>] ret_from_fork+0x10/0x18
-
-If ata qc leaked too many, ata tag allocation will fail and io blocked
-for ever.
-
-As suggested by Dan Williams, defer ata device commands to libata and
-merge sas_eh_finish_cmd() with sas_eh_defer_cmd(). libata will handle
-ata qcs correctly after this.
-
-Signed-off-by: Jason Yan <yanaijie@huawei.com>
-CC: Xiaofei Tan <tanxiaofei@huawei.com>
-CC: John Garry <john.garry@huawei.com>
-CC: Dan Williams <dan.j.williams@intel.com>
-Reviewed-by: Dan Williams <dan.j.williams@intel.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
----
- drivers/scsi/libsas/sas_scsi_host.c | 33 +++++++++++++--------------------
- 1 file changed, 13 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
-index 626727207889..a372af68d9a9 100644
---- a/drivers/scsi/libsas/sas_scsi_host.c
-+++ b/drivers/scsi/libsas/sas_scsi_host.c
-@@ -223,6 +223,7 @@ int sas_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd)
- static void sas_eh_finish_cmd(struct scsi_cmnd *cmd)
- {
- struct sas_ha_struct *sas_ha = SHOST_TO_SAS_HA(cmd->device->host);
-+ struct domain_device *dev = cmd_to_domain_dev(cmd);
- struct sas_task *task = TO_SAS_TASK(cmd);
-
- /* At this point, we only get called following an actual abort
-@@ -231,6 +232,14 @@ static void sas_eh_finish_cmd(struct scsi_cmnd *cmd)
- */
- sas_end_task(cmd, task);
-
-+ if (dev_is_sata(dev)) {
-+ /* defer commands to libata so that libata EH can
-+ * handle ata qcs correctly
-+ */
-+ list_move_tail(&cmd->eh_entry, &sas_ha->eh_ata_q);
-+ return;
-+ }
-+
- /* now finish the command and move it on to the error
- * handler done list, this also takes it off the
- * error handler pending list.
-@@ -238,22 +247,6 @@ static void sas_eh_finish_cmd(struct scsi_cmnd *cmd)
- scsi_eh_finish_cmd(cmd, &sas_ha->eh_done_q);
- }
-
--static void sas_eh_defer_cmd(struct scsi_cmnd *cmd)
--{
-- struct domain_device *dev = cmd_to_domain_dev(cmd);
-- struct sas_ha_struct *ha = dev->port->ha;
-- struct sas_task *task = TO_SAS_TASK(cmd);
--
-- if (!dev_is_sata(dev)) {
-- sas_eh_finish_cmd(cmd);
-- return;
-- }
--
-- /* report the timeout to libata */
-- sas_end_task(cmd, task);
-- list_move_tail(&cmd->eh_entry, &ha->eh_ata_q);
--}
--
- static void sas_scsi_clear_queue_lu(struct list_head *error_q, struct scsi_cmnd *my_cmd)
- {
- struct scsi_cmnd *cmd, *n;
-@@ -261,7 +254,7 @@ static void sas_scsi_clear_queue_lu(struct list_head *error_q, struct scsi_cmnd
- list_for_each_entry_safe(cmd, n, error_q, eh_entry) {
- if (cmd->device->sdev_target == my_cmd->device->sdev_target &&
- cmd->device->lun == my_cmd->device->lun)
-- sas_eh_defer_cmd(cmd);
-+ sas_eh_finish_cmd(cmd);
- }
- }
-
-@@ -618,12 +611,12 @@ static void sas_eh_handle_sas_errors(struct Scsi_Host *shost, struct list_head *
- case TASK_IS_DONE:
- SAS_DPRINTK("%s: task 0x%p is done\n", __func__,
- task);
-- sas_eh_defer_cmd(cmd);
-+ sas_eh_finish_cmd(cmd);
- continue;
- case TASK_IS_ABORTED:
- SAS_DPRINTK("%s: task 0x%p is aborted\n",
- __func__, task);
-- sas_eh_defer_cmd(cmd);
-+ sas_eh_finish_cmd(cmd);
- continue;
- case TASK_IS_AT_LU:
- SAS_DPRINTK("task 0x%p is at LU: lu recover\n", task);
-@@ -634,7 +627,7 @@ static void sas_eh_handle_sas_errors(struct Scsi_Host *shost, struct list_head *
- "recovered\n",
- SAS_ADDR(task->dev),
- cmd->device->lun);
-- sas_eh_defer_cmd(cmd);
-+ sas_eh_finish_cmd(cmd);
- sas_scsi_clear_queue_lu(work_q, cmd);
- goto Again;
- }
---
-2.14.3
-
diff --git a/0001-scsi-libsas-direct-call-probe-and-destruct.patch b/0001-scsi-libsas-direct-call-probe-and-destruct.patch
deleted file mode 100644
index af4ecdb2c..000000000
--- a/0001-scsi-libsas-direct-call-probe-and-destruct.patch
+++ /dev/null
@@ -1,299 +0,0 @@
-From f66d69bd8357b59268f2adfd1c0c53b6d1dab453 Mon Sep 17 00:00:00 2001
-From: Jason Yan <yanaijie@huawei.com>
-Date: Fri, 8 Dec 2017 17:42:09 +0800
-Subject: [PATCH] scsi: libsas: direct call probe and destruct
-
-In commit 87c8331fcf72 ("[SCSI] libsas: prevent domain rediscovery
-competing with ata error handling") introduced disco mutex to prevent
-rediscovery competing with ata error handling and put the whole
-revalidation in the mutex. But the rphy add/remove needs to wait for the
-error handling which also grabs the disco mutex. This may leads to dead
-lock.So the probe and destruct event were introduce to do the rphy
-add/remove asynchronously and out of the lock.
-
-The asynchronously processed workers makes the whole discovery process
-not atomic, the other events may interrupt the process. For example,
-if a loss of signal event inserted before the probe event, the
-sas_deform_port() is called and the port will be deleted.
-
-And sas_port_delete() may run before the destruct event, but the
-port-x:x is the top parent of end device or expander. This leads to
-a kernel WARNING such as:
-
-[ 82.042979] sysfs group 'power' not found for kobject 'phy-1:0:22'
-[ 82.042983] ------------[ cut here ]------------
-[ 82.042986] WARNING: CPU: 54 PID: 1714 at fs/sysfs/group.c:237
-sysfs_remove_group+0x94/0xa0
-[ 82.043059] Call trace:
-[ 82.043082] [<ffff0000082e7624>] sysfs_remove_group+0x94/0xa0
-[ 82.043085] [<ffff00000864e320>] dpm_sysfs_remove+0x60/0x70
-[ 82.043086] [<ffff00000863ee10>] device_del+0x138/0x308
-[ 82.043089] [<ffff00000869a2d0>] sas_phy_delete+0x38/0x60
-[ 82.043091] [<ffff00000869a86c>] do_sas_phy_delete+0x6c/0x80
-[ 82.043093] [<ffff00000863dc20>] device_for_each_child+0x58/0xa0
-[ 82.043095] [<ffff000008696f80>] sas_remove_children+0x40/0x50
-[ 82.043100] [<ffff00000869d1bc>] sas_destruct_devices+0x64/0xa0
-[ 82.043102] [<ffff0000080e93bc>] process_one_work+0x1fc/0x4b0
-[ 82.043104] [<ffff0000080e96c0>] worker_thread+0x50/0x490
-[ 82.043105] [<ffff0000080f0364>] kthread+0xfc/0x128
-[ 82.043107] [<ffff0000080836c0>] ret_from_fork+0x10/0x50
-
-Make probe and destruct a direct call in the disco and revalidate function,
-but put them outside the lock. The whole discovery or revalidate won't
-be interrupted by other events. And the DISCE_PROBE and DISCE_DESTRUCT
-event are deleted as a result of the direct call.
-
-Introduce a new list to destruct the sas_port and put the port delete after
-the destruct. This makes sure the right order of destroying the sysfs
-kobject and fix the warning above.
-
-In sas_ex_revalidate_domain() have a loop to find all broadcasted
-device, and sometimes we have a chance to find the same expander twice.
-Because the sas_port will be deleted at the end of the whole revalidate
-process, sas_port with the same name cannot be added before this.
-Otherwise the sysfs will complain of creating duplicate filename. Since
-the LLDD will send broadcast for every device change, we can only
-process one expander's revalidation.
-
-[mkp: kbuild test robot warning]
-
-Signed-off-by: Jason Yan <yanaijie@huawei.com>
-CC: John Garry <john.garry@huawei.com>
-CC: Johannes Thumshirn <jthumshirn@suse.de>
-CC: Ewan Milne <emilne@redhat.com>
-CC: Christoph Hellwig <hch@lst.de>
-CC: Tomas Henzl <thenzl@redhat.com>
-CC: Dan Williams <dan.j.williams@intel.com>
-Reviewed-by: Hannes Reinecke <hare@suse.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
----
- drivers/scsi/libsas/sas_ata.c | 1 -
- drivers/scsi/libsas/sas_discover.c | 32 ++++++++++++++++++--------------
- drivers/scsi/libsas/sas_expander.c | 8 +++-----
- drivers/scsi/libsas/sas_internal.h | 1 +
- drivers/scsi/libsas/sas_port.c | 3 +++
- include/scsi/libsas.h | 3 +--
- include/scsi/scsi_transport_sas.h | 1 +
- 7 files changed, 27 insertions(+), 22 deletions(-)
-
-diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
-index 70be4425ae0b..2b3637b40dde 100644
---- a/drivers/scsi/libsas/sas_ata.c
-+++ b/drivers/scsi/libsas/sas_ata.c
-@@ -730,7 +730,6 @@ int sas_discover_sata(struct domain_device *dev)
- if (res)
- return res;
-
-- sas_discover_event(dev->port, DISCE_PROBE);
- return 0;
- }
-
-diff --git a/drivers/scsi/libsas/sas_discover.c b/drivers/scsi/libsas/sas_discover.c
-index 60de66252fa2..487d7345f515 100644
---- a/drivers/scsi/libsas/sas_discover.c
-+++ b/drivers/scsi/libsas/sas_discover.c
-@@ -212,13 +212,9 @@ void sas_notify_lldd_dev_gone(struct domain_device *dev)
- }
- }
-
--static void sas_probe_devices(struct work_struct *work)
-+static void sas_probe_devices(struct asd_sas_port *port)
- {
- struct domain_device *dev, *n;
-- struct sas_discovery_event *ev = to_sas_discovery_event(work);
-- struct asd_sas_port *port = ev->port;
--
-- clear_bit(DISCE_PROBE, &port->disc.pending);
-
- /* devices must be domain members before link recovery and probe */
- list_for_each_entry(dev, &port->disco_list, disco_list_node) {
-@@ -294,7 +290,6 @@ int sas_discover_end_dev(struct domain_device *dev)
- res = sas_notify_lldd_dev_found(dev);
- if (res)
- return res;
-- sas_discover_event(dev->port, DISCE_PROBE);
-
- return 0;
- }
-@@ -353,13 +348,9 @@ static void sas_unregister_common_dev(struct asd_sas_port *port, struct domain_d
- sas_put_device(dev);
- }
-
--static void sas_destruct_devices(struct work_struct *work)
-+void sas_destruct_devices(struct asd_sas_port *port)
- {
- struct domain_device *dev, *n;
-- struct sas_discovery_event *ev = to_sas_discovery_event(work);
-- struct asd_sas_port *port = ev->port;
--
-- clear_bit(DISCE_DESTRUCT, &port->disc.pending);
-
- list_for_each_entry_safe(dev, n, &port->destroy_list, disco_list_node) {
- list_del_init(&dev->disco_list_node);
-@@ -370,6 +361,16 @@ static void sas_destruct_devices(struct work_struct *work)
- }
- }
-
-+static void sas_destruct_ports(struct asd_sas_port *port)
-+{
-+ struct sas_port *sas_port, *p;
-+
-+ list_for_each_entry_safe(sas_port, p, &port->sas_port_del_list, del_list) {
-+ list_del_init(&sas_port->del_list);
-+ sas_port_delete(sas_port);
-+ }
-+}
-+
- void sas_unregister_dev(struct asd_sas_port *port, struct domain_device *dev)
- {
- if (!test_bit(SAS_DEV_DESTROY, &dev->state) &&
-@@ -384,7 +385,6 @@ void sas_unregister_dev(struct asd_sas_port *port, struct domain_device *dev)
- if (!test_and_set_bit(SAS_DEV_DESTROY, &dev->state)) {
- sas_rphy_unlink(dev->rphy);
- list_move_tail(&dev->disco_list_node, &port->destroy_list);
-- sas_discover_event(dev->port, DISCE_DESTRUCT);
- }
- }
-
-@@ -490,6 +490,8 @@ static void sas_discover_domain(struct work_struct *work)
- port->port_dev = NULL;
- }
-
-+ sas_probe_devices(port);
-+
- SAS_DPRINTK("DONE DISCOVERY on port %d, pid:%d, result:%d\n", port->id,
- task_pid_nr(current), error);
- }
-@@ -523,6 +525,10 @@ static void sas_revalidate_domain(struct work_struct *work)
- port->id, task_pid_nr(current), res);
- out:
- mutex_unlock(&ha->disco_mutex);
-+
-+ sas_destruct_devices(port);
-+ sas_destruct_ports(port);
-+ sas_probe_devices(port);
- }
-
- /* ---------- Events ---------- */
-@@ -578,10 +584,8 @@ void sas_init_disc(struct sas_discovery *disc, struct asd_sas_port *port)
- static const work_func_t sas_event_fns[DISC_NUM_EVENTS] = {
- [DISCE_DISCOVER_DOMAIN] = sas_discover_domain,
- [DISCE_REVALIDATE_DOMAIN] = sas_revalidate_domain,
-- [DISCE_PROBE] = sas_probe_devices,
- [DISCE_SUSPEND] = sas_suspend_devices,
- [DISCE_RESUME] = sas_resume_devices,
-- [DISCE_DESTRUCT] = sas_destruct_devices,
- };
-
- disc->pending = 0;
-diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
-index 39e42744aa33..6a4f8198b78e 100644
---- a/drivers/scsi/libsas/sas_expander.c
-+++ b/drivers/scsi/libsas/sas_expander.c
-@@ -1916,7 +1916,8 @@ static void sas_unregister_devs_sas_addr(struct domain_device *parent,
- sas_port_delete_phy(phy->port, phy->phy);
- sas_device_set_phy(found, phy->port);
- if (phy->port->num_phys == 0)
-- sas_port_delete(phy->port);
-+ list_add_tail(&phy->port->del_list,
-+ &parent->port->sas_port_del_list);
- phy->port = NULL;
- }
- }
-@@ -2124,7 +2125,7 @@ int sas_ex_revalidate_domain(struct domain_device *port_dev)
- struct domain_device *dev = NULL;
-
- res = sas_find_bcast_dev(port_dev, &dev);
-- while (res == 0 && dev) {
-+ if (res == 0 && dev) {
- struct expander_device *ex = &dev->ex_dev;
- int i = 0, phy_id;
-
-@@ -2136,9 +2137,6 @@ int sas_ex_revalidate_domain(struct domain_device *port_dev)
- res = sas_rediscover(dev, phy_id);
- i = phy_id + 1;
- } while (i < ex->num_phys);
--
-- dev = NULL;
-- res = sas_find_bcast_dev(port_dev, &dev);
- }
- return res;
- }
-diff --git a/drivers/scsi/libsas/sas_internal.h b/drivers/scsi/libsas/sas_internal.h
-index d8826a747690..50e12d662ffe 100644
---- a/drivers/scsi/libsas/sas_internal.h
-+++ b/drivers/scsi/libsas/sas_internal.h
-@@ -101,6 +101,7 @@ int sas_try_ata_reset(struct asd_sas_phy *phy);
- void sas_hae_reset(struct work_struct *work);
-
- void sas_free_device(struct kref *kref);
-+void sas_destruct_devices(struct asd_sas_port *port);
-
- extern const work_func_t sas_phy_event_fns[PHY_NUM_EVENTS];
- extern const work_func_t sas_port_event_fns[PORT_NUM_EVENTS];
-diff --git a/drivers/scsi/libsas/sas_port.c b/drivers/scsi/libsas/sas_port.c
-index 93266283f51f..170f5043e1df 100644
---- a/drivers/scsi/libsas/sas_port.c
-+++ b/drivers/scsi/libsas/sas_port.c
-@@ -66,6 +66,7 @@ static void sas_resume_port(struct asd_sas_phy *phy)
- rc = sas_notify_lldd_dev_found(dev);
- if (rc) {
- sas_unregister_dev(port, dev);
-+ sas_destruct_devices(port);
- continue;
- }
-
-@@ -219,6 +220,7 @@ void sas_deform_port(struct asd_sas_phy *phy, int gone)
-
- if (port->num_phys == 1) {
- sas_unregister_domain_devices(port, gone);
-+ sas_destruct_devices(port);
- sas_port_delete(port->port);
- port->port = NULL;
- } else {
-@@ -313,6 +315,7 @@ static void sas_init_port(struct asd_sas_port *port,
- INIT_LIST_HEAD(&port->dev_list);
- INIT_LIST_HEAD(&port->disco_list);
- INIT_LIST_HEAD(&port->destroy_list);
-+ INIT_LIST_HEAD(&port->sas_port_del_list);
- spin_lock_init(&port->phy_list_lock);
- INIT_LIST_HEAD(&port->phy_list);
- port->ha = sas_ha;
-diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
-index 61c84d536a7e..38fa2f677cf2 100644
---- a/include/scsi/libsas.h
-+++ b/include/scsi/libsas.h
-@@ -81,10 +81,8 @@ enum phy_event {
- enum discover_event {
- DISCE_DISCOVER_DOMAIN = 0U,
- DISCE_REVALIDATE_DOMAIN,
-- DISCE_PROBE,
- DISCE_SUSPEND,
- DISCE_RESUME,
-- DISCE_DESTRUCT,
- DISC_NUM_EVENTS,
- };
-
-@@ -261,6 +259,7 @@ struct asd_sas_port {
- struct list_head dev_list;
- struct list_head disco_list;
- struct list_head destroy_list;
-+ struct list_head sas_port_del_list;
- enum sas_linkrate linkrate;
-
- struct sas_work work;
-diff --git a/include/scsi/scsi_transport_sas.h b/include/scsi/scsi_transport_sas.h
-index 62895b405933..05ec927a3c72 100644
---- a/include/scsi/scsi_transport_sas.h
-+++ b/include/scsi/scsi_transport_sas.h
-@@ -156,6 +156,7 @@ struct sas_port {
-
- struct mutex phy_list_mutex;
- struct list_head phy_list;
-+ struct list_head del_list; /* libsas only */
- };
-
- #define dev_to_sas_port(d) \
---
-2.14.3
-
diff --git a/0001-usb-usbtest-fix-NULL-pointer-dereference.patch b/0001-usb-usbtest-fix-NULL-pointer-dereference.patch
deleted file mode 100644
index acc03ec7d..000000000
--- a/0001-usb-usbtest-fix-NULL-pointer-dereference.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 7c80f9e4a588f1925b07134bb2e3689335f6c6d8 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern@rowland.harvard.edu>
-Date: Fri, 29 Sep 2017 10:54:24 -0400
-Subject: [PATCH] usb: usbtest: fix NULL pointer dereference
-
-If the usbtest driver encounters a device with an IN bulk endpoint but
-no OUT bulk endpoint, it will try to dereference a NULL pointer
-(out->desc.bEndpointAddress). The problem can be solved by adding a
-missing test.
-
-Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
-Reported-by: Andrey Konovalov <andreyknvl@google.com>
-Tested-by: Andrey Konovalov <andreyknvl@google.com>
-Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
----
- drivers/usb/misc/usbtest.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c
-index 113e38bfe0ef..b3fc602b2e24 100644
---- a/drivers/usb/misc/usbtest.c
-+++ b/drivers/usb/misc/usbtest.c
-@@ -202,12 +202,13 @@ get_endpoints(struct usbtest_dev *dev, struct usb_interface *intf)
- return tmp;
- }
-
-- if (in) {
-+ if (in)
- dev->in_pipe = usb_rcvbulkpipe(udev,
- in->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK);
-+ if (out)
- dev->out_pipe = usb_sndbulkpipe(udev,
- out->desc.bEndpointAddress & USB_ENDPOINT_NUMBER_MASK);
-- }
-+
- if (iso_in) {
- dev->iso_in = &iso_in->desc;
- dev->in_iso_pipe = usb_rcvisocpipe(udev,
---
-2.13.6
-
diff --git a/0003-HID-multitouch-Combine-all-left-button-events-in-a-f.patch b/0003-HID-multitouch-Combine-all-left-button-events-in-a-f.patch
deleted file mode 100644
index 7fda714cb..000000000
--- a/0003-HID-multitouch-Combine-all-left-button-events-in-a-f.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 1719566899e5a69b4ba767beb07dab7ceb9ae5a8 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 22 Nov 2017 12:57:10 +0100
-Subject: [PATCH v2 3/3] HID: multitouch: Combine all left-button events in a
- frame
-
-According to the Win8 Precision Touchpad spec, inside the HID_UP_BUTTON
-usage-page usage 1 is for a clickpad getting clicked, 2 for an external
-left button and 3 for an external right button. Since Linux uses
-BTN_LEFT for a clickpad being clicked we end up mapping both usage 1
-and 2 to BTN_LEFT and if a single report contains both then we ended
-up always reporting the value of both in a single SYN, e.g. :
-BTN_LEFT 1, BTN_LEFT 0, SYN. This happens for example with Hantick
-HTT5288 i2c mt touchpads.
-
-This commit fixes this by not immediately reporting left button when we
-parse the report, but instead storing or-ing together the values and
-reporting the result from mt_sync_frame() when we've a complete frame.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Signed-off-by: Jiri Kosina <jkosina@suse.cz>
----
- drivers/hid/hid-multitouch.c | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index 760c4a042e6a..76088f2cf598 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -122,6 +122,7 @@ struct mt_device {
- int scantime_index; /* scantime field index in the report */
- int scantime_val_index; /* scantime value index in the field */
- int prev_scantime; /* scantime reported in the previous packet */
-+ int left_button_state; /* left button state */
- unsigned last_slot_field; /* the last field of a slot */
- unsigned mt_report_id; /* the report ID of the multitouch device */
- unsigned long initial_quirks; /* initial quirks state */
-@@ -743,10 +744,16 @@ static void mt_complete_slot(struct mt_device *td, struct input_dev *input)
- */
- static void mt_sync_frame(struct mt_device *td, struct input_dev *input)
- {
-+ __s32 cls = td->mtclass.name;
-+
-+ if (cls == MT_CLS_WIN_8 || cls == MT_CLS_WIN_8_DUAL)
-+ input_event(input, EV_KEY, BTN_LEFT, td->left_button_state);
-+
- input_mt_sync_frame(input);
- input_event(input, EV_MSC, MSC_TIMESTAMP, td->timestamp);
- input_sync(input);
- td->num_received = 0;
-+ td->left_button_state = 0;
- if (test_bit(MT_IO_FLAGS_ACTIVE_SLOTS, &td->mt_io_flags))
- set_bit(MT_IO_FLAGS_PENDING_SLOTS, &td->mt_io_flags);
- else
-@@ -857,6 +864,19 @@ static void mt_process_mt_event(struct hid_device *hid, struct hid_field *field,
- !first_packet)
- return;
-
-+ /*
-+ * For Win8 PTP touchpads we map both the clickpad click
-+ * and any "external" left buttons to BTN_LEFT if a
-+ * device claims to have both we need to report 1 for
-+ * BTN_LEFT if either is pressed, so we or all values
-+ * together and report the result in mt_sync_frame().
-+ */
-+ if ((cls == MT_CLS_WIN_8 || cls == MT_CLS_WIN_8_DUAL) &&
-+ usage->type == EV_KEY && usage->code == BTN_LEFT) {
-+ td->left_button_state |= value;
-+ return;
-+ }
-+
- if (usage->type)
- input_event(input, usage->type, usage->code,
- value);
---
-2.14.3
-
diff --git a/0003-ahci-Allow-setting-a-default-LPM-policy-for-mobile-c.patch b/0003-ahci-Allow-setting-a-default-LPM-policy-for-mobile-c.patch
deleted file mode 100644
index a888a242c..000000000
--- a/0003-ahci-Allow-setting-a-default-LPM-policy-for-mobile-c.patch
+++ /dev/null
@@ -1,270 +0,0 @@
-From 65cca10ce92fb738b183152f1c1096b82e47923d Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Mon, 27 Nov 2017 15:32:01 +0100
-Subject: [PATCH] ahci: Allow setting a default LPM policy for mobile chipsets
-
-On many laptops setting a different LPM policy then unknown /
-max_performance can lead to power-savings of 1.0 - 1.5 Watts (when idle).
-
-Modern ultrabooks idle around 6W (at 50% screen brightness), 1.0 - 1.5W
-is a significant chunk of this.
-
-There are some performance / latency costs to enabling LPM by default,
-so it is desirable to make it possible to set a different LPM policy
-for mobile / laptop variants of chipsets / "South Bridges" vs their
-desktop / server counterparts. Also enabling LPM by default is not
-entirely without risk of regressions. At least min_power is known to
-cause issues with some disks, including some reports of data corruption.
-
-This commits adds a new ahci.mobile_lpm_policy kernel cmdline option,
-which defaults to a new SATA_MOBILE_LPM_POLICY Kconfig option so that
-Linux distributions can choose to set a LPM policy for mobile chipsets
-by default.
-
-The reason to have both a kernel cmdline option and a Kconfig default
-value for it, is to allow easy overriding of the default to allow
-trouble-shooting without needing to rebuild the kernel.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/ata/Kconfig | 19 +++++++++++
- drivers/ata/ahci.c | 97 +++++++++++++++++++++++++++++++----------------------
- drivers/ata/ahci.h | 3 ++
- 3 files changed, 78 insertions(+), 41 deletions(-)
-
-diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
-index cb5339166563..b3fad5663aeb 100644
---- a/drivers/ata/Kconfig
-+++ b/drivers/ata/Kconfig
-@@ -92,6 +92,25 @@ config SATA_AHCI
-
- If unsure, say N.
-
-+config SATA_MOBILE_LPM_POLICY
-+ int "Default SATA Link Power Management policy for mobile chipsets"
-+ range 0 4
-+ default 0
-+ depends on SATA_AHCI
-+ help
-+ Select the Default SATA Link Power Management (LPM) policy to use
-+ for mobile / laptop variants of chipsets / "South Bridges".
-+
-+ The value set has the following meanings:
-+ 0 => Keep firmware settings
-+ 1 => Maximum performance
-+ 2 => Medium power
-+ 3 => Medium power with Device Initiated PM enabled
-+ 4 => Minimum power
-+
-+ Note "Minimum power" is known to cause issues, including disk
-+ corruption, with some disks and should not be used.
-+
- config SATA_AHCI_PLATFORM
- tristate "Platform AHCI SATA support"
- help
-diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
-index 44a9d630b7ac..355a95a83a34 100644
---- a/drivers/ata/ahci.c
-+++ b/drivers/ata/ahci.c
-@@ -65,6 +65,7 @@ enum board_ids {
- /* board IDs by feature in alphabetical order */
- board_ahci,
- board_ahci_ign_iferr,
-+ board_ahci_mobile,
- board_ahci_nomsi,
- board_ahci_noncq,
- board_ahci_nosntf,
-@@ -140,6 +141,13 @@ static const struct ata_port_info ahci_port_info[] = {
- .udma_mask = ATA_UDMA6,
- .port_ops = &ahci_ops,
- },
-+ [board_ahci_mobile] = {
-+ AHCI_HFLAGS (AHCI_HFLAG_IS_MOBILE),
-+ .flags = AHCI_FLAG_COMMON,
-+ .pio_mask = ATA_PIO4,
-+ .udma_mask = ATA_UDMA6,
-+ .port_ops = &ahci_ops,
-+ },
- [board_ahci_nomsi] = {
- AHCI_HFLAGS (AHCI_HFLAG_NO_MSI),
- .flags = AHCI_FLAG_COMMON,
-@@ -252,13 +260,13 @@ static const struct pci_device_id ahci_pci_tbl[] = {
- { PCI_VDEVICE(INTEL, 0x2924), board_ahci }, /* ICH9 */
- { PCI_VDEVICE(INTEL, 0x2925), board_ahci }, /* ICH9 */
- { PCI_VDEVICE(INTEL, 0x2927), board_ahci }, /* ICH9 */
-- { PCI_VDEVICE(INTEL, 0x2929), board_ahci }, /* ICH9M */
-- { PCI_VDEVICE(INTEL, 0x292a), board_ahci }, /* ICH9M */
-- { PCI_VDEVICE(INTEL, 0x292b), board_ahci }, /* ICH9M */
-- { PCI_VDEVICE(INTEL, 0x292c), board_ahci }, /* ICH9M */
-- { PCI_VDEVICE(INTEL, 0x292f), board_ahci }, /* ICH9M */
-+ { PCI_VDEVICE(INTEL, 0x2929), board_ahci_mobile }, /* ICH9M */
-+ { PCI_VDEVICE(INTEL, 0x292a), board_ahci_mobile }, /* ICH9M */
-+ { PCI_VDEVICE(INTEL, 0x292b), board_ahci_mobile }, /* ICH9M */
-+ { PCI_VDEVICE(INTEL, 0x292c), board_ahci_mobile }, /* ICH9M */
-+ { PCI_VDEVICE(INTEL, 0x292f), board_ahci_mobile }, /* ICH9M */
- { PCI_VDEVICE(INTEL, 0x294d), board_ahci }, /* ICH9 */
-- { PCI_VDEVICE(INTEL, 0x294e), board_ahci }, /* ICH9M */
-+ { PCI_VDEVICE(INTEL, 0x294e), board_ahci_mobile }, /* ICH9M */
- { PCI_VDEVICE(INTEL, 0x502a), board_ahci }, /* Tolapai */
- { PCI_VDEVICE(INTEL, 0x502b), board_ahci }, /* Tolapai */
- { PCI_VDEVICE(INTEL, 0x3a05), board_ahci }, /* ICH10 */
-@@ -268,9 +276,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
- { PCI_VDEVICE(INTEL, 0x3b23), board_ahci }, /* PCH AHCI */
- { PCI_VDEVICE(INTEL, 0x3b24), board_ahci }, /* PCH RAID */
- { PCI_VDEVICE(INTEL, 0x3b25), board_ahci }, /* PCH RAID */
-- { PCI_VDEVICE(INTEL, 0x3b29), board_ahci }, /* PCH M AHCI */
-+ { PCI_VDEVICE(INTEL, 0x3b29), board_ahci_mobile }, /* PCH M AHCI */
- { PCI_VDEVICE(INTEL, 0x3b2b), board_ahci }, /* PCH RAID */
-- { PCI_VDEVICE(INTEL, 0x3b2c), board_ahci }, /* PCH M RAID */
-+ { PCI_VDEVICE(INTEL, 0x3b2c), board_ahci_mobile }, /* PCH M RAID */
- { PCI_VDEVICE(INTEL, 0x3b2f), board_ahci }, /* PCH AHCI */
- { PCI_VDEVICE(INTEL, 0x19b0), board_ahci }, /* DNV AHCI */
- { PCI_VDEVICE(INTEL, 0x19b1), board_ahci }, /* DNV AHCI */
-@@ -293,9 +301,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
- { PCI_VDEVICE(INTEL, 0x19cE), board_ahci }, /* DNV AHCI */
- { PCI_VDEVICE(INTEL, 0x19cF), board_ahci }, /* DNV AHCI */
- { PCI_VDEVICE(INTEL, 0x1c02), board_ahci }, /* CPT AHCI */
-- { PCI_VDEVICE(INTEL, 0x1c03), board_ahci }, /* CPT M AHCI */
-+ { PCI_VDEVICE(INTEL, 0x1c03), board_ahci_mobile }, /* CPT M AHCI */
- { PCI_VDEVICE(INTEL, 0x1c04), board_ahci }, /* CPT RAID */
-- { PCI_VDEVICE(INTEL, 0x1c05), board_ahci }, /* CPT M RAID */
-+ { PCI_VDEVICE(INTEL, 0x1c05), board_ahci_mobile }, /* CPT M RAID */
- { PCI_VDEVICE(INTEL, 0x1c06), board_ahci }, /* CPT RAID */
- { PCI_VDEVICE(INTEL, 0x1c07), board_ahci }, /* CPT RAID */
- { PCI_VDEVICE(INTEL, 0x1d02), board_ahci }, /* PBG AHCI */
-@@ -304,28 +312,28 @@ static const struct pci_device_id ahci_pci_tbl[] = {
- { PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* PBG RAID */
- { PCI_VDEVICE(INTEL, 0x2323), board_ahci }, /* DH89xxCC AHCI */
- { PCI_VDEVICE(INTEL, 0x1e02), board_ahci }, /* Panther Point AHCI */
-- { PCI_VDEVICE(INTEL, 0x1e03), board_ahci }, /* Panther Point M AHCI */
-+ { PCI_VDEVICE(INTEL, 0x1e03), board_ahci_mobile }, /* Panther M AHCI */
- { PCI_VDEVICE(INTEL, 0x1e04), board_ahci }, /* Panther Point RAID */
- { PCI_VDEVICE(INTEL, 0x1e05), board_ahci }, /* Panther Point RAID */
- { PCI_VDEVICE(INTEL, 0x1e06), board_ahci }, /* Panther Point RAID */
-- { PCI_VDEVICE(INTEL, 0x1e07), board_ahci }, /* Panther Point M RAID */
-+ { PCI_VDEVICE(INTEL, 0x1e07), board_ahci_mobile }, /* Panther M RAID */
- { PCI_VDEVICE(INTEL, 0x1e0e), board_ahci }, /* Panther Point RAID */
- { PCI_VDEVICE(INTEL, 0x8c02), board_ahci }, /* Lynx Point AHCI */
-- { PCI_VDEVICE(INTEL, 0x8c03), board_ahci }, /* Lynx Point M AHCI */
-+ { PCI_VDEVICE(INTEL, 0x8c03), board_ahci_mobile }, /* Lynx M AHCI */
- { PCI_VDEVICE(INTEL, 0x8c04), board_ahci }, /* Lynx Point RAID */
-- { PCI_VDEVICE(INTEL, 0x8c05), board_ahci }, /* Lynx Point M RAID */
-+ { PCI_VDEVICE(INTEL, 0x8c05), board_ahci_mobile }, /* Lynx M RAID */
- { PCI_VDEVICE(INTEL, 0x8c06), board_ahci }, /* Lynx Point RAID */
-- { PCI_VDEVICE(INTEL, 0x8c07), board_ahci }, /* Lynx Point M RAID */
-+ { PCI_VDEVICE(INTEL, 0x8c07), board_ahci_mobile }, /* Lynx M RAID */
- { PCI_VDEVICE(INTEL, 0x8c0e), board_ahci }, /* Lynx Point RAID */
-- { PCI_VDEVICE(INTEL, 0x8c0f), board_ahci }, /* Lynx Point M RAID */
-- { PCI_VDEVICE(INTEL, 0x9c02), board_ahci }, /* Lynx Point-LP AHCI */
-- { PCI_VDEVICE(INTEL, 0x9c03), board_ahci }, /* Lynx Point-LP AHCI */
-- { PCI_VDEVICE(INTEL, 0x9c04), board_ahci }, /* Lynx Point-LP RAID */
-- { PCI_VDEVICE(INTEL, 0x9c05), board_ahci }, /* Lynx Point-LP RAID */
-- { PCI_VDEVICE(INTEL, 0x9c06), board_ahci }, /* Lynx Point-LP RAID */
-- { PCI_VDEVICE(INTEL, 0x9c07), board_ahci }, /* Lynx Point-LP RAID */
-- { PCI_VDEVICE(INTEL, 0x9c0e), board_ahci }, /* Lynx Point-LP RAID */
-- { PCI_VDEVICE(INTEL, 0x9c0f), board_ahci }, /* Lynx Point-LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x8c0f), board_ahci_mobile }, /* Lynx M RAID */
-+ { PCI_VDEVICE(INTEL, 0x9c02), board_ahci_mobile }, /* Lynx LP AHCI */
-+ { PCI_VDEVICE(INTEL, 0x9c03), board_ahci_mobile }, /* Lynx LP AHCI */
-+ { PCI_VDEVICE(INTEL, 0x9c04), board_ahci_mobile }, /* Lynx LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x9c05), board_ahci_mobile }, /* Lynx LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x9c06), board_ahci_mobile }, /* Lynx LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x9c07), board_ahci_mobile }, /* Lynx LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x9c0e), board_ahci_mobile }, /* Lynx LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x9c0f), board_ahci_mobile }, /* Lynx LP RAID */
- { PCI_VDEVICE(INTEL, 0x1f22), board_ahci }, /* Avoton AHCI */
- { PCI_VDEVICE(INTEL, 0x1f23), board_ahci }, /* Avoton AHCI */
- { PCI_VDEVICE(INTEL, 0x1f24), board_ahci }, /* Avoton RAID */
-@@ -353,26 +361,26 @@ static const struct pci_device_id ahci_pci_tbl[] = {
- { PCI_VDEVICE(INTEL, 0x8d66), board_ahci }, /* Wellsburg RAID */
- { PCI_VDEVICE(INTEL, 0x8d6e), board_ahci }, /* Wellsburg RAID */
- { PCI_VDEVICE(INTEL, 0x23a3), board_ahci }, /* Coleto Creek AHCI */
-- { PCI_VDEVICE(INTEL, 0x9c83), board_ahci }, /* Wildcat Point-LP AHCI */
-- { PCI_VDEVICE(INTEL, 0x9c85), board_ahci }, /* Wildcat Point-LP RAID */
-- { PCI_VDEVICE(INTEL, 0x9c87), board_ahci }, /* Wildcat Point-LP RAID */
-- { PCI_VDEVICE(INTEL, 0x9c8f), board_ahci }, /* Wildcat Point-LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x9c83), board_ahci_mobile }, /* Wildcat LP AHCI */
-+ { PCI_VDEVICE(INTEL, 0x9c85), board_ahci_mobile }, /* Wildcat LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x9c87), board_ahci_mobile }, /* Wildcat LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x9c8f), board_ahci_mobile }, /* Wildcat LP RAID */
- { PCI_VDEVICE(INTEL, 0x8c82), board_ahci }, /* 9 Series AHCI */
-- { PCI_VDEVICE(INTEL, 0x8c83), board_ahci }, /* 9 Series M AHCI */
-+ { PCI_VDEVICE(INTEL, 0x8c83), board_ahci_mobile }, /* 9 Series M AHCI */
- { PCI_VDEVICE(INTEL, 0x8c84), board_ahci }, /* 9 Series RAID */
-- { PCI_VDEVICE(INTEL, 0x8c85), board_ahci }, /* 9 Series M RAID */
-+ { PCI_VDEVICE(INTEL, 0x8c85), board_ahci_mobile }, /* 9 Series M RAID */
- { PCI_VDEVICE(INTEL, 0x8c86), board_ahci }, /* 9 Series RAID */
-- { PCI_VDEVICE(INTEL, 0x8c87), board_ahci }, /* 9 Series M RAID */
-+ { PCI_VDEVICE(INTEL, 0x8c87), board_ahci_mobile }, /* 9 Series M RAID */
- { PCI_VDEVICE(INTEL, 0x8c8e), board_ahci }, /* 9 Series RAID */
-- { PCI_VDEVICE(INTEL, 0x8c8f), board_ahci }, /* 9 Series M RAID */
-- { PCI_VDEVICE(INTEL, 0x9d03), board_ahci }, /* Sunrise Point-LP AHCI */
-- { PCI_VDEVICE(INTEL, 0x9d05), board_ahci }, /* Sunrise Point-LP RAID */
-- { PCI_VDEVICE(INTEL, 0x9d07), board_ahci }, /* Sunrise Point-LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x8c8f), board_ahci_mobile }, /* 9 Series M RAID */
-+ { PCI_VDEVICE(INTEL, 0x9d03), board_ahci_mobile }, /* Sunrise LP AHCI */
-+ { PCI_VDEVICE(INTEL, 0x9d05), board_ahci_mobile }, /* Sunrise LP RAID */
-+ { PCI_VDEVICE(INTEL, 0x9d07), board_ahci_mobile }, /* Sunrise LP RAID */
- { PCI_VDEVICE(INTEL, 0xa102), board_ahci }, /* Sunrise Point-H AHCI */
-- { PCI_VDEVICE(INTEL, 0xa103), board_ahci }, /* Sunrise Point-H M AHCI */
-+ { PCI_VDEVICE(INTEL, 0xa103), board_ahci_mobile }, /* Sunrise M AHCI */
- { PCI_VDEVICE(INTEL, 0xa105), board_ahci }, /* Sunrise Point-H RAID */
- { PCI_VDEVICE(INTEL, 0xa106), board_ahci }, /* Sunrise Point-H RAID */
-- { PCI_VDEVICE(INTEL, 0xa107), board_ahci }, /* Sunrise Point-H M RAID */
-+ { PCI_VDEVICE(INTEL, 0xa107), board_ahci_mobile }, /* Sunrise M RAID */
- { PCI_VDEVICE(INTEL, 0xa10f), board_ahci }, /* Sunrise Point-H RAID */
- { PCI_VDEVICE(INTEL, 0x2822), board_ahci }, /* Lewisburg RAID*/
- { PCI_VDEVICE(INTEL, 0x2823), board_ahci }, /* Lewisburg AHCI*/
-@@ -387,10 +395,10 @@ static const struct pci_device_id ahci_pci_tbl[] = {
- { PCI_VDEVICE(INTEL, 0xa252), board_ahci }, /* Lewisburg RAID*/
- { PCI_VDEVICE(INTEL, 0xa256), board_ahci }, /* Lewisburg RAID*/
- { PCI_VDEVICE(INTEL, 0xa356), board_ahci }, /* Cannon Lake PCH-H RAID */
-- { PCI_VDEVICE(INTEL, 0x0f22), board_ahci }, /* Bay Trail AHCI */
-- { PCI_VDEVICE(INTEL, 0x0f23), board_ahci }, /* Bay Trail AHCI */
-- { PCI_VDEVICE(INTEL, 0x22a3), board_ahci }, /* Cherry Trail AHCI */
-- { PCI_VDEVICE(INTEL, 0x5ae3), board_ahci }, /* Apollo Lake AHCI */
-+ { PCI_VDEVICE(INTEL, 0x0f22), board_ahci_mobile }, /* Bay Trail AHCI */
-+ { PCI_VDEVICE(INTEL, 0x0f23), board_ahci_mobile }, /* Bay Trail AHCI */
-+ { PCI_VDEVICE(INTEL, 0x22a3), board_ahci_mobile }, /* Cherry Tr. AHCI */
-+ { PCI_VDEVICE(INTEL, 0x5ae3), board_ahci_mobile }, /* ApolloLake AHCI */
-
- /* JMicron 360/1/3/5/6, match class to avoid IDE function */
- { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
-@@ -598,6 +606,9 @@ static int marvell_enable = 1;
- module_param(marvell_enable, int, 0644);
- MODULE_PARM_DESC(marvell_enable, "Marvell SATA via AHCI (1 = enabled)");
-
-+static int mobile_lpm_policy = CONFIG_SATA_MOBILE_LPM_POLICY;
-+module_param(mobile_lpm_policy, int, 0644);
-+MODULE_PARM_DESC(mobile_lpm_policy, "Default LPM policy for mobile chipsets");
-
- static void ahci_pci_save_initial_config(struct pci_dev *pdev,
- struct ahci_host_priv *hpriv)
-@@ -1733,6 +1744,10 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
- if (ap->flags & ATA_FLAG_EM)
- ap->em_message_type = hpriv->em_msg_type;
-
-+ if ((hpriv->flags & AHCI_HFLAG_IS_MOBILE) &&
-+ mobile_lpm_policy >= ATA_LPM_UNKNOWN &&
-+ mobile_lpm_policy <= ATA_LPM_MIN_POWER)
-+ ap->target_lpm_policy = mobile_lpm_policy;
-
- /* disabled/not-implemented port */
- if (!(hpriv->port_map & (1 << i)))
-diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
-index 749fd94441b0..a9d996e17d75 100644
---- a/drivers/ata/ahci.h
-+++ b/drivers/ata/ahci.h
-@@ -251,6 +251,9 @@ enum {
- AHCI_HFLAG_YES_ALPM = (1 << 23), /* force ALPM cap on */
- AHCI_HFLAG_NO_WRITE_TO_RO = (1 << 24), /* don't write to read
- only registers */
-+ AHCI_HFLAG_IS_MOBILE = (1 << 25), /* mobile chipset, use
-+ SATA_MOBILE_LPM_POLICY
-+ as default lpm_policy */
-
- /* ap->flags bits */
-
---
-2.14.3
-
diff --git a/0010-Input-silead-Add-support-for-capactive-home-button-f.patch b/0010-Input-silead-Add-support-for-capactive-home-button-f.patch
deleted file mode 100644
index ce9be3760..000000000
--- a/0010-Input-silead-Add-support-for-capactive-home-button-f.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 33fc16fd8aa3684e19b1d1f0a712593e2e570ab1 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Sun, 11 Jun 2017 21:24:50 +0200
-Subject: [PATCH 10/16] Input: silead: Add support for capactive home button
- found on some x86 tablets
-
-On some x86 tablets with a silead touchscreen the windows logo on the
-front is a capacitive home button. Touching this button results in a touch
-with bits 12-15 of the Y coordinates set, while normally only the lower 12
-are used.
-
-Detect this and report a KEY_LEFTMETA press when this happens. Note for
-now we only respond to the Y coordinate bits 12-15 containing 0x01, on some
-tablets *without* a capacative button I've noticed these bits containing
-0x04 when crossing the edges of the screen.
-
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/input/touchscreen/silead.c | 45 ++++++++++++++++++++++++++++----------
- 1 file changed, 34 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/input/touchscreen/silead.c b/drivers/input/touchscreen/silead.c
-index 0dbcf105f7db..c0ba40c09699 100644
---- a/drivers/input/touchscreen/silead.c
-+++ b/drivers/input/touchscreen/silead.c
-@@ -56,7 +56,7 @@
- #define SILEAD_POINT_Y_MSB_OFF 0x01
- #define SILEAD_POINT_X_OFF 0x02
- #define SILEAD_POINT_X_MSB_OFF 0x03
--#define SILEAD_TOUCH_ID_MASK 0xF0
-+#define SILEAD_EXTRA_DATA_MASK 0xF0
-
- #define SILEAD_CMD_SLEEP_MIN 10000
- #define SILEAD_CMD_SLEEP_MAX 20000
-@@ -109,6 +109,8 @@ static int silead_ts_request_input_dev(struct silead_ts_data *data)
- INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED |
- INPUT_MT_TRACK);
-
-+ input_set_capability(data->input, EV_KEY, KEY_LEFTMETA);
-+
- data->input->name = SILEAD_TS_NAME;
- data->input->phys = "input/ts";
- data->input->id.bustype = BUS_I2C;
-@@ -139,7 +141,8 @@ static void silead_ts_read_data(struct i2c_client *client)
- struct input_dev *input = data->input;
- struct device *dev = &client->dev;
- u8 *bufp, buf[SILEAD_TS_DATA_LEN];
-- int touch_nr, error, i;
-+ int touch_nr, softbutton, error, i;
-+ bool softbutton_pressed = false;
-
- error = i2c_smbus_read_i2c_block_data(client, SILEAD_REG_DATA,
- SILEAD_TS_DATA_LEN, buf);
-@@ -148,21 +151,40 @@ static void silead_ts_read_data(struct i2c_client *client)
- return;
- }
-
-- touch_nr = buf[0];
-- if (touch_nr > data->max_fingers) {
-+ if (buf[0] > data->max_fingers) {
- dev_warn(dev, "More touches reported then supported %d > %d\n",
-- touch_nr, data->max_fingers);
-- touch_nr = data->max_fingers;
-+ buf[0], data->max_fingers);
-+ buf[0] = data->max_fingers;
- }
-
-+ touch_nr = 0;
- bufp = buf + SILEAD_POINT_DATA_LEN;
-- for (i = 0; i < touch_nr; i++, bufp += SILEAD_POINT_DATA_LEN) {
-- /* Bits 4-7 are the touch id */
-- data->id[i] = (bufp[SILEAD_POINT_X_MSB_OFF] &
-- SILEAD_TOUCH_ID_MASK) >> 4;
-- touchscreen_set_mt_pos(&data->pos[i], &data->prop,
-+ for (i = 0; i < buf[0]; i++, bufp += SILEAD_POINT_DATA_LEN) {
-+ softbutton = (bufp[SILEAD_POINT_Y_MSB_OFF] &
-+ SILEAD_EXTRA_DATA_MASK) >> 4;
-+
-+ if (softbutton) {
-+ /*
-+ * For now only respond to softbutton == 0x01, some
-+ * tablets *without* a capacative button send 0x04
-+ * when crossing the edges of the screen.
-+ */
-+ if (softbutton == 0x01)
-+ softbutton_pressed = true;
-+
-+ continue;
-+ }
-+
-+ /*
-+ * Bits 4-7 are the touch id, note not all models have
-+ * hardware touch ids so atm we don't use these.
-+ */
-+ data->id[touch_nr] = (bufp[SILEAD_POINT_X_MSB_OFF] &
-+ SILEAD_EXTRA_DATA_MASK) >> 4;
-+ touchscreen_set_mt_pos(&data->pos[touch_nr], &data->prop,
- get_unaligned_le16(&bufp[SILEAD_POINT_X_OFF]) & 0xfff,
- get_unaligned_le16(&bufp[SILEAD_POINT_Y_OFF]) & 0xfff);
-+ touch_nr++;
- }
-
- input_mt_assign_slots(input, data->slots, data->pos, touch_nr, 0);
-@@ -178,6 +200,7 @@ static void silead_ts_read_data(struct i2c_client *client)
- }
-
- input_mt_sync_frame(input);
-+ input_report_key(input, KEY_LEFTMETA, softbutton_pressed);
- input_sync(input);
- }
-
---
-2.13.0
-
diff --git a/ACPI-sbshc-remove-raw-pointer-from-printk-message.patch b/ACPI-sbshc-remove-raw-pointer-from-printk-message.patch
deleted file mode 100644
index 0aa10d0af..000000000
--- a/ACPI-sbshc-remove-raw-pointer-from-printk-message.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From patchwork Fri Jan 19 09:06:03 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: ACPI: sbshc: remove raw pointer from printk message
-From: "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>
-X-Patchwork-Id: 10174835
-Message-Id: <20180119090603.GA7775@kroah.com>
-To: "Rafael J. Wysocki" <rjw@rjwysocki.net>, Len Brown <lenb@kernel.org>
-Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
- Wang Qize <wang_qize@venustech.com.cn>
-Date: Fri, 19 Jan 2018 10:06:03 +0100
-
-There's no need to be printing a raw kernel pointer to the kernel log at
-every boot. So just remove it, and change the whole message to use the
-correct dev_info() call at the same time.
-
-Reported-by: Wang Qize <wang_qize@venustech.com.cn>
-Cc: stable <stable@vger.kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
----
-To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
-
-diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
-index 2fa8304171e0..217e1caf58d6 100644
---- a/drivers/acpi/sbshc.c
-+++ b/drivers/acpi/sbshc.c
-@@ -275,8 +275,8 @@ static int acpi_smbus_hc_add(struct acpi_device *device)
- device->driver_data = hc;
-
- acpi_ec_add_query_handler(hc->ec, hc->query_bit, NULL, smbus_alarm, hc);
-- printk(KERN_INFO PREFIX "SBS HC: EC = 0x%p, offset = 0x%0x, query_bit = 0x%0x\n",
-- hc->ec, hc->offset, hc->query_bit);
-+ dev_info(&device->dev, "SBS HC: offset = 0x%0x, query_bit = 0x%0x\n",
-+ hc->offset, hc->query_bit);
-
- return 0;
- }
diff --git a/Add-support-for-One-by-Wacom-CTL-472-CTL-672.patch b/Add-support-for-One-by-Wacom-CTL-472-CTL-672.patch
deleted file mode 100644
index 3f2d7fcd9..000000000
--- a/Add-support-for-One-by-Wacom-CTL-472-CTL-672.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From patchwork Tue Dec 26 23:50:18 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: Add support for One by Wacom (CTL-472 / CTL-672)
-From: Jason Gerecke <killertofu@gmail.com>
-X-Patchwork-Id: 10133291
-Message-Id: <20171226235018.5522-1-killertofu@gmail.com>
-To: linux-input@vger.kernel.org, Jiri Kosina <jkosina@suse.cz>,
- Mx Jing <jingmingxuan@outlook.com>
-Cc: Ping Cheng <pinglinux@gmail.com>, Aaron Skomra <skomra@gmail.com>,
- Jason Gerecke <killertofu@gmail.com>,
- Jason Gerecke <jason.gerecke@wacom.com>
-Date: Tue, 26 Dec 2017 15:50:18 -0800
-
-Adds support for the second-generation "One by Wacom" tablets. These
-devices are similar to the last generation, but a slightly different size
-and reporting a higher number of pressure levels.
-
-Signed-off-by: Mx Jing <jingmingxuan@outlook.com>
-Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
----
- drivers/hid/wacom_wac.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
-index aa692e28b2cd..5f932ddcdc49 100644
---- a/drivers/hid/wacom_wac.c
-+++ b/drivers/hid/wacom_wac.c
-@@ -4376,6 +4376,12 @@ static const struct wacom_features wacom_features_0x360 =
- static const struct wacom_features wacom_features_0x361 =
- { "Wacom Intuos Pro L", 62200, 43200, 8191, 63,
- INTUOSP2_BT, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES, 9, .touch_max = 10 };
-+static const struct wacom_features wacom_features_0x37A =
-+ { "Wacom One by Wacom S", 15200, 9500, 2047, 63,
-+ BAMBOO_PEN, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
-+static const struct wacom_features wacom_features_0x37B =
-+ { "Wacom One by Wacom M", 21600, 13500, 2047, 63,
-+ BAMBOO_PEN, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
-
- static const struct wacom_features wacom_features_HID_ANY_ID =
- { "Wacom HID", .type = HID_GENERIC, .oVid = HID_ANY_ID, .oPid = HID_ANY_ID };
-@@ -4544,6 +4550,8 @@ const struct hid_device_id wacom_ids[] = {
- { USB_DEVICE_WACOM(0x343) },
- { BT_DEVICE_WACOM(0x360) },
- { BT_DEVICE_WACOM(0x361) },
-+ { USB_DEVICE_WACOM(0x37A) },
-+ { USB_DEVICE_WACOM(0x37B) },
- { USB_DEVICE_WACOM(0x4001) },
- { USB_DEVICE_WACOM(0x4004) },
- { USB_DEVICE_WACOM(0x5000) },
diff --git a/CVE-2017-7645.patch b/CVE-2017-7645.patch
deleted file mode 100644
index 0be019cc3..000000000
--- a/CVE-2017-7645.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From: "J. Bruce Fields" <bfields@redhat.com>
-Date: 2017-04-14 15:04:40
-Subject: [PATCH] nfsd: check for oversized NFSv2/v3 arguments
-
-A client can append random data to the end of an NFSv2 or NFSv3 RPC call
-without our complaining; we'll just stop parsing at the end of the
-expected data and ignore the rest.
-
-Encoded arguments and replies are stored together in an array of pages,
-and if a call is too large it could leave inadequate space for the
-reply. This is normally OK because NFS RPC's typically have either
-short arguments and long replies (like READ) or long arguments and short
-replies (like WRITE). But a client that sends an incorrectly long reply
-can violate those assumptions. This was observed to cause crashes.
-
-So, insist that the argument not be any longer than we expect.
-
-Also, several operations increment rq_next_page in the decode routine
-before checking the argument size, which can leave rq_next_page pointing
-well past the end of the page array, causing trouble later in
-svc_free_pages.
-
-As followup we may also want to rewrite the encoding routines to check
-more carefully that they aren't running off the end of the page array.
-
-Reported-by: Tuomas Haanpää <thaan@synopsys.com>
-Reported-by: Ari Kauppi <ari@synopsys.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: J. Bruce Fields <bfields@redhat.com>
----
- fs/nfsd/nfs3xdr.c | 23 +++++++++++++++++------
- fs/nfsd/nfsxdr.c | 13 ++++++++++---
- include/linux/sunrpc/svc.h | 3 +--
- 3 files changed, 28 insertions(+), 11 deletions(-)
-
-diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c
-index dba2ff8eaa68..be66bcadfaea 100644
---- a/fs/nfsd/nfs3xdr.c
-+++ b/fs/nfsd/nfs3xdr.c
-@@ -334,8 +334,11 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- if (!p)
- return 0;
- p = xdr_decode_hyper(p, &args->offset);
--
- args->count = ntohl(*p++);
-+
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- len = min(args->count, max_blocksize);
-
- /* set up the kvec */
-@@ -349,7 +352,7 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- v++;
- }
- args->vlen = v;
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -536,9 +539,11 @@ nfs3svc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p,
- p = decode_fh(p, &args->fh);
- if (!p)
- return 0;
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -564,10 +569,14 @@ nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p,
- args->verf = p; p += 2;
- args->dircount = ~0;
- args->count = ntohl(*p++);
-+
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- args->count = min_t(u32, args->count, PAGE_SIZE);
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -585,6 +594,9 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p,
- args->dircount = ntohl(*p++);
- args->count = ntohl(*p++);
-
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- len = args->count = min(args->count, max_blocksize);
- while (len > 0) {
- struct page *p = *(rqstp->rq_next_page++);
-@@ -592,8 +604,7 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p,
- args->buffer = page_address(p);
- len -= PAGE_SIZE;
- }
--
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-diff --git a/fs/nfsd/nfsxdr.c b/fs/nfsd/nfsxdr.c
-index 41b468a6a90f..79268369f7b3 100644
---- a/fs/nfsd/nfsxdr.c
-+++ b/fs/nfsd/nfsxdr.c
-@@ -257,6 +257,9 @@ nfssvc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- len = args->count = ntohl(*p++);
- p++; /* totalcount - unused */
-
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- len = min_t(unsigned int, len, NFSSVC_MAXBLKSIZE_V2);
-
- /* set up somewhere to store response.
-@@ -272,7 +275,7 @@ nfssvc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- v++;
- }
- args->vlen = v;
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -360,9 +363,11 @@ nfssvc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p, struct nfsd_readli
- p = decode_fh(p, &args->fh);
- if (!p)
- return 0;
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -400,9 +405,11 @@ nfssvc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p,
- args->cookie = ntohl(*p++);
- args->count = ntohl(*p++);
- args->count = min_t(u32, args->count, PAGE_SIZE);
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- /*
-diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
-index e770abeed32d..6ef19cf658b4 100644
---- a/include/linux/sunrpc/svc.h
-+++ b/include/linux/sunrpc/svc.h
-@@ -336,8 +336,7 @@ xdr_argsize_check(struct svc_rqst *rqstp, __be32 *p)
- {
- char *cp = (char *)p;
- struct kvec *vec = &rqstp->rq_arg.head[0];
-- return cp >= (char*)vec->iov_base
-- && cp <= (char*)vec->iov_base + vec->iov_len;
-+ return cp == (char *)vec->iov_base + vec->iov_len;
- }
-
- static inline int
---
-2.9.3
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/CVE-2018-1000026.patch b/CVE-2018-1000026.patch
deleted file mode 100644
index 99e5f64a5..000000000
--- a/CVE-2018-1000026.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From 2b16f048729bf35e6c28a40cbfad07239f9dcd90 Mon Sep 17 00:00:00 2001
-From: Daniel Axtens <dja@axtens.net>
-Date: Wed, 31 Jan 2018 14:15:33 +1100
-Subject: [PATCH] net: create skb_gso_validate_mac_len()
-
-If you take a GSO skb, and split it into packets, will the MAC
-length (L2 + L3 + L4 headers + payload) of those packets be small
-enough to fit within a given length?
-
-Move skb_gso_mac_seglen() to skbuff.h with other related functions
-like skb_gso_network_seglen() so we can use it, and then create
-skb_gso_validate_mac_len to do the full calculation.
-
-Signed-off-by: Daniel Axtens <dja@axtens.net>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- include/linux/skbuff.h | 16 +++++++++++++
- net/core/skbuff.c | 63 +++++++++++++++++++++++++++++++++++++++-----------
- net/sched/sch_tbf.c | 10 --------
- 3 files changed, 66 insertions(+), 23 deletions(-)
-
-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index ac89a93b7c83..5ebc0f869720 100644
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -3287,6 +3287,7 @@ int skb_shift(struct sk_buff *tgt, struct sk_buff *skb, int shiftlen);
- void skb_scrub_packet(struct sk_buff *skb, bool xnet);
- unsigned int skb_gso_transport_seglen(const struct sk_buff *skb);
- bool skb_gso_validate_mtu(const struct sk_buff *skb, unsigned int mtu);
-+bool skb_gso_validate_mac_len(const struct sk_buff *skb, unsigned int len);
- struct sk_buff *skb_segment(struct sk_buff *skb, netdev_features_t features);
- struct sk_buff *skb_vlan_untag(struct sk_buff *skb);
- int skb_ensure_writable(struct sk_buff *skb, int write_len);
-@@ -4120,6 +4121,21 @@ static inline unsigned int skb_gso_network_seglen(const struct sk_buff *skb)
- return hdr_len + skb_gso_transport_seglen(skb);
- }
-
-+/**
-+ * skb_gso_mac_seglen - Return length of individual segments of a gso packet
-+ *
-+ * @skb: GSO skb
-+ *
-+ * skb_gso_mac_seglen is used to determine the real size of the
-+ * individual segments, including MAC/L2, Layer3 (IP, IPv6) and L4
-+ * headers (TCP/UDP).
-+ */
-+static inline unsigned int skb_gso_mac_seglen(const struct sk_buff *skb)
-+{
-+ unsigned int hdr_len = skb_transport_header(skb) - skb_mac_header(skb);
-+ return hdr_len + skb_gso_transport_seglen(skb);
-+}
-+
- /* Local Checksum Offload.
- * Compute outer checksum based on the assumption that the
- * inner checksum will be offloaded later.
-diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index 01e8285aea73..8c61c27c1b28 100644
---- a/net/core/skbuff.c
-+++ b/net/core/skbuff.c
-@@ -4914,37 +4914,74 @@ unsigned int skb_gso_transport_seglen(const struct sk_buff *skb)
- EXPORT_SYMBOL_GPL(skb_gso_transport_seglen);
-
- /**
-- * skb_gso_validate_mtu - Return in case such skb fits a given MTU
-+ * skb_gso_size_check - check the skb size, considering GSO_BY_FRAGS
- *
-- * @skb: GSO skb
-- * @mtu: MTU to validate against
-+ * There are a couple of instances where we have a GSO skb, and we
-+ * want to determine what size it would be after it is segmented.
- *
-- * skb_gso_validate_mtu validates if a given skb will fit a wanted MTU
-- * once split.
-+ * We might want to check:
-+ * - L3+L4+payload size (e.g. IP forwarding)
-+ * - L2+L3+L4+payload size (e.g. sanity check before passing to driver)
-+ *
-+ * This is a helper to do that correctly considering GSO_BY_FRAGS.
-+ *
-+ * @seg_len: The segmented length (from skb_gso_*_seglen). In the
-+ * GSO_BY_FRAGS case this will be [header sizes + GSO_BY_FRAGS].
-+ *
-+ * @max_len: The maximum permissible length.
-+ *
-+ * Returns true if the segmented length <= max length.
- */
--bool skb_gso_validate_mtu(const struct sk_buff *skb, unsigned int mtu)
--{
-+static inline bool skb_gso_size_check(const struct sk_buff *skb,
-+ unsigned int seg_len,
-+ unsigned int max_len) {
- const struct skb_shared_info *shinfo = skb_shinfo(skb);
- const struct sk_buff *iter;
-- unsigned int hlen;
--
-- hlen = skb_gso_network_seglen(skb);
-
- if (shinfo->gso_size != GSO_BY_FRAGS)
-- return hlen <= mtu;
-+ return seg_len <= max_len;
-
- /* Undo this so we can re-use header sizes */
-- hlen -= GSO_BY_FRAGS;
-+ seg_len -= GSO_BY_FRAGS;
-
- skb_walk_frags(skb, iter) {
-- if (hlen + skb_headlen(iter) > mtu)
-+ if (seg_len + skb_headlen(iter) > max_len)
- return false;
- }
-
- return true;
- }
-+
-+/**
-+ * skb_gso_validate_mtu - Return in case such skb fits a given MTU
-+ *
-+ * @skb: GSO skb
-+ * @mtu: MTU to validate against
-+ *
-+ * skb_gso_validate_mtu validates if a given skb will fit a wanted MTU
-+ * once split.
-+ */
-+bool skb_gso_validate_mtu(const struct sk_buff *skb, unsigned int mtu)
-+{
-+ return skb_gso_size_check(skb, skb_gso_network_seglen(skb), mtu);
-+}
- EXPORT_SYMBOL_GPL(skb_gso_validate_mtu);
-
-+/**
-+ * skb_gso_validate_mac_len - Will a split GSO skb fit in a given length?
-+ *
-+ * @skb: GSO skb
-+ * @len: length to validate against
-+ *
-+ * skb_gso_validate_mac_len validates if a given skb will fit a wanted
-+ * length once split, including L2, L3 and L4 headers and the payload.
-+ */
-+bool skb_gso_validate_mac_len(const struct sk_buff *skb, unsigned int len)
-+{
-+ return skb_gso_size_check(skb, skb_gso_mac_seglen(skb), len);
-+}
-+EXPORT_SYMBOL_GPL(skb_gso_validate_mac_len);
-+
- static struct sk_buff *skb_reorder_vlan_header(struct sk_buff *skb)
- {
- if (skb_cow(skb, skb_headroom(skb)) < 0) {
-diff --git a/net/sched/sch_tbf.c b/net/sched/sch_tbf.c
-index 83e76d046993..229172d509cc 100644
---- a/net/sched/sch_tbf.c
-+++ b/net/sched/sch_tbf.c
-@@ -142,16 +142,6 @@ static u64 psched_ns_t2l(const struct psched_ratecfg *r,
- return len;
- }
-
--/*
-- * Return length of individual segments of a gso packet,
-- * including all headers (MAC, IP, TCP/UDP)
-- */
--static unsigned int skb_gso_mac_seglen(const struct sk_buff *skb)
--{
-- unsigned int hdr_len = skb_transport_header(skb) - skb_mac_header(skb);
-- return hdr_len + skb_gso_transport_seglen(skb);
--}
--
- /* GSO packet is too big, segment it so that tbf can transmit
- * each segment in time
- */
---
-2.14.3
-
-From 8914a595110a6eca69a5e275b323f5d09e18f4f9 Mon Sep 17 00:00:00 2001
-From: Daniel Axtens <dja@axtens.net>
-Date: Wed, 31 Jan 2018 14:15:34 +1100
-Subject: [PATCH] bnx2x: disable GSO where gso_size is too big for hardware
-
-If a bnx2x card is passed a GSO packet with a gso_size larger than
-~9700 bytes, it will cause a firmware error that will bring the card
-down:
-
-bnx2x: [bnx2x_attn_int_deasserted3:4323(enP24p1s0f0)]MC assert!
-bnx2x: [bnx2x_mc_assert:720(enP24p1s0f0)]XSTORM_ASSERT_LIST_INDEX 0x2
-bnx2x: [bnx2x_mc_assert:736(enP24p1s0f0)]XSTORM_ASSERT_INDEX 0x0 = 0x00000000 0x25e43e47 0x00463e01 0x00010052
-bnx2x: [bnx2x_mc_assert:750(enP24p1s0f0)]Chip Revision: everest3, FW Version: 7_13_1
-... (dump of values continues) ...
-
-Detect when the mac length of a GSO packet is greater than the maximum
-packet size (9700 bytes) and disable GSO.
-
-Signed-off-by: Daniel Axtens <dja@axtens.net>
-Reviewed-by: Eric Dumazet <edumazet@google.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
-index 7b08323e3f3d..74fc9af4aadb 100644
---- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
-+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
-@@ -12934,6 +12934,24 @@ static netdev_features_t bnx2x_features_check(struct sk_buff *skb,
- struct net_device *dev,
- netdev_features_t features)
- {
-+ /*
-+ * A skb with gso_size + header length > 9700 will cause a
-+ * firmware panic. Drop GSO support.
-+ *
-+ * Eventually the upper layer should not pass these packets down.
-+ *
-+ * For speed, if the gso_size is <= 9000, assume there will
-+ * not be 700 bytes of headers and pass it through. Only do a
-+ * full (slow) validation if the gso_size is > 9000.
-+ *
-+ * (Due to the way SKB_BY_FRAGS works this will also do a full
-+ * validation in that case.)
-+ */
-+ if (unlikely(skb_is_gso(skb) &&
-+ (skb_shinfo(skb)->gso_size > 9000) &&
-+ !skb_gso_validate_mac_len(skb, 9700)))
-+ features &= ~NETIF_F_GSO_MASK;
-+
- features = vlan_features_check(skb, features);
- return vxlan_features_check(skb, features);
- }
---
-2.14.3
-
diff --git a/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch b/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch
deleted file mode 100644
index d6a8e6a52..000000000
--- a/HID-rmi-Check-that-a-device-is-a-RMI-device-before-c.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From ef14a4bf0910d06c7e202552914028d4956809cb Mon Sep 17 00:00:00 2001
-From: Andrew Duggan <aduggan@synaptics.com>
-Date: Tue, 17 Oct 2017 18:37:36 -0700
-Subject: [PATCH] HID: rmi: Check that a device is a RMI device before calling
- RMI functions
-
-The hid-rmi driver may handle non rmi devices on composite USB devices.
-Callbacks need to make sure that the current device is a RMI device before
-calling RMI specific functions. Most callbacks already have this check, but
-this patch adds checks to the remaining callbacks.
-
-Reported-by: Hendrik Langer <hendrik.langer@gmx.de>
-Tested-by: Hendrik Langer <hendrik.langer@gmx.de>
-Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
-Signed-off-by: Jiri Kosina <jkosina@suse.cz>
----
- drivers/hid/hid-rmi.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
-index ef241d66562e..0f43c4292685 100644
---- a/drivers/hid/hid-rmi.c
-+++ b/drivers/hid/hid-rmi.c
-@@ -368,6 +368,11 @@ static int rmi_check_sanity(struct hid_device *hdev, u8 *data, int size)
- static int rmi_raw_event(struct hid_device *hdev,
- struct hid_report *report, u8 *data, int size)
- {
-+ struct rmi_data *hdata = hid_get_drvdata(hdev);
-+
-+ if (!(hdata->device_flags & RMI_DEVICE))
-+ return 0;
-+
- size = rmi_check_sanity(hdev, data, size);
- if (size < 2)
- return 0;
-@@ -713,9 +718,11 @@ static void rmi_remove(struct hid_device *hdev)
- {
- struct rmi_data *hdata = hid_get_drvdata(hdev);
-
-- clear_bit(RMI_STARTED, &hdata->flags);
-- cancel_work_sync(&hdata->reset_work);
-- rmi_unregister_transport_device(&hdata->xport);
-+ if (hdata->device_flags & RMI_DEVICE) {
-+ clear_bit(RMI_STARTED, &hdata->flags);
-+ cancel_work_sync(&hdata->reset_work);
-+ rmi_unregister_transport_device(&hdata->xport);
-+ }
-
- hid_hw_stop(hdev);
- }
---
-2.14.3
-
diff --git a/arm-clk-bcm2835-hdmi-fixes.patch b/arm-clk-bcm2835-hdmi-fixes.patch
deleted file mode 100644
index ae76f39cb..000000000
--- a/arm-clk-bcm2835-hdmi-fixes.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From patchwork Thu Feb 8 13:43:37 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [3/4] clk: bcm2835: De-assert/assert PLL reset signal when appropriate
-From: Boris Brezillon <boris.brezillon@bootlin.com>
-X-Patchwork-Id: 10207157
-Message-Id: <20180208134338.24590-3-boris.brezillon@bootlin.com>
-To: Florian Fainelli <f.fainelli@gmail.com>, Ray Jui <rjui@broadcom.com>,
- Scott Branden <sbranden@broadcom.com>,
- bcm-kernel-feedback-list@broadcom.com,
- Stephen Warren <swarren@wwwdotorg.org>,
- Lee Jones <lee@kernel.org>, Eric Anholt <eric@anholt.net>,
- linux-rpi-kernel@lists.infradead.org,
- Mike Turquette <mturquette@baylibre.com>,
- Stephen Boyd <sboyd@codeaurora.org>, linux-clk@vger.kernel.org
-Cc: Boris Brezillon <boris.brezillon@bootlin.com>, stable@vger.kernel.org
-Date: Thu, 8 Feb 2018 14:43:37 +0100
-
-In order to enable a PLL, not only the PLL has to be powered up and
-locked, but you also have to de-assert the reset signal. The last part
-was missing. Add it so PLLs that were not enabled by the FW/bootloader
-can be enabled from Linux.
-
-Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
----
- drivers/clk/bcm/clk-bcm2835.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
-index a07f6451694a..6c5d4a8e426c 100644
---- a/drivers/clk/bcm/clk-bcm2835.c
-+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -602,6 +602,9 @@ static void bcm2835_pll_off(struct clk_hw *hw)
- const struct bcm2835_pll_data *data = pll->data;
-
- spin_lock(&cprman->regs_lock);
-+ cprman_write(cprman, data->a2w_ctrl_reg,
-+ cprman_read(cprman, data->a2w_ctrl_reg) &
-+ ~A2W_PLL_CTRL_PRST_DISABLE);
- cprman_write(cprman, data->cm_ctrl_reg,
- cprman_read(cprman, data->cm_ctrl_reg) |
- CM_PLL_ANARST);
-@@ -640,6 +643,10 @@ static int bcm2835_pll_on(struct clk_hw *hw)
- cpu_relax();
- }
-
-+ cprman_write(cprman, data->a2w_ctrl_reg,
-+ cprman_read(cprman, data->a2w_ctrl_reg) |
-+ A2W_PLL_CTRL_PRST_DISABLE);
-+
- return 0;
- }
-
diff --git a/arm-dts-Add-am335x-pocketbeagle.patch b/arm-dts-Add-am335x-pocketbeagle.patch
new file mode 100644
index 000000000..55c422065
--- /dev/null
+++ b/arm-dts-Add-am335x-pocketbeagle.patch
@@ -0,0 +1,424 @@
+From bb86b4b0bbae12341df16fedf51aeda480364fbf Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Thu, 19 Apr 2018 19:35:58 +0100
+Subject: [PATCH] ARM: dts: Add am335x-pocketbeagle
+
+PocketBeagle is an ultra-tiny-yet-complete open-source USB-key-fob computer.
+
+This board family can be indentified by the A335PBGL in the at24 eeprom:
+A2: [aa 55 33 ee 41 33 33 35 50 42 47 4c 30 30 41 32 |.U3.A335PBGL00A2|]
+
+http://beagleboard.org/pocket
+https://github.com/beagleboard/pocketbeagle
+
+Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
+Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
+CC: Tony Lindgren <tony@atomide.com>
+CC: Jason Kridner <jkridner@beagleboard.org>
+CC: Drew Fustini <drew@beagleboard.org>
+CC: Peter Robinson <pbrobinson@redhat.com>
+---
+Changes in v3:
+- Fix: Board eeprom in subject message. (accidently copied PocketBone)
+Changes in v2:
+- Use SPDX tags.
+- Use eeprom@50, remove repeated node and fix and remove '_' to fix node_name_chars_strict Warning
+- Fix: PocketBeagle Name in Subject (not PocketBeagle Blue)
+- Fix: leds remove '_' to fix node_name_chars_strict warning
+- Fix: node_name_chars_strict pinmux_*_pins label's.
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/am335x-osd335x-common.dtsi | 124 ++++++++++
+ arch/arm/boot/dts/am335x-pocketbeagle.dts | 237 +++++++++++++++++++
+ 3 files changed, 362 insertions(+)
+ create mode 100644 arch/arm/boot/dts/am335x-osd335x-common.dtsi
+ create mode 100644 arch/arm/boot/dts/am335x-pocketbeagle.dts
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index ade7a38543dc..a632bbef01f5 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -675,6 +675,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
+ am335x-nano.dtb \
+ am335x-pepper.dtb \
+ am335x-phycore-rdk.dtb \
++ am335x-pocketbeagle.dtb \
+ am335x-shc.dtb \
+ am335x-sbc-t335.dtb \
+ am335x-sl50.dtb \
+diff --git a/arch/arm/boot/dts/am335x-osd335x-common.dtsi b/arch/arm/boot/dts/am335x-osd335x-common.dtsi
+new file mode 100644
+index 000000000000..f8ff473f94f0
+--- /dev/null
++++ b/arch/arm/boot/dts/am335x-osd335x-common.dtsi
+@@ -0,0 +1,124 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
++ *
++ * Author: Robert Nelson <robertcnelson@gmail.com>
++ */
++
++/ {
++ cpus {
++ cpu@0 {
++ cpu0-supply = <&dcdc2_reg>;
++ };
++ };
++
++ memory@80000000 {
++ device_type = "memory";
++ reg = <0x80000000 0x20000000>; /* 512 MB */
++ };
++};
++
++&cpu0_opp_table {
++ /*
++ * Octavo Systems:
++ * The EFUSE_SMA register is not programmed for any of the AM335x wafers
++ * we get and we are not programming them during our production test.
++ * Therefore, from a DEVICE_ID revision point of view, the silicon looks
++ * like it is Revision 2.1. However, from an EFUSE_SMA point of view for
++ * the HW OPP table, the silicon looks like it is Revision 1.0 (ie the
++ * EFUSE_SMA register reads as all zeros).
++ */
++ oppnitro-1000000000 {
++ opp-supported-hw = <0x06 0x0100>;
++ };
++};
++
++&am33xx_pinmux {
++ i2c0_pins: pinmux-i2c0-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* (C17) I2C0_SDA.I2C0_SDA */
++ AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* (C16) I2C0_SCL.I2C0_SCL */
++ >;
++ };
++};
++
++&i2c0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&i2c0_pins>;
++
++ status = "okay";
++ clock-frequency = <400000>;
++
++ tps: tps@24 {
++ reg = <0x24>;
++ };
++};
++
++/include/ "tps65217.dtsi"
++
++&tps {
++ interrupts = <7>; /* NMI */
++ interrupt-parent = <&intc>;
++
++ ti,pmic-shutdown-controller;
++
++ pwrbutton {
++ interrupts = <2>;
++ status = "okay";
++ };
++
++ regulators {
++ dcdc1_reg: regulator@0 {
++ regulator-name = "vdds_dpr";
++ regulator-always-on;
++ };
++
++ dcdc2_reg: regulator@1 {
++ /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
++ regulator-name = "vdd_mpu";
++ regulator-min-microvolt = <925000>;
++ regulator-max-microvolt = <1351500>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++
++ dcdc3_reg: regulator@2 {
++ /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
++ regulator-name = "vdd_core";
++ regulator-min-microvolt = <925000>;
++ regulator-max-microvolt = <1150000>;
++ regulator-boot-on;
++ regulator-always-on;
++ };
++
++ ldo1_reg: regulator@3 {
++ regulator-name = "vio,vrtc,vdds";
++ regulator-always-on;
++ };
++
++ ldo2_reg: regulator@4 {
++ regulator-name = "vdd_3v3aux";
++ regulator-always-on;
++ };
++
++ ldo3_reg: regulator@5 {
++ regulator-name = "vdd_1v8";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ regulator-always-on;
++ };
++
++ ldo4_reg: regulator@6 {
++ regulator-name = "vdd_3v3a";
++ regulator-always-on;
++ };
++ };
++};
++
++&aes {
++ status = "okay";
++};
++
++&sham {
++ status = "okay";
++};
+diff --git a/arch/arm/boot/dts/am335x-pocketbeagle.dts b/arch/arm/boot/dts/am335x-pocketbeagle.dts
+new file mode 100644
+index 000000000000..62fe5cab9fae
+--- /dev/null
++++ b/arch/arm/boot/dts/am335x-pocketbeagle.dts
+@@ -0,0 +1,237 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
++ *
++ * Author: Robert Nelson <robertcnelson@gmail.com>
++ */
++/dts-v1/;
++
++#include "am33xx.dtsi"
++#include "am335x-osd335x-common.dtsi"
++
++/ {
++ model = "TI AM335x PocketBeagle";
++ compatible = "ti,am335x-pocketbeagle", "ti,am335x-bone", "ti,am33xx";
++
++ chosen {
++ stdout-path = &uart0;
++ };
++
++ leds {
++ pinctrl-names = "default";
++ pinctrl-0 = <&usr_leds_pins>;
++
++ compatible = "gpio-leds";
++
++ usr0 {
++ label = "beaglebone:green:usr0";
++ gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "heartbeat";
++ default-state = "off";
++ };
++
++ usr1 {
++ label = "beaglebone:green:usr1";
++ gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "mmc0";
++ default-state = "off";
++ };
++
++ usr2 {
++ label = "beaglebone:green:usr2";
++ gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
++ linux,default-trigger = "cpu0";
++ default-state = "off";
++ };
++
++ usr3 {
++ label = "beaglebone:green:usr3";
++ gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
++ default-state = "off";
++ };
++ };
++
++ vmmcsd_fixed: fixedregulator0 {
++ compatible = "regulator-fixed";
++ regulator-name = "vmmcsd_fixed";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ };
++};
++
++&am33xx_pinmux {
++ i2c2_pins: pinmux-i2c2-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE3) /* (D17) uart1_rtsn.I2C2_SCL */
++ AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3) /* (D18) uart1_ctsn.I2C2_SDA */
++ >;
++ };
++
++ ehrpwm0_pins: pinmux-ehrpwm0-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* (A13) mcasp0_aclkx.ehrpwm0A */
++ >;
++ };
++
++ ehrpwm1_pins: pinmux-ehrpwm1-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* (U14) gpmc_a2.ehrpwm1A */
++ >;
++ };
++
++ mmc0_pins: pinmux-mmc0-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* (C15) spi0_cs1.gpio0[6] */
++ AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* (G16) mmc0_dat0.mmc0_dat0 */
++ AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* (G15) mmc0_dat1.mmc0_dat1 */
++ AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* (F18) mmc0_dat2.mmc0_dat2 */
++ AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* (F17) mmc0_dat3.mmc0_dat3 */
++ AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* (G18) mmc0_cmd.mmc0_cmd */
++ AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* (G17) mmc0_clk.mmc0_clk */
++ AM33XX_IOPAD(0x9a0, PIN_INPUT | MUX_MODE4) /* (B12) mcasp0_aclkr.mmc0_sdwp */
++ >;
++ };
++
++ spi0_pins: pinmux-spi0-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0) /* (A17) spi0_sclk.spi0_sclk */
++ AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* (B17) spi0_d0.spi0_d0 */
++ AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* (B16) spi0_d1.spi0_d1 */
++ AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0) /* (A16) spi0_cs0.spi0_cs0 */
++ >;
++ };
++
++ spi1_pins: pinmux-spi1-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x964, PIN_INPUT_PULLUP | MUX_MODE4) /* (C18) eCAP0_in_PWM0_out.spi1_sclk */
++ AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE4) /* (E18) uart0_ctsn.spi1_d0 */
++ AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE4) /* (E17) uart0_rtsn.spi1_d1 */
++ AM33XX_IOPAD(0x9b0, PIN_INPUT_PULLUP | MUX_MODE4) /* (A15) xdma_event_intr0.spi1_cs1 */
++ >;
++ };
++
++ usr_leds_pins: pinmux-usr-leds-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x854, PIN_OUTPUT | MUX_MODE7) /* (V15) gpmc_a5.gpio1[21] - USR_LED_0 */
++ AM33XX_IOPAD(0x858, PIN_OUTPUT | MUX_MODE7) /* (U15) gpmc_a6.gpio1[22] - USR_LED_1 */
++ AM33XX_IOPAD(0x85c, PIN_OUTPUT | MUX_MODE7) /* (T15) gpmc_a7.gpio1[23] - USR_LED_2 */
++ AM33XX_IOPAD(0x860, PIN_OUTPUT | MUX_MODE7) /* (V16) gpmc_a8.gpio1[24] - USR_LED_3 */
++ >;
++ };
++
++ uart0_pins: pinmux-uart0-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* (E15) uart0_rxd.uart0_rxd */
++ AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* (E16) uart0_txd.uart0_txd */
++ >;
++ };
++
++ uart4_pins: pinmux-uart4-pins {
++ pinctrl-single,pins = <
++ AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6) /* (T17) gpmc_wait0.uart4_rxd */
++ AM33XX_IOPAD(0x874, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* (U17) gpmc_wpn.uart4_txd */
++ >;
++ };
++};
++
++&epwmss0 {
++ status = "okay";
++};
++
++&ehrpwm0 {
++ status = "okay";
++ pinctrl-names = "default";
++ pinctrl-0 = <&ehrpwm0_pins>;
++};
++
++&epwmss1 {
++ status = "okay";
++};
++
++&ehrpwm1 {
++ status = "okay";
++ pinctrl-names = "default";
++ pinctrl-0 = <&ehrpwm1_pins>;
++};
++
++&i2c0 {
++ eeprom: eeprom@50 {
++ compatible = "atmel,24c256";
++ reg = <0x50>;
++ };
++};
++
++&i2c2 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&i2c2_pins>;
++
++ status = "okay";
++ clock-frequency = <400000>;
++};
++
++&mmc1 {
++ status = "okay";
++ vmmc-supply = <&vmmcsd_fixed>;
++ bus-width = <4>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&mmc0_pins>;
++ cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
++};
++
++&rtc {
++ system-power-controller;
++};
++
++&tscadc {
++ status = "okay";
++ adc {
++ ti,adc-channels = <0 1 2 3 4 5 6 7>;
++ ti,chan-step-avg = <16 16 16 16 16 16 16 16>;
++ ti,chan-step-opendelay = <0x98 0x98 0x98 0x98 0x98 0x98 0x98 0x98>;
++ ti,chan-step-sampledelay = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
++ };
++};
++
++&uart0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart0_pins>;
++
++ status = "okay";
++};
++
++&uart4 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart4_pins>;
++
++ status = "okay";
++};
++
++&usb {
++ status = "okay";
++};
++
++&usb_ctrl_mod {
++ status = "okay";
++};
++
++&usb0_phy {
++ status = "okay";
++};
++
++&usb0 {
++ status = "okay";
++ dr_mode = "otg";
++};
++
++&usb1_phy {
++ status = "okay";
++};
++
++&usb1 {
++ status = "okay";
++ dr_mode = "host";
++};
++
++&cppi41dma {
++ status = "okay";
++};
+--
+2.17.0
+
diff --git a/arm-exynos-fix-dwc3-neg.patch b/arm-exynos-fix-dwc3-neg.patch
deleted file mode 100644
index b80a4f962..000000000
--- a/arm-exynos-fix-dwc3-neg.patch
+++ /dev/null
@@ -1,283 +0,0 @@
-From d8c80bb3b55b0821e1cf6a4814262c152ae5bc4b Mon Sep 17 00:00:00 2001
-From: Vivek Gautam <gautam.vivek@samsung.com>
-Date: Mon, 9 Oct 2017 14:00:51 +0200
-Subject: phy: exynos5-usbdrd: Calibrate LOS levels for exynos5420/5800
-
-Adding phy calibration sequence for USB 3.0 DRD PHY present on
-Exynos5420/5800 systems.
-This calibration facilitates setting certain PHY parameters viz.
-the Loss-of-Signal (LOS) Detector Threshold Level, as well as
-Tx-Vboost-Level for Super-Speed operations.
-Additionally we also set proper time to wait for RxDetect measurement,
-for desired PHY reference clock, so as to solve issue with enumeration
-of few USB 3.0 devices, like Samsung SUM-TSB16S 3.0 USB drive
-on the controller.
-
-We are using CR_port for this purpose to send required data
-to override the LOS values.
-
-On testing with USB 3.0 devices on USB 3.0 port present on
-SMDK5420, and peach-pit boards should see following message:
-usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
-
-and without this patch, should see below shown message:
-usb 1-1: new high-speed USB device number 2 using xhci-hcd
-
-[Also removed unnecessary extra lines in the register macro definitions]
-
-Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
-[adapted to use phy_calibrate as entry point]
-Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
-Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
-Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
-
-Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
----
- drivers/phy/samsung/phy-exynos5-usbdrd.c | 183 +++++++++++++++++++++++++++++++
- drivers/usb/dwc3/core.c | 2 +
- 2 files changed, 185 insertions(+)
-
-diff --git a/drivers/phy/samsung/phy-exynos5-usbdrd.c b/drivers/phy/samsung/phy-exynos5-usbdrd.c
-index 22c68f5..b8b226a 100644
---- a/drivers/phy/samsung/phy-exynos5-usbdrd.c
-+++ b/drivers/phy/samsung/phy-exynos5-usbdrd.c
-@@ -90,7 +90,17 @@
- #define PHYCLKRST_COMMONONN BIT(0)
-
- #define EXYNOS5_DRD_PHYREG0 0x14
-+#define PHYREG0_SSC_REF_CLK_SEL BIT(21)
-+#define PHYREG0_SSC_RANGE BIT(20)
-+#define PHYREG0_CR_WRITE BIT(19)
-+#define PHYREG0_CR_READ BIT(18)
-+#define PHYREG0_CR_DATA_IN(_x) ((_x) << 2)
-+#define PHYREG0_CR_CAP_DATA BIT(1)
-+#define PHYREG0_CR_CAP_ADDR BIT(0)
-+
- #define EXYNOS5_DRD_PHYREG1 0x18
-+#define PHYREG1_CR_DATA_OUT(_x) ((_x) << 1)
-+#define PHYREG1_CR_ACK BIT(0)
-
- #define EXYNOS5_DRD_PHYPARAM0 0x1c
-
-@@ -119,6 +129,25 @@
- #define EXYNOS5_DRD_PHYRESUME 0x34
- #define EXYNOS5_DRD_LINKPORT 0x44
-
-+/* USB 3.0 DRD PHY SS Function Control Reg; accessed by CR_PORT */
-+#define EXYNOS5_DRD_PHYSS_LOSLEVEL_OVRD_IN (0x15)
-+#define LOSLEVEL_OVRD_IN_LOS_BIAS_5420 (0x5 << 13)
-+#define LOSLEVEL_OVRD_IN_LOS_BIAS_DEFAULT (0x0 << 13)
-+#define LOSLEVEL_OVRD_IN_EN (0x1 << 10)
-+#define LOSLEVEL_OVRD_IN_LOS_LEVEL_DEFAULT (0x9 << 0)
-+
-+#define EXYNOS5_DRD_PHYSS_TX_VBOOSTLEVEL_OVRD_IN (0x12)
-+#define TX_VBOOSTLEVEL_OVRD_IN_VBOOST_5420 (0x5 << 13)
-+#define TX_VBOOSTLEVEL_OVRD_IN_VBOOST_DEFAULT (0x4 << 13)
-+
-+#define EXYNOS5_DRD_PHYSS_LANE0_TX_DEBUG (0x1010)
-+#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_19M2_20M (0x4 << 4)
-+#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_24M (0x8 << 4)
-+#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_25M_26M (0x8 << 4)
-+#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_48M_50M_52M (0x20 << 4)
-+#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_62M5 (0x20 << 4)
-+#define LANE0_TX_DEBUG_RXDET_MEAS_TIME_96M_100M (0x40 << 4)
-+
- #define KHZ 1000
- #define MHZ (KHZ * KHZ)
-
-@@ -527,6 +556,151 @@ static int exynos5_usbdrd_phy_power_off(struct phy *phy)
- return 0;
- }
-
-+static int crport_handshake(struct exynos5_usbdrd_phy *phy_drd,
-+ u32 val, u32 cmd)
-+{
-+ u32 usec = 100;
-+ unsigned int result;
-+
-+ writel(val | cmd, phy_drd->reg_phy + EXYNOS5_DRD_PHYREG0);
-+
-+ do {
-+ result = readl(phy_drd->reg_phy + EXYNOS5_DRD_PHYREG1);
-+ if (result & PHYREG1_CR_ACK)
-+ break;
-+
-+ udelay(1);
-+ } while (usec-- > 0);
-+
-+ if (!usec) {
-+ dev_err(phy_drd->dev,
-+ "CRPORT handshake timeout1 (0x%08x)\n", val);
-+ return -ETIME;
-+ }
-+
-+ usec = 100;
-+
-+ writel(val, phy_drd->reg_phy + EXYNOS5_DRD_PHYREG0);
-+
-+ do {
-+ result = readl(phy_drd->reg_phy + EXYNOS5_DRD_PHYREG1);
-+ if (!(result & PHYREG1_CR_ACK))
-+ break;
-+
-+ udelay(1);
-+ } while (usec-- > 0);
-+
-+ if (!usec) {
-+ dev_err(phy_drd->dev,
-+ "CRPORT handshake timeout2 (0x%08x)\n", val);
-+ return -ETIME;
-+ }
-+
-+ return 0;
-+}
-+
-+static int crport_ctrl_write(struct exynos5_usbdrd_phy *phy_drd,
-+ u32 addr, u32 data)
-+{
-+ int ret;
-+
-+ /* Write Address */
-+ writel(PHYREG0_CR_DATA_IN(addr),
-+ phy_drd->reg_phy + EXYNOS5_DRD_PHYREG0);
-+ ret = crport_handshake(phy_drd, PHYREG0_CR_DATA_IN(addr),
-+ PHYREG0_CR_CAP_ADDR);
-+ if (ret)
-+ return ret;
-+
-+ /* Write Data */
-+ writel(PHYREG0_CR_DATA_IN(data),
-+ phy_drd->reg_phy + EXYNOS5_DRD_PHYREG0);
-+ ret = crport_handshake(phy_drd, PHYREG0_CR_DATA_IN(data),
-+ PHYREG0_CR_CAP_DATA);
-+ if (ret)
-+ return ret;
-+
-+ ret = crport_handshake(phy_drd, PHYREG0_CR_DATA_IN(data),
-+ PHYREG0_CR_WRITE);
-+
-+ return ret;
-+}
-+
-+/*
-+ * Calibrate few PHY parameters using CR_PORT register to meet
-+ * SuperSpeed requirements on Exynos5420 and Exynos5800 systems,
-+ * which have 28nm USB 3.0 DRD PHY.
-+ */
-+static int exynos5420_usbdrd_phy_calibrate(struct exynos5_usbdrd_phy *phy_drd)
-+{
-+ unsigned int temp;
-+ int ret = 0;
-+
-+ /*
-+ * Change los_bias to (0x5) for 28nm PHY from a
-+ * default value (0x0); los_level is set as default
-+ * (0x9) as also reflected in los_level[30:26] bits
-+ * of PHYPARAM0 register.
-+ */
-+ temp = LOSLEVEL_OVRD_IN_LOS_BIAS_5420 |
-+ LOSLEVEL_OVRD_IN_EN |
-+ LOSLEVEL_OVRD_IN_LOS_LEVEL_DEFAULT;
-+ ret = crport_ctrl_write(phy_drd,
-+ EXYNOS5_DRD_PHYSS_LOSLEVEL_OVRD_IN,
-+ temp);
-+ if (ret) {
-+ dev_err(phy_drd->dev,
-+ "Failed setting Loss-of-Signal level for SuperSpeed\n");
-+ return ret;
-+ }
-+
-+ /*
-+ * Set tx_vboost_lvl to (0x5) for 28nm PHY Tuning,
-+ * to raise Tx signal level from its default value of (0x4)
-+ */
-+ temp = TX_VBOOSTLEVEL_OVRD_IN_VBOOST_5420;
-+ ret = crport_ctrl_write(phy_drd,
-+ EXYNOS5_DRD_PHYSS_TX_VBOOSTLEVEL_OVRD_IN,
-+ temp);
-+ if (ret) {
-+ dev_err(phy_drd->dev,
-+ "Failed setting Tx-Vboost-Level for SuperSpeed\n");
-+ return ret;
-+ }
-+
-+ /*
-+ * Set proper time to wait for RxDetect measurement, for
-+ * desired reference clock of PHY, by tuning the CR_PORT
-+ * register LANE0.TX_DEBUG which is internal to PHY.
-+ * This fixes issue with few USB 3.0 devices, which are
-+ * not detected (not even generate interrupts on the bus
-+ * on insertion) without this change.
-+ * e.g. Samsung SUM-TSB16S 3.0 USB drive.
-+ */
-+ switch (phy_drd->extrefclk) {
-+ case EXYNOS5_FSEL_50MHZ:
-+ temp = LANE0_TX_DEBUG_RXDET_MEAS_TIME_48M_50M_52M;
-+ break;
-+ case EXYNOS5_FSEL_20MHZ:
-+ case EXYNOS5_FSEL_19MHZ2:
-+ temp = LANE0_TX_DEBUG_RXDET_MEAS_TIME_19M2_20M;
-+ break;
-+ case EXYNOS5_FSEL_24MHZ:
-+ default:
-+ temp = LANE0_TX_DEBUG_RXDET_MEAS_TIME_24M;
-+ break;
-+ }
-+
-+ ret = crport_ctrl_write(phy_drd,
-+ EXYNOS5_DRD_PHYSS_LANE0_TX_DEBUG,
-+ temp);
-+ if (ret)
-+ dev_err(phy_drd->dev,
-+ "Fail to set RxDet measurement time for SuperSpeed\n");
-+
-+ return ret;
-+}
-+
- static struct phy *exynos5_usbdrd_phy_xlate(struct device *dev,
- struct of_phandle_args *args)
- {
-@@ -538,11 +712,20 @@ static struct phy *exynos5_usbdrd_phy_xlate(struct device *dev,
- return phy_drd->phys[args->args[0]].phy;
- }
-
-+static int exynos5_usbdrd_phy_calibrate(struct phy *phy)
-+{
-+ struct phy_usb_instance *inst = phy_get_drvdata(phy);
-+ struct exynos5_usbdrd_phy *phy_drd = to_usbdrd_phy(inst);
-+
-+ return exynos5420_usbdrd_phy_calibrate(phy_drd);
-+}
-+
- static const struct phy_ops exynos5_usbdrd_phy_ops = {
- .init = exynos5_usbdrd_phy_init,
- .exit = exynos5_usbdrd_phy_exit,
- .power_on = exynos5_usbdrd_phy_power_on,
- .power_off = exynos5_usbdrd_phy_power_off,
-+ .calibrate = exynos5_usbdrd_phy_calibrate,
- .owner = THIS_MODULE,
- };
-
-diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
-index 0783250..71707a3 100644
---- a/drivers/usb/dwc3/core.c
-+++ b/drivers/usb/dwc3/core.c
-@@ -147,6 +147,7 @@ static void __dwc3_set_mode(struct work_struct *work)
- otg_set_vbus(dwc->usb2_phy->otg, true);
- phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST);
- phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST);
-+ phy_calibrate(dwc->usb2_generic_phy);
- }
- break;
- case DWC3_GCTL_PRTCAP_DEVICE:
-@@ -945,6 +946,7 @@ static int dwc3_core_init_mode(struct dwc3 *dwc)
- dev_err(dev, "failed to initialize host\n");
- return ret;
- }
-+ phy_calibrate(dwc->usb2_generic_phy);
- break;
- case USB_DR_MODE_OTG:
- INIT_WORK(&dwc->drd_work, __dwc3_set_mode);
---
-cgit v1.1
-
diff --git a/arm-imx6-cpufreq-fix-loading.patch b/arm-imx6-cpufreq-fix-loading.patch
deleted file mode 100644
index 3c4811c1d..000000000
--- a/arm-imx6-cpufreq-fix-loading.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From d0404738c687c0ecaa7d6b7c5c39e4c0dac791e6 Mon Sep 17 00:00:00 2001
-From: Nicolas Chauvet <kwizart@gmail.com>
-Date: Tue, 30 Jan 2018 10:55:26 +0100
-Subject: arm: imx: Add MODULE_ALIAS for cpufreq
-
-Without this, the imx6q-cpufreq driver isn't loaded
-automatically when built as a module
-
-Tested on wandboard quad with a fedora 27 kernel rpm
-
-Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
-Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
-Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
----
- drivers/cpufreq/imx6q-cpufreq.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/cpufreq/imx6q-cpufreq.c b/drivers/cpufreq/imx6q-cpufreq.c
-index 741f22e..ff67859 100644
---- a/drivers/cpufreq/imx6q-cpufreq.c
-+++ b/drivers/cpufreq/imx6q-cpufreq.c
-@@ -504,6 +504,7 @@ static struct platform_driver imx6q_cpufreq_platdrv = {
- };
- module_platform_driver(imx6q_cpufreq_platdrv);
-
-+MODULE_ALIAS("platform:imx6q-cpufreq");
- MODULE_AUTHOR("Shawn Guo <shawn.guo@linaro.org>");
- MODULE_DESCRIPTION("Freescale i.MX6Q cpufreq driver");
- MODULE_LICENSE("GPL");
---
-cgit v1.1
-
diff --git a/arm-imx6-hummingboard2.patch b/arm-imx6-hummingboard2.patch
deleted file mode 100644
index 9c55a7b81..000000000
--- a/arm-imx6-hummingboard2.patch
+++ /dev/null
@@ -1,902 +0,0 @@
-From e9e601215d294d473a593641b1ecfd1fa4586a90 Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Thu, 6 Apr 2017 13:52:54 +0100
-Subject: [PATCH 1/4] [RFC,v2,1/4] ARM: dts: imx6qdl: add HummingBoard2 boards
-
-From: Jon Nettleton <jon@solid-run.com>
-
-This adds support for the Hummingboard Gate and Edge devices from
-SolidRun.
-
-Signed-off-by: Jon Nettleton <jon@solid-run.com>
-Signed-off-by: Rabeeh Khoury <rabeeh@solid-run.com>
-Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
----
- arch/arm/boot/dts/Makefile | 2 +
- arch/arm/boot/dts/imx6dl-hummingboard2.dts | 52 +++
- arch/arm/boot/dts/imx6q-hummingboard2.dts | 60 +++
- arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 543 +++++++++++++++++++++++++++
- 4 files changed, 657 insertions(+)
- create mode 100644 arch/arm/boot/dts/imx6dl-hummingboard2.dts
- create mode 100644 arch/arm/boot/dts/imx6q-hummingboard2.dts
- create mode 100644 arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-
-diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index 011808490fed..ccdff6650541 100644
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -353,6 +353,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
- imx6dl-gw5903.dtb \
- imx6dl-gw5904.dtb \
- imx6dl-hummingboard.dtb \
-+ imx6dl-hummingboard2.dtb \
- imx6dl-icore.dtb \
- imx6dl-icore-rqs.dtb \
- imx6dl-nit6xlite.dtb \
-@@ -397,6 +398,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
- imx6q-gw5904.dtb \
- imx6q-h100.dtb \
- imx6q-hummingboard.dtb \
-+ imx6q-hummingboard2.dtb \
- imx6q-icore.dtb \
- imx6q-icore-ofcap10.dtb \
- imx6q-icore-ofcap12.dtb \
-diff --git a/arch/arm/boot/dts/imx6dl-hummingboard2.dts b/arch/arm/boot/dts/imx6dl-hummingboard2.dts
-new file mode 100644
-index 000000000000..990b5050de5b
---- /dev/null
-+++ b/arch/arm/boot/dts/imx6dl-hummingboard2.dts
-@@ -0,0 +1,52 @@
-+/*
-+ * Device Tree file for SolidRun HummingBoard2
-+ * Copyright (C) 2015 Rabeeh Khoury <rabeeh@solid-run.com>
-+ * Based on work by Russell King
-+ *
-+ * This file is dual-licensed: you can use it either under the terms
-+ * of the GPL or the X11 license, at your option. Note that this dual
-+ * licensing only applies to this file, and not this project as a
-+ * whole.
-+ *
-+ * a) This file is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License.
-+ *
-+ * This file 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.
-+ *
-+ * Or, alternatively
-+ *
-+ * b) Permission is hereby granted, free of charge, to any person
-+ * obtaining a copy of this software and associated documentation
-+ * files (the "Software"), to deal in the Software without
-+ * restriction, including without limitation the rights to use
-+ * copy, modify, merge, publish, distribute, sublicense, and/or
-+ * sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following
-+ * conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be
-+ * included in all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
-+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
-+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-+ * OTHER DEALINGS IN THE SOFTWARE.
-+ */
-+/dts-v1/;
-+
-+#include "imx6dl.dtsi"
-+#include "imx6qdl-hummingboard2.dtsi"
-+
-+/ {
-+ model = "SolidRun HummingBoard2 Solo/DualLite";
-+ compatible = "solidrun,hummingboard2/dl", "fsl,imx6dl";
-+};
-diff --git a/arch/arm/boot/dts/imx6q-hummingboard2.dts b/arch/arm/boot/dts/imx6q-hummingboard2.dts
-new file mode 100644
-index 000000000000..f5eec9163bb8
---- /dev/null
-+++ b/arch/arm/boot/dts/imx6q-hummingboard2.dts
-@@ -0,0 +1,60 @@
-+/*
-+ * Device Tree file for SolidRun HummingBoard2
-+ * Copyright (C) 2015 Rabeeh Khoury <rabeeh@solid-run.com>
-+ * Based on work by Russell King
-+ *
-+ * This file is dual-licensed: you can use it either under the terms
-+ * of the GPL or the X11 license, at your option. Note that this dual
-+ * licensing only applies to this file, and not this project as a
-+ * whole.
-+ *
-+ * a) This file is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License.
-+ *
-+ * This file 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.
-+ *
-+ * Or, alternatively
-+ *
-+ * b) Permission is hereby granted, free of charge, to any person
-+ * obtaining a copy of this software and associated documentation
-+ * files (the "Software"), to deal in the Software without
-+ * restriction, including without limitation the rights to use
-+ * copy, modify, merge, publish, distribute, sublicense, and/or
-+ * sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following
-+ * conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be
-+ * included in all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
-+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
-+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-+ * OTHER DEALINGS IN THE SOFTWARE.
-+ */
-+/dts-v1/;
-+
-+#include "imx6q.dtsi"
-+#include "imx6qdl-hummingboard2.dtsi"
-+
-+/ {
-+ model = "SolidRun HummingBoard2 Dual/Quad";
-+ compatible = "solidrun,hummingboard2/q", "fsl,imx6q";
-+};
-+
-+&sata {
-+ status = "okay";
-+ fsl,transmit-level-mV = <1104>;
-+ fsl,transmit-boost-mdB = <0>;
-+ fsl,transmit-atten-16ths = <9>;
-+ fsl,no-spread-spectrum;
-+};
-diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-new file mode 100644
-index 000000000000..11b63f6f2b89
---- /dev/null
-+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-@@ -0,0 +1,543 @@
-+/*
-+ * Device Tree file for SolidRun HummingBoard2
-+ * Copyright (C) 2015 Rabeeh Khoury <rabeeh@solid-run.com>
-+ *
-+ * This file is dual-licensed: you can use it either under the terms
-+ * of the GPL or the X11 license, at your option. Note that this dual
-+ * licensing only applies to this file, and not this project as a
-+ * whole.
-+ *
-+ * a) This file is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License.
-+ *
-+ * This file 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.
-+ *
-+ * Or, alternatively,
-+ *
-+ * b) Permission is hereby granted, free of charge, to any person
-+ * obtaining a copy of this software and associated documentation
-+ * files (the "Software"), to deal in the Software without
-+ * restriction, including without limitation the rights to use
-+ * copy, modify, merge, publish, distribute, sublicense, and/or
-+ * sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following
-+ * conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be
-+ * included in all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-+ * OTHER DEALINGS IN THE SOFTWARE.
-+ */
-+#include "imx6qdl-microsom.dtsi"
-+#include "imx6qdl-microsom-ar8035.dtsi"
-+
-+/ {
-+ chosen {
-+ stdout-path = &uart1;
-+ };
-+
-+ ir_recv: ir-receiver {
-+ compatible = "gpio-ir-receiver";
-+ gpios = <&gpio7 9 1>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_gpio7_9>;
-+ linux,rc-map-name = "rc-rc6-mce";
-+ };
-+
-+ usdhc2_pwrseq: usdhc2-pwrseq {
-+ compatible = "mmc-pwrseq-simple";
-+ reset-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;
-+ };
-+
-+ reg_3p3v: regulator-3p3v {
-+ compatible = "regulator-fixed";
-+ regulator-name = "3P3V";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ regulator-always-on;
-+ };
-+
-+ reg_1p8v: regulator-1p8v {
-+ compatible = "regulator-fixed";
-+ regulator-name = "1P8V";
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ regulator-always-on;
-+ };
-+
-+ reg_usbh1_vbus: regulator-usb-h1-vbus {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio1 0 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_usbh1_vbus>;
-+ regulator-name = "usb_h1_vbus";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ };
-+
-+ reg_usbotg_vbus: regulator-usb-otg-vbus {
-+ compatible = "regulator-fixed";
-+ enable-active-high;
-+ gpio = <&gpio3 22 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_usbotg_vbus>;
-+ regulator-name = "usb_otg_vbus";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ };
-+
-+ reg_usbh2_vbus: regulator-usb-h2-vbus {
-+ compatible = "regulator-gpio";
-+ enable-active-high;
-+ enable-gpio = <&gpio2 13 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_usbh2_vbus>;
-+ regulator-name = "usb_h2_vbus";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ regulator-boot-on;
-+ };
-+
-+ reg_usbh3_vbus: regulator-usb-h3-vbus {
-+ compatible = "regulator-gpio";
-+ enable-active-high;
-+ enable-gpio = <&gpio7 10 0>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_usbh3_vbus>;
-+ regulator-name = "usb_h3_vbus";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ regulator-boot-on;
-+ };
-+
-+ sound-sgtl5000 {
-+ audio-codec = <&sgtl5000>;
-+ audio-routing =
-+ "MIC_IN", "Mic Jack",
-+ "Mic Jack", "Mic Bias",
-+ "Headphone Jack", "HP_OUT";
-+ compatible = "fsl,imx-audio-sgtl5000";
-+ model = "On-board Codec";
-+ mux-ext-port = <5>;
-+ mux-int-port = <1>;
-+ ssi-controller = <&ssi1>;
-+ };
-+};
-+
-+&audmux {
-+ status = "okay";
-+};
-+
-+&ecspi2 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_ecspi2>;
-+ cs-gpios = <&gpio2 26 0>;
-+ status = "okay";
-+};
-+
-+&hdmi {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_hdmi>;
-+ ddc-i2c-bus = <&i2c2>;
-+ status = "okay";
-+};
-+
-+&i2c1 {
-+ clock-frequency = <100000>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_i2c1>;
-+ status = "okay";
-+
-+ pcf8523: rtc@68 {
-+ compatible = "nxp,pcf8523";
-+ reg = <0x68>;
-+ nxp,12p5_pf;
-+ };
-+
-+ sgtl5000: codec@0a {
-+ clocks = <&clks IMX6QDL_CLK_CKO>;
-+ compatible = "fsl,sgtl5000";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_sgtl5000>;
-+ reg = <0x0a>;
-+ VDDA-supply = <&reg_3p3v>;
-+ VDDIO-supply = <&reg_3p3v>;
-+ };
-+};
-+
-+&i2c2 {
-+ clock-frequency = <100000>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_i2c2>;
-+ status = "okay";
-+};
-+
-+&i2c3 {
-+ clock-frequency = <100000>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_i2c3>;
-+ status = "okay";
-+};
-+
-+&iomuxc {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hog>;
-+
-+ hummingboard2 {
-+ pinctrl_hog: hoggrp {
-+ fsl,pins = <
-+ /*
-+ * 36 pin headers GPIO description. The pins
-+ * numbering as following -
-+ *
-+ * 3.2v 5v 74 75
-+ * 73 72 71 70
-+ * 69 68 67 66
-+ *
-+ * 77 78 79 76
-+ * 65 64 61 60
-+ * 53 52 51 50
-+ * 49 48 166 132
-+ * 95 94 90 91
-+ * GND 54 24 204
-+ *
-+ * The GPIO numbers can be extracted using
-+ * signal name from below.
-+ * Example -
-+ * MX6QDL_PAD_EIM_DA10__GPIO3_IO10 is
-+ * GPIO(3,10) which is (3-1)*32+10 = gpio 74
-+ *
-+ * i.e. The mapping of GPIO(X,Y) to Linux gpio
-+ * number is : gpio number = (X-1) * 32 + Y
-+ */
-+ /* DI1_PIN15 */
-+ MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x400130b1
-+ /* DI1_PIN02 */
-+ MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x400130b1
-+ /* DISP1_DATA00 */
-+ MX6QDL_PAD_EIM_DA9__GPIO3_IO09 0x400130b1
-+ /* DISP1_DATA01 */
-+ MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x400130b1
-+ /* DISP1_DATA02 */
-+ MX6QDL_PAD_EIM_DA7__GPIO3_IO07 0x400130b1
-+ /* DISP1_DATA03 */
-+ MX6QDL_PAD_EIM_DA6__GPIO3_IO06 0x400130b1
-+ /* DISP1_DATA04 */
-+ MX6QDL_PAD_EIM_DA5__GPIO3_IO05 0x400130b1
-+ /* DISP1_DATA05 */
-+ MX6QDL_PAD_EIM_DA4__GPIO3_IO04 0x400130b1
-+ /* DISP1_DATA06 */
-+ MX6QDL_PAD_EIM_DA3__GPIO3_IO03 0x400130b1
-+ /* DISP1_DATA07 */
-+ MX6QDL_PAD_EIM_DA2__GPIO3_IO02 0x400130b1
-+ /* DI1_D0_CS */
-+ MX6QDL_PAD_EIM_DA13__GPIO3_IO13 0x400130b1
-+ /* DI1_D1_CS */
-+ MX6QDL_PAD_EIM_DA14__GPIO3_IO14 0x400130b1
-+ /* DI1_PIN01 */
-+ MX6QDL_PAD_EIM_DA15__GPIO3_IO15 0x400130b1
-+ /* DI1_PIN03 */
-+ MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x400130b1
-+ /* DISP1_DATA08 */
-+ MX6QDL_PAD_EIM_DA1__GPIO3_IO01 0x400130b1
-+ /* DISP1_DATA09 */
-+ MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x400130b1
-+ /* DISP1_DATA10 */
-+ MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x400130b1
-+ /* DISP1_DATA11 */
-+ MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x400130b1
-+ /* DISP1_DATA12 */
-+ MX6QDL_PAD_EIM_A17__GPIO2_IO21 0x400130b1
-+ /* DISP1_DATA13 */
-+ MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x400130b1
-+ /* DISP1_DATA14 */
-+ MX6QDL_PAD_EIM_A19__GPIO2_IO19 0x400130b1
-+ /* DISP1_DATA15 */
-+ MX6QDL_PAD_EIM_A20__GPIO2_IO18 0x400130b1
-+ /* DISP1_DATA16 */
-+ MX6QDL_PAD_EIM_A21__GPIO2_IO17 0x400130b1
-+ /* DISP1_DATA17 */
-+ MX6QDL_PAD_EIM_A22__GPIO2_IO16 0x400130b1
-+ /* DISP1_DATA18 */
-+ MX6QDL_PAD_EIM_A23__GPIO6_IO06 0x400130b1
-+ /* DISP1_DATA19 */
-+ MX6QDL_PAD_EIM_A24__GPIO5_IO04 0x400130b1
-+ /* DISP1_DATA20 */
-+ MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x400130b1
-+ /* DISP1_DATA21 */
-+ MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x400130b1
-+ /* DISP1_DATA22 */
-+ MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x400130b1
-+ /* DISP1_DATA23 */
-+ MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x400130b1
-+ /* DI1_DISP_CLK */
-+ MX6QDL_PAD_EIM_A16__GPIO2_IO22 0x400130b1
-+ /* SPDIF_IN */
-+ MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x400130b1
-+ /* SPDIF_OUT */
-+ MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x400130b1
-+
-+ /* MikroBUS GPIO pin number 10 */
-+ MX6QDL_PAD_EIM_LBA__GPIO2_IO27 0x400130b1
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_ecspi2: hummingboard2-ecspi2grp {
-+ fsl,pins = <
-+ MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100b1
-+ MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x100b1
-+ MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x100b1
-+ MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x000b1 /* CS */
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_gpio7_9: hummingboard2-gpio7_9 {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD4_CMD__GPIO7_IO09 0x80000000
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_hdmi: hummingboard2-hdmi {
-+ fsl,pins = <
-+ MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_i2c1: hummingboard2-i2c1 {
-+ fsl,pins = <
-+ MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
-+ MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_i2c2: hummingboard2-i2c2 {
-+ fsl,pins = <
-+ MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
-+ MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_i2c3: hummingboard2-i2c3 {
-+ fsl,pins = <
-+ MX6QDL_PAD_EIM_D17__I2C3_SCL 0x4001b8b1
-+ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_mipi: hummingboard2_mipi {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0x4001b8b1
-+ MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x4001b8b1
-+ MX6QDL_PAD_NANDF_CS2__CCM_CLKO2 0x130b0
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_pcie_reset: hummingboard2-pcie-reset {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x1b0b1
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_pwm1: pwm1grp {
-+ fsl,pins = <
-+ MX6QDL_PAD_DISP0_DAT8__PWM1_OUT 0x1b0b1
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_sgtl5000: hummingboard2-sgtl5000 {
-+ fsl,pins = <
-+ MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x130b0
-+ MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0
-+ MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x110b0
-+ MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0
-+ MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x130b0
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_usbh1_vbus: hummingboard2-usbh1-vbus {
-+ fsl,pins = <MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0>;
-+ };
-+
-+ pinctrl_hummingboard2_usbh2_vbus: hummingboard2-usbh2-vbus {
-+ fsl,pins = <MX6QDL_PAD_SD4_DAT5__GPIO2_IO13 0x1b0b0>;
-+ };
-+
-+ pinctrl_hummingboard2_usbh3_vbus: hummingboard2-usbh3-vbus {
-+ fsl,pins = <MX6QDL_PAD_SD4_CLK__GPIO7_IO10 0x1b0b0>;
-+ };
-+
-+ pinctrl_hummingboard2_usbotg_id: hummingboard2-usbotg-id {
-+ /*
-+ * Similar to pinctrl_usbotg_2, but we want it
-+ * pulled down for a fixed host connection.
-+ */
-+ fsl,pins = <MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059>;
-+ };
-+
-+ pinctrl_hummingboard2_usbotg_vbus: hummingboard2-usbotg-vbus {
-+ fsl,pins = <MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0>;
-+ };
-+
-+ pinctrl_hummingboard2_usdhc2_aux: hummingboard2-usdhc2-aux {
-+ fsl,pins = <
-+ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x13071
-+ MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
-+ MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_usdhc2: hummingboard2-usdhc2 {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
-+ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
-+ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
-+ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
-+ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
-+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_usdhc2_100mhz: hummingboard2-usdhc2-100mhz {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9
-+ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9
-+ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9
-+ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9
-+ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9
-+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x130b9
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_usdhc2_200mhz: hummingboard2-usdhc2-200mhz {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
-+ MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
-+ MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
-+ MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
-+ MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
-+ MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x130f9
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_usdhc3: hummingboard2-usdhc3 {
-+ fsl,pins = <
-+ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
-+ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
-+ MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
-+ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
-+ MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
-+ MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
-+ MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
-+ MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
-+ MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
-+ MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
-+ MX6QDL_PAD_SD3_RST__SD3_RESET 0x17059
-+ >;
-+ };
-+
-+ pinctrl_hummingboard2_uart3: hummingboard2-uart3 {
-+ fsl,pins = <
-+ MX6QDL_PAD_EIM_D25__UART3_TX_DATA 0x1b0b1
-+ MX6QDL_PAD_EIM_D24__UART3_RX_DATA 0x40013000
-+ >;
-+ };
-+ };
-+};
-+
-+&ldb {
-+ status = "disabled";
-+
-+ lvds-channel@0 {
-+ fsl,data-mapping = "spwg";
-+ fsl,data-width = <18>;
-+ };
-+};
-+
-+&pcie {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_pcie_reset>;
-+ reset-gpio = <&gpio2 11 0>;
-+ status = "okay";
-+};
-+
-+&pwm1 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_pwm1>;
-+ status = "okay";
-+};
-+
-+&pwm3 {
-+ status = "disabled";
-+};
-+
-+&pwm4 {
-+ status = "disabled";
-+};
-+
-+&ssi1 {
-+ status = "okay";
-+};
-+
-+&usbh1 {
-+ disable-over-current;
-+ vbus-supply = <&reg_usbh1_vbus>;
-+ status = "okay";
-+};
-+
-+&usbotg {
-+ disable-over-current;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_usbotg_id>;
-+ vbus-supply = <&reg_usbotg_vbus>;
-+ status = "okay";
-+};
-+
-+&usdhc2 {
-+ pinctrl-names = "default", "state_100mhz", "state_200mhz";
-+ pinctrl-0 = <
-+ &pinctrl_hummingboard2_usdhc2_aux
-+ &pinctrl_hummingboard2_usdhc2
-+ >;
-+ pinctrl-1 = <
-+ &pinctrl_hummingboard2_usdhc2_aux
-+ &pinctrl_hummingboard2_usdhc2_100mhz
-+ >;
-+ pinctrl-2 = <
-+ &pinctrl_hummingboard2_usdhc2_aux
-+ &pinctrl_hummingboard2_usdhc2_200mhz
-+ >;
-+ mmc-pwrseq = <&usdhc2_pwrseq>;
-+ cd-gpios = <&gpio1 4 0>;
-+ status = "okay";
-+};
-+
-+&usdhc3 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <
-+ &pinctrl_hummingboard2_usdhc3
-+ >;
-+ vmmc-supply = <&reg_3p3v>;
-+ vqmmc-supply = <&reg_3p3v>;
-+ bus-width = <8>;
-+ non-removable;
-+ status = "okay";
-+};
-+
-+&uart3 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_uart3>;
-+ status = "okay";
-+};
---
-2.12.2
-
-From 3da2a99c4a8f19e846b19071441d2c6b88e00c06 Mon Sep 17 00:00:00 2001
-From: Russell King <rmk+kernel@arm.linux.org.uk>
-Date: Fri, 13 Jan 2017 14:45:30 +0000
-Subject: [PATCH 2/4] ARM: dts: imx6*-hummingboard2: fix SD card detect
-
-Fix the SD card detect signal, which was missing the polarity
-specification, and the pull-up necessary for proper signalling.
-
-Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
----
- arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-index 11b63f6f2b89..734487edf200 100644
---- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-@@ -393,7 +393,7 @@
-
- pinctrl_hummingboard2_usdhc2_aux: hummingboard2-usdhc2-aux {
- fsl,pins = <
-- MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x13071
-+ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
- MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
- MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0
- >;
-@@ -520,7 +520,7 @@
- &pinctrl_hummingboard2_usdhc2_200mhz
- >;
- mmc-pwrseq = <&usdhc2_pwrseq>;
-- cd-gpios = <&gpio1 4 0>;
-+ cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
- status = "okay";
- };
-
---
-2.12.2
-
-From 57b0103b600a535a35e5ff9714649519a0b3a77a Mon Sep 17 00:00:00 2001
-From: Russell King <rmk+kernel@armlinux.org.uk>
-Date: Fri, 13 Jan 2017 14:45:35 +0000
-Subject: [PATCH 3/4] ARM: dts: imx6*-hummingboard2: use proper gpio flags
- definitions
-
-Use proper gpio flag definitions for GPIOs rather than using opaque
-uninformative numbers.
-
-Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
----
- arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-index 734487edf200..88aaed26dd77 100644
---- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-@@ -50,7 +50,7 @@
-
- ir_recv: ir-receiver {
- compatible = "gpio-ir-receiver";
-- gpios = <&gpio7 9 1>;
-+ gpios = <&gpio7 9 GPIO_ACTIVE_LOW>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard2_gpio7_9>;
- linux,rc-map-name = "rc-rc6-mce";
-@@ -80,7 +80,7 @@
- reg_usbh1_vbus: regulator-usb-h1-vbus {
- compatible = "regulator-fixed";
- enable-active-high;
-- gpio = <&gpio1 0 0>;
-+ gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard2_usbh1_vbus>;
- regulator-name = "usb_h1_vbus";
-@@ -91,7 +91,7 @@
- reg_usbotg_vbus: regulator-usb-otg-vbus {
- compatible = "regulator-fixed";
- enable-active-high;
-- gpio = <&gpio3 22 0>;
-+ gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard2_usbotg_vbus>;
- regulator-name = "usb_otg_vbus";
-@@ -102,7 +102,7 @@
- reg_usbh2_vbus: regulator-usb-h2-vbus {
- compatible = "regulator-gpio";
- enable-active-high;
-- enable-gpio = <&gpio2 13 0>;
-+ enable-gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard2_usbh2_vbus>;
- regulator-name = "usb_h2_vbus";
-@@ -114,7 +114,7 @@
- reg_usbh3_vbus: regulator-usb-h3-vbus {
- compatible = "regulator-gpio";
- enable-active-high;
-- enable-gpio = <&gpio7 10 0>;
-+ enable-gpio = <&gpio7 10 GPIO_ACTIVE_HIGH>;
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard2_usbh3_vbus>;
- regulator-name = "usb_h3_vbus";
---
-2.12.2
-
-From f931de70370ff576f381cb9745bc54225a1a8056 Mon Sep 17 00:00:00 2001
-From: Russell King <rmk+kernel@arm.linux.org.uk>
-Date: Fri, 13 Jan 2017 14:45:40 +0000
-Subject: [PATCH 4/4] ARM: dts: imx6*-hummingboard2: convert to more
- conventional vmmc-supply
-
-Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
----
- arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 26 +++++++++++++++++++-------
- 1 file changed, 19 insertions(+), 7 deletions(-)
-
-diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-index 88aaed26dd77..f19d30b34ac4 100644
---- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
-@@ -56,11 +56,6 @@
- linux,rc-map-name = "rc-rc6-mce";
- };
-
-- usdhc2_pwrseq: usdhc2-pwrseq {
-- compatible = "mmc-pwrseq-simple";
-- reset-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;
-- };
--
- reg_3p3v: regulator-3p3v {
- compatible = "regulator-fixed";
- regulator-name = "3P3V";
-@@ -123,6 +118,18 @@
- regulator-boot-on;
- };
-
-+ reg_usdhc2_vmmc: reg-usdhc2-vmmc {
-+ compatible = "regulator-fixed";
-+ gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pinctrl_hummingboard2_vmmc>;
-+ regulator-boot-on;
-+ regulator-max-microvolt = <3300000>;
-+ regulator-min-microvolt = <3300000>;
-+ regulator-name = "usdhc2_vmmc";
-+ startup-delay-us = <1000>;
-+ };
-+
- sound-sgtl5000 {
- audio-codec = <&sgtl5000>;
- audio-routing =
-@@ -393,7 +400,6 @@
-
- pinctrl_hummingboard2_usdhc2_aux: hummingboard2-usdhc2-aux {
- fsl,pins = <
-- MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
- MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
- MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0
- >;
-@@ -432,6 +438,12 @@
- >;
- };
-
-+ pinctrl_hummingboard2_vmmc: hummingboard2-vmmc {
-+ fsl,pins = <
-+ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
-+ >;
-+ };
-+
- pinctrl_hummingboard2_usdhc3: hummingboard2-usdhc3 {
- fsl,pins = <
- MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
-@@ -519,7 +531,7 @@
- &pinctrl_hummingboard2_usdhc2_aux
- &pinctrl_hummingboard2_usdhc2_200mhz
- >;
-- mmc-pwrseq = <&usdhc2_pwrseq>;
-+ vmmc-supply = <&reg_usdhc2_vmmc>;
- cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
- status = "okay";
- };
---
-2.12.2
-
diff --git a/arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch b/arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch
deleted file mode 100644
index b55dec0cb..000000000
--- a/arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From bb3e08008c0e48fd4f51a0f0957eecae61a24d69 Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Tue, 1 Nov 2016 09:35:30 +0000
-Subject: [PATCH] Revert "mmc: omap_hsmmc: Use dma_request_chan() for
- requesting DMA channel"
-
-This reverts commit 81eef6ca92014845d40e3f1310e42b7010303acc.
----
- drivers/mmc/host/omap_hsmmc.c | 50 ++++++++++++++++++++++++++++++++++---------
- 1 file changed, 40 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
-index 24ebc9a..3563321 100644
---- a/drivers/mmc/host/omap_hsmmc.c
-+++ b/drivers/mmc/host/omap_hsmmc.c
-@@ -32,6 +32,7 @@
- #include <linux/of_irq.h>
- #include <linux/of_gpio.h>
- #include <linux/of_device.h>
-+#include <linux/omap-dmaengine.h>
- #include <linux/mmc/host.h>
- #include <linux/mmc/core.h>
- #include <linux/mmc/mmc.h>
-@@ -1992,6 +1993,8 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
- struct resource *res;
- int ret, irq;
- const struct of_device_id *match;
-+ dma_cap_mask_t mask;
-+ unsigned tx_req, rx_req;
- const struct omap_mmc_of_data *data;
- void __iomem *base;
-
-@@ -2121,17 +2124,44 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
-
- omap_hsmmc_conf_bus_power(host);
-
-- host->rx_chan = dma_request_chan(&pdev->dev, "rx");
-- if (IS_ERR(host->rx_chan)) {
-- dev_err(mmc_dev(host->mmc), "RX DMA channel request failed\n");
-- ret = PTR_ERR(host->rx_chan);
-+ if (!pdev->dev.of_node) {
-+ res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx");
-+ if (!res) {
-+ dev_err(mmc_dev(host->mmc), "cannot get DMA TX channel\n");
-+ ret = -ENXIO;
-+ goto err_irq;
-+ }
-+ tx_req = res->start;
-+
-+ res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx");
-+ if (!res) {
-+ dev_err(mmc_dev(host->mmc), "cannot get DMA RX channel\n");
-+ ret = -ENXIO;
-+ goto err_irq;
-+ }
-+ rx_req = res->start;
-+ }
-+
-+ dma_cap_zero(mask);
-+ dma_cap_set(DMA_SLAVE, mask);
-+
-+ host->rx_chan =
-+ dma_request_slave_channel_compat(mask, omap_dma_filter_fn,
-+ &rx_req, &pdev->dev, "rx");
-+
-+ if (!host->rx_chan) {
-+ dev_err(mmc_dev(host->mmc), "unable to obtain RX DMA engine channel\n");
-+ ret = -ENXIO;
- goto err_irq;
- }
-
-- host->tx_chan = dma_request_chan(&pdev->dev, "tx");
-- if (IS_ERR(host->tx_chan)) {
-- dev_err(mmc_dev(host->mmc), "TX DMA channel request failed\n");
-- ret = PTR_ERR(host->tx_chan);
-+ host->tx_chan =
-+ dma_request_slave_channel_compat(mask, omap_dma_filter_fn,
-+ &tx_req, &pdev->dev, "tx");
-+
-+ if (!host->tx_chan) {
-+ dev_err(mmc_dev(host->mmc), "unable to obtain TX DMA engine channel\n");
-+ ret = -ENXIO;
- goto err_irq;
- }
-
-@@ -2189,9 +2219,9 @@ err_slot_name:
- mmc_remove_host(mmc);
- err_irq:
- device_init_wakeup(&pdev->dev, false);
-- if (!IS_ERR_OR_NULL(host->tx_chan))
-+ if (host->tx_chan)
- dma_release_channel(host->tx_chan);
-- if (!IS_ERR_OR_NULL(host->rx_chan))
-+ if (host->rx_chan)
- dma_release_channel(host->rx_chan);
- pm_runtime_dont_use_autosuspend(host->dev);
- pm_runtime_put_sync(host->dev);
---
-2.9.3
-
diff --git a/arm-sunxi-nvmem-fixH3.patch b/arm-sunxi-nvmem-fixH3.patch
new file mode 100644
index 000000000..415885d4c
--- /dev/null
+++ b/arm-sunxi-nvmem-fixH3.patch
@@ -0,0 +1,131 @@
+From 0ab09d651b5858f9bc7d5f74e725334a661828e0 Mon Sep 17 00:00:00 2001
+From: Icenowy Zheng <icenowy@aosc.io>
+Date: Fri, 9 Mar 2018 14:47:17 +0000
+Subject: nvmem: sunxi-sid: fix H3 SID controller support
+
+It seems that doing some operation will make the value pre-read on H3
+SID controller wrong again, so all operation should be performed by
+register.
+
+Change the SID reading to use register only.
+
+Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
+Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/nvmem/sunxi_sid.c | 71 +++++++++++++++++++++++++++++++++--------------
+ 1 file changed, 50 insertions(+), 21 deletions(-)
+
+diff --git a/drivers/nvmem/sunxi_sid.c b/drivers/nvmem/sunxi_sid.c
+index 99bd54d..26bb637 100644
+--- a/drivers/nvmem/sunxi_sid.c
++++ b/drivers/nvmem/sunxi_sid.c
+@@ -85,13 +85,14 @@ static int sunxi_sid_read(void *context, unsigned int offset,
+ }
+
+ static int sun8i_sid_register_readout(const struct sunxi_sid *sid,
+- const unsigned int word)
++ const unsigned int offset,
++ u32 *out)
+ {
+ u32 reg_val;
+ int ret;
+
+ /* Set word, lock access, and set read command */
+- reg_val = (word & SUN8I_SID_OFFSET_MASK)
++ reg_val = (offset & SUN8I_SID_OFFSET_MASK)
+ << SUN8I_SID_OFFSET_SHIFT;
+ reg_val |= SUN8I_SID_OP_LOCK | SUN8I_SID_READ;
+ writel(reg_val, sid->base + SUN8I_SID_PRCTL);
+@@ -101,7 +102,49 @@ static int sun8i_sid_register_readout(const struct sunxi_sid *sid,
+ if (ret)
+ return ret;
+
++ if (out)
++ *out = readl(sid->base + SUN8I_SID_RDKEY);
++
+ writel(0, sid->base + SUN8I_SID_PRCTL);
++
++ return 0;
++}
++
++/*
++ * On Allwinner H3, the value on the 0x200 offset of the SID controller seems
++ * to be not reliable at all.
++ * Read by the registers instead.
++ */
++static int sun8i_sid_read_byte_by_reg(const struct sunxi_sid *sid,
++ const unsigned int offset,
++ u8 *out)
++{
++ u32 word;
++ int ret;
++
++ ret = sun8i_sid_register_readout(sid, offset & ~0x03, &word);
++
++ if (ret)
++ return ret;
++
++ *out = (word >> ((offset & 0x3) * 8)) & 0xff;
++
++ return 0;
++}
++
++static int sun8i_sid_read_by_reg(void *context, unsigned int offset,
++ void *val, size_t bytes)
++{
++ struct sunxi_sid *sid = context;
++ u8 *buf = val;
++ int ret;
++
++ while (bytes--) {
++ ret = sun8i_sid_read_byte_by_reg(sid, offset++, buf++);
++ if (ret)
++ return ret;
++ }
++
+ return 0;
+ }
+
+@@ -131,26 +174,12 @@ static int sunxi_sid_probe(struct platform_device *pdev)
+
+ size = cfg->size;
+
+- if (cfg->need_register_readout) {
+- /*
+- * H3's SID controller have a bug that the value at 0x200
+- * offset is not the correct value when the hardware is reseted.
+- * However, after doing a register-based read operation, the
+- * value become right.
+- * Do a full read operation here, but ignore its value
+- * (as it's more fast to read by direct MMIO value than
+- * with registers)
+- */
+- for (i = 0; i < (size >> 2); i++) {
+- ret = sun8i_sid_register_readout(sid, i);
+- if (ret)
+- return ret;
+- }
+- }
+-
+ econfig.size = size;
+ econfig.dev = dev;
+- econfig.reg_read = sunxi_sid_read;
++ if (cfg->need_register_readout)
++ econfig.reg_read = sun8i_sid_read_by_reg;
++ else
++ econfig.reg_read = sunxi_sid_read;
+ econfig.priv = sid;
+ nvmem = nvmem_register(&econfig);
+ if (IS_ERR(nvmem))
+@@ -163,7 +192,7 @@ static int sunxi_sid_probe(struct platform_device *pdev)
+ }
+
+ for (i = 0; i < size; i++)
+- randomness[i] = sunxi_sid_read_byte(sid, i);
++ econfig.reg_read(sid, i, &randomness[i], 1);
+
+ add_device_randomness(randomness, size);
+ kfree(randomness);
+--
+cgit v1.1
diff --git a/arm-tegra-fix-nouveau-crash.patch b/arm-tegra-fix-nouveau-crash.patch
new file mode 100644
index 000000000..d1d7c61a6
--- /dev/null
+++ b/arm-tegra-fix-nouveau-crash.patch
@@ -0,0 +1,64 @@
+From 369971aa0101c4cfb84dacaaaa1b5cc5790c14ff Mon Sep 17 00:00:00 2001
+From: Thierry Reding <treding@nvidia.com>
+Date: Wed, 11 Apr 2018 10:34:17 +0200
+Subject: [PATCH] drm/nouveau: tegra: Detach from ARM DMA/IOMMU mapping
+
+Depending on the kernel configuration, early ARM architecture setup code
+may have attached the GPU to a DMA/IOMMU mapping that transparently uses
+the IOMMU to back the DMA API. Tegra requires special handling for IOMMU
+backed buffers (a special bit in the GPU's MMU page tables indicates the
+memory path to take: via the SMMU or directly to the memory controller).
+Transparently backing DMA memory with an IOMMU prevents Nouveau from
+properly handling such memory accesses and causes memory access faults.
+
+As a side-note: buffers other than those allocated in instance memory
+don't need to be physically contiguous from the GPU's perspective since
+the GPU can map them into contiguous buffers using its own MMU. Mapping
+these buffers through the IOMMU is unnecessary and will even lead to
+performance degradation because of the additional translation.
+
+Signed-off-by: Thierry Reding <treding@nvidia.com>
+---
+ drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
+index 1f07999aea1d..ac7706f56f6f 100644
+--- a/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
++++ b/drivers/gpu/drm/nouveau/nvkm/engine/device/tegra.c
+@@ -19,6 +19,11 @@
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
++
++#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
++#include <asm/dma-iommu.h>
++#endif
++
+ #include <core/tegra.h>
+ #ifdef CONFIG_NOUVEAU_PLATFORM_DRIVER
+ #include "priv.h"
+@@ -105,6 +110,20 @@ nvkm_device_tegra_probe_iommu(struct nvkm_device_tegra *tdev)
+ unsigned long pgsize_bitmap;
+ int ret;
+
++#if IS_ENABLED(CONFIG_ARM_DMA_USE_IOMMU)
++ if (dev->archdata.mapping) {
++ struct dma_iommu_mapping *mapping = to_dma_iommu_mapping(dev);
++
++ arm_iommu_release_mapping(mapping);
++ arm_iommu_detach_device(dev);
++
++ if (dev->archdata.dma_coherent)
++ set_dma_ops(dev, &arm_coherent_dma_ops);
++ else
++ set_dma_ops(dev, &arm_dma_ops);
++ }
++#endif
++
+ if (!tdev->func->iommu_bit)
+ return;
+
+--
+2.16.3
+
diff --git a/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch b/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch
deleted file mode 100644
index 33f9271b7..000000000
--- a/arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 90e388ca5d8bbee022f9ed5fc24137b31579fa6e Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Wed, 22 Nov 2017 15:52:36 +0000
-Subject: [PATCH] Revert "arm64: allwinner: a64: pine64: Use dcdc1 regulator
- for mmc0"
-
-This reverts commit 3f241bfa60bdc9c4fde63fa6664a8ce00fd668c6.
----
- arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
-index d06e34b5d192..caf8b6fbe5e3 100644
---- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
-+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
-@@ -61,6 +61,13 @@
- chosen {
- stdout-path = "serial0:115200n8";
- };
-+
-+ reg_vcc3v3: vcc3v3 {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vcc3v3";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ };
- };
-
- &ehci0 {
-@@ -84,7 +91,7 @@
- &mmc0 {
- pinctrl-names = "default";
- pinctrl-0 = <&mmc0_pins>;
-- vmmc-supply = <&reg_dcdc1>;
-+ vmmc-supply = <&reg_vcc3v3>;
- cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
- cd-inverted;
- disable-wp;
---
-2.14.3
-
diff --git a/arm64-mmc-sdhci_f_sdh30-add-ACPI-support.patch b/arm64-mmc-sdhci_f_sdh30-add-ACPI-support.patch
deleted file mode 100644
index 4eaf67e33..000000000
--- a/arm64-mmc-sdhci_f_sdh30-add-ACPI-support.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From patchwork Mon Jan 8 15:44:19 2018
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2] mmc: sdhci_f_sdh30: add ACPI support
-From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-X-Patchwork-Id: 10149775
-Message-Id: <20180108154419.2821-1-ard.biesheuvel@linaro.org>
-To: linux-mmc@vger.kernel.org
-Cc: adrian.hunter@intel.com, ulf.hansson@linaro.org,
- Ard Biesheuvel <ard.biesheuvel@linaro.org>
-Date: Mon, 8 Jan 2018 15:44:19 +0000
-
-The Fujitsu SDH30 SDHCI controller may be described as a SCX0002 ACPI
-device on ACPI platforms incorporating the Socionext SynQuacer SoC.
-
-Given that mmc_of_parse() has already been made ACPI/DT agnostic,
-making the SDH30 driver ACPI capable is actually rather simple:
-all we need to do is make the call to sdhci_get_of_property() [which
-does not set any properties we care about] and the clock handling
-dependent on whether we are dealing with a DT device, and exposing
-the ACPI id via the platform_driver struct and the module metadata.
-
-Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-Acked-by: Adrian Hunter <adrian.hunter@intel.com>
----
-v2: make OF optional now that ACPI is supported
- drop dev_of_node() check when disabling the clocks - those routines
- tolerate NULL pointers so there's no need
-
- drivers/mmc/host/Kconfig | 2 +-
- drivers/mmc/host/sdhci_f_sdh30.c | 52 +++++++++++++-------
- 2 files changed, 35 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
-index 567028c9219a..07ed947ed10b 100644
---- a/drivers/mmc/host/Kconfig
-+++ b/drivers/mmc/host/Kconfig
-@@ -320,7 +320,7 @@ config MMC_SDHCI_BCM_KONA
- config MMC_SDHCI_F_SDH30
- tristate "SDHCI support for Fujitsu Semiconductor F_SDH30"
- depends on MMC_SDHCI_PLTFM
-- depends on OF
-+ depends on OF || ACPI
- help
- This selects the Secure Digital Host Controller Interface (SDHCI)
- Needed by some Fujitsu SoC for MMC / SD / SDIO support.
-diff --git a/drivers/mmc/host/sdhci_f_sdh30.c b/drivers/mmc/host/sdhci_f_sdh30.c
-index 04ca0d33a521..485f7591fae4 100644
---- a/drivers/mmc/host/sdhci_f_sdh30.c
-+++ b/drivers/mmc/host/sdhci_f_sdh30.c
-@@ -10,9 +10,11 @@
- * the Free Software Foundation, version 2 of the License.
- */
-
-+#include <linux/acpi.h>
- #include <linux/err.h>
- #include <linux/delay.h>
- #include <linux/module.h>
-+#include <linux/of.h>
- #include <linux/property.h>
- #include <linux/clk.h>
-
-@@ -146,7 +148,6 @@ static int sdhci_f_sdh30_probe(struct platform_device *pdev)
-
- platform_set_drvdata(pdev, host);
-
-- sdhci_get_of_property(pdev);
- host->hw_name = "f_sdh30";
- host->ops = &sdhci_f_sdh30_ops;
- host->irq = irq;
-@@ -158,25 +159,29 @@ static int sdhci_f_sdh30_probe(struct platform_device *pdev)
- goto err;
- }
-
-- priv->clk_iface = devm_clk_get(&pdev->dev, "iface");
-- if (IS_ERR(priv->clk_iface)) {
-- ret = PTR_ERR(priv->clk_iface);
-- goto err;
-- }
-+ if (dev_of_node(dev)) {
-+ sdhci_get_of_property(pdev);
-
-- ret = clk_prepare_enable(priv->clk_iface);
-- if (ret)
-- goto err;
-+ priv->clk_iface = devm_clk_get(&pdev->dev, "iface");
-+ if (IS_ERR(priv->clk_iface)) {
-+ ret = PTR_ERR(priv->clk_iface);
-+ goto err;
-+ }
-
-- priv->clk = devm_clk_get(&pdev->dev, "core");
-- if (IS_ERR(priv->clk)) {
-- ret = PTR_ERR(priv->clk);
-- goto err_clk;
-- }
-+ ret = clk_prepare_enable(priv->clk_iface);
-+ if (ret)
-+ goto err;
-
-- ret = clk_prepare_enable(priv->clk);
-- if (ret)
-- goto err_clk;
-+ priv->clk = devm_clk_get(&pdev->dev, "core");
-+ if (IS_ERR(priv->clk)) {
-+ ret = PTR_ERR(priv->clk);
-+ goto err_clk;
-+ }
-+
-+ ret = clk_prepare_enable(priv->clk);
-+ if (ret)
-+ goto err_clk;
-+ }
-
- /* init vendor specific regs */
- ctrl = sdhci_readw(host, F_SDH30_AHB_CONFIG);
-@@ -226,16 +231,27 @@ static int sdhci_f_sdh30_remove(struct platform_device *pdev)
- return 0;
- }
-
-+#ifdef CONFIG_OF
- static const struct of_device_id f_sdh30_dt_ids[] = {
- { .compatible = "fujitsu,mb86s70-sdhci-3.0" },
- { /* sentinel */ }
- };
- MODULE_DEVICE_TABLE(of, f_sdh30_dt_ids);
-+#endif
-+
-+#ifdef CONFIG_ACPI
-+static const struct acpi_device_id f_sdh30_acpi_ids[] = {
-+ { "SCX0002" },
-+ { /* sentinel */ }
-+};
-+MODULE_DEVICE_TABLE(acpi, f_sdh30_acpi_ids);
-+#endif
-
- static struct platform_driver sdhci_f_sdh30_driver = {
- .driver = {
- .name = "f_sdh30",
-- .of_match_table = f_sdh30_dt_ids,
-+ .of_match_table = of_match_ptr(f_sdh30_dt_ids),
-+ .acpi_match_table = ACPI_PTR(f_sdh30_acpi_ids),
- .pm = &sdhci_pltfm_pmops,
- },
- .probe = sdhci_f_sdh30_probe,
diff --git a/arm64-socionext-96b-enablement.patch b/arm64-socionext-96b-enablement.patch
deleted file mode 100644
index d5d6cda86..000000000
--- a/arm64-socionext-96b-enablement.patch
+++ /dev/null
@@ -1,2679 +0,0 @@
-From e3dff048a10f16aa0fd32438442ce39558bbdbef Mon Sep 17 00:00:00 2001
-From: Jassi Brar <jaswinder.singh@linaro.org>
-Date: Tue, 29 Aug 2017 22:45:59 +0530
-Subject: net: socionext: Add Synquacer NetSec driver
-
-This driver adds support for Socionext "netsec" IP Gigabit
-Ethernet + PHY IP used in the Synquacer SC2A11 SoC.
-
-Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
-Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
----
- drivers/net/ethernet/Kconfig | 1 +
- drivers/net/ethernet/Makefile | 1 +
- drivers/net/ethernet/socionext/Kconfig | 29 +
- drivers/net/ethernet/socionext/Makefile | 1 +
- drivers/net/ethernet/socionext/netsec/Makefile | 6 +
- drivers/net/ethernet/socionext/netsec/netsec.h | 408 ++++++++++++++
- .../socionext/netsec/netsec_desc_ring_access.c | 623 +++++++++++++++++++++
- .../net/ethernet/socionext/netsec/netsec_ethtool.c | 78 +++
- .../ethernet/socionext/netsec/netsec_gmac_access.c | 330 +++++++++++
- .../net/ethernet/socionext/netsec/netsec_netdev.c | 540 ++++++++++++++++++
- .../ethernet/socionext/netsec/netsec_platform.c | 435 ++++++++++++++
- 11 files changed, 2452 insertions(+)
- create mode 100644 drivers/net/ethernet/socionext/Kconfig
- create mode 100644 drivers/net/ethernet/socionext/Makefile
- create mode 100644 drivers/net/ethernet/socionext/netsec/Makefile
- create mode 100644 drivers/net/ethernet/socionext/netsec/netsec.h
- create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c
- create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_ethtool.c
- create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c
- create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_netdev.c
- create mode 100644 drivers/net/ethernet/socionext/netsec/netsec_platform.c
-
-diff --git a/drivers/net/ethernet/Kconfig b/drivers/net/ethernet/Kconfig
-index c604213..d50519e 100644
---- a/drivers/net/ethernet/Kconfig
-+++ b/drivers/net/ethernet/Kconfig
-@@ -170,6 +170,7 @@ source "drivers/net/ethernet/sis/Kconfig"
- source "drivers/net/ethernet/sfc/Kconfig"
- source "drivers/net/ethernet/sgi/Kconfig"
- source "drivers/net/ethernet/smsc/Kconfig"
-+source "drivers/net/ethernet/socionext/Kconfig"
- source "drivers/net/ethernet/stmicro/Kconfig"
- source "drivers/net/ethernet/sun/Kconfig"
- source "drivers/net/ethernet/tehuti/Kconfig"
-diff --git a/drivers/net/ethernet/Makefile b/drivers/net/ethernet/Makefile
-index a0a03d4..6ae1bb9 100644
---- a/drivers/net/ethernet/Makefile
-+++ b/drivers/net/ethernet/Makefile
-@@ -81,6 +81,7 @@ obj-$(CONFIG_SFC) += sfc/
- obj-$(CONFIG_SFC_FALCON) += sfc/falcon/
- obj-$(CONFIG_NET_VENDOR_SGI) += sgi/
- obj-$(CONFIG_NET_VENDOR_SMSC) += smsc/
-+obj-$(CONFIG_NET_VENDOR_SNI) += socionext/
- obj-$(CONFIG_NET_VENDOR_STMICRO) += stmicro/
- obj-$(CONFIG_NET_VENDOR_SUN) += sun/
- obj-$(CONFIG_NET_VENDOR_TEHUTI) += tehuti/
-diff --git a/drivers/net/ethernet/socionext/Kconfig b/drivers/net/ethernet/socionext/Kconfig
-new file mode 100644
-index 0000000..a6dc195
---- /dev/null
-+++ b/drivers/net/ethernet/socionext/Kconfig
-@@ -0,0 +1,29 @@
-+#
-+# Socionext Network device configuration
-+#
-+
-+config NET_VENDOR_SNI
-+ bool "Socionext devices"
-+ default y
-+ ---help---
-+ If you have a network (Ethernet) card belonging to this class, say Y.
-+
-+ Note that the answer to this question doesn't directly affect the
-+ the questions about Socionext cards. If you say Y, you will be asked
-+ for your specific card in the following questions.
-+
-+if NET_VENDOR_SNI
-+
-+config SNI_NETSEC
-+ tristate "NETSEC Driver Support"
-+ depends on OF
-+ select PHYLIB
-+ select MII
-+help
-+ Enable to add support for the SocioNext NetSec Gigabit Ethernet
-+ controller + PHY, as found on the Synquacer SC2A11 SoC
-+
-+ To compile this driver as a module, choose M here: the module will be
-+ called netsec. If unsure, say N.
-+
-+endif # NET_VENDOR_SNI
-diff --git a/drivers/net/ethernet/socionext/Makefile b/drivers/net/ethernet/socionext/Makefile
-new file mode 100644
-index 0000000..9555899
---- /dev/null
-+++ b/drivers/net/ethernet/socionext/Makefile
-@@ -0,0 +1 @@
-+obj-$(CONFIG_SNI_NETSEC) += netsec/
-diff --git a/drivers/net/ethernet/socionext/netsec/Makefile b/drivers/net/ethernet/socionext/netsec/Makefile
-new file mode 100644
-index 0000000..18884ed
---- /dev/null
-+++ b/drivers/net/ethernet/socionext/netsec/Makefile
-@@ -0,0 +1,6 @@
-+obj-$(CONFIG_SNI_NETSEC) := netsec.o
-+netsec-objs := netsec_desc_ring_access.o \
-+ netsec_netdev.o \
-+ netsec_ethtool.o \
-+ netsec_platform.o \
-+ netsec_gmac_access.o
-diff --git a/drivers/net/ethernet/socionext/netsec/netsec.h b/drivers/net/ethernet/socionext/netsec/netsec.h
-new file mode 100644
-index 0000000..3b97661
---- /dev/null
-+++ b/drivers/net/ethernet/socionext/netsec/netsec.h
-@@ -0,0 +1,408 @@
-+/**
-+ * netsec.h
-+ *
-+ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited.
-+ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved.
-+ * Andy Green <andy.green@linaro.org>
-+ * Jassi Brar <jaswinder.singh@linaro.org>
-+ * Ard Biesheuvel <ard.biesheuvel@linaro.org>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ */
-+#ifndef NETSEC_INTERNAL_H
-+#define NETSEC_INTERNAL_H
-+
-+#include <linux/netdevice.h>
-+#include <linux/types.h>
-+#include <linux/device.h>
-+#include <linux/phy.h>
-+#include <linux/ethtool.h>
-+#include <linux/of_address.h>
-+#include <linux/of_mdio.h>
-+#include <linux/etherdevice.h>
-+#include <net/sock.h>
-+
-+#define NETSEC_FLOW_CONTROL_START_THRESHOLD 36
-+#define NETSEC_FLOW_CONTROL_STOP_THRESHOLD 48
-+
-+#define NETSEC_CLK_MHZ 1000000
-+
-+#define NETSEC_RX_PKT_BUF_LEN 1522
-+#define NETSEC_RX_JUMBO_PKT_BUF_LEN 9022
-+
-+#define NETSEC_NETDEV_TX_PKT_SCAT_NUM_MAX 19
-+
-+#define DESC_NUM 128
-+
-+#define NETSEC_TX_SHIFT_OWN_FIELD 31
-+#define NETSEC_TX_SHIFT_LD_FIELD 30
-+#define NETSEC_TX_SHIFT_DRID_FIELD 24
-+#define NETSEC_TX_SHIFT_PT_FIELD 21
-+#define NETSEC_TX_SHIFT_TDRID_FIELD 16
-+#define NETSEC_TX_SHIFT_CC_FIELD 15
-+#define NETSEC_TX_SHIFT_FS_FIELD 9
-+#define NETSEC_TX_LAST 8
-+#define NETSEC_TX_SHIFT_CO 7
-+#define NETSEC_TX_SHIFT_SO 6
-+#define NETSEC_TX_SHIFT_TRS_FIELD 4
-+
-+#define NETSEC_RX_PKT_OWN_FIELD 31
-+#define NETSEC_RX_PKT_LD_FIELD 30
-+#define NETSEC_RX_PKT_SDRID_FIELD 24
-+#define NETSEC_RX_PKT_FR_FIELD 23
-+#define NETSEC_RX_PKT_ER_FIELD 21
-+#define NETSEC_RX_PKT_ERR_FIELD 16
-+#define NETSEC_RX_PKT_TDRID_FIELD 12
-+#define NETSEC_RX_PKT_FS_FIELD 9
-+#define NETSEC_RX_PKT_LS_FIELD 8
-+#define NETSEC_RX_PKT_CO_FIELD 6
-+
-+#define NETSEC_RX_PKT_ERR_MASK 3
-+
-+#define NETSEC_MAX_TX_PKT_LEN 1518
-+#define NETSEC_MAX_TX_JUMBO_PKT_LEN 9018
-+
-+enum netsec_rings {
-+ NETSEC_RING_TX,
-+ NETSEC_RING_RX
-+};
-+
-+#define NETSEC_RING_GMAC 15
-+#define NETSEC_RING_MAX 1
-+
-+#define NETSEC_TCP_SEG_LEN_MAX 1460
-+#define NETSEC_TCP_JUMBO_SEG_LEN_MAX 8960
-+
-+#define NETSEC_RX_CKSUM_NOTAVAIL 0
-+#define NETSEC_RX_CKSUM_OK 1
-+#define NETSEC_RX_CKSUM_NG 2
-+
-+#define NETSEC_TOP_IRQ_REG_CODE_LOAD_END BIT(20)
-+#define NETSEC_IRQ_TRANSITION_COMPLETE BIT(4)
-+#define NETSEC_IRQ_RX BIT(1)
-+#define NETSEC_IRQ_TX BIT(0)
-+
-+#define NETSEC_IRQ_EMPTY BIT(17)
-+#define NETSEC_IRQ_ERR BIT(16)
-+#define NETSEC_IRQ_PKT_CNT BIT(15)
-+#define NETSEC_IRQ_TIMEUP BIT(14)
-+#define NETSEC_IRQ_RCV (NETSEC_IRQ_PKT_CNT | \
-+ NETSEC_IRQ_TIMEUP)
-+
-+#define NETSEC_IRQ_TX_DONE BIT(15)
-+#define NETSEC_IRQ_SND (NETSEC_IRQ_TX_DONE | \
-+ NETSEC_IRQ_TIMEUP)
-+
-+#define NETSEC_MODE_TRANS_COMP_IRQ_N2T BIT(20)
-+#define NETSEC_MODE_TRANS_COMP_IRQ_T2N BIT(19)
-+
-+#define NETSEC_DESC_MIN 2
-+#define NETSEC_DESC_MAX 2047
-+#define NETSEC_INT_PKTCNT_MAX 2047
-+
-+#define NETSEC_FLOW_START_TH_MAX 95
-+#define NETSEC_FLOW_STOP_TH_MAX 95
-+#define NETSEC_FLOW_PAUSE_TIME_MIN 5
-+
-+#define NETSEC_CLK_EN_REG_DOM_ALL 0x3f
-+
-+#define NETSEC_REG_TOP_STATUS 0x80
-+#define NETSEC_REG_TOP_INTEN 0x81
-+#define NETSEC_REG_INTEN_SET 0x8d
-+#define NETSEC_REG_INTEN_CLR 0x8e
-+#define NETSEC_REG_NRM_TX_STATUS 0x100
-+#define NETSEC_REG_NRM_TX_INTEN 0x101
-+#define NETSEC_REG_NRM_TX_INTEN_SET 0x10a
-+#define NETSEC_REG_NRM_TX_INTEN_CLR 0x10b
-+#define NETSEC_REG_NRM_RX_STATUS 0x110
-+#define NETSEC_REG_NRM_RX_INTEN 0x111
-+#define NETSEC_REG_NRM_RX_INTEN_SET 0x11a
-+#define NETSEC_REG_NRM_RX_INTEN_CLR 0x11b
-+#define NETSEC_REG_RESERVED_RX_DESC_START 0x122
-+#define NETSEC_REG_RESERVED_TX_DESC_START 0x132
-+#define NETSEC_REG_CLK_EN 0x40
-+#define NETSEC_REG_SOFT_RST 0x41
-+#define NETSEC_REG_PKT_CMD_BUF 0x34
-+#define NETSEC_REG_PKT_CTRL 0x50
-+#define NETSEC_REG_COM_INIT 0x48
-+#define NETSEC_REG_DMA_TMR_CTRL 0x83
-+#define NETSEC_REG_F_TAIKI_MC_VER 0x8b
-+#define NETSEC_REG_F_TAIKI_VER 0x8c
-+#define NETSEC_REG_DMA_HM_CTRL 0x85
-+#define NETSEC_REG_DMA_MH_CTRL 0x88
-+#define NETSEC_REG_ADDR_DIS_CORE 0x86
-+#define NETSEC_REG_DMAC_HM_CMD_BUF 0x84
-+#define NETSEC_REG_DMAC_MH_CMD_BUF 0x87
-+#define NETSEC_REG_NRM_TX_PKTCNT 0x104
-+#define NETSEC_REG_NRM_TX_DONE_TXINT_PKTCNT 0x106
-+#define NETSEC_REG_NRM_RX_RXINT_PKTCNT 0x116
-+#define NETSEC_REG_NRM_TX_TXINT_TMR 0x108
-+#define NETSEC_REG_NRM_RX_RXINT_TMR 0x118
-+#define NETSEC_REG_NRM_TX_DONE_PKTCNT 0x105
-+#define NETSEC_REG_NRM_RX_PKTCNT 0x115
-+#define NETSEC_REG_NRM_TX_TMR 0x107
-+#define NETSEC_REG_NRM_RX_TMR 0x117
-+#define NETSEC_REG_NRM_TX_DESC_START_UP 0x10d
-+#define NETSEC_REG_NRM_TX_DESC_START_LW 0x102
-+#define NETSEC_REG_NRM_RX_DESC_START_UP 0x11d
-+#define NETSEC_REG_NRM_RX_DESC_START_LW 0x112
-+#define NETSEC_REG_NRM_TX_CONFIG 0x10c
-+#define NETSEC_REG_NRM_RX_CONFIG 0x11c
-+#define MAC_REG_DATA 0x470
-+#define MAC_REG_CMD 0x471
-+#define MAC_REG_FLOW_TH 0x473
-+#define MAC_REG_INTF_SEL 0x475
-+#define MAC_REG_DESC_INIT 0x47f
-+#define MAC_REG_DESC_SOFT_RST 0x481
-+#define NETSEC_REG_MODE_TRANS_COMP_STATUS 0x140
-+#define GMAC_REG_MCR 0x0000
-+#define GMAC_REG_MFFR 0x0004
-+#define GMAC_REG_GAR 0x0010
-+#define GMAC_REG_GDR 0x0014
-+#define GMAC_REG_FCR 0x0018
-+#define GMAC_REG_BMR 0x1000
-+#define GMAC_REG_RDLAR 0x100c
-+#define GMAC_REG_TDLAR 0x1010
-+#define GMAC_REG_OMR 0x1018
-+
-+#define NETSEC_PKT_CTRL_REG_MODE_NRM BIT(28)
-+#define NETSEC_PKT_CTRL_REG_EN_JUMBO BIT(27)
-+#define NETSEC_PKT_CTRL_REG_LOG_CHKSUM_ER BIT(3)
-+#define NETSEC_PKT_CTRL_REG_LOG_HD_INCOMPLETE BIT(2)
-+#define NETSEC_PKT_CTRL_REG_LOG_HD_ER BIT(1)
-+#define NETSEC_PKT_CTRL_REG_DRP_NO_MATCH BIT(0)
-+
-+#define NETSEC_CLK_EN_REG_DOM_G BIT(5)
-+#define NETSEC_CLK_EN_REG_DOM_C BIT(1)
-+#define NETSEC_CLK_EN_REG_DOM_D BIT(0)
-+
-+#define NETSEC_COM_INIT_REG_DB BIT(2)
-+#define NETSEC_COM_INIT_REG_CLS BIT(1)
-+#define NETSEC_COM_INIT_REG_ALL (NETSEC_COM_INIT_REG_CLS | \
-+ NETSEC_COM_INIT_REG_DB)
-+
-+#define NETSEC_SOFT_RST_REG_RESET 0
-+#define NETSEC_SOFT_RST_REG_RUN BIT(31)
-+
-+#define NETSEC_DMA_CTRL_REG_STOP 1
-+#define MH_CTRL__MODE_TRANS BIT(20)
-+
-+#define NETSEC_GMAC_CMD_ST_READ 0
-+#define NETSEC_GMAC_CMD_ST_WRITE BIT(28)
-+#define NETSEC_GMAC_CMD_ST_BUSY BIT(31)
-+
-+#define NETSEC_GMAC_BMR_REG_COMMON 0x00412080
-+#define NETSEC_GMAC_BMR_REG_RESET 0x00020181
-+#define NETSEC_GMAC_BMR_REG_SWR 0x00000001
-+
-+#define NETSEC_GMAC_OMR_REG_ST BIT(13)
-+#define NETSEC_GMAC_OMR_REG_SR BIT(1)
-+
-+#define NETSEC_GMAC_MCR_REG_IBN BIT(30)
-+#define NETSEC_GMAC_MCR_REG_CST BIT(25)
-+#define NETSEC_GMAC_MCR_REG_JE BIT(20)
-+#define NETSEC_MCR_PS BIT(15)
-+#define NETSEC_GMAC_MCR_REG_FES BIT(14)
-+#define NETSEC_GMAC_MCR_REG_FULL_DUPLEX_COMMON 0x0000280c
-+#define NETSEC_GMAC_MCR_REG_HALF_DUPLEX_COMMON 0x0001a00c
-+
-+#define NETSEC_FCR_RFE BIT(2)
-+#define NETSEC_FCR_TFE BIT(1)
-+
-+#define NETSEC_GMAC_GAR_REG_GW BIT(1)
-+#define NETSEC_GMAC_GAR_REG_GB BIT(0)
-+
-+#define NETSEC_GMAC_GAR_REG_SHIFT_PA 11
-+#define NETSEC_GMAC_GAR_REG_SHIFT_GR 6
-+#define GMAC_REG_SHIFT_CR_GAR 2
-+
-+#define NETSEC_GMAC_GAR_REG_CR_25_35_MHZ 2
-+#define NETSEC_GMAC_GAR_REG_CR_35_60_MHZ 3
-+#define NETSEC_GMAC_GAR_REG_CR_60_100_MHZ 0
-+#define NETSEC_GMAC_GAR_REG_CR_100_150_MHZ 1
-+#define NETSEC_GMAC_GAR_REG_CR_150_250_MHZ 4
-+#define NETSEC_GMAC_GAR_REG_CR_250_300_MHZ 5
-+
-+#define NETSEC_GMAC_RDLAR_REG_COMMON 0x18000
-+#define NETSEC_GMAC_TDLAR_REG_COMMON 0x1c000
-+
-+#define NETSEC_REG_NETSEC_VER_F_TAIKI 0x50000
-+
-+#define NETSEC_REG_DESC_RING_CONFIG_CFG_UP BIT(31)
-+#define NETSEC_REG_DESC_RING_CONFIG_CH_RST BIT(30)
-+#define NETSEC_REG_DESC_TMR_MODE 4
-+#define NETSEC_REG_DESC_ENDIAN 0
-+
-+#define NETSEC_MAC_DESC_SOFT_RST_SOFT_RST 1
-+#define NETSEC_MAC_DESC_INIT_REG_INIT 1
-+
-+#define NETSEC_EEPROM_MAC_ADDRESS 0x00
-+#define NETSEC_EEPROM_HM_ME_ADDRESS_H 0x08
-+#define NETSEC_EEPROM_HM_ME_ADDRESS_L 0x0C
-+#define NETSEC_EEPROM_HM_ME_SIZE 0x10
-+#define NETSEC_EEPROM_MH_ME_ADDRESS_H 0x14
-+#define NETSEC_EEPROM_MH_ME_ADDRESS_L 0x18
-+#define NETSEC_EEPROM_MH_ME_SIZE 0x1C
-+#define NETSEC_EEPROM_PKT_ME_ADDRESS 0x20
-+#define NETSEC_EEPROM_PKT_ME_SIZE 0x24
-+
-+/* this is used to interpret a register layout */
-+struct netsec_pkt_ctrlaram {
-+ u8 log_chksum_er_flag:1;
-+ u8 log_hd_imcomplete_flag:1;
-+ u8 log_hd_er_flag:1;
-+};
-+
-+struct netsec_param {
-+ struct netsec_pkt_ctrlaram pkt_ctrlaram;
-+ bool use_jumbo_pkt_flag;
-+};
-+
-+struct netsec_mac_mode {
-+ u16 flow_start_th;
-+ u16 flow_stop_th;
-+ u16 pause_time;
-+ bool flow_ctrl_enable_flag;
-+};
-+
-+struct netsec_desc_ring {
-+ spinlock_t spinlock_desc; /* protect descriptor access */
-+ phys_addr_t desc_phys;
-+ struct netsec_frag_info *frag;
-+ struct sk_buff **priv;
-+ void *ring_vaddr;
-+ enum netsec_rings id;
-+ int len;
-+ u16 tx_done_num;
-+ u16 rx_num;
-+ u16 head;
-+ u16 tail;
-+ bool running;
-+ bool full;
-+};
-+
-+struct netsec_frag_info {
-+ dma_addr_t dma_addr;
-+ void *addr;
-+ u16 len;
-+};
-+
-+struct netsec_priv {
-+ struct netsec_desc_ring desc_ring[NETSEC_RING_MAX + 1];
-+ struct ethtool_coalesce et_coalesce;
-+ struct netsec_mac_mode mac_mode;
-+ struct netsec_param param;
-+ struct napi_struct napi;
-+ phy_interface_t phy_interface;
-+ spinlock_t tx_queue_lock; /* protect transmit queue */
-+ struct netsec_frag_info tx_info[MAX_SKB_FRAGS];
-+ struct net_device *ndev;
-+ struct device_node *phy_np;
-+ struct phy_device *phydev;
-+ struct mii_bus *mii_bus;
-+ void __iomem *ioaddr;
-+ const void *eeprom_base;
-+ struct device *dev;
-+ struct clk *clk[3];
-+ u32 rx_pkt_buf_len;
-+ u32 msg_enable;
-+ u32 freq;
-+ int actual_link_speed;
-+ int clock_count;
-+ bool rx_cksum_offload_flag;
-+ bool actual_duplex;
-+ bool irq_registered;
-+};
-+
-+struct netsec_tx_de {
-+ u32 attr;
-+ u32 data_buf_addr_up;
-+ u32 data_buf_addr_lw;
-+ u32 buf_len_info;
-+};
-+
-+struct netsec_rx_de {
-+ u32 attr;
-+ u32 data_buf_addr_up;
-+ u32 data_buf_addr_lw;
-+ u32 buf_len_info;
-+};
-+
-+struct netsec_tx_pkt_ctrl {
-+ u16 tcp_seg_len;
-+ bool tcp_seg_offload_flag;
-+ bool cksum_offload_flag;
-+};
-+
-+struct netsec_rx_pkt_info {
-+ int rx_cksum_result;
-+ int err_code;
-+ bool is_fragmented;
-+ bool err_flag;
-+};
-+
-+struct netsec_skb_cb {
-+ bool is_rx;
-+};
-+
-+static inline void netsec_writel(struct netsec_priv *priv,
-+ u32 reg_addr, u32 val)
-+{
-+ writel_relaxed(val, priv->ioaddr + (reg_addr << 2));
-+}
-+
-+static inline u32 netsec_readl(struct netsec_priv *priv, u32 reg_addr)
-+{
-+ return readl_relaxed(priv->ioaddr + (reg_addr << 2));
-+}
-+
-+static inline void netsec_mark_skb_type(struct sk_buff *skb, bool is_rx)
-+{
-+ struct netsec_skb_cb *cb = (struct netsec_skb_cb *)skb->cb;
-+
-+ cb->is_rx = is_rx;
-+}
-+
-+static inline bool skb_is_rx(struct sk_buff *skb)
-+{
-+ struct netsec_skb_cb *cb = (struct netsec_skb_cb *)skb->cb;
-+
-+ return cb->is_rx;
-+}
-+
-+extern const struct net_device_ops netsec_netdev_ops;
-+extern const struct ethtool_ops netsec_ethtool_ops;
-+
-+int netsec_start_gmac(struct netsec_priv *priv);
-+int netsec_stop_gmac(struct netsec_priv *priv);
-+int netsec_mii_register(struct netsec_priv *priv);
-+void netsec_mii_unregister(struct netsec_priv *priv);
-+int netsec_start_desc_ring(struct netsec_priv *priv, enum netsec_rings id);
-+void netsec_stop_desc_ring(struct netsec_priv *priv, enum netsec_rings id);
-+u16 netsec_get_rx_num(struct netsec_priv *priv);
-+u16 netsec_get_tx_avail_num(struct netsec_priv *priv);
-+int netsec_clean_tx_desc_ring(struct netsec_priv *priv);
-+int netsec_clean_rx_desc_ring(struct netsec_priv *priv);
-+int netsec_set_tx_pkt_data(struct netsec_priv *priv,
-+ const struct netsec_tx_pkt_ctrl *tx_ctrl,
-+ u8 count_frags, const struct netsec_frag_info *info,
-+ struct sk_buff *skb);
-+int netsec_get_rx_pkt_data(struct netsec_priv *priv,
-+ struct netsec_rx_pkt_info *rxpi,
-+ struct netsec_frag_info *frag, u16 *len,
-+ struct sk_buff **skb);
-+void netsec_ring_irq_enable(struct netsec_priv *priv,
-+ enum netsec_rings id, u32 i);
-+void netsec_ring_irq_disable(struct netsec_priv *priv,
-+ enum netsec_rings id, u32 i);
-+int netsec_alloc_desc_ring(struct netsec_priv *priv, enum netsec_rings id);
-+void netsec_free_desc_ring(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc);
-+int netsec_setup_rx_desc(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc);
-+int netsec_netdev_napi_poll(struct napi_struct *napi_p, int budget);
-+
-+#endif /* NETSEC_INTERNAL_H */
-diff --git a/drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c b/drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c
-new file mode 100644
-index 0000000..a4e56cd
---- /dev/null
-+++ b/drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c
-@@ -0,0 +1,623 @@
-+/**
-+ * drivers/net/ethernet/socionext/netsec/netsec_desc_ring_access.c
-+ *
-+ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited.
-+ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved.
-+ * Andy Green <andy.green@linaro.org>
-+ * Jassi Brar <jaswinder.singh@linaro.org>
-+ * Ard Biesheuvel <ard.biesheuvel@linaro.org>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ */
-+
-+#include <linux/spinlock.h>
-+#include <linux/dma-mapping.h>
-+
-+#include "netsec.h"
-+
-+static const u32 ads_irq_set[] = {
-+ NETSEC_REG_NRM_TX_INTEN_SET,
-+ NETSEC_REG_NRM_RX_INTEN_SET,
-+};
-+
-+static const u32 desc_ring_irq_inten_clr_reg_addr[] = {
-+ NETSEC_REG_NRM_TX_INTEN_CLR,
-+ NETSEC_REG_NRM_RX_INTEN_CLR,
-+};
-+
-+static const u32 int_tmr_reg_addr[] = {
-+ NETSEC_REG_NRM_TX_TXINT_TMR,
-+ NETSEC_REG_NRM_RX_RXINT_TMR,
-+};
-+
-+static const u32 rx_pkt_cnt_reg_addr[] = {
-+ 0,
-+ NETSEC_REG_NRM_RX_PKTCNT,
-+};
-+
-+static const u32 tx_pkt_cnt_reg_addr[] = {
-+ NETSEC_REG_NRM_TX_PKTCNT,
-+ 0,
-+};
-+
-+static const u32 int_pkt_cnt_reg_addr[] = {
-+ NETSEC_REG_NRM_TX_DONE_TXINT_PKTCNT,
-+ NETSEC_REG_NRM_RX_RXINT_PKTCNT,
-+};
-+
-+static const u32 tx_done_pkt_addr[] = {
-+ NETSEC_REG_NRM_TX_DONE_PKTCNT,
-+ 0,
-+};
-+
-+static const u32 netsec_desc_mask[] = {
-+ [NETSEC_RING_TX] = NETSEC_GMAC_OMR_REG_ST,
-+ [NETSEC_RING_RX] = NETSEC_GMAC_OMR_REG_SR
-+};
-+
-+void netsec_ring_irq_enable(struct netsec_priv *priv,
-+ enum netsec_rings id, u32 irqf)
-+{
-+ netsec_writel(priv, ads_irq_set[id], irqf);
-+}
-+
-+void netsec_ring_irq_disable(struct netsec_priv *priv,
-+ enum netsec_rings id, u32 irqf)
-+{
-+ netsec_writel(priv, desc_ring_irq_inten_clr_reg_addr[id], irqf);
-+}
-+
-+static struct sk_buff *alloc_rx_pkt_buf(struct netsec_priv *priv,
-+ struct netsec_frag_info *info)
-+{
-+ struct sk_buff *skb;
-+
-+ if (device_get_dma_attr(priv->dev) == DEV_DMA_COHERENT) {
-+ skb = netdev_alloc_skb_ip_align(priv->ndev, info->len);
-+ } else {
-+ info->len = L1_CACHE_ALIGN(info->len);
-+ skb = netdev_alloc_skb(priv->ndev, info->len);
-+ }
-+ if (!skb)
-+ return NULL;
-+
-+ netsec_mark_skb_type(skb, NETSEC_RING_RX);
-+ info->addr = skb->data;
-+ info->dma_addr = dma_map_single(priv->dev, info->addr, info->len,
-+ DMA_FROM_DEVICE);
-+ if (dma_mapping_error(priv->dev, info->dma_addr)) {
-+ dev_kfree_skb(skb);
-+ return NULL;
-+ }
-+ return skb;
-+}
-+
-+int netsec_alloc_desc_ring(struct netsec_priv *priv, enum netsec_rings id)
-+{
-+ struct netsec_desc_ring *desc = &priv->desc_ring[id];
-+ int ret = 0;
-+
-+ desc->id = id;
-+ desc->len = sizeof(struct netsec_tx_de); /* rx and tx desc same size */
-+
-+ spin_lock_init(&desc->spinlock_desc);
-+
-+ desc->ring_vaddr = dma_zalloc_coherent(priv->dev, desc->len * DESC_NUM,
-+ &desc->desc_phys, GFP_KERNEL);
-+ if (!desc->ring_vaddr) {
-+ ret = -ENOMEM;
-+ goto err;
-+ }
-+
-+ desc->frag = kcalloc(DESC_NUM, sizeof(*desc->frag), GFP_KERNEL);
-+ if (!desc->frag) {
-+ ret = -ENOMEM;
-+ goto err;
-+ }
-+
-+ desc->priv = kcalloc(DESC_NUM, sizeof(struct sk_buff *), GFP_KERNEL);
-+ if (!desc->priv) {
-+ ret = -ENOMEM;
-+ goto err;
-+ }
-+
-+ return 0;
-+
-+err:
-+ netsec_free_desc_ring(priv, desc);
-+
-+ return ret;
-+}
-+
-+static void netsec_uninit_pkt_desc_ring(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc)
-+{
-+ struct netsec_frag_info *frag;
-+ u32 status;
-+ u16 idx;
-+
-+ for (idx = 0; idx < DESC_NUM; idx++) {
-+ frag = &desc->frag[idx];
-+ if (!frag->addr)
-+ continue;
-+
-+ status = *(u32 *)(desc->ring_vaddr + desc->len * idx);
-+
-+ dma_unmap_single(priv->dev, frag->dma_addr, frag->len,
-+ skb_is_rx(desc->priv[idx]) ? DMA_FROM_DEVICE :
-+ DMA_TO_DEVICE);
-+ if ((status >> NETSEC_TX_LAST) & 1)
-+ dev_kfree_skb(desc->priv[idx]);
-+ }
-+
-+ memset(desc->frag, 0, sizeof(struct netsec_frag_info) * DESC_NUM);
-+ memset(desc->priv, 0, sizeof(struct sk_buff *) * DESC_NUM);
-+ memset(desc->ring_vaddr, 0, desc->len * DESC_NUM);
-+}
-+
-+void netsec_free_desc_ring(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc)
-+{
-+ if (desc->ring_vaddr && desc->frag && desc->priv)
-+ netsec_uninit_pkt_desc_ring(priv, desc);
-+
-+ if (desc->ring_vaddr) {
-+ dma_free_coherent(priv->dev, desc->len * DESC_NUM,
-+ desc->ring_vaddr, desc->desc_phys);
-+ desc->ring_vaddr = NULL;
-+ }
-+ kfree(desc->frag);
-+ desc->frag = NULL;
-+ kfree(desc->priv);
-+ desc->priv = NULL;
-+}
-+
-+static void netsec_set_rx_de(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc, u16 idx,
-+ const struct netsec_frag_info *info,
-+ struct sk_buff *skb)
-+{
-+ struct netsec_rx_de *de = desc->ring_vaddr + desc->len * idx;
-+ u32 attr = (1 << NETSEC_RX_PKT_OWN_FIELD) |
-+ (1 << NETSEC_RX_PKT_FS_FIELD) |
-+ (1 << NETSEC_RX_PKT_LS_FIELD);
-+
-+ if (idx == DESC_NUM - 1)
-+ attr |= (1 << NETSEC_RX_PKT_LD_FIELD);
-+
-+ de->data_buf_addr_up = upper_32_bits(info->dma_addr);
-+ de->data_buf_addr_lw = lower_32_bits(info->dma_addr);
-+ de->buf_len_info = info->len;
-+ /* desc->attr makes the descriptor live, so it must be physically
-+ * written last after the rest of the descriptor body is already there
-+ */
-+ dma_wmb();
-+ de->attr = attr;
-+
-+ desc->frag[idx].dma_addr = info->dma_addr;
-+ desc->frag[idx].addr = info->addr;
-+ desc->frag[idx].len = info->len;
-+
-+ desc->priv[idx] = skb;
-+}
-+
-+int netsec_setup_rx_desc(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc)
-+{
-+ struct netsec_frag_info info;
-+ struct sk_buff *skb;
-+ int n;
-+
-+ info.len = priv->rx_pkt_buf_len;
-+
-+ for (n = 0; n < DESC_NUM; n++) {
-+ skb = alloc_rx_pkt_buf(priv, &info);
-+ if (!skb) {
-+ netsec_uninit_pkt_desc_ring(priv, desc);
-+ return -ENOMEM;
-+ }
-+ netsec_set_rx_de(priv, desc, n, &info, skb);
-+ }
-+
-+ return 0;
-+}
-+
-+static void netsec_set_tx_desc_entry(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc,
-+ const struct netsec_tx_pkt_ctrl *tx_ctrl,
-+ bool first_flag, bool last_flag,
-+ const struct netsec_frag_info *frag,
-+ struct sk_buff *skb)
-+{
-+ struct netsec_tx_de *tx_desc_entry;
-+ int idx = desc->head;
-+ u32 attr;
-+
-+ tx_desc_entry = desc->ring_vaddr + (desc->len * idx);
-+
-+ attr = (1 << NETSEC_TX_SHIFT_OWN_FIELD) |
-+ (desc->id << NETSEC_TX_SHIFT_DRID_FIELD) |
-+ (1 << NETSEC_TX_SHIFT_PT_FIELD) |
-+ (NETSEC_RING_GMAC << NETSEC_TX_SHIFT_TDRID_FIELD) |
-+ (first_flag << NETSEC_TX_SHIFT_FS_FIELD) |
-+ (last_flag << NETSEC_TX_LAST) |
-+ (tx_ctrl->cksum_offload_flag << NETSEC_TX_SHIFT_CO) |
-+ (tx_ctrl->tcp_seg_offload_flag << NETSEC_TX_SHIFT_SO) |
-+ (1 << NETSEC_TX_SHIFT_TRS_FIELD);
-+ if (idx == DESC_NUM - 1)
-+ attr |= (1 << NETSEC_TX_SHIFT_LD_FIELD);
-+
-+ tx_desc_entry->data_buf_addr_up = upper_32_bits(frag->dma_addr);
-+ tx_desc_entry->data_buf_addr_lw = lower_32_bits(frag->dma_addr);
-+ tx_desc_entry->buf_len_info = (tx_ctrl->tcp_seg_len << 16) | frag->len;
-+ /* desc->attr makes the descriptor live, so it must be physically
-+ * written last after the rest of the descriptor body is already there
-+ */
-+ dma_wmb();
-+ tx_desc_entry->attr = attr;
-+
-+ desc->frag[idx] = *frag;
-+ desc->priv[idx] = skb;
-+}
-+
-+static void netsec_get_rx_de(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc, u16 idx,
-+ struct netsec_rx_pkt_info *rxpi,
-+ struct netsec_frag_info *frag, u16 *len,
-+ struct sk_buff **skb)
-+{
-+ struct netsec_rx_de de = {};
-+
-+ *rxpi = (struct netsec_rx_pkt_info){};
-+ memcpy(&de, desc->ring_vaddr + desc->len * idx, desc->len);
-+
-+ dev_dbg(priv->dev, "%08x\n", *(u32 *)&de);
-+ *len = de.buf_len_info >> 16;
-+
-+ rxpi->is_fragmented = (de.attr >> NETSEC_RX_PKT_FR_FIELD) & 1;
-+ rxpi->err_flag = (de.attr >> NETSEC_RX_PKT_ER_FIELD) & 1;
-+ rxpi->rx_cksum_result = (de.attr >> NETSEC_RX_PKT_CO_FIELD) & 3;
-+ rxpi->err_code = (de.attr >> NETSEC_RX_PKT_ERR_FIELD) &
-+ NETSEC_RX_PKT_ERR_MASK;
-+ *frag = desc->frag[idx];
-+ *skb = desc->priv[idx];
-+}
-+
-+static void netsec_inc_desc_head_idx(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc, u16 inc)
-+{
-+ u32 sum;
-+
-+ sum = desc->head + inc;
-+
-+ if (sum >= DESC_NUM)
-+ sum -= DESC_NUM;
-+
-+ desc->head = sum;
-+ desc->full = desc->head == desc->tail;
-+}
-+
-+static void netsec_inc_desc_tail_idx(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc)
-+{
-+ u32 sum;
-+
-+ sum = desc->tail + 1;
-+
-+ if (sum >= DESC_NUM)
-+ sum -= DESC_NUM;
-+
-+ desc->tail = sum;
-+ desc->full = false;
-+}
-+
-+static u16 netsec_get_tx_avail_num_sub(struct netsec_priv *priv,
-+ const struct netsec_desc_ring *desc)
-+{
-+ if (desc->full)
-+ return 0;
-+
-+ if (desc->tail > desc->head)
-+ return desc->tail - desc->head;
-+
-+ return DESC_NUM + desc->tail - desc->head;
-+}
-+
-+static u16 netsec_get_tx_done_num_sub(struct netsec_priv *priv,
-+ struct netsec_desc_ring *desc)
-+{
-+ desc->tx_done_num += netsec_readl(priv, tx_done_pkt_addr[desc->id]);
-+
-+ return desc->tx_done_num;
-+}
-+
-+static int netsec_set_irq_coalesce_param(struct netsec_priv *priv,
-+ enum netsec_rings id)
-+{
-+ int max_frames, tmr;
-+
-+ switch (id) {
-+ case NETSEC_RING_TX:
-+ max_frames = priv->et_coalesce.tx_max_coalesced_frames;
-+ tmr = priv->et_coalesce.tx_coalesce_usecs;
-+ break;
-+ case NETSEC_RING_RX:
-+ max_frames = priv->et_coalesce.rx_max_coalesced_frames;
-+ tmr = priv->et_coalesce.rx_coalesce_usecs;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ netsec_writel(priv, int_pkt_cnt_reg_addr[id], max_frames);
-+ netsec_writel(priv, int_tmr_reg_addr[id], ((tmr != 0) << 31) | tmr);
-+
-+ return 0;
-+}
-+
-+int netsec_start_desc_ring(struct netsec_priv *priv, enum netsec_rings id)
-+{
-+ struct netsec_desc_ring *desc = &priv->desc_ring[id];
-+ int ret = 0;
-+
-+ spin_lock_bh(&desc->spinlock_desc);
-+
-+ if (desc->running) {
-+ ret = -EBUSY;
-+ goto err;
-+ }
-+
-+ switch (desc->id) {
-+ case NETSEC_RING_RX:
-+ netsec_writel(priv, ads_irq_set[id], NETSEC_IRQ_RCV);
-+ break;
-+ case NETSEC_RING_TX:
-+ netsec_writel(priv, ads_irq_set[id], NETSEC_IRQ_EMPTY);
-+ break;
-+ }
-+
-+ netsec_set_irq_coalesce_param(priv, desc->id);
-+ desc->running = true;
-+
-+err:
-+ spin_unlock_bh(&desc->spinlock_desc);
-+
-+ return ret;
-+}
-+
-+void netsec_stop_desc_ring(struct netsec_priv *priv, enum netsec_rings id)
-+{
-+ struct netsec_desc_ring *desc = &priv->desc_ring[id];
-+
-+ spin_lock_bh(&desc->spinlock_desc);
-+ if (desc->running)
-+ netsec_writel(priv, desc_ring_irq_inten_clr_reg_addr[id],
-+ NETSEC_IRQ_RCV | NETSEC_IRQ_EMPTY |
-+ NETSEC_IRQ_SND);
-+
-+ desc->running = false;
-+ spin_unlock_bh(&desc->spinlock_desc);
-+}
-+
-+u16 netsec_get_rx_num(struct netsec_priv *priv)
-+{
-+ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_RX];
-+ u32 result;
-+
-+ spin_lock(&desc->spinlock_desc);
-+ if (desc->running) {
-+ result = netsec_readl(priv,
-+ rx_pkt_cnt_reg_addr[NETSEC_RING_RX]);
-+ desc->rx_num += result;
-+ if (result)
-+ netsec_inc_desc_head_idx(priv, desc, result);
-+ }
-+ spin_unlock(&desc->spinlock_desc);
-+
-+ return desc->rx_num;
-+}
-+
-+u16 netsec_get_tx_avail_num(struct netsec_priv *priv)
-+{
-+ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_TX];
-+ u16 result;
-+
-+ spin_lock(&desc->spinlock_desc);
-+
-+ if (!desc->running) {
-+ netif_err(priv, drv, priv->ndev,
-+ "%s: not running tx desc\n", __func__);
-+ result = 0;
-+ goto err;
-+ }
-+
-+ result = netsec_get_tx_avail_num_sub(priv, desc);
-+
-+err:
-+ spin_unlock(&desc->spinlock_desc);
-+
-+ return result;
-+}
-+
-+int netsec_clean_tx_desc_ring(struct netsec_priv *priv)
-+{
-+ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_TX];
-+ unsigned int pkts = 0, bytes = 0;
-+ struct netsec_frag_info *frag;
-+ struct netsec_tx_de *entry;
-+ bool is_last;
-+
-+ spin_lock(&desc->spinlock_desc);
-+
-+ netsec_get_tx_done_num_sub(priv, desc);
-+
-+ while ((desc->tail != desc->head || desc->full) && desc->tx_done_num) {
-+ frag = &desc->frag[desc->tail];
-+ entry = desc->ring_vaddr + desc->len * desc->tail;
-+ is_last = (entry->attr >> NETSEC_TX_LAST) & 1;
-+
-+ dma_unmap_single(priv->dev, frag->dma_addr, frag->len,
-+ DMA_TO_DEVICE);
-+ if (is_last) {
-+ pkts++;
-+ bytes += desc->priv[desc->tail]->len;
-+ dev_kfree_skb(desc->priv[desc->tail]);
-+ }
-+ *frag = (struct netsec_frag_info){};
-+ netsec_inc_desc_tail_idx(priv, desc);
-+
-+ if (is_last)
-+ desc->tx_done_num--;
-+ }
-+
-+ spin_unlock(&desc->spinlock_desc);
-+
-+ priv->ndev->stats.tx_packets += pkts;
-+ priv->ndev->stats.tx_bytes += bytes;
-+
-+ netdev_completed_queue(priv->ndev, pkts, bytes);
-+
-+ return 0;
-+}
-+
-+int netsec_clean_rx_desc_ring(struct netsec_priv *priv)
-+{
-+ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_RX];
-+
-+ spin_lock(&desc->spinlock_desc);
-+
-+ while (desc->full || (desc->tail != desc->head)) {
-+ netsec_set_rx_de(priv, desc, desc->tail,
-+ &desc->frag[desc->tail],
-+ desc->priv[desc->tail]);
-+ desc->rx_num--;
-+ netsec_inc_desc_tail_idx(priv, desc);
-+ }
-+
-+ spin_unlock(&desc->spinlock_desc);
-+
-+ return 0;
-+}
-+
-+int netsec_set_tx_pkt_data(struct netsec_priv *priv,
-+ const struct netsec_tx_pkt_ctrl *tx_ctrl,
-+ u8 count_frags, const struct netsec_frag_info *info,
-+ struct sk_buff *skb)
-+{
-+ struct netsec_desc_ring *desc;
-+ u32 sum_len = 0;
-+ unsigned int i;
-+ int ret = 0;
-+
-+ if (tx_ctrl->tcp_seg_offload_flag && !tx_ctrl->cksum_offload_flag)
-+ return -EINVAL;
-+
-+ if (tx_ctrl->tcp_seg_offload_flag) {
-+ if (tx_ctrl->tcp_seg_len == 0)
-+ return -EINVAL;
-+
-+ if (priv->param.use_jumbo_pkt_flag) {
-+ if (tx_ctrl->tcp_seg_len > NETSEC_TCP_JUMBO_SEG_LEN_MAX)
-+ return -EINVAL;
-+ } else {
-+ if (tx_ctrl->tcp_seg_len > NETSEC_TCP_SEG_LEN_MAX)
-+ return -EINVAL;
-+ }
-+ } else {
-+ if (tx_ctrl->tcp_seg_len)
-+ return -EINVAL;
-+ }
-+
-+ if (!count_frags)
-+ return -ERANGE;
-+
-+ for (i = 0; i < count_frags; i++) {
-+ if ((info[i].len == 0) || (info[i].len > 0xffff)) {
-+ netif_err(priv, drv, priv->ndev,
-+ "%s: bad info len\n", __func__);
-+ return -EINVAL;
-+ }
-+ sum_len += info[i].len;
-+ }
-+
-+ if (!tx_ctrl->tcp_seg_offload_flag) {
-+ if (priv->param.use_jumbo_pkt_flag) {
-+ if (sum_len > NETSEC_MAX_TX_JUMBO_PKT_LEN)
-+ return -EINVAL;
-+ } else {
-+ if (sum_len > NETSEC_MAX_TX_PKT_LEN)
-+ return -EINVAL;
-+ }
-+ }
-+
-+ desc = &priv->desc_ring[NETSEC_RING_TX];
-+ spin_lock(&desc->spinlock_desc);
-+
-+ if (!desc->running) {
-+ ret = -ENODEV;
-+ goto end;
-+ }
-+
-+ dma_rmb(); /* we need to see a consistent view of pending tx count */
-+ if (count_frags > netsec_get_tx_avail_num_sub(priv, desc)) {
-+ ret = -EBUSY;
-+ goto end;
-+ }
-+
-+ for (i = 0; i < count_frags; i++) {
-+ netsec_set_tx_desc_entry(priv, desc, tx_ctrl, i == 0,
-+ i == count_frags - 1, &info[i], skb);
-+ netsec_inc_desc_head_idx(priv, desc, 1);
-+ }
-+
-+ dma_wmb(); /* ensure the descriptor is flushed */
-+ netsec_writel(priv, tx_pkt_cnt_reg_addr[NETSEC_RING_TX], 1);
-+
-+end:
-+ spin_unlock(&desc->spinlock_desc);
-+
-+ return ret;
-+}
-+
-+int netsec_get_rx_pkt_data(struct netsec_priv *priv,
-+ struct netsec_rx_pkt_info *rxpi,
-+ struct netsec_frag_info *frag, u16 *len,
-+ struct sk_buff **skb)
-+{
-+ struct netsec_desc_ring *desc = &priv->desc_ring[NETSEC_RING_RX];
-+ struct netsec_frag_info info;
-+ struct sk_buff *tmp_skb;
-+ int ret = 0;
-+
-+ spin_lock(&desc->spinlock_desc);
-+
-+ if (desc->rx_num == 0) {
-+ dev_err(priv->dev, "%s 0 len rx\n", __func__);
-+ ret = -EINVAL;
-+ goto err;
-+ }
-+
-+ info.len = priv->rx_pkt_buf_len;
-+ dma_rmb(); /* we need to ensure we only see current data in descriptor */
-+ tmp_skb = alloc_rx_pkt_buf(priv, &info);
-+ if (!tmp_skb) {
-+ netsec_set_rx_de(priv, desc, desc->tail,
-+ &desc->frag[desc->tail],
-+ desc->priv[desc->tail]);
-+ ret = -ENOMEM;
-+ } else {
-+ netsec_get_rx_de(priv, desc, desc->tail, rxpi, frag, len, skb);
-+ netsec_set_rx_de(priv, desc, desc->tail, &info, tmp_skb);
-+ }
-+
-+ netsec_inc_desc_tail_idx(priv, desc);
-+ desc->rx_num--;
-+
-+err:
-+ spin_unlock(&desc->spinlock_desc);
-+
-+ return ret;
-+}
-diff --git a/drivers/net/ethernet/socionext/netsec/netsec_ethtool.c b/drivers/net/ethernet/socionext/netsec/netsec_ethtool.c
-new file mode 100644
-index 0000000..45830fe
---- /dev/null
-+++ b/drivers/net/ethernet/socionext/netsec/netsec_ethtool.c
-@@ -0,0 +1,78 @@
-+/**
-+ * drivers/net/ethernet/socionext/netsec/netsec_ethtool.c
-+ *
-+ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited.
-+ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved.
-+ * Andy Green <andy.green@linaro.org>
-+ * Jassi Brar <jaswinder.singh@linaro.org>
-+ * Ard Biesheuvel <ard.biesheuvel@linaro.org>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ */
-+
-+#include "netsec.h"
-+
-+static void netsec_et_get_drvinfo(struct net_device *net_device,
-+ struct ethtool_drvinfo *info)
-+{
-+ strlcpy(info->driver, "netsec", sizeof(info->driver));
-+ strlcpy(info->bus_info, dev_name(net_device->dev.parent),
-+ sizeof(info->bus_info));
-+}
-+
-+static int netsec_et_get_coalesce(struct net_device *net_device,
-+ struct ethtool_coalesce *et_coalesce)
-+{
-+ struct netsec_priv *priv = netdev_priv(net_device);
-+
-+ *et_coalesce = priv->et_coalesce;
-+
-+ return 0;
-+}
-+
-+static int netsec_et_set_coalesce(struct net_device *net_device,
-+ struct ethtool_coalesce *et_coalesce)
-+{
-+ struct netsec_priv *priv = netdev_priv(net_device);
-+
-+ if (et_coalesce->rx_max_coalesced_frames > NETSEC_INT_PKTCNT_MAX)
-+ return -EINVAL;
-+ if (et_coalesce->tx_max_coalesced_frames > NETSEC_INT_PKTCNT_MAX)
-+ return -EINVAL;
-+ if (!et_coalesce->rx_max_coalesced_frames)
-+ return -EINVAL;
-+ if (!et_coalesce->tx_max_coalesced_frames)
-+ return -EINVAL;
-+
-+ priv->et_coalesce = *et_coalesce;
-+
-+ return 0;
-+}
-+
-+static u32 netsec_et_get_msglevel(struct net_device *dev)
-+{
-+ struct netsec_priv *priv = netdev_priv(dev);
-+
-+ return priv->msg_enable;
-+}
-+
-+static void netsec_et_set_msglevel(struct net_device *dev, u32 datum)
-+{
-+ struct netsec_priv *priv = netdev_priv(dev);
-+
-+ priv->msg_enable = datum;
-+}
-+
-+const struct ethtool_ops netsec_ethtool_ops = {
-+ .get_drvinfo = netsec_et_get_drvinfo,
-+ .get_link_ksettings = phy_ethtool_get_link_ksettings,
-+ .set_link_ksettings = phy_ethtool_set_link_ksettings,
-+ .get_link = ethtool_op_get_link,
-+ .get_coalesce = netsec_et_get_coalesce,
-+ .set_coalesce = netsec_et_set_coalesce,
-+ .get_msglevel = netsec_et_get_msglevel,
-+ .set_msglevel = netsec_et_set_msglevel,
-+};
-diff --git a/drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c b/drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c
-new file mode 100644
-index 0000000..94e9b7f
---- /dev/null
-+++ b/drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c
-@@ -0,0 +1,330 @@
-+/**
-+ * drivers/net/ethernet/socionext/netsec/netsec_gmac_access.c
-+ *
-+ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited.
-+ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved.
-+ * Andy Green <andy.green@linaro.org>
-+ * Jassi Brar <jaswinder.singh@linaro.org>
-+ * Ard Biesheuvel <ard.biesheuvel@linaro.org>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ */
-+#include "netsec.h"
-+
-+#define TIMEOUT_SPINS_MAC 1000
-+#define TIMEOUT_SECONDARY_MS_MAC 100
-+
-+static u32 netsec_clk_type(u32 freq)
-+{
-+ if (freq < 35 * NETSEC_CLK_MHZ)
-+ return NETSEC_GMAC_GAR_REG_CR_25_35_MHZ;
-+ if (freq < 60 * NETSEC_CLK_MHZ)
-+ return NETSEC_GMAC_GAR_REG_CR_35_60_MHZ;
-+ if (freq < 100 * NETSEC_CLK_MHZ)
-+ return NETSEC_GMAC_GAR_REG_CR_60_100_MHZ;
-+ if (freq < 150 * NETSEC_CLK_MHZ)
-+ return NETSEC_GMAC_GAR_REG_CR_100_150_MHZ;
-+ if (freq < 250 * NETSEC_CLK_MHZ)
-+ return NETSEC_GMAC_GAR_REG_CR_150_250_MHZ;
-+
-+ return NETSEC_GMAC_GAR_REG_CR_250_300_MHZ;
-+}
-+
-+static int netsec_wait_while_busy(struct netsec_priv *priv, u32 addr, u32 mask)
-+{
-+ u32 timeout = TIMEOUT_SPINS_MAC;
-+
-+ while (--timeout && netsec_readl(priv, addr) & mask)
-+ cpu_relax();
-+ if (timeout)
-+ return 0;
-+
-+ timeout = TIMEOUT_SECONDARY_MS_MAC;
-+ while (--timeout && netsec_readl(priv, addr) & mask)
-+ usleep_range(1000, 2000);
-+
-+ if (timeout)
-+ return 0;
-+
-+ netdev_WARN(priv->ndev, "%s: timeout\n", __func__);
-+
-+ return -ETIMEDOUT;
-+}
-+
-+static int netsec_mac_write(struct netsec_priv *priv, u32 addr, u32 value)
-+{
-+ netsec_writel(priv, MAC_REG_DATA, value);
-+ netsec_writel(priv, MAC_REG_CMD, addr | NETSEC_GMAC_CMD_ST_WRITE);
-+ return netsec_wait_while_busy(priv,
-+ MAC_REG_CMD, NETSEC_GMAC_CMD_ST_BUSY);
-+}
-+
-+static int netsec_mac_read(struct netsec_priv *priv, u32 addr, u32 *read)
-+{
-+ int ret;
-+
-+ netsec_writel(priv, MAC_REG_CMD, addr | NETSEC_GMAC_CMD_ST_READ);
-+ ret = netsec_wait_while_busy(priv,
-+ MAC_REG_CMD, NETSEC_GMAC_CMD_ST_BUSY);
-+ if (ret)
-+ return ret;
-+
-+ *read = netsec_readl(priv, MAC_REG_DATA);
-+
-+ return 0;
-+}
-+
-+static int netsec_mac_wait_while_busy(struct netsec_priv *priv,
-+ u32 addr, u32 mask)
-+{
-+ u32 timeout = TIMEOUT_SPINS_MAC;
-+ int ret, data;
-+
-+ do {
-+ ret = netsec_mac_read(priv, addr, &data);
-+ if (ret)
-+ break;
-+ cpu_relax();
-+ } while (--timeout && (data & mask));
-+
-+ if (timeout)
-+ return 0;
-+
-+ timeout = TIMEOUT_SECONDARY_MS_MAC;
-+ do {
-+ usleep_range(1000, 2000);
-+
-+ ret = netsec_mac_read(priv, addr, &data);
-+ if (ret)
-+ break;
-+ cpu_relax();
-+ } while (--timeout && (data & mask));
-+
-+ if (timeout && !ret)
-+ return 0;
-+
-+ netdev_WARN(priv->ndev, "%s: timeout\n", __func__);
-+
-+ return -ETIMEDOUT;
-+}
-+
-+static int netsec_mac_update_to_phy_state(struct netsec_priv *priv)
-+{
-+ struct phy_device *phydev = priv->ndev->phydev;
-+ u32 value = 0;
-+
-+ value = phydev->duplex ? NETSEC_GMAC_MCR_REG_FULL_DUPLEX_COMMON :
-+ NETSEC_GMAC_MCR_REG_HALF_DUPLEX_COMMON;
-+
-+ if (phydev->speed != SPEED_1000)
-+ value |= NETSEC_MCR_PS;
-+
-+ if ((priv->phy_interface != PHY_INTERFACE_MODE_GMII) &&
-+ (phydev->speed == SPEED_100))
-+ value |= NETSEC_GMAC_MCR_REG_FES;
-+
-+ value |= NETSEC_GMAC_MCR_REG_CST | NETSEC_GMAC_MCR_REG_JE;
-+
-+ if (priv->phy_interface == PHY_INTERFACE_MODE_RGMII)
-+ value |= NETSEC_GMAC_MCR_REG_IBN;
-+
-+ if (netsec_mac_write(priv, GMAC_REG_MCR, value))
-+ return -ETIMEDOUT;
-+
-+ priv->actual_link_speed = phydev->speed;
-+ priv->actual_duplex = phydev->duplex;
-+
-+ return 0;
-+}
-+
-+/* NB netsec_start_gmac() only called from adjust_link */
-+
-+int netsec_start_gmac(struct netsec_priv *priv)
-+{
-+ struct phy_device *phydev = priv->ndev->phydev;
-+ u32 value = 0;
-+ int ret;
-+
-+ if (priv->desc_ring[NETSEC_RING_TX].running &&
-+ priv->desc_ring[NETSEC_RING_RX].running)
-+ return 0;
-+
-+ if (!priv->desc_ring[NETSEC_RING_RX].running &&
-+ !priv->desc_ring[NETSEC_RING_TX].running) {
-+ if (phydev->speed != SPEED_1000)
-+ value = (NETSEC_GMAC_MCR_REG_CST |
-+ NETSEC_GMAC_MCR_REG_HALF_DUPLEX_COMMON);
-+
-+ if (netsec_mac_write(priv, GMAC_REG_MCR, value))
-+ return -ETIMEDOUT;
-+ if (netsec_mac_write(priv, GMAC_REG_BMR,
-+ NETSEC_GMAC_BMR_REG_RESET))
-+ return -ETIMEDOUT;
-+
-+ /* Wait soft reset */
-+ usleep_range(1000, 5000);
-+
-+ ret = netsec_mac_read(priv, GMAC_REG_BMR, &value);
-+ if (ret)
-+ return ret;
-+ if (value & NETSEC_GMAC_BMR_REG_SWR)
-+ return -EAGAIN;
-+
-+ netsec_writel(priv, MAC_REG_DESC_SOFT_RST, 1);
-+ if (netsec_wait_while_busy(priv, MAC_REG_DESC_SOFT_RST, 1))
-+ return -ETIMEDOUT;
-+
-+ netsec_writel(priv, MAC_REG_DESC_INIT, 1);
-+ if (netsec_wait_while_busy(priv, MAC_REG_DESC_INIT, 1))
-+ return -ETIMEDOUT;
-+
-+ if (netsec_mac_write(priv, GMAC_REG_BMR,
-+ NETSEC_GMAC_BMR_REG_COMMON))
-+ return -ETIMEDOUT;
-+ if (netsec_mac_write(priv, GMAC_REG_RDLAR,
-+ NETSEC_GMAC_RDLAR_REG_COMMON))
-+ return -ETIMEDOUT;
-+ if (netsec_mac_write(priv, GMAC_REG_TDLAR,
-+ NETSEC_GMAC_TDLAR_REG_COMMON))
-+ return -ETIMEDOUT;
-+ if (netsec_mac_write(priv, GMAC_REG_MFFR, 0x80000001))
-+ return -ETIMEDOUT;
-+
-+ ret = netsec_mac_update_to_phy_state(priv);
-+ if (ret)
-+ return ret;
-+
-+ if (priv->mac_mode.flow_ctrl_enable_flag) {
-+ netsec_writel(priv, MAC_REG_FLOW_TH,
-+ (priv->mac_mode.flow_stop_th << 16) |
-+ priv->mac_mode.flow_start_th);
-+ if (netsec_mac_write(priv, GMAC_REG_FCR,
-+ (priv->mac_mode.pause_time << 16) |
-+ NETSEC_FCR_RFE | NETSEC_FCR_TFE))
-+ return -ETIMEDOUT;
-+ }
-+ }
-+
-+ ret = netsec_mac_read(priv, GMAC_REG_OMR, &value);
-+ if (ret)
-+ return ret;
-+
-+ if (!priv->desc_ring[NETSEC_RING_RX].running) {
-+ value |= NETSEC_GMAC_OMR_REG_SR;
-+ netsec_start_desc_ring(priv, NETSEC_RING_RX);
-+ }
-+ if (!priv->desc_ring[NETSEC_RING_TX].running) {
-+ value |= NETSEC_GMAC_OMR_REG_ST;
-+ netsec_start_desc_ring(priv, NETSEC_RING_TX);
-+ }
-+
-+ if (netsec_mac_write(priv, GMAC_REG_OMR, value))
-+ return -ETIMEDOUT;
-+
-+ netsec_writel(priv, NETSEC_REG_INTEN_SET,
-+ NETSEC_IRQ_TX | NETSEC_IRQ_RX);
-+
-+ return 0;
-+}
-+
-+int netsec_stop_gmac(struct netsec_priv *priv)
-+{
-+ u32 value;
-+ int ret;
-+
-+ ret = netsec_mac_read(priv, GMAC_REG_OMR, &value);
-+ if (ret)
-+ return ret;
-+
-+ if (priv->desc_ring[NETSEC_RING_RX].running) {
-+ value &= ~NETSEC_GMAC_OMR_REG_SR;
-+ netsec_stop_desc_ring(priv, NETSEC_RING_RX);
-+ }
-+ if (priv->desc_ring[NETSEC_RING_TX].running) {
-+ value &= ~NETSEC_GMAC_OMR_REG_ST;
-+ netsec_stop_desc_ring(priv, NETSEC_RING_TX);
-+ }
-+
-+ priv->actual_link_speed = 0;
-+ priv->actual_duplex = false;
-+
-+ return netsec_mac_write(priv, GMAC_REG_OMR, value);
-+}
-+
-+static int netsec_phy_write(struct mii_bus *bus,
-+ int phy_addr, int reg, u16 val)
-+{
-+ struct netsec_priv *priv = bus->priv;
-+
-+ if (netsec_mac_write(priv, GMAC_REG_GDR, val))
-+ return -ETIMEDOUT;
-+ if (netsec_mac_write(priv, GMAC_REG_GAR,
-+ phy_addr << NETSEC_GMAC_GAR_REG_SHIFT_PA |
-+ reg << NETSEC_GMAC_GAR_REG_SHIFT_GR |
-+ NETSEC_GMAC_GAR_REG_GW | NETSEC_GMAC_GAR_REG_GB |
-+ (netsec_clk_type(priv->freq) <<
-+ GMAC_REG_SHIFT_CR_GAR)))
-+ return -ETIMEDOUT;
-+
-+ return netsec_mac_wait_while_busy(priv, GMAC_REG_GAR,
-+ NETSEC_GMAC_GAR_REG_GB);
-+}
-+
-+static int netsec_phy_read(struct mii_bus *bus, int phy_addr, int reg_addr)
-+{
-+ struct netsec_priv *priv = bus->priv;
-+ u32 data;
-+ int ret;
-+
-+ if (netsec_mac_write(priv, GMAC_REG_GAR, NETSEC_GMAC_GAR_REG_GB |
-+ phy_addr << NETSEC_GMAC_GAR_REG_SHIFT_PA |
-+ reg_addr << NETSEC_GMAC_GAR_REG_SHIFT_GR |
-+ (netsec_clk_type(priv->freq) <<
-+ GMAC_REG_SHIFT_CR_GAR)))
-+ return -ETIMEDOUT;
-+
-+ ret = netsec_mac_wait_while_busy(priv, GMAC_REG_GAR,
-+ NETSEC_GMAC_GAR_REG_GB);
-+ if (ret)
-+ return ret;
-+
-+ ret = netsec_mac_read(priv, GMAC_REG_GDR, &data);
-+ if (ret)
-+ return ret;
-+
-+ return data;
-+}
-+
-+int netsec_mii_register(struct netsec_priv *priv)
-+{
-+ struct mii_bus *bus = devm_mdiobus_alloc(priv->dev);
-+ int ret;
-+
-+ if (!bus)
-+ return -ENOMEM;
-+
-+ snprintf(bus->id, MII_BUS_ID_SIZE, "%s", dev_name(priv->dev));
-+ bus->priv = priv;
-+ bus->name = "SNI NETSEC MDIO";
-+ bus->read = netsec_phy_read;
-+ bus->write = netsec_phy_write;
-+ bus->parent = priv->dev;
-+ priv->mii_bus = bus;
-+
-+ if (dev_of_node(priv->dev)) {
-+ ret = of_mdiobus_register(bus, dev_of_node(priv->dev));
-+ } else {
-+ /* Mask out all PHYs from auto probing. */
-+ bus->phy_mask = ~0;
-+ ret = mdiobus_register(bus);
-+ }
-+ return ret;
-+}
-+
-+void netsec_mii_unregister(struct netsec_priv *priv)
-+{
-+ mdiobus_unregister(priv->mii_bus);
-+}
-diff --git a/drivers/net/ethernet/socionext/netsec/netsec_netdev.c b/drivers/net/ethernet/socionext/netsec/netsec_netdev.c
-new file mode 100644
-index 0000000..e99cf0e
---- /dev/null
-+++ b/drivers/net/ethernet/socionext/netsec/netsec_netdev.c
-@@ -0,0 +1,540 @@
-+/**
-+ * drivers/net/ethernet/socionext/netsec/netsec_netdev.c
-+ *
-+ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited.
-+ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved.
-+ * Andy Green <andy.green@linaro.org>
-+ * Jassi Brar <jaswinder.singh@linaro.org>
-+ * Ard Biesheuvel <ard.biesheuvel@linaro.org>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ */
-+
-+#include <linux/ip.h>
-+#include <linux/ipv6.h>
-+#include <linux/tcp.h>
-+#include <net/tcp.h>
-+#include <net/ip6_checksum.h>
-+#include <linux/pm_runtime.h>
-+
-+#include "netsec.h"
-+
-+#define WAIT_FW_RDY_TIMEOUT 50
-+
-+static const u32 desc_ring_irq_status_reg_addr[] = {
-+ NETSEC_REG_NRM_TX_STATUS,
-+ NETSEC_REG_NRM_RX_STATUS,
-+};
-+
-+static const u32 desc_ads[] = {
-+ NETSEC_REG_NRM_TX_CONFIG,
-+ NETSEC_REG_NRM_RX_CONFIG,
-+};
-+
-+static const u32 netsec_desc_start_reg_addr_up[] = {
-+ NETSEC_REG_NRM_TX_DESC_START_UP,
-+ NETSEC_REG_NRM_RX_DESC_START_UP,
-+};
-+
-+static const u32 netsec_desc_start_reg_addr_lw[] = {
-+ NETSEC_REG_NRM_TX_DESC_START_LW,
-+ NETSEC_REG_NRM_RX_DESC_START_LW,
-+};
-+
-+static u32 netsec_calc_pkt_ctrl_reg_param(const struct netsec_pkt_ctrlaram
-+ *pkt_ctrlaram_p)
-+{
-+ u32 param = NETSEC_PKT_CTRL_REG_MODE_NRM;
-+
-+ if (pkt_ctrlaram_p->log_chksum_er_flag)
-+ param |= NETSEC_PKT_CTRL_REG_LOG_CHKSUM_ER;
-+
-+ if (pkt_ctrlaram_p->log_hd_imcomplete_flag)
-+ param |= NETSEC_PKT_CTRL_REG_LOG_HD_INCOMPLETE;
-+
-+ if (pkt_ctrlaram_p->log_hd_er_flag)
-+ param |= NETSEC_PKT_CTRL_REG_LOG_HD_ER;
-+
-+ return param;
-+}
-+
-+static int netsec_netdev_load_ucode_region(struct netsec_priv *priv, u32 reg,
-+ u32 addr_h, u32 addr_l, u32 size)
-+{
-+ u64 base = (u64)addr_h << 32 | addr_l;
-+ __le32 *ucode;
-+ u32 i;
-+
-+ ucode = memremap(base, size * sizeof(u32), MEMREMAP_WT);
-+ if (!ucode)
-+ return -ENOMEM;
-+
-+ for (i = 0; i < size; i++)
-+ netsec_writel(priv, reg, le32_to_cpu(ucode[i]));
-+
-+ memunmap(ucode);
-+ return 0;
-+}
-+
-+static int netsec_netdev_load_microcode(struct netsec_priv *priv)
-+{
-+ int err;
-+
-+ err = netsec_netdev_load_ucode_region(
-+ priv, NETSEC_REG_DMAC_HM_CMD_BUF,
-+ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_HM_ME_ADDRESS_H),
-+ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_HM_ME_ADDRESS_L),
-+ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_HM_ME_SIZE));
-+ if (err)
-+ return err;
-+
-+ err = netsec_netdev_load_ucode_region(
-+ priv, NETSEC_REG_DMAC_MH_CMD_BUF,
-+ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_MH_ME_ADDRESS_H),
-+ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_MH_ME_ADDRESS_L),
-+ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_MH_ME_SIZE));
-+ if (err)
-+ return err;
-+
-+ err = netsec_netdev_load_ucode_region(
-+ priv, NETSEC_REG_PKT_CMD_BUF,
-+ 0,
-+ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_PKT_ME_ADDRESS),
-+ le32_to_cpup(priv->eeprom_base + NETSEC_EEPROM_PKT_ME_SIZE));
-+ if (err)
-+ return err;
-+
-+ return 0;
-+}
-+
-+static int netsec_init_hardware(struct netsec_priv *priv)
-+{
-+ u32 value;
-+ int err;
-+
-+ /* set desc_start addr */
-+ netsec_writel(priv, netsec_desc_start_reg_addr_up[NETSEC_RING_RX],
-+ upper_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_phys));
-+ netsec_writel(priv, netsec_desc_start_reg_addr_lw[NETSEC_RING_RX],
-+ lower_32_bits(priv->desc_ring[NETSEC_RING_RX].desc_phys));
-+
-+ netsec_writel(priv, netsec_desc_start_reg_addr_up[NETSEC_RING_TX],
-+ upper_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_phys));
-+ netsec_writel(priv, netsec_desc_start_reg_addr_lw[NETSEC_RING_TX],
-+ lower_32_bits(priv->desc_ring[NETSEC_RING_TX].desc_phys));
-+
-+ /* set normal tx desc ring config */
-+ netsec_writel(priv, desc_ads[NETSEC_RING_TX],
-+ 1 << NETSEC_REG_DESC_ENDIAN);
-+ netsec_writel(priv, desc_ads[NETSEC_RING_RX],
-+ 1 << NETSEC_REG_DESC_ENDIAN);
-+
-+ err = netsec_netdev_load_microcode(priv);
-+ if (err) {
-+ netif_err(priv, probe, priv->ndev,
-+ "%s: failed to load microcode (%d)\n", __func__, err);
-+ return err;
-+ }
-+
-+ /* start DMA engines */
-+ netsec_writel(priv, NETSEC_REG_DMA_TMR_CTRL, priv->freq / 1000000 - 1);
-+ netsec_writel(priv, NETSEC_REG_ADDR_DIS_CORE, 0);
-+
-+ usleep_range(1000, 2000);
-+
-+ if (!(netsec_readl(priv, NETSEC_REG_TOP_STATUS) &
-+ NETSEC_TOP_IRQ_REG_CODE_LOAD_END)) {
-+ netif_err(priv, drv, priv->ndev, "microengine start failed\n");
-+ return -ENXIO;
-+ }
-+ netsec_writel(priv, NETSEC_REG_TOP_STATUS,
-+ NETSEC_TOP_IRQ_REG_CODE_LOAD_END);
-+
-+ value = netsec_calc_pkt_ctrl_reg_param(&priv->param.pkt_ctrlaram);
-+
-+ if (priv->param.use_jumbo_pkt_flag)
-+ value |= NETSEC_PKT_CTRL_REG_EN_JUMBO;
-+
-+ /* change to normal mode */
-+ netsec_writel(priv, NETSEC_REG_DMA_MH_CTRL, MH_CTRL__MODE_TRANS);
-+ netsec_writel(priv, NETSEC_REG_PKT_CTRL, value);
-+
-+ while ((netsec_readl(priv, NETSEC_REG_MODE_TRANS_COMP_STATUS) &
-+ NETSEC_MODE_TRANS_COMP_IRQ_T2N) == 0)
-+ cpu_relax();
-+
-+ return 0;
-+}
-+
-+static void netsec_ring_irq_clr(struct netsec_priv *priv,
-+ unsigned int id, u32 value)
-+{
-+ netsec_writel(priv, desc_ring_irq_status_reg_addr[id],
-+ value & (NETSEC_IRQ_EMPTY | NETSEC_IRQ_ERR));
-+}
-+
-+static void netsec_napi_tx_processing(struct netsec_priv *priv)
-+{
-+ netsec_ring_irq_clr(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY);
-+ netsec_clean_tx_desc_ring(priv);
-+
-+ if (netif_queue_stopped(priv->ndev) &&
-+ netsec_get_tx_avail_num(priv) >= NETSEC_NETDEV_TX_PKT_SCAT_NUM_MAX)
-+ netif_wake_queue(priv->ndev);
-+}
-+
-+int netsec_netdev_napi_poll(struct napi_struct *napi_p, int budget)
-+{
-+ struct netsec_priv *priv = container_of(napi_p, struct netsec_priv,
-+ napi);
-+ struct net_device *ndev = priv->ndev;
-+ struct netsec_rx_pkt_info rx_info;
-+ int ret, done = 0, rx_num = 0;
-+ struct netsec_frag_info frag;
-+ struct sk_buff *skb;
-+ u16 len;
-+
-+ netsec_napi_tx_processing(priv);
-+
-+ while (done < budget) {
-+ if (!rx_num) {
-+ rx_num = netsec_get_rx_num(priv);
-+ if (!rx_num)
-+ break;
-+ }
-+ done++;
-+ rx_num--;
-+ ret = netsec_get_rx_pkt_data(priv, &rx_info, &frag, &len, &skb);
-+ if (unlikely(ret == -ENOMEM)) {
-+ netif_err(priv, drv, priv->ndev,
-+ "%s: rx fail %d\n", __func__, ret);
-+ ndev->stats.rx_dropped++;
-+ continue;
-+ }
-+ dma_unmap_single(priv->dev, frag.dma_addr, frag.len,
-+ DMA_FROM_DEVICE);
-+ skb_put(skb, len);
-+ skb->protocol = eth_type_trans(skb, priv->ndev);
-+
-+ if (priv->rx_cksum_offload_flag &&
-+ rx_info.rx_cksum_result == NETSEC_RX_CKSUM_OK)
-+ skb->ip_summed = CHECKSUM_UNNECESSARY;
-+
-+ if (napi_gro_receive(napi_p, skb) != GRO_DROP) {
-+ ndev->stats.rx_packets++;
-+ ndev->stats.rx_bytes += len;
-+ }
-+ }
-+
-+ if (done < budget && napi_complete_done(napi_p, done))
-+ netsec_writel(priv, NETSEC_REG_INTEN_SET,
-+ NETSEC_IRQ_TX | NETSEC_IRQ_RX);
-+ return done;
-+}
-+
-+static netdev_tx_t netsec_netdev_start_xmit(struct sk_buff *skb,
-+ struct net_device *ndev)
-+{
-+ struct netsec_priv *priv = netdev_priv(ndev);
-+ struct netsec_tx_pkt_ctrl tx_ctrl = {};
-+ u16 pend_tx, tso_seg_len = 0;
-+ skb_frag_t *frag;
-+ int count_frags;
-+ int ret, i;
-+
-+ netsec_ring_irq_clr(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY);
-+
-+ count_frags = skb_shinfo(skb)->nr_frags + 1;
-+
-+ if (skb->ip_summed == CHECKSUM_PARTIAL) {
-+ if ((skb->protocol == htons(ETH_P_IP) &&
-+ ip_hdr(skb)->protocol == IPPROTO_TCP) ||
-+ (skb->protocol == htons(ETH_P_IPV6) &&
-+ ipv6_hdr(skb)->nexthdr == IPPROTO_TCP))
-+ tx_ctrl.cksum_offload_flag = true;
-+ else
-+ skb_checksum_help(skb);
-+ }
-+
-+ if (skb_is_gso(skb))
-+ tso_seg_len = skb_shinfo(skb)->gso_size;
-+
-+ if (tso_seg_len > 0) {
-+ if (skb->protocol == htons(ETH_P_IP)) {
-+ ip_hdr(skb)->tot_len = 0;
-+ tcp_hdr(skb)->check =
-+ ~tcp_v4_check(0, ip_hdr(skb)->saddr,
-+ ip_hdr(skb)->daddr, 0);
-+ } else {
-+ ipv6_hdr(skb)->payload_len = 0;
-+ tcp_hdr(skb)->check =
-+ ~csum_ipv6_magic(&ipv6_hdr(skb)->saddr,
-+ &ipv6_hdr(skb)->daddr,
-+ 0, IPPROTO_TCP, 0);
-+ }
-+
-+ tx_ctrl.tcp_seg_offload_flag = true;
-+ tx_ctrl.tcp_seg_len = tso_seg_len;
-+ }
-+
-+ priv->tx_info[0].dma_addr = dma_map_single(priv->dev, skb->data,
-+ skb_headlen(skb),
-+ DMA_TO_DEVICE);
-+ if (dma_mapping_error(priv->dev, priv->tx_info[0].dma_addr)) {
-+ netif_err(priv, drv, priv->ndev,
-+ "%s: DMA mapping failed\n", __func__);
-+ return NETDEV_TX_OK;
-+ }
-+ priv->tx_info[0].addr = skb->data;
-+ priv->tx_info[0].len = skb_headlen(skb);
-+
-+ for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
-+ frag = &skb_shinfo(skb)->frags[i];
-+ priv->tx_info[i + 1].dma_addr =
-+ skb_frag_dma_map(priv->dev, frag, 0,
-+ skb_frag_size(frag), DMA_TO_DEVICE);
-+ priv->tx_info[i + 1].addr = skb_frag_address(frag);
-+ priv->tx_info[i + 1].len = frag->size;
-+ }
-+
-+ netsec_mark_skb_type(skb, NETSEC_RING_TX);
-+
-+ ret = netsec_set_tx_pkt_data(priv, &tx_ctrl, count_frags,
-+ priv->tx_info, skb);
-+ if (ret) {
-+ netif_info(priv, drv, priv->ndev,
-+ "set tx pkt failed %d\n", ret);
-+ for (i = 0; i < count_frags; i++)
-+ dma_unmap_single(priv->dev, priv->tx_info[i].dma_addr,
-+ priv->tx_info[i].len, DMA_TO_DEVICE);
-+ ndev->stats.tx_dropped++;
-+
-+ return NETDEV_TX_OK;
-+ }
-+
-+ netdev_sent_queue(priv->ndev, skb->len);
-+
-+ spin_lock(&priv->tx_queue_lock);
-+ pend_tx = netsec_get_tx_avail_num(priv);
-+
-+ if (pend_tx < NETSEC_NETDEV_TX_PKT_SCAT_NUM_MAX) {
-+ netsec_ring_irq_enable(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY);
-+ netif_stop_queue(ndev);
-+ goto err;
-+ }
-+ if (pend_tx <= DESC_NUM - 2) {
-+ netsec_ring_irq_enable(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY);
-+ goto err;
-+ }
-+ netsec_ring_irq_disable(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY);
-+
-+err:
-+ spin_unlock(&priv->tx_queue_lock);
-+
-+ return NETDEV_TX_OK;
-+}
-+
-+static int netsec_netdev_set_features(struct net_device *ndev,
-+ netdev_features_t features)
-+{
-+ struct netsec_priv *priv = netdev_priv(ndev);
-+
-+ priv->rx_cksum_offload_flag = !!(features & NETIF_F_RXCSUM);
-+
-+ return 0;
-+}
-+
-+static void netsec_phy_adjust_link(struct net_device *ndev)
-+{
-+ struct netsec_priv *priv = netdev_priv(ndev);
-+
-+ if (priv->actual_link_speed == ndev->phydev->speed &&
-+ priv->actual_duplex == ndev->phydev->duplex)
-+ return;
-+
-+ phy_print_status(ndev->phydev);
-+
-+ netsec_stop_gmac(priv);
-+ netsec_start_gmac(priv);
-+}
-+
-+static irqreturn_t netsec_irq_handler(int irq, void *dev_id)
-+{
-+ struct netsec_priv *priv = dev_id;
-+ u32 status = netsec_readl(priv, NETSEC_REG_TOP_STATUS) &
-+ netsec_readl(priv, NETSEC_REG_TOP_INTEN);
-+
-+ if (!status)
-+ return IRQ_NONE;
-+
-+ if (status & (NETSEC_IRQ_TX | NETSEC_IRQ_RX)) {
-+ netsec_writel(priv, NETSEC_REG_INTEN_CLR,
-+ status & (NETSEC_IRQ_TX | NETSEC_IRQ_RX));
-+ napi_schedule(&priv->napi);
-+ }
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static void netsec_reset_hardware(struct netsec_priv *priv)
-+{
-+ /* stop DMA engines */
-+ if (!netsec_readl(priv, NETSEC_REG_ADDR_DIS_CORE)) {
-+ netsec_writel(priv, NETSEC_REG_DMA_HM_CTRL,
-+ NETSEC_DMA_CTRL_REG_STOP);
-+ netsec_writel(priv, NETSEC_REG_DMA_MH_CTRL,
-+ NETSEC_DMA_CTRL_REG_STOP);
-+
-+ while (netsec_readl(priv, NETSEC_REG_DMA_HM_CTRL) &
-+ NETSEC_DMA_CTRL_REG_STOP)
-+ cpu_relax();
-+
-+ while (netsec_readl(priv, NETSEC_REG_DMA_MH_CTRL) &
-+ NETSEC_DMA_CTRL_REG_STOP)
-+ cpu_relax();
-+ }
-+
-+ netsec_writel(priv, NETSEC_REG_SOFT_RST, NETSEC_SOFT_RST_REG_RESET);
-+ netsec_writel(priv, NETSEC_REG_SOFT_RST, NETSEC_SOFT_RST_REG_RUN);
-+ netsec_writel(priv, NETSEC_REG_COM_INIT, NETSEC_COM_INIT_REG_ALL);
-+
-+ while (netsec_readl(priv, NETSEC_REG_COM_INIT) != 0)
-+ cpu_relax();
-+}
-+
-+static int netsec_netdev_open(struct net_device *ndev)
-+{
-+ struct netsec_priv *priv = netdev_priv(ndev);
-+ int ret, n;
-+
-+ pm_runtime_get_sync(priv->dev);
-+
-+ netsec_reset_hardware(priv);
-+
-+ for (n = 0; n <= NETSEC_RING_MAX; n++) {
-+ ret = netsec_alloc_desc_ring(priv, n);
-+ if (ret) {
-+ netif_err(priv, probe, priv->ndev,
-+ "%s: alloc ring failed\n", __func__);
-+ goto err;
-+ }
-+ }
-+
-+ ret = netsec_setup_rx_desc(priv, &priv->desc_ring[NETSEC_RING_RX]);
-+ if (ret) {
-+ netif_err(priv, probe, priv->ndev,
-+ "%s: fail setup ring\n", __func__);
-+ goto err1;
-+ }
-+
-+ ret = netsec_init_hardware(priv);
-+ if (ret) {
-+ netif_err(priv, probe, priv->ndev,
-+ "%s: netsec_init_hardware fail %d\n", __func__, ret);
-+ goto err1;
-+ }
-+
-+ ret = request_irq(priv->ndev->irq, netsec_irq_handler,
-+ IRQF_SHARED, "netsec", priv);
-+ if (ret) {
-+ netif_err(priv, drv, priv->ndev, "request_irq failed\n");
-+ goto err1;
-+ }
-+ priv->irq_registered = true;
-+
-+ ret = netsec_clean_rx_desc_ring(priv);
-+ if (ret) {
-+ netif_err(priv, drv, priv->ndev,
-+ "%s: clean rx desc fail\n", __func__);
-+ goto err2;
-+ }
-+
-+ ret = netsec_clean_tx_desc_ring(priv);
-+ if (ret) {
-+ netif_err(priv, drv, priv->ndev,
-+ "%s: clean tx desc fail\n", __func__);
-+ goto err2;
-+ }
-+
-+ netsec_ring_irq_clr(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY);
-+
-+ if (dev_of_node(priv->dev)) {
-+ if (!of_phy_connect(priv->ndev, priv->phy_np,
-+ netsec_phy_adjust_link, 0,
-+ priv->phy_interface)) {
-+ netif_err(priv, link, priv->ndev, "missing PHY\n");
-+ goto err2;
-+ }
-+ } else {
-+ ret = phy_connect_direct(priv->ndev, priv->phydev,
-+ netsec_phy_adjust_link,
-+ priv->phy_interface);
-+ if (ret) {
-+ netif_err(priv, link, priv->ndev,
-+ "phy_connect_direct() failed (%d)\n", ret);
-+ goto err2;
-+ }
-+ }
-+
-+ phy_start_aneg(ndev->phydev);
-+
-+ netsec_ring_irq_disable(priv, NETSEC_RING_TX, NETSEC_IRQ_EMPTY);
-+
-+ netsec_start_gmac(priv);
-+ napi_enable(&priv->napi);
-+ netif_start_queue(ndev);
-+
-+ netsec_writel(priv, NETSEC_REG_INTEN_SET,
-+ NETSEC_IRQ_TX | NETSEC_IRQ_RX);
-+
-+ return 0;
-+
-+err2:
-+ pm_runtime_put_sync(priv->dev);
-+ free_irq(priv->ndev->irq, priv);
-+ priv->irq_registered = false;
-+err1:
-+ for (n = 0; n <= NETSEC_RING_MAX; n++)
-+ netsec_free_desc_ring(priv, &priv->desc_ring[n]);
-+err:
-+ pm_runtime_put_sync(priv->dev);
-+
-+ return ret;
-+}
-+
-+static int netsec_netdev_stop(struct net_device *ndev)
-+{
-+ struct netsec_priv *priv = netdev_priv(ndev);
-+ int n;
-+
-+ phy_stop(ndev->phydev);
-+ phy_disconnect(ndev->phydev);
-+
-+ netif_stop_queue(priv->ndev);
-+ napi_disable(&priv->napi);
-+
-+ netsec_writel(priv, NETSEC_REG_INTEN_CLR, ~0);
-+ netsec_stop_gmac(priv);
-+
-+ pm_runtime_put_sync(priv->dev);
-+
-+ for (n = 0; n <= NETSEC_RING_MAX; n++)
-+ netsec_free_desc_ring(priv, &priv->desc_ring[n]);
-+
-+ free_irq(priv->ndev->irq, priv);
-+ priv->irq_registered = false;
-+
-+ return 0;
-+}
-+
-+const struct net_device_ops netsec_netdev_ops = {
-+ .ndo_open = netsec_netdev_open,
-+ .ndo_stop = netsec_netdev_stop,
-+ .ndo_start_xmit = netsec_netdev_start_xmit,
-+ .ndo_set_features = netsec_netdev_set_features,
-+ .ndo_set_mac_address = eth_mac_addr,
-+ .ndo_validate_addr = eth_validate_addr,
-+};
-diff --git a/drivers/net/ethernet/socionext/netsec/netsec_platform.c b/drivers/net/ethernet/socionext/netsec/netsec_platform.c
-new file mode 100644
-index 0000000..624f6a7
---- /dev/null
-+++ b/drivers/net/ethernet/socionext/netsec/netsec_platform.c
-@@ -0,0 +1,435 @@
-+/**
-+ * drivers/net/ethernet/socionext/netsec/netsec_platform.c
-+ *
-+ * Copyright (C) 2013-2014 Fujitsu Semiconductor Limited.
-+ * Copyright (C) 2014-2017 Linaro Ltd. All rights reserved.
-+ * Andy Green <andy.green@linaro.org>
-+ * Jassi Brar <jaswinder.singh@linaro.org>
-+ * Ard Biesheuvel <ard.biesheuvel@linaro.org>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ */
-+
-+#include <linux/acpi.h>
-+#include <linux/device.h>
-+#include <linux/ctype.h>
-+#include <linux/netdevice.h>
-+#include <linux/types.h>
-+#include <linux/bitops.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/module.h>
-+#include <linux/sizes.h>
-+#include <linux/platform_device.h>
-+#include <linux/clk.h>
-+#include <linux/of.h>
-+#include <linux/of_device.h>
-+#include <linux/of_net.h>
-+#include <linux/io.h>
-+#include <linux/pm_runtime.h>
-+
-+#include "netsec.h"
-+
-+#define NETSEC_F_NETSEC_VER_MAJOR_NUM(x) (x & 0xffff0000)
-+
-+static int napi_weight = 64;
-+static u16 pause_time = 256;
-+
-+static int netsec_of_probe(struct platform_device *pdev,
-+ struct netsec_priv *priv)
-+{
-+ int clk_count, ret, i;
-+
-+ priv->phy_np = of_parse_phandle(pdev->dev.of_node, "phy-handle", 0);
-+ if (!priv->phy_np) {
-+ dev_err(&pdev->dev, "missing required property 'phy-handle'\n");
-+ return -EINVAL;
-+ }
-+
-+ /* we require named clocks if there is more than one */
-+ clk_count = of_property_count_strings(pdev->dev.of_node, "clock-names");
-+ if (clk_count > 1) {
-+ if (clk_count > ARRAY_SIZE(priv->clk)) {
-+ dev_err(&pdev->dev, "too many clocks specified (%d)\n",
-+ clk_count);
-+ return -EINVAL;
-+ }
-+
-+ for (i = 0; i < clk_count; i++) {
-+ const char *clk_name;
-+
-+ ret = of_property_read_string_index(pdev->dev.of_node,
-+ "clock-names", i,
-+ &clk_name);
-+ if (ret) {
-+ dev_err(&pdev->dev,
-+ "failed to parse 'clock-names'\n");
-+ return ret;
-+ }
-+ priv->clk[i] = devm_clk_get(&pdev->dev, clk_name);
-+ if (!strcmp(clk_name, "phy_refclk")) {
-+ priv->freq = clk_get_rate(priv->clk[i]);
-+ dev_dbg(&pdev->dev,
-+ "found PHY refclock #%d freq %u\n",
-+ i, priv->freq);
-+ }
-+ }
-+ priv->clock_count = clk_count;
-+ } else {
-+ priv->clk[0] = devm_clk_get(&pdev->dev, NULL);
-+ if (IS_ERR(priv->clk)) {
-+ dev_err(&pdev->dev,
-+ "missing required property 'clocks'\n");
-+ return PTR_ERR(priv->clk);
-+ }
-+ priv->freq = clk_get_rate(priv->clk[0]);
-+ priv->clock_count = 1;
-+ }
-+ return 0;
-+}
-+
-+static int netsec_acpi_probe(struct platform_device *pdev,
-+ struct netsec_priv *priv, u32 *phy_addr)
-+{
-+ int ret;
-+
-+ if (!IS_ENABLED(CONFIG_ACPI))
-+ return -ENODEV;
-+
-+ ret = device_property_read_u32(&pdev->dev, "phy-channel", phy_addr);
-+ if (ret) {
-+ dev_err(&pdev->dev,
-+ "missing required property 'phy-channel'\n");
-+ return ret;
-+ }
-+
-+ ret = device_property_read_u32(&pdev->dev,
-+ "socionext,phy-clock-frequency",
-+ &priv->freq);
-+ if (ret)
-+ dev_err(&pdev->dev,
-+ "missing required property 'socionext,phy-clock-frequency'\n");
-+ return ret;
-+}
-+
-+static int netsec_probe(struct platform_device *pdev)
-+{
-+ struct net_device *ndev;
-+ struct netsec_priv *priv;
-+ struct resource *mmio_res, *eeprom_res, *irq_res;
-+ u8 *mac, macbuf[ETH_ALEN];
-+ u32 hw_ver, phy_addr;
-+ int ret;
-+
-+ mmio_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+ if (!mmio_res) {
-+ dev_err(&pdev->dev, "No MMIO resource found.\n");
-+ return -ENODEV;
-+ }
-+
-+ eeprom_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-+ if (!eeprom_res) {
-+ dev_info(&pdev->dev, "No EEPROM resource found.\n");
-+ return -ENODEV;
-+ }
-+
-+ irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-+ if (!irq_res) {
-+ dev_err(&pdev->dev, "No IRQ resource found.\n");
-+ return -ENODEV;
-+ }
-+
-+ ndev = alloc_etherdev(sizeof(*priv));
-+ if (!ndev)
-+ return -ENOMEM;
-+
-+ priv = netdev_priv(ndev);
-+ priv->ndev = ndev;
-+ SET_NETDEV_DEV(ndev, &pdev->dev);
-+ platform_set_drvdata(pdev, priv);
-+ priv->dev = &pdev->dev;
-+
-+ priv->msg_enable = NETIF_MSG_TX_ERR | NETIF_MSG_HW | NETIF_MSG_DRV |
-+ NETIF_MSG_LINK | NETIF_MSG_PROBE;
-+
-+ ndev->irq = irq_res->start;
-+
-+ priv->phy_interface = device_get_phy_mode(&pdev->dev);
-+ if (priv->phy_interface < 0) {
-+ dev_err(&pdev->dev, "missing required property 'phy-mode'\n");
-+ ret = -ENODEV;
-+ goto free_ndev;
-+ }
-+
-+ priv->ioaddr = devm_ioremap(&pdev->dev, mmio_res->start,
-+ resource_size(mmio_res));
-+ if (!priv->ioaddr) {
-+ dev_err(&pdev->dev, "devm_ioremap() failed\n");
-+ ret = -ENXIO;
-+ goto free_ndev;
-+ }
-+
-+ priv->eeprom_base = devm_memremap(&pdev->dev, eeprom_res->start,
-+ resource_size(eeprom_res),
-+ MEMREMAP_WT);
-+ if (!priv->eeprom_base) {
-+ dev_err(&pdev->dev, "devm_memremap() failed for EEPROM\n");
-+ ret = -ENXIO;
-+ goto free_ndev;
-+ }
-+
-+ mac = device_get_mac_address(&pdev->dev, macbuf, sizeof(macbuf));
-+ if (mac)
-+ ether_addr_copy(ndev->dev_addr, mac);
-+
-+ if (priv->eeprom_base &&
-+ (!mac || !is_valid_ether_addr(ndev->dev_addr))) {
-+ const u8 *macp = priv->eeprom_base + NETSEC_EEPROM_MAC_ADDRESS;
-+
-+ ndev->dev_addr[0] = macp[3];
-+ ndev->dev_addr[1] = macp[2];
-+ ndev->dev_addr[2] = macp[1];
-+ ndev->dev_addr[3] = macp[0];
-+ ndev->dev_addr[4] = macp[7];
-+ ndev->dev_addr[5] = macp[6];
-+ }
-+
-+ if (!is_valid_ether_addr(ndev->dev_addr)) {
-+ dev_warn(&pdev->dev, "No MAC address found, using random\n");
-+ eth_hw_addr_random(ndev);
-+ }
-+
-+ if (dev_of_node(&pdev->dev))
-+ ret = netsec_of_probe(pdev, priv);
-+ else
-+ ret = netsec_acpi_probe(pdev, priv, &phy_addr);
-+ if (ret)
-+ goto free_ndev;
-+
-+ if (!priv->freq) {
-+ dev_err(&pdev->dev, "missing PHY reference clock frequency\n");
-+ ret = -ENODEV;
-+ goto free_ndev;
-+ }
-+
-+ /* disable by default */
-+ priv->et_coalesce.rx_coalesce_usecs = 0;
-+ priv->et_coalesce.rx_max_coalesced_frames = 1;
-+ priv->et_coalesce.tx_coalesce_usecs = 0;
-+ priv->et_coalesce.tx_max_coalesced_frames = 1;
-+
-+ ret = device_property_read_u32(&pdev->dev, "max-frame-size",
-+ &ndev->max_mtu);
-+ if (ret < 0)
-+ ndev->max_mtu = ETH_DATA_LEN;
-+
-+ priv->rx_pkt_buf_len = ndev->max_mtu + 22;
-+ priv->param.use_jumbo_pkt_flag = (ndev->max_mtu > ETH_DATA_LEN);
-+
-+ pm_runtime_enable(&pdev->dev);
-+ /* runtime_pm coverage just for probe, open/close also cover it */
-+ pm_runtime_get_sync(&pdev->dev);
-+
-+ hw_ver = netsec_readl(priv, NETSEC_REG_F_TAIKI_VER);
-+ /* this driver only supports F_TAIKI style NETSEC */
-+ if (NETSEC_F_NETSEC_VER_MAJOR_NUM(hw_ver) !=
-+ NETSEC_F_NETSEC_VER_MAJOR_NUM(NETSEC_REG_NETSEC_VER_F_TAIKI)) {
-+ ret = -ENODEV;
-+ goto pm_disable;
-+ }
-+
-+ dev_info(&pdev->dev, "hardware revision %d.%d\n",
-+ hw_ver >> 16, hw_ver & 0xffff);
-+
-+ priv->mac_mode.flow_start_th = NETSEC_FLOW_CONTROL_START_THRESHOLD;
-+ priv->mac_mode.flow_stop_th = NETSEC_FLOW_CONTROL_STOP_THRESHOLD;
-+ priv->mac_mode.pause_time = pause_time;
-+ priv->mac_mode.flow_ctrl_enable_flag = false;
-+
-+ netif_napi_add(ndev, &priv->napi, netsec_netdev_napi_poll, napi_weight);
-+
-+ ndev->netdev_ops = &netsec_netdev_ops;
-+ ndev->ethtool_ops = &netsec_ethtool_ops;
-+ ndev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
-+ NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_GSO |
-+ NETIF_F_HIGHDMA | NETIF_F_RXCSUM;
-+ ndev->hw_features = ndev->features;
-+
-+ priv->rx_cksum_offload_flag = true;
-+ spin_lock_init(&priv->tx_queue_lock);
-+
-+ ret = netsec_mii_register(priv);
-+ if (ret) {
-+ dev_err(&pdev->dev, "mii bus registration failed (%d)\n", ret);
-+ goto pm_disable;
-+ }
-+
-+ if (!dev_of_node(&pdev->dev)) { /* ACPI */
-+ priv->phydev = get_phy_device(priv->mii_bus, phy_addr, false);
-+ if (IS_ERR(priv->phydev)) {
-+ dev_err(&pdev->dev, "get_phy_device() failed (%ld)\n",
-+ PTR_ERR(priv->phydev));
-+ ret = PTR_ERR(priv->phydev);
-+ goto unregister_mii;
-+ }
-+
-+ ret = phy_device_register(priv->phydev);
-+ if (ret) {
-+ dev_err(&pdev->dev,
-+ "phy_device_register() failed (%d)\n", ret);
-+ phy_device_free(priv->phydev);
-+ goto unregister_mii;
-+ }
-+ }
-+
-+ /* disable all other interrupt sources */
-+ netsec_writel(priv, NETSEC_REG_INTEN_CLR, ~0);
-+ netsec_writel(priv, NETSEC_REG_INTEN_SET,
-+ NETSEC_IRQ_TX | NETSEC_IRQ_RX);
-+
-+ if (dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)))
-+ dev_warn(&pdev->dev, "Failed to enable 64-bit DMA\n");
-+
-+ ret = register_netdev(ndev);
-+ if (ret) {
-+ netif_err(priv, probe, ndev, "register_netdev() failed\n");
-+ goto unregister_mii;
-+ }
-+
-+ pm_runtime_put_sync_suspend(&pdev->dev);
-+
-+ return 0;
-+
-+unregister_mii:
-+ netsec_mii_unregister(priv);
-+
-+pm_disable:
-+ pm_runtime_put_sync_suspend(&pdev->dev);
-+ pm_runtime_disable(&pdev->dev);
-+
-+free_ndev:
-+ free_netdev(ndev);
-+
-+ dev_err(&pdev->dev, "init failed\n");
-+
-+ return ret;
-+}
-+
-+static int netsec_remove(struct platform_device *pdev)
-+{
-+ struct netsec_priv *priv = platform_get_drvdata(pdev);
-+
-+ unregister_netdev(priv->ndev);
-+ if (!dev_of_node(&pdev->dev)) { /* ACPI */
-+ phy_device_remove(priv->phydev);
-+ phy_device_free(priv->phydev);
-+ }
-+ netsec_mii_unregister(priv);
-+ pm_runtime_disable(&pdev->dev);
-+ free_netdev(priv->ndev);
-+
-+ return 0;
-+}
-+
-+#ifdef CONFIG_PM
-+static int netsec_runtime_suspend(struct device *dev)
-+{
-+ struct netsec_priv *priv = dev_get_drvdata(dev);
-+ int n;
-+
-+ netif_dbg(priv, drv, priv->ndev, "%s\n", __func__);
-+
-+ if (priv->irq_registered)
-+ disable_irq(priv->ndev->irq);
-+
-+ netsec_writel(priv, NETSEC_REG_CLK_EN, 0);
-+
-+ for (n = priv->clock_count - 1; n >= 0; n--)
-+ clk_disable_unprepare(priv->clk[n]);
-+
-+ return 0;
-+}
-+
-+static int netsec_runtime_resume(struct device *dev)
-+{
-+ struct netsec_priv *priv = dev_get_drvdata(dev);
-+ int n;
-+
-+ netif_dbg(priv, drv, priv->ndev, "%s\n", __func__);
-+
-+ /* first let the clocks back on */
-+
-+ for (n = 0; n < priv->clock_count; n++)
-+ clk_prepare_enable(priv->clk[n]);
-+
-+ netsec_writel(priv, NETSEC_REG_CLK_EN, NETSEC_CLK_EN_REG_DOM_D |
-+ NETSEC_CLK_EN_REG_DOM_C |
-+ NETSEC_CLK_EN_REG_DOM_G);
-+
-+ if (priv->irq_registered)
-+ enable_irq(priv->ndev->irq);
-+
-+ return 0;
-+}
-+
-+static int netsec_pm_suspend(struct device *dev)
-+{
-+ struct netsec_priv *priv = dev_get_drvdata(dev);
-+
-+ netif_dbg(priv, drv, priv->ndev, "%s\n", __func__);
-+
-+ if (pm_runtime_status_suspended(dev))
-+ return 0;
-+
-+ return netsec_runtime_suspend(dev);
-+}
-+
-+static int netsec_pm_resume(struct device *dev)
-+{
-+ struct netsec_priv *priv = dev_get_drvdata(dev);
-+
-+ netif_dbg(priv, drv, priv->ndev, "%s\n", __func__);
-+
-+ if (pm_runtime_status_suspended(dev))
-+ return 0;
-+
-+ return netsec_runtime_resume(dev);
-+}
-+#endif
-+
-+static const struct dev_pm_ops netsec_pm_ops = {
-+ SET_SYSTEM_SLEEP_PM_OPS(netsec_pm_suspend, netsec_pm_resume)
-+ SET_RUNTIME_PM_OPS(netsec_runtime_suspend, netsec_runtime_resume, NULL)
-+};
-+
-+static const struct of_device_id netsec_dt_ids[] = {
-+ { .compatible = "socionext,synquacer-netsec" },
-+ { }
-+};
-+MODULE_DEVICE_TABLE(of, netsec_dt_ids);
-+
-+#ifdef CONFIG_ACPI
-+static const struct acpi_device_id netsec_acpi_ids[] = {
-+ { "SCX0001" },
-+ { }
-+};
-+MODULE_DEVICE_TABLE(acpi, netsec_acpi_ids);
-+#endif
-+
-+static struct platform_driver netsec_driver = {
-+ .probe = netsec_probe,
-+ .remove = netsec_remove,
-+ .driver.name = "netsec",
-+ .driver.of_match_table = netsec_dt_ids,
-+ .driver.acpi_match_table = ACPI_PTR(netsec_acpi_ids),
-+ .driver.pm = &netsec_pm_ops,
-+};
-+module_platform_driver(netsec_driver);
-+
-+MODULE_AUTHOR("Andy Green <andy.green@linaro.org>");
-+MODULE_AUTHOR("Jassi Brar <jaswinder.singh@linaro.org>");
-+MODULE_AUTHOR("Ard Biesheuvel <ard.biesheuvel@linaro.org>");
-+MODULE_DESCRIPTION("NETSEC Ethernet driver");
-+MODULE_LICENSE("GPL");
---
-cgit v1.1
-
-From 31a61532e7b859a797d36595ec5ab7485a9b24d5 Mon Sep 17 00:00:00 2001
-From: Jassi Brar <jassisinghbrar@gmail.com>
-Date: Wed, 30 Aug 2017 15:55:52 +0530
-Subject: dt-bindings: net: Add DT bindings for Socionext Netsec
-
-This patch adds documentation for Device-Tree bindings for the
-Socionext NetSec Controller driver.
-
-Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
-Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
----
- .../devicetree/bindings/net/socionext-netsec.txt | 43 ++++++++++++++++++++++
- 1 file changed, 43 insertions(+)
- create mode 100644 Documentation/devicetree/bindings/net/socionext-netsec.txt
-
-diff --git a/Documentation/devicetree/bindings/net/socionext-netsec.txt b/Documentation/devicetree/bindings/net/socionext-netsec.txt
-new file mode 100644
-index 0000000..4695969
---- /dev/null
-+++ b/Documentation/devicetree/bindings/net/socionext-netsec.txt
-@@ -0,0 +1,43 @@
-+* Socionext NetSec Ethernet Controller IP
-+
-+Required properties:
-+- compatible: Should be "socionext,synquacer-netsec"
-+- reg: Address and length of the control register area, followed by the
-+ address and length of the EEPROM holding the MAC address and
-+ microengine firmware
-+- interrupts: Should contain ethernet controller interrupt
-+- clocks: phandle to the PHY reference clock, and any other clocks to be
-+ switched by runtime_pm
-+- clock-names: Required only if more than a single clock is listed in 'clocks'.
-+ The PHY reference clock must be named 'phy_refclk'
-+- phy-mode: See ethernet.txt file in the same directory
-+- phy-handle: phandle to select child phy
-+
-+Optional properties: (See ethernet.txt file in the same directory)
-+- local-mac-address
-+- mac-address
-+- max-speed
-+- max-frame-size
-+
-+Required properties for the child phy:
-+- reg: phy address
-+
-+Example:
-+ eth0: netsec@522D0000 {
-+ compatible = "socionext,synquacer-netsec";
-+ reg = <0 0x522D0000 0x0 0x10000>, <0 0x10000000 0x0 0x10000>;
-+ interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
-+ clocks = <&clk_netsec>;
-+ phy-mode = "rgmii";
-+ max-speed = <1000>;
-+ max-frame-size = <9000>;
-+ phy-handle = <&ethphy0>;
-+
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ ethphy0: ethernet-phy@1 {
-+ compatible = "ethernet-phy-ieee802.3-c22";
-+ reg = <1>;
-+ };
-+ };
---
-cgit v1.1
-
-From d2fc584f8237746a84e6ec8690d8884f148fc449 Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Tue, 10 Oct 2017 11:35:51 +0100
-Subject: [PATCH] add interrupt.h, sort alphabetically
-
-Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
----
- drivers/net/ethernet/socionext/netsec/netsec_platform.c | 17 +++++++++--------
- 1 file changed, 9 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/socionext/netsec/netsec_platform.c b/drivers/net/ethernet/socionext/netsec/netsec_platform.c
-index 624f6a7093f6..79072bae917d 100644
---- a/drivers/net/ethernet/socionext/netsec/netsec_platform.c
-+++ b/drivers/net/ethernet/socionext/netsec/netsec_platform.c
-@@ -14,21 +14,22 @@
- */
-
- #include <linux/acpi.h>
--#include <linux/device.h>
--#include <linux/ctype.h>
--#include <linux/netdevice.h>
--#include <linux/types.h>
- #include <linux/bitops.h>
-+#include <linux/clk.h>
-+#include <linux/ctype.h>
-+#include <linux/device.h>
- #include <linux/dma-mapping.h>
-+#include <linux/io.h>
-+#include <linux/interrupt.h>
- #include <linux/module.h>
--#include <linux/sizes.h>
--#include <linux/platform_device.h>
--#include <linux/clk.h>
-+#include <linux/netdevice.h>
- #include <linux/of.h>
- #include <linux/of_device.h>
- #include <linux/of_net.h>
--#include <linux/io.h>
-+#include <linux/platform_device.h>
- #include <linux/pm_runtime.h>
-+#include <linux/sizes.h>
-+#include <linux/types.h>
-
- #include "netsec.h"
-
---
-2.14.2
-
diff --git a/arm64-thunderx-crypto-zip-fixes.patch b/arm64-thunderx-crypto-zip-fixes.patch
new file mode 100644
index 000000000..7f970ee30
--- /dev/null
+++ b/arm64-thunderx-crypto-zip-fixes.patch
@@ -0,0 +1,403 @@
+From patchwork Mon Apr 9 15:45:50 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v2,1/5] crypto: thunderx_zip: Fix fallout from CONFIG_VMAP_STACK
+From: Jan Glauber <jglauber@cavium.com>
+X-Patchwork-Id: 10331719
+Message-Id: <20180409154554.7578-2-jglauber@cavium.com>
+To: Herbert Xu <herbert@gondor.apana.org.au>
+Cc: "David S . Miller" <davem@davemloft.net>,
+ linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
+ Mahipal Challa <Mahipal.Challa@cavium.com>,
+ Robert Richter <rrichter@cavium.com>, Jan Glauber <jglauber@cavium.com>,
+ stable <stable@vger.kernel.org>
+Date: Mon, 9 Apr 2018 17:45:50 +0200
+
+Enabling virtual mapped kernel stacks breaks the thunderx_zip
+driver. On compression or decompression the executing CPU hangs
+in an endless loop. The reason for this is the usage of __pa
+by the driver which does no longer work for an address that is
+not part of the 1:1 mapping.
+
+The zip driver allocates a result struct on the stack and needs
+to tell the hardware the physical address within this struct
+that is used to signal the completion of the request.
+
+As the hardware gets the wrong address after the broken __pa
+conversion it writes to an arbitrary address. The zip driver then
+waits forever for the completion byte to contain a non-zero value.
+
+Allocating the result struct from 1:1 mapped memory resolves this
+bug.
+
+Signed-off-by: Jan Glauber <jglauber@cavium.com>
+Reviewed-by: Robert Richter <rrichter@cavium.com>
+Cc: stable <stable@vger.kernel.org> # 4.14
+---
+ drivers/crypto/cavium/zip/zip_crypto.c | 22 ++++++++++++++--------
+ 1 file changed, 14 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/crypto/cavium/zip/zip_crypto.c b/drivers/crypto/cavium/zip/zip_crypto.c
+index 8df4d26cf9d4..b92b6e7e100f 100644
+--- a/drivers/crypto/cavium/zip/zip_crypto.c
++++ b/drivers/crypto/cavium/zip/zip_crypto.c
+@@ -124,7 +124,7 @@ int zip_compress(const u8 *src, unsigned int slen,
+ struct zip_kernel_ctx *zip_ctx)
+ {
+ struct zip_operation *zip_ops = NULL;
+- struct zip_state zip_state;
++ struct zip_state *zip_state;
+ struct zip_device *zip = NULL;
+ int ret;
+
+@@ -135,20 +135,23 @@ int zip_compress(const u8 *src, unsigned int slen,
+ if (!zip)
+ return -ENODEV;
+
+- memset(&zip_state, 0, sizeof(struct zip_state));
++ zip_state = kzalloc(sizeof(*zip_state), GFP_ATOMIC);
++ if (!zip_state)
++ return -ENOMEM;
++
+ zip_ops = &zip_ctx->zip_comp;
+
+ zip_ops->input_len = slen;
+ zip_ops->output_len = *dlen;
+ memcpy(zip_ops->input, src, slen);
+
+- ret = zip_deflate(zip_ops, &zip_state, zip);
++ ret = zip_deflate(zip_ops, zip_state, zip);
+
+ if (!ret) {
+ *dlen = zip_ops->output_len;
+ memcpy(dst, zip_ops->output, *dlen);
+ }
+-
++ kfree(zip_state);
+ return ret;
+ }
+
+@@ -157,7 +160,7 @@ int zip_decompress(const u8 *src, unsigned int slen,
+ struct zip_kernel_ctx *zip_ctx)
+ {
+ struct zip_operation *zip_ops = NULL;
+- struct zip_state zip_state;
++ struct zip_state *zip_state;
+ struct zip_device *zip = NULL;
+ int ret;
+
+@@ -168,7 +171,10 @@ int zip_decompress(const u8 *src, unsigned int slen,
+ if (!zip)
+ return -ENODEV;
+
+- memset(&zip_state, 0, sizeof(struct zip_state));
++ zip_state = kzalloc(sizeof(*zip_state), GFP_ATOMIC);
++ if (!zip_state)
++ return -ENOMEM;
++
+ zip_ops = &zip_ctx->zip_decomp;
+ memcpy(zip_ops->input, src, slen);
+
+@@ -179,13 +185,13 @@ int zip_decompress(const u8 *src, unsigned int slen,
+ zip_ops->input_len = slen;
+ zip_ops->output_len = *dlen;
+
+- ret = zip_inflate(zip_ops, &zip_state, zip);
++ ret = zip_inflate(zip_ops, zip_state, zip);
+
+ if (!ret) {
+ *dlen = zip_ops->output_len;
+ memcpy(dst, zip_ops->output, *dlen);
+ }
+-
++ kfree(zip_state);
+ return ret;
+ }
+
+From patchwork Mon Apr 9 15:45:51 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v2,2/5] crypto: thunderx_zip: Limit result reading attempts
+From: Jan Glauber <jglauber@cavium.com>
+X-Patchwork-Id: 10331705
+Message-Id: <20180409154554.7578-3-jglauber@cavium.com>
+To: Herbert Xu <herbert@gondor.apana.org.au>
+Cc: "David S . Miller" <davem@davemloft.net>,
+ linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
+ Mahipal Challa <Mahipal.Challa@cavium.com>,
+ Robert Richter <rrichter@cavium.com>, Jan Glauber <jglauber@cavium.com>,
+ stable <stable@vger.kernel.org>
+Date: Mon, 9 Apr 2018 17:45:51 +0200
+
+After issuing a request an endless loop was used to read the
+completion state from memory which is asynchronously updated
+by the ZIP coprocessor.
+
+Add an upper bound to the retry attempts to prevent a CPU getting stuck
+forever in case of an error. Additionally, add a read memory barrier
+and a small delay between the reading attempts.
+
+Signed-off-by: Jan Glauber <jglauber@cavium.com>
+Reviewed-by: Robert Richter <rrichter@cavium.com>
+Cc: stable <stable@vger.kernel.org> # 4.14
+---
+ drivers/crypto/cavium/zip/common.h | 21 +++++++++++++++++++++
+ drivers/crypto/cavium/zip/zip_deflate.c | 4 ++--
+ drivers/crypto/cavium/zip/zip_inflate.c | 4 ++--
+ 3 files changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/crypto/cavium/zip/common.h b/drivers/crypto/cavium/zip/common.h
+index dc451e0a43c5..58fb3ed6e644 100644
+--- a/drivers/crypto/cavium/zip/common.h
++++ b/drivers/crypto/cavium/zip/common.h
+@@ -46,8 +46,10 @@
+ #ifndef __COMMON_H__
+ #define __COMMON_H__
+
++#include <linux/delay.h>
+ #include <linux/init.h>
+ #include <linux/interrupt.h>
++#include <linux/io.h>
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+ #include <linux/pci.h>
+@@ -149,6 +151,25 @@ struct zip_operation {
+ u32 sizeofzops;
+ };
+
++static inline int zip_poll_result(union zip_zres_s *result)
++{
++ int retries = 1000;
++
++ while (!result->s.compcode) {
++ if (!--retries) {
++ pr_err("ZIP ERR: request timed out");
++ return -ETIMEDOUT;
++ }
++ udelay(10);
++ /*
++ * Force re-reading of compcode which is updated
++ * by the ZIP coprocessor.
++ */
++ rmb();
++ }
++ return 0;
++}
++
+ /* error messages */
+ #define zip_err(fmt, args...) pr_err("ZIP ERR:%s():%d: " \
+ fmt "\n", __func__, __LINE__, ## args)
+diff --git a/drivers/crypto/cavium/zip/zip_deflate.c b/drivers/crypto/cavium/zip/zip_deflate.c
+index 9a944b8c1e29..d7133f857d67 100644
+--- a/drivers/crypto/cavium/zip/zip_deflate.c
++++ b/drivers/crypto/cavium/zip/zip_deflate.c
+@@ -129,8 +129,8 @@ int zip_deflate(struct zip_operation *zip_ops, struct zip_state *s,
+ /* Stats update for compression requests submitted */
+ atomic64_inc(&zip_dev->stats.comp_req_submit);
+
+- while (!result_ptr->s.compcode)
+- continue;
++ /* Wait for completion or error */
++ zip_poll_result(result_ptr);
+
+ /* Stats update for compression requests completed */
+ atomic64_inc(&zip_dev->stats.comp_req_complete);
+diff --git a/drivers/crypto/cavium/zip/zip_inflate.c b/drivers/crypto/cavium/zip/zip_inflate.c
+index 50cbdd83dbf2..7e0d73e2f89e 100644
+--- a/drivers/crypto/cavium/zip/zip_inflate.c
++++ b/drivers/crypto/cavium/zip/zip_inflate.c
+@@ -143,8 +143,8 @@ int zip_inflate(struct zip_operation *zip_ops, struct zip_state *s,
+ /* Decompression requests submitted stats update */
+ atomic64_inc(&zip_dev->stats.decomp_req_submit);
+
+- while (!result_ptr->s.compcode)
+- continue;
++ /* Wait for completion or error */
++ zip_poll_result(result_ptr);
+
+ /* Decompression requests completed stats update */
+ atomic64_inc(&zip_dev->stats.decomp_req_complete);
+From patchwork Mon Apr 9 15:45:52 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v2,3/5] crypto: thunderx_zip: Prevent division by zero
+From: Jan Glauber <jglauber@cavium.com>
+X-Patchwork-Id: 10331709
+Message-Id: <20180409154554.7578-4-jglauber@cavium.com>
+To: Herbert Xu <herbert@gondor.apana.org.au>
+Cc: "David S . Miller" <davem@davemloft.net>,
+ linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
+ Mahipal Challa <Mahipal.Challa@cavium.com>,
+ Robert Richter <rrichter@cavium.com>, Jan Glauber <jglauber@cavium.com>
+Date: Mon, 9 Apr 2018 17:45:52 +0200
+
+Avoid two potential divisions by zero when calculating average
+values for the zip statistics.
+
+Signed-off-by: Jan Glauber <jglauber@cavium.com>
+Reviewed-by: Robert Richter <rrichter@cavium.com>
+---
+ drivers/crypto/cavium/zip/zip_main.c | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/crypto/cavium/zip/zip_main.c b/drivers/crypto/cavium/zip/zip_main.c
+index 1cd8aa488185..79b449e0f955 100644
+--- a/drivers/crypto/cavium/zip/zip_main.c
++++ b/drivers/crypto/cavium/zip/zip_main.c
+@@ -482,10 +482,11 @@ static int zip_show_stats(struct seq_file *s, void *unused)
+ atomic64_add(val, &st->pending_req);
+ }
+
+- avg_chunk = (atomic64_read(&st->comp_in_bytes) /
+- atomic64_read(&st->comp_req_complete));
+- avg_cr = (atomic64_read(&st->comp_in_bytes) /
+- atomic64_read(&st->comp_out_bytes));
++ val = atomic64_read(&st->comp_req_complete);
++ avg_chunk = (val) ? atomic64_read(&st->comp_in_bytes) / val : 0;
++
++ val = atomic64_read(&st->comp_out_bytes);
++ avg_cr = (val) ? atomic64_read(&st->comp_in_bytes) / val : 0;
+ seq_printf(s, " ZIP Device %d Stats\n"
+ "-----------------------------------\n"
+ "Comp Req Submitted : \t%lld\n"
+From patchwork Mon Apr 9 15:45:53 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v2,4/5] crypto: thunderx_zip: Fix statistics pending request value
+From: Jan Glauber <jglauber@cavium.com>
+X-Patchwork-Id: 10331711
+Message-Id: <20180409154554.7578-5-jglauber@cavium.com>
+To: Herbert Xu <herbert@gondor.apana.org.au>
+Cc: "David S . Miller" <davem@davemloft.net>,
+ linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
+ Mahipal Challa <Mahipal.Challa@cavium.com>,
+ Robert Richter <rrichter@cavium.com>, Jan Glauber <jglauber@cavium.com>
+Date: Mon, 9 Apr 2018 17:45:53 +0200
+
+The pending request counter was read from the wrong register. While
+at it, there is no need to use an atomic for it as it is only read
+localy in a loop.
+
+Signed-off-by: Jan Glauber <jglauber@cavium.com>
+Reviewed-by: Robert Richter <rrichter@cavium.com>
+---
+ drivers/crypto/cavium/zip/zip_main.c | 13 +++++--------
+ drivers/crypto/cavium/zip/zip_main.h | 1 -
+ 2 files changed, 5 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/crypto/cavium/zip/zip_main.c b/drivers/crypto/cavium/zip/zip_main.c
+index 79b449e0f955..ae5b20c695ca 100644
+--- a/drivers/crypto/cavium/zip/zip_main.c
++++ b/drivers/crypto/cavium/zip/zip_main.c
+@@ -469,6 +469,8 @@ static int zip_show_stats(struct seq_file *s, void *unused)
+ struct zip_stats *st;
+
+ for (index = 0; index < MAX_ZIP_DEVICES; index++) {
++ u64 pending = 0;
++
+ if (zip_dev[index]) {
+ zip = zip_dev[index];
+ st = &zip->stats;
+@@ -476,10 +478,8 @@ static int zip_show_stats(struct seq_file *s, void *unused)
+ /* Get all the pending requests */
+ for (q = 0; q < ZIP_NUM_QUEUES; q++) {
+ val = zip_reg_read((zip->reg_base +
+- ZIP_DBG_COREX_STA(q)));
+- val = (val >> 32);
+- val = val & 0xffffff;
+- atomic64_add(val, &st->pending_req);
++ ZIP_DBG_QUEX_STA(q)));
++ pending += val >> 32 & 0xffffff;
+ }
+
+ val = atomic64_read(&st->comp_req_complete);
+@@ -514,10 +514,7 @@ static int zip_show_stats(struct seq_file *s, void *unused)
+ (u64)atomic64_read(&st->decomp_in_bytes),
+ (u64)atomic64_read(&st->decomp_out_bytes),
+ (u64)atomic64_read(&st->decomp_bad_reqs),
+- (u64)atomic64_read(&st->pending_req));
+-
+- /* Reset pending requests count */
+- atomic64_set(&st->pending_req, 0);
++ pending);
+ }
+ }
+ return 0;
+diff --git a/drivers/crypto/cavium/zip/zip_main.h b/drivers/crypto/cavium/zip/zip_main.h
+index 64e051f60784..e1e4fa92ce80 100644
+--- a/drivers/crypto/cavium/zip/zip_main.h
++++ b/drivers/crypto/cavium/zip/zip_main.h
+@@ -74,7 +74,6 @@ struct zip_stats {
+ atomic64_t comp_req_complete;
+ atomic64_t decomp_req_submit;
+ atomic64_t decomp_req_complete;
+- atomic64_t pending_req;
+ atomic64_t comp_in_bytes;
+ atomic64_t comp_out_bytes;
+ atomic64_t decomp_in_bytes;
+From patchwork Mon Apr 9 15:45:54 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v2,5/5] crypto: thunderx_zip: Fix smp_processor_id() warnings
+From: Jan Glauber <jglauber@cavium.com>
+X-Patchwork-Id: 10331715
+Message-Id: <20180409154554.7578-6-jglauber@cavium.com>
+To: Herbert Xu <herbert@gondor.apana.org.au>
+Cc: "David S . Miller" <davem@davemloft.net>,
+ linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
+ Mahipal Challa <Mahipal.Challa@cavium.com>,
+ Robert Richter <rrichter@cavium.com>, Jan Glauber <jglauber@cavium.com>
+Date: Mon, 9 Apr 2018 17:45:54 +0200
+
+Switch to raw_smp_processor_id() to prevent a number of
+warnings from kernel debugging. We do not care about
+preemption here, as the CPU number is only used as a
+poor mans load balancing or device selection. If preemption
+happens during a compress/decompress operation a small performance
+hit will occur but everything will continue to work, so just
+ignore it.
+
+Signed-off-by: Jan Glauber <jglauber@cavium.com>
+Reviewed-by: Robert Richter <rrichter@cavium.com>
+---
+ drivers/crypto/cavium/zip/zip_device.c | 4 ++--
+ drivers/crypto/cavium/zip/zip_main.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/crypto/cavium/zip/zip_device.c b/drivers/crypto/cavium/zip/zip_device.c
+index ccf21fb91513..f174ec29ed69 100644
+--- a/drivers/crypto/cavium/zip/zip_device.c
++++ b/drivers/crypto/cavium/zip/zip_device.c
+@@ -87,12 +87,12 @@ u32 zip_load_instr(union zip_inst_s *instr,
+ * Distribute the instructions between the enabled queues based on
+ * the CPU id.
+ */
+- if (smp_processor_id() % 2 == 0)
++ if (raw_smp_processor_id() % 2 == 0)
+ queue = 0;
+ else
+ queue = 1;
+
+- zip_dbg("CPU Core: %d Queue number:%d", smp_processor_id(), queue);
++ zip_dbg("CPU Core: %d Queue number:%d", raw_smp_processor_id(), queue);
+
+ /* Take cmd buffer lock */
+ spin_lock(&zip_dev->iq[queue].lock);
+diff --git a/drivers/crypto/cavium/zip/zip_main.c b/drivers/crypto/cavium/zip/zip_main.c
+index ae5b20c695ca..be055b9547f6 100644
+--- a/drivers/crypto/cavium/zip/zip_main.c
++++ b/drivers/crypto/cavium/zip/zip_main.c
+@@ -113,7 +113,7 @@ struct zip_device *zip_get_device(int node)
+ */
+ int zip_get_node_id(void)
+ {
+- return cpu_to_node(smp_processor_id());
++ return cpu_to_node(raw_smp_processor_id());
+ }
+
+ /* Initializes the ZIP h/w sub-system */
diff --git a/baseconfig/CONFIG_ACPI_SPCR_TABLE b/baseconfig/CONFIG_ACPI_SPCR_TABLE
new file mode 100644
index 000000000..f8a19253c
--- /dev/null
+++ b/baseconfig/CONFIG_ACPI_SPCR_TABLE
@@ -0,0 +1 @@
+CONFIG_ACPI_SPCR_TABLE=y
diff --git a/baseconfig/CONFIG_ATH10K_SPECTRAL b/baseconfig/CONFIG_ATH10K_SPECTRAL
new file mode 100644
index 000000000..8bc1582c6
--- /dev/null
+++ b/baseconfig/CONFIG_ATH10K_SPECTRAL
@@ -0,0 +1 @@
+# CONFIG_ATH10K_SPECTRAL is not set
diff --git a/baseconfig/CONFIG_ATH9K_COMMON_SPECTRAL b/baseconfig/CONFIG_ATH9K_COMMON_SPECTRAL
new file mode 100644
index 000000000..48a795914
--- /dev/null
+++ b/baseconfig/CONFIG_ATH9K_COMMON_SPECTRAL
@@ -0,0 +1 @@
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
diff --git a/baseconfig/CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION b/baseconfig/CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION
new file mode 100644
index 000000000..b93aaa794
--- /dev/null
+++ b/baseconfig/CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION
@@ -0,0 +1 @@
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
diff --git a/baseconfig/CONFIG_BPF_KPROBE_OVERRIDE b/baseconfig/CONFIG_BPF_KPROBE_OVERRIDE
new file mode 100644
index 000000000..573604162
--- /dev/null
+++ b/baseconfig/CONFIG_BPF_KPROBE_OVERRIDE
@@ -0,0 +1 @@
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
diff --git a/baseconfig/CONFIG_CHELSIO_IPSEC_INLINE b/baseconfig/CONFIG_CHELSIO_IPSEC_INLINE
new file mode 100644
index 000000000..729e6efde
--- /dev/null
+++ b/baseconfig/CONFIG_CHELSIO_IPSEC_INLINE
@@ -0,0 +1 @@
+CONFIG_CHELSIO_IPSEC_INLINE=y
diff --git a/baseconfig/CONFIG_CIFS_SMB_DIRECT b/baseconfig/CONFIG_CIFS_SMB_DIRECT
new file mode 100644
index 000000000..849bffb38
--- /dev/null
+++ b/baseconfig/CONFIG_CIFS_SMB_DIRECT
@@ -0,0 +1 @@
+# CONFIG_CIFS_SMB_DIRECT is not set
diff --git a/baseconfig/CONFIG_DM_UNSTRIPED b/baseconfig/CONFIG_DM_UNSTRIPED
new file mode 100644
index 000000000..27e4d2352
--- /dev/null
+++ b/baseconfig/CONFIG_DM_UNSTRIPED
@@ -0,0 +1 @@
+CONFIG_DM_UNSTRIPED=m
diff --git a/baseconfig/CONFIG_DRM_PANEL_ILITEK_IL9322 b/baseconfig/CONFIG_DRM_PANEL_ILITEK_IL9322
new file mode 100644
index 000000000..4a9fd454c
--- /dev/null
+++ b/baseconfig/CONFIG_DRM_PANEL_ILITEK_IL9322
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
diff --git a/baseconfig/CONFIG_DVB_MMAP b/baseconfig/CONFIG_DVB_MMAP
new file mode 100644
index 000000000..fea1faad6
--- /dev/null
+++ b/baseconfig/CONFIG_DVB_MMAP
@@ -0,0 +1 @@
+# CONFIG_DVB_MMAP is not set
diff --git a/baseconfig/CONFIG_DVB_ULE_DEBUG b/baseconfig/CONFIG_DVB_ULE_DEBUG
new file mode 100644
index 000000000..3acb854cc
--- /dev/null
+++ b/baseconfig/CONFIG_DVB_ULE_DEBUG
@@ -0,0 +1 @@
+# CONFIG_DVB_ULE_DEBUG is not set
diff --git a/baseconfig/CONFIG_FIND_BIT_BENCHMARK b/baseconfig/CONFIG_FIND_BIT_BENCHMARK
new file mode 100644
index 000000000..93fe7e039
--- /dev/null
+++ b/baseconfig/CONFIG_FIND_BIT_BENCHMARK
@@ -0,0 +1 @@
+# CONFIG_FIND_BIT_BENCHMARK is not set
diff --git a/baseconfig/CONFIG_GPIO_PCIE_IDIO_24 b/baseconfig/CONFIG_GPIO_PCIE_IDIO_24
new file mode 100644
index 000000000..6313cc61d
--- /dev/null
+++ b/baseconfig/CONFIG_GPIO_PCIE_IDIO_24
@@ -0,0 +1 @@
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
diff --git a/baseconfig/CONFIG_HARDENED_USERCOPY_FALLBACK b/baseconfig/CONFIG_HARDENED_USERCOPY_FALLBACK
new file mode 100644
index 000000000..36d49f582
--- /dev/null
+++ b/baseconfig/CONFIG_HARDENED_USERCOPY_FALLBACK
@@ -0,0 +1 @@
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
diff --git a/baseconfig/CONFIG_HID_JABRA b/baseconfig/CONFIG_HID_JABRA
new file mode 100644
index 000000000..c93fae8a6
--- /dev/null
+++ b/baseconfig/CONFIG_HID_JABRA
@@ -0,0 +1 @@
+CONFIG_HID_JABRA=m
diff --git a/baseconfig/CONFIG_HW_RANDOM_TPM b/baseconfig/CONFIG_HW_RANDOM_TPM
index 51b6ac9cb..d991b3c93 100644
--- a/baseconfig/CONFIG_HW_RANDOM_TPM
+++ b/baseconfig/CONFIG_HW_RANDOM_TPM
@@ -1 +1 @@
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
diff --git a/baseconfig/CONFIG_IIO_BUFFER_HW_CONSUMER b/baseconfig/CONFIG_IIO_BUFFER_HW_CONSUMER
new file mode 100644
index 000000000..1d90b19ae
--- /dev/null
+++ b/baseconfig/CONFIG_IIO_BUFFER_HW_CONSUMER
@@ -0,0 +1 @@
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
diff --git a/baseconfig/CONFIG_IP6_NF_MATCH_SRH b/baseconfig/CONFIG_IP6_NF_MATCH_SRH
new file mode 100644
index 000000000..c90ba3ec7
--- /dev/null
+++ b/baseconfig/CONFIG_IP6_NF_MATCH_SRH
@@ -0,0 +1 @@
+CONFIG_IP6_NF_MATCH_SRH=m
diff --git a/baseconfig/CONFIG_IPX_INTERN b/baseconfig/CONFIG_IPX_INTERN
deleted file mode 100644
index d409381ce..000000000
--- a/baseconfig/CONFIG_IPX_INTERN
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_IPX_INTERN is not set
diff --git a/baseconfig/CONFIG_LEDS_LM3692X b/baseconfig/CONFIG_LEDS_LM3692X
new file mode 100644
index 000000000..f31f9cb8a
--- /dev/null
+++ b/baseconfig/CONFIG_LEDS_LM3692X
@@ -0,0 +1 @@
+CONFIG_LEDS_LM3692X=m
diff --git a/baseconfig/CONFIG_LEDS_TRIGGER_NETDEV b/baseconfig/CONFIG_LEDS_TRIGGER_NETDEV
new file mode 100644
index 000000000..890e0a4ba
--- /dev/null
+++ b/baseconfig/CONFIG_LEDS_TRIGGER_NETDEV
@@ -0,0 +1 @@
+CONFIG_LEDS_TRIGGER_NETDEV=m
diff --git a/baseconfig/CONFIG_LIRC b/baseconfig/CONFIG_LIRC
index e1049c6ea..f0068c944 100644
--- a/baseconfig/CONFIG_LIRC
+++ b/baseconfig/CONFIG_LIRC
@@ -1 +1 @@
-CONFIG_LIRC=m
+CONFIG_LIRC=y
diff --git a/baseconfig/CONFIG_MELLANOX_PLATFORM b/baseconfig/CONFIG_MELLANOX_PLATFORM
new file mode 100644
index 000000000..8bd7b2e54
--- /dev/null
+++ b/baseconfig/CONFIG_MELLANOX_PLATFORM
@@ -0,0 +1 @@
+CONFIG_MELLANOX_PLATFORM=y
diff --git a/baseconfig/CONFIG_MFD_RTSX_PCI b/baseconfig/CONFIG_MFD_RTSX_PCI
deleted file mode 100644
index 161c0e2c2..000000000
--- a/baseconfig/CONFIG_MFD_RTSX_PCI
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MFD_RTSX_PCI=m
diff --git a/baseconfig/CONFIG_MFD_RTSX_USB b/baseconfig/CONFIG_MFD_RTSX_USB
deleted file mode 100644
index 1ec59a181..000000000
--- a/baseconfig/CONFIG_MFD_RTSX_USB
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MFD_RTSX_USB=m
diff --git a/baseconfig/CONFIG_MISC_RTSX_PCI b/baseconfig/CONFIG_MISC_RTSX_PCI
new file mode 100644
index 000000000..c05d0dda2
--- /dev/null
+++ b/baseconfig/CONFIG_MISC_RTSX_PCI
@@ -0,0 +1 @@
+CONFIG_MISC_RTSX_PCI=m
diff --git a/baseconfig/CONFIG_MISC_RTSX_USB b/baseconfig/CONFIG_MISC_RTSX_USB
new file mode 100644
index 000000000..c22296e51
--- /dev/null
+++ b/baseconfig/CONFIG_MISC_RTSX_USB
@@ -0,0 +1 @@
+CONFIG_MISC_RTSX_USB=m
diff --git a/baseconfig/CONFIG_MLXREG_HOTPLUG b/baseconfig/CONFIG_MLXREG_HOTPLUG
new file mode 100644
index 000000000..44d9d3771
--- /dev/null
+++ b/baseconfig/CONFIG_MLXREG_HOTPLUG
@@ -0,0 +1 @@
+CONFIG_MLXREG_HOTPLUG=m
diff --git a/baseconfig/CONFIG_MMC_CQHCI b/baseconfig/CONFIG_MMC_CQHCI
new file mode 100644
index 000000000..3ecbe65d0
--- /dev/null
+++ b/baseconfig/CONFIG_MMC_CQHCI
@@ -0,0 +1 @@
+CONFIG_MMC_CQHCI=m
diff --git a/baseconfig/CONFIG_MT76x2E b/baseconfig/CONFIG_MT76x2E
new file mode 100644
index 000000000..9667d0d96
--- /dev/null
+++ b/baseconfig/CONFIG_MT76x2E
@@ -0,0 +1 @@
+CONFIG_MT76x2E=m
diff --git a/baseconfig/CONFIG_NETDEVSIM b/baseconfig/CONFIG_NETDEVSIM
new file mode 100644
index 000000000..f7666c533
--- /dev/null
+++ b/baseconfig/CONFIG_NETDEVSIM
@@ -0,0 +1 @@
+# CONFIG_NETDEVSIM is not set
diff --git a/baseconfig/CONFIG_NET_DSA_LEGACY b/baseconfig/CONFIG_NET_DSA_LEGACY
new file mode 100644
index 000000000..76080523a
--- /dev/null
+++ b/baseconfig/CONFIG_NET_DSA_LEGACY
@@ -0,0 +1 @@
+# CONFIG_NET_DSA_LEGACY is not set
diff --git a/baseconfig/CONFIG_NET_VENDOR_CORTINA b/baseconfig/CONFIG_NET_VENDOR_CORTINA
new file mode 100644
index 000000000..3e188cd81
--- /dev/null
+++ b/baseconfig/CONFIG_NET_VENDOR_CORTINA
@@ -0,0 +1 @@
+# CONFIG_NET_VENDOR_CORTINA is not set
diff --git a/baseconfig/CONFIG_NET_VENDOR_SOCIONEXT b/baseconfig/CONFIG_NET_VENDOR_SOCIONEXT
new file mode 100644
index 000000000..7e4d43ba5
--- /dev/null
+++ b/baseconfig/CONFIG_NET_VENDOR_SOCIONEXT
@@ -0,0 +1 @@
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
diff --git a/baseconfig/CONFIG_NFT_FLOW_OFFLOAD b/baseconfig/CONFIG_NFT_FLOW_OFFLOAD
new file mode 100644
index 000000000..2960ce593
--- /dev/null
+++ b/baseconfig/CONFIG_NFT_FLOW_OFFLOAD
@@ -0,0 +1 @@
+CONFIG_NFT_FLOW_OFFLOAD=m
diff --git a/baseconfig/CONFIG_NF_FLOW_TABLE b/baseconfig/CONFIG_NF_FLOW_TABLE
new file mode 100644
index 000000000..a2b5e03a7
--- /dev/null
+++ b/baseconfig/CONFIG_NF_FLOW_TABLE
@@ -0,0 +1 @@
+CONFIG_NF_FLOW_TABLE=m
diff --git a/baseconfig/CONFIG_NF_FLOW_TABLE_INET b/baseconfig/CONFIG_NF_FLOW_TABLE_INET
new file mode 100644
index 000000000..f41129cf1
--- /dev/null
+++ b/baseconfig/CONFIG_NF_FLOW_TABLE_INET
@@ -0,0 +1 @@
+CONFIG_NF_FLOW_TABLE_INET=m
diff --git a/baseconfig/CONFIG_NF_FLOW_TABLE_IPV4 b/baseconfig/CONFIG_NF_FLOW_TABLE_IPV4
new file mode 100644
index 000000000..413b7910e
--- /dev/null
+++ b/baseconfig/CONFIG_NF_FLOW_TABLE_IPV4
@@ -0,0 +1 @@
+CONFIG_NF_FLOW_TABLE_IPV4=m
diff --git a/baseconfig/CONFIG_NF_FLOW_TABLE_IPV6 b/baseconfig/CONFIG_NF_FLOW_TABLE_IPV6
new file mode 100644
index 000000000..d482fc459
--- /dev/null
+++ b/baseconfig/CONFIG_NF_FLOW_TABLE_IPV6
@@ -0,0 +1 @@
+CONFIG_NF_FLOW_TABLE_IPV6=m
diff --git a/baseconfig/CONFIG_PCIE_CADENCE_HOST b/baseconfig/CONFIG_PCIE_CADENCE_HOST
new file mode 100644
index 000000000..1f1f00d6c
--- /dev/null
+++ b/baseconfig/CONFIG_PCIE_CADENCE_HOST
@@ -0,0 +1 @@
+CONFIG_PCIE_CADENCE_HOST=y
diff --git a/baseconfig/CONFIG_PINCTRL_AXP209 b/baseconfig/CONFIG_PINCTRL_AXP209
new file mode 100644
index 000000000..4e6ecd9bf
--- /dev/null
+++ b/baseconfig/CONFIG_PINCTRL_AXP209
@@ -0,0 +1 @@
+# CONFIG_PINCTRL_AXP209 is not set
diff --git a/baseconfig/CONFIG_RAVE_SP_CORE b/baseconfig/CONFIG_RAVE_SP_CORE
new file mode 100644
index 000000000..309dfa088
--- /dev/null
+++ b/baseconfig/CONFIG_RAVE_SP_CORE
@@ -0,0 +1 @@
+# CONFIG_RAVE_SP_CORE is not set
diff --git a/baseconfig/CONFIG_RUNTIME_TESTING_MENU b/baseconfig/CONFIG_RUNTIME_TESTING_MENU
new file mode 100644
index 000000000..7d54fe119
--- /dev/null
+++ b/baseconfig/CONFIG_RUNTIME_TESTING_MENU
@@ -0,0 +1 @@
+CONFIG_RUNTIME_TESTING_MENU=y
diff --git a/baseconfig/CONFIG_SCSI_UFSHCD b/baseconfig/CONFIG_SCSI_UFSHCD
index 041b8209b..542c89fc7 100644
--- a/baseconfig/CONFIG_SCSI_UFSHCD
+++ b/baseconfig/CONFIG_SCSI_UFSHCD
@@ -1 +1 @@
-CONFIG_SCSI_UFSHCD=m
+# CONFIG_SCSI_UFSHCD is not set
diff --git a/baseconfig/CONFIG_SCSI_UFS_DWC_TC_PLATFORM b/baseconfig/CONFIG_SCSI_UFS_DWC_TC_PLATFORM
new file mode 100644
index 000000000..41483b33b
--- /dev/null
+++ b/baseconfig/CONFIG_SCSI_UFS_DWC_TC_PLATFORM
@@ -0,0 +1 @@
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
diff --git a/baseconfig/CONFIG_SD_ADC_MODULATOR b/baseconfig/CONFIG_SD_ADC_MODULATOR
new file mode 100644
index 000000000..ec43a0ff1
--- /dev/null
+++ b/baseconfig/CONFIG_SD_ADC_MODULATOR
@@ -0,0 +1 @@
+# CONFIG_SD_ADC_MODULATOR is not set
diff --git a/baseconfig/CONFIG_SENSORS_W83773G b/baseconfig/CONFIG_SENSORS_W83773G
new file mode 100644
index 000000000..d0e8c4c84
--- /dev/null
+++ b/baseconfig/CONFIG_SENSORS_W83773G
@@ -0,0 +1 @@
+CONFIG_SENSORS_W83773G=m
diff --git a/baseconfig/CONFIG_SIOX b/baseconfig/CONFIG_SIOX
new file mode 100644
index 000000000..89578e7ae
--- /dev/null
+++ b/baseconfig/CONFIG_SIOX
@@ -0,0 +1 @@
+# CONFIG_SIOX is not set
diff --git a/baseconfig/CONFIG_SLIMBUS b/baseconfig/CONFIG_SLIMBUS
new file mode 100644
index 000000000..63141c29d
--- /dev/null
+++ b/baseconfig/CONFIG_SLIMBUS
@@ -0,0 +1 @@
+# CONFIG_SLIMBUS is not set
diff --git a/baseconfig/CONFIG_SND_SOC_MAX98373 b/baseconfig/CONFIG_SND_SOC_MAX98373
new file mode 100644
index 000000000..c82d1c860
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_MAX98373
@@ -0,0 +1 @@
+CONFIG_SND_SOC_MAX98373=m
diff --git a/baseconfig/CONFIG_SND_SOC_PCM186X_I2C b/baseconfig/CONFIG_SND_SOC_PCM186X_I2C
new file mode 100644
index 000000000..8d0fad2b4
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_PCM186X_I2C
@@ -0,0 +1 @@
+CONFIG_SND_SOC_PCM186X_I2C=m
diff --git a/baseconfig/CONFIG_SND_SOC_PCM186X_SPI b/baseconfig/CONFIG_SND_SOC_PCM186X_SPI
new file mode 100644
index 000000000..0e112b31e
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_PCM186X_SPI
@@ -0,0 +1 @@
+CONFIG_SND_SOC_PCM186X_SPI=m
diff --git a/baseconfig/CONFIG_SND_SOC_TAS6424 b/baseconfig/CONFIG_SND_SOC_TAS6424
new file mode 100644
index 000000000..c70624da7
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_TAS6424
@@ -0,0 +1 @@
+CONFIG_SND_SOC_TAS6424=m
diff --git a/baseconfig/CONFIG_SND_SOC_TLV320AIC32X4_I2C b/baseconfig/CONFIG_SND_SOC_TLV320AIC32X4_I2C
new file mode 100644
index 000000000..e7ecb5383
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_TLV320AIC32X4_I2C
@@ -0,0 +1 @@
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
diff --git a/baseconfig/CONFIG_SND_SOC_TLV320AIC32X4_SPI b/baseconfig/CONFIG_SND_SOC_TLV320AIC32X4_SPI
new file mode 100644
index 000000000..166098de5
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_TLV320AIC32X4_SPI
@@ -0,0 +1 @@
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
diff --git a/baseconfig/CONFIG_SND_SOC_TSCS42XX b/baseconfig/CONFIG_SND_SOC_TSCS42XX
new file mode 100644
index 000000000..d91060f18
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_TSCS42XX
@@ -0,0 +1 @@
+CONFIG_SND_SOC_TSCS42XX=m
diff --git a/baseconfig/CONFIG_SOUNDWIRE b/baseconfig/CONFIG_SOUNDWIRE
new file mode 100644
index 000000000..1446f20a3
--- /dev/null
+++ b/baseconfig/CONFIG_SOUNDWIRE
@@ -0,0 +1 @@
+CONFIG_SOUNDWIRE=y
diff --git a/baseconfig/CONFIG_SOUNDWIRE_BUS b/baseconfig/CONFIG_SOUNDWIRE_BUS
new file mode 100644
index 000000000..dd3714b7c
--- /dev/null
+++ b/baseconfig/CONFIG_SOUNDWIRE_BUS
@@ -0,0 +1 @@
+CONFIG_SOUNDWIRE_BUS=m
diff --git a/baseconfig/CONFIG_SOUNDWIRE_CADENCE b/baseconfig/CONFIG_SOUNDWIRE_CADENCE
new file mode 100644
index 000000000..f97a403fa
--- /dev/null
+++ b/baseconfig/CONFIG_SOUNDWIRE_CADENCE
@@ -0,0 +1 @@
+CONFIG_SOUNDWIRE_CADENCE=m
diff --git a/baseconfig/x86/CONFIG_SPI_CADENCE b/baseconfig/CONFIG_SPI_CADENCE
index 78e16ec97..78e16ec97 100644
--- a/baseconfig/x86/CONFIG_SPI_CADENCE
+++ b/baseconfig/CONFIG_SPI_CADENCE
diff --git a/baseconfig/CONFIG_ST_UVIS25 b/baseconfig/CONFIG_ST_UVIS25
new file mode 100644
index 000000000..55c15bb5b
--- /dev/null
+++ b/baseconfig/CONFIG_ST_UVIS25
@@ -0,0 +1 @@
+CONFIG_ST_UVIS25=m
diff --git a/baseconfig/CONFIG_ST_UVIS25_I2C b/baseconfig/CONFIG_ST_UVIS25_I2C
new file mode 100644
index 000000000..677b118e1
--- /dev/null
+++ b/baseconfig/CONFIG_ST_UVIS25_I2C
@@ -0,0 +1 @@
+CONFIG_ST_UVIS25_I2C=m
diff --git a/baseconfig/CONFIG_ST_UVIS25_SPI b/baseconfig/CONFIG_ST_UVIS25_SPI
new file mode 100644
index 000000000..e094a51ea
--- /dev/null
+++ b/baseconfig/CONFIG_ST_UVIS25_SPI
@@ -0,0 +1 @@
+CONFIG_ST_UVIS25_SPI=m
diff --git a/baseconfig/CONFIG_TEGRA_BPMP_THERMAL b/baseconfig/CONFIG_TEGRA_BPMP_THERMAL
deleted file mode 100644
index e1e1b80f4..000000000
--- a/baseconfig/CONFIG_TEGRA_BPMP_THERMAL
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_TEGRA_BPMP_THERMAL is not set
diff --git a/baseconfig/CONFIG_TIMER_STATS b/baseconfig/CONFIG_TIMER_STATS
deleted file mode 100644
index 0dfc820be..000000000
--- a/baseconfig/CONFIG_TIMER_STATS
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_TIMER_STATS is not set
diff --git a/baseconfig/CONFIG_UNISYS_VISORBUS b/baseconfig/CONFIG_UNISYS_VISORBUS
new file mode 100644
index 000000000..ba34845c8
--- /dev/null
+++ b/baseconfig/CONFIG_UNISYS_VISORBUS
@@ -0,0 +1 @@
+# CONFIG_UNISYS_VISORBUS is not set
diff --git a/baseconfig/CONFIG_USB_XHCI_DBGCAP b/baseconfig/CONFIG_USB_XHCI_DBGCAP
new file mode 100644
index 000000000..3cf92a71a
--- /dev/null
+++ b/baseconfig/CONFIG_USB_XHCI_DBGCAP
@@ -0,0 +1 @@
+CONFIG_USB_XHCI_DBGCAP=y
diff --git a/baseconfig/CONFIG_VIRTIO_MENU b/baseconfig/CONFIG_VIRTIO_MENU
new file mode 100644
index 000000000..ce9f283a8
--- /dev/null
+++ b/baseconfig/CONFIG_VIRTIO_MENU
@@ -0,0 +1 @@
+CONFIG_VIRTIO_MENU=y
diff --git a/baseconfig/CONFIG_XILINX_VCU b/baseconfig/CONFIG_XILINX_VCU
new file mode 100644
index 000000000..6ba10b386
--- /dev/null
+++ b/baseconfig/CONFIG_XILINX_VCU
@@ -0,0 +1 @@
+CONFIG_XILINX_VCU=m
diff --git a/baseconfig/CONFIG_ZOPT2201 b/baseconfig/CONFIG_ZOPT2201
new file mode 100644
index 000000000..407ef5f8c
--- /dev/null
+++ b/baseconfig/CONFIG_ZOPT2201
@@ -0,0 +1 @@
+CONFIG_ZOPT2201=m
diff --git a/baseconfig/arm/CONFIG_ARM_ARMADA_37XX_CPUFREQ b/baseconfig/arm/CONFIG_ARM_ARMADA_37XX_CPUFREQ
new file mode 100644
index 000000000..c2475dc86
--- /dev/null
+++ b/baseconfig/arm/CONFIG_ARM_ARMADA_37XX_CPUFREQ
@@ -0,0 +1 @@
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
diff --git a/baseconfig/arm/CONFIG_ARM_BIG_LITTLE_CPUFREQ b/baseconfig/arm/CONFIG_ARM_BIG_LITTLE_CPUFREQ
index 89d555289..8b76dfa84 100644
--- a/baseconfig/arm/CONFIG_ARM_BIG_LITTLE_CPUFREQ
+++ b/baseconfig/arm/CONFIG_ARM_BIG_LITTLE_CPUFREQ
@@ -1 +1 @@
-# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
diff --git a/baseconfig/arm/CONFIG_ARM_PTDUMP_DEBUGFS b/baseconfig/arm/CONFIG_ARM_PTDUMP_DEBUGFS
new file mode 100644
index 000000000..b0e62594c
--- /dev/null
+++ b/baseconfig/arm/CONFIG_ARM_PTDUMP_DEBUGFS
@@ -0,0 +1 @@
+# CONFIG_ARM_PTDUMP_DEBUGFS is not set
diff --git a/baseconfig/arm/armv7/CONFIG_ARM_SCPI_CPUFREQ b/baseconfig/arm/CONFIG_ARM_SCPI_CPUFREQ
index f2b7060d6..f2b7060d6 100644
--- a/baseconfig/arm/armv7/CONFIG_ARM_SCPI_CPUFREQ
+++ b/baseconfig/arm/CONFIG_ARM_SCPI_CPUFREQ
diff --git a/baseconfig/arm/CONFIG_CADENCE_WATCHDOG b/baseconfig/arm/CONFIG_CADENCE_WATCHDOG
index 3892db328..85b4e115d 100644
--- a/baseconfig/arm/CONFIG_CADENCE_WATCHDOG
+++ b/baseconfig/arm/CONFIG_CADENCE_WATCHDOG
@@ -1 +1 @@
-# CONFIG_CADENCE_WATCHDOG is not set
+CONFIG_CADENCE_WATCHDOG=m
diff --git a/baseconfig/arm/CONFIG_DEBUG_WX b/baseconfig/arm/CONFIG_DEBUG_WX
new file mode 100644
index 000000000..95e08f44b
--- /dev/null
+++ b/baseconfig/arm/CONFIG_DEBUG_WX
@@ -0,0 +1 @@
+CONFIG_DEBUG_WX=y
diff --git a/baseconfig/arm/CONFIG_DRM_I2C_ADV7511 b/baseconfig/arm/CONFIG_DRM_I2C_ADV7511
new file mode 100644
index 000000000..2d931f712
--- /dev/null
+++ b/baseconfig/arm/CONFIG_DRM_I2C_ADV7511
@@ -0,0 +1 @@
+CONFIG_DRM_I2C_ADV7511=m
diff --git a/baseconfig/arm/CONFIG_DRM_I2C_ADV7511_CEC b/baseconfig/arm/CONFIG_DRM_I2C_ADV7511_CEC
new file mode 100644
index 000000000..42e87e034
--- /dev/null
+++ b/baseconfig/arm/CONFIG_DRM_I2C_ADV7511_CEC
@@ -0,0 +1 @@
+CONFIG_DRM_I2C_ADV7511_CEC=y
diff --git a/baseconfig/arm/CONFIG_DRM_PANEL_ILITEK_IL9322 b/baseconfig/arm/CONFIG_DRM_PANEL_ILITEK_IL9322
new file mode 100644
index 000000000..c18cc1b27
--- /dev/null
+++ b/baseconfig/arm/CONFIG_DRM_PANEL_ILITEK_IL9322
@@ -0,0 +1 @@
+CONFIG_DRM_PANEL_ILITEK_IL9322=m
diff --git a/baseconfig/arm/CONFIG_FTWDT010_WATCHDOG b/baseconfig/arm/CONFIG_FTWDT010_WATCHDOG
new file mode 100644
index 000000000..63ed03113
--- /dev/null
+++ b/baseconfig/arm/CONFIG_FTWDT010_WATCHDOG
@@ -0,0 +1 @@
+# CONFIG_FTWDT010_WATCHDOG is not set
diff --git a/baseconfig/arm/CONFIG_GPIO_RASPBERRYPI_EXP b/baseconfig/arm/CONFIG_GPIO_RASPBERRYPI_EXP
new file mode 100644
index 000000000..c98e757e1
--- /dev/null
+++ b/baseconfig/arm/CONFIG_GPIO_RASPBERRYPI_EXP
@@ -0,0 +1 @@
+CONFIG_GPIO_RASPBERRYPI_EXP=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_I2C_CADENCE b/baseconfig/arm/CONFIG_I2C_CADENCE
index 8e1eefa5c..8e1eefa5c 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_I2C_CADENCE
+++ b/baseconfig/arm/CONFIG_I2C_CADENCE
diff --git a/baseconfig/arm/CONFIG_I2C_GPIO_FAULT_INJECTOR b/baseconfig/arm/CONFIG_I2C_GPIO_FAULT_INJECTOR
new file mode 100644
index 000000000..711cee4c9
--- /dev/null
+++ b/baseconfig/arm/CONFIG_I2C_GPIO_FAULT_INJECTOR
@@ -0,0 +1 @@
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
diff --git a/baseconfig/arm/CONFIG_MFD_CROS_EC_CHARDEV b/baseconfig/arm/CONFIG_MFD_CROS_EC_CHARDEV
new file mode 100644
index 000000000..fc68f1d89
--- /dev/null
+++ b/baseconfig/arm/CONFIG_MFD_CROS_EC_CHARDEV
@@ -0,0 +1 @@
+CONFIG_MFD_CROS_EC_CHARDEV=m
diff --git a/baseconfig/arm/CONFIG_MTD_NAND_MARVELL b/baseconfig/arm/CONFIG_MTD_NAND_MARVELL
new file mode 100644
index 000000000..439fe9528
--- /dev/null
+++ b/baseconfig/arm/CONFIG_MTD_NAND_MARVELL
@@ -0,0 +1 @@
+CONFIG_MTD_NAND_MARVELL=m
diff --git a/baseconfig/arm/CONFIG_NCP_FS b/baseconfig/arm/CONFIG_NCP_FS
deleted file mode 100644
index 62eb3bdd0..000000000
--- a/baseconfig/arm/CONFIG_NCP_FS
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_NCP_FS is not set
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_UFS b/baseconfig/arm/CONFIG_PHY_QCOM_UFS
index 936bcab6c..936bcab6c 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_UFS
+++ b/baseconfig/arm/CONFIG_PHY_QCOM_UFS
diff --git a/baseconfig/arm/CONFIG_PINCTRL_AXP209 b/baseconfig/arm/CONFIG_PINCTRL_AXP209
new file mode 100644
index 000000000..6ccab1d44
--- /dev/null
+++ b/baseconfig/arm/CONFIG_PINCTRL_AXP209
@@ -0,0 +1 @@
+CONFIG_PINCTRL_AXP209=m
diff --git a/baseconfig/arm/CONFIG_PINCTRL_MSM8998 b/baseconfig/arm/CONFIG_PINCTRL_MSM8998
new file mode 100644
index 000000000..e2650002f
--- /dev/null
+++ b/baseconfig/arm/CONFIG_PINCTRL_MSM8998
@@ -0,0 +1 @@
+CONFIG_PINCTRL_MSM8998=m
diff --git a/baseconfig/arm/CONFIG_QCOM_A53PLL b/baseconfig/arm/CONFIG_QCOM_A53PLL
new file mode 100644
index 000000000..6928d6138
--- /dev/null
+++ b/baseconfig/arm/CONFIG_QCOM_A53PLL
@@ -0,0 +1 @@
+CONFIG_QCOM_A53PLL=m
diff --git a/baseconfig/arm/CONFIG_QCOM_CLK_APCS_MSM8916 b/baseconfig/arm/CONFIG_QCOM_CLK_APCS_MSM8916
new file mode 100644
index 000000000..ca97c450e
--- /dev/null
+++ b/baseconfig/arm/CONFIG_QCOM_CLK_APCS_MSM8916
@@ -0,0 +1 @@
+CONFIG_QCOM_CLK_APCS_MSM8916=m
diff --git a/baseconfig/arm/aarch64/CONFIG_REFCOUNT_FULL b/baseconfig/arm/CONFIG_REFCOUNT_FULL
index c7e4a167a..c7e4a167a 100644
--- a/baseconfig/arm/aarch64/CONFIG_REFCOUNT_FULL
+++ b/baseconfig/arm/CONFIG_REFCOUNT_FULL
diff --git a/baseconfig/arm/CONFIG_RTC_DRV_CROS_EC b/baseconfig/arm/CONFIG_RTC_DRV_CROS_EC
new file mode 100644
index 000000000..4665f7916
--- /dev/null
+++ b/baseconfig/arm/CONFIG_RTC_DRV_CROS_EC
@@ -0,0 +1 @@
+CONFIG_RTC_DRV_CROS_EC=m
diff --git a/baseconfig/arm/CONFIG_SCSI_UFSHCD b/baseconfig/arm/CONFIG_SCSI_UFSHCD
new file mode 100644
index 000000000..041b8209b
--- /dev/null
+++ b/baseconfig/arm/CONFIG_SCSI_UFSHCD
@@ -0,0 +1 @@
+CONFIG_SCSI_UFSHCD=m
diff --git a/baseconfig/CONFIG_SCSI_UFSHCD_PCI b/baseconfig/arm/CONFIG_SCSI_UFSHCD_PCI
index 4907ac2e6..4907ac2e6 100644
--- a/baseconfig/CONFIG_SCSI_UFSHCD_PCI
+++ b/baseconfig/arm/CONFIG_SCSI_UFSHCD_PCI
diff --git a/baseconfig/arm/CONFIG_SCSI_UFSHCD_PLATFORM b/baseconfig/arm/CONFIG_SCSI_UFSHCD_PLATFORM
new file mode 100644
index 000000000..59f9929cd
--- /dev/null
+++ b/baseconfig/arm/CONFIG_SCSI_UFSHCD_PLATFORM
@@ -0,0 +1 @@
+CONFIG_SCSI_UFSHCD_PLATFORM=m
diff --git a/baseconfig/arm/CONFIG_SCSI_UFS_QCOM b/baseconfig/arm/CONFIG_SCSI_UFS_QCOM
new file mode 100644
index 000000000..9f663a316
--- /dev/null
+++ b/baseconfig/arm/CONFIG_SCSI_UFS_QCOM
@@ -0,0 +1 @@
+CONFIG_SCSI_UFS_QCOM=m
diff --git a/baseconfig/arm/CONFIG_SD_ADC_MODULATOR b/baseconfig/arm/CONFIG_SD_ADC_MODULATOR
new file mode 100644
index 000000000..de78e1d14
--- /dev/null
+++ b/baseconfig/arm/CONFIG_SD_ADC_MODULATOR
@@ -0,0 +1 @@
+CONFIG_SD_ADC_MODULATOR=m
diff --git a/baseconfig/arm/CONFIG_SLIMBUS b/baseconfig/arm/CONFIG_SLIMBUS
new file mode 100644
index 000000000..6b6eac17c
--- /dev/null
+++ b/baseconfig/arm/CONFIG_SLIMBUS
@@ -0,0 +1 @@
+CONFIG_SLIMBUS=m
diff --git a/baseconfig/arm/CONFIG_SLIM_QCOM_CTRL b/baseconfig/arm/CONFIG_SLIM_QCOM_CTRL
new file mode 100644
index 000000000..ea353222f
--- /dev/null
+++ b/baseconfig/arm/CONFIG_SLIM_QCOM_CTRL
@@ -0,0 +1 @@
+CONFIG_SLIM_QCOM_CTRL=m
diff --git a/baseconfig/arm/CONFIG_SPI_CADENCE b/baseconfig/arm/CONFIG_SPI_CADENCE
index 78e16ec97..3a8bb168c 100644
--- a/baseconfig/arm/CONFIG_SPI_CADENCE
+++ b/baseconfig/arm/CONFIG_SPI_CADENCE
@@ -1 +1 @@
-# CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_CADENCE=m
diff --git a/baseconfig/arm/CONFIG_SPMI_PMIC_CLKDIV b/baseconfig/arm/CONFIG_SPMI_PMIC_CLKDIV
new file mode 100644
index 000000000..2b11b2de7
--- /dev/null
+++ b/baseconfig/arm/CONFIG_SPMI_PMIC_CLKDIV
@@ -0,0 +1 @@
+CONFIG_SPMI_PMIC_CLKDIV=m
diff --git a/baseconfig/arm/CONFIG_TEGRA_BPMP b/baseconfig/arm/CONFIG_TEGRA_BPMP
index 348002b0b..9127d3c57 100644
--- a/baseconfig/arm/CONFIG_TEGRA_BPMP
+++ b/baseconfig/arm/CONFIG_TEGRA_BPMP
@@ -1 +1 @@
-CONFIG_TEGRA_BPMP=y
+# CONFIG_TEGRA_BPMP is not set
diff --git a/baseconfig/arm/CONFIG_TEGRA_HSP_MBOX b/baseconfig/arm/CONFIG_TEGRA_HSP_MBOX
index 3d46b7c93..54f071b05 100644
--- a/baseconfig/arm/CONFIG_TEGRA_HSP_MBOX
+++ b/baseconfig/arm/CONFIG_TEGRA_HSP_MBOX
@@ -1 +1 @@
-CONFIG_TEGRA_HSP_MBOX=y
+# CONFIG_TEGRA_HSP_MBOX is not set
diff --git a/baseconfig/arm/CONFIG_TEGRA_VDE b/baseconfig/arm/CONFIG_TEGRA_VDE
new file mode 100644
index 000000000..1b373e8f2
--- /dev/null
+++ b/baseconfig/arm/CONFIG_TEGRA_VDE
@@ -0,0 +1 @@
+CONFIG_TEGRA_VDE=m
diff --git a/baseconfig/arm/CONFIG_TINYDRM_ILI9225 b/baseconfig/arm/CONFIG_TINYDRM_ILI9225
new file mode 100644
index 000000000..3f9d07d4e
--- /dev/null
+++ b/baseconfig/arm/CONFIG_TINYDRM_ILI9225
@@ -0,0 +1 @@
+CONFIG_TINYDRM_ILI9225=m
diff --git a/baseconfig/arm/CONFIG_TINYDRM_ST7735R b/baseconfig/arm/CONFIG_TINYDRM_ST7735R
new file mode 100644
index 000000000..89c0fd568
--- /dev/null
+++ b/baseconfig/arm/CONFIG_TINYDRM_ST7735R
@@ -0,0 +1 @@
+CONFIG_TINYDRM_ST7735R=m
diff --git a/baseconfig/arm/CONFIG_UFS_FS b/baseconfig/arm/CONFIG_UFS_FS
deleted file mode 100644
index 768c9ac9e..000000000
--- a/baseconfig/arm/CONFIG_UFS_FS
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_UFS_FS is not set
diff --git a/baseconfig/arm/aarch64/CONFIG_USB_MUSB_SUNXI b/baseconfig/arm/CONFIG_USB_MUSB_SUNXI
index 258e716ab..258e716ab 100644
--- a/baseconfig/arm/aarch64/CONFIG_USB_MUSB_SUNXI
+++ b/baseconfig/arm/CONFIG_USB_MUSB_SUNXI
diff --git a/baseconfig/arm/CONFIG_USB_OTG_FSM b/baseconfig/arm/CONFIG_USB_OTG_FSM
new file mode 100644
index 000000000..6dc1aac25
--- /dev/null
+++ b/baseconfig/arm/CONFIG_USB_OTG_FSM
@@ -0,0 +1 @@
+CONFIG_USB_OTG_FSM=m
diff --git a/baseconfig/arm/aarch64/CONFIG_ARCH_ZYNQMP b/baseconfig/arm/aarch64/CONFIG_ARCH_ZYNQMP
index f92a386c6..59df22f3c 100644
--- a/baseconfig/arm/aarch64/CONFIG_ARCH_ZYNQMP
+++ b/baseconfig/arm/aarch64/CONFIG_ARCH_ZYNQMP
@@ -1 +1 @@
-# CONFIG_ARCH_ZYNQMP is not set
+CONFIG_ARCH_ZYNQMP=y
diff --git a/baseconfig/arm/aarch64/CONFIG_ARM64_PMEM b/baseconfig/arm/aarch64/CONFIG_ARM64_PMEM
index 9325600d1..f2e1b130f 100644
--- a/baseconfig/arm/aarch64/CONFIG_ARM64_PMEM
+++ b/baseconfig/arm/aarch64/CONFIG_ARM64_PMEM
@@ -1 +1 @@
-# CONFIG_ARM64_PMEM is not set
+CONFIG_ARM64_PMEM=y
diff --git a/baseconfig/arm/aarch64/CONFIG_ARM64_RAS_EXTN b/baseconfig/arm/aarch64/CONFIG_ARM64_RAS_EXTN
new file mode 100644
index 000000000..b664a0de1
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_ARM64_RAS_EXTN
@@ -0,0 +1 @@
+CONFIG_ARM64_RAS_EXTN=y
diff --git a/baseconfig/arm/aarch64/CONFIG_ARM_DSU_PMU b/baseconfig/arm/aarch64/CONFIG_ARM_DSU_PMU
new file mode 100644
index 000000000..383292c89
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_ARM_DSU_PMU
@@ -0,0 +1 @@
+CONFIG_ARM_DSU_PMU=m
diff --git a/baseconfig/arm/aarch64/CONFIG_ARM_SDE_INTERFACE b/baseconfig/arm/aarch64/CONFIG_ARM_SDE_INTERFACE
new file mode 100644
index 000000000..b33609158
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_ARM_SDE_INTERFACE
@@ -0,0 +1 @@
+CONFIG_ARM_SDE_INTERFACE=y
diff --git a/baseconfig/arm/aarch64/CONFIG_CAVIUM_PTP b/baseconfig/arm/aarch64/CONFIG_CAVIUM_PTP
new file mode 100644
index 000000000..271967f8a
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_CAVIUM_PTP
@@ -0,0 +1 @@
+CONFIG_CAVIUM_PTP=m
diff --git a/baseconfig/arm/aarch64/CONFIG_CRYPTO_SHA3_ARM64 b/baseconfig/arm/aarch64/CONFIG_CRYPTO_SHA3_ARM64
new file mode 100644
index 000000000..52d5aeaab
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_CRYPTO_SHA3_ARM64
@@ -0,0 +1 @@
+CONFIG_CRYPTO_SHA3_ARM64=m
diff --git a/baseconfig/arm/aarch64/CONFIG_CRYPTO_SHA512_ARM64_CE b/baseconfig/arm/aarch64/CONFIG_CRYPTO_SHA512_ARM64_CE
new file mode 100644
index 000000000..3a159ef93
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_CRYPTO_SHA512_ARM64_CE
@@ -0,0 +1 @@
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
diff --git a/baseconfig/arm/aarch64/CONFIG_CRYPTO_SM3_ARM64_CE b/baseconfig/arm/aarch64/CONFIG_CRYPTO_SM3_ARM64_CE
new file mode 100644
index 000000000..93a6a00f4
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_CRYPTO_SM3_ARM64_CE
@@ -0,0 +1 @@
+CONFIG_CRYPTO_SM3_ARM64_CE=m
diff --git a/baseconfig/arm/aarch64/CONFIG_FB_XILINX b/baseconfig/arm/aarch64/CONFIG_FB_XILINX
new file mode 100644
index 000000000..4bcb7d896
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_FB_XILINX
@@ -0,0 +1 @@
+CONFIG_FB_XILINX=m
diff --git a/baseconfig/arm/aarch64/CONFIG_GPIO_ZYNQ b/baseconfig/arm/aarch64/CONFIG_GPIO_ZYNQ
new file mode 100644
index 000000000..2f9ba2067
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_GPIO_ZYNQ
@@ -0,0 +1 @@
+CONFIG_GPIO_ZYNQ=m
diff --git a/baseconfig/arm/aarch64/CONFIG_NET_VENDOR_SOCIONEXT b/baseconfig/arm/aarch64/CONFIG_NET_VENDOR_SOCIONEXT
new file mode 100644
index 000000000..213e48587
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_NET_VENDOR_SOCIONEXT
@@ -0,0 +1 @@
+CONFIG_NET_VENDOR_SOCIONEXT=y
diff --git a/baseconfig/arm/aarch64/CONFIG_PCIE_XILINX_NWL b/baseconfig/arm/aarch64/CONFIG_PCIE_XILINX_NWL
new file mode 100644
index 000000000..90eae1f9b
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_PCIE_XILINX_NWL
@@ -0,0 +1 @@
+CONFIG_PCIE_XILINX_NWL=y
diff --git a/baseconfig/arm/aarch64/CONFIG_PHY_QCOM_UFS b/baseconfig/arm/aarch64/CONFIG_PHY_QCOM_UFS
deleted file mode 100644
index 50ac1d830..000000000
--- a/baseconfig/arm/aarch64/CONFIG_PHY_QCOM_UFS
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_PHY_QCOM_UFS is not set
diff --git a/baseconfig/arm/aarch64/CONFIG_PINCTRL_MESON_AXG b/baseconfig/arm/aarch64/CONFIG_PINCTRL_MESON_AXG
new file mode 100644
index 000000000..fec409eb2
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_PINCTRL_MESON_AXG
@@ -0,0 +1 @@
+CONFIG_PINCTRL_MESON_AXG=y
diff --git a/baseconfig/arm/aarch64/CONFIG_RTC_DRV_ZYNQMP b/baseconfig/arm/aarch64/CONFIG_RTC_DRV_ZYNQMP
new file mode 100644
index 000000000..440cc295e
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_RTC_DRV_ZYNQMP
@@ -0,0 +1 @@
+CONFIG_RTC_DRV_ZYNQMP=m
diff --git a/baseconfig/arm/aarch64/CONFIG_SPI_ZYNQMP_GQSPI b/baseconfig/arm/aarch64/CONFIG_SPI_ZYNQMP_GQSPI
new file mode 100644
index 000000000..98ca0a7ef
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_SPI_ZYNQMP_GQSPI
@@ -0,0 +1 @@
+CONFIG_SPI_ZYNQMP_GQSPI=m
diff --git a/baseconfig/arm/aarch64/CONFIG_STUB_CLK_HI3660 b/baseconfig/arm/aarch64/CONFIG_STUB_CLK_HI3660
new file mode 100644
index 000000000..99ffc024c
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_STUB_CLK_HI3660
@@ -0,0 +1 @@
+CONFIG_STUB_CLK_HI3660=y
diff --git a/baseconfig/arm/aarch64/CONFIG_TEGRA_BPMP b/baseconfig/arm/aarch64/CONFIG_TEGRA_BPMP
new file mode 100644
index 000000000..348002b0b
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_TEGRA_BPMP
@@ -0,0 +1 @@
+CONFIG_TEGRA_BPMP=y
diff --git a/baseconfig/arm/aarch64/CONFIG_TEGRA_BPMP_THERMAL b/baseconfig/arm/aarch64/CONFIG_TEGRA_BPMP_THERMAL
new file mode 100644
index 000000000..41b5a2ab5
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_TEGRA_BPMP_THERMAL
@@ -0,0 +1 @@
+CONFIG_TEGRA_BPMP_THERMAL=m
diff --git a/baseconfig/arm/aarch64/CONFIG_TEGRA_HSP_MBOX b/baseconfig/arm/aarch64/CONFIG_TEGRA_HSP_MBOX
new file mode 100644
index 000000000..3d46b7c93
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_TEGRA_HSP_MBOX
@@ -0,0 +1 @@
+CONFIG_TEGRA_HSP_MBOX=y
diff --git a/baseconfig/arm/aarch64/CONFIG_TEGRA_IVC b/baseconfig/arm/aarch64/CONFIG_TEGRA_IVC
deleted file mode 100644
index cdcacbec2..000000000
--- a/baseconfig/arm/aarch64/CONFIG_TEGRA_IVC
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_TEGRA_IVC=y
diff --git a/baseconfig/arm/aarch64/CONFIG_XILINX_ZYNQMP_DMA b/baseconfig/arm/aarch64/CONFIG_XILINX_ZYNQMP_DMA
new file mode 100644
index 000000000..9d804ee98
--- /dev/null
+++ b/baseconfig/arm/aarch64/CONFIG_XILINX_ZYNQMP_DMA
@@ -0,0 +1 @@
+CONFIG_XILINX_ZYNQMP_DMA=m
diff --git a/baseconfig/arm/armv7/CONFIG_ARM_BIG_LITTLE_CPUFREQ b/baseconfig/arm/armv7/CONFIG_ARM_BIG_LITTLE_CPUFREQ
deleted file mode 100644
index 8b76dfa84..000000000
--- a/baseconfig/arm/armv7/CONFIG_ARM_BIG_LITTLE_CPUFREQ
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
diff --git a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_FIMC b/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_FIMC
deleted file mode 100644
index 761cf114e..000000000
--- a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_FIMC
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_EXYNOS_FIMC=y
diff --git a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_GSC b/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_GSC
deleted file mode 100644
index cf2c394a6..000000000
--- a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_GSC
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_EXYNOS_GSC=y
diff --git a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_IOMMU b/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_IOMMU
index 1c741aa22..5975dfe01 100644
--- a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_IOMMU
+++ b/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_IOMMU
@@ -1 +1 @@
-# CONFIG_DRM_EXYNOS_IOMMU is not set
+CONFIG_DRM_EXYNOS_IOMMU=y
diff --git a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_IPP b/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_IPP
deleted file mode 100644
index 0d547a2f8..000000000
--- a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_IPP
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_EXYNOS_IPP=y
diff --git a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_ROTATOR b/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_ROTATOR
deleted file mode 100644
index b994e95b5..000000000
--- a/baseconfig/arm/armv7/CONFIG_DRM_EXYNOS_ROTATOR
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_EXYNOS_ROTATOR=y
diff --git a/baseconfig/arm/armv7/CONFIG_EXYNOS_IOMMU b/baseconfig/arm/armv7/CONFIG_EXYNOS_IOMMU
index 76ab03ad5..6a0844a77 100644
--- a/baseconfig/arm/armv7/CONFIG_EXYNOS_IOMMU
+++ b/baseconfig/arm/armv7/CONFIG_EXYNOS_IOMMU
@@ -1 +1 @@
-# CONFIG_EXYNOS_IOMMU is not set
+CONFIG_EXYNOS_IOMMU=y
diff --git a/baseconfig/arm/armv7/CONFIG_HW_RANDOM_EXYNOS b/baseconfig/arm/armv7/CONFIG_HW_RANDOM_EXYNOS
new file mode 100644
index 000000000..87c25300c
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_HW_RANDOM_EXYNOS
@@ -0,0 +1 @@
+CONFIG_HW_RANDOM_EXYNOS=m
diff --git a/baseconfig/arm/armv7/CONFIG_TEGRA_IVC b/baseconfig/arm/armv7/CONFIG_TEGRA_IVC
deleted file mode 100644
index cdcacbec2..000000000
--- a/baseconfig/arm/armv7/CONFIG_TEGRA_IVC
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_TEGRA_IVC=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_CADENCE_WATCHDOG b/baseconfig/arm/armv7/armv7/CONFIG_CADENCE_WATCHDOG
deleted file mode 100644
index 85b4e115d..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_CADENCE_WATCHDOG
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CADENCE_WATCHDOG=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_CHARGER_TPS65217 b/baseconfig/arm/armv7/armv7/CONFIG_CHARGER_TPS65217
index e77c2fc05..629b8503c 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_CHARGER_TPS65217
+++ b/baseconfig/arm/armv7/armv7/CONFIG_CHARGER_TPS65217
@@ -1 +1 @@
-CONFIG_CHARGER_TPS65217=m
+# CONFIG_CHARGER_TPS65217 is not set
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_DRM_ETNAVIV_THERMAL b/baseconfig/arm/armv7/armv7/CONFIG_DRM_ETNAVIV_THERMAL
new file mode 100644
index 000000000..ddd9d5832
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_DRM_ETNAVIV_THERMAL
@@ -0,0 +1 @@
+CONFIG_DRM_ETNAVIV_THERMAL=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_MFD_TI_LMU b/baseconfig/arm/armv7/armv7/CONFIG_MFD_TI_LMU
new file mode 100644
index 000000000..777cb90c8
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_MFD_TI_LMU
@@ -0,0 +1 @@
+CONFIG_MFD_TI_LMU=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_POWER_RESET_IMX b/baseconfig/arm/armv7/armv7/CONFIG_POWER_RESET_IMX
deleted file mode 100644
index 25d1d5570..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_POWER_RESET_IMX
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_POWER_RESET_IMX=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_REGULATOR_LM363X b/baseconfig/arm/armv7/armv7/CONFIG_REGULATOR_LM363X
new file mode 100644
index 000000000..a4610d589
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_REGULATOR_LM363X
@@ -0,0 +1 @@
+CONFIG_REGULATOR_LM363X=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_RTC_DRV_MXC_V2 b/baseconfig/arm/armv7/armv7/CONFIG_RTC_DRV_MXC_V2
new file mode 100644
index 000000000..225594051
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_RTC_DRV_MXC_V2
@@ -0,0 +1 @@
+CONFIG_RTC_DRV_MXC_V2=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_8250_OMAP b/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_8250_OMAP
index 582053b2d..0f7ea5449 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_8250_OMAP
+++ b/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_8250_OMAP
@@ -1 +1 @@
-CONFIG_SERIAL_8250_OMAP=m
+CONFIG_SERIAL_8250_OMAP=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP b/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP
new file mode 100644
index 000000000..cffbc1b84
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP
@@ -0,0 +1 @@
+CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_OMAP b/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_OMAP
index 0dbd205b2..1c036ec4f 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_OMAP
+++ b/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_OMAP
@@ -1 +1 @@
-CONFIG_SERIAL_OMAP=y
+# CONFIG_SERIAL_OMAP is not set
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_OMAP_CONSOLE b/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_OMAP_CONSOLE
deleted file mode 100644
index 84ab44f7f..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_OMAP_CONSOLE
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_SERIAL_OMAP_CONSOLE=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SPI_CADENCE b/baseconfig/arm/armv7/armv7/CONFIG_SPI_CADENCE
deleted file mode 100644
index 3a8bb168c..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_SPI_CADENCE
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_SPI_CADENCE=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_TI_EMIF_SRAM b/baseconfig/arm/armv7/armv7/CONFIG_TI_EMIF_SRAM
new file mode 100644
index 000000000..6bb0bf6e6
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_TI_EMIF_SRAM
@@ -0,0 +1 @@
+CONFIG_TI_EMIF_SRAM=m
diff --git a/baseconfig/arm/armv7/lpae/CONFIG_EDAC_TI b/baseconfig/arm/armv7/lpae/CONFIG_EDAC_TI
new file mode 100644
index 000000000..6989ad752
--- /dev/null
+++ b/baseconfig/arm/armv7/lpae/CONFIG_EDAC_TI
@@ -0,0 +1 @@
+CONFIG_EDAC_TI=m
diff --git a/baseconfig/powerpc/CONFIG_OCXL b/baseconfig/powerpc/CONFIG_OCXL
new file mode 100644
index 000000000..4f2a1a2ca
--- /dev/null
+++ b/baseconfig/powerpc/CONFIG_OCXL
@@ -0,0 +1 @@
+CONFIG_OCXL=m
diff --git a/baseconfig/powerpc/CONFIG_PPC_IRQ_SOFT_MASK_DEBUG b/baseconfig/powerpc/CONFIG_PPC_IRQ_SOFT_MASK_DEBUG
new file mode 100644
index 000000000..34e3d00fe
--- /dev/null
+++ b/baseconfig/powerpc/CONFIG_PPC_IRQ_SOFT_MASK_DEBUG
@@ -0,0 +1 @@
+# CONFIG_PPC_IRQ_SOFT_MASK_DEBUG is not set
diff --git a/baseconfig/powerpc/CONFIG_PPC_MEM_KEYS b/baseconfig/powerpc/CONFIG_PPC_MEM_KEYS
new file mode 100644
index 000000000..fc57e86b5
--- /dev/null
+++ b/baseconfig/powerpc/CONFIG_PPC_MEM_KEYS
@@ -0,0 +1 @@
+CONFIG_PPC_MEM_KEYS=y
diff --git a/baseconfig/s390x/CONFIG_EXPOLINE b/baseconfig/s390x/CONFIG_EXPOLINE
new file mode 100644
index 000000000..4fed3923a
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_EXPOLINE
@@ -0,0 +1 @@
+CONFIG_EXPOLINE=y
diff --git a/baseconfig/s390x/CONFIG_EXPOLINE_MEDIUM b/baseconfig/s390x/CONFIG_EXPOLINE_MEDIUM
new file mode 100644
index 000000000..82c8370c3
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_EXPOLINE_MEDIUM
@@ -0,0 +1 @@
+CONFIG_EXPOLINE_MEDIUM=y
diff --git a/baseconfig/s390x/CONFIG_KERNEL_NOBP b/baseconfig/s390x/CONFIG_KERNEL_NOBP
new file mode 100644
index 000000000..b3c291602
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_KERNEL_NOBP
@@ -0,0 +1 @@
+CONFIG_KERNEL_NOBP=y
diff --git a/baseconfig/s390x/CONFIG_MFD_RTSX_PCI b/baseconfig/s390x/CONFIG_MFD_RTSX_PCI
deleted file mode 100644
index 03cefd786..000000000
--- a/baseconfig/s390x/CONFIG_MFD_RTSX_PCI
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_MFD_RTSX_PCI is not set
diff --git a/baseconfig/s390x/CONFIG_MFD_RTSX_USB b/baseconfig/s390x/CONFIG_MFD_RTSX_USB
deleted file mode 100644
index b6efa65e7..000000000
--- a/baseconfig/s390x/CONFIG_MFD_RTSX_USB
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_MFD_RTSX_USB is not set
diff --git a/baseconfig/s390x/CONFIG_MISC_RTSX_PCI b/baseconfig/s390x/CONFIG_MISC_RTSX_PCI
new file mode 100644
index 000000000..eeec3f096
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_MISC_RTSX_PCI
@@ -0,0 +1 @@
+# CONFIG_MISC_RTSX_PCI is not set
diff --git a/baseconfig/s390x/CONFIG_MISC_RTSX_USB b/baseconfig/s390x/CONFIG_MISC_RTSX_USB
new file mode 100644
index 000000000..f41dad5dd
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_MISC_RTSX_USB
@@ -0,0 +1 @@
+# CONFIG_MISC_RTSX_USB is not set
diff --git a/baseconfig/s390x/CONFIG_SCSI_UFSHCD b/baseconfig/s390x/CONFIG_SCSI_UFSHCD
deleted file mode 100644
index 542c89fc7..000000000
--- a/baseconfig/s390x/CONFIG_SCSI_UFSHCD
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SCSI_UFSHCD is not set
diff --git a/baseconfig/x86/CONFIG_ACER_WIRELESS b/baseconfig/x86/CONFIG_ACER_WIRELESS
new file mode 100644
index 000000000..6d6dddcc0
--- /dev/null
+++ b/baseconfig/x86/CONFIG_ACER_WIRELESS
@@ -0,0 +1 @@
+CONFIG_ACER_WIRELESS=m
diff --git a/baseconfig/x86/CONFIG_DELL_SMBIOS_SMM b/baseconfig/x86/CONFIG_DELL_SMBIOS_SMM
index 2ba638248..3fead97e1 100644
--- a/baseconfig/x86/CONFIG_DELL_SMBIOS_SMM
+++ b/baseconfig/x86/CONFIG_DELL_SMBIOS_SMM
@@ -1 +1 @@
-CONFIG_DELL_SMBIOS_SMM=m
+CONFIG_DELL_SMBIOS_SMM=y
diff --git a/baseconfig/x86/CONFIG_DELL_SMBIOS_WMI b/baseconfig/x86/CONFIG_DELL_SMBIOS_WMI
index 0e3f3d8de..46a8c84ce 100644
--- a/baseconfig/x86/CONFIG_DELL_SMBIOS_WMI
+++ b/baseconfig/x86/CONFIG_DELL_SMBIOS_WMI
@@ -1 +1 @@
-CONFIG_DELL_SMBIOS_WMI=m
+CONFIG_DELL_SMBIOS_WMI=y
diff --git a/baseconfig/x86/CONFIG_GPD_POCKET_FAN b/baseconfig/x86/CONFIG_GPD_POCKET_FAN
new file mode 100644
index 000000000..6eb761b30
--- /dev/null
+++ b/baseconfig/x86/CONFIG_GPD_POCKET_FAN
@@ -0,0 +1 @@
+CONFIG_GPD_POCKET_FAN=m
diff --git a/baseconfig/x86/CONFIG_INTEL_CHTDC_TI_PWRBTN b/baseconfig/x86/CONFIG_INTEL_CHTDC_TI_PWRBTN
new file mode 100644
index 000000000..55ca8a3ad
--- /dev/null
+++ b/baseconfig/x86/CONFIG_INTEL_CHTDC_TI_PWRBTN
@@ -0,0 +1 @@
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
diff --git a/baseconfig/x86/CONFIG_KEXEC_SIG b/baseconfig/x86/CONFIG_KEXEC_SIG
new file mode 100644
index 000000000..49392e485
--- /dev/null
+++ b/baseconfig/x86/CONFIG_KEXEC_SIG
@@ -0,0 +1 @@
+# CONFIG_KEXEC_SIG is not set
diff --git a/baseconfig/x86/CONFIG_KEXEC_VERIFY_SIG b/baseconfig/x86/CONFIG_KEXEC_VERIFY_SIG
deleted file mode 100644
index 5d9b84372..000000000
--- a/baseconfig/x86/CONFIG_KEXEC_VERIFY_SIG
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_KEXEC_VERIFY_SIG is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_MLX_PLATFORM b/baseconfig/x86/CONFIG_MLX_PLATFORM
index 54e7906ec..54e7906ec 100644
--- a/baseconfig/x86/x86_64/CONFIG_MLX_PLATFORM
+++ b/baseconfig/x86/CONFIG_MLX_PLATFORM
diff --git a/baseconfig/x86/CONFIG_SCSI_UFSHCD b/baseconfig/x86/CONFIG_SCSI_UFSHCD
new file mode 100644
index 000000000..041b8209b
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SCSI_UFSHCD
@@ -0,0 +1 @@
+CONFIG_SCSI_UFSHCD=m
diff --git a/baseconfig/x86/CONFIG_SCSI_UFSHCD_PCI b/baseconfig/x86/CONFIG_SCSI_UFSHCD_PCI
new file mode 100644
index 000000000..4907ac2e6
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SCSI_UFSHCD_PCI
@@ -0,0 +1 @@
+CONFIG_SCSI_UFSHCD_PCI=m
diff --git a/baseconfig/CONFIG_SCSI_UFSHCD_PLATFORM b/baseconfig/x86/CONFIG_SCSI_UFSHCD_PLATFORM
index 16e9439f5..16e9439f5 100644
--- a/baseconfig/CONFIG_SCSI_UFSHCD_PLATFORM
+++ b/baseconfig/x86/CONFIG_SCSI_UFSHCD_PLATFORM
diff --git a/baseconfig/x86/CONFIG_SD_ADC_MODULATOR b/baseconfig/x86/CONFIG_SD_ADC_MODULATOR
new file mode 100644
index 000000000..de78e1d14
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SD_ADC_MODULATOR
@@ -0,0 +1 @@
+CONFIG_SD_ADC_MODULATOR=m
diff --git a/baseconfig/x86/CONFIG_SND_SOC_INTEL_SST_TOPLEVEL b/baseconfig/x86/CONFIG_SND_SOC_INTEL_SST_TOPLEVEL
index b5dc6477a..419418b86 100644
--- a/baseconfig/x86/CONFIG_SND_SOC_INTEL_SST_TOPLEVEL
+++ b/baseconfig/x86/CONFIG_SND_SOC_INTEL_SST_TOPLEVEL
@@ -1 +1 @@
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
diff --git a/baseconfig/x86/CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI b/baseconfig/x86/CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI
new file mode 100644
index 000000000..2fcfec9cc
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI
@@ -0,0 +1 @@
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
diff --git a/baseconfig/x86/CONFIG_SOUNDWIRE_INTEL b/baseconfig/x86/CONFIG_SOUNDWIRE_INTEL
new file mode 100644
index 000000000..d48d1cc17
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SOUNDWIRE_INTEL
@@ -0,0 +1 @@
+CONFIG_SOUNDWIRE_INTEL=m
diff --git a/baseconfig/x86/CONFIG_VBOXGUEST b/baseconfig/x86/CONFIG_VBOXGUEST
new file mode 100644
index 000000000..790186610
--- /dev/null
+++ b/baseconfig/x86/CONFIG_VBOXGUEST
@@ -0,0 +1 @@
+# CONFIG_VBOXGUEST is not set
diff --git a/baseconfig/x86/CONFIG_VIDEO_IPU3_CIO2 b/baseconfig/x86/CONFIG_VIDEO_IPU3_CIO2
new file mode 100644
index 000000000..d8d306e62
--- /dev/null
+++ b/baseconfig/x86/CONFIG_VIDEO_IPU3_CIO2
@@ -0,0 +1 @@
+CONFIG_VIDEO_IPU3_CIO2=m
diff --git a/baseconfig/x86/CONFIG_VIRT_DRIVERS b/baseconfig/x86/CONFIG_VIRT_DRIVERS
new file mode 100644
index 000000000..7173b9c64
--- /dev/null
+++ b/baseconfig/x86/CONFIG_VIRT_DRIVERS
@@ -0,0 +1 @@
+CONFIG_VIRT_DRIVERS=y
diff --git a/baseconfig/x86/CONFIG_X86_PMEM_LEGACY b/baseconfig/x86/CONFIG_X86_PMEM_LEGACY
index 3ac539aca..b93c1350f 100644
--- a/baseconfig/x86/CONFIG_X86_PMEM_LEGACY
+++ b/baseconfig/x86/CONFIG_X86_PMEM_LEGACY
@@ -1 +1 @@
-CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY=m
diff --git a/baseconfig/x86/i686/CONFIG_X86_PPRO_FENCE b/baseconfig/x86/i686/CONFIG_X86_PPRO_FENCE
deleted file mode 100644
index 373382804..000000000
--- a/baseconfig/x86/i686/CONFIG_X86_PPRO_FENCE
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_X86_PPRO_FENCE is not set
diff --git a/baseconfig/x86/i686PAE/CONFIG_X86_PPRO_FENCE b/baseconfig/x86/i686PAE/CONFIG_X86_PPRO_FENCE
deleted file mode 100644
index 373382804..000000000
--- a/baseconfig/x86/i686PAE/CONFIG_X86_PPRO_FENCE
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_X86_PPRO_FENCE is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_CRYPTO_DEV_SP_PSP b/baseconfig/x86/x86_64/CONFIG_CRYPTO_DEV_SP_PSP
new file mode 100644
index 000000000..7b0c6490a
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_CRYPTO_DEV_SP_PSP
@@ -0,0 +1 @@
+CONFIG_CRYPTO_DEV_SP_PSP=y
diff --git a/baseconfig/x86/x86_64/CONFIG_JAILHOUSE_GUEST b/baseconfig/x86/x86_64/CONFIG_JAILHOUSE_GUEST
new file mode 100644
index 000000000..aa93b53af
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_JAILHOUSE_GUEST
@@ -0,0 +1 @@
+# CONFIG_JAILHOUSE_GUEST is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_KEXEC_SIG b/baseconfig/x86/x86_64/CONFIG_KEXEC_SIG
new file mode 100644
index 000000000..67b688658
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_KEXEC_SIG
@@ -0,0 +1 @@
+CONFIG_KEXEC_SIG=y
diff --git a/baseconfig/x86/x86_64/CONFIG_KEXEC_SIG_FORCE b/baseconfig/x86/x86_64/CONFIG_KEXEC_SIG_FORCE
new file mode 100644
index 000000000..6aa62efa5
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_KEXEC_SIG_FORCE
@@ -0,0 +1 @@
+CONFIG_KEXEC_SIG_FORCE=y
diff --git a/baseconfig/x86/x86_64/CONFIG_KEXEC_VERIFY_SIG b/baseconfig/x86/x86_64/CONFIG_KEXEC_VERIFY_SIG
deleted file mode 100644
index 5f39f1993..000000000
--- a/baseconfig/x86/x86_64/CONFIG_KEXEC_VERIFY_SIG
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_KEXEC_VERIFY_SIG=y
diff --git a/baseconfig/x86/x86_64/CONFIG_KVM_AMD_SEV b/baseconfig/x86/x86_64/CONFIG_KVM_AMD_SEV
new file mode 100644
index 000000000..de33426a5
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_KVM_AMD_SEV
@@ -0,0 +1 @@
+CONFIG_KVM_AMD_SEV=y
diff --git a/bcm2835-hwrng-Handle-deferred-clock-properly.patch b/bcm2835-hwrng-Handle-deferred-clock-properly.patch
new file mode 100644
index 000000000..4b4cdfea0
--- /dev/null
+++ b/bcm2835-hwrng-Handle-deferred-clock-properly.patch
@@ -0,0 +1,42 @@
+From patchwork Mon Feb 12 20:11:36 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: hwrng: bcm2835: Handle deferred clock properly
+From: Stefan Wahren <stefan.wahren@i2se.com>
+X-Patchwork-Id: 10214385
+Message-Id: <1518466296-30161-1-git-send-email-stefan.wahren@i2se.com>
+To: Herbert Xu <herbert@gondor.apana.org.au>, Matt Mackall <mpm@selenic.com>
+Cc: Stefan Wahren <stefan.wahren@i2se.com>,
+ Florian Fainelli <f.fainelli@gmail.com>, Arnd Bergmann <arnd@arndb.de>,
+ Scott Branden <sbranden@broadcom.com>, Jon Mason <jonmason@broadcom.com>,
+ Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
+ Eric Anholt <eric@anholt.net>,
+ bcm-kernel-feedback-list@broadcom.com, linux-crypto@vger.kernel.org,
+ Ray Jui <rjui@broadcom.com>, linux-arm-kernel@lists.infradead.org
+Date: Mon, 12 Feb 2018 21:11:36 +0100
+
+In case the probe of the clock is deferred, we would assume it is
+optional. This is wrong, so defer the probe of this driver until
+the clock is available.
+
+Fixes: 791af4f4907a ("hwrng: bcm2835 - Manage an optional clock")
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Acked-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ drivers/char/hw_random/bcm2835-rng.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/char/hw_random/bcm2835-rng.c b/drivers/char/hw_random/bcm2835-rng.c
+index 7a84cec..6767d96 100644
+--- a/drivers/char/hw_random/bcm2835-rng.c
++++ b/drivers/char/hw_random/bcm2835-rng.c
+@@ -163,6 +163,8 @@ static int bcm2835_rng_probe(struct platform_device *pdev)
+
+ /* Clock is optional on most platforms */
+ priv->clk = devm_clk_get(dev, NULL);
++ if (IS_ERR(priv->clk) && PTR_ERR(priv->clk) == -EPROBE_DEFER)
++ return -EPROBE_DEFER;
+
+ priv->rng.name = pdev->name;
+ priv->rng.init = bcm2835_rng_init;
diff --git a/bcm2837-enable-pmu.patch b/bcm2837-enable-pmu.patch
new file mode 100644
index 000000000..378dd64c1
--- /dev/null
+++ b/bcm2837-enable-pmu.patch
@@ -0,0 +1,31 @@
+From 69e52712002cb6768b894cde9620fb426fd8728d Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Fri, 16 Mar 2018 21:49:37 +0100
+Subject: [PATCH] ARM: dts: bcm2837: Enable PMU on Raspberry Pi 3
+
+This enables the PMU (performance monitoring unit) on Raspberry Pi 3.
+In order to make it work on ARM and ARM64, we need to specify two
+compatible strings.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+---
+ arch/arm/boot/dts/bcm2837.dtsi | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi
+index 7704bb029605..1f5e5c782835 100644
+--- a/arch/arm/boot/dts/bcm2837.dtsi
++++ b/arch/arm/boot/dts/bcm2837.dtsi
+@@ -17,6 +17,12 @@
+ };
+ };
+
++ arm-pmu {
++ compatible = "arm,cortex-a53-pmu", "arm,cortex-a7-pmu";
++ interrupt-parent = <&local_intc>;
++ interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
++ };
++
+ timer {
+ compatible = "arm,armv7-timer";
+ interrupt-parent = <&local_intc>;
diff --git a/bcm2837-gpio-expander.patch b/bcm2837-gpio-expander.patch
new file mode 100644
index 000000000..f5b8370b4
--- /dev/null
+++ b/bcm2837-gpio-expander.patch
@@ -0,0 +1,707 @@
+From patchwork Tue Feb 20 12:19:31 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v5,1/5] ARM: bcm2835: sync firmware properties with downstream
+From: Baruch Siach <baruch@tkos.co.il>
+X-Patchwork-Id: 10229963
+Message-Id: <e7d1f1d0789f11d37957a8998bee23d035115aeb.1519128054.git.baruch@tkos.co.il>
+To: Linus Walleij <linus.walleij@linaro.org>,
+ Dave Stevenson <dave.stevenson@raspberrypi.org>,
+ Eric Anholt <eric@anholt.net>, Stefan Wahren <stefan.wahren@i2se.com>
+Cc: devicetree@vger.kernel.org, Baruch Siach <baruch@tkos.co.il>,
+ linux-gpio@vger.kernel.org, Michael Zoran <mzoran@crowfest.net>,
+ Rob Herring <robh+dt@kernel.org>, linux-rpi-kernel@lists.infradead.org,
+ Frank Rowand <frowand.list@gmail.com>, linux-arm-kernel@lists.infradead.org
+Date: Tue, 20 Feb 2018 14:19:31 +0200
+
+Add latest firmware property tags from the latest Raspberry Pi downstream
+kernel. This is needed for the GPIO tags, so we can control the GPIO
+multiplexor lines.
+
+Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+v4: No change
+
+v3: Add Stefan's ack
+
+v2: No change
+---
+ include/soc/bcm2835/raspberrypi-firmware.h | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h
+index cb979ad90401..50df5b28d2c9 100644
+--- a/include/soc/bcm2835/raspberrypi-firmware.h
++++ b/include/soc/bcm2835/raspberrypi-firmware.h
+@@ -63,6 +63,7 @@ enum rpi_firmware_property_tag {
+ RPI_FIRMWARE_GET_MIN_VOLTAGE = 0x00030008,
+ RPI_FIRMWARE_GET_TURBO = 0x00030009,
+ RPI_FIRMWARE_GET_MAX_TEMPERATURE = 0x0003000a,
++ RPI_FIRMWARE_GET_STC = 0x0003000b,
+ RPI_FIRMWARE_ALLOCATE_MEMORY = 0x0003000c,
+ RPI_FIRMWARE_LOCK_MEMORY = 0x0003000d,
+ RPI_FIRMWARE_UNLOCK_MEMORY = 0x0003000e,
+@@ -72,12 +73,22 @@ enum rpi_firmware_property_tag {
+ RPI_FIRMWARE_SET_ENABLE_QPU = 0x00030012,
+ RPI_FIRMWARE_GET_DISPMANX_RESOURCE_MEM_HANDLE = 0x00030014,
+ RPI_FIRMWARE_GET_EDID_BLOCK = 0x00030020,
++ RPI_FIRMWARE_GET_CUSTOMER_OTP = 0x00030021,
+ RPI_FIRMWARE_GET_DOMAIN_STATE = 0x00030030,
+ RPI_FIRMWARE_SET_CLOCK_STATE = 0x00038001,
+ RPI_FIRMWARE_SET_CLOCK_RATE = 0x00038002,
+ RPI_FIRMWARE_SET_VOLTAGE = 0x00038003,
+ RPI_FIRMWARE_SET_TURBO = 0x00038009,
++ RPI_FIRMWARE_SET_CUSTOMER_OTP = 0x00038021,
+ RPI_FIRMWARE_SET_DOMAIN_STATE = 0x00038030,
++ RPI_FIRMWARE_GET_GPIO_STATE = 0x00030041,
++ RPI_FIRMWARE_SET_GPIO_STATE = 0x00038041,
++ RPI_FIRMWARE_SET_SDHOST_CLOCK = 0x00038042,
++ RPI_FIRMWARE_GET_GPIO_CONFIG = 0x00030043,
++ RPI_FIRMWARE_SET_GPIO_CONFIG = 0x00038043,
++ RPI_FIRMWARE_GET_PERIPH_REG = 0x00030045,
++ RPI_FIRMWARE_SET_PERIPH_REG = 0x00038045,
++
+
+ /* Dispmanx TAGS */
+ RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 0x00040001,
+@@ -91,6 +102,8 @@ enum rpi_firmware_property_tag {
+ RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_OFFSET = 0x00040009,
+ RPI_FIRMWARE_FRAMEBUFFER_GET_OVERSCAN = 0x0004000a,
+ RPI_FIRMWARE_FRAMEBUFFER_GET_PALETTE = 0x0004000b,
++ RPI_FIRMWARE_FRAMEBUFFER_GET_TOUCHBUF = 0x0004000f,
++ RPI_FIRMWARE_FRAMEBUFFER_GET_GPIOVIRTBUF = 0x00040010,
+ RPI_FIRMWARE_FRAMEBUFFER_RELEASE = 0x00048001,
+ RPI_FIRMWARE_FRAMEBUFFER_TEST_PHYSICAL_WIDTH_HEIGHT = 0x00044003,
+ RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_WIDTH_HEIGHT = 0x00044004,
+@@ -100,6 +113,7 @@ enum rpi_firmware_property_tag {
+ RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_OFFSET = 0x00044009,
+ RPI_FIRMWARE_FRAMEBUFFER_TEST_OVERSCAN = 0x0004400a,
+ RPI_FIRMWARE_FRAMEBUFFER_TEST_PALETTE = 0x0004400b,
++ RPI_FIRMWARE_FRAMEBUFFER_TEST_VSYNC = 0x0004400e,
+ RPI_FIRMWARE_FRAMEBUFFER_SET_PHYSICAL_WIDTH_HEIGHT = 0x00048003,
+ RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_WIDTH_HEIGHT = 0x00048004,
+ RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 0x00048005,
+@@ -108,6 +122,10 @@ enum rpi_firmware_property_tag {
+ RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 0x00048009,
+ RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 0x0004800a,
+ RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 0x0004800b,
++ RPI_FIRMWARE_FRAMEBUFFER_SET_TOUCHBUF = 0x0004801f,
++ RPI_FIRMWARE_FRAMEBUFFER_SET_GPIOVIRTBUF = 0x00048020,
++ RPI_FIRMWARE_FRAMEBUFFER_SET_VSYNC = 0x0004800e,
++ RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 0x0004800f,
+
+ RPI_FIRMWARE_VCHIQ_INIT = 0x00048010,
+
+From patchwork Tue Feb 20 12:19:32 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v5,2/5] dt-bindings: gpio: add raspberry pi GPIO expander binding
+From: Baruch Siach <baruch@tkos.co.il>
+X-Patchwork-Id: 10229965
+Message-Id: <f400b48cbcd8a138c39d4e8f63d6c1f569090dcc.1519128054.git.baruch@tkos.co.il>
+To: Linus Walleij <linus.walleij@linaro.org>,
+ Dave Stevenson <dave.stevenson@raspberrypi.org>,
+ Eric Anholt <eric@anholt.net>, Stefan Wahren <stefan.wahren@i2se.com>
+Cc: devicetree@vger.kernel.org, Baruch Siach <baruch@tkos.co.il>,
+ linux-gpio@vger.kernel.org, Michael Zoran <mzoran@crowfest.net>,
+ Rob Herring <robh+dt@kernel.org>, linux-rpi-kernel@lists.infradead.org,
+ Frank Rowand <frowand.list@gmail.com>, linux-arm-kernel@lists.infradead.org
+Date: Tue, 20 Feb 2018 14:19:32 +0200
+
+The Raspberry Pi 3 GPIO expander is controlled by the VC4 firmware over
+I2C. The firmware mailbox interface allows the ARM core to control the
+GPIO lines.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+Reviewed-by: Rob Herring <robh@kernel.org>
+---
+v5:
+ * Remove the 'firmware' property
+ * Note that the gpio node is a child of the firmware node
+
+v4:
+ * Move the example gpio node under the firmware node
+ * Rename gpio node name to plain 'gpio'
+
+v3:
+ * Rename node name.
+
+v2:
+ * Rename compatible string to raspberrypi,firmware-gpio
+---
+ .../bindings/gpio/raspberrypi,firmware-gpio.txt | 30 ++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+ create mode 100644 Documentation/devicetree/bindings/gpio/raspberrypi,firmware-gpio.txt
+
+diff --git a/Documentation/devicetree/bindings/gpio/raspberrypi,firmware-gpio.txt b/Documentation/devicetree/bindings/gpio/raspberrypi,firmware-gpio.txt
+new file mode 100644
+index 000000000000..ce97265e23ba
+--- /dev/null
++++ b/Documentation/devicetree/bindings/gpio/raspberrypi,firmware-gpio.txt
+@@ -0,0 +1,30 @@
++Raspberry Pi GPIO expander
++
++The Raspberry Pi 3 GPIO expander is controlled by the VC4 firmware. The
++firmware exposes a mailbox interface that allows the ARM core to control the
++GPIO lines on the expander.
++
++The Raspberry Pi GPIO expander node must be a child node of the Raspberry Pi
++firmware node.
++
++Required properties:
++
++- compatible : Should be "raspberrypi,firmware-gpio"
++- gpio-controller : Marks the device node as a gpio controller
++- #gpio-cells : Should be two. The first cell is the pin number, and
++ the second cell is used to specify the gpio polarity:
++ 0 = active high
++ 1 = active low
++
++Example:
++
++firmware: firmware-rpi {
++ compatible = "raspberrypi,bcm2835-firmware";
++ mboxes = <&mailbox>;
++
++ expgpio: gpio {
++ compatible = "raspberrypi,firmware-gpio";
++ gpio-controller;
++ #gpio-cells = <2>;
++ };
++};
+From patchwork Tue Feb 20 12:19:33 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v5,
+ 3/5] gpio: raspberrypi-exp: Driver for RPi3 GPIO expander via mailbox
+ service
+From: Baruch Siach <baruch@tkos.co.il>
+X-Patchwork-Id: 10229967
+Message-Id: <8c34f287ee72b340fa9d693aa0e304b25541c74c.1519128054.git.baruch@tkos.co.il>
+To: Linus Walleij <linus.walleij@linaro.org>,
+ Dave Stevenson <dave.stevenson@raspberrypi.org>,
+ Eric Anholt <eric@anholt.net>, Stefan Wahren <stefan.wahren@i2se.com>
+Cc: devicetree@vger.kernel.org, Baruch Siach <baruch@tkos.co.il>,
+ linux-gpio@vger.kernel.org, Michael Zoran <mzoran@crowfest.net>,
+ Rob Herring <robh+dt@kernel.org>, linux-rpi-kernel@lists.infradead.org,
+ Frank Rowand <frowand.list@gmail.com>, linux-arm-kernel@lists.infradead.org
+Date: Tue, 20 Feb 2018 14:19:33 +0200
+
+From: Dave Stevenson <dave.stevenson@raspberrypi.org>
+
+Pi3 and Compute Module 3 have a GPIO expander that the
+VPU communicates with.
+There is a mailbox service that now allows control of this
+expander, so add a kernel driver that can make use of it.
+
+Reviewed-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+v5:
+ * Use the parent node to find the firmware
+
+v4:
+ * Don't set the .owner driver field
+ * Add Stefan's review tag
+
+v3:
+ * Tweak Kconfig driver prompt
+ * Make GPIO_RASPBERRYPI_EXP tristate
+ * Make COMPILE_TEST independent of RASPBERRYPI_FIRMWARE
+ * Remove redundant DMA header
+ * Use less code lines for dev_err()
+ * Check rpi_exp_gpio_get_polarity() return value
+ * Remove redundant platform_set_drvdata() call
+
+v2:
+ * Rename driver to gpio-raspberrypi-exp
+ * Populate the gpiochip parent device pointer
+ * Use macro for the mailbox base GPIO number
+ * Drop linux/gpio.h and GPIOF_DIR_*
+ * Check and print firmware error value
+ * Use devm_gpiochip_add_data(); drop .remove
+ * A few more minor tweaks
+---
+ drivers/gpio/Kconfig | 9 ++
+ drivers/gpio/Makefile | 1 +
+ drivers/gpio/gpio-raspberrypi-exp.c | 252 ++++++++++++++++++++++++++++++++++++
+ 3 files changed, 262 insertions(+)
+ create mode 100644 drivers/gpio/gpio-raspberrypi-exp.c
+
+diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
+index 8dbb2280538d..fd0562a37f68 100644
+--- a/drivers/gpio/Kconfig
++++ b/drivers/gpio/Kconfig
+@@ -122,6 +122,15 @@ config GPIO_ATH79
+ Select this option to enable GPIO driver for
+ Atheros AR71XX/AR724X/AR913X SoC devices.
+
++config GPIO_RASPBERRYPI_EXP
++ tristate "Raspberry Pi 3 GPIO Expander"
++ default RASPBERRYPI_FIRMWARE
++ depends on OF_GPIO
++ depends on (ARCH_BCM2835 && RASPBERRYPI_FIRMWARE) || COMPILE_TEST
++ help
++ Turn on GPIO support for the expander on Raspberry Pi 3 boards, using
++ the firmware mailbox to communicate with VideoCore on BCM283x chips.
++
+ config GPIO_BCM_KONA
+ bool "Broadcom Kona GPIO"
+ depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST)
+diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
+index cccb0d40846c..76dc0a02bd56 100644
+--- a/drivers/gpio/Makefile
++++ b/drivers/gpio/Makefile
+@@ -32,6 +32,7 @@ obj-$(CONFIG_GPIO_AMDPT) += gpio-amdpt.o
+ obj-$(CONFIG_GPIO_ARIZONA) += gpio-arizona.o
+ obj-$(CONFIG_GPIO_ATH79) += gpio-ath79.o
+ obj-$(CONFIG_GPIO_ASPEED) += gpio-aspeed.o
++obj-$(CONFIG_GPIO_RASPBERRYPI_EXP) += gpio-raspberrypi-exp.o
+ obj-$(CONFIG_GPIO_BCM_KONA) += gpio-bcm-kona.o
+ obj-$(CONFIG_GPIO_BD9571MWV) += gpio-bd9571mwv.o
+ obj-$(CONFIG_GPIO_BRCMSTB) += gpio-brcmstb.o
+diff --git a/drivers/gpio/gpio-raspberrypi-exp.c b/drivers/gpio/gpio-raspberrypi-exp.c
+new file mode 100644
+index 000000000000..d6d36d537e37
+--- /dev/null
++++ b/drivers/gpio/gpio-raspberrypi-exp.c
+@@ -0,0 +1,252 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * Raspberry Pi 3 expander GPIO driver
++ *
++ * Uses the firmware mailbox service to communicate with the
++ * GPIO expander on the VPU.
++ *
++ * Copyright (C) 2017 Raspberry Pi Trading Ltd.
++ */
++
++#include <linux/err.h>
++#include <linux/gpio/driver.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <soc/bcm2835/raspberrypi-firmware.h>
++
++#define MODULE_NAME "raspberrypi-exp-gpio"
++#define NUM_GPIO 8
++
++#define RPI_EXP_GPIO_BASE 128
++
++#define RPI_EXP_GPIO_DIR_IN 0
++#define RPI_EXP_GPIO_DIR_OUT 1
++
++struct rpi_exp_gpio {
++ struct gpio_chip gc;
++ struct rpi_firmware *fw;
++};
++
++/* VC4 firmware mailbox interface data structures */
++
++struct gpio_set_config {
++ u32 gpio;
++ u32 direction;
++ u32 polarity;
++ u32 term_en;
++ u32 term_pull_up;
++ u32 state;
++};
++
++struct gpio_get_config {
++ u32 gpio;
++ u32 direction;
++ u32 polarity;
++ u32 term_en;
++ u32 term_pull_up;
++};
++
++struct gpio_get_set_state {
++ u32 gpio;
++ u32 state;
++};
++
++static int rpi_exp_gpio_get_polarity(struct gpio_chip *gc, unsigned int off)
++{
++ struct rpi_exp_gpio *gpio;
++ struct gpio_get_config get;
++ int ret;
++
++ gpio = gpiochip_get_data(gc);
++
++ get.gpio = off + RPI_EXP_GPIO_BASE; /* GPIO to update */
++
++ ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_GET_GPIO_CONFIG,
++ &get, sizeof(get));
++ if (ret || get.gpio != 0) {
++ dev_err(gc->parent, "Failed to get GPIO %u config (%d %x)\n",
++ off, ret, get.gpio);
++ return ret ? ret : -EIO;
++ }
++ return get.polarity;
++}
++
++static int rpi_exp_gpio_dir_in(struct gpio_chip *gc, unsigned int off)
++{
++ struct rpi_exp_gpio *gpio;
++ struct gpio_set_config set_in;
++ int ret;
++
++ gpio = gpiochip_get_data(gc);
++
++ set_in.gpio = off + RPI_EXP_GPIO_BASE; /* GPIO to update */
++ set_in.direction = RPI_EXP_GPIO_DIR_IN;
++ set_in.term_en = 0; /* termination disabled */
++ set_in.term_pull_up = 0; /* n/a as termination disabled */
++ set_in.state = 0; /* n/a as configured as an input */
++
++ ret = rpi_exp_gpio_get_polarity(gc, off);
++ if (ret < 0)
++ return ret;
++ set_in.polarity = ret; /* Retain existing setting */
++
++ ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_SET_GPIO_CONFIG,
++ &set_in, sizeof(set_in));
++ if (ret || set_in.gpio != 0) {
++ dev_err(gc->parent, "Failed to set GPIO %u to input (%d %x)\n",
++ off, ret, set_in.gpio);
++ return ret ? ret : -EIO;
++ }
++ return 0;
++}
++
++static int rpi_exp_gpio_dir_out(struct gpio_chip *gc, unsigned int off, int val)
++{
++ struct rpi_exp_gpio *gpio;
++ struct gpio_set_config set_out;
++ int ret;
++
++ gpio = gpiochip_get_data(gc);
++
++ set_out.gpio = off + RPI_EXP_GPIO_BASE; /* GPIO to update */
++ set_out.direction = RPI_EXP_GPIO_DIR_OUT;
++ set_out.term_en = 0; /* n/a as an output */
++ set_out.term_pull_up = 0; /* n/a as termination disabled */
++ set_out.state = val; /* Output state */
++
++ ret = rpi_exp_gpio_get_polarity(gc, off);
++ if (ret < 0)
++ return ret;
++ set_out.polarity = ret; /* Retain existing setting */
++
++ ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_SET_GPIO_CONFIG,
++ &set_out, sizeof(set_out));
++ if (ret || set_out.gpio != 0) {
++ dev_err(gc->parent, "Failed to set GPIO %u to output (%d %x)\n",
++ off, ret, set_out.gpio);
++ return ret ? ret : -EIO;
++ }
++ return 0;
++}
++
++static int rpi_exp_gpio_get_direction(struct gpio_chip *gc, unsigned int off)
++{
++ struct rpi_exp_gpio *gpio;
++ struct gpio_get_config get;
++ int ret;
++
++ gpio = gpiochip_get_data(gc);
++
++ get.gpio = off + RPI_EXP_GPIO_BASE; /* GPIO to update */
++
++ ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_GET_GPIO_CONFIG,
++ &get, sizeof(get));
++ if (ret || get.gpio != 0) {
++ dev_err(gc->parent,
++ "Failed to get GPIO %u config (%d %x)\n", off, ret,
++ get.gpio);
++ return ret ? ret : -EIO;
++ }
++ return !get.direction;
++}
++
++static int rpi_exp_gpio_get(struct gpio_chip *gc, unsigned int off)
++{
++ struct rpi_exp_gpio *gpio;
++ struct gpio_get_set_state get;
++ int ret;
++
++ gpio = gpiochip_get_data(gc);
++
++ get.gpio = off + RPI_EXP_GPIO_BASE; /* GPIO to update */
++ get.state = 0; /* storage for returned value */
++
++ ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_GET_GPIO_STATE,
++ &get, sizeof(get));
++ if (ret || get.gpio != 0) {
++ dev_err(gc->parent,
++ "Failed to get GPIO %u state (%d %x)\n", off, ret,
++ get.gpio);
++ return ret ? ret : -EIO;
++ }
++ return !!get.state;
++}
++
++static void rpi_exp_gpio_set(struct gpio_chip *gc, unsigned int off, int val)
++{
++ struct rpi_exp_gpio *gpio;
++ struct gpio_get_set_state set;
++ int ret;
++
++ gpio = gpiochip_get_data(gc);
++
++ set.gpio = off + RPI_EXP_GPIO_BASE; /* GPIO to update */
++ set.state = val; /* Output state */
++
++ ret = rpi_firmware_property(gpio->fw, RPI_FIRMWARE_SET_GPIO_STATE,
++ &set, sizeof(set));
++ if (ret || set.gpio != 0)
++ dev_err(gc->parent,
++ "Failed to set GPIO %u state (%d %x)\n", off, ret,
++ set.gpio);
++}
++
++static int rpi_exp_gpio_probe(struct platform_device *pdev)
++{
++ struct device *dev = &pdev->dev;
++ struct device_node *np = dev->of_node;
++ struct device_node *fw_node;
++ struct rpi_firmware *fw;
++ struct rpi_exp_gpio *rpi_gpio;
++
++ fw_node = of_get_parent(np);
++ if (!fw_node) {
++ dev_err(dev, "Missing firmware node\n");
++ return -ENOENT;
++ }
++
++ fw = rpi_firmware_get(fw_node);
++ if (!fw)
++ return -EPROBE_DEFER;
++
++ rpi_gpio = devm_kzalloc(dev, sizeof(*rpi_gpio), GFP_KERNEL);
++ if (!rpi_gpio)
++ return -ENOMEM;
++
++ rpi_gpio->fw = fw;
++ rpi_gpio->gc.parent = dev;
++ rpi_gpio->gc.label = MODULE_NAME;
++ rpi_gpio->gc.owner = THIS_MODULE;
++ rpi_gpio->gc.of_node = np;
++ rpi_gpio->gc.base = -1;
++ rpi_gpio->gc.ngpio = NUM_GPIO;
++
++ rpi_gpio->gc.direction_input = rpi_exp_gpio_dir_in;
++ rpi_gpio->gc.direction_output = rpi_exp_gpio_dir_out;
++ rpi_gpio->gc.get_direction = rpi_exp_gpio_get_direction;
++ rpi_gpio->gc.get = rpi_exp_gpio_get;
++ rpi_gpio->gc.set = rpi_exp_gpio_set;
++ rpi_gpio->gc.can_sleep = true;
++
++ return devm_gpiochip_add_data(dev, &rpi_gpio->gc, rpi_gpio);
++}
++
++static const struct of_device_id rpi_exp_gpio_ids[] = {
++ { .compatible = "raspberrypi,firmware-gpio" },
++ { }
++};
++MODULE_DEVICE_TABLE(of, rpi_exp_gpio_ids);
++
++static struct platform_driver rpi_exp_gpio_driver = {
++ .driver = {
++ .name = MODULE_NAME,
++ .of_match_table = of_match_ptr(rpi_exp_gpio_ids),
++ },
++ .probe = rpi_exp_gpio_probe,
++};
++module_platform_driver(rpi_exp_gpio_driver);
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Dave Stevenson <dave.stevenson@raspberrypi.org>");
++MODULE_DESCRIPTION("Raspberry Pi 3 expander GPIO driver");
++MODULE_ALIAS("platform:rpi-exp-gpio");
+From patchwork Tue Feb 20 12:19:34 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v5,4/5] ARM: dts: bcm2835: make the firmware node into a bus
+From: Baruch Siach <baruch@tkos.co.il>
+X-Patchwork-Id: 10229961
+Message-Id: <43f9082a6835df6d7bcd3e16d79db687c52826d2.1519128054.git.baruch@tkos.co.il>
+To: Linus Walleij <linus.walleij@linaro.org>,
+ Dave Stevenson <dave.stevenson@raspberrypi.org>,
+ Eric Anholt <eric@anholt.net>, Stefan Wahren <stefan.wahren@i2se.com>
+Cc: devicetree@vger.kernel.org, Baruch Siach <baruch@tkos.co.il>,
+ linux-gpio@vger.kernel.org, Michael Zoran <mzoran@crowfest.net>,
+ Rob Herring <robh+dt@kernel.org>, linux-rpi-kernel@lists.infradead.org,
+ Frank Rowand <frowand.list@gmail.com>, linux-arm-kernel@lists.infradead.org
+Date: Tue, 20 Feb 2018 14:19:34 +0200
+
+This allows adding devices for which the firmware exposes control interface
+via the mailbox. An example of such device is the GPIO expander.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
+---
+v4: New patch in this series
+---
+ arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+index e36c392a2b8f..0198bd46ef7c 100644
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -18,7 +18,9 @@
+
+ soc {
+ firmware: firmware {
+- compatible = "raspberrypi,bcm2835-firmware";
++ compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
++ #address-cells = <0>;
++ #size-cells = <0>;
+ mboxes = <&mailbox>;
+ };
+
+From patchwork Tue Feb 20 12:19:35 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v5,5/5] ARM: dts: bcm2837-rpi-3-b: add GPIO expander
+From: Baruch Siach <baruch@tkos.co.il>
+X-Patchwork-Id: 10229995
+Message-Id: <a6d59692dc4847e0b1639a26542e28c95ad5240f.1519128054.git.baruch@tkos.co.il>
+To: Linus Walleij <linus.walleij@linaro.org>,
+ Dave Stevenson <dave.stevenson@raspberrypi.org>,
+ Eric Anholt <eric@anholt.net>, Stefan Wahren <stefan.wahren@i2se.com>
+Cc: devicetree@vger.kernel.org, Baruch Siach <baruch@tkos.co.il>,
+ linux-gpio@vger.kernel.org, Michael Zoran <mzoran@crowfest.net>,
+ Rob Herring <robh+dt@kernel.org>, linux-rpi-kernel@lists.infradead.org,
+ Frank Rowand <frowand.list@gmail.com>, linux-arm-kernel@lists.infradead.org
+Date: Tue, 20 Feb 2018 14:19:35 +0200
+
+Add a description of the RPi3 GPIO expander that the VC4 firmware controls.
+
+Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
+---
+v5:
+ * Drop the 'firmware' property
+
+v4:
+ * Move the gpio node under the firmware node
+ * Rename the gpio node to plain 'gpio'
+ * Add Stefan's ack
+
+v3:
+ * List GPIO names one per line.
+
+v2:
+ * Move GPIO expander node out of the soc container
+ * Rename compatible string
+ * Add gpio-line-names property
+---
+ arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
+index 3e4ed7c5b0b3..0b31d995a066 100644
+--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
+@@ -25,6 +25,23 @@
+ };
+ };
+
++&firmware {
++ expgpio: gpio {
++ compatible = "raspberrypi,firmware-gpio";
++ gpio-controller;
++ #gpio-cells = <2>;
++ gpio-line-names = "BT_ON",
++ "WL_ON",
++ "STATUS_LED",
++ "LAN_RUN",
++ "HPD_N",
++ "CAM_GPIO0",
++ "CAM_GPIO1",
++ "PWR_LOW_N";
++ status = "okay";
++ };
++};
++
+ /* uart0 communicates with the BT module */
+ &uart0 {
+ pinctrl-names = "default";
+From 257f497bb3e58f88500971145761ed55428618eb Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Wed, 7 Mar 2018 15:56:20 +0100
+Subject: [PATCH] ARM: dts: bcm2837: Add missing GPIOs of Expander
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+---
+ arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 20 +++++++++++++++++++-
+ 1 file changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
+index 0b31d995a066..3e87ed05918e 100644
+--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
+@@ -20,9 +20,14 @@
+
+ leds {
+ act {
+- gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
++ gpios = <&expgpio 2 GPIO_ACTIVE_HIGH>;
+ };
+ };
++
++ wifi_pwrseq: wifi-pwrseq {
++ compatible = "mmc-pwrseq-simple";
++ reset-gpios = <&expgpio 1 GPIO_ACTIVE_HIGH>;
++ };
+ };
+
+ &firmware {
+@@ -42,6 +47,10 @@
+ };
+ };
+
++&hdmi {
++ hpd-gpios = <&expgpio 4 GPIO_ACTIVE_LOW>;
++};
++
+ /* uart0 communicates with the BT module */
+ &uart0 {
+ pinctrl-names = "default";
+@@ -51,6 +60,7 @@
+ bluetooth {
+ compatible = "brcm,bcm43438-bt";
+ max-speed = <2000000>;
++ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+@@ -63,11 +73,19 @@
+
+ /* SDHCI is used to control the SDIO for wireless */
+ &sdhci {
++ #address-cells = <1>;
++ #size-cells = <0>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&emmc_gpio34>;
+ status = "okay";
+ bus-width = <4>;
+ non-removable;
++ mmc-pwrseq = <&wifi_pwrseq>;
++
++ brcmf: wifi@1 {
++ reg = <1>;
++ compatible = "brcm,bcm4329-fmac";
++ };
+ };
+
+ /* SDHOST is used to drive the SD card */
diff --git a/bcm2837-lan78xx-fixes.patch b/bcm2837-lan78xx-fixes.patch
new file mode 100644
index 000000000..c8fd0b9f0
--- /dev/null
+++ b/bcm2837-lan78xx-fixes.patch
@@ -0,0 +1,434 @@
+From 6ed88d188a8240ba44da6578eab7d17e036d0e61 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Tue, 17 Oct 2017 15:04:29 +0100
+Subject: [PATCH] lan78xx: Enable LEDs if no valid EEPROM or OTP
+
+For applications of the LAN78xx that don't have valid programmed
+EEPROMs or OTPs, enabling both LEDs by default seems reasonable.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/net/usb/lan78xx.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
+index a21039852f8d..cd20ce4ed87d 100644
+--- a/drivers/net/usb/lan78xx.c
++++ b/drivers/net/usb/lan78xx.c
+@@ -2414,6 +2414,12 @@ static int lan78xx_reset(struct lan78xx_net *dev)
+
+ ret = lan78xx_read_reg(dev, HW_CFG, &buf);
+ buf |= HW_CFG_MEF_;
++
++ /* If no valid EEPROM and no valid OTP, enable the LEDs by default */
++ if (lan78xx_read_eeprom(dev, 0, 0, NULL) &&
++ lan78xx_read_otp(dev, 0, 0, NULL))
++ buf |= HW_CFG_LED0_EN_ | HW_CFG_LED1_EN_;
++
+ ret = lan78xx_write_reg(dev, HW_CFG, buf);
+
+ ret = lan78xx_read_reg(dev, USB_CFG0, &buf);
+From 4a4710f3847cd087e150f83382dffd92e09d9914 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Sat, 17 Mar 2018 00:10:02 +0100
+Subject: [PATCH] lan78xx: Read MAC address from DT if present
+
+There is a standard mechanism for locating and using a MAC address from
+the Device Tree. Use this facility in the lan78xx driver to support
+applications without programmed EEPROM or OTP.
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/net/usb/lan78xx.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
+index 60a604cc7647..a21039852f8d 100644
+--- a/drivers/net/usb/lan78xx.c
++++ b/drivers/net/usb/lan78xx.c
+@@ -36,6 +36,7 @@
+ #include <linux/irq.h>
+ #include <linux/irqchip/chained_irq.h>
+ #include <linux/microchipphy.h>
++#include <linux/of_net.h>
+ #include <linux/phy.h>
+ #include "lan78xx.h"
+
+@@ -1639,6 +1640,14 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev)
+ u32 addr_lo, addr_hi;
+ int ret;
+ u8 addr[6];
++ const u8 *mac_addr;
++
++ /* maybe the boot loader passed the MAC address in devicetree */
++ mac_addr = of_get_mac_address(dev->udev->dev.of_node);
++ if (mac_addr) {
++ ether_addr_copy(addr, mac_addr);
++ goto set_mac_addr;
++ }
+
+ ret = lan78xx_read_reg(dev, RX_ADDRL, &addr_lo);
+ ret = lan78xx_read_reg(dev, RX_ADDRH, &addr_hi);
+@@ -1667,6 +1676,7 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev)
+ "MAC address set to random addr");
+ }
+
++set_mac_addr:
+ addr_lo = addr[0] | (addr[1] << 8) |
+ (addr[2] << 16) | (addr[3] << 24);
+ addr_hi = addr[4] | (addr[5] << 8);
+From b5284e5d2d3562dac311443969a538b7fecb9848 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 28 Mar 2018 12:18:13 +0100
+Subject: [PATCH 1/5] lan78xx: Ignore DT MAC address if already valid
+
+The patch to set the lan78xx MAC address from DT does so regardless of
+whether or not the interface already has a valid address. As the
+initialisation function is called from the reset handler when the
+interface is brought up, it is impossible to change the MAC address
+in a way that persists across the interface being brought up.
+
+Fix the problem by moving the DT reading code after the check for a
+valid address.
+
+See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=209309
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/net/usb/lan78xx.c | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
+index b43b16b6e7ee..97ee7d3f749d 100644
+--- a/drivers/net/usb/lan78xx.c
++++ b/drivers/net/usb/lan78xx.c
+@@ -1641,14 +1641,6 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev)
+ u32 addr_lo, addr_hi;
+ int ret;
+ u8 addr[6];
+- const u8 *mac_addr;
+-
+- /* maybe the boot loader passed the MAC address in devicetree */
+- mac_addr = of_get_mac_address(dev->udev->dev.of_node);
+- if (mac_addr) {
+- ether_addr_copy(addr, mac_addr);
+- goto set_mac_addr;
+- }
+
+ ret = lan78xx_read_reg(dev, RX_ADDRL, &addr_lo);
+ ret = lan78xx_read_reg(dev, RX_ADDRH, &addr_hi);
+@@ -1661,6 +1653,15 @@ static void lan78xx_init_mac_address(struct lan78xx_net *dev)
+ addr[5] = (addr_hi >> 8) & 0xFF;
+
+ if (!is_valid_ether_addr(addr)) {
++ const u8 *mac_addr;
++
++ /* maybe the boot loader passed the MAC address in devicetree */
++ mac_addr = of_get_mac_address(dev->udev->dev.of_node);
++ if (mac_addr) {
++ ether_addr_copy(addr, mac_addr);
++ goto set_mac_addr;
++ }
++
+ /* reading mac address from EEPROM or OTP */
+ if ((lan78xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
+ addr) == 0) ||
+--
+2.17.0
+
+From 2c5d6ac9133cbfed05b97b34246121bddaf2aea4 Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.org>
+Date: Wed, 4 Apr 2018 16:34:24 +0100
+Subject: [PATCH 2/5] net: lan78xx: Allow for VLAN headers in timeout.
+
+The frame abort timeout being set by lan78xx_set_rx_max_frame_length
+didn't account for any VLAN headers, resulting in very low
+throughput if used with tagged VLANs.
+Use VLAN_ETH_HLEN instead of ETH_HLEN to correct for this.
+
+See https://github.com/raspberrypi/linux/issues/2458
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
+---
+ drivers/net/usb/lan78xx.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
+index 97ee7d3f749d..5fd7b8569cba 100644
+--- a/drivers/net/usb/lan78xx.c
++++ b/drivers/net/usb/lan78xx.c
+@@ -2193,7 +2193,7 @@ static int lan78xx_change_mtu(struct net_device *netdev, int new_mtu)
+ if ((ll_mtu % dev->maxpacket) == 0)
+ return -EDOM;
+
+- ret = lan78xx_set_rx_max_frame_length(dev, new_mtu + ETH_HLEN);
++ ret = lan78xx_set_rx_max_frame_length(dev, new_mtu + VLAN_ETH_HLEN);
+
+ netdev->mtu = new_mtu;
+
+@@ -2488,7 +2488,8 @@ static int lan78xx_reset(struct lan78xx_net *dev)
+ buf |= FCT_TX_CTL_EN_;
+ ret = lan78xx_write_reg(dev, FCT_TX_CTL, buf);
+
+- ret = lan78xx_set_rx_max_frame_length(dev, dev->net->mtu + ETH_HLEN);
++ ret = lan78xx_set_rx_max_frame_length(dev,
++ dev->net->mtu + VLAN_ETH_HLEN);
+
+ ret = lan78xx_read_reg(dev, MAC_RX, &buf);
+ buf |= MAC_RX_RXEN_;
+--
+2.17.0
+
+From 833315351413d94d7db407847448dfeddfafe127 Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Mon, 9 Apr 2018 17:51:35 +0100
+Subject: [PATCH 3/5] lan78xx: Connect phy early
+
+When using wicked with a lan78xx device attached to the system, we
+end up with ethtool commands issued on the device before an ifup
+got issued. That lead to the following crash:
+
+ Unable to handle kernel NULL pointer dereference at virtual address 0000039c
+ pgd = ffff800035b30000
+ [0000039c] *pgd=0000000000000000
+ Internal error: Oops: 96000004 [#1] SMP
+ Modules linked in: [...]
+ Supported: Yes
+ CPU: 3 PID: 638 Comm: wickedd Tainted: G E 4.12.14-0-default #1
+ Hardware name: raspberrypi rpi/rpi, BIOS 2018.03-rc2 02/21/2018
+ task: ffff800035e74180 task.stack: ffff800036718000
+ PC is at phy_ethtool_ksettings_get+0x20/0x98
+ LR is at lan78xx_get_link_ksettings+0x44/0x60 [lan78xx]
+ pc : [<ffff0000086f7f30>] lr : [<ffff000000dcca84>] pstate: 20000005
+ sp : ffff80003671bb20
+ x29: ffff80003671bb20 x28: ffff800035e74180
+ x27: ffff000008912000 x26: 000000000000001d
+ x25: 0000000000000124 x24: ffff000008f74d00
+ x23: 0000004000114809 x22: 0000000000000000
+ x21: ffff80003671bbd0 x20: 0000000000000000
+ x19: ffff80003671bbd0 x18: 000000000000040d
+ x17: 0000000000000001 x16: 0000000000000000
+ x15: 0000000000000000 x14: ffffffffffffffff
+ x13: 0000000000000000 x12: 0000000000000020
+ x11: 0101010101010101 x10: fefefefefefefeff
+ x9 : 7f7f7f7f7f7f7f7f x8 : fefefeff31677364
+ x7 : 0000000080808080 x6 : ffff80003671bc9c
+ x5 : ffff80003671b9f8 x4 : ffff80002c296190
+ x3 : 0000000000000000 x2 : 0000000000000000
+ x1 : ffff80003671bbd0 x0 : ffff80003671bc00
+ Process wickedd (pid: 638, stack limit = 0xffff800036718000)
+ Call trace:
+ Exception stack(0xffff80003671b9e0 to 0xffff80003671bb20)
+ b9e0: ffff80003671bc00 ffff80003671bbd0 0000000000000000 0000000000000000
+ ba00: ffff80002c296190 ffff80003671b9f8 ffff80003671bc9c 0000000080808080
+ ba20: fefefeff31677364 7f7f7f7f7f7f7f7f fefefefefefefeff 0101010101010101
+ ba40: 0000000000000020 0000000000000000 ffffffffffffffff 0000000000000000
+ ba60: 0000000000000000 0000000000000001 000000000000040d ffff80003671bbd0
+ ba80: 0000000000000000 ffff80003671bbd0 0000000000000000 0000004000114809
+ baa0: ffff000008f74d00 0000000000000124 000000000000001d ffff000008912000
+ bac0: ffff800035e74180 ffff80003671bb20 ffff000000dcca84 ffff80003671bb20
+ bae0: ffff0000086f7f30 0000000020000005 ffff80002c296000 ffff800035223900
+ bb00: 0000ffffffffffff 0000000000000000 ffff80003671bb20 ffff0000086f7f30
+ [<ffff0000086f7f30>] phy_ethtool_ksettings_get+0x20/0x98
+ [<ffff000000dcca84>] lan78xx_get_link_ksettings+0x44/0x60 [lan78xx]
+ [<ffff0000087cbc40>] ethtool_get_settings+0x68/0x210
+ [<ffff0000087cc0d4>] dev_ethtool+0x214/0x2180
+ [<ffff0000087e5008>] dev_ioctl+0x400/0x630
+ [<ffff00000879dd00>] sock_do_ioctl+0x70/0x88
+ [<ffff00000879f5f8>] sock_ioctl+0x208/0x368
+ [<ffff0000082cde10>] do_vfs_ioctl+0xb0/0x848
+ [<ffff0000082ce634>] SyS_ioctl+0x8c/0xa8
+ Exception stack(0xffff80003671bec0 to 0xffff80003671c000)
+ bec0: 0000000000000009 0000000000008946 0000fffff4e841d0 0000aa0032687465
+ bee0: 0000aaaafa2319d4 0000fffff4e841d4 0000000032687465 0000000032687465
+ bf00: 000000000000001d 7f7fff7f7f7f7f7f 72606b622e71ff4c 7f7f7f7f7f7f7f7f
+ bf20: 0101010101010101 0000000000000020 ffffffffffffffff 0000ffff7f510c68
+ bf40: 0000ffff7f6a9d18 0000ffff7f44ce30 000000000000040d 0000ffff7f6f98f0
+ bf60: 0000fffff4e842c0 0000000000000001 0000aaaafa2c2e00 0000ffff7f6ab000
+ bf80: 0000fffff4e842c0 0000ffff7f62a000 0000aaaafa2b9f20 0000aaaafa2c2e00
+ bfa0: 0000fffff4e84818 0000fffff4e841a0 0000ffff7f5ad0cc 0000fffff4e841a0
+ bfc0: 0000ffff7f44ce3c 0000000080000000 0000000000000009 000000000000001d
+ bfe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
+
+The culprit is quite simple: The driver tries to access the phy left and right,
+but only actually has a working reference to it when the device is up.
+
+The fix thus is quite simple too: Get a reference to the phy on probe already
+and keep it even when the device is going down.
+
+With this patch applied, I can successfully run wicked on my system and bring
+the interface up and down as many times as I want, without getting NULL pointer
+dereferences in between.
+
+Signed-off-by: Alexander Graf <agraf@suse.de>
+---
+ drivers/net/usb/lan78xx.c | 34 ++++++++++++++++++----------------
+ 1 file changed, 18 insertions(+), 16 deletions(-)
+
+diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
+index 5fd7b8569cba..60fa1257721c 100644
+--- a/drivers/net/usb/lan78xx.c
++++ b/drivers/net/usb/lan78xx.c
+@@ -2094,10 +2094,6 @@ static int lan78xx_phy_init(struct lan78xx_net *dev)
+
+ dev->fc_autoneg = phydev->autoneg;
+
+- phy_start(phydev);
+-
+- netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
+-
+ return 0;
+
+ error:
+@@ -2541,9 +2537,9 @@ static int lan78xx_open(struct net_device *net)
+ if (ret < 0)
+ goto done;
+
+- ret = lan78xx_phy_init(dev);
+- if (ret < 0)
+- goto done;
++ phy_start(net->phydev);
++
++ netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
+
+ /* for Link Check */
+ if (dev->urb_intr) {
+@@ -2604,13 +2600,8 @@ static int lan78xx_stop(struct net_device *net)
+ if (timer_pending(&dev->stat_monitor))
+ del_timer_sync(&dev->stat_monitor);
+
+- phy_unregister_fixup_for_uid(PHY_KSZ9031RNX, 0xfffffff0);
+- phy_unregister_fixup_for_uid(PHY_LAN8835, 0xfffffff0);
+-
+- phy_stop(net->phydev);
+- phy_disconnect(net->phydev);
+-
+- net->phydev = NULL;
++ if (net->phydev)
++ phy_stop(net->phydev);
+
+ clear_bit(EVENT_DEV_OPEN, &dev->flags);
+ netif_stop_queue(net);
+@@ -3525,8 +3516,13 @@ static void lan78xx_disconnect(struct usb_interface *intf)
+ return;
+
+ udev = interface_to_usbdev(intf);
+-
+ net = dev->net;
++
++ phy_unregister_fixup_for_uid(PHY_KSZ9031RNX, 0xfffffff0);
++ phy_unregister_fixup_for_uid(PHY_LAN8835, 0xfffffff0);
++
++ phy_disconnect(net->phydev);
++
+ unregister_netdev(net);
+
+ cancel_delayed_work_sync(&dev->wq);
+@@ -3682,8 +3678,14 @@ static int lan78xx_probe(struct usb_interface *intf,
+ pm_runtime_set_autosuspend_delay(&udev->dev,
+ DEFAULT_AUTOSUSPEND_DELAY);
+
++ ret = lan78xx_phy_init(dev);
++ if (ret < 0)
++ goto out4;
++
+ return 0;
+
++out4:
++ unregister_netdev(netdev);
+ out3:
+ lan78xx_unbind(dev, intf);
+ out2:
+@@ -4031,7 +4033,7 @@ static int lan78xx_reset_resume(struct usb_interface *intf)
+
+ lan78xx_reset(dev);
+
+- lan78xx_phy_init(dev);
++ phy_start(dev->net->phydev);
+
+ return lan78xx_resume(intf);
+ }
+--
+2.17.0
+
+From 7b4cc4a0af02c0d798007a143efa7509711d52d7 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 4 Apr 2018 16:39:44 +0100
+Subject: [PATCH 4/5] lan78xx: Don't reset the interface on open
+
+With Alexander Graf's patch ("lan78xx: Connect phy early") applied,
+the call to lan78xx_reset within lan78xx_open prevents the phy
+interrupt from being generated (even though the link is up).
+
+Avoid this issue by removing the lan78xx_reset call.
+
+See: https://github.com/raspberrypi/linux/issues/2437
+ https://github.com/raspberrypi/linux/issues/2442
+ https://github.com/raspberrypi/linux/issues/2457
+---
+ drivers/net/usb/lan78xx.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
+index 60fa1257721c..293ed1847932 100644
+--- a/drivers/net/usb/lan78xx.c
++++ b/drivers/net/usb/lan78xx.c
+@@ -2533,10 +2533,6 @@ static int lan78xx_open(struct net_device *net)
+ if (ret < 0)
+ goto out;
+
+- ret = lan78xx_reset(dev);
+- if (ret < 0)
+- goto done;
+-
+ phy_start(net->phydev);
+
+ netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
+--
+2.17.0
+
+From ddbd11509f01c388b968872aeabf630654275b0a Mon Sep 17 00:00:00 2001
+From: Dave Stevenson <dave.stevenson@raspberrypi.org>
+Date: Mon, 9 Apr 2018 14:31:54 +0100
+Subject: [PATCH 5/5] net: lan78xx: Request s/w csum check on VLAN tagged
+ packets.
+
+There appears to be some issue in the LAN78xx where the checksum
+computed on a VLAN tagged packet is incorrect, or at least not
+in the form that the kernel is after. This is most easily shown
+by pinging a device via a VLAN tagged interface and it will dump
+out the error message and stack trace from netdev_rx_csum_fault.
+It has also been seen with standard TCP and UDP packets.
+
+Until this is fully understood, request that the network stack
+computes the checksum on packets signalled as having a VLAN tag
+applied.
+
+See https://github.com/raspberrypi/linux/issues/2458
+
+Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
+---
+ drivers/net/usb/lan78xx.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
+index 293ed1847932..44cabda17bb6 100644
+--- a/drivers/net/usb/lan78xx.c
++++ b/drivers/net/usb/lan78xx.c
+@@ -2937,8 +2937,12 @@ static void lan78xx_rx_csum_offload(struct lan78xx_net *dev,
+ struct sk_buff *skb,
+ u32 rx_cmd_a, u32 rx_cmd_b)
+ {
++ /* Checksum offload appears to be flawed if used with VLANs.
++ * Elect for sw checksum check instead.
++ */
+ if (!(dev->net->features & NETIF_F_RXCSUM) ||
+- unlikely(rx_cmd_a & RX_CMD_A_ICSM_)) {
++ unlikely(rx_cmd_a & RX_CMD_A_ICSM_) ||
++ (rx_cmd_a & RX_CMD_A_FVTG_)) {
+ skb->ip_summed = CHECKSUM_NONE;
+ } else {
+ skb->csum = ntohs((u16)(rx_cmd_b >> RX_CMD_B_CSUM_SHIFT_));
+--
+2.17.0
+
diff --git a/bcm2837-rpi-initial-support-for-the-3.patch b/bcm2837-rpi-initial-support-for-the-3.patch
new file mode 100644
index 000000000..c9bedfebc
--- /dev/null
+++ b/bcm2837-rpi-initial-support-for-the-3.patch
@@ -0,0 +1,209 @@
+From defa4876ece55751c691d17ffc928d9bfe049585 Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Fri, 16 Mar 2018 22:56:59 +0100
+Subject: [PATCH] arm64: dts: broadcom: Add reference to Raspberry Pi 3 B+
+
+This adds a reference to the dts file of the Raspberry Pi 3 B+
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+---
+ arch/arm64/boot/dts/broadcom/Makefile | 3 ++-
+ arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+ create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts
+
+diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile
+index 2a2591ef1fee..1193a9e34bbb 100644
+--- a/arch/arm64/boot/dts/broadcom/Makefile
++++ b/arch/arm64/boot/dts/broadcom/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+-dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb
++dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \
++ bcm2837-rpi-3-b-plus.dtb
+
+ subdir-y += northstar2
+ subdir-y += stingray
+diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts
+new file mode 100644
+index 000000000000..46ad2023cccf
+--- /dev/null
++++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b-plus.dts
+@@ -0,0 +1,2 @@
++// SPDX-License-Identifier: GPL-2.0
++#include "arm/bcm2837-rpi-3-b-plus.dts"
+
+From c7c06c54087dfadd065abcba0b7f614f7a88d549 Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Fri, 16 Mar 2018 22:42:28 +0100
+Subject: [PATCH] ARM: dts: bcm2837: Add Raspberry Pi 3 B+
+
+The Raspberry Pi 3 B+ has the following major differences compared
+to the model 3 B:
+* Microchip LAN7515 (Gigabit Ethernet)
+* Cypress CYW43455 (802.11ac and BT 4.2)
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts | 102 +++++++++++++++++++++++++++++
+ arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi | 27 ++++++++
+ 3 files changed, 130 insertions(+)
+ create mode 100644 arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
+ create mode 100644 arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index 3b471e6787ff..dee85f848de9 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -75,6 +75,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
+ bcm2835-rpi-a-plus.dtb \
+ bcm2836-rpi-2-b.dtb \
+ bcm2837-rpi-3-b.dtb \
++ bcm2837-rpi-3-b-plus.dtb \
+ bcm2835-rpi-zero.dtb \
+ bcm2835-rpi-zero-w.dtb
+ dtb-$(CONFIG_ARCH_BCM_5301X) += \
+diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
+new file mode 100644
+index 000000000000..fb9f6f7e965c
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
+@@ -0,0 +1,102 @@
++// SPDX-License-Identifier: GPL-2.0
++/dts-v1/;
++#include "bcm2837.dtsi"
++#include "bcm2835-rpi.dtsi"
++#include "bcm283x-rpi-lan7515.dtsi"
++#include "bcm283x-rpi-usb-host.dtsi"
++
++/ {
++ compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
++ model = "Raspberry Pi 3 Model B+";
++
++ chosen {
++ /* 8250 auxiliary UART instead of pl011 */
++ stdout-path = "serial1:115200n8";
++ };
++
++ memory {
++ reg = <0 0x40000000>;
++ };
++
++ leds {
++ act {
++ gpios = <&gpio 29 0>;
++ };
++
++ pwr {
++ label = "PWR";
++ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
++ };
++ };
++
++ wifi_pwrseq: wifi-pwrseq {
++ compatible = "mmc-pwrseq-simple";
++ reset-gpios = <&expgpio 1 GPIO_ACTIVE_HIGH>;
++ };
++};
++
++&firmware {
++ expgpio: gpio {
++ compatible = "raspberrypi,firmware-gpio";
++ gpio-controller;
++ #gpio-cells = <2>;
++ gpio-line-names = "BT_ON",
++ "WL_ON",
++ "STATUS_LED",
++ "LAN_RUN",
++ "",
++ "CAM_GPIO0",
++ "CAM_GPIO1",
++ "";
++ status = "okay";
++ };
++};
++
++&hdmi {
++ hpd-gpios = <&gpio 28 GPIO_ACTIVE_LOW>;
++};
++
++/* uart0 communicates with the BT module */
++&uart0 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
++ status = "okay";
++
++ bluetooth {
++ compatible = "brcm,bcm43438-bt";
++ max-speed = <2000000>;
++ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
++ };
++};
++
++/* uart1 is mapped to the pin header */
++&uart1 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&uart1_gpio14>;
++ status = "okay";
++};
++
++/* SDHCI is used to control the SDIO for wireless */
++&sdhci {
++ #address-cells = <1>;
++ #size-cells = <0>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&emmc_gpio34>;
++ status = "okay";
++ bus-width = <4>;
++ non-removable;
++ mmc-pwrseq = <&wifi_pwrseq>;
++
++ brcmf: wifi@1 {
++ reg = <1>;
++ compatible = "brcm,bcm4329-fmac";
++ };
++};
++
++/* SDHOST is used to drive the SD card */
++&sdhost {
++ pinctrl-names = "default";
++ pinctrl-0 = <&sdhost_gpio48>;
++ status = "okay";
++ bus-width = <4>;
++};
+diff --git a/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
+new file mode 100644
+index 000000000000..169203c5ce8b
+--- /dev/null
++++ b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
+@@ -0,0 +1,27 @@
++// SPDX-License-Identifier: GPL-2.0
++/ {
++ aliases {
++ ethernet0 = &ethernet;
++ };
++};
++
++&usb {
++ usb1@1 {
++ compatible = "usb424,2514";
++ reg = <1>;
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ usb1_1@1 {
++ compatible = "usb424,2514";
++ reg = <1>;
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ ethernet: usbether@1 {
++ compatible = "usb424,7800";
++ reg = <1>;
++ };
++ };
++ };
++};
+
diff --git a/bcm283x-Fix-probing-of-bcm2835-i2s.patch b/bcm283x-Fix-probing-of-bcm2835-i2s.patch
new file mode 100644
index 000000000..911b2d982
--- /dev/null
+++ b/bcm283x-Fix-probing-of-bcm2835-i2s.patch
@@ -0,0 +1,118 @@
+From patchwork Fri Feb 16 10:55:33 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [V3, 1/2,
+ RESEND] dt-bindings: bcm283x: Fix register ranges of bcm2835-i2s
+From: Stefan Wahren <stefan.wahren@i2se.com>
+X-Patchwork-Id: 10224429
+Message-Id: <1518778534-3328-2-git-send-email-stefan.wahren@i2se.com>
+To: Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
+ Eric Anholt <eric@anholt.net>
+Cc: Stefan Wahren <stefan.wahren@i2se.com>, devicetree@vger.kernel.org,
+ alsa-devel@alsa-project.org, Liam Girdwood <lgirdwood@gmail.com>,
+ Mark Brown <broonie@kernel.org>, linux-rpi-kernel@lists.infradead.org,
+ linux-arm-kernel@lists.infradead.org
+Date: Fri, 16 Feb 2018 11:55:33 +0100
+
+Since 517e7a1537a ("ASoC: bcm2835: move to use the clock framework")
+the bcm2835-i2s requires a clock as DT property. Unfortunately
+the necessary DT change has never been applied. While we are at it
+also fix the first PCM register range to cover the PCM_GRAY register.
+
+This patch only fixes the affected dt-bindings.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+Reviewed-by: Rob Herring <robh@kernel.org>
+---
+ Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt | 4 ++--
+ Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt | 9 ++++-----
+ 2 files changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt b/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
+index baf9b34..b6a8cc0 100644
+--- a/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
++++ b/Documentation/devicetree/bindings/dma/brcm,bcm2835-dma.txt
+@@ -74,8 +74,8 @@ Example:
+
+ bcm2835_i2s: i2s@7e203000 {
+ compatible = "brcm,bcm2835-i2s";
+- reg = < 0x7e203000 0x20>,
+- < 0x7e101098 0x02>;
++ reg = < 0x7e203000 0x24>;
++ clocks = <&clocks BCM2835_CLOCK_PCM>;
+
+ dmas = <&dma 2>,
+ <&dma 3>;
+diff --git a/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt b/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt
+index 65783de..7bb0362 100644
+--- a/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt
++++ b/Documentation/devicetree/bindings/sound/brcm,bcm2835-i2s.txt
+@@ -2,9 +2,8 @@
+
+ Required properties:
+ - compatible: "brcm,bcm2835-i2s"
+-- reg: A list of base address and size entries:
+- * The first entry should cover the PCM registers
+- * The second entry should cover the PCM clock registers
++- reg: Should contain PCM registers location and length.
++- clocks: the (PCM) clock to use
+ - dmas: List of DMA controller phandle and DMA request line ordered pairs.
+ - dma-names: Identifier string for each DMA request line in the dmas property.
+ These strings correspond 1:1 with the ordered pairs in dmas.
+@@ -16,8 +15,8 @@ Example:
+
+ bcm2835_i2s: i2s@7e203000 {
+ compatible = "brcm,bcm2835-i2s";
+- reg = <0x7e203000 0x20>,
+- <0x7e101098 0x02>;
++ reg = <0x7e203000 0x24>;
++ clocks = <&clocks BCM2835_CLOCK_PCM>;
+
+ dmas = <&dma 2>,
+ <&dma 3>;
+From patchwork Fri Feb 16 10:55:34 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [V3,2/2,RESEND] ARM: dts: bcm283x: Fix probing of bcm2835-i2s
+From: Stefan Wahren <stefan.wahren@i2se.com>
+X-Patchwork-Id: 10224427
+Message-Id: <1518778534-3328-3-git-send-email-stefan.wahren@i2se.com>
+To: Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
+ Eric Anholt <eric@anholt.net>
+Cc: Stefan Wahren <stefan.wahren@i2se.com>, devicetree@vger.kernel.org,
+ alsa-devel@alsa-project.org, Liam Girdwood <lgirdwood@gmail.com>,
+ Mark Brown <broonie@kernel.org>, linux-rpi-kernel@lists.infradead.org,
+ linux-arm-kernel@lists.infradead.org
+Date: Fri, 16 Feb 2018 11:55:34 +0100
+
+Since 517e7a1537a ("ASoC: bcm2835: move to use the clock framework")
+the bcm2835-i2s requires a clock as DT property. Unfortunately
+the necessary DT change has never been applied. While we are at it
+also fix the first PCM register range to cover the PCM_GRAY register.
+
+Fixes: 517e7a1537a ("ASoC: bcm2835: move to use the clock framework")
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Reviewed-by: Eric Anholt <eric@anholt.net>
+Tested-by: Matthias Reichl <hias@horus.com>
+---
+ arch/arm/boot/dts/bcm283x.dtsi | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
+index 013431e..e08203c 100644
+--- a/arch/arm/boot/dts/bcm283x.dtsi
++++ b/arch/arm/boot/dts/bcm283x.dtsi
+@@ -396,8 +396,8 @@
+
+ i2s: i2s@7e203000 {
+ compatible = "brcm,bcm2835-i2s";
+- reg = <0x7e203000 0x20>,
+- <0x7e101098 0x02>;
++ reg = <0x7e203000 0x24>;
++ clocks = <&clocks BCM2835_CLOCK_PCM>;
+
+ dmas = <&dma 2>,
+ <&dma 3>;
diff --git a/bcm283x-clk-audio-fixes.patch b/bcm283x-clk-audio-fixes.patch
new file mode 100644
index 000000000..51c9fa791
--- /dev/null
+++ b/bcm283x-clk-audio-fixes.patch
@@ -0,0 +1,98 @@
+From aa964d59aab2cb04bc011ffd370822ac79f82a0b Mon Sep 17 00:00:00 2001
+From: Boris Brezillon <boris.brezillon@bootlin.com>
+Date: Wed, 7 Mar 2018 15:39:17 +0100
+Subject: [PATCH] clk: bcm2835: De-assert/assert PLL reset signal when
+ appropriate
+
+In order to enable a PLL, not only the PLL has to be powered up and
+locked, but you also have to de-assert the reset signal. The last part
+was missing. Add it so PLLs that were not enabled by the FW/bootloader
+can be enabled from Linux.
+
+Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
+---
+ drivers/clk/bcm/clk-bcm2835.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
+index a07f6451694a..6c5d4a8e426c 100644
+--- a/drivers/clk/bcm/clk-bcm2835.c
++++ b/drivers/clk/bcm/clk-bcm2835.c
+@@ -602,6 +602,9 @@ static void bcm2835_pll_off(struct clk_hw *hw)
+ const struct bcm2835_pll_data *data = pll->data;
+
+ spin_lock(&cprman->regs_lock);
++ cprman_write(cprman, data->a2w_ctrl_reg,
++ cprman_read(cprman, data->a2w_ctrl_reg) &
++ ~A2W_PLL_CTRL_PRST_DISABLE);
+ cprman_write(cprman, data->cm_ctrl_reg,
+ cprman_read(cprman, data->cm_ctrl_reg) |
+ CM_PLL_ANARST);
+@@ -640,6 +643,10 @@ static int bcm2835_pll_on(struct clk_hw *hw)
+ cpu_relax();
+ }
+
++ cprman_write(cprman, data->a2w_ctrl_reg,
++ cprman_read(cprman, data->a2w_ctrl_reg) |
++ A2W_PLL_CTRL_PRST_DISABLE);
++
+ return 0;
+ }
+
+From 1b6867ee05d84cc6ec23b5ec0b78684187d3190a Mon Sep 17 00:00:00 2001
+From: Boris Brezillon <boris.brezillon@bootlin.com>
+Date: Wed, 7 Mar 2018 15:41:14 +0100
+Subject: [PATCH] clk: bcm2835: Make sure the PLL is gated before changing its
+ rate
+
+All bcm2835 PLLs should be gated before their rate can be changed.
+Setting CLK_SET_RATE_GATE will let the core enforce that, but this is
+not enough to make the code work in all situations. Indeed, the
+CLK_SET_RATE_GATE flag prevents a user from changing the rate while
+the clock is enabled, but this check only guarantees there's no Linux
+users. In our case, the clock might have been enabled by the
+bootloader/FW, and, because we have CLK_IGNORE_UNUSED set, Linux never
+disables the PLL. So we have to make sure the PLL is actually disabled
+before changing the rate.
+
+Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain clocks")
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
+---
+ drivers/clk/bcm/clk-bcm2835.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
+index 6c5d4a8e426c..051ce769c109 100644
+--- a/drivers/clk/bcm/clk-bcm2835.c
++++ b/drivers/clk/bcm/clk-bcm2835.c
+@@ -678,6 +678,18 @@ static int bcm2835_pll_set_rate(struct clk_hw *hw,
+ u32 ana[4];
+ int i;
+
++ /*
++ * Normally, the CLK_SET_RATE_GATE flag prevents a user from changing
++ * the rate while the clock is enabled, but this check only makes sure
++ * there's no Linux users.
++ * In our case, the clock might have been enabled by the bootloader/FW,
++ * and, since CLK_IGNORE_UNUSED flag is set, Linux never disables it.
++ * So we have to make sure the clk is actually disabled before changing
++ * the rate.
++ */
++ if (bcm2835_pll_is_on(hw))
++ bcm2835_pll_off(hw);
++
+ if (rate > data->max_fb_rate) {
+ use_fb_prediv = true;
+ rate /= 2;
+@@ -1318,7 +1330,7 @@ static struct clk_hw *bcm2835_register_pll(struct bcm2835_cprman *cprman,
+ init.num_parents = 1;
+ init.name = data->name;
+ init.ops = &bcm2835_pll_clk_ops;
+- init.flags = CLK_IGNORE_UNUSED;
++ init.flags = CLK_IGNORE_UNUSED | CLK_SET_RATE_GATE;
+
+ pll = kzalloc(sizeof(*pll), GFP_KERNEL);
+ if (!pll)
diff --git a/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch b/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch
new file mode 100644
index 000000000..c1ef68279
--- /dev/null
+++ b/clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch
@@ -0,0 +1,58 @@
+From patchwork Tue Mar 27 17:47:04 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: clk: ti: fix flag space conflict with clkctrl clocks
+From: Tero Kristo <t-kristo@ti.com>
+X-Patchwork-Id: 10311335
+Message-Id: <1522172824-14094-1-git-send-email-t-kristo@ti.com>
+To: <sboyd@kernel.org>, <mturquette@baylibre.com>,
+ <linux-omap@vger.kernel.org>, <linux-clk@vger.kernel.org>,
+ <tony@atomide.com>
+Cc: <arnd@arndb.de>, <linux-arm-kernel@lists.infradead.org>
+Date: Tue, 27 Mar 2018 20:47:04 +0300
+
+The introduction of support for CLK_SET_RATE_PARENT flag for clkctrl
+clocks used a generic clock flag, which causes a conflict with the
+rest of the clkctrl flags, namely the NO_IDLEST flag. This can cause
+boot failures on certain platforms where this flag is introduced, by
+omitting the wait for the clockctrl module to be fully enabled before
+proceeding with rest of the code.
+
+Fix this by moving all the clkctrl specific flags to their own bit-range.
+
+Signed-off-by: Tero Kristo <t-kristo@ti.com>
+Fixes: 49159a9dc3da ("clk: ti: add support for CLK_SET_RATE_PARENT flag")
+Reported-by: Christophe Lyon <christophe.lyon@linaro.org>
+Tested-by: Tony Lindgren <tony@atomide.com>
+---
+ drivers/clk/ti/clock.h | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/clk/ti/clock.h b/drivers/clk/ti/clock.h
+index 90b86aa..b582780 100644
+--- a/drivers/clk/ti/clock.h
++++ b/drivers/clk/ti/clock.h
+@@ -76,6 +76,11 @@ enum {
+ #define CLKF_CORE (1 << 9)
+ #define CLKF_J_TYPE (1 << 10)
+
++/* CLKCTRL flags */
++#define CLKF_SW_SUP BIT(5)
++#define CLKF_HW_SUP BIT(6)
++#define CLKF_NO_IDLEST BIT(7)
++
+ #define CLK(dev, con, ck) \
+ { \
+ .lk = { \
+@@ -185,10 +190,6 @@ struct omap_clkctrl_data {
+ extern const struct omap_clkctrl_data dm814_clkctrl_data[];
+ extern const struct omap_clkctrl_data dm816_clkctrl_data[];
+
+-#define CLKF_SW_SUP BIT(0)
+-#define CLKF_HW_SUP BIT(1)
+-#define CLKF_NO_IDLEST BIT(2)
+-
+ typedef void (*ti_of_clk_init_cb_t)(void *, struct device_node *);
+
+ struct clk *ti_clk_register(struct device *dev, struct clk_hw *hw,
diff --git a/crypto-testmgr-Allow-different-compression-results.patch b/crypto-testmgr-Allow-different-compression-results.patch
new file mode 100644
index 000000000..c752770ef
--- /dev/null
+++ b/crypto-testmgr-Allow-different-compression-results.patch
@@ -0,0 +1,163 @@
+From patchwork Wed Apr 11 18:28:32 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: crypto: testmgr: Allow different compression results
+From: Jan Glauber <jglauber@cavium.com>
+X-Patchwork-Id: 10336001
+Message-Id: <20180411182832.27761-1-jglauber@cavium.com>
+To: Herbert Xu <herbert@gondor.apana.org.au>
+Cc: "David S . Miller" <davem@davemloft.net>,
+ linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org,
+ Mahipal Challa <mchalla@cavium.com>,
+ Balakrishna Bhamidipati <bbhamidipati@cavium.com>,
+ Jan Glauber <jglauber@cavium.com>
+Date: Wed, 11 Apr 2018 20:28:32 +0200
+
+From: Mahipal Challa <mchalla@cavium.com>
+
+The following error is triggered by the ThunderX ZIP driver
+if the testmanager is enabled:
+
+[ 199.069437] ThunderX-ZIP 0000:03:00.0: Found ZIP device 0 177d:a01a on Node 0
+[ 199.073573] alg: comp: Compression test 1 failed for deflate-generic: output len = 37
+
+The reason for this error is the verification of the compression
+results. Verifying the compression result only works if all
+algorithm parameters are identical, in this case to the software
+implementation.
+
+Different compression engines like the ThunderX ZIP coprocessor
+might yield different compression results by tuning the
+algorithm parameters. In our case the compressed result is
+shorter than the test vector.
+
+We should not forbid different compression results but only
+check that compression -> decompression yields the same
+result. This is done already in the acomp test. Do something
+similar for test_comp().
+
+Signed-off-by: Mahipal Challa <mchalla@cavium.com>
+Signed-off-by: Balakrishna Bhamidipati <bbhamidipati@cavium.com>
+[jglauber@cavium.com: removed unrelated printk changes, rewrote commit msg,
+ fixed whitespace and unneeded initialization]
+Signed-off-by: Jan Glauber <jglauber@cavium.com>
+---
+ crypto/testmgr.c | 50 +++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 37 insertions(+), 13 deletions(-)
+
+diff --git a/crypto/testmgr.c b/crypto/testmgr.c
+index af4a01c..627e82e 100644
+--- a/crypto/testmgr.c
++++ b/crypto/testmgr.c
+@@ -1342,19 +1342,30 @@ static int test_comp(struct crypto_comp *tfm,
+ int ctcount, int dtcount)
+ {
+ const char *algo = crypto_tfm_alg_driver_name(crypto_comp_tfm(tfm));
++ char *output, *decomp_output;
+ unsigned int i;
+- char result[COMP_BUF_SIZE];
+ int ret;
+
++ output = kmalloc(COMP_BUF_SIZE, GFP_KERNEL);
++ if (!output)
++ return -ENOMEM;
++
++ decomp_output = kmalloc(COMP_BUF_SIZE, GFP_KERNEL);
++ if (!decomp_output) {
++ kfree(output);
++ return -ENOMEM;
++ }
++
+ for (i = 0; i < ctcount; i++) {
+ int ilen;
+ unsigned int dlen = COMP_BUF_SIZE;
+
+- memset(result, 0, sizeof (result));
++ memset(output, 0, sizeof(COMP_BUF_SIZE));
++ memset(decomp_output, 0, sizeof(COMP_BUF_SIZE));
+
+ ilen = ctemplate[i].inlen;
+ ret = crypto_comp_compress(tfm, ctemplate[i].input,
+- ilen, result, &dlen);
++ ilen, output, &dlen);
+ if (ret) {
+ printk(KERN_ERR "alg: comp: compression failed "
+ "on test %d for %s: ret=%d\n", i + 1, algo,
+@@ -1362,7 +1373,17 @@ static int test_comp(struct crypto_comp *tfm,
+ goto out;
+ }
+
+- if (dlen != ctemplate[i].outlen) {
++ ilen = dlen;
++ dlen = COMP_BUF_SIZE;
++ ret = crypto_comp_decompress(tfm, output,
++ ilen, decomp_output, &dlen);
++ if (ret) {
++ pr_err("alg: comp: compression failed: decompress: on test %d for %s failed: ret=%d\n",
++ i + 1, algo, -ret);
++ goto out;
++ }
++
++ if (dlen != ctemplate[i].inlen) {
+ printk(KERN_ERR "alg: comp: Compression test %d "
+ "failed for %s: output len = %d\n", i + 1, algo,
+ dlen);
+@@ -1370,10 +1391,11 @@ static int test_comp(struct crypto_comp *tfm,
+ goto out;
+ }
+
+- if (memcmp(result, ctemplate[i].output, dlen)) {
+- printk(KERN_ERR "alg: comp: Compression test %d "
+- "failed for %s\n", i + 1, algo);
+- hexdump(result, dlen);
++ if (memcmp(decomp_output, ctemplate[i].input,
++ ctemplate[i].inlen)) {
++ pr_err("alg: comp: compression failed: output differs: on test %d for %s\n",
++ i + 1, algo);
++ hexdump(decomp_output, dlen);
+ ret = -EINVAL;
+ goto out;
+ }
+@@ -1383,11 +1405,11 @@ static int test_comp(struct crypto_comp *tfm,
+ int ilen;
+ unsigned int dlen = COMP_BUF_SIZE;
+
+- memset(result, 0, sizeof (result));
++ memset(decomp_output, 0, sizeof(COMP_BUF_SIZE));
+
+ ilen = dtemplate[i].inlen;
+ ret = crypto_comp_decompress(tfm, dtemplate[i].input,
+- ilen, result, &dlen);
++ ilen, decomp_output, &dlen);
+ if (ret) {
+ printk(KERN_ERR "alg: comp: decompression failed "
+ "on test %d for %s: ret=%d\n", i + 1, algo,
+@@ -1403,10 +1425,10 @@ static int test_comp(struct crypto_comp *tfm,
+ goto out;
+ }
+
+- if (memcmp(result, dtemplate[i].output, dlen)) {
++ if (memcmp(decomp_output, dtemplate[i].output, dlen)) {
+ printk(KERN_ERR "alg: comp: Decompression test %d "
+ "failed for %s\n", i + 1, algo);
+- hexdump(result, dlen);
++ hexdump(decomp_output, dlen);
+ ret = -EINVAL;
+ goto out;
+ }
+@@ -1415,11 +1437,13 @@ static int test_comp(struct crypto_comp *tfm,
+ ret = 0;
+
+ out:
++ kfree(decomp_output);
++ kfree(output);
+ return ret;
+ }
+
+ static int test_acomp(struct crypto_acomp *tfm,
+- const struct comp_testvec *ctemplate,
++ const struct comp_testvec *ctemplate,
+ const struct comp_testvec *dtemplate,
+ int ctcount, int dtcount)
+ {
diff --git a/debugconfig/CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION b/debugconfig/CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION
new file mode 100644
index 000000000..80056c1a1
--- /dev/null
+++ b/debugconfig/CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION
@@ -0,0 +1 @@
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
diff --git a/debugconfig/CONFIG_BPF_KPROBE_OVERRIDE b/debugconfig/CONFIG_BPF_KPROBE_OVERRIDE
new file mode 100644
index 000000000..cf1d8d5bb
--- /dev/null
+++ b/debugconfig/CONFIG_BPF_KPROBE_OVERRIDE
@@ -0,0 +1 @@
+CONFIG_BPF_KPROBE_OVERRIDE=y
diff --git a/debugconfig/CONFIG_FAIL_FUNCTION b/debugconfig/CONFIG_FAIL_FUNCTION
new file mode 100644
index 000000000..f41816ded
--- /dev/null
+++ b/debugconfig/CONFIG_FAIL_FUNCTION
@@ -0,0 +1 @@
+CONFIG_FAIL_FUNCTION=y
diff --git a/drm-nouveau-bl-fix-backlight-regression.patch b/drm-nouveau-bl-fix-backlight-regression.patch
deleted file mode 100644
index 632810860..000000000
--- a/drm-nouveau-bl-fix-backlight-regression.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 9e75dc61eaa9acd1bff83c3b814ac2af6dc1f64c Mon Sep 17 00:00:00 2001
-Message-Id: <9e75dc61eaa9acd1bff83c3b814ac2af6dc1f64c.1521737559.git.jeremy@jcline.org>
-From: Karol Herbst <kherbst@redhat.com>
-Date: Mon, 19 Feb 2018 17:09:45 +0100
-Subject: [PATCH] drm/nouveau/bl: fix backlight regression
-
-Fixes: 3c66c87dc9 ("drm/nouveau/disp: remove hw-specific customisation
-of output paths")
-Suggested-by: Ben Skeggs <skeggsb@redhat.com>
-Signed-off-by: Karol Herbst <kherbst@redhat.com>
-Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-Signed-off-by: Jeremy Cline <jeremy@jcline.org>
----
- drivers/gpu/drm/nouveau/nouveau_backlight.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_backlight.c b/drivers/gpu/drm/nouveau/nouveau_backlight.c
-index f56f60f695e1..debbbf0fd4bd 100644
---- a/drivers/gpu/drm/nouveau/nouveau_backlight.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_backlight.c
-@@ -134,7 +134,7 @@ nv50_get_intensity(struct backlight_device *bd)
- struct nouveau_encoder *nv_encoder = bl_get_data(bd);
- struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
- struct nvif_object *device = &drm->client.device.object;
-- int or = nv_encoder->or;
-+ int or = ffs(nv_encoder->dcb->or) - 1;
- u32 div = 1025;
- u32 val;
-
-@@ -149,7 +149,7 @@ nv50_set_intensity(struct backlight_device *bd)
- struct nouveau_encoder *nv_encoder = bl_get_data(bd);
- struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
- struct nvif_object *device = &drm->client.device.object;
-- int or = nv_encoder->or;
-+ int or = ffs(nv_encoder->dcb->or) - 1;
- u32 div = 1025;
- u32 val = (bd->props.brightness * div) / 100;
-
-@@ -170,7 +170,7 @@ nva3_get_intensity(struct backlight_device *bd)
- struct nouveau_encoder *nv_encoder = bl_get_data(bd);
- struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
- struct nvif_object *device = &drm->client.device.object;
-- int or = nv_encoder->or;
-+ int or = ffs(nv_encoder->dcb->or) - 1;
- u32 div, val;
-
- div = nvif_rd32(device, NV50_PDISP_SOR_PWM_DIV(or));
-@@ -188,7 +188,7 @@ nva3_set_intensity(struct backlight_device *bd)
- struct nouveau_encoder *nv_encoder = bl_get_data(bd);
- struct nouveau_drm *drm = nouveau_drm(nv_encoder->base.base.dev);
- struct nvif_object *device = &drm->client.device.object;
-- int or = nv_encoder->or;
-+ int or = ffs(nv_encoder->dcb->or) - 1;
- u32 div, val;
-
- div = nvif_rd32(device, NV50_PDISP_SOR_PWM_DIV(or));
-@@ -228,7 +228,7 @@ nv50_backlight_init(struct drm_connector *connector)
- return -ENODEV;
- }
-
-- if (!nvif_rd32(device, NV50_PDISP_SOR_PWM_CTL(nv_encoder->or)))
-+ if (!nvif_rd32(device, NV50_PDISP_SOR_PWM_CTL(ffs(nv_encoder->dcb->or) - 1)))
- return 0;
-
- if (drm->client.device.info.chipset <= 0xa0 ||
---
-2.16.2
-
diff --git a/efi-Add-SHIM-and-image-security-database-GUID-defini.patch b/efi-Add-SHIM-and-image-security-database-GUID-defini.patch
deleted file mode 100644
index 4d380ea76..000000000
--- a/efi-Add-SHIM-and-image-security-database-GUID-defini.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 3a9fe1504e08824d894bb3a804c6a313f5d1be8a Mon Sep 17 00:00:00 2001
-From: Josh Boyer <jwboyer@fedoraproject.org>
-Date: Tue, 25 Oct 2016 12:54:11 -0400
-Subject: [PATCH 11/20] efi: Add SHIM and image security database GUID
- definitions
-
-Add the definitions for shim and image security database, both of which
-are used widely in various Linux distros.
-
-Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
----
- include/linux/efi.h | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 2d089487d2da..ce943d5accfd 100644
---- a/include/linux/efi.h
-+++ b/include/linux/efi.h
-@@ -592,6 +592,9 @@ void efi_native_runtime_setup(void);
- #define EFI_MEMORY_ATTRIBUTES_TABLE_GUID EFI_GUID(0xdcfa911d, 0x26eb, 0x469f, 0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20)
- #define EFI_CONSOLE_OUT_DEVICE_GUID EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
-
-+#define EFI_IMAGE_SECURITY_DATABASE_GUID EFI_GUID(0xd719b2cb, 0x3d3a, 0x4596, 0xa3, 0xbc, 0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f)
-+#define EFI_SHIM_LOCK_GUID EFI_GUID(0x605dab50, 0xe046, 0x4300, 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23)
-+
- /*
- * This GUID is used to pass to the kernel proper the struct screen_info
- * structure that was populated by the stub based on the GOP protocol instance
---
-2.9.3
-
diff --git a/efi-lockdown.patch b/efi-lockdown.patch
index c99d85c12..ceb0ca7f9 100644
--- a/efi-lockdown.patch
+++ b/efi-lockdown.patch
@@ -1,7 +1,7 @@
-From 646ac5c07196bc3680e34188e55c8cc3565f65e7 Mon Sep 17 00:00:00 2001
+From 1235d72fe1d34f9961051d159af3b48a1617ff0a Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Wed, 24 May 2017 14:56:00 +0100
-Subject: [PATCH 01/26] Add the ability to lock down access to the running
+Date: Tue, 27 Feb 2018 10:04:50 +0000
+Subject: [PATCH 01/31] Add the ability to lock down access to the running
kernel image
Provide a single call to allow kernel code to determine whether the system
@@ -22,10 +22,10 @@ Acked-by: James Morris <james.l.morris@oracle.com>
create mode 100644 security/lock_down.c
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
-index 0ad4c3044cf9..362da2e4bf53 100644
+index 3fd291503576..dcc8916098e7 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
-@@ -287,6 +287,23 @@ static inline void refcount_error_report(struct pt_regs *regs, const char *err)
+@@ -306,6 +306,23 @@ static inline void refcount_error_report(struct pt_regs *regs, const char *err)
{ }
#endif
@@ -50,10 +50,10 @@ index 0ad4c3044cf9..362da2e4bf53 100644
int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res);
int __must_check _kstrtol(const char *s, unsigned int base, long *res);
diff --git a/include/linux/security.h b/include/linux/security.h
-index ce6265960d6c..310775476b68 100644
+index 73f1ef625d40..2e9690f3d1ce 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
-@@ -1753,5 +1753,13 @@ static inline void free_secdata(void *secdata)
+@@ -1801,5 +1801,13 @@ static inline void free_secdata(void *secdata)
{ }
#endif /* CONFIG_SECURITY */
@@ -68,10 +68,10 @@ index ce6265960d6c..310775476b68 100644
#endif /* ! __LINUX_SECURITY_H */
diff --git a/security/Kconfig b/security/Kconfig
-index e8e449444e65..8e01fd59ae7e 100644
+index c4302067a3ad..a9e6207d287e 100644
--- a/security/Kconfig
+++ b/security/Kconfig
-@@ -205,6 +205,14 @@ config STATIC_USERMODEHELPER_PATH
+@@ -231,6 +231,14 @@ config STATIC_USERMODEHELPER_PATH
If you wish for all usermode helper programs to be disabled,
specify an empty string here (i.e. "").
@@ -87,10 +87,10 @@ index e8e449444e65..8e01fd59ae7e 100644
source security/smack/Kconfig
source security/tomoyo/Kconfig
diff --git a/security/Makefile b/security/Makefile
-index f2d71cdb8e19..8c4a43e3d4e0 100644
+index 4d2d3782ddef..507ac8c520ce 100644
--- a/security/Makefile
+++ b/security/Makefile
-@@ -29,3 +29,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o
+@@ -30,3 +30,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o
# Object integrity file lists
subdir-$(CONFIG_INTEGRITY) += integrity
obj-$(CONFIG_INTEGRITY) += integrity/
@@ -164,18 +164,20 @@ index 000000000000..d8595c0e6673
+}
+EXPORT_SYMBOL(__kernel_is_locked_down);
--
-2.13.6
+2.14.3
-From 2c46467f43bc54324de5474a8355f98c692309e4 Mon Sep 17 00:00:00 2001
+From 2c6e78b766569c7a966639346cc2b5a023998adc Mon Sep 17 00:00:00 2001
From: Kyle McMartin <kyle@redhat.com>
-Date: Wed, 18 Oct 2017 14:02:25 +0100
-Subject: [PATCH 02/26] Add a SysRq option to lift kernel lockdown
+Date: Tue, 27 Feb 2018 10:04:50 +0000
+Subject: [PATCH 02/31] Add a SysRq option to lift kernel lockdown
Make an option to provide a sysrq key that will lift the kernel lockdown,
thereby allowing the running kernel image to be accessed and modified.
-On x86_64 this is triggered with SysRq+x, but this key may not be available
-on all arches, so it is set by setting LOCKDOWN_LIFT_KEY in asm/setup.h.
+On x86 this is triggered with SysRq+x, but this key may not be available on
+all arches, so it is set by setting LOCKDOWN_LIFT_KEY in asm/setup.h.
+Since this macro must be defined in an arch to be able to use this facility
+for that arch, the Kconfig option is restricted to arches that support it.
Signed-off-by: Kyle McMartin <kyle@redhat.com>
Signed-off-by: David Howells <dhowells@redhat.com>
@@ -187,15 +189,15 @@ cc: x86@kernel.org
include/linux/input.h | 5 +++++
include/linux/sysrq.h | 8 +++++++-
kernel/debug/kdb/kdb_main.c | 2 +-
- security/Kconfig | 8 ++++++++
+ security/Kconfig | 10 ++++++++++
security/lock_down.c | 47 ++++++++++++++++++++++++++++++++++++++++++++
- 8 files changed, 84 insertions(+), 8 deletions(-)
+ 8 files changed, 86 insertions(+), 8 deletions(-)
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
-index a65cf544686a..863f77582c09 100644
+index ae13bc974416..3108e297d87d 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
-@@ -8,6 +8,8 @@
+@@ -9,6 +9,8 @@
#include <linux/linkage.h>
#include <asm/page_types.h>
@@ -205,22 +207,22 @@ index a65cf544686a..863f77582c09 100644
#include <linux/pfn.h>
diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c
-index 39ddd9a73feb..0afeef1672bc 100644
+index 96a887f33698..027c730631cc 100644
--- a/drivers/input/misc/uinput.c
+++ b/drivers/input/misc/uinput.c
-@@ -362,6 +362,7 @@ static int uinput_create_device(struct uinput_device *udev)
+@@ -365,6 +365,7 @@ static int uinput_create_device(struct uinput_device *udev)
dev->flush = uinput_dev_flush;
}
-
+
+ dev->flags |= INPUTDEV_FLAGS_SYNTHETIC;
dev->event = uinput_dev_event;
-
+
input_set_drvdata(udev->dev, udev);
diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
-index 3ffc1ce29023..8b766dbad6dd 100644
+index b674793be478..7c06541b422e 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
-@@ -481,6 +481,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
+@@ -487,6 +487,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
/* x: May be registered on mips for TLB dump */
/* x: May be registered on ppc/powerpc for xmon */
/* x: May be registered on sparc64 for global PMU dump */
@@ -228,7 +230,7 @@ index 3ffc1ce29023..8b766dbad6dd 100644
NULL, /* x */
/* y: May be registered on sparc64 for global register dump */
NULL, /* y */
-@@ -524,7 +525,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
+@@ -530,7 +531,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
sysrq_key_table[i] = op_p;
}
@@ -237,7 +239,7 @@ index 3ffc1ce29023..8b766dbad6dd 100644
{
struct sysrq_key_op *op_p;
int orig_log_level;
-@@ -544,11 +545,15 @@ void __handle_sysrq(int key, bool check_mask)
+@@ -550,11 +551,15 @@ void __handle_sysrq(int key, bool check_mask)
op_p = __sysrq_get_key_op(key);
if (op_p) {
@@ -254,7 +256,7 @@ index 3ffc1ce29023..8b766dbad6dd 100644
pr_cont("%s\n", op_p->action_msg);
console_loglevel = orig_log_level;
op_p->handler(key);
-@@ -580,7 +585,7 @@ void __handle_sysrq(int key, bool check_mask)
+@@ -586,7 +591,7 @@ void __handle_sysrq(int key, bool check_mask)
void handle_sysrq(int key)
{
if (sysrq_on())
@@ -263,7 +265,7 @@ index 3ffc1ce29023..8b766dbad6dd 100644
}
EXPORT_SYMBOL(handle_sysrq);
-@@ -661,7 +666,7 @@ static void sysrq_do_reset(unsigned long _state)
+@@ -667,7 +672,7 @@ static void sysrq_do_reset(struct timer_list *t)
static void sysrq_handle_reset_request(struct sysrq_state *state)
{
if (state->reset_requested)
@@ -272,7 +274,7 @@ index 3ffc1ce29023..8b766dbad6dd 100644
if (sysrq_reset_downtime_ms)
mod_timer(&state->keyreset_timer,
-@@ -812,8 +817,10 @@ static bool sysrq_handle_keypress(struct sysrq_state *sysrq,
+@@ -818,8 +823,10 @@ static bool sysrq_handle_keypress(struct sysrq_state *sysrq,
default:
if (sysrq->active && value && value != 2) {
@@ -284,7 +286,7 @@ index 3ffc1ce29023..8b766dbad6dd 100644
}
break;
}
-@@ -1097,7 +1104,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
+@@ -1102,7 +1109,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
if (get_user(c, buf))
return -EFAULT;
@@ -294,7 +296,7 @@ index 3ffc1ce29023..8b766dbad6dd 100644
return count;
diff --git a/include/linux/input.h b/include/linux/input.h
-index fb5e23c7ed98..9d2b45a21ade 100644
+index 7c7516eb7d76..38cd0ea72c37 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -42,6 +42,7 @@ struct input_value {
@@ -324,10 +326,10 @@ index fb5e23c7ed98..9d2b45a21ade 100644
* Verify that we are in sync with input_device_id mod_devicetable.h #defines
*/
diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
-index 387fa7d05c98..f7c52a9ea394 100644
+index 8c71874e8485..7de1f08b60a9 100644
--- a/include/linux/sysrq.h
+++ b/include/linux/sysrq.h
-@@ -28,6 +28,8 @@
+@@ -29,6 +29,8 @@
#define SYSRQ_ENABLE_BOOT 0x0080
#define SYSRQ_ENABLE_RTNICE 0x0100
@@ -336,7 +338,7 @@ index 387fa7d05c98..f7c52a9ea394 100644
struct sysrq_key_op {
void (*handler)(int);
char *help_msg;
-@@ -42,8 +44,12 @@ struct sysrq_key_op {
+@@ -43,8 +45,12 @@ struct sysrq_key_op {
* are available -- else NULL's).
*/
@@ -351,7 +353,7 @@ index 387fa7d05c98..f7c52a9ea394 100644
int unregister_sysrq_key(int key, struct sysrq_key_op *op);
struct sysrq_key_op *__sysrq_get_key_op(int key);
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
-index c8146d53ca67..b480cadf9272 100644
+index dbb0781a0533..aae9a0f44058 100644
--- a/kernel/debug/kdb/kdb_main.c
+++ b/kernel/debug/kdb/kdb_main.c
@@ -1970,7 +1970,7 @@ static int kdb_sr(int argc, const char **argv)
@@ -364,16 +366,18 @@ index c8146d53ca67..b480cadf9272 100644
return 0;
diff --git a/security/Kconfig b/security/Kconfig
-index 8e01fd59ae7e..453cc89c198a 100644
+index a9e6207d287e..461d5acc3616 100644
--- a/security/Kconfig
+++ b/security/Kconfig
-@@ -213,6 +213,14 @@ config LOCK_DOWN_KERNEL
+@@ -239,6 +239,16 @@ config LOCK_DOWN_KERNEL
turns off various features that might otherwise allow access to the
kernel image (eg. setting MSR registers).
+config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
+ bool "Allow the kernel lockdown to be lifted by SysRq"
-+ depends on LOCK_DOWN_KERNEL && MAGIC_SYSRQ
++ depends on LOCK_DOWN_KERNEL
++ depends on MAGIC_SYSRQ
++ depends on X86
+ help
+ Allow the lockdown on a kernel to be lifted, by pressing a SysRq key
+ combination on a wired keyboard.
@@ -447,44 +451,244 @@ index d8595c0e6673..2c6b00f0c229 100644
+
+#endif /* CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ */
--
-2.13.6
+2.14.3
+
+From 16376a9b88db8d79637fbda7576ced261050eb2a Mon Sep 17 00:00:00 2001
+From: Mimi Zohar <zohar@linux.vnet.ibm.com>
+Date: Tue, 27 Feb 2018 10:04:50 +0000
+Subject: [PATCH 03/31] ima: require secure_boot rules in lockdown mode
+
+Require the "secure_boot" rules, whether or not it is specified
+on the boot command line, for both the builtin and custom policies
+in secure boot lockdown mode.
+
+Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ security/integrity/ima/ima_policy.c | 39 +++++++++++++++++++++++++++----------
+ 1 file changed, 29 insertions(+), 10 deletions(-)
+
+diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
+index 915f5572c6ff..830ce0de5386 100644
+--- a/security/integrity/ima/ima_policy.c
++++ b/security/integrity/ima/ima_policy.c
+@@ -431,14 +431,21 @@ void ima_update_policy_flag(void)
+ */
+ void __init ima_init_policy(void)
+ {
+- int i, measure_entries, appraise_entries, secure_boot_entries;
++ int i;
++ int measure_entries = 0;
++ int appraise_entries = 0;
++ int secure_boot_entries = 0;
++ bool kernel_locked_down = __kernel_is_locked_down(NULL, false);
+
+ /* if !ima_policy set entries = 0 so we load NO default rules */
+- measure_entries = ima_policy ? ARRAY_SIZE(dont_measure_rules) : 0;
+- appraise_entries = ima_use_appraise_tcb ?
+- ARRAY_SIZE(default_appraise_rules) : 0;
+- secure_boot_entries = ima_use_secure_boot ?
+- ARRAY_SIZE(secure_boot_rules) : 0;
++ if (ima_policy)
++ measure_entries = ARRAY_SIZE(dont_measure_rules);
++
++ if (ima_use_appraise_tcb)
++ appraise_entries = ARRAY_SIZE(default_appraise_rules);
++
++ if (ima_use_secure_boot || kernel_locked_down)
++ secure_boot_entries = ARRAY_SIZE(secure_boot_rules);
+
+ for (i = 0; i < measure_entries; i++)
+ list_add_tail(&dont_measure_rules[i].list, &ima_default_rules);
+@@ -459,11 +466,23 @@ void __init ima_init_policy(void)
+
+ /*
+ * Insert the appraise rules requiring file signatures, prior to
+- * any other appraise rules.
++ * any other appraise rules. In secure boot lock-down mode, also
++ * require these appraise rules for custom policies.
+ */
+- for (i = 0; i < secure_boot_entries; i++)
+- list_add_tail(&secure_boot_rules[i].list,
+- &ima_default_rules);
++ for (i = 0; i < secure_boot_entries; i++) {
++ struct ima_rule_entry *entry;
++
++ /* Include for builtin policies */
++ list_add_tail(&secure_boot_rules[i].list, &ima_default_rules);
++
++ /* Include for custom policies */
++ if (kernel_locked_down) {
++ entry = kmemdup(&secure_boot_rules[i], sizeof(*entry),
++ GFP_KERNEL);
++ if (entry)
++ list_add_tail(&entry->list, &ima_policy_rules);
++ }
++ }
-From 4c389db9daee3a3a444339a7d789de1d9366f736 Mon Sep 17 00:00:00 2001
+ for (i = 0; i < appraise_entries; i++) {
+ list_add_tail(&default_appraise_rules[i].list,
+--
+2.14.3
+
+From 7c0d4949d8343a3b6ceca21f3d7710b20f283de0 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Wed, 24 May 2017 14:56:01 +0100
-Subject: [PATCH 03/26] Enforce module signatures if the kernel is locked down
+Date: Tue, 27 Feb 2018 10:04:50 +0000
+Subject: [PATCH 04/31] Enforce module signatures if the kernel is locked down
If the kernel is locked down, require that all modules have valid
-signatures that we can verify.
+signatures that we can verify or that IMA can validate the file.
+
+I have adjusted the errors generated:
+
+ (1) If there's no signature (ENODATA) or we can't check it (ENOPKG,
+ ENOKEY), then:
+
+ (a) If signatures are enforced then EKEYREJECTED is returned.
+
+ (b) If IMA will have validated the image, return 0 (okay).
+
+ (c) If there's no signature or we can't check it, but the kernel is
+ locked down then EPERM is returned (this is then consistent with
+ other lockdown cases).
+
+ (2) If the signature is unparseable (EBADMSG, EINVAL), the signature fails
+ the check (EKEYREJECTED) or a system error occurs (eg. ENOMEM), we
+ return the error we got.
+
+Note that the X.509 code doesn't check for key expiry as the RTC might not
+be valid or might not have been transferred to the kernel's clock yet.
Signed-off-by: David Howells <dhowells@redhat.com>
-Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
-Reviewed-by: James Morris <james.l.morris@oracle.com>
+Reviewed-by: Jiri Bohac <jbohac@suse.cz>
+cc: "Lee, Chun-Yi" <jlee@suse.com>
+cc: James Morris <james.l.morris@oracle.com>
---
- kernel/module.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
+ kernel/module.c | 56 +++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 43 insertions(+), 13 deletions(-)
diff --git a/kernel/module.c b/kernel/module.c
-index de66ec825992..3d9a3270c179 100644
+index ad2d420024f6..62419cf48ef6 100644
--- a/kernel/module.c
+++ b/kernel/module.c
-@@ -2781,7 +2781,8 @@ static int module_sig_check(struct load_info *info, int flags)
+@@ -64,6 +64,7 @@
+ #include <linux/bsearch.h>
+ #include <linux/dynamic_debug.h>
+ #include <linux/audit.h>
++#include <linux/ima.h>
+ #include <uapi/linux/module.h>
+ #include "module-internal.h"
+
+@@ -2765,10 +2766,12 @@ static inline void kmemleak_load_module(const struct module *mod,
+ #endif
+
+ #ifdef CONFIG_MODULE_SIG
+-static int module_sig_check(struct load_info *info, int flags)
++static int module_sig_check(struct load_info *info, int flags,
++ bool can_do_ima_check)
+ {
+- int err = -ENOKEY;
++ int err = -ENODATA;
+ const unsigned long markerlen = sizeof(MODULE_SIG_STRING) - 1;
++ const char *reason;
+ const void *mod = info->hdr;
+
+ /*
+@@ -2783,19 +2786,46 @@ static int module_sig_check(struct load_info *info, int flags)
+ err = mod_verify_sig(mod, &info->len);
}
- /* Not having a signature is only an error if we're strict. */
+- if (!err) {
++ switch (err) {
++ case 0:
+ info->sig_ok = true;
+ return 0;
+- }
+
+- /* Not having a signature is only an error if we're strict. */
- if (err == -ENOKEY && !sig_enforce)
-+ if (err == -ENOKEY && !sig_enforce &&
-+ !kernel_is_locked_down("Loading of unsigned modules"))
- err = 0;
+- err = 0;
++ /* We don't permit modules to be loaded into trusted kernels
++ * without a valid signature on them, but if we're not
++ * enforcing, certain errors are non-fatal.
++ */
++ case -ENODATA:
++ reason = "Loading of unsigned module";
++ goto decide;
++ case -ENOPKG:
++ reason = "Loading of module with unsupported crypto";
++ goto decide;
++ case -ENOKEY:
++ reason = "Loading of module with unavailable key";
++ decide:
++ if (sig_enforce) {
++ pr_notice("%s is rejected\n", reason);
++ return -EKEYREJECTED;
++ }
+
+- return err;
++ if (can_do_ima_check && is_ima_appraise_enabled())
++ return 0;
++ if (kernel_is_locked_down(reason))
++ return -EPERM;
++ return 0;
++
++ /* All other errors are fatal, including nomem, unparseable
++ * signatures and signature check failures - even if signatures
++ * aren't required.
++ */
++ default:
++ return err;
++ }
+ }
+ #else /* !CONFIG_MODULE_SIG */
+-static int module_sig_check(struct load_info *info, int flags)
++static int module_sig_check(struct load_info *info, int flags,
++ bool can_do_ima_check)
+ {
+ return 0;
+ }
+@@ -3655,13 +3685,13 @@ static int unknown_module_param_cb(char *param, char *val, const char *modname,
+ /* Allocate and load the module: note that size of section 0 is always
+ zero, and we rely on this for optional sections. */
+ static int load_module(struct load_info *info, const char __user *uargs,
+- int flags)
++ int flags, bool can_do_ima_check)
+ {
+ struct module *mod;
+ long err;
+ char *after_dashes;
+
+- err = module_sig_check(info, flags);
++ err = module_sig_check(info, flags, can_do_ima_check);
+ if (err)
+ goto free_copy;
+
+@@ -3850,7 +3880,7 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
+ if (err)
+ return err;
+
+- return load_module(&info, uargs, 0);
++ return load_module(&info, uargs, 0, false);
+ }
+
+ SYSCALL_DEFINE3(finit_module, int, fd, const char __user *, uargs, int, flags)
+@@ -3877,7 +3907,7 @@ SYSCALL_DEFINE3(finit_module, int, fd, const char __user *, uargs, int, flags)
+ info.hdr = hdr;
+ info.len = size;
+
+- return load_module(&info, uargs, flags);
++ return load_module(&info, uargs, flags, true);
+ }
- return err;
+ static inline int within(unsigned long addr, void *start, unsigned long size)
--
-2.13.6
+2.14.3
-From 59312c44aa46939a14b3fbfeb510f94b4a73c8a1 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <matthew.garrett@nebula.com>
-Date: Wed, 24 May 2017 14:56:02 +0100
-Subject: [PATCH 04/26] Restrict /dev/{mem,kmem,port} when the kernel is locked
+From 11b23b45b895133b0c4660622fe2cd8cea373324 Mon Sep 17 00:00:00 2001
+From: Matthew Garrett <mjg59@srcf.ucam.org>
+Date: Tue, 27 Feb 2018 10:04:51 +0000
+Subject: [PATCH 05/31] Restrict /dev/{mem,kmem,port} when the kernel is locked
down
Allowing users to read and write to core kernel memory makes it possible
@@ -497,7 +701,7 @@ been locked down to prevent this.
Also disallow /dev/port from being opened to prevent raw ioport access and
thus DMA from being used to accomplish the same thing.
-Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
---
@@ -505,10 +709,10 @@ Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
1 file changed, 2 insertions(+)
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
-index 593a8818aca9..0ce5ac0a5c6b 100644
+index 052011bcf100..c024e7b2bbcb 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
-@@ -762,6 +762,8 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig)
+@@ -784,6 +784,8 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig)
static int open_port(struct inode *inode, struct file *filp)
{
@@ -518,21 +722,22 @@ index 593a8818aca9..0ce5ac0a5c6b 100644
}
--
-2.13.6
+2.14.3
-From 6304f16efd61e66701f4b331e95da3cafb5f5f76 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <matthew.garrett@nebula.com>
-Date: Wed, 24 May 2017 14:56:02 +0100
-Subject: [PATCH 05/26] kexec: Disable at runtime if the kernel is locked down
+From ccaf57b0a1afb62c1278e3fee69634a710b60a44 Mon Sep 17 00:00:00 2001
+From: Matthew Garrett <mjg59@srcf.ucam.org>
+Date: Tue, 27 Feb 2018 10:04:51 +0000
+Subject: [PATCH 06/31] kexec_load: Disable at runtime if the kernel is locked
+ down
-kexec permits the loading and execution of arbitrary code in ring 0, which
-is something that lock-down is meant to prevent. It makes sense to disable
-kexec in this situation.
+The kexec_load() syscall permits the loading and execution of arbitrary
+code in ring 0, which is something that lock-down is meant to prevent. It
+makes sense to disable kexec_load() in this situation.
-This does not affect kexec_file_load() which can check for a signature on the
-image to be booted.
+This does not affect kexec_file_load() syscall which can check for a
+signature on the image to be booted.
-Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Dave Young <dyoung@redhat.com>
Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
@@ -546,27 +751,27 @@ diff --git a/kernel/kexec.c b/kernel/kexec.c
index e62ec4dc6620..7dadfed9b676 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
-@@ -202,6 +202,13 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments,
+@@ -201,6 +201,13 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments,
+ if (!capable(CAP_SYS_BOOT) || kexec_load_disabled)
return -EPERM;
- /*
++ /*
+ * kexec can be used to circumvent module loading restrictions, so
+ * prevent loading in that case
+ */
+ if (kernel_is_locked_down("kexec of unsigned images"))
+ return -EPERM;
+
-+ /*
+ /*
* Verify we have a legal set of flags
* This leaves us room for future extensions.
- */
--
-2.13.6
+2.14.3
-From cd00079900870855cea3573253a95c331ccab523 Mon Sep 17 00:00:00 2001
+From b96ff1fd9e94772fde7b58fd69969d1a1c87eb6d Mon Sep 17 00:00:00 2001
From: Dave Young <dyoung@redhat.com>
-Date: Wed, 24 May 2017 14:56:02 +0100
-Subject: [PATCH 06/26] Copy secure_boot flag in boot params across kexec
+Date: Tue, 27 Feb 2018 10:04:51 +0000
+Subject: [PATCH 07/31] Copy secure_boot flag in boot params across kexec
reboot
Kexec reboot in case secure boot being enabled does not keep the secure
@@ -601,54 +806,286 @@ index fb095ba0c02f..7d0fac5bcbbe 100644
ei->efi_systab = current_ei->efi_systab;
ei->efi_systab_hi = current_ei->efi_systab_hi;
--
-2.13.6
+2.14.3
+
+From 092494dea28896108dfb654cebf9f7e3666fc514 Mon Sep 17 00:00:00 2001
+From: Jiri Bohac <jbohac@suse.cz>
+Date: Tue, 27 Feb 2018 10:04:51 +0000
+Subject: [PATCH 08/31] kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and
+ KEXEC_SIG_FORCE
+
+This is a preparatory patch for kexec_file_load() lockdown. A locked down
+kernel needs to prevent unsigned kernel images from being loaded with
+kexec_file_load(). Currently, the only way to force the signature
+verification is compiling with KEXEC_VERIFY_SIG. This prevents loading
+usigned images even when the kernel is not locked down at runtime.
+
+This patch splits KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE.
+Analogous to the MODULE_SIG and MODULE_SIG_FORCE for modules, KEXEC_SIG
+turns on the signature verification but allows unsigned images to be
+loaded. KEXEC_SIG_FORCE disallows images without a valid signature.
+
+[Modified by David Howells such that:
+
+ (1) verify_pefile_signature() differentiates between no-signature and
+ sig-didn't-match in its returned errors.
+
+ (2) kexec fails with EKEYREJECTED and logs an appropriate message if
+ signature checking is enforced and an signature is not found, uses
+ unsupported crypto or has no matching key.
-From de2ac5da82fc55156134820ba32095710b935ad5 Mon Sep 17 00:00:00 2001
-From: Chun-Yi Lee <joeyli.kernel@gmail.com>
-Date: Wed, 24 May 2017 14:56:03 +0100
-Subject: [PATCH 07/26] kexec_file: Disable at runtime if the kernel is locked
+ (3) kexec fails with EKEYREJECTED if there is a signature for which we
+ have a key, but signature doesn't match - even if in non-forcing mode.
+
+ (4) kexec fails with EBADMSG or some other error if there is a signature
+ which cannot be parsed - even if in non-forcing mode.
+
+ (5) kexec fails with ELIBBAD if the PE file cannot be parsed to extract
+ the signature - even if in non-forcing mode.
+
+]
+
+Signed-off-by: Jiri Bohac <jbohac@suse.cz>
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: Jiri Bohac <jbohac@suse.cz>
+cc: Matthew Garrett <mjg59@srcf.ucam.org>
+cc: Chun-Yi Lee <jlee@suse.com>
+cc: kexec@lists.infradead.org
+---
+ arch/x86/Kconfig | 20 ++++++++++----
+ arch/x86/kernel/machine_kexec_64.c | 2 +-
+ crypto/asymmetric_keys/verify_pefile.c | 4 ++-
+ include/linux/kexec.h | 4 +--
+ kernel/kexec_file.c | 48 +++++++++++++++++++++++++++++-----
+ 5 files changed, 62 insertions(+), 16 deletions(-)
+
+diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
+index eb7f43f23521..b2c5eb5a8333 100644
+--- a/arch/x86/Kconfig
++++ b/arch/x86/Kconfig
+@@ -2020,20 +2020,30 @@ config KEXEC_FILE
+ for kernel and initramfs as opposed to list of segments as
+ accepted by previous system call.
+
+-config KEXEC_VERIFY_SIG
++config KEXEC_SIG
+ bool "Verify kernel signature during kexec_file_load() syscall"
+ depends on KEXEC_FILE
+ ---help---
+- This option makes kernel signature verification mandatory for
+- the kexec_file_load() syscall.
+
+- In addition to that option, you need to enable signature
++ This option makes the kexec_file_load() syscall check for a valid
++ signature of the kernel image. The image can still be loaded without
++ a valid signature unless you also enable KEXEC_SIG_FORCE, though if
++ there's a signature that we can check, then it must be valid.
++
++ In addition to this option, you need to enable signature
+ verification for the corresponding kernel image type being
+ loaded in order for this to work.
+
++config KEXEC_SIG_FORCE
++ bool "Require a valid signature in kexec_file_load() syscall"
++ depends on KEXEC_SIG
++ ---help---
++ This option makes kernel signature verification mandatory for
++ the kexec_file_load() syscall.
++
+ config KEXEC_BZIMAGE_VERIFY_SIG
+ bool "Enable bzImage signature verification support"
+- depends on KEXEC_VERIFY_SIG
++ depends on KEXEC_SIG
+ depends on SIGNED_PE_FILE_VERIFICATION
+ select SYSTEM_TRUSTED_KEYRING
+ ---help---
+diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
+index 3b7427aa7d85..b0870d47d520 100644
+--- a/arch/x86/kernel/machine_kexec_64.c
++++ b/arch/x86/kernel/machine_kexec_64.c
+@@ -406,7 +406,7 @@ int arch_kimage_file_post_load_cleanup(struct kimage *image)
+ return image->fops->cleanup(image->image_loader_data);
+ }
+
+-#ifdef CONFIG_KEXEC_VERIFY_SIG
++#ifdef CONFIG_KEXEC_SIG
+ int arch_kexec_kernel_verify_sig(struct kimage *image, void *kernel,
+ unsigned long kernel_len)
+ {
+diff --git a/crypto/asymmetric_keys/verify_pefile.c b/crypto/asymmetric_keys/verify_pefile.c
+index d178650fd524..4473cea1e877 100644
+--- a/crypto/asymmetric_keys/verify_pefile.c
++++ b/crypto/asymmetric_keys/verify_pefile.c
+@@ -100,7 +100,7 @@ static int pefile_parse_binary(const void *pebuf, unsigned int pelen,
+
+ if (!ddir->certs.virtual_address || !ddir->certs.size) {
+ pr_debug("Unsigned PE binary\n");
+- return -EKEYREJECTED;
++ return -ENODATA;
+ }
+
+ chkaddr(ctx->header_size, ddir->certs.virtual_address,
+@@ -408,6 +408,8 @@ static int pefile_digest_pe(const void *pebuf, unsigned int pelen,
+ * (*) 0 if at least one signature chain intersects with the keys in the trust
+ * keyring, or:
+ *
++ * (*) -ENODATA if there is no signature present.
++ *
+ * (*) -ENOPKG if a suitable crypto module couldn't be found for a check on a
+ * chain.
+ *
+diff --git a/include/linux/kexec.h b/include/linux/kexec.h
+index f16f6ceb3875..19652372f3ee 100644
+--- a/include/linux/kexec.h
++++ b/include/linux/kexec.h
+@@ -121,7 +121,7 @@ typedef void *(kexec_load_t)(struct kimage *image, char *kernel_buf,
+ unsigned long cmdline_len);
+ typedef int (kexec_cleanup_t)(void *loader_data);
+
+-#ifdef CONFIG_KEXEC_VERIFY_SIG
++#ifdef CONFIG_KEXEC_SIG
+ typedef int (kexec_verify_sig_t)(const char *kernel_buf,
+ unsigned long kernel_len);
+ #endif
+@@ -130,7 +130,7 @@ struct kexec_file_ops {
+ kexec_probe_t *probe;
+ kexec_load_t *load;
+ kexec_cleanup_t *cleanup;
+-#ifdef CONFIG_KEXEC_VERIFY_SIG
++#ifdef CONFIG_KEXEC_SIG
+ kexec_verify_sig_t *verify_sig;
+ #endif
+ };
+diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
+index e5bcd94c1efb..d5931e392050 100644
+--- a/kernel/kexec_file.c
++++ b/kernel/kexec_file.c
+@@ -45,7 +45,7 @@ int __weak arch_kimage_file_post_load_cleanup(struct kimage *image)
+ return -EINVAL;
+ }
+
+-#ifdef CONFIG_KEXEC_VERIFY_SIG
++#ifdef CONFIG_KEXEC_SIG
+ int __weak arch_kexec_kernel_verify_sig(struct kimage *image, void *buf,
+ unsigned long buf_len)
+ {
+@@ -116,7 +116,8 @@ kimage_file_prepare_segments(struct kimage *image, int kernel_fd, int initrd_fd,
+ const char __user *cmdline_ptr,
+ unsigned long cmdline_len, unsigned flags)
+ {
+- int ret = 0;
++ const char *reason;
++ int ret;
+ void *ldata;
+ loff_t size;
+
+@@ -135,15 +136,48 @@ kimage_file_prepare_segments(struct kimage *image, int kernel_fd, int initrd_fd,
+ if (ret)
+ goto out;
+
+-#ifdef CONFIG_KEXEC_VERIFY_SIG
++#ifdef CONFIG_KEXEC_SIG
+ ret = arch_kexec_kernel_verify_sig(image, image->kernel_buf,
+ image->kernel_buf_len);
+- if (ret) {
+- pr_debug("kernel signature verification failed.\n");
++#else
++ ret = -ENODATA;
++#endif
++
++ switch (ret) {
++ case 0:
++ break;
++
++ /* Certain verification errors are non-fatal if we're not
++ * checking errors, provided we aren't mandating that there
++ * must be a valid signature.
++ */
++ case -ENODATA:
++ reason = "kexec of unsigned image";
++ goto decide;
++ case -ENOPKG:
++ reason = "kexec of image with unsupported crypto";
++ goto decide;
++ case -ENOKEY:
++ reason = "kexec of image with unavailable key";
++ decide:
++ if (IS_ENABLED(CONFIG_KEXEC_SIG_FORCE)) {
++ pr_notice("%s rejected\n", reason);
++ ret = -EKEYREJECTED;
++ goto out;
++ }
++
++ ret = 0;
++ break;
++
++ /* All other errors are fatal, including nomem, unparseable
++ * signatures and signature check failures - even if signatures
++ * aren't required.
++ */
++ default:
++ pr_notice("kernel signature verification failed (%d).\n", ret);
+ goto out;
+ }
+- pr_debug("kernel signature verification successful.\n");
+-#endif
++
+ /* It is possible that there no initramfs is being loaded */
+ if (!(flags & KEXEC_FILE_NO_INITRAMFS)) {
+ ret = kernel_read_file_from_fd(initrd_fd, &image->initrd_buf,
+--
+2.14.3
+
+From 7124221c5cdb956365ed731b55e663db4075a131 Mon Sep 17 00:00:00 2001
+From: Jiri Bohac <jbohac@suse.cz>
+Date: Tue, 27 Feb 2018 10:04:52 +0000
+Subject: [PATCH 09/31] kexec_file: Restrict at runtime if the kernel is locked
down
-When KEXEC_VERIFY_SIG is not enabled, kernel should not load images
-through kexec_file systemcall if the kernel is locked down.
+When KEXEC_SIG is not enabled, kernel should not load images through
+kexec_file systemcall if the kernel is locked down unless IMA can be used
+to validate the image.
-This code was showed in Matthew's patch but not in git:
-https://lkml.org/lkml/2015/3/13/778
+[Modified by David Howells to fit with modifications to the previous patch
+ and to return -EPERM if the kernel is locked down for consistency with
+ other lockdowns]
-Cc: Matthew Garrett <mjg59@srcf.ucam.org>
-Signed-off-by: Chun-Yi Lee <jlee@suse.com>
+Signed-off-by: Jiri Bohac <jbohac@suse.cz>
Signed-off-by: David Howells <dhowells@redhat.com>
-Reviewed-by: James Morris <james.l.morris@oracle.com>
+Reviewed-by: Jiri Bohac <jbohac@suse.cz>
+Cc: Matthew Garrett <mjg59@srcf.ucam.org>
+cc: Chun-Yi Lee <jlee@suse.com>
cc: kexec@lists.infradead.org
---
- kernel/kexec_file.c | 7 +++++++
- 1 file changed, 7 insertions(+)
+ kernel/kexec_file.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
-index 9f48f4412297..ff6523f2dcc2 100644
+index d5931e392050..c47c4de604cd 100644
--- a/kernel/kexec_file.c
+++ b/kernel/kexec_file.c
-@@ -255,6 +255,13 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd,
- if (!capable(CAP_SYS_BOOT) || kexec_load_disabled)
- return -EPERM;
+@@ -167,6 +167,14 @@ kimage_file_prepare_segments(struct kimage *image, int kernel_fd, int initrd_fd,
+ }
-+ /* Don't permit images to be loaded into trusted kernels if we're not
-+ * going to verify the signature on them
-+ */
-+ if (!IS_ENABLED(CONFIG_KEXEC_VERIFY_SIG) &&
-+ kernel_is_locked_down("kexec of unsigned images"))
-+ return -EPERM;
+ ret = 0;
++ if (is_ima_appraise_enabled())
++ break;
+
- /* Make sure we have a legal set of flags */
- if (flags != (flags & KEXEC_FILE_FLAGS))
- return -EINVAL;
++ if (kernel_is_locked_down(reason)) {
++ ret = -EPERM;
++ goto out;
++ }
++
+ break;
+
+ /* All other errors are fatal, including nomem, unparseable
--
-2.13.6
+2.14.3
-From ba823f2b5125605fcbac150fe27e622fd224ea61 Mon Sep 17 00:00:00 2001
+From 70911b9a15ee62c6222e09099d23d94bdd132972 Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@fedoraproject.org>
-Date: Wed, 24 May 2017 14:56:03 +0100
-Subject: [PATCH 08/26] hibernate: Disable when the kernel is locked down
+Date: Tue, 27 Feb 2018 10:04:52 +0000
+Subject: [PATCH 10/31] hibernate: Disable when the kernel is locked down
There is currently no way to verify the resume image when returning
from hibernate. This might compromise the signed modules trust model,
@@ -677,12 +1114,12 @@ index a5c36e9c56a6..f2eafefeec50 100644
/**
--
-2.13.6
+2.14.3
-From 9e78666a6153d72c3e50160a30ead699ba508d8f Mon Sep 17 00:00:00 2001
+From b85febc7ab5ceede3c53b438b899dfba7741f366 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg59@srcf.ucam.org>
-Date: Wed, 24 May 2017 14:56:03 +0100
-Subject: [PATCH 09/26] uswsusp: Disable when the kernel is locked down
+Date: Tue, 27 Feb 2018 10:04:52 +0000
+Subject: [PATCH 11/31] uswsusp: Disable when the kernel is locked down
uswsusp allows a user process to dump and then restore kernel state, which
makes it possible to modify the running kernel. Disable this if the kernel
@@ -712,12 +1149,12 @@ index 22df9f7ff672..678ade9decfe 100644
if (!atomic_add_unless(&snapshot_device_available, -1, 0)) {
--
-2.13.6
+2.14.3
-From 334fa071b01ced7f48b2920208addfb1eab5d0fe Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <matthew.garrett@nebula.com>
-Date: Wed, 24 May 2017 14:56:03 +0100
-Subject: [PATCH 10/26] PCI: Lock down BAR access when the kernel is locked
+From 9e2700d1746e53da4de4d0fbee7ca4f8f06d6ff2 Mon Sep 17 00:00:00 2001
+From: Matthew Garrett <mjg59@srcf.ucam.org>
+Date: Tue, 27 Feb 2018 10:04:52 +0000
+Subject: [PATCH 12/31] PCI: Lock down BAR access when the kernel is locked
down
Any hardware that can potentially generate DMA has to be locked down in
@@ -726,7 +1163,7 @@ allowing them to circumvent disabled module loading or module signing.
Default to paranoid - in future we can potentially relax this for
sufficiently IOMMU-isolated devices.
-Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
@@ -738,10 +1175,10 @@ cc: linux-pci@vger.kernel.org
3 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
-index 1eecfa301f7f..e1a3b0e765c2 100644
+index eb6bee8724cc..6d2afc730ab7 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
-@@ -881,6 +881,9 @@ static ssize_t pci_write_config(struct file *filp, struct kobject *kobj,
+@@ -930,6 +930,9 @@ static ssize_t pci_write_config(struct file *filp, struct kobject *kobj,
loff_t init_off = off;
u8 *data = (u8 *) buf;
@@ -751,7 +1188,7 @@ index 1eecfa301f7f..e1a3b0e765c2 100644
if (off > dev->cfg_size)
return 0;
if (off + count > dev->cfg_size) {
-@@ -1175,6 +1178,9 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
+@@ -1224,6 +1227,9 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
enum pci_mmap_state mmap_type;
struct resource *res = &pdev->resource[bar];
@@ -761,7 +1198,7 @@ index 1eecfa301f7f..e1a3b0e765c2 100644
if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start))
return -EINVAL;
-@@ -1255,6 +1261,9 @@ static ssize_t pci_write_resource_io(struct file *filp, struct kobject *kobj,
+@@ -1299,6 +1305,9 @@ static ssize_t pci_write_resource_io(struct file *filp, struct kobject *kobj,
struct bin_attribute *attr, char *buf,
loff_t off, size_t count)
{
@@ -772,10 +1209,10 @@ index 1eecfa301f7f..e1a3b0e765c2 100644
}
diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
-index 098360d7ff81..a6c53d855daa 100644
+index 58a662e3c4a6..b30e53eb41df 100644
--- a/drivers/pci/proc.c
+++ b/drivers/pci/proc.c
-@@ -116,6 +116,9 @@ static ssize_t proc_bus_pci_write(struct file *file, const char __user *buf,
+@@ -117,6 +117,9 @@ static ssize_t proc_bus_pci_write(struct file *file, const char __user *buf,
int size = dev->cfg_size;
int cnt;
@@ -785,7 +1222,7 @@ index 098360d7ff81..a6c53d855daa 100644
if (pos >= size)
return 0;
if (nbytes >= size)
-@@ -195,6 +198,9 @@ static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd,
+@@ -196,6 +199,9 @@ static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd,
#endif /* HAVE_PCI_MMAP */
int ret = 0;
@@ -795,7 +1232,7 @@ index 098360d7ff81..a6c53d855daa 100644
switch (cmd) {
case PCIIOC_CONTROLLER:
ret = pci_domain_nr(dev->bus);
-@@ -236,7 +242,8 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma)
+@@ -237,7 +243,8 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma)
struct pci_filp_private *fpriv = file->private_data;
int i, ret, write_combine = 0, res_bit = IORESOURCE_MEM;
@@ -806,10 +1243,10 @@ index 098360d7ff81..a6c53d855daa 100644
if (fpriv->mmap_state == pci_mmap_io) {
diff --git a/drivers/pci/syscall.c b/drivers/pci/syscall.c
-index 9bf993e1f71e..afa01cc3ceec 100644
+index e725f99b5479..6cb3b22a3b94 100644
--- a/drivers/pci/syscall.c
+++ b/drivers/pci/syscall.c
-@@ -92,7 +92,8 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn,
+@@ -93,7 +93,8 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn,
u32 dword;
int err = 0;
@@ -818,14 +1255,14 @@ index 9bf993e1f71e..afa01cc3ceec 100644
+ kernel_is_locked_down("Direct PCI access"))
return -EPERM;
- dev = pci_get_bus_and_slot(bus, dfn);
+ dev = pci_get_domain_bus_and_slot(0, bus, dfn);
--
-2.13.6
+2.14.3
-From 7e608c45ac2ab6c8e125aaf3993b8257352ac631 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <matthew.garrett@nebula.com>
-Date: Wed, 24 May 2017 14:56:04 +0100
-Subject: [PATCH 11/26] x86: Lock down IO port access when the kernel is locked
+From d7a876a8a1616730c0bc44c47823483ec3b99c12 Mon Sep 17 00:00:00 2001
+From: Matthew Garrett <mjg59@srcf.ucam.org>
+Date: Tue, 27 Feb 2018 10:04:52 +0000
+Subject: [PATCH 13/31] x86: Lock down IO port access when the kernel is locked
down
IO port access would permit users to gain access to PCI configuration
@@ -836,7 +1273,7 @@ DMA, so lock it down by default.
This also implicitly locks down the KDADDIO, KDDELIO, KDENABIO and
KDDISABIO console ioctls.
-Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
@@ -846,10 +1283,10 @@ cc: x86@kernel.org
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
-index 9c3cf0944bce..2c0f058651c5 100644
+index 2f723301eb58..b3758cc23262 100644
--- a/arch/x86/kernel/ioport.c
+++ b/arch/x86/kernel/ioport.c
-@@ -30,7 +30,8 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
+@@ -31,7 +31,8 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
if ((from + num <= from) || (from + num > IO_BITMAP_BITS))
return -EINVAL;
@@ -859,7 +1296,7 @@ index 9c3cf0944bce..2c0f058651c5 100644
return -EPERM;
/*
-@@ -120,7 +121,8 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
+@@ -121,7 +122,8 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
return -EINVAL;
/* Trying to gain more privileges? */
if (level > old) {
@@ -870,12 +1307,12 @@ index 9c3cf0944bce..2c0f058651c5 100644
}
regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) |
--
-2.13.6
+2.14.3
-From 2644bf492568e3733bc841112c6e8628a6e01b8e Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <matthew.garrett@nebula.com>
-Date: Wed, 24 May 2017 14:56:04 +0100
-Subject: [PATCH 12/26] x86/msr: Restrict MSR access when the kernel is locked
+From 43e89781371daf295925ffa1f9074eb31b815491 Mon Sep 17 00:00:00 2001
+From: Matthew Garrett <mjg59@srcf.ucam.org>
+Date: Tue, 27 Feb 2018 10:04:53 +0000
+Subject: [PATCH 14/31] x86/msr: Restrict MSR access when the kernel is locked
down
Writing to MSRs should not be allowed if the kernel is locked down, since
@@ -885,7 +1322,7 @@ patch by Kees Cook.
MSR accesses are logged for the purposes of building up a whitelist as per
Alan Cox's suggestion.
-Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
@@ -924,77 +1361,19 @@ index ef688804f80d..dfb61d358196 100644
if (err)
break;
--
-2.13.6
-
-From e6850fffe186e252cc94e8747e589076e215ca1a Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <matthew.garrett@nebula.com>
-Date: Wed, 24 May 2017 14:56:04 +0100
-Subject: [PATCH 13/26] asus-wmi: Restrict debugfs interface when the kernel is
- locked down
-
-We have no way of validating what all of the Asus WMI methods do on a given
-machine - and there's a risk that some will allow hardware state to be
-manipulated in such a way that arbitrary code can be executed in the
-kernel, circumventing module loading restrictions. Prevent that if the
-kernel is locked down.
-
-Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
-cc: acpi4asus-user@lists.sourceforge.net
-cc: platform-driver-x86@vger.kernel.org
----
- drivers/platform/x86/asus-wmi.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
-index 48e1541dc8d4..ef5587469337 100644
---- a/drivers/platform/x86/asus-wmi.c
-+++ b/drivers/platform/x86/asus-wmi.c
-@@ -1905,6 +1905,9 @@ static int show_dsts(struct seq_file *m, void *data)
- int err;
- u32 retval = -1;
-
-+ if (kernel_is_locked_down("Asus WMI"))
-+ return -EPERM;
-+
- err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval);
-
- if (err < 0)
-@@ -1921,6 +1924,9 @@ static int show_devs(struct seq_file *m, void *data)
- int err;
- u32 retval = -1;
+2.14.3
-+ if (kernel_is_locked_down("Asus WMI"))
-+ return -EPERM;
-+
- err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param,
- &retval);
-
-@@ -1945,6 +1951,9 @@ static int show_call(struct seq_file *m, void *data)
- union acpi_object *obj;
- acpi_status status;
-
-+ if (kernel_is_locked_down("Asus WMI"))
-+ return -EPERM;
-+
- status = wmi_evaluate_method(ASUS_WMI_MGMT_GUID,
- 0, asus->debug.method_id,
- &input, &output);
---
-2.13.6
-
-From 6dda2a4dbc8bb80efaa55aba6d54382e986305c5 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <matthew.garrett@nebula.com>
-Date: Wed, 24 May 2017 14:56:04 +0100
-Subject: [PATCH 14/26] ACPI: Limit access to custom_method when the kernel is
+From 13b28d5eb338531f53ac27bce86c663c88ac4aca Mon Sep 17 00:00:00 2001
+From: Matthew Garrett <mjg59@srcf.ucam.org>
+Date: Tue, 27 Feb 2018 10:04:53 +0000
+Subject: [PATCH 15/31] ACPI: Limit access to custom_method when the kernel is
locked down
custom_method effectively allows arbitrary access to system memory, making
it possible for an attacker to circumvent restrictions on module loading.
Disable it if the kernel is locked down.
-Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
+Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: "Lee, Chun-Yi" <jlee@suse.com>
cc: linux-acpi@vger.kernel.org
@@ -1017,12 +1396,12 @@ index c68e72414a67..b33fba70ec51 100644
/* parse the table header to get the table length */
if (count <= sizeof(struct acpi_table_header))
--
-2.13.6
+2.14.3
-From 64caa33410f85663cf0a65e4c09b8b8d28a219ad Mon Sep 17 00:00:00 2001
+From dadc30f71155a6f2df81d791cf1314ecdb36cb84 Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@redhat.com>
-Date: Wed, 24 May 2017 14:56:05 +0100
-Subject: [PATCH 15/26] acpi: Ignore acpi_rsdp kernel param when the kernel has
+Date: Tue, 27 Feb 2018 10:04:53 +0000
+Subject: [PATCH 16/31] acpi: Ignore acpi_rsdp kernel param when the kernel has
been locked down
This option allows userspace to pass the RSDP address to the kernel, which
@@ -1039,7 +1418,7 @@ cc: linux-acpi@vger.kernel.org
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
-index db78d353bab1..36c6527c1b0a 100644
+index 3bb46cb24a99..3d3b59b97f31 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -192,7 +192,7 @@ acpi_physical_address __init acpi_os_get_root_pointer(void)
@@ -1052,12 +1431,12 @@ index db78d353bab1..36c6527c1b0a 100644
#endif
--
-2.13.6
+2.14.3
-From d87ce06969f2d4da0c864e8a4cf6c820d950cd1f Mon Sep 17 00:00:00 2001
+From 9185a89b926a57d52ac9edf588ad533d53af4985 Mon Sep 17 00:00:00 2001
From: Linn Crosetto <linn@hpe.com>
-Date: Wed, 24 May 2017 14:56:05 +0100
-Subject: [PATCH 16/26] acpi: Disable ACPI table override if the kernel is
+Date: Tue, 27 Feb 2018 10:04:53 +0000
+Subject: [PATCH 17/31] acpi: Disable ACPI table override if the kernel is
locked down
From the kernel documentation (initrd_table_override.txt):
@@ -1079,10 +1458,10 @@ cc: linux-acpi@vger.kernel.org
1 file changed, 5 insertions(+)
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
-index 80ce2a7d224b..5cc13c42daf9 100644
+index 7bcb66ccccf3..5ea02c9ca47f 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
-@@ -526,6 +526,11 @@ void __init acpi_table_upgrade(void)
+@@ -527,6 +527,11 @@ void __init acpi_table_upgrade(void)
if (table_nr == 0)
return;
@@ -1095,12 +1474,12 @@ index 80ce2a7d224b..5cc13c42daf9 100644
memblock_find_in_range(0, ACPI_TABLE_UPGRADE_MAX_PHYS,
all_tables_size, PAGE_SIZE);
--
-2.13.6
+2.14.3
-From 547e2ca9cbfd420a15dd70e1c1c24b7040f88058 Mon Sep 17 00:00:00 2001
+From aa434c790a2581df5dc7973f2dc3a6a3234bd6b7 Mon Sep 17 00:00:00 2001
From: Linn Crosetto <linn@hpe.com>
-Date: Wed, 24 May 2017 14:56:05 +0100
-Subject: [PATCH 17/26] acpi: Disable APEI error injection if the kernel is
+Date: Tue, 27 Feb 2018 10:04:53 +0000
+Subject: [PATCH 18/31] acpi: Disable APEI error injection if the kernel is
locked down
ACPI provides an error injection mechanism, EINJ, for debugging and testing
@@ -1141,12 +1520,12 @@ index b38737c83a24..6d71e1e97b20 100644
if (flags && (flags &
~(SETWA_FLAGS_APICID|SETWA_FLAGS_MEM|SETWA_FLAGS_PCIE_SBDF)))
--
-2.13.6
+2.14.3
-From abbf8de44feab5f50b316d6491926d8d9029cb49 Mon Sep 17 00:00:00 2001
+From 5b76b160badb6e53f68a65f0374df700894559bb Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Wed, 24 May 2017 14:56:06 +0100
-Subject: [PATCH 18/26] scsi: Lock down the eata driver
+Date: Tue, 27 Feb 2018 10:04:53 +0000
+Subject: [PATCH 19/31] scsi: Lock down the eata driver
When the kernel is running in secure boot mode, we lock down the kernel to
prevent userspace from modifying the running kernel image. Whilst this
@@ -1186,12 +1565,12 @@ index 6501c330d8c8..72fceaa8f3da 100644
#if defined(MODULE)
/* io_port could have been modified when loading as a module */
--
-2.13.6
+2.14.3
-From 116b02dff661d497c10099862b8b86e6cd2262ae Mon Sep 17 00:00:00 2001
+From ebdc673699d9732a1cccfc2f80e84402aa7ec0c9 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Wed, 24 May 2017 14:56:06 +0100
-Subject: [PATCH 19/26] Prohibit PCMCIA CIS storage when the kernel is locked
+Date: Tue, 27 Feb 2018 10:04:54 +0000
+Subject: [PATCH 20/31] Prohibit PCMCIA CIS storage when the kernel is locked
down
Prohibit replacement of the PCMCIA Card Information Structure when the
@@ -1205,7 +1584,7 @@ cc: linux-pcmcia@lists.infradead.org
1 file changed, 3 insertions(+)
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
-index 55ef7d1fd8da..b7a0e42eeb25 100644
+index 102646fedb56..e46c948d7246 100644
--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -1578,6 +1578,9 @@ static ssize_t pccard_store_cis(struct file *filp, struct kobject *kobj,
@@ -1219,12 +1598,12 @@ index 55ef7d1fd8da..b7a0e42eeb25 100644
if (off)
--
-2.13.6
+2.14.3
-From f3dc03aa368cfde123bc1b60bda287091c9d43b4 Mon Sep 17 00:00:00 2001
+From 0f058a0aecf0aea70fc42905250bb2a0f195157a Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Wed, 24 May 2017 14:56:06 +0100
-Subject: [PATCH 20/26] Lock down TIOCSSERIAL
+Date: Tue, 27 Feb 2018 10:04:54 +0000
+Subject: [PATCH 21/31] Lock down TIOCSSERIAL
Lock down TIOCSSERIAL as that can be used to change the ioport and irq
settings on a serial port. This only appears to be an issue for the serial
@@ -1239,10 +1618,10 @@ cc: Jiri Slaby <jslaby@suse.com>
1 file changed, 6 insertions(+)
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
-index 3a14cccbd7ff..41f0922ad842 100644
+index c8dde56b532b..7370f3d169fe 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
-@@ -842,6 +842,12 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port,
+@@ -829,6 +829,12 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port,
new_flags = (__force upf_t)new_info->flags;
old_custom_divisor = uport->custom_divisor;
@@ -1256,12 +1635,12 @@ index 3a14cccbd7ff..41f0922ad842 100644
retval = -EPERM;
if (change_irq || change_port ||
--
-2.13.6
+2.14.3
-From 9d266defc89a73c6dcca3b67ad70b95ac99b8e53 Mon Sep 17 00:00:00 2001
+From e5a9ff56a0c1762ba2b3d3ea46b03cf2ba9d2c60 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Wed, 24 May 2017 14:56:06 +0100
-Subject: [PATCH 21/26] Lock down module params that specify hardware
+Date: Tue, 27 Feb 2018 10:04:54 +0000
+Subject: [PATCH 22/31] Lock down module params that specify hardware
parameters (eg. ioport)
Provided an annotation for module parameters that specify hardware
@@ -1275,7 +1654,7 @@ Signed-off-by: David Howells <dhowells@redhat.com>
1 file changed, 21 insertions(+), 5 deletions(-)
diff --git a/kernel/params.c b/kernel/params.c
-index 60b2d8101355..422979adb60a 100644
+index cc9108c2a1fd..2c08c4aa376b 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -108,13 +108,19 @@ bool parameq(const char *a, const char *b)
@@ -1312,7 +1691,7 @@ index 60b2d8101355..422979adb60a 100644
kernel_param_unlock(params[i].mod);
return err;
}
-@@ -556,6 +564,12 @@ static ssize_t param_attr_show(struct module_attribute *mattr,
+@@ -553,6 +561,12 @@ static ssize_t param_attr_show(struct module_attribute *mattr,
return count;
}
@@ -1325,7 +1704,7 @@ index 60b2d8101355..422979adb60a 100644
/* sysfs always hands a nul-terminated string in buf. We rely on that. */
static ssize_t param_attr_store(struct module_attribute *mattr,
struct module_kobject *mk,
-@@ -568,8 +582,10 @@ static ssize_t param_attr_store(struct module_attribute *mattr,
+@@ -565,8 +579,10 @@ static ssize_t param_attr_store(struct module_attribute *mattr,
return -EPERM;
kernel_param_lock(mk->mod);
@@ -1339,12 +1718,12 @@ index 60b2d8101355..422979adb60a 100644
if (!err)
return len;
--
-2.13.6
+2.14.3
-From 17a8caed6507846edd0a7016cdcd97fe46cca263 Mon Sep 17 00:00:00 2001
+From 6733115594290091a00d19060893f2396e51832c Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Wed, 24 May 2017 14:56:07 +0100
-Subject: [PATCH 22/26] x86/mmiotrace: Lock down the testmmiotrace module
+Date: Tue, 27 Feb 2018 10:04:54 +0000
+Subject: [PATCH 23/31] x86/mmiotrace: Lock down the testmmiotrace module
The testmmiotrace module shouldn't be permitted when the kernel is locked
down as it can be used to arbitrarily read and write MMIO space.
@@ -1375,98 +1754,310 @@ index f6ae6830b341..bbaad357f5d7 100644
pr_err("you have to use the module argument mmio_address.\n");
pr_err("DO NOT LOAD THIS MODULE UNLESS YOU REALLY KNOW WHAT YOU ARE DOING!\n");
--
-2.13.6
+2.14.3
+
+From 69a17e04714182d314a7a7425f584ed3a54e065e Mon Sep 17 00:00:00 2001
+From: David Howells <dhowells@redhat.com>
+Date: Tue, 27 Feb 2018 10:04:54 +0000
+Subject: [PATCH 24/31] Lock down /proc/kcore
+
+Disallow access to /proc/kcore when the kernel is locked down to prevent
+access to cryptographic data.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+Reviewed-by: James Morris <james.l.morris@oracle.com>
+---
+ fs/proc/kcore.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
+index d1e82761de81..cdebdee81719 100644
+--- a/fs/proc/kcore.c
++++ b/fs/proc/kcore.c
+@@ -546,6 +546,8 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
+
+ static int open_kcore(struct inode *inode, struct file *filp)
+ {
++ if (kernel_is_locked_down("/proc/kcore"))
++ return -EPERM;
+ if (!capable(CAP_SYS_RAWIO))
+ return -EPERM;
+
+--
+2.14.3
+
+From aa4a17515ea163cf0020d4a8c41302fb159b56ce Mon Sep 17 00:00:00 2001
+From: David Howells <dhowells@redhat.com>
+Date: Tue, 27 Feb 2018 10:04:54 +0000
+Subject: [PATCH 25/31] Lock down kprobes
+
+Disallow the creation of kprobes when the kernel is locked down by
+preventing their registration. This prevents kprobes from being used to
+access kernel memory, either to make modifications or to steal crypto data.
+
+Reported-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ kernel/kprobes.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/kernel/kprobes.c b/kernel/kprobes.c
+index 102160ff5c66..4f5757732553 100644
+--- a/kernel/kprobes.c
++++ b/kernel/kprobes.c
+@@ -1561,6 +1561,9 @@ int register_kprobe(struct kprobe *p)
+ struct module *probed_mod;
+ kprobe_opcode_t *addr;
+
++ if (kernel_is_locked_down("Use of kprobes"))
++ return -EPERM;
++
+ /* Adjust probe address from symbol */
+ addr = kprobe_addr(p);
+ if (IS_ERR(addr))
+--
+2.14.3
+
+From 78bb0059c3b8304a8d124b55feebc780fb3e0500 Mon Sep 17 00:00:00 2001
+From: David Howells <dhowells@redhat.com>
+Date: Tue, 27 Feb 2018 10:04:55 +0000
+Subject: [PATCH 26/31] bpf: Restrict kernel image access functions when the
+ kernel is locked down
+
+There are some bpf functions can be used to read kernel memory:
+bpf_probe_read, bpf_probe_write_user and bpf_trace_printk. These allow
+private keys in kernel memory (e.g. the hibernation image signing key) to
+be read by an eBPF program and kernel memory to be altered without
+restriction.
+
+Completely prohibit the use of BPF when the kernel is locked down.
+
+Suggested-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
+Signed-off-by: David Howells <dhowells@redhat.com>
+cc: netdev@vger.kernel.org
+cc: Chun-Yi Lee <jlee@suse.com>
+cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
+---
+ kernel/bpf/syscall.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
+index e24aa3241387..3ea87a004771 100644
+--- a/kernel/bpf/syscall.c
++++ b/kernel/bpf/syscall.c
+@@ -1848,6 +1848,9 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, siz
+ if (sysctl_unprivileged_bpf_disabled && !capable(CAP_SYS_ADMIN))
+ return -EPERM;
+
++ if (kernel_is_locked_down("BPF"))
++ return -EPERM;
++
+ err = check_uarg_tail_zero(uattr, sizeof(attr), size);
+ if (err)
+ return err;
+--
+2.14.3
+
+From 9d6d6000dffb44cb2269b26eafeb371345bd2297 Mon Sep 17 00:00:00 2001
+From: David Howells <dhowells@redhat.com>
+Date: Tue, 27 Feb 2018 10:04:55 +0000
+Subject: [PATCH 27/31] Lock down perf
+
+Disallow the use of certain perf facilities that might allow userspace to
+access kernel data.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ kernel/events/core.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/kernel/events/core.c b/kernel/events/core.c
+index 96db9ae5d5af..1fba021d61d4 100644
+--- a/kernel/events/core.c
++++ b/kernel/events/core.c
+@@ -9924,6 +9924,11 @@ SYSCALL_DEFINE5(perf_event_open,
+ return -EINVAL;
+ }
+
++ if ((attr.sample_type & PERF_SAMPLE_REGS_INTR) &&
++ kernel_is_locked_down("PERF_SAMPLE_REGS_INTR"))
++ /* REGS_INTR can leak data, lockdown must prevent this */
++ return -EPERM;
++
+ /* Only privileged users can get physical addresses */
+ if ((attr.sample_type & PERF_SAMPLE_PHYS_ADDR) &&
+ perf_paranoid_kernel() && !capable(CAP_SYS_ADMIN))
+--
+2.14.3
-From 79ae67bf5f7eda526abaa80b01b19e08c1ed3558 Mon Sep 17 00:00:00 2001
+From 3fc32260515837f4c87cb923513973f1e77ccef9 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Wed, 18 Oct 2017 17:28:02 +0100
-Subject: [PATCH 23/26] debugfs: Disallow use of debugfs files when the kernel
- is locked down
+Date: Tue, 27 Feb 2018 10:04:55 +0000
+Subject: [PATCH 28/31] debugfs: Restrict debugfs when the kernel is locked
+ down
+
+Disallow opening of debugfs files that might be used to muck around when
+the kernel is locked down as various drivers give raw access to hardware
+through debugfs. Given the effort of auditing all 2000 or so files and
+manually fixing each one as necessary, I've chosen to apply a heuristic
+instead. The following changes are made:
+
+ (1) chmod and chown are disallowed on debugfs objects (though the root dir
+ can be modified by mount and remount, but I'm not worried about that).
-Disallow opening of debugfs files when the kernel is locked down as various
-drivers give raw access to hardware through debugfs.
+ (2) When the kernel is locked down, only files with the following criteria
+ are permitted to be opened:
-Accesses to tracefs should use /sys/kernel/tracing/ rather than
-/sys/kernel/debug/tracing/. Possibly a symlink should be emplaced.
+ - The file must have mode 00444
+ - The file must not have ioctl methods
+ - The file must not have mmap
-Normal device interaction should be done through configfs or a miscdev, not
-debugfs.
+ (3) When the kernel is locked down, files may only be opened for reading.
+
+Normal device interaction should be done through configfs, sysfs or a
+miscdev, not debugfs.
Note that this makes it unnecessary to specifically lock down show_dsts(),
show_devs() and show_call() in the asus-wmi driver.
+I would actually prefer to lock down all files by default and have the
+the files unlocked by the creator. This is tricky to manage correctly,
+though, as there are 19 creation functions and ~1600 call sites (some of
+them in loops scanning tables).
+
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Andy Shevchenko <andy.shevchenko@gmail.com>
cc: acpi4asus-user@lists.sourceforge.net
cc: platform-driver-x86@vger.kernel.org
-cc: Matthew Garrett <matthew.garrett@nebula.com>
+cc: Matthew Garrett <mjg59@srcf.ucam.org>
cc: Thomas Gleixner <tglx@linutronix.de>
---
- fs/debugfs/file.c | 6 ++++++
+ fs/debugfs/file.c | 28 ++++++++++++++++++++++++++++
+ fs/debugfs/inode.c | 30 ++++++++++++++++++++++++++++--
+ 2 files changed, 56 insertions(+), 2 deletions(-)
- 1 file changed, 6 insertions(+)
diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
-index cd12e6576b48..097be2a59c51 100644
+index 1f99678ff5d3..51cb894c21f2 100644
--- a/fs/debugfs/file.c
+++ b/fs/debugfs/file.c
-@@ -142,6 +142,10 @@ static int open_proxy_open(struct inode *inode, struct file *filp)
- const struct file_operations *real_fops = NULL;
- int r;
-
-+ if (kernel_is_locked_down("debugfs"))
-+ return -EPERM;
+@@ -136,6 +136,25 @@ void debugfs_file_put(struct dentry *dentry)
+ }
+ EXPORT_SYMBOL_GPL(debugfs_file_put);
+
++/*
++ * Only permit access to world-readable files when the kernel is locked down.
++ * We also need to exclude any file that has ways to write or alter it as root
++ * can bypass the permissions check.
++ */
++static bool debugfs_is_locked_down(struct inode *inode,
++ struct file *filp,
++ const struct file_operations *real_fops)
++{
++ if ((inode->i_mode & 07777) == 0444 &&
++ !(filp->f_mode & FMODE_WRITE) &&
++ !real_fops->unlocked_ioctl &&
++ !real_fops->compat_ioctl &&
++ !real_fops->mmap)
++ return false;
+
++ return kernel_is_locked_down("debugfs");
++}
+
- r = debugfs_file_get(dentry);
- if (r)
+ static int open_proxy_open(struct inode *inode, struct file *filp)
+ {
+ struct dentry *dentry = F_DENTRY(filp);
+@@ -147,6 +166,11 @@ static int open_proxy_open(struct inode *inode, struct file *filp)
return r == -EIO ? -ENOENT : r;
-@@ -267,6 +271,9 @@ static int full_proxy_open(struct inode *inode, struct file *filp)
- struct file_operations *proxy_fops = NULL;
- int r;
-
-+ if (kernel_is_locked_down("debugfs"))
-+ return -EPERM;
+
+ real_fops = debugfs_real_fops(filp);
++
++ r = -EPERM;
++ if (debugfs_is_locked_down(inode, filp, real_fops))
++ goto out;
+
- r = debugfs_file_get(dentry);
- if (r)
+ real_fops = fops_get(real_fops);
+ if (!real_fops) {
+ /* Huh? Module did not clean up after itself at exit? */
+@@ -272,6 +296,10 @@ static int full_proxy_open(struct inode *inode, struct file *filp)
return r == -EIO ? -ENOENT : r;
---
-2.13.6
-
-From 87ed5c02f0946c855730420cbf1daa6a2dfc54d7 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Thu, 19 Oct 2017 13:58:19 +0100
-Subject: [PATCH 24/26] Lock down /proc/kcore
-
-Disallow access to /proc/kcore when the kernel is locked down to prevent
-access to cryptographic data.
-
-Signed-off-by: David Howells <dhowells@redhat.com>
-Reviewed-by: James Morris <james.l.morris@oracle.com>
----
- fs/proc/kcore.c | 2 ++
- 1 file changed, 2 insertions(+)
-diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
-index 45629f4b5402..176cf749e650 100644
---- a/fs/proc/kcore.c
-+++ b/fs/proc/kcore.c
-@@ -549,6 +549,8 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
+ real_fops = debugfs_real_fops(filp);
++ r = -EPERM;
++ if (debugfs_is_locked_down(inode, filp, real_fops))
++ goto out;
++
+ real_fops = fops_get(real_fops);
+ if (!real_fops) {
+ /* Huh? Module did not cleanup after itself at exit? */
+diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
+index 63a998c3f252..ce261e1765ff 100644
+--- a/fs/debugfs/inode.c
++++ b/fs/debugfs/inode.c
+@@ -32,6 +32,31 @@ static struct vfsmount *debugfs_mount;
+ static int debugfs_mount_count;
+ static bool debugfs_registered;
- static int open_kcore(struct inode *inode, struct file *filp)
- {
-+ if (kernel_is_locked_down("/proc/kcore"))
++/*
++ * Don't allow access attributes to be changed whilst the kernel is locked down
++ * so that we can use the file mode as part of a heuristic to determine whether
++ * to lock down individual files.
++ */
++static int debugfs_setattr(struct dentry *dentry, struct iattr *ia)
++{
++ if ((ia->ia_valid & (ATTR_MODE | ATTR_UID | ATTR_GID)) &&
++ kernel_is_locked_down("debugfs"))
+ return -EPERM;
- if (!capable(CAP_SYS_RAWIO))
- return -EPERM;
-
++ return simple_setattr(dentry, ia);
++}
++
++static const struct inode_operations debugfs_file_inode_operations = {
++ .setattr = debugfs_setattr,
++};
++static const struct inode_operations debugfs_dir_inode_operations = {
++ .lookup = simple_lookup,
++ .setattr = debugfs_setattr,
++};
++static const struct inode_operations debugfs_symlink_inode_operations = {
++ .get_link = simple_get_link,
++ .setattr = debugfs_setattr,
++};
++
+ static struct inode *debugfs_get_inode(struct super_block *sb)
+ {
+ struct inode *inode = new_inode(sb);
+@@ -359,6 +384,7 @@ static struct dentry *__debugfs_create_file(const char *name, umode_t mode,
+ inode->i_mode = mode;
+ inode->i_private = data;
+
++ inode->i_op = &debugfs_file_inode_operations;
+ inode->i_fop = proxy_fops;
+ dentry->d_fsdata = (void *)((unsigned long)real_fops |
+ DEBUGFS_FSDATA_IS_REAL_FOPS_BIT);
+@@ -516,7 +542,7 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
+ return failed_creating(dentry);
+
+ inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
+- inode->i_op = &simple_dir_inode_operations;
++ inode->i_op = &debugfs_dir_inode_operations;
+ inode->i_fop = &simple_dir_operations;
+
+ /* directory inodes start off with i_nlink == 2 (for "." entry) */
+@@ -611,7 +637,7 @@ struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent,
+ return failed_creating(dentry);
+ }
+ inode->i_mode = S_IFLNK | S_IRWXUGO;
+- inode->i_op = &simple_symlink_inode_operations;
++ inode->i_op = &debugfs_symlink_inode_operations;
+ inode->i_link = link;
+ d_instantiate(dentry, inode);
+ return end_creating(dentry);
--
-2.13.6
+2.14.3
-From 2bce9ca3a24e0b35dcf665e6ba082f0a796c6aad Mon Sep 17 00:00:00 2001
+From 42b2c81c12a8e8139fc7252cf91151c37b5a0966 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Thu, 19 Oct 2017 14:18:53 +0100
-Subject: [PATCH 25/26] efi: Add an EFI_SECURE_BOOT flag to indicate secure
+Date: Tue, 27 Feb 2018 10:04:55 +0000
+Subject: [PATCH 29/31] efi: Add an EFI_SECURE_BOOT flag to indicate secure
boot mode
UEFI machines can be booted in Secure Boot mode. Add an EFI_SECURE_BOOT
@@ -1489,10 +2080,10 @@ cc: linux-efi@vger.kernel.org
create mode 100644 drivers/firmware/efi/secureboot.c
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 0957dd73d127..7c2162f9e769 100644
+index 1ae67e982af7..a7c240f00d78 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
-@@ -1197,19 +1197,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1150,19 +1150,7 @@ void __init setup_arch(char **cmdline_p)
/* Allocate bigger log buffer */
setup_log_buf(1);
@@ -1514,10 +2105,10 @@ index 0957dd73d127..7c2162f9e769 100644
reserve_initrd();
diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile
-index 0329d319d89a..883f9f7eefc6 100644
+index cb805374f4bc..da2b3e37b9f0 100644
--- a/drivers/firmware/efi/Makefile
+++ b/drivers/firmware/efi/Makefile
-@@ -23,6 +23,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_mem.o
+@@ -24,6 +24,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_mem.o
obj-$(CONFIG_EFI_BOOTLOADER_CONTROL) += efibc.o
obj-$(CONFIG_EFI_TEST) += test/
obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o
@@ -1570,10 +2161,10 @@ index 000000000000..9070055de0a1
+ }
+}
diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 66f4a4e79f4b..7c7a7e33e4d1 100644
+index f5083aa72eae..79da76d14ca3 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
-@@ -1103,6 +1103,14 @@ extern int __init efi_setup_pcdp_console(char *);
+@@ -1142,6 +1142,14 @@ extern int __init efi_setup_pcdp_console(char *);
#define EFI_DBG 8 /* Print additional debug info at runtime */
#define EFI_NX_PE_DATA 9 /* Can runtime data regions be mapped non-executable? */
#define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */
@@ -1588,7 +2179,7 @@ index 66f4a4e79f4b..7c7a7e33e4d1 100644
#ifdef CONFIG_EFI
/*
-@@ -1115,6 +1123,7 @@ static inline bool efi_enabled(int feature)
+@@ -1154,6 +1162,7 @@ static inline bool efi_enabled(int feature)
extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused);
extern bool efi_is_table_address(unsigned long phys_addr);
@@ -1596,7 +2187,7 @@ index 66f4a4e79f4b..7c7a7e33e4d1 100644
#else
static inline bool efi_enabled(int feature)
{
-@@ -1133,6 +1142,7 @@ static inline bool efi_is_table_address(unsigned long phys_addr)
+@@ -1172,6 +1181,7 @@ static inline bool efi_is_table_address(unsigned long phys_addr)
{
return false;
}
@@ -1604,7 +2195,7 @@ index 66f4a4e79f4b..7c7a7e33e4d1 100644
#endif
extern int efi_status_to_err(efi_status_t status);
-@@ -1518,12 +1528,6 @@ efi_status_t efi_setup_gop(efi_system_table_t *sys_table_arg,
+@@ -1557,12 +1567,6 @@ efi_status_t efi_setup_gop(efi_system_table_t *sys_table_arg,
bool efi_runtime_disabled(void);
extern void efi_call_virt_check_flags(unsigned long flags, const char *call);
@@ -1618,12 +2209,12 @@ index 66f4a4e79f4b..7c7a7e33e4d1 100644
#ifdef CONFIG_RESET_ATTACK_MITIGATION
--
-2.13.6
+2.14.3
-From 163d6a313399a4d50c5c7e42e3dd642ca8d495d7 Mon Sep 17 00:00:00 2001
+From d78bf678059f83e22bec8ada1a448e22b9b90203 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Thu, 19 Oct 2017 14:05:02 +0100
-Subject: [PATCH 26/26] efi: Lock down the kernel if booted in secure boot mode
+Date: Tue, 27 Feb 2018 10:04:55 +0000
+Subject: [PATCH 30/31] efi: Lock down the kernel if booted in secure boot mode
UEFI Secure Boot provides a mechanism for ensuring that the firmware will
only load signed bootloaders and kernels. Certain use cases may also
@@ -1636,12 +2227,13 @@ Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
cc: linux-efi@vger.kernel.org
---
arch/x86/kernel/setup.c | 6 ++++--
+ fs/debugfs/inode.c | 2 +-
security/Kconfig | 14 ++++++++++++++
security/lock_down.c | 1 +
- 3 files changed, 19 insertions(+), 2 deletions(-)
+ 4 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 7c2162f9e769..4e38327efb2e 100644
+index a7c240f00d78..1277d1857c5c 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -64,6 +64,7 @@
@@ -1652,7 +2244,7 @@ index 7c2162f9e769..4e38327efb2e 100644
#include <linux/percpu.h>
#include <linux/crash_dump.h>
-@@ -1039,6 +1040,9 @@ void __init setup_arch(char **cmdline_p)
+@@ -997,6 +998,9 @@ void __init setup_arch(char **cmdline_p)
if (efi_enabled(EFI_BOOT))
efi_init();
@@ -1662,7 +2254,7 @@ index 7c2162f9e769..4e38327efb2e 100644
dmi_scan_machine();
dmi_memdev_walk();
dmi_set_dump_stack_arch_desc();
-@@ -1197,8 +1201,6 @@ void __init setup_arch(char **cmdline_p)
+@@ -1150,8 +1154,6 @@ void __init setup_arch(char **cmdline_p)
/* Allocate bigger log buffer */
setup_log_buf(1);
@@ -1671,11 +2263,24 @@ index 7c2162f9e769..4e38327efb2e 100644
reserve_initrd();
acpi_table_upgrade();
+diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
+index ce261e1765ff..7aff55b309a6 100644
+--- a/fs/debugfs/inode.c
++++ b/fs/debugfs/inode.c
+@@ -40,7 +40,7 @@ static bool debugfs_registered;
+ static int debugfs_setattr(struct dentry *dentry, struct iattr *ia)
+ {
+ if ((ia->ia_valid & (ATTR_MODE | ATTR_UID | ATTR_GID)) &&
+- kernel_is_locked_down("debugfs"))
++ kernel_is_locked_down("changing perms in debugfs"))
+ return -EPERM;
+ return simple_setattr(dentry, ia);
+ }
diff --git a/security/Kconfig b/security/Kconfig
-index 453cc89c198a..974731ac4f85 100644
+index 461d5acc3616..13fdada1ffc2 100644
--- a/security/Kconfig
+++ b/security/Kconfig
-@@ -220,6 +220,20 @@ config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
+@@ -248,6 +248,20 @@ config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
Allow the lockdown on a kernel to be lifted, by pressing a SysRq key
combination on a wired keyboard.
@@ -1709,5 +2314,41 @@ index 2c6b00f0c229..527f7e51dc8d 100644
#ifdef CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
--
-2.13.6
+2.14.3
+
+From 89bcd5b02f125335f74289c5f4ae03e9b893ab7f Mon Sep 17 00:00:00 2001
+From: David Howells <dhowells@redhat.com>
+Date: Wed, 28 Feb 2018 14:43:03 +0000
+Subject: [PATCH 31/31] lockdown: Print current->comm in restriction messages
+
+Print the content of current->comm in messages generated by lockdown to
+indicate a restriction that was hit. This makes it a bit easier to find
+out what caused the message.
+
+The message now patterned something like:
+
+ Lockdown: <comm>: <what> is restricted; see man kernel_lockdown.7
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ security/lock_down.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/security/lock_down.c b/security/lock_down.c
+index 527f7e51dc8d..4745278e0f3b 100644
+--- a/security/lock_down.c
++++ b/security/lock_down.c
+@@ -60,8 +60,8 @@ void __init init_lockdown(void)
+ bool __kernel_is_locked_down(const char *what, bool first)
+ {
+ if (what && first && kernel_locked_down)
+- pr_notice("Lockdown: %s is restricted; see man kernel_lockdown.7\n",
+- what);
++ pr_notice("Lockdown: %s: %s is restricted; see man kernel_lockdown.7\n",
++ current->comm, what);
+ return kernel_locked_down;
+ }
+ EXPORT_SYMBOL(__kernel_is_locked_down);
+--
+2.14.3
diff --git a/filter-aarch64.sh b/filter-aarch64.sh
index d45da673f..0bc756108 100644
--- a/filter-aarch64.sh
+++ b/filter-aarch64.sh
@@ -9,10 +9,10 @@
# modifications to the overrides below. If something should be removed across
# all arches, remove it in the default instead of per-arch.
-driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia platform power ssb staging tty uio uwb w1"
+driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick message mmc mtd mwave nfc ntb pcmcia power ssb staging tty uio uwb w1"
ethdrvs="3com adaptec arc alteon atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell micrel myricom neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti via wiznet xircom"
-drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel radeon rockchip tegra sun4i tinydrm vc4"
+drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel radeon rockchip tegra sun4i sun4i-drm-hdmi tinydrm vc4"
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr"
diff --git a/filter-armv7hl.sh b/filter-armv7hl.sh
index 254893398..f021c0609 100644
--- a/filter-armv7hl.sh
+++ b/filter-armv7hl.sh
@@ -9,10 +9,10 @@
# modifications to the overrides below. If something should be removed across
# all arches, remove it in the default instead of per-arch.
-driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn media memstick message mwave nfc ntb pcmcia platform ssb staging tty uio uwb w1"
+driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn media memstick message mwave nfc ntb pcmcia ssb staging tty uio uwb w1"
ethdrvs="3com adaptec alteon altera amd atheros broadcom cadence chelsio cisco dec dlink emulex icplus mellanox micrel myricom natsemi neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis sun tehuti via wiznet xircom"
-drmdrvs="amd armada bridge ast exynos etnaviv hisilicon i2c imx meson mgag200 msm omapdrm panel nouveau radeon rockchip sti sun4i tegra tilcdc tinydrm via vc4"
+drmdrvs="amd armada bridge ast exynos etnaviv hisilicon i2c imx meson mgag200 msm omapdrm panel nouveau radeon rockchip sti sun4i sun4i-drm-hdmi tegra tilcdc tinydrm via vc4"
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr bq27xxx_battery_hdq"
diff --git a/ipmi-fixes.patch b/ipmi-fixes.patch
index b1838efa0..04cfb8628 100644
--- a/ipmi-fixes.patch
+++ b/ipmi-fixes.patch
@@ -2372,89 +2372,3 @@ index 17f349459587..c2b23a9fdf3d 100644
--
2.14.3
-
-From 426fa6179dae677134dfb37b21d057819418515b Mon Sep 17 00:00:00 2001
-From: Corey Minyard <cminyard@mvista.com>
-Date: Wed, 28 Feb 2018 08:09:49 -0600
-Subject: [PATCH 9/9] ipmi: Fix some error cleanup issues
-
-device_remove_group() was called on any cleanup, even if the
-device attrs had not been added yet. That can occur in certain
-error scenarios, so add a flag to know if it has been added.
-
-Also make sure we remove the dev if we added it ourselves.
-
-Signed-off-by: Corey Minyard <cminyard@mvista.com>
-Cc: stable@vger.kernel.org # 4.15
----
- drivers/char/ipmi/ipmi_si_intf.c | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
-index 5141ccf0b958..2b9f434775d4 100644
---- a/drivers/char/ipmi/ipmi_si_intf.c
-+++ b/drivers/char/ipmi/ipmi_si_intf.c
-@@ -232,6 +232,9 @@ struct smi_info {
- /* Default driver model device. */
- struct platform_device *pdev;
-
-+ /* Have we added the device group to the device? */
-+ bool dev_group_added;
-+
- /* Counters and things for the proc filesystem. */
- atomic_t stats[SI_NUM_STATS];
-
-@@ -2007,8 +2010,8 @@ int ipmi_si_add_smi(struct si_sm_io *io)
- if (initialized) {
- rv = try_smi_init(new_smi);
- if (rv) {
-- mutex_unlock(&smi_infos_lock);
- cleanup_one_si(new_smi);
-+ mutex_unlock(&smi_infos_lock);
- return rv;
- }
- }
-@@ -2167,6 +2170,7 @@ static int try_smi_init(struct smi_info *new_smi)
- rv);
- goto out_err_stop_timer;
- }
-+ new_smi->dev_group_added = true;
-
- rv = ipmi_register_smi(&handlers,
- new_smi,
-@@ -2220,7 +2224,10 @@ static int try_smi_init(struct smi_info *new_smi)
- return 0;
-
- out_err_remove_attrs:
-- device_remove_group(new_smi->io.dev, &ipmi_si_dev_attr_group);
-+ if (new_smi->dev_group_added) {
-+ device_remove_group(new_smi->io.dev, &ipmi_si_dev_attr_group);
-+ new_smi->dev_group_added = false;
-+ }
- dev_set_drvdata(new_smi->io.dev, NULL);
-
- out_err_stop_timer:
-@@ -2268,6 +2275,7 @@ static int try_smi_init(struct smi_info *new_smi)
- else
- platform_device_put(new_smi->pdev);
- new_smi->pdev = NULL;
-+ new_smi->io.dev = NULL;
- }
-
- kfree(init_name);
-@@ -2364,8 +2372,10 @@ static void cleanup_one_si(struct smi_info *to_clean)
- }
- }
-
-- device_remove_group(to_clean->io.dev, &ipmi_si_dev_attr_group);
-- dev_set_drvdata(to_clean->io.dev, NULL);
-+ if (to_clean->dev_group_added)
-+ device_remove_group(to_clean->io.dev, &ipmi_si_dev_attr_group);
-+ if (to_clean->io.dev)
-+ dev_set_drvdata(to_clean->io.dev, NULL);
-
- list_del(&to_clean->link);
-
---
-2.14.3
-
diff --git a/iwlwifi-mvn.patch b/iwlwifi-mvn.patch
deleted file mode 100644
index 28ca08859..000000000
--- a/iwlwifi-mvn.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From f35978844e2eea1b2a6d4a2a6445d66528fc7a06 Mon Sep 17 00:00:00 2001
-From: Sara Sharon <sara.sharon@intel.com>
-Date: Tue, 29 Mar 2016 10:56:57 +0300
-Subject: [PATCH] iwlwifi: mvm: fix security bug in PN checking
-
-A previous patch allowed the same PN for packets originating from the
-same AMSDU by copying PN only for the last packet in the series.
-
-This however is bogus since we cannot assume the last frame will be
-received on the same queue, and if it is received on a different ueue
-we will end up not incrementing the PN and possibly let the next
-packet to have the same PN and pass through.
-
-Change the logic instead to driver explicitly indicate for the second
-sub frame and on to be allowed to have the same PN as the first
-subframe. Indicate it to mac80211 as well for the fallback queue.
-
-Fixes: f1ae02b186d9 ("iwlwifi: mvm: allow same PN for de-aggregated AMSDU")
-Signed-off-by: Sara Sharon <sara.sharon@intel.com>
-Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
----
- drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 39 ++++++++++++++-------------
- 1 file changed, 20 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
-index 71d6660c48e1..4a4ccfd11e5b 100644
---- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
-+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
-@@ -71,6 +71,7 @@ static inline int iwl_mvm_check_pn(struct iwl_mvm *mvm, struct sk_buff *skb,
- struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
- struct ieee80211_rx_status *stats = IEEE80211_SKB_RXCB(skb);
- struct iwl_mvm_key_pn *ptk_pn;
-+ int res;
- u8 tid, keyidx;
- u8 pn[IEEE80211_CCMP_PN_LEN];
- u8 *extiv;
-@@ -127,12 +128,13 @@ static inline int iwl_mvm_check_pn(struct iwl_mvm *mvm, struct sk_buff *skb,
- pn[4] = extiv[1];
- pn[5] = extiv[0];
-
-- if (memcmp(pn, ptk_pn->q[queue].pn[tid],
-- IEEE80211_CCMP_PN_LEN) <= 0)
-+ res = memcmp(pn, ptk_pn->q[queue].pn[tid], IEEE80211_CCMP_PN_LEN);
-+ if (res < 0)
-+ return -1;
-+ if (!res && !(stats->flag & RX_FLAG_ALLOW_SAME_PN))
- return -1;
-
-- if (!(stats->flag & RX_FLAG_AMSDU_MORE))
-- memcpy(ptk_pn->q[queue].pn[tid], pn, IEEE80211_CCMP_PN_LEN);
-+ memcpy(ptk_pn->q[queue].pn[tid], pn, IEEE80211_CCMP_PN_LEN);
- stats->flag |= RX_FLAG_PN_VALIDATED;
-
- return 0;
-@@ -314,28 +316,21 @@ static void iwl_mvm_rx_csum(struct ieee80211_sta *sta,
- }
-
- /*
-- * returns true if a packet outside BA session is a duplicate and
-- * should be dropped
-+ * returns true if a packet is a duplicate and should be dropped.
-+ * Updates AMSDU PN tracking info
- */
--static bool iwl_mvm_is_nonagg_dup(struct ieee80211_sta *sta, int queue,
-- struct ieee80211_rx_status *rx_status,
-- struct ieee80211_hdr *hdr,
-- struct iwl_rx_mpdu_desc *desc)
-+static bool iwl_mvm_is_dup(struct ieee80211_sta *sta, int queue,
-+ struct ieee80211_rx_status *rx_status,
-+ struct ieee80211_hdr *hdr,
-+ struct iwl_rx_mpdu_desc *desc)
- {
- struct iwl_mvm_sta *mvm_sta;
- struct iwl_mvm_rxq_dup_data *dup_data;
-- u8 baid, tid, sub_frame_idx;
-+ u8 tid, sub_frame_idx;
-
- if (WARN_ON(IS_ERR_OR_NULL(sta)))
- return false;
-
-- baid = (le32_to_cpu(desc->reorder_data) &
-- IWL_RX_MPDU_REORDER_BAID_MASK) >>
-- IWL_RX_MPDU_REORDER_BAID_SHIFT;
--
-- if (baid != IWL_RX_REORDER_DATA_INVALID_BAID)
-- return false;
--
- mvm_sta = iwl_mvm_sta_from_mac80211(sta);
- dup_data = &mvm_sta->dup_data[queue];
-
-@@ -365,6 +360,12 @@ static bool iwl_mvm_is_nonagg_dup(struct ieee80211_sta *sta, int queue,
- dup_data->last_sub_frame[tid] >= sub_frame_idx))
- return true;
-
-+ /* Allow same PN as the first subframe for following sub frames */
-+ if (dup_data->last_seq[tid] == hdr->seq_ctrl &&
-+ sub_frame_idx > dup_data->last_sub_frame[tid] &&
-+ desc->mac_flags2 & IWL_RX_MPDU_MFLG2_AMSDU)
-+ rx_status->flag |= RX_FLAG_ALLOW_SAME_PN;
-+
- dup_data->last_seq[tid] = hdr->seq_ctrl;
- dup_data->last_sub_frame[tid] = sub_frame_idx;
-
-@@ -981,7 +982,7 @@ void iwl_mvm_rx_mpdu_mq(struct iwl_mvm *mvm, struct napi_struct *napi,
- if (ieee80211_is_data(hdr->frame_control))
- iwl_mvm_rx_csum(sta, skb, desc);
-
-- if (iwl_mvm_is_nonagg_dup(sta, queue, rx_status, hdr, desc)) {
-+ if (iwl_mvm_is_dup(sta, queue, rx_status, hdr, desc)) {
- kfree_skb(skb);
- goto out;
- }
---
-2.15.1
-
diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config
index aeec3eb6d..4cc198221 100644
--- a/kernel-aarch64-debug.config
+++ b/kernel-aarch64-debug.config
@@ -67,6 +67,7 @@ CONFIG_ACPI_NUMA=y
CONFIG_ACPI_PCI_SLOT=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_WATCHDOG=y
@@ -242,7 +243,7 @@ CONFIG_ARCH_THUNDER=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_XGENE=y
# CONFIG_ARCH_ZX is not set
-# CONFIG_ARCH_ZYNQMP is not set
+CONFIG_ARCH_ZYNQMP=y
# CONFIG_ARCNET is not set
CONFIG_ARM64_4K_PAGES=y
CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y
@@ -258,10 +259,11 @@ CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_HW_AFDBM=y
CONFIG_ARM64_LSE_ATOMICS=y
CONFIG_ARM64_PAN=y
-# CONFIG_ARM64_PMEM is not set
+CONFIG_ARM64_PMEM=y
CONFIG_ARM64_PTDUMP_DEBUGFS=y
CONFIG_ARM64_PTDUMP=y
# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
+CONFIG_ARM64_RAS_EXTN=y
# CONFIG_ARM64_RELOC_TEST is not set
CONFIG_ARM64_SVE=y
CONFIG_ARM64_SW_TTBR0_PAN=y
@@ -275,7 +277,8 @@ CONFIG_ARMADA_THERMAL=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER=y
-# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
# CONFIG_ARM_BIG_LITTLE_CPUIDLE is not set
CONFIG_ARM_CCI400_PMU=y
CONFIG_ARM_CCI5xx_PMU=y
@@ -286,6 +289,7 @@ CONFIG_ARM_CPUIDLE=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
CONFIG_ARM_DMA_USE_IOMMU=y
+CONFIG_ARM_DSU_PMU=m
# CONFIG_ARM_DT_BL_CPUFREQ is not set
CONFIG_ARM_GIC_V2M=y
CONFIG_ARM_GIC_V3_ITS=y
@@ -297,11 +301,14 @@ CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
CONFIG_ARM_PSCI=y
+# CONFIG_ARM_PTDUMP_DEBUGFS is not set
# CONFIG_ARM_PTDUMP is not set
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SBSA_WATCHDOG=m
+CONFIG_ARM_SCPI_CPUFREQ=m
CONFIG_ARM_SCPI_POWER_DOMAIN=m
CONFIG_ARM_SCPI_PROTOCOL=m
+CONFIG_ARM_SDE_INTERFACE=y
CONFIG_ARM_SMMU_V3=y
CONFIG_ARM_SMMU=y
CONFIG_ARM_SP805_WATCHDOG=m
@@ -333,6 +340,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -346,6 +354,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -542,6 +551,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -597,6 +607,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -702,7 +713,7 @@ CONFIG_BUILD_DOCSRC=y
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_HISTOGRAM is not set
CONFIG_CACHEFILES=m
-# CONFIG_CADENCE_WATCHDOG is not set
+CONFIG_CADENCE_WATCHDOG=m
# CONFIG_CAIF is not set
CONFIG_CAN_8DEV_USB=m
CONFIG_CAN_BCM=m
@@ -766,6 +777,7 @@ CONFIG_CAVIUM_ERRATUM_23144=y
CONFIG_CAVIUM_ERRATUM_23154=y
CONFIG_CAVIUM_ERRATUM_27456=y
CONFIG_CAVIUM_ERRATUM_30115=y
+CONFIG_CAVIUM_PTP=m
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
# CONFIG_CC10001_ADC is not set
@@ -828,6 +840,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -853,6 +866,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1071,11 +1085,14 @@ CONFIG_CRYPTO_SHA256_ARM64=y
CONFIG_CRYPTO_SHA256_ARM=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA3_ARM64=m
CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TEST=m
@@ -1162,7 +1179,6 @@ CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_DEBUG_SET_MODULE_RONX=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_STACK_USAGE=y
@@ -1245,6 +1261,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1284,7 +1301,6 @@ CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_CEC=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI=m
-CONFIG_DRM_ETNAVIV_THERMAL=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HDLCD=m
@@ -1321,6 +1337,7 @@ CONFIG_DRM_MSM=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NXP_PTN3460=m
+CONFIG_DRM_PANEL_ILITEK_IL9322=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
@@ -1405,6 +1422,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1418,6 +1436,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1562,6 +1581,7 @@ CONFIG_F2FS_FS_SECURITY=y
CONFIG_F2FS_FS_XATTR=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_F2FS_STAT_FS=y
+CONFIG_FAIL_FUNCTION=y
# CONFIG_FAIL_FUTEX is not set
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_MAKE_REQUEST=y
@@ -1648,12 +1668,14 @@ CONFIG_FB_VIRTUAL=m
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_XGI is not set
+CONFIG_FB_XILINX=m
CONFIG_FB=y
CONFIG_FCOE_FNIC=m
CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_FIREWIRE is not set
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1703,6 +1725,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FTRACE=y
+# CONFIG_FTWDT010_WATCHDOG is not set
# CONFIG_FUJITSU_ES is not set
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
@@ -1785,9 +1808,11 @@ CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
CONFIG_GPIO_PL061=y
+CONFIG_GPIO_RASPBERRYPI_EXP=m
# CONFIG_GPIO_RDC321X is not set
# CONFIG_GPIO_SCH311X is not set
# CONFIG_GPIO_SX150X is not set
@@ -1808,6 +1833,7 @@ CONFIG_GPIO_XGENE=y
# CONFIG_GPIO_XILINX is not set
CONFIG_GPIO_XLP=m
# CONFIG_GPIO_XRA1403 is not set
+CONFIG_GPIO_ZYNQ=m
CONFIG_GREENASIA_FF=y
# CONFIG_GREYBUS is not set
# CONFIG_GS_FPGABOOT is not set
@@ -1817,6 +1843,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
@@ -1864,6 +1891,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -2016,7 +2044,7 @@ CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_MSM=m
CONFIG_HW_RANDOM_OMAP=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM_XGENE=m
CONFIG_HW_RANDOM=y
@@ -2041,7 +2069,7 @@ CONFIG_I2C_ARB_GPIO_CHALLENGE=m
# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
-# CONFIG_I2C_CADENCE is not set
+CONFIG_I2C_CADENCE=m
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_COMPAT=y
@@ -2058,6 +2086,7 @@ CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_EG20T is not set
# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
CONFIG_I2C_GPIO=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_HID=m
@@ -2144,6 +2173,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2331,6 +2361,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2463,7 +2494,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2730,6 +2760,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2762,6 +2793,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2795,11 +2827,11 @@ CONFIG_LIBNVDIMM=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2952,6 +2984,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -3000,6 +3033,7 @@ CONFIG_MFD_AXP20X=y
CONFIG_MFD_BD9571MWV=m
CONFIG_MFD_CORE=y
# CONFIG_MFD_CPCAP is not set
+CONFIG_MFD_CROS_EC_CHARDEV=m
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -3042,8 +3076,6 @@ CONFIG_MFD_QCOM_RPM=m
CONFIG_MFD_RK808=m
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -3095,6 +3127,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3124,6 +3158,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3147,6 +3182,7 @@ CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CAVIUM_THUNDERX=m
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_DW_EXYNOS is not set
CONFIG_MMC_DW_K3=m
@@ -3250,6 +3286,7 @@ CONFIG_MSM_MMCC_8974=m
CONFIG_MSM_MMCC_8996=m
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
@@ -3289,6 +3326,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_NAND_ECC_BCH is not set
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND is not set
+CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_OXNAS is not set
CONFIG_MTD_NAND_PXA3xx=m
@@ -3408,9 +3446,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3595,6 +3635,7 @@ CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_NET_VENDOR_CAVIUM=y
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_DEC is not set
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3628,6 +3669,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
CONFIG_NET_VENDOR_SNI=y
+CONFIG_NET_VENDOR_SOCIONEXT=y
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_NET_VENDOR_SUN is not set
@@ -3706,6 +3748,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3767,6 +3813,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -4008,6 +4055,7 @@ CONFIG_PCIEAER=y
CONFIG_PCIE_ARMADA_8K=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
CONFIG_PCIE_DW_HOST_ECAM=y
CONFIG_PCIE_DW_HOST=y
@@ -4022,6 +4070,7 @@ CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_QCOM=y
CONFIG_PCIE_ROCKCHIP=y
+CONFIG_PCIE_XILINX_NWL=y
# CONFIG_PCI_FTPCI100 is not set
CONFIG_PCI_HERMES=m
CONFIG_PCI_HISI=y
@@ -4084,7 +4133,7 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
CONFIG_PHY_QCOM_QMP=m
CONFIG_PHY_QCOM_QUSB2=m
-# CONFIG_PHY_QCOM_UFS is not set
+CONFIG_PHY_QCOM_UFS=m
CONFIG_PHY_QCOM_USB_HSIC=m
CONFIG_PHY_QCOM_USB_HS=m
CONFIG_PHY_ROCKCHIP_DP=m
@@ -4108,6 +4157,7 @@ CONFIG_PINCONF=y
CONFIG_PINCTRL_AMD=y
# CONFIG_PINCTRL_APQ8064 is not set
# CONFIG_PINCTRL_APQ8084 is not set
+CONFIG_PINCTRL_AXP209=m
# CONFIG_PINCTRL_BAYTRAIL is not set
# CONFIG_PINCTRL_BROXTON is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4122,6 +4172,7 @@ CONFIG_PINCTRL_MAX77620=m
# CONFIG_PINCTRL_MDM9615 is not set
# CONFIG_PINCTRL_MESON8B is not set
# CONFIG_PINCTRL_MESON8 is not set
+CONFIG_PINCTRL_MESON_AXG=y
# CONFIG_PINCTRL_MESON_GXBB is not set
# CONFIG_PINCTRL_MESON_GXL is not set
# CONFIG_PINCTRL_MSM8660 is not set
@@ -4129,6 +4180,7 @@ CONFIG_PINCTRL_MSM8916=y
# CONFIG_PINCTRL_MSM8960 is not set
# CONFIG_PINCTRL_MSM8994 is not set
CONFIG_PINCTRL_MSM8996=y
+CONFIG_PINCTRL_MSM8998=m
# CONFIG_PINCTRL_MSM8X74 is not set
CONFIG_PINCTRL_MSM=y
CONFIG_PINCTRL_MVEBU=y
@@ -4255,9 +4307,11 @@ CONFIG_PWRSEQ_SIMPLE=y
# CONFIG_QCA7000 is not set
# CONFIG_QCA7000_SPI is not set
# CONFIG_QCA7000_UART is not set
+CONFIG_QCOM_A53PLL=m
CONFIG_QCOM_ADSP_PIL=m
CONFIG_QCOM_APCS_IPC=m
CONFIG_QCOM_BAM_DMA=y
+CONFIG_QCOM_CLK_APCS_MSM8916=m
CONFIG_QCOM_CLK_RPM=m
CONFIG_QCOM_CLK_SMD_RPM=m
CONFIG_QCOM_COINCELL=m
@@ -4350,6 +4404,7 @@ CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4540,6 +4595,7 @@ CONFIG_RTC_DRV_ARMADA38X=m
CONFIG_RTC_DRV_BQ32K=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_CROS_EC=m
CONFIG_RTC_DRV_DS1286=m
# CONFIG_RTC_DRV_DS1302 is not set
CONFIG_RTC_DRV_DS1305=m
@@ -4621,7 +4677,7 @@ CONFIG_RTC_DRV_WM831X=m
CONFIG_RTC_DRV_WM8350=m
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_XGENE=m
-# CONFIG_RTC_DRV_ZYNQMP is not set
+CONFIG_RTC_DRV_ZYNQMP=m
# CONFIG_RTC_DS1685_PROC_REGS is not set
CONFIG_RTC_DS1685_SYSFS_REGS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
@@ -4658,6 +4714,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
# CONFIG_SAMSUNG_USBPHY is not set
@@ -4794,9 +4851,11 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_QCOM=m
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -4806,6 +4865,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4984,6 +5044,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -5082,6 +5143,7 @@ CONFIG_SH_ETH=m
# CONFIG_SIGMA is not set
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_PM_BUS=y
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -5094,6 +5156,8 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5318,6 +5382,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5330,6 +5395,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
CONFIG_SND_SOC_PCM512x_I2C=m
@@ -5360,6 +5427,7 @@ 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_TAS6424=m
CONFIG_SND_SOC_TEGRA20_AC97=m
CONFIG_SND_SOC_TEGRA20_DAS=m
CONFIG_SND_SOC_TEGRA20_I2S=m
@@ -5380,9 +5448,12 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5452,6 +5523,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -5464,7 +5538,7 @@ CONFIG_SPI_BCM2835=m
# CONFIG_SPI_BCM_QSPI is not set
CONFIG_SPI_BITBANG=m
# CONFIG_SPI_BUTTERFLY is not set
-# CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_CADENCE=m
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_DESIGNWARE=m
# CONFIG_SPI_DW_MID_DMA is not set
@@ -5499,8 +5573,9 @@ CONFIG_SPI_THUNDERX=m
# CONFIG_SPI_XILINX is not set
CONFIG_SPI_XLP=m
CONFIG_SPI=y
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
+CONFIG_SPI_ZYNQMP_GQSPI=m
CONFIG_SPMI_MSM_PMIC_ARB=y
+CONFIG_SPMI_PMIC_CLKDIV=m
CONFIG_SPMI=y
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
@@ -5547,7 +5622,11 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_STUB_CLK_HI3660=y
CONFIG_STUB_CLK_HI6220=y
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN4I_EMAC is not set
CONFIG_SUN4I_GPADC=m
CONFIG_SUN50I_A64_CCU=y
@@ -5657,7 +5736,7 @@ CONFIG_TEGRA20_APB_DMA=y
CONFIG_TEGRA210_ADMA=y
CONFIG_TEGRA_ACONNECT=m
CONFIG_TEGRA_AHB=y
-# CONFIG_TEGRA_BPMP_THERMAL is not set
+CONFIG_TEGRA_BPMP_THERMAL=m
CONFIG_TEGRA_BPMP=y
CONFIG_TEGRA_GMI=m
CONFIG_TEGRA_HOST1X_FIREWALL=y
@@ -5667,6 +5746,7 @@ CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_TEGRA_IVC=y
CONFIG_TEGRA_MC=y
CONFIG_TEGRA_SOCTHERM=m
+CONFIG_TEGRA_VDE=m
CONFIG_TEGRA_WATCHDOG=m
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
@@ -5730,11 +5810,12 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
+CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_MI0283QT=m
CONFIG_TINYDRM_MIPI_DBI=m
# CONFIG_TINYDRM_REPAPER is not set
# CONFIG_TINYDRM_ST7586 is not set
+CONFIG_TINYDRM_ST7735R=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5875,7 +5956,7 @@ CONFIG_UCSI=m
CONFIG_UDF_FS=m
# CONFIG_UEVENT_HELPER is not set
# CONFIG_UFS_DEBUG is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
CONFIG_UHID=m
CONFIG_UIO_AEC=m
@@ -5893,6 +5974,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -6119,7 +6201,7 @@ CONFIG_USB_OHCI_HCD_PLATFORM=m
# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG_FSM is not set
+CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
@@ -6257,6 +6339,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_MVEBU=m
CONFIG_USB_XHCI_PLATFORM=m
@@ -6417,6 +6500,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6557,8 +6641,9 @@ CONFIG_XGENE_PMU=y
CONFIG_XGENE_SLIMPRO_MBOX=m
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_XILINX_ZYNQMP_DMA is not set
+CONFIG_XILINX_ZYNQMP_DMA=m
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
CONFIG_XILLYBUS_PCIE=m
@@ -6582,6 +6667,7 @@ CONFIG_ZEROPLUS_FF=y
CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-aarch64.config b/kernel-aarch64.config
index 332e1066a..664b34775 100644
--- a/kernel-aarch64.config
+++ b/kernel-aarch64.config
@@ -67,6 +67,7 @@ CONFIG_ACPI_NUMA=y
CONFIG_ACPI_PCI_SLOT=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_WATCHDOG=y
@@ -242,7 +243,7 @@ CONFIG_ARCH_THUNDER=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_XGENE=y
# CONFIG_ARCH_ZX is not set
-# CONFIG_ARCH_ZYNQMP is not set
+CONFIG_ARCH_ZYNQMP=y
# CONFIG_ARCNET is not set
CONFIG_ARM64_4K_PAGES=y
CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y
@@ -258,10 +259,11 @@ CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_HW_AFDBM=y
CONFIG_ARM64_LSE_ATOMICS=y
CONFIG_ARM64_PAN=y
-# CONFIG_ARM64_PMEM is not set
+CONFIG_ARM64_PMEM=y
CONFIG_ARM64_PTDUMP_DEBUGFS=y
# CONFIG_ARM64_PTDUMP is not set
# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
+CONFIG_ARM64_RAS_EXTN=y
# CONFIG_ARM64_RELOC_TEST is not set
CONFIG_ARM64_SVE=y
CONFIG_ARM64_SW_TTBR0_PAN=y
@@ -275,7 +277,8 @@ CONFIG_ARMADA_THERMAL=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER=y
-# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
+CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
# CONFIG_ARM_BIG_LITTLE_CPUIDLE is not set
CONFIG_ARM_CCI400_PMU=y
CONFIG_ARM_CCI5xx_PMU=y
@@ -286,6 +289,7 @@ CONFIG_ARM_CPUIDLE=y
CONFIG_ARM_CRYPTO=y
CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
CONFIG_ARM_DMA_USE_IOMMU=y
+CONFIG_ARM_DSU_PMU=m
# CONFIG_ARM_DT_BL_CPUFREQ is not set
CONFIG_ARM_GIC_V2M=y
CONFIG_ARM_GIC_V3_ITS=y
@@ -297,11 +301,14 @@ CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
CONFIG_ARM_PSCI=y
+# CONFIG_ARM_PTDUMP_DEBUGFS is not set
# CONFIG_ARM_PTDUMP is not set
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SBSA_WATCHDOG=m
+CONFIG_ARM_SCPI_CPUFREQ=m
CONFIG_ARM_SCPI_POWER_DOMAIN=m
CONFIG_ARM_SCPI_PROTOCOL=m
+CONFIG_ARM_SDE_INTERFACE=y
CONFIG_ARM_SMMU_V3=y
CONFIG_ARM_SMMU=y
CONFIG_ARM_SP805_WATCHDOG=m
@@ -333,6 +340,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -346,6 +354,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -542,6 +551,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -597,6 +607,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -702,7 +713,7 @@ CONFIG_BUILD_DOCSRC=y
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_HISTOGRAM is not set
CONFIG_CACHEFILES=m
-# CONFIG_CADENCE_WATCHDOG is not set
+CONFIG_CADENCE_WATCHDOG=m
# CONFIG_CAIF is not set
CONFIG_CAN_8DEV_USB=m
CONFIG_CAN_BCM=m
@@ -766,6 +777,7 @@ CONFIG_CAVIUM_ERRATUM_23144=y
CONFIG_CAVIUM_ERRATUM_23154=y
CONFIG_CAVIUM_ERRATUM_27456=y
CONFIG_CAVIUM_ERRATUM_30115=y
+CONFIG_CAVIUM_PTP=m
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
# CONFIG_CC10001_ADC is not set
@@ -828,6 +840,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -853,6 +866,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1070,11 +1084,14 @@ CONFIG_CRYPTO_SHA256_ARM64=y
CONFIG_CRYPTO_SHA256_ARM=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
+CONFIG_CRYPTO_SHA3_ARM64=m
CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_SIMD=y
+CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TEST=m
@@ -1154,7 +1171,6 @@ CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_SG is not set
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
@@ -1235,6 +1251,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1274,7 +1291,6 @@ CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_CEC=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI=m
-CONFIG_DRM_ETNAVIV_THERMAL=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HDLCD=m
@@ -1311,6 +1327,7 @@ CONFIG_DRM_MSM=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NXP_PTN3460=m
+CONFIG_DRM_PANEL_ILITEK_IL9322=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
@@ -1395,6 +1412,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1408,6 +1426,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1631,12 +1650,14 @@ CONFIG_FB_VIRTUAL=m
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_VT8623 is not set
# CONFIG_FB_XGI is not set
+CONFIG_FB_XILINX=m
CONFIG_FB=y
CONFIG_FCOE_FNIC=m
CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_FIREWIRE is not set
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1686,6 +1707,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FTRACE=y
+# CONFIG_FTWDT010_WATCHDOG is not set
# CONFIG_FUJITSU_ES is not set
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
@@ -1768,9 +1790,11 @@ CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
CONFIG_GPIO_PL061=y
+CONFIG_GPIO_RASPBERRYPI_EXP=m
# CONFIG_GPIO_RDC321X is not set
# CONFIG_GPIO_SCH311X is not set
# CONFIG_GPIO_SX150X is not set
@@ -1791,6 +1815,7 @@ CONFIG_GPIO_XGENE=y
# CONFIG_GPIO_XILINX is not set
CONFIG_GPIO_XLP=m
# CONFIG_GPIO_XRA1403 is not set
+CONFIG_GPIO_ZYNQ=m
CONFIG_GREENASIA_FF=y
# CONFIG_GREYBUS is not set
# CONFIG_GS_FPGABOOT is not set
@@ -1800,6 +1825,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
@@ -1847,6 +1873,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1999,7 +2026,7 @@ CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_MSM=m
CONFIG_HW_RANDOM_OMAP=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM_XGENE=m
CONFIG_HW_RANDOM=y
@@ -2024,7 +2051,7 @@ CONFIG_I2C_ARB_GPIO_CHALLENGE=m
# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
-# CONFIG_I2C_CADENCE is not set
+CONFIG_I2C_CADENCE=m
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_COMPAT=y
@@ -2041,6 +2068,7 @@ CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_EG20T is not set
# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
CONFIG_I2C_GPIO=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_HID=m
@@ -2127,6 +2155,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2314,6 +2343,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2446,7 +2476,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2711,6 +2740,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2743,6 +2773,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2776,11 +2807,11 @@ CONFIG_LIBNVDIMM=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2932,6 +2963,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2980,6 +3012,7 @@ CONFIG_MFD_AXP20X=y
CONFIG_MFD_BD9571MWV=m
CONFIG_MFD_CORE=y
# CONFIG_MFD_CPCAP is not set
+CONFIG_MFD_CROS_EC_CHARDEV=m
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -3022,8 +3055,6 @@ CONFIG_MFD_QCOM_RPM=m
CONFIG_MFD_RK808=m
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -3075,6 +3106,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3104,6 +3137,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3127,6 +3161,7 @@ CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CAVIUM_THUNDERX=m
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_DW_EXYNOS is not set
CONFIG_MMC_DW_K3=m
@@ -3229,6 +3264,7 @@ CONFIG_MSM_MMCC_8974=m
CONFIG_MSM_MMCC_8996=m
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
@@ -3268,6 +3304,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_NAND_ECC_BCH is not set
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND is not set
+CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_OXNAS is not set
CONFIG_MTD_NAND_PXA3xx=m
@@ -3387,9 +3424,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3574,6 +3613,7 @@ CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_NET_VENDOR_CAVIUM=y
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_DEC is not set
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3607,6 +3647,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
CONFIG_NET_VENDOR_SNI=y
+CONFIG_NET_VENDOR_SOCIONEXT=y
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_NET_VENDOR_SUN is not set
@@ -3685,6 +3726,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3746,6 +3791,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3987,6 +4033,7 @@ CONFIG_PCIEAER=y
CONFIG_PCIE_ARMADA_8K=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
CONFIG_PCIE_DW_HOST_ECAM=y
CONFIG_PCIE_DW_HOST=y
@@ -4001,6 +4048,7 @@ CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_QCOM=y
CONFIG_PCIE_ROCKCHIP=y
+CONFIG_PCIE_XILINX_NWL=y
# CONFIG_PCI_FTPCI100 is not set
CONFIG_PCI_HERMES=m
CONFIG_PCI_HISI=y
@@ -4063,7 +4111,7 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
CONFIG_PHY_QCOM_QMP=m
CONFIG_PHY_QCOM_QUSB2=m
-# CONFIG_PHY_QCOM_UFS is not set
+CONFIG_PHY_QCOM_UFS=m
CONFIG_PHY_QCOM_USB_HSIC=m
CONFIG_PHY_QCOM_USB_HS=m
CONFIG_PHY_ROCKCHIP_DP=m
@@ -4087,6 +4135,7 @@ CONFIG_PINCONF=y
CONFIG_PINCTRL_AMD=y
# CONFIG_PINCTRL_APQ8064 is not set
# CONFIG_PINCTRL_APQ8084 is not set
+CONFIG_PINCTRL_AXP209=m
# CONFIG_PINCTRL_BAYTRAIL is not set
# CONFIG_PINCTRL_BROXTON is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4101,6 +4150,7 @@ CONFIG_PINCTRL_MAX77620=m
# CONFIG_PINCTRL_MDM9615 is not set
# CONFIG_PINCTRL_MESON8B is not set
# CONFIG_PINCTRL_MESON8 is not set
+CONFIG_PINCTRL_MESON_AXG=y
# CONFIG_PINCTRL_MESON_GXBB is not set
# CONFIG_PINCTRL_MESON_GXL is not set
# CONFIG_PINCTRL_MSM8660 is not set
@@ -4108,6 +4158,7 @@ CONFIG_PINCTRL_MSM8916=y
# CONFIG_PINCTRL_MSM8960 is not set
# CONFIG_PINCTRL_MSM8994 is not set
CONFIG_PINCTRL_MSM8996=y
+CONFIG_PINCTRL_MSM8998=m
# CONFIG_PINCTRL_MSM8X74 is not set
CONFIG_PINCTRL_MSM=y
CONFIG_PINCTRL_MVEBU=y
@@ -4233,9 +4284,11 @@ CONFIG_PWRSEQ_SIMPLE=y
# CONFIG_QCA7000 is not set
# CONFIG_QCA7000_SPI is not set
# CONFIG_QCA7000_UART is not set
+CONFIG_QCOM_A53PLL=m
CONFIG_QCOM_ADSP_PIL=m
CONFIG_QCOM_APCS_IPC=m
CONFIG_QCOM_BAM_DMA=y
+CONFIG_QCOM_CLK_APCS_MSM8916=m
CONFIG_QCOM_CLK_RPM=m
CONFIG_QCOM_CLK_SMD_RPM=m
CONFIG_QCOM_COINCELL=m
@@ -4328,6 +4381,7 @@ CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4518,6 +4572,7 @@ CONFIG_RTC_DRV_ARMADA38X=m
CONFIG_RTC_DRV_BQ32K=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_CROS_EC=m
CONFIG_RTC_DRV_DS1286=m
# CONFIG_RTC_DRV_DS1302 is not set
CONFIG_RTC_DRV_DS1305=m
@@ -4599,7 +4654,7 @@ CONFIG_RTC_DRV_WM831X=m
CONFIG_RTC_DRV_WM8350=m
CONFIG_RTC_DRV_X1205=m
CONFIG_RTC_DRV_XGENE=m
-# CONFIG_RTC_DRV_ZYNQMP is not set
+CONFIG_RTC_DRV_ZYNQMP=m
# CONFIG_RTC_DS1685_PROC_REGS is not set
CONFIG_RTC_DS1685_SYSFS_REGS=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
@@ -4636,6 +4691,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
# CONFIG_SAMSUNG_USBPHY is not set
@@ -4772,9 +4828,11 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_QCOM=m
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -4784,6 +4842,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4962,6 +5021,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -5060,6 +5120,7 @@ CONFIG_SH_ETH=m
# CONFIG_SIGMA is not set
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_PM_BUS=y
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -5072,6 +5133,8 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5295,6 +5358,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5307,6 +5371,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
CONFIG_SND_SOC_PCM512x_I2C=m
@@ -5337,6 +5403,7 @@ 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_TAS6424=m
CONFIG_SND_SOC_TEGRA20_AC97=m
CONFIG_SND_SOC_TEGRA20_DAS=m
CONFIG_SND_SOC_TEGRA20_I2S=m
@@ -5357,9 +5424,12 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5429,6 +5499,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -5441,7 +5514,7 @@ CONFIG_SPI_BCM2835=m
# CONFIG_SPI_BCM_QSPI is not set
CONFIG_SPI_BITBANG=m
# CONFIG_SPI_BUTTERFLY is not set
-# CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_CADENCE=m
# CONFIG_SPI_DEBUG is not set
CONFIG_SPI_DESIGNWARE=m
# CONFIG_SPI_DW_MID_DMA is not set
@@ -5476,8 +5549,9 @@ CONFIG_SPI_THUNDERX=m
# CONFIG_SPI_XILINX is not set
CONFIG_SPI_XLP=m
CONFIG_SPI=y
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
+CONFIG_SPI_ZYNQMP_GQSPI=m
CONFIG_SPMI_MSM_PMIC_ARB=y
+CONFIG_SPMI_PMIC_CLKDIV=m
CONFIG_SPMI=y
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
@@ -5524,7 +5598,11 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_STUB_CLK_HI3660=y
CONFIG_STUB_CLK_HI6220=y
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
# CONFIG_SUN4I_EMAC is not set
CONFIG_SUN4I_GPADC=m
CONFIG_SUN50I_A64_CCU=y
@@ -5634,7 +5712,7 @@ CONFIG_TEGRA20_APB_DMA=y
CONFIG_TEGRA210_ADMA=y
CONFIG_TEGRA_ACONNECT=m
CONFIG_TEGRA_AHB=y
-# CONFIG_TEGRA_BPMP_THERMAL is not set
+CONFIG_TEGRA_BPMP_THERMAL=m
CONFIG_TEGRA_BPMP=y
CONFIG_TEGRA_GMI=m
CONFIG_TEGRA_HOST1X_FIREWALL=y
@@ -5644,6 +5722,7 @@ CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_TEGRA_IVC=y
CONFIG_TEGRA_MC=y
CONFIG_TEGRA_SOCTHERM=m
+CONFIG_TEGRA_VDE=m
CONFIG_TEGRA_WATCHDOG=m
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
@@ -5707,11 +5786,12 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
+CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_MI0283QT=m
CONFIG_TINYDRM_MIPI_DBI=m
# CONFIG_TINYDRM_REPAPER is not set
# CONFIG_TINYDRM_ST7586 is not set
+CONFIG_TINYDRM_ST7735R=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5852,7 +5932,7 @@ CONFIG_UCSI=m
CONFIG_UDF_FS=m
# CONFIG_UEVENT_HELPER is not set
# CONFIG_UFS_DEBUG is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
CONFIG_UHID=m
CONFIG_UIO_AEC=m
@@ -5870,6 +5950,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -6096,7 +6177,7 @@ CONFIG_USB_OHCI_HCD_PLATFORM=m
# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG_FSM is not set
+CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
@@ -6234,6 +6315,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_MVEBU=m
CONFIG_USB_XHCI_PLATFORM=m
@@ -6394,6 +6476,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6534,8 +6617,9 @@ CONFIG_XGENE_PMU=y
CONFIG_XGENE_SLIMPRO_MBOX=m
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_XILINX_ZYNQMP_DMA is not set
+CONFIG_XILINX_ZYNQMP_DMA=m
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
CONFIG_XILLYBUS_PCIE=m
@@ -6559,6 +6643,7 @@ CONFIG_ZEROPLUS_FF=y
CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config
index e41f82060..130103e8a 100644
--- a/kernel-armv7hl-debug.config
+++ b/kernel-armv7hl-debug.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -257,6 +258,7 @@ CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
CONFIG_ARM_ASM_UNIFIED=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
@@ -317,6 +319,7 @@ CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
CONFIG_ARM_PSCI=y
+# CONFIG_ARM_PTDUMP_DEBUGFS is not set
# CONFIG_ARM_PTDUMP is not set
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SCPI_CPUFREQ=m
@@ -361,6 +364,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -374,6 +378,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -581,6 +586,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -637,6 +643,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -866,11 +873,12 @@ CONFIG_CHARGER_QCOM_SMBB=m
# CONFIG_CHARGER_SBS is not set
CONFIG_CHARGER_SMB347=m
CONFIG_CHARGER_TPS65090=m
-CONFIG_CHARGER_TPS65217=m
+# CONFIG_CHARGER_TPS65217 is not set
CONFIG_CHARGER_TWL4030=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -896,6 +904,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1216,7 +1225,6 @@ CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SET_MODULE_RONX=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_STACK_USAGE=y
@@ -1230,6 +1238,7 @@ CONFIG_DEBUG_VM_PGFLAGS=y
CONFIG_DEBUG_VM=y
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+CONFIG_DEBUG_WX=y
# CONFIG_DECNET is not set
CONFIG_DEFAULT_CFQ=y
CONFIG_DEFAULT_HOSTNAME="(none)"
@@ -1306,6 +1315,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1354,17 +1364,13 @@ CONFIG_DRM_EXYNOS7_DECON=y
CONFIG_DRM_EXYNOS_DPI=y
CONFIG_DRM_EXYNOS_DP=y
CONFIG_DRM_EXYNOS_DSI=y
-CONFIG_DRM_EXYNOS_FIMC=y
CONFIG_DRM_EXYNOS_FIMD=y
CONFIG_DRM_EXYNOS_G2D=y
-CONFIG_DRM_EXYNOS_GSC=y
CONFIG_DRM_EXYNOS_HDMI=y
-# CONFIG_DRM_EXYNOS_IOMMU is not set
-CONFIG_DRM_EXYNOS_IPP=y
+CONFIG_DRM_EXYNOS_IOMMU=y
CONFIG_DRM_EXYNOS=m
CONFIG_DRM_EXYNOS_MIC=y
CONFIG_DRM_EXYNOS_MIXER=y
-CONFIG_DRM_EXYNOS_ROTATOR=y
CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
@@ -1424,6 +1430,7 @@ CONFIG_DRM_OMAP_PANEL_SHARP_LS037V7DW01=m
CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM=m
CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC1=m
CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1=m
+CONFIG_DRM_PANEL_ILITEK_IL9322=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
@@ -1514,6 +1521,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1527,6 +1535,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1668,7 +1677,7 @@ CONFIG_EXYNOS5420_MCPM=y
CONFIG_EXYNOS_ADC=m
CONFIG_EXYNOS_AUDSS_CLK_CON=m
# CONFIG_EXYNOS_IOMMU_DEBUG is not set
-# CONFIG_EXYNOS_IOMMU is not set
+CONFIG_EXYNOS_IOMMU=y
CONFIG_EXYNOS_THERMAL=y
# CONFIG_EZNPS_GIC is not set
# CONFIG_EZX_PCAP is not set
@@ -1681,6 +1690,7 @@ CONFIG_F2FS_FS_SECURITY=y
CONFIG_F2FS_FS_XATTR=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_F2FS_STAT_FS=y
+CONFIG_FAIL_FUNCTION=y
# CONFIG_FAIL_FUTEX is not set
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_MAKE_REQUEST=y
@@ -1779,6 +1789,7 @@ CONFIG_FCOE=m
CONFIG_FEALNX=m
CONFIG_FEC=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_FIREWIRE is not set
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1826,6 +1837,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FTRACE=y
+# CONFIG_FTWDT010_WATCHDOG is not set
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
@@ -1911,9 +1923,11 @@ CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
CONFIG_GPIO_PL061=y
+CONFIG_GPIO_RASPBERRYPI_EXP=m
# CONFIG_GPIO_RDC321X is not set
# CONFIG_GPIO_SCH311X is not set
CONFIG_GPIO_STMPE=y
@@ -1950,6 +1964,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_ARM_ARCH_TIMER=y
CONFIG_HAVE_ARM_TWD=y
@@ -1999,6 +2014,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -2141,6 +2157,7 @@ CONFIG_HWMON=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_BCM2835=m
+CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_IMX_RNGC=m
CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_MSM=m
@@ -2149,7 +2166,7 @@ CONFIG_HW_RANDOM_OMAP3_ROM=m
CONFIG_HW_RANDOM_OMAP=m
CONFIG_HW_RANDOM_ST=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK_OMAP=m
@@ -2190,6 +2207,7 @@ CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_EG20T is not set
# CONFIG_I2C_EMEV2 is not set
CONFIG_I2C_EXYNOS5=m
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
CONFIG_I2C_GPIO=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_HID=m
@@ -2277,6 +2295,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2483,6 +2502,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2615,7 +2635,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2904,6 +2923,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2940,6 +2960,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2972,11 +2993,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -3149,6 +3170,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -3197,6 +3219,7 @@ CONFIG_MFD_AXP20X=y
CONFIG_MFD_BD9571MWV=m
CONFIG_MFD_CORE=y
# CONFIG_MFD_CPCAP is not set
+CONFIG_MFD_CROS_EC_CHARDEV=m
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -3240,8 +3263,6 @@ CONFIG_MFD_QCOM_RPM=m
CONFIG_MFD_RK808=m
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -3257,7 +3278,7 @@ CONFIG_MFD_T7L66XB=y
CONFIG_MFD_TC6387XB=y
# CONFIG_MFD_TC6393XB is not set
CONFIG_MFD_TI_AM335X_TSCADC=m
-# CONFIG_MFD_TI_LMU is not set
+CONFIG_MFD_TI_LMU=m
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TI_LP87565 is not set
# CONFIG_MFD_TIMBERDALE is not set
@@ -3295,6 +3316,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3324,6 +3347,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3346,6 +3370,7 @@ CONFIG_MMC_BCM2835=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_DW_EXYNOS=m
CONFIG_MMC_DW_K3=m
@@ -3462,6 +3487,7 @@ CONFIG_MSM_MMCC_8974=m
CONFIG_MSM_MMCC_8996=m
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
@@ -3513,6 +3539,7 @@ CONFIG_MTD_NAND_GPIO=m
CONFIG_MTD_NAND_GPMI_NAND=m
# CONFIG_MTD_NAND_HISI504 is not set
CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MTK is not set
CONFIG_MTD_NAND_MXC=m
CONFIG_MTD_NAND_NANDSIM=m
@@ -3650,9 +3677,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3837,6 +3866,7 @@ CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_DEC is not set
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3871,6 +3901,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_NET_VENDOR_SUN is not set
@@ -3949,6 +3980,10 @@ CONFIG_NFC_WILINK=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -4010,6 +4045,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -4295,6 +4331,7 @@ CONFIG_PCIEAER=y
# CONFIG_PCIE_ARMADA_8K is not set
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
CONFIG_PCIE_DW_HOST=y
@@ -4405,6 +4442,7 @@ CONFIG_PINCTRL_APQ8084=m
CONFIG_PINCTRL_ARMADA_370=y
CONFIG_PINCTRL_ARMADA_XP=y
CONFIG_PINCTRL_AS3722=y
+CONFIG_PINCTRL_AXP209=m
# CONFIG_PINCTRL_BAYTRAIL is not set
# CONFIG_PINCTRL_BROXTON is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4427,6 +4465,7 @@ CONFIG_PINCTRL_MSM8916=m
CONFIG_PINCTRL_MSM8960=m
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_MSM8996 is not set
+CONFIG_PINCTRL_MSM8998=m
CONFIG_PINCTRL_MSM8X74=m
CONFIG_PINCTRL_MVEBU=y
CONFIG_PINCTRL_PALMAS=y
@@ -4484,7 +4523,6 @@ CONFIG_POWER_RESET_AS3722=y
# CONFIG_POWER_RESET_BRCMSTB is not set
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_POWER_RESET_GPIO=y
-CONFIG_POWER_RESET_IMX=y
# CONFIG_POWER_RESET_LTC2952 is not set
CONFIG_POWER_RESET_MSM=y
# CONFIG_POWER_RESET_QNAP is not set
@@ -4573,9 +4611,11 @@ CONFIG_PXA_DMA=y
# CONFIG_QCA7000 is not set
# CONFIG_QCA7000_SPI is not set
# CONFIG_QCA7000_UART is not set
+CONFIG_QCOM_A53PLL=m
CONFIG_QCOM_ADSP_PIL=m
CONFIG_QCOM_APCS_IPC=m
CONFIG_QCOM_BAM_DMA=m
+CONFIG_QCOM_CLK_APCS_MSM8916=m
CONFIG_QCOM_CLK_RPM=m
CONFIG_QCOM_CLK_SMD_RPM=m
CONFIG_QCOM_COINCELL=m
@@ -4661,6 +4701,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4724,6 +4765,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_ISL9305=m
+CONFIG_REGULATOR_LM363X=m
CONFIG_REGULATOR_LP3971=m
CONFIG_REGULATOR_LP3972=m
CONFIG_REGULATOR_LP872X=y
@@ -4876,6 +4918,7 @@ CONFIG_RTC_DRV_AS3722=y
CONFIG_RTC_DRV_BQ32K=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_CROS_EC=m
CONFIG_RTC_DRV_DA9052=m
CONFIG_RTC_DRV_DA9055=m
CONFIG_RTC_DRV_DS1286=m
@@ -4927,6 +4970,7 @@ CONFIG_RTC_DRV_MC13XXX=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_MV=m
CONFIG_RTC_DRV_MXC=m
+CONFIG_RTC_DRV_MXC_V2=m
CONFIG_RTC_DRV_OMAP=m
CONFIG_RTC_DRV_PALMAS=m
CONFIG_RTC_DRV_PCF2123=m
@@ -5011,6 +5055,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
CONFIG_S3C2410_WATCHDOG=m
# CONFIG_SAMPLES is not set
@@ -5149,9 +5194,11 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_QCOM=m
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -5161,6 +5208,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -5342,6 +5390,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -5370,7 +5419,8 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
# CONFIG_SERIAL_8250_MID is not set
CONFIG_SERIAL_8250_MOXA=m
CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_OMAP=m
+CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y
+CONFIG_SERIAL_8250_OMAP=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_RT288X=y
@@ -5409,8 +5459,7 @@ CONFIG_SERIAL_MVEBU_CONSOLE=y
CONFIG_SERIAL_MVEBU_UART=y
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_SERIAL_OF_PLATFORM=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-CONFIG_SERIAL_OMAP=y
+# CONFIG_SERIAL_OMAP is not set
# CONFIG_SERIAL_PCH_UART is not set
CONFIG_SERIAL_PXA_CONSOLE=y
CONFIG_SERIAL_PXA=y
@@ -5459,6 +5508,7 @@ CONFIG_SI7020=m
# CONFIG_SIGMA is not set
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_PM_BUS=y
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -5471,6 +5521,8 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5737,6 +5789,7 @@ CONFIG_SND_SOC_LPASS_CPU=m
CONFIG_SND_SOC_LPASS_PLATFORM=m
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5751,6 +5804,8 @@ CONFIG_SND_SOC_ODROID=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
CONFIG_SND_SOC_PCM512x_I2C=m
@@ -5787,6 +5842,7 @@ CONFIG_SND_SOC_STORM=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_TAS6424=m
CONFIG_SND_SOC_TEGRA20_AC97=m
CONFIG_SND_SOC_TEGRA20_DAS=m
CONFIG_SND_SOC_TEGRA20_I2S=m
@@ -5808,9 +5864,12 @@ CONFIG_SND_SOC_TLV320AIC23_I2C=m
CONFIG_SND_SOC_TLV320AIC23=m
CONFIG_SND_SOC_TLV320AIC23_SPI=m
CONFIG_SND_SOC_TLV320AIC31XX=m
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TLV320AIC3X=m
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
CONFIG_SND_SOC_TWL4030=m
CONFIG_SND_SOC_TWL6040=m
# CONFIG_SND_SOC_WM8510 is not set
@@ -5911,6 +5970,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPEAKUP is not set
# CONFIG_SPI_ALTERA is not set
@@ -5966,6 +6028,7 @@ CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
CONFIG_SPMI=m
CONFIG_SPMI_MSM_PMIC_ARB=m
+CONFIG_SPMI_PMIC_CLKDIV=m
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_LZ4=y
@@ -6022,6 +6085,9 @@ CONFIG_STRIP_ASM_SYMS=y
CONFIG_ST_THERMAL=m
CONFIG_ST_THERMAL_MEMMAP=m
# CONFIG_ST_THERMAL_SYSCFG is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUN4I_A10_CCU=y
CONFIG_SUN4I_EMAC=m
CONFIG_SUN4I_GPADC=m
@@ -6136,17 +6202,17 @@ CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
CONFIG_TEGRA20_MC=y
CONFIG_TEGRA_AHB=y
-# CONFIG_TEGRA_BPMP_THERMAL is not set
-CONFIG_TEGRA_BPMP=y
+# CONFIG_TEGRA_BPMP is not set
CONFIG_TEGRA_GMI=m
CONFIG_TEGRA_HOST1X_FIREWALL=y
CONFIG_TEGRA_HOST1X=m
-CONFIG_TEGRA_HSP_MBOX=y
+# CONFIG_TEGRA_HSP_MBOX is not set
CONFIG_TEGRA_IOMMU_GART=y
CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_TEGRA_IVC=y
CONFIG_TEGRA_MC=y
CONFIG_TEGRA_SOCTHERM=m
+CONFIG_TEGRA_VDE=m
CONFIG_TEGRA_WATCHDOG=m
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
@@ -6213,16 +6279,18 @@ CONFIG_TI_DAVINCI_EMAC=m
CONFIG_TI_DAVINCI_MDIO=m
CONFIG_TI_EDMA=y
CONFIG_TI_EMIF=m
+CONFIG_TI_EMIF_SRAM=m
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
+CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_MI0283QT=m
CONFIG_TINYDRM_MIPI_DBI=m
# CONFIG_TINYDRM_REPAPER is not set
# CONFIG_TINYDRM_ST7586 is not set
+CONFIG_TINYDRM_ST7735R=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -6376,7 +6444,7 @@ CONFIG_UCSI=m
CONFIG_UDF_FS=m
# CONFIG_UEVENT_HELPER is not set
# CONFIG_UFS_DEBUG is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
CONFIG_UHID=m
CONFIG_UIO_AEC=m
@@ -6394,6 +6462,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -6637,7 +6706,7 @@ CONFIG_USB_OHCI_HCD_PLATFORM=m
CONFIG_USB_OHCI_HCD_STI=m
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG_FSM is not set
+CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
@@ -6776,6 +6845,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_MVEBU=m
CONFIG_USB_XHCI_PLATFORM=m
@@ -6970,6 +7040,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -7110,6 +7181,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_EMACLITE=m
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
CONFIG_XILINX_WATCHDOG=m
CONFIG_XILINX_XADC=m
# CONFIG_XILINX_ZYNQMP_DMA is not set
@@ -7139,6 +7211,7 @@ CONFIG_ZEROPLUS_FF=y
CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config
index 499237049..2c5cffbc7 100644
--- a/kernel-armv7hl-lpae-debug.config
+++ b/kernel-armv7hl-lpae-debug.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -248,6 +249,7 @@ CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
CONFIG_ARM_ASM_UNIFIED=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
@@ -306,6 +308,7 @@ CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
CONFIG_ARM_PSCI=y
+# CONFIG_ARM_PTDUMP_DEBUGFS is not set
# CONFIG_ARM_PTDUMP is not set
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SCPI_CPUFREQ=m
@@ -347,6 +350,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -360,6 +364,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -557,6 +562,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -613,6 +619,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -718,7 +725,7 @@ CONFIG_CACHEFILES=m
CONFIG_CACHE_L2X0_PMU=y
CONFIG_CACHE_L2X0=y
CONFIG_CACHE_TAUROS2=y
-# CONFIG_CADENCE_WATCHDOG is not set
+CONFIG_CADENCE_WATCHDOG=m
# CONFIG_CAIF is not set
CONFIG_CAN_8DEV_USB=m
CONFIG_CAN_BCM=m
@@ -843,6 +850,7 @@ CONFIG_CHARGER_TPS65090=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -868,6 +876,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1162,7 +1171,6 @@ CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SET_MODULE_RONX=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_STACK_USAGE=y
@@ -1176,6 +1184,7 @@ CONFIG_DEBUG_VM_PGFLAGS=y
CONFIG_DEBUG_VM=y
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+CONFIG_DEBUG_WX=y
# CONFIG_DECNET is not set
CONFIG_DEFAULT_CFQ=y
CONFIG_DEFAULT_HOSTNAME="(none)"
@@ -1251,6 +1260,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1291,23 +1301,18 @@ CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_CEC=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI=m
-CONFIG_DRM_ETNAVIV_THERMAL=y
CONFIG_DRM_EXYNOS5433_DECON=y
CONFIG_DRM_EXYNOS7_DECON=y
CONFIG_DRM_EXYNOS_DPI=y
CONFIG_DRM_EXYNOS_DP=y
CONFIG_DRM_EXYNOS_DSI=y
-CONFIG_DRM_EXYNOS_FIMC=y
CONFIG_DRM_EXYNOS_FIMD=y
CONFIG_DRM_EXYNOS_G2D=y
-CONFIG_DRM_EXYNOS_GSC=y
CONFIG_DRM_EXYNOS_HDMI=y
-# CONFIG_DRM_EXYNOS_IOMMU is not set
-CONFIG_DRM_EXYNOS_IPP=y
+CONFIG_DRM_EXYNOS_IOMMU=y
CONFIG_DRM_EXYNOS=m
CONFIG_DRM_EXYNOS_MIC=y
CONFIG_DRM_EXYNOS_MIXER=y
-CONFIG_DRM_EXYNOS_ROTATOR=y
CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
@@ -1338,6 +1343,7 @@ CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NXP_PTN3460=m
# CONFIG_DRM_OMAP is not set
+CONFIG_DRM_PANEL_ILITEK_IL9322=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
@@ -1427,6 +1433,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1440,6 +1447,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1510,6 +1518,7 @@ CONFIG_EDAC_HIGHBANK_L2=m
CONFIG_EDAC_HIGHBANK_MC=m
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_MV64X60=m
+CONFIG_EDAC_TI=m
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
CONFIG_EEPROM_93XX46=m
@@ -1577,7 +1586,7 @@ CONFIG_EXYNOS5420_MCPM=y
CONFIG_EXYNOS_ADC=m
CONFIG_EXYNOS_AUDSS_CLK_CON=m
# CONFIG_EXYNOS_IOMMU_DEBUG is not set
-# CONFIG_EXYNOS_IOMMU is not set
+CONFIG_EXYNOS_IOMMU=y
CONFIG_EXYNOS_THERMAL=y
# CONFIG_EZNPS_GIC is not set
# CONFIG_EZX_PCAP is not set
@@ -1590,6 +1599,7 @@ CONFIG_F2FS_FS_SECURITY=y
CONFIG_F2FS_FS_XATTR=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_F2FS_STAT_FS=y
+CONFIG_FAIL_FUNCTION=y
# CONFIG_FAIL_FUTEX is not set
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_MAKE_REQUEST=y
@@ -1684,6 +1694,7 @@ CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_FIREWIRE is not set
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1731,6 +1742,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FTRACE=y
+# CONFIG_FTWDT010_WATCHDOG is not set
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
@@ -1812,9 +1824,11 @@ CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
CONFIG_GPIO_PL061=y
+CONFIG_GPIO_RASPBERRYPI_EXP=m
# CONFIG_GPIO_RDC321X is not set
# CONFIG_GPIO_SCH311X is not set
# CONFIG_GPIO_SX150X is not set
@@ -1844,6 +1858,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARM_ARCH_TIMER=y
@@ -1893,6 +1908,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -2037,11 +2053,12 @@ CONFIG_HWMON=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_BCM2835=m
+CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_IMX_RNGC=m
CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_OMAP=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
@@ -2062,7 +2079,7 @@ CONFIG_I2C_ARB_GPIO_CHALLENGE=m
# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
-# CONFIG_I2C_CADENCE is not set
+CONFIG_I2C_CADENCE=m
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_COMPAT=y
@@ -2081,6 +2098,7 @@ CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_EG20T is not set
# CONFIG_I2C_EMEV2 is not set
CONFIG_I2C_EXYNOS5=m
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
CONFIG_I2C_GPIO=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_HID=m
@@ -2163,6 +2181,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2352,6 +2371,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2484,7 +2504,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2768,6 +2787,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2802,6 +2822,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2834,11 +2855,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -3002,6 +3023,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -3050,6 +3072,7 @@ CONFIG_MFD_AXP20X=y
CONFIG_MFD_BD9571MWV=m
CONFIG_MFD_CORE=y
# CONFIG_MFD_CPCAP is not set
+CONFIG_MFD_CROS_EC_CHARDEV=m
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -3091,8 +3114,6 @@ CONFIG_MFD_MAX8997=y
CONFIG_MFD_RK808=m
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -3145,6 +3166,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3174,6 +3197,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3196,6 +3220,7 @@ CONFIG_MMC_BCM2835=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_DW_EXYNOS=m
CONFIG_MMC_DW_K3=m
@@ -3293,6 +3318,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
@@ -3344,6 +3370,7 @@ CONFIG_MTD_NAND_FSMC=m
CONFIG_MTD_NAND_GPIO=m
# CONFIG_MTD_NAND_HISI504 is not set
CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MTK is not set
CONFIG_MTD_NAND_MXC=m
CONFIG_MTD_NAND_NANDSIM=m
@@ -3474,9 +3501,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3661,6 +3690,7 @@ CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_DEC is not set
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3694,6 +3724,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_NET_VENDOR_SUN is not set
@@ -3770,6 +3801,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3831,6 +3866,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -4076,6 +4112,7 @@ CONFIG_PCIEAER=y
# CONFIG_PCIE_ARMADA_8K is not set
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
CONFIG_PCIE_DW_HOST=y
@@ -4150,6 +4187,7 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
+CONFIG_PHY_QCOM_UFS=m
# CONFIG_PHY_QCOM_USB_HSIC is not set
# CONFIG_PHY_QCOM_USB_HS is not set
CONFIG_PHY_ROCKCHIP_DP=m
@@ -4173,6 +4211,7 @@ CONFIG_PINCONF=y
CONFIG_PINCTRL_ARMADA_370=y
CONFIG_PINCTRL_ARMADA_XP=y
CONFIG_PINCTRL_AS3722=y
+CONFIG_PINCTRL_AXP209=m
# CONFIG_PINCTRL_BAYTRAIL is not set
# CONFIG_PINCTRL_BROXTON is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4191,6 +4230,7 @@ CONFIG_PINCTRL_DOVE=y
# CONFIG_PINCTRL_MESON_GXL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_MSM8996 is not set
+CONFIG_PINCTRL_MSM8998=m
CONFIG_PINCTRL_MVEBU=y
CONFIG_PINCTRL_RK805=m
CONFIG_PINCTRL_SAMSUNG=y
@@ -4319,6 +4359,8 @@ CONFIG_PWRSEQ_SIMPLE=y
# CONFIG_QCA7000 is not set
# CONFIG_QCA7000_SPI is not set
# CONFIG_QCA7000_UART is not set
+CONFIG_QCOM_A53PLL=m
+CONFIG_QCOM_CLK_APCS_MSM8916=m
# CONFIG_QCOM_EBI2 is not set
# CONFIG_QCOM_EMAC is not set
# CONFIG_QCOM_GLINK_SSR is not set
@@ -4385,6 +4427,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4581,6 +4624,7 @@ CONFIG_RTC_DRV_AS3722=y
CONFIG_RTC_DRV_BQ32K=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_CROS_EC=m
CONFIG_RTC_DRV_DS1286=m
# CONFIG_RTC_DRV_DS1302 is not set
CONFIG_RTC_DRV_DS1305=m
@@ -4704,6 +4748,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
CONFIG_S3C2410_WATCHDOG=m
# CONFIG_SAMPLES is not set
@@ -4842,9 +4887,11 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_QCOM=m
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -4854,6 +4901,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -5031,6 +5079,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -5135,6 +5184,7 @@ CONFIG_SI7020=m
# CONFIG_SIGMA is not set
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_PM_BUS=y
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -5147,6 +5197,8 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5379,6 +5431,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_INNO_RK3036 is not set
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5392,6 +5445,8 @@ CONFIG_SND_SOC_ODROID=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
CONFIG_SND_SOC_PCM512x_I2C=m
@@ -5425,6 +5480,7 @@ 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_TAS6424=m
# CONFIG_SND_SOC_TEGRA20_AC97 is not set
CONFIG_SND_SOC_TEGRA20_DAS=m
CONFIG_SND_SOC_TEGRA20_I2S=m
@@ -5445,9 +5501,12 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5526,6 +5585,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPEAKUP is not set
# CONFIG_SPI_ALTERA is not set
@@ -5536,7 +5598,7 @@ CONFIG_SPI_BCM2835=m
# CONFIG_SPI_BCM_QSPI is not set
CONFIG_SPI_BITBANG=m
# CONFIG_SPI_BUTTERFLY is not set
-# CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_CADENCE=m
# CONFIG_SPI_CADENCE_QUADSPI is not set
CONFIG_SPI_DAVINCI=m
# CONFIG_SPI_DEBUG is not set
@@ -5573,6 +5635,7 @@ CONFIG_SPI_TEGRA114=m
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
# CONFIG_SPMI is not set
+CONFIG_SPMI_PMIC_CLKDIV=m
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_LZ4=y
@@ -5620,6 +5683,9 @@ CONFIG_STRICT_MODULE_RWX=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUN4I_A10_CCU=y
CONFIG_SUN4I_EMAC=m
CONFIG_SUN4I_GPADC=m
@@ -5735,17 +5801,17 @@ CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
# CONFIG_TEGRA20_MC is not set
CONFIG_TEGRA_AHB=y
-# CONFIG_TEGRA_BPMP_THERMAL is not set
-CONFIG_TEGRA_BPMP=y
+# CONFIG_TEGRA_BPMP is not set
CONFIG_TEGRA_GMI=m
CONFIG_TEGRA_HOST1X_FIREWALL=y
CONFIG_TEGRA_HOST1X=m
-CONFIG_TEGRA_HSP_MBOX=y
+# CONFIG_TEGRA_HSP_MBOX is not set
# CONFIG_TEGRA_IOMMU_GART is not set
CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_TEGRA_IVC=y
CONFIG_TEGRA_MC=y
CONFIG_TEGRA_SOCTHERM=m
+CONFIG_TEGRA_VDE=m
CONFIG_TEGRA_WATCHDOG=m
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
@@ -5809,12 +5875,13 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TI_MESSAGE_MANAGER=m
+CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_MI0283QT=m
CONFIG_TINYDRM_MIPI_DBI=m
# CONFIG_TINYDRM_REPAPER is not set
# CONFIG_TINYDRM_ST7586 is not set
+CONFIG_TINYDRM_ST7735R=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5959,7 +6026,7 @@ CONFIG_UCSI=m
CONFIG_UDF_FS=m
# CONFIG_UEVENT_HELPER is not set
# CONFIG_UFS_DEBUG is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
CONFIG_UHID=m
CONFIG_UIO_AEC=m
@@ -5977,6 +6044,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -6207,7 +6275,7 @@ CONFIG_USB_OHCI_HCD_PLATFORM=m
# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG_FSM is not set
+CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
@@ -6345,6 +6413,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_MVEBU=m
CONFIG_USB_XHCI_PLATFORM=m
@@ -6520,6 +6589,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6670,6 +6740,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_XILINX_ZYNQMP_DMA is not set
CONFIG_XILLYBUS=m
@@ -6698,6 +6769,7 @@ CONFIG_ZEROPLUS_FF=y
CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config
index 9a8f308cb..e5aaec847 100644
--- a/kernel-armv7hl-lpae.config
+++ b/kernel-armv7hl-lpae.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -247,6 +248,7 @@ CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
CONFIG_ARM_ASM_UNIFIED=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
@@ -305,6 +307,7 @@ CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
CONFIG_ARM_PSCI=y
+# CONFIG_ARM_PTDUMP_DEBUGFS is not set
# CONFIG_ARM_PTDUMP is not set
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SCPI_CPUFREQ=m
@@ -346,6 +349,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -359,6 +363,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -556,6 +561,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -612,6 +618,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -717,7 +724,7 @@ CONFIG_CACHEFILES=m
CONFIG_CACHE_L2X0_PMU=y
CONFIG_CACHE_L2X0=y
CONFIG_CACHE_TAUROS2=y
-# CONFIG_CADENCE_WATCHDOG is not set
+CONFIG_CADENCE_WATCHDOG=m
# CONFIG_CAIF is not set
CONFIG_CAN_8DEV_USB=m
CONFIG_CAN_BCM=m
@@ -842,6 +849,7 @@ CONFIG_CHARGER_TPS65090=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -867,6 +875,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1153,7 +1162,6 @@ CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_SG is not set
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
@@ -1166,6 +1174,7 @@ CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_VM=y
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+CONFIG_DEBUG_WX=y
# CONFIG_DECNET is not set
CONFIG_DEFAULT_CFQ=y
CONFIG_DEFAULT_HOSTNAME="(none)"
@@ -1241,6 +1250,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1281,23 +1291,18 @@ CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_CEC=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI=m
-CONFIG_DRM_ETNAVIV_THERMAL=y
CONFIG_DRM_EXYNOS5433_DECON=y
CONFIG_DRM_EXYNOS7_DECON=y
CONFIG_DRM_EXYNOS_DPI=y
CONFIG_DRM_EXYNOS_DP=y
CONFIG_DRM_EXYNOS_DSI=y
-CONFIG_DRM_EXYNOS_FIMC=y
CONFIG_DRM_EXYNOS_FIMD=y
CONFIG_DRM_EXYNOS_G2D=y
-CONFIG_DRM_EXYNOS_GSC=y
CONFIG_DRM_EXYNOS_HDMI=y
-# CONFIG_DRM_EXYNOS_IOMMU is not set
-CONFIG_DRM_EXYNOS_IPP=y
+CONFIG_DRM_EXYNOS_IOMMU=y
CONFIG_DRM_EXYNOS=m
CONFIG_DRM_EXYNOS_MIC=y
CONFIG_DRM_EXYNOS_MIXER=y
-CONFIG_DRM_EXYNOS_ROTATOR=y
CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
@@ -1328,6 +1333,7 @@ CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NXP_PTN3460=m
# CONFIG_DRM_OMAP is not set
+CONFIG_DRM_PANEL_ILITEK_IL9322=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
@@ -1417,6 +1423,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1430,6 +1437,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1500,6 +1508,7 @@ CONFIG_EDAC_HIGHBANK_L2=m
CONFIG_EDAC_HIGHBANK_MC=m
CONFIG_EDAC_LEGACY_SYSFS=y
CONFIG_EDAC_MV64X60=m
+CONFIG_EDAC_TI=m
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
CONFIG_EEPROM_93XX46=m
@@ -1567,7 +1576,7 @@ CONFIG_EXYNOS5420_MCPM=y
CONFIG_EXYNOS_ADC=m
CONFIG_EXYNOS_AUDSS_CLK_CON=m
# CONFIG_EXYNOS_IOMMU_DEBUG is not set
-# CONFIG_EXYNOS_IOMMU is not set
+CONFIG_EXYNOS_IOMMU=y
CONFIG_EXYNOS_THERMAL=y
# CONFIG_EZNPS_GIC is not set
# CONFIG_EZX_PCAP is not set
@@ -1667,6 +1676,7 @@ CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_FIREWIRE is not set
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1714,6 +1724,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FTRACE=y
+# CONFIG_FTWDT010_WATCHDOG is not set
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
@@ -1795,9 +1806,11 @@ CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
CONFIG_GPIO_PL061=y
+CONFIG_GPIO_RASPBERRYPI_EXP=m
# CONFIG_GPIO_RDC321X is not set
# CONFIG_GPIO_SCH311X is not set
# CONFIG_GPIO_SX150X is not set
@@ -1827,6 +1840,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARM_ARCH_TIMER=y
@@ -1876,6 +1890,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -2020,11 +2035,12 @@ CONFIG_HWMON=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_BCM2835=m
+CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_IMX_RNGC=m
CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_OMAP=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
@@ -2045,7 +2061,7 @@ CONFIG_I2C_ARB_GPIO_CHALLENGE=m
# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
-# CONFIG_I2C_CADENCE is not set
+CONFIG_I2C_CADENCE=m
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_COMPAT=y
@@ -2064,6 +2080,7 @@ CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_EG20T is not set
# CONFIG_I2C_EMEV2 is not set
CONFIG_I2C_EXYNOS5=m
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
CONFIG_I2C_GPIO=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_HID=m
@@ -2146,6 +2163,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2335,6 +2353,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2467,7 +2486,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2749,6 +2767,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2783,6 +2802,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2815,11 +2835,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2982,6 +3002,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -3030,6 +3051,7 @@ CONFIG_MFD_AXP20X=y
CONFIG_MFD_BD9571MWV=m
CONFIG_MFD_CORE=y
# CONFIG_MFD_CPCAP is not set
+CONFIG_MFD_CROS_EC_CHARDEV=m
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -3071,8 +3093,6 @@ CONFIG_MFD_MAX8997=y
CONFIG_MFD_RK808=m
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -3125,6 +3145,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3154,6 +3176,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3176,6 +3199,7 @@ CONFIG_MMC_BCM2835=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_DW_EXYNOS=m
CONFIG_MMC_DW_K3=m
@@ -3272,6 +3296,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
@@ -3323,6 +3348,7 @@ CONFIG_MTD_NAND_FSMC=m
CONFIG_MTD_NAND_GPIO=m
# CONFIG_MTD_NAND_HISI504 is not set
CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MTK is not set
CONFIG_MTD_NAND_MXC=m
CONFIG_MTD_NAND_NANDSIM=m
@@ -3453,9 +3479,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3640,6 +3668,7 @@ CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_DEC is not set
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3673,6 +3702,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_NET_VENDOR_SUN is not set
@@ -3749,6 +3779,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3810,6 +3844,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -4055,6 +4090,7 @@ CONFIG_PCIEAER=y
# CONFIG_PCIE_ARMADA_8K is not set
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
CONFIG_PCIE_DW_HOST=y
@@ -4129,6 +4165,7 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
+CONFIG_PHY_QCOM_UFS=m
# CONFIG_PHY_QCOM_USB_HSIC is not set
# CONFIG_PHY_QCOM_USB_HS is not set
CONFIG_PHY_ROCKCHIP_DP=m
@@ -4152,6 +4189,7 @@ CONFIG_PINCONF=y
CONFIG_PINCTRL_ARMADA_370=y
CONFIG_PINCTRL_ARMADA_XP=y
CONFIG_PINCTRL_AS3722=y
+CONFIG_PINCTRL_AXP209=m
# CONFIG_PINCTRL_BAYTRAIL is not set
# CONFIG_PINCTRL_BROXTON is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4170,6 +4208,7 @@ CONFIG_PINCTRL_DOVE=y
# CONFIG_PINCTRL_MESON_GXL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_MSM8996 is not set
+CONFIG_PINCTRL_MSM8998=m
CONFIG_PINCTRL_MVEBU=y
CONFIG_PINCTRL_RK805=m
CONFIG_PINCTRL_SAMSUNG=y
@@ -4297,6 +4336,8 @@ CONFIG_PWRSEQ_SIMPLE=y
# CONFIG_QCA7000 is not set
# CONFIG_QCA7000_SPI is not set
# CONFIG_QCA7000_UART is not set
+CONFIG_QCOM_A53PLL=m
+CONFIG_QCOM_CLK_APCS_MSM8916=m
# CONFIG_QCOM_EBI2 is not set
# CONFIG_QCOM_EMAC is not set
# CONFIG_QCOM_GLINK_SSR is not set
@@ -4363,6 +4404,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4401,7 +4443,7 @@ CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
-# CONFIG_REFCOUNT_FULL is not set
+CONFIG_REFCOUNT_FULL=y
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_IRQ=y
CONFIG_REGMAP_MMIO=y
@@ -4559,6 +4601,7 @@ CONFIG_RTC_DRV_AS3722=y
CONFIG_RTC_DRV_BQ32K=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_CROS_EC=m
CONFIG_RTC_DRV_DS1286=m
# CONFIG_RTC_DRV_DS1302 is not set
CONFIG_RTC_DRV_DS1305=m
@@ -4682,6 +4725,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
CONFIG_S3C2410_WATCHDOG=m
# CONFIG_SAMPLES is not set
@@ -4820,9 +4864,11 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_QCOM=m
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -4832,6 +4878,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -5009,6 +5056,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -5113,6 +5161,7 @@ CONFIG_SI7020=m
# CONFIG_SIGMA is not set
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_PM_BUS=y
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -5125,6 +5174,8 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5356,6 +5407,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_INNO_RK3036 is not set
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5369,6 +5421,8 @@ CONFIG_SND_SOC_ODROID=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
CONFIG_SND_SOC_PCM512x_I2C=m
@@ -5402,6 +5456,7 @@ 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_TAS6424=m
# CONFIG_SND_SOC_TEGRA20_AC97 is not set
CONFIG_SND_SOC_TEGRA20_DAS=m
CONFIG_SND_SOC_TEGRA20_I2S=m
@@ -5422,9 +5477,12 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5503,6 +5561,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPEAKUP is not set
# CONFIG_SPI_ALTERA is not set
@@ -5513,7 +5574,7 @@ CONFIG_SPI_BCM2835=m
# CONFIG_SPI_BCM_QSPI is not set
CONFIG_SPI_BITBANG=m
# CONFIG_SPI_BUTTERFLY is not set
-# CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_CADENCE=m
# CONFIG_SPI_CADENCE_QUADSPI is not set
CONFIG_SPI_DAVINCI=m
# CONFIG_SPI_DEBUG is not set
@@ -5550,6 +5611,7 @@ CONFIG_SPI_TEGRA114=m
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
# CONFIG_SPMI is not set
+CONFIG_SPMI_PMIC_CLKDIV=m
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_LZ4=y
@@ -5597,6 +5659,9 @@ CONFIG_STRICT_MODULE_RWX=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUN4I_A10_CCU=y
CONFIG_SUN4I_EMAC=m
CONFIG_SUN4I_GPADC=m
@@ -5712,17 +5777,17 @@ CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
# CONFIG_TEGRA20_MC is not set
CONFIG_TEGRA_AHB=y
-# CONFIG_TEGRA_BPMP_THERMAL is not set
-CONFIG_TEGRA_BPMP=y
+# CONFIG_TEGRA_BPMP is not set
CONFIG_TEGRA_GMI=m
CONFIG_TEGRA_HOST1X_FIREWALL=y
CONFIG_TEGRA_HOST1X=m
-CONFIG_TEGRA_HSP_MBOX=y
+# CONFIG_TEGRA_HSP_MBOX is not set
# CONFIG_TEGRA_IOMMU_GART is not set
CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_TEGRA_IVC=y
CONFIG_TEGRA_MC=y
CONFIG_TEGRA_SOCTHERM=m
+CONFIG_TEGRA_VDE=m
CONFIG_TEGRA_WATCHDOG=m
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
@@ -5786,12 +5851,13 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TI_MESSAGE_MANAGER=m
+CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_MI0283QT=m
CONFIG_TINYDRM_MIPI_DBI=m
# CONFIG_TINYDRM_REPAPER is not set
# CONFIG_TINYDRM_ST7586 is not set
+CONFIG_TINYDRM_ST7735R=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5936,7 +6002,7 @@ CONFIG_UCSI=m
CONFIG_UDF_FS=m
# CONFIG_UEVENT_HELPER is not set
# CONFIG_UFS_DEBUG is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
CONFIG_UHID=m
CONFIG_UIO_AEC=m
@@ -5954,6 +6020,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -6184,7 +6251,7 @@ CONFIG_USB_OHCI_HCD_PLATFORM=m
# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG_FSM is not set
+CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
@@ -6322,6 +6389,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_MVEBU=m
CONFIG_USB_XHCI_PLATFORM=m
@@ -6497,6 +6565,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6647,6 +6716,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_XILINX_ZYNQMP_DMA is not set
CONFIG_XILLYBUS=m
@@ -6675,6 +6745,7 @@ CONFIG_ZEROPLUS_FF=y
CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config
index ca2ad5b45..1ac63c610 100644
--- a/kernel-armv7hl.config
+++ b/kernel-armv7hl.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -256,6 +257,7 @@ CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
CONFIG_ARM_ASM_UNIFIED=y
CONFIG_ARM_ATAG_DTB_COMPAT=y
CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
@@ -316,6 +318,7 @@ CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
CONFIG_ARM_PSCI=y
+# CONFIG_ARM_PTDUMP_DEBUGFS is not set
# CONFIG_ARM_PTDUMP is not set
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SCPI_CPUFREQ=m
@@ -360,6 +363,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -373,6 +377,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -580,6 +585,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -636,6 +642,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -865,11 +872,12 @@ CONFIG_CHARGER_QCOM_SMBB=m
# CONFIG_CHARGER_SBS is not set
CONFIG_CHARGER_SMB347=m
CONFIG_CHARGER_TPS65090=m
-CONFIG_CHARGER_TPS65217=m
+# CONFIG_CHARGER_TPS65217 is not set
CONFIG_CHARGER_TWL4030=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -895,6 +903,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1207,7 +1216,6 @@ CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_SG is not set
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
@@ -1220,6 +1228,7 @@ CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_VM=y
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+CONFIG_DEBUG_WX=y
# CONFIG_DECNET is not set
CONFIG_DEFAULT_CFQ=y
CONFIG_DEFAULT_HOSTNAME="(none)"
@@ -1296,6 +1305,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1344,17 +1354,13 @@ CONFIG_DRM_EXYNOS7_DECON=y
CONFIG_DRM_EXYNOS_DPI=y
CONFIG_DRM_EXYNOS_DP=y
CONFIG_DRM_EXYNOS_DSI=y
-CONFIG_DRM_EXYNOS_FIMC=y
CONFIG_DRM_EXYNOS_FIMD=y
CONFIG_DRM_EXYNOS_G2D=y
-CONFIG_DRM_EXYNOS_GSC=y
CONFIG_DRM_EXYNOS_HDMI=y
-# CONFIG_DRM_EXYNOS_IOMMU is not set
-CONFIG_DRM_EXYNOS_IPP=y
+CONFIG_DRM_EXYNOS_IOMMU=y
CONFIG_DRM_EXYNOS=m
CONFIG_DRM_EXYNOS_MIC=y
CONFIG_DRM_EXYNOS_MIXER=y
-CONFIG_DRM_EXYNOS_ROTATOR=y
CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
@@ -1414,6 +1420,7 @@ CONFIG_DRM_OMAP_PANEL_SHARP_LS037V7DW01=m
CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM=m
CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC1=m
CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1=m
+CONFIG_DRM_PANEL_ILITEK_IL9322=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
@@ -1504,6 +1511,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1517,6 +1525,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1658,7 +1667,7 @@ CONFIG_EXYNOS5420_MCPM=y
CONFIG_EXYNOS_ADC=m
CONFIG_EXYNOS_AUDSS_CLK_CON=m
# CONFIG_EXYNOS_IOMMU_DEBUG is not set
-# CONFIG_EXYNOS_IOMMU is not set
+CONFIG_EXYNOS_IOMMU=y
CONFIG_EXYNOS_THERMAL=y
# CONFIG_EZNPS_GIC is not set
# CONFIG_EZX_PCAP is not set
@@ -1762,6 +1771,7 @@ CONFIG_FCOE=m
CONFIG_FEALNX=m
CONFIG_FEC=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_FIREWIRE is not set
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1809,6 +1819,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FTRACE=y
+# CONFIG_FTWDT010_WATCHDOG is not set
# CONFIG_FUNCTION_GRAPH_TRACER is not set
CONFIG_FUNCTION_PROFILER=y
CONFIG_FUNCTION_TRACER=y
@@ -1894,9 +1905,11 @@ CONFIG_GPIO_PCA953X_IRQ=y
CONFIG_GPIO_PCA953X=y
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
CONFIG_GPIO_PL061=y
+CONFIG_GPIO_RASPBERRYPI_EXP=m
# CONFIG_GPIO_RDC321X is not set
# CONFIG_GPIO_SCH311X is not set
CONFIG_GPIO_STMPE=y
@@ -1933,6 +1946,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_ARM_ARCH_TIMER=y
CONFIG_HAVE_ARM_TWD=y
@@ -1982,6 +1996,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -2124,6 +2139,7 @@ CONFIG_HWMON=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_BCM2835=m
+CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_IMX_RNGC=m
CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_MSM=m
@@ -2132,7 +2148,7 @@ CONFIG_HW_RANDOM_OMAP3_ROM=m
CONFIG_HW_RANDOM_OMAP=m
CONFIG_HW_RANDOM_ST=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK_OMAP=m
@@ -2173,6 +2189,7 @@ CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_EG20T is not set
# CONFIG_I2C_EMEV2 is not set
CONFIG_I2C_EXYNOS5=m
+# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set
CONFIG_I2C_GPIO=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_HID=m
@@ -2260,6 +2277,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2466,6 +2484,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2598,7 +2617,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2885,6 +2903,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2921,6 +2940,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2953,11 +2973,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -3129,6 +3149,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -3177,6 +3198,7 @@ CONFIG_MFD_AXP20X=y
CONFIG_MFD_BD9571MWV=m
CONFIG_MFD_CORE=y
# CONFIG_MFD_CPCAP is not set
+CONFIG_MFD_CROS_EC_CHARDEV=m
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -3220,8 +3242,6 @@ CONFIG_MFD_QCOM_RPM=m
CONFIG_MFD_RK808=m
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
CONFIG_MFD_SEC_CORE=y
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -3237,7 +3257,7 @@ CONFIG_MFD_T7L66XB=y
CONFIG_MFD_TC6387XB=y
# CONFIG_MFD_TC6393XB is not set
CONFIG_MFD_TI_AM335X_TSCADC=m
-# CONFIG_MFD_TI_LMU is not set
+CONFIG_MFD_TI_LMU=m
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TI_LP87565 is not set
# CONFIG_MFD_TIMBERDALE is not set
@@ -3275,6 +3295,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3304,6 +3326,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3326,6 +3349,7 @@ CONFIG_MMC_BCM2835=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_DW_EXYNOS=m
CONFIG_MMC_DW_K3=m
@@ -3441,6 +3465,7 @@ CONFIG_MSM_MMCC_8974=m
CONFIG_MSM_MMCC_8996=m
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AFS_PARTS is not set
# CONFIG_MTD_AR7_PARTS is not set
@@ -3492,6 +3517,7 @@ CONFIG_MTD_NAND_GPIO=m
CONFIG_MTD_NAND_GPMI_NAND=m
# CONFIG_MTD_NAND_HISI504 is not set
CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MTK is not set
CONFIG_MTD_NAND_MXC=m
CONFIG_MTD_NAND_NANDSIM=m
@@ -3629,9 +3655,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3816,6 +3844,7 @@ CONFIG_NET_VENDOR_BROADCOM=y
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_NET_VENDOR_CIRRUS is not set
# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_DEC is not set
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3850,6 +3879,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_NET_VENDOR_SUN is not set
@@ -3928,6 +3958,10 @@ CONFIG_NFC_WILINK=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3989,6 +4023,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -4274,6 +4309,7 @@ CONFIG_PCIEAER=y
# CONFIG_PCIE_ARMADA_8K is not set
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
CONFIG_PCIE_DW_HOST=y
@@ -4384,6 +4420,7 @@ CONFIG_PINCTRL_APQ8084=m
CONFIG_PINCTRL_ARMADA_370=y
CONFIG_PINCTRL_ARMADA_XP=y
CONFIG_PINCTRL_AS3722=y
+CONFIG_PINCTRL_AXP209=m
# CONFIG_PINCTRL_BAYTRAIL is not set
# CONFIG_PINCTRL_BROXTON is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4406,6 +4443,7 @@ CONFIG_PINCTRL_MSM8916=m
CONFIG_PINCTRL_MSM8960=m
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_MSM8996 is not set
+CONFIG_PINCTRL_MSM8998=m
CONFIG_PINCTRL_MSM8X74=m
CONFIG_PINCTRL_MVEBU=y
CONFIG_PINCTRL_PALMAS=y
@@ -4463,7 +4501,6 @@ CONFIG_POWER_RESET_AS3722=y
# CONFIG_POWER_RESET_BRCMSTB is not set
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_POWER_RESET_GPIO=y
-CONFIG_POWER_RESET_IMX=y
# CONFIG_POWER_RESET_LTC2952 is not set
CONFIG_POWER_RESET_MSM=y
# CONFIG_POWER_RESET_QNAP is not set
@@ -4551,9 +4588,11 @@ CONFIG_PXA_DMA=y
# CONFIG_QCA7000 is not set
# CONFIG_QCA7000_SPI is not set
# CONFIG_QCA7000_UART is not set
+CONFIG_QCOM_A53PLL=m
CONFIG_QCOM_ADSP_PIL=m
CONFIG_QCOM_APCS_IPC=m
CONFIG_QCOM_BAM_DMA=m
+CONFIG_QCOM_CLK_APCS_MSM8916=m
CONFIG_QCOM_CLK_RPM=m
CONFIG_QCOM_CLK_SMD_RPM=m
CONFIG_QCOM_COINCELL=m
@@ -4639,6 +4678,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4678,7 +4718,7 @@ CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
-# CONFIG_REFCOUNT_FULL is not set
+CONFIG_REFCOUNT_FULL=y
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP_IRQ=y
CONFIG_REGMAP_MMIO=y
@@ -4702,6 +4742,7 @@ CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_ISL6271A=m
CONFIG_REGULATOR_ISL9305=m
+CONFIG_REGULATOR_LM363X=m
CONFIG_REGULATOR_LP3971=m
CONFIG_REGULATOR_LP3972=m
CONFIG_REGULATOR_LP872X=y
@@ -4854,6 +4895,7 @@ CONFIG_RTC_DRV_AS3722=y
CONFIG_RTC_DRV_BQ32K=m
CONFIG_RTC_DRV_BQ4802=m
CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_CROS_EC=m
CONFIG_RTC_DRV_DA9052=m
CONFIG_RTC_DRV_DA9055=m
CONFIG_RTC_DRV_DS1286=m
@@ -4905,6 +4947,7 @@ CONFIG_RTC_DRV_MC13XXX=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_MV=m
CONFIG_RTC_DRV_MXC=m
+CONFIG_RTC_DRV_MXC_V2=m
CONFIG_RTC_DRV_OMAP=m
CONFIG_RTC_DRV_PALMAS=m
CONFIG_RTC_DRV_PCF2123=m
@@ -4989,6 +5032,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
CONFIG_S3C2410_WATCHDOG=m
# CONFIG_SAMPLES is not set
@@ -5127,9 +5171,11 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_QCOM=m
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -5139,6 +5185,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -5320,6 +5367,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -5348,7 +5396,8 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
# CONFIG_SERIAL_8250_MID is not set
CONFIG_SERIAL_8250_MOXA=m
CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_OMAP=m
+CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y
+CONFIG_SERIAL_8250_OMAP=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_RT288X=y
@@ -5387,8 +5436,7 @@ CONFIG_SERIAL_MVEBU_CONSOLE=y
CONFIG_SERIAL_MVEBU_UART=y
# CONFIG_SERIAL_NONSTANDARD is not set
CONFIG_SERIAL_OF_PLATFORM=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-CONFIG_SERIAL_OMAP=y
+# CONFIG_SERIAL_OMAP is not set
# CONFIG_SERIAL_PCH_UART is not set
CONFIG_SERIAL_PXA_CONSOLE=y
CONFIG_SERIAL_PXA=y
@@ -5437,6 +5485,7 @@ CONFIG_SI7020=m
# CONFIG_SIGMA is not set
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_PM_BUS=y
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -5449,6 +5498,8 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+CONFIG_SLIMBUS=m
+CONFIG_SLIM_QCOM_CTRL=m
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5714,6 +5765,7 @@ CONFIG_SND_SOC_LPASS_CPU=m
CONFIG_SND_SOC_LPASS_PLATFORM=m
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5728,6 +5780,8 @@ CONFIG_SND_SOC_ODROID=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
CONFIG_SND_SOC_PCM512x_I2C=m
@@ -5764,6 +5818,7 @@ CONFIG_SND_SOC_STORM=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_TAS6424=m
CONFIG_SND_SOC_TEGRA20_AC97=m
CONFIG_SND_SOC_TEGRA20_DAS=m
CONFIG_SND_SOC_TEGRA20_I2S=m
@@ -5785,9 +5840,12 @@ CONFIG_SND_SOC_TLV320AIC23_I2C=m
CONFIG_SND_SOC_TLV320AIC23=m
CONFIG_SND_SOC_TLV320AIC23_SPI=m
CONFIG_SND_SOC_TLV320AIC31XX=m
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TLV320AIC3X=m
CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
CONFIG_SND_SOC_TWL4030=m
CONFIG_SND_SOC_TWL6040=m
# CONFIG_SND_SOC_WM8510 is not set
@@ -5888,6 +5946,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPEAKUP is not set
# CONFIG_SPI_ALTERA is not set
@@ -5943,6 +6004,7 @@ CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
CONFIG_SPMI=m
CONFIG_SPMI_MSM_PMIC_ARB=m
+CONFIG_SPMI_PMIC_CLKDIV=m
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_LZ4=y
@@ -5999,6 +6061,9 @@ CONFIG_STRIP_ASM_SYMS=y
CONFIG_ST_THERMAL=m
CONFIG_ST_THERMAL_MEMMAP=m
# CONFIG_ST_THERMAL_SYSCFG is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUN4I_A10_CCU=y
CONFIG_SUN4I_EMAC=m
CONFIG_SUN4I_GPADC=m
@@ -6113,17 +6178,17 @@ CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
CONFIG_TEGRA20_MC=y
CONFIG_TEGRA_AHB=y
-# CONFIG_TEGRA_BPMP_THERMAL is not set
-CONFIG_TEGRA_BPMP=y
+# CONFIG_TEGRA_BPMP is not set
CONFIG_TEGRA_GMI=m
CONFIG_TEGRA_HOST1X_FIREWALL=y
CONFIG_TEGRA_HOST1X=m
-CONFIG_TEGRA_HSP_MBOX=y
+# CONFIG_TEGRA_HSP_MBOX is not set
CONFIG_TEGRA_IOMMU_GART=y
CONFIG_TEGRA_IOMMU_SMMU=y
CONFIG_TEGRA_IVC=y
CONFIG_TEGRA_MC=y
CONFIG_TEGRA_SOCTHERM=m
+CONFIG_TEGRA_VDE=m
CONFIG_TEGRA_WATCHDOG=m
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
@@ -6190,16 +6255,18 @@ CONFIG_TI_DAVINCI_EMAC=m
CONFIG_TI_DAVINCI_MDIO=m
CONFIG_TI_EDMA=y
CONFIG_TI_EMIF=m
+CONFIG_TI_EMIF_SRAM=m
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
+CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_MI0283QT=m
CONFIG_TINYDRM_MIPI_DBI=m
# CONFIG_TINYDRM_REPAPER is not set
# CONFIG_TINYDRM_ST7586 is not set
+CONFIG_TINYDRM_ST7735R=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -6353,7 +6420,7 @@ CONFIG_UCSI=m
CONFIG_UDF_FS=m
# CONFIG_UEVENT_HELPER is not set
# CONFIG_UFS_DEBUG is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
CONFIG_UHID=m
CONFIG_UIO_AEC=m
@@ -6371,6 +6438,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -6614,7 +6682,7 @@ CONFIG_USB_OHCI_HCD_PLATFORM=m
CONFIG_USB_OHCI_HCD_STI=m
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_OTG_FSM is not set
+CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
@@ -6753,6 +6821,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_MVEBU=m
CONFIG_USB_XHCI_PLATFORM=m
@@ -6947,6 +7016,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -7087,6 +7157,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_EMACLITE=m
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
CONFIG_XILINX_WATCHDOG=m
CONFIG_XILINX_XADC=m
# CONFIG_XILINX_ZYNQMP_DMA is not set
@@ -7116,6 +7187,7 @@ CONFIG_ZEROPLUS_FF=y
CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config
index 0c8341ce0..3b3243106 100644
--- a/kernel-i686-PAE.config
+++ b/kernel-i686-PAE.config
@@ -40,6 +40,7 @@ CONFIG_ACCESSIBILITY=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
# CONFIG_ACORN_PARTITION is not set
CONFIG_ACPI_AC=y
@@ -75,6 +76,7 @@ CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_TOSHIBA=m
@@ -250,6 +252,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -263,6 +266,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -448,6 +452,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -502,6 +507,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -719,6 +725,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -746,6 +753,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1005,7 +1013,6 @@ CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_SG is not set
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
# CONFIG_DEBUG_SPINLOCK is not set
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1031,8 +1038,8 @@ CONFIG_DELL_LAPTOP=m
CONFIG_DELL_RBTN=m
# CONFIG_DELL_RBU is not set
CONFIG_DELL_SMBIOS=m
-CONFIG_DELL_SMBIOS_SMM=m
-CONFIG_DELL_SMBIOS_WMI=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_LED=m
@@ -1092,6 +1099,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1162,6 +1170,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1236,6 +1245,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1249,6 +1259,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1513,6 +1524,7 @@ CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1610,6 +1622,7 @@ CONFIG_GIGASET_M105=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GP2AP020A00F is not set
+CONFIG_GPD_POCKET_FAN=m
# CONFIG_GPIO_104_DIO_48E is not set
# CONFIG_GPIO_104_IDI_48 is not set
# CONFIG_GPIO_104_IDIO_16 is not set
@@ -1648,6 +1661,7 @@ CONFIG_GPIOLIB=y
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1678,6 +1692,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HD44780=m
@@ -1725,6 +1740,7 @@ CONFIG_HID_HOLTEK=m
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1881,7 +1897,7 @@ CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_GEODE=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
@@ -2010,6 +2026,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2160,6 +2177,7 @@ CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
@@ -2222,6 +2240,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2355,7 +2374,6 @@ CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2514,7 +2532,7 @@ CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KEXEC_FILE is not set
# CONFIG_KEXEC_JUMP is not set
-# CONFIG_KEXEC_VERIFY_SIG is not set
+# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2621,6 +2639,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2653,6 +2672,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2687,11 +2707,11 @@ CONFIG_LIBNVDIMM=y
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2847,6 +2867,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2924,8 +2945,6 @@ CONFIG_MFD_INTEL_LPSS_PCI=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2976,6 +2995,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3008,6 +3029,8 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLX_PLATFORM=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3028,6 +3051,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -3117,6 +3141,7 @@ CONFIG_MSI_WMI=m
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -3263,9 +3288,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3449,6 +3476,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3481,6 +3509,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3560,6 +3589,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3621,6 +3654,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3865,6 +3899,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3940,6 +3975,7 @@ CONFIG_PHYSICAL_START=0x400000
CONFIG_PID_NS=y
CONFIG_PINCONF=y
# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_AXP209 is not set
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_BROXTON=m
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4126,6 +4162,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RANDOMIZE_BASE=y
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4359,6 +4396,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
CONFIG_SAMSUNG_LAPTOP=m
@@ -4497,6 +4535,7 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
# CONFIG_SCSI_UFSHCD_PLATFORM is not set
@@ -4511,6 +4550,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
# CONFIG_SCx200_ACB is not set
# CONFIG_SCx200 is not set
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4700,6 +4740,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4788,6 +4829,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
# CONFIG_SILEAD_DMI is not set
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4800,6 +4842,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5042,8 +5085,9 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5056,6 +5100,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -5075,13 +5121,17 @@ CONFIG_SND_SOC_SSM4567=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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5109,6 +5159,7 @@ CONFIG_SND_SOC_WM8524=m
CONFIG_SND_SONICVIBES=m
# CONFIG_SND_SPI is not set
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_TRIDENT=m
CONFIG_SND_USB_6FIRE=m
@@ -5146,6 +5197,10 @@ CONFIG_SONYPI_COMPAT=y
CONFIG_SONYPI=m
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -5222,6 +5277,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5315,7 +5373,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5381,7 +5438,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5544,6 +5600,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5852,6 +5909,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5873,6 +5931,7 @@ CONFIG_UWB_WHCI=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_V4L_PLATFORM_DRIVERS is not set
# CONFIG_V4L_TEST_DRIVERS is not set
+# CONFIG_VBOXGUEST is not set
# CONFIG_VCNL4000 is not set
# CONFIG_VEML6070 is not set
CONFIG_VETH=m
@@ -5939,6 +5998,7 @@ CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IPU3_CIO2=m
# CONFIG_VIDEO_IVTV_ALSA is not set
# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
CONFIG_VIDEO_IVTV=m
@@ -5994,12 +6054,13 @@ CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_ZR36060=m
# CONFIG_VIPERBOARD_ADC is not set
-# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6162,12 +6223,11 @@ CONFIG_X86_PAT=y
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY=m
CONFIG_X86_PM_TIMER=y
# CONFIG_X86_POWERNOW_K6 is not set
CONFIG_X86_POWERNOW_K7=y
CONFIG_X86_POWERNOW_K8=m
-# CONFIG_X86_PPRO_FENCE is not set
# CONFIG_X86_PTDUMP is not set
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_REBOOTFIXUPS is not set
@@ -6226,6 +6286,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -6252,6 +6313,7 @@ CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZONE_DMA=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config
index 8e00ac3a0..3e31e6fd1 100644
--- a/kernel-i686-PAEdebug.config
+++ b/kernel-i686-PAEdebug.config
@@ -40,6 +40,7 @@ CONFIG_ACCESSIBILITY=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
# CONFIG_ACORN_PARTITION is not set
CONFIG_ACPI_AC=y
@@ -75,6 +76,7 @@ CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_TOSHIBA=m
@@ -251,6 +253,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -264,6 +267,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -449,6 +453,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -503,6 +508,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -720,6 +726,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -747,6 +754,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1014,7 +1022,6 @@ CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SET_MODULE_RONX=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1041,8 +1048,8 @@ CONFIG_DELL_LAPTOP=m
CONFIG_DELL_RBTN=m
# CONFIG_DELL_RBU is not set
CONFIG_DELL_SMBIOS=m
-CONFIG_DELL_SMBIOS_SMM=m
-CONFIG_DELL_SMBIOS_WMI=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_LED=m
@@ -1103,6 +1110,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1173,6 +1181,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1247,6 +1256,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1260,6 +1270,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1425,6 +1436,7 @@ CONFIG_F2FS_FS_XATTR=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_F2FS_STAT_FS=y
CONFIG_F71808E_WDT=m
+CONFIG_FAIL_FUNCTION=y
# CONFIG_FAIL_FUTEX is not set
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_MAKE_REQUEST=y
@@ -1531,6 +1543,7 @@ CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1628,6 +1641,7 @@ CONFIG_GIGASET_M105=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GP2AP020A00F is not set
+CONFIG_GPD_POCKET_FAN=m
# CONFIG_GPIO_104_DIO_48E is not set
# CONFIG_GPIO_104_IDI_48 is not set
# CONFIG_GPIO_104_IDIO_16 is not set
@@ -1666,6 +1680,7 @@ CONFIG_GPIOLIB=y
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1696,6 +1711,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HD44780=m
@@ -1743,6 +1759,7 @@ CONFIG_HID_HOLTEK=m
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1899,7 +1916,7 @@ CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_GEODE=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
@@ -2028,6 +2045,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2178,6 +2196,7 @@ CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
@@ -2240,6 +2259,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2373,7 +2393,6 @@ CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2534,7 +2553,7 @@ CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KEXEC_FILE is not set
# CONFIG_KEXEC_JUMP is not set
-# CONFIG_KEXEC_VERIFY_SIG is not set
+# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2641,6 +2660,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2673,6 +2693,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2707,11 +2728,11 @@ CONFIG_LIBNVDIMM=y
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2867,6 +2888,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2944,8 +2966,6 @@ CONFIG_MFD_INTEL_LPSS_PCI=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2996,6 +3016,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3028,6 +3050,8 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLX_PLATFORM=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3048,6 +3072,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -3137,6 +3162,7 @@ CONFIG_MSI_WMI=m
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -3283,9 +3309,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3469,6 +3497,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3501,6 +3530,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3580,6 +3610,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3641,6 +3675,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3885,6 +3920,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3960,6 +3996,7 @@ CONFIG_PHYSICAL_START=0x400000
CONFIG_PID_NS=y
CONFIG_PINCONF=y
# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_AXP209 is not set
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_BROXTON=m
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4147,6 +4184,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RANDOMIZE_BASE=y
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4380,6 +4418,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
CONFIG_SAMSUNG_LAPTOP=m
@@ -4518,6 +4557,7 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
# CONFIG_SCSI_UFSHCD_PLATFORM is not set
@@ -4532,6 +4572,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
# CONFIG_SCx200_ACB is not set
# CONFIG_SCx200 is not set
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4721,6 +4762,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4809,6 +4851,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
# CONFIG_SILEAD_DMI is not set
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4821,6 +4864,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5064,8 +5108,9 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5078,6 +5123,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -5097,13 +5144,17 @@ CONFIG_SND_SOC_SSM4567=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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5131,6 +5182,7 @@ CONFIG_SND_SOC_WM8524=m
CONFIG_SND_SONICVIBES=m
# CONFIG_SND_SPI is not set
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_TRIDENT=m
CONFIG_SND_USB_6FIRE=m
@@ -5168,6 +5220,10 @@ CONFIG_SONYPI_COMPAT=y
CONFIG_SONYPI=m
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -5244,6 +5300,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5337,7 +5396,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5403,7 +5461,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5566,6 +5623,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5874,6 +5932,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5895,6 +5954,7 @@ CONFIG_UWB_WHCI=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_V4L_PLATFORM_DRIVERS is not set
# CONFIG_V4L_TEST_DRIVERS is not set
+# CONFIG_VBOXGUEST is not set
# CONFIG_VCNL4000 is not set
# CONFIG_VEML6070 is not set
CONFIG_VETH=m
@@ -5961,6 +6021,7 @@ CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IPU3_CIO2=m
# CONFIG_VIDEO_IVTV_ALSA is not set
# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
CONFIG_VIDEO_IVTV=m
@@ -6016,12 +6077,13 @@ CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_ZR36060=m
# CONFIG_VIPERBOARD_ADC is not set
-# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6184,12 +6246,11 @@ CONFIG_X86_PAT=y
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY=m
CONFIG_X86_PM_TIMER=y
# CONFIG_X86_POWERNOW_K6 is not set
CONFIG_X86_POWERNOW_K7=y
CONFIG_X86_POWERNOW_K8=m
-# CONFIG_X86_PPRO_FENCE is not set
CONFIG_X86_PTDUMP=y
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_REBOOTFIXUPS is not set
@@ -6248,6 +6309,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -6274,6 +6336,7 @@ CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZONE_DMA=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config
index 7606d1f15..339e0e412 100644
--- a/kernel-i686-debug.config
+++ b/kernel-i686-debug.config
@@ -40,6 +40,7 @@ CONFIG_ACCESSIBILITY=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
# CONFIG_ACORN_PARTITION is not set
CONFIG_ACPI_AC=y
@@ -75,6 +76,7 @@ CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_TOSHIBA=m
@@ -251,6 +253,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -264,6 +267,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -449,6 +453,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -503,6 +508,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -720,6 +726,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -747,6 +754,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1014,7 +1022,6 @@ CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SET_MODULE_RONX=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1041,8 +1048,8 @@ CONFIG_DELL_LAPTOP=m
CONFIG_DELL_RBTN=m
# CONFIG_DELL_RBU is not set
CONFIG_DELL_SMBIOS=m
-CONFIG_DELL_SMBIOS_SMM=m
-CONFIG_DELL_SMBIOS_WMI=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_LED=m
@@ -1103,6 +1110,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1173,6 +1181,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1247,6 +1256,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1260,6 +1270,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1425,6 +1436,7 @@ CONFIG_F2FS_FS_XATTR=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_F2FS_STAT_FS=y
CONFIG_F71808E_WDT=m
+CONFIG_FAIL_FUNCTION=y
# CONFIG_FAIL_FUTEX is not set
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_MAKE_REQUEST=y
@@ -1531,6 +1543,7 @@ CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1628,6 +1641,7 @@ CONFIG_GIGASET_M105=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GP2AP020A00F is not set
+CONFIG_GPD_POCKET_FAN=m
# CONFIG_GPIO_104_DIO_48E is not set
# CONFIG_GPIO_104_IDI_48 is not set
# CONFIG_GPIO_104_IDIO_16 is not set
@@ -1666,6 +1680,7 @@ CONFIG_GPIOLIB=y
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1696,6 +1711,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HD44780=m
@@ -1743,6 +1759,7 @@ CONFIG_HID_HOLTEK=m
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1899,7 +1916,7 @@ CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_GEODE=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
@@ -2028,6 +2045,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2178,6 +2196,7 @@ CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
@@ -2240,6 +2259,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2373,7 +2393,6 @@ CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2534,7 +2553,7 @@ CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KEXEC_FILE is not set
# CONFIG_KEXEC_JUMP is not set
-# CONFIG_KEXEC_VERIFY_SIG is not set
+# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2641,6 +2660,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2673,6 +2693,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2707,11 +2728,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2867,6 +2888,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2944,8 +2966,6 @@ CONFIG_MFD_INTEL_LPSS_PCI=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2996,6 +3016,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3028,6 +3050,8 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLX_PLATFORM=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3048,6 +3072,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -3137,6 +3162,7 @@ CONFIG_MSI_WMI=m
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -3283,9 +3309,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3469,6 +3497,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3501,6 +3530,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3580,6 +3610,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3641,6 +3675,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3885,6 +3920,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3960,6 +3996,7 @@ CONFIG_PHYSICAL_START=0x400000
CONFIG_PID_NS=y
CONFIG_PINCONF=y
# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_AXP209 is not set
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_BROXTON=m
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4147,6 +4184,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RANDOMIZE_BASE=y
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4380,6 +4418,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
CONFIG_SAMSUNG_LAPTOP=m
@@ -4518,6 +4557,7 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
# CONFIG_SCSI_UFSHCD_PLATFORM is not set
@@ -4532,6 +4572,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
# CONFIG_SCx200_ACB is not set
# CONFIG_SCx200 is not set
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4721,6 +4762,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4809,6 +4851,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
# CONFIG_SILEAD_DMI is not set
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4821,6 +4864,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5064,8 +5108,9 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5078,6 +5123,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -5097,13 +5144,17 @@ CONFIG_SND_SOC_SSM4567=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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5131,6 +5182,7 @@ CONFIG_SND_SOC_WM8524=m
CONFIG_SND_SONICVIBES=m
# CONFIG_SND_SPI is not set
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_TRIDENT=m
CONFIG_SND_USB_6FIRE=m
@@ -5168,6 +5220,10 @@ CONFIG_SONYPI_COMPAT=y
CONFIG_SONYPI=m
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -5244,6 +5300,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5337,7 +5396,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5403,7 +5461,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5566,6 +5623,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5874,6 +5932,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5895,6 +5954,7 @@ CONFIG_UWB_WHCI=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_V4L_PLATFORM_DRIVERS is not set
# CONFIG_V4L_TEST_DRIVERS is not set
+# CONFIG_VBOXGUEST is not set
# CONFIG_VCNL4000 is not set
# CONFIG_VEML6070 is not set
CONFIG_VETH=m
@@ -5961,6 +6021,7 @@ CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IPU3_CIO2=m
# CONFIG_VIDEO_IVTV_ALSA is not set
# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
CONFIG_VIDEO_IVTV=m
@@ -6016,12 +6077,13 @@ CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_ZR36060=m
# CONFIG_VIPERBOARD_ADC is not set
-# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6184,12 +6246,11 @@ CONFIG_X86_PAT=y
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY=m
CONFIG_X86_PM_TIMER=y
# CONFIG_X86_POWERNOW_K6 is not set
CONFIG_X86_POWERNOW_K7=y
CONFIG_X86_POWERNOW_K8=m
-# CONFIG_X86_PPRO_FENCE is not set
CONFIG_X86_PTDUMP=y
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_REBOOTFIXUPS is not set
@@ -6246,6 +6307,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -6272,6 +6334,7 @@ CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZONE_DMA=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-i686.config b/kernel-i686.config
index e159f4551..c27fb87a7 100644
--- a/kernel-i686.config
+++ b/kernel-i686.config
@@ -40,6 +40,7 @@ CONFIG_ACCESSIBILITY=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
# CONFIG_ACORN_PARTITION is not set
CONFIG_ACPI_AC=y
@@ -75,6 +76,7 @@ CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_TOSHIBA=m
@@ -250,6 +252,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -263,6 +266,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -448,6 +452,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -502,6 +507,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -719,6 +725,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -746,6 +753,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -1005,7 +1013,6 @@ CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_SG is not set
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
# CONFIG_DEBUG_SPINLOCK is not set
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1031,8 +1038,8 @@ CONFIG_DELL_LAPTOP=m
CONFIG_DELL_RBTN=m
# CONFIG_DELL_RBU is not set
CONFIG_DELL_SMBIOS=m
-CONFIG_DELL_SMBIOS_SMM=m
-CONFIG_DELL_SMBIOS_WMI=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_LED=m
@@ -1092,6 +1099,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1162,6 +1170,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1236,6 +1245,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1249,6 +1259,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1513,6 +1524,7 @@ CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1610,6 +1622,7 @@ CONFIG_GIGASET_M105=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GP2AP020A00F is not set
+CONFIG_GPD_POCKET_FAN=m
# CONFIG_GPIO_104_DIO_48E is not set
# CONFIG_GPIO_104_IDI_48 is not set
# CONFIG_GPIO_104_IDIO_16 is not set
@@ -1648,6 +1661,7 @@ CONFIG_GPIOLIB=y
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1678,6 +1692,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HD44780=m
@@ -1725,6 +1740,7 @@ CONFIG_HID_HOLTEK=m
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1881,7 +1897,7 @@ CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_GEODE=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
@@ -2010,6 +2026,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2160,6 +2177,7 @@ CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
@@ -2222,6 +2240,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2355,7 +2374,6 @@ CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2514,7 +2532,7 @@ CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KEXEC_FILE is not set
# CONFIG_KEXEC_JUMP is not set
-# CONFIG_KEXEC_VERIFY_SIG is not set
+# CONFIG_KEXEC_SIG is not set
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2621,6 +2639,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2653,6 +2672,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2687,11 +2707,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2847,6 +2867,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2924,8 +2945,6 @@ CONFIG_MFD_INTEL_LPSS_PCI=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2976,6 +2995,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3008,6 +3029,8 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLX_PLATFORM=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3028,6 +3051,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -3117,6 +3141,7 @@ CONFIG_MSI_WMI=m
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -3263,9 +3288,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3449,6 +3476,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3481,6 +3509,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3560,6 +3589,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3621,6 +3654,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3865,6 +3899,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3940,6 +3975,7 @@ CONFIG_PHYSICAL_START=0x400000
CONFIG_PID_NS=y
CONFIG_PINCONF=y
# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_AXP209 is not set
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_BROXTON=m
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4126,6 +4162,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RANDOMIZE_BASE=y
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4359,6 +4396,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
CONFIG_SAMSUNG_LAPTOP=m
@@ -4497,6 +4535,7 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
# CONFIG_SCSI_UFSHCD_PLATFORM is not set
@@ -4511,6 +4550,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
# CONFIG_SCx200_ACB is not set
# CONFIG_SCx200 is not set
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4700,6 +4740,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4788,6 +4829,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
# CONFIG_SILEAD_DMI is not set
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4800,6 +4842,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5042,8 +5085,9 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5056,6 +5100,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -5075,13 +5121,17 @@ CONFIG_SND_SOC_SSM4567=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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5109,6 +5159,7 @@ CONFIG_SND_SOC_WM8524=m
CONFIG_SND_SONICVIBES=m
# CONFIG_SND_SPI is not set
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_TRIDENT=m
CONFIG_SND_USB_6FIRE=m
@@ -5146,6 +5197,10 @@ CONFIG_SONYPI_COMPAT=y
CONFIG_SONYPI=m
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -5222,6 +5277,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5315,7 +5373,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5381,7 +5438,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5544,6 +5600,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5852,6 +5909,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5873,6 +5931,7 @@ CONFIG_UWB_WHCI=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_V4L_PLATFORM_DRIVERS is not set
# CONFIG_V4L_TEST_DRIVERS is not set
+# CONFIG_VBOXGUEST is not set
# CONFIG_VCNL4000 is not set
# CONFIG_VEML6070 is not set
CONFIG_VETH=m
@@ -5939,6 +5998,7 @@ CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IPU3_CIO2=m
# CONFIG_VIDEO_IVTV_ALSA is not set
# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
CONFIG_VIDEO_IVTV=m
@@ -5994,12 +6054,13 @@ CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_ZR36060=m
# CONFIG_VIPERBOARD_ADC is not set
-# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6162,12 +6223,11 @@ CONFIG_X86_PAT=y
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY=m
CONFIG_X86_PM_TIMER=y
# CONFIG_X86_POWERNOW_K6 is not set
CONFIG_X86_POWERNOW_K7=y
CONFIG_X86_POWERNOW_K8=m
-# CONFIG_X86_PPRO_FENCE is not set
# CONFIG_X86_PTDUMP is not set
# CONFIG_X86_RDC321X is not set
# CONFIG_X86_REBOOTFIXUPS is not set
@@ -6224,6 +6284,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -6250,6 +6311,7 @@ CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZONE_DMA=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config
index 73a93ec2f..848a70e62 100644
--- a/kernel-ppc64-debug.config
+++ b/kernel-ppc64-debug.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -199,6 +200,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -212,6 +214,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -418,6 +421,7 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_NS87415 is not set
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -488,6 +492,7 @@ CONFIG_BOOTX_TEXT=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -705,6 +710,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -730,6 +736,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -993,7 +1000,6 @@ CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SET_MODULE_RONX=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1070,6 +1076,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1126,6 +1133,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1199,6 +1207,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1212,6 +1221,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1342,6 +1352,7 @@ CONFIG_F2FS_FS_XATTR=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_F2FS_STAT_FS=y
CONFIG_FA_DUMP=y
+CONFIG_FAIL_FUNCTION=y
# CONFIG_FAIL_FUTEX is not set
# CONFIG_FAIL_IOMMU is not set
CONFIG_FAIL_IO_TIMEOUT=y
@@ -1443,6 +1454,7 @@ CONFIG_FCOE=m
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
# CONFIG_FHCI_DEBUG is not set
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1571,6 +1583,7 @@ CONFIG_GPIOLIB=y
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1599,6 +1612,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
@@ -1646,6 +1660,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1795,7 +1810,7 @@ CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_POWERNV=m
CONFIG_HW_RANDOM_PSERIES=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
@@ -1919,6 +1934,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2091,6 +2107,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2220,7 +2237,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2485,6 +2501,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2518,6 +2535,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2550,11 +2568,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2705,6 +2723,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2783,8 +2802,6 @@ CONFIG_MFD_CORE=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2833,6 +2850,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -2862,6 +2881,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -2882,6 +2902,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -2966,6 +2987,7 @@ CONFIG_MSI_BITMAP_SELFTEST=y
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -3102,9 +3124,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3287,6 +3311,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3321,6 +3346,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3399,6 +3425,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3460,6 +3490,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3582,6 +3613,7 @@ CONFIG_OCFS2_FS=m
CONFIG_OCFS2_FS_O2CB=m
# CONFIG_OCFS2_FS_STATS is not set
CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCXL=m
# CONFIG_OF_OVERLAY is not set
# CONFIG_OF_UNITTEST is not set
# CONFIG_OMFS_FS is not set
@@ -3681,6 +3713,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3742,6 +3775,7 @@ CONFIG_PHYLINK=m
# CONFIG_PI433 is not set
CONFIG_PID_NS=y
# CONFIG_PINCONF is not set
+# CONFIG_PINCTRL_AXP209 is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_IPQ8074 is not set
@@ -3816,7 +3850,9 @@ CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_ICSWX_PID is not set
# CONFIG_PPC_ICSWX_USE_SIGILL is not set
CONFIG_PPC_ICSWX=y
+# CONFIG_PPC_IRQ_SOFT_MASK_DEBUG is not set
CONFIG_PPC_MAPLE=y
+CONFIG_PPC_MEM_KEYS=y
# CONFIG_PPC_MEMTRACE is not set
# CONFIG_PPC_MPC5200_LPBFIFO is not set
CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
@@ -3955,6 +3991,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4191,6 +4228,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
# CONFIG_SAMSUNG_USBPHY is not set
@@ -4333,9 +4371,8 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
+# CONFIG_SCSI_UFSHCD is not set
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -4345,6 +4382,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SD_ADC_MODULATOR is not set
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4520,6 +4558,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4611,6 +4650,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_GPIO=y
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4623,6 +4663,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -4848,6 +4889,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
# CONFIG_SND_SOC is not set
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -4860,6 +4902,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -4879,13 +4923,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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
# CONFIG_SND_SOC_TS3A227E is not set
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -4946,6 +4994,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
@@ -4955,6 +5006,7 @@ CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPI_AXI_SPI_ENGINE is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_DEBUG is not set
# CONFIG_SPI_DESIGNWARE is not set
CONFIG_SPI_FSL_LPSPI=m
@@ -5019,6 +5071,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5111,7 +5166,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5170,7 +5224,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5329,6 +5382,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5641,6 +5695,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5785,6 +5840,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -5931,6 +5987,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XILINX_EMACLITE is not set
CONFIG_XILINX_GMII2RGMII=m
# CONFIG_XILINX_LL_TEMAC is not set
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -5958,6 +6015,7 @@ CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
# CONFIG_ZONE_DEVICE is not set
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-ppc64.config b/kernel-ppc64.config
index fdcc1a8af..ed3fa2a54 100644
--- a/kernel-ppc64.config
+++ b/kernel-ppc64.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -198,6 +199,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -211,6 +213,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -417,6 +420,7 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -487,6 +491,7 @@ CONFIG_BOOTX_TEXT=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -704,6 +709,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -729,6 +735,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -984,7 +991,6 @@ CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_SG is not set
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
# CONFIG_DEBUG_SPINLOCK is not set
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1059,6 +1065,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1115,6 +1122,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1188,6 +1196,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1201,6 +1210,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1425,6 +1435,7 @@ CONFIG_FCOE=m
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
# CONFIG_FHCI_DEBUG is not set
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1553,6 +1564,7 @@ CONFIG_GPIOLIB=y
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1581,6 +1593,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
@@ -1628,6 +1641,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1777,7 +1791,7 @@ CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_POWERNV=m
CONFIG_HW_RANDOM_PSERIES=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
@@ -1901,6 +1915,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2073,6 +2088,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2202,7 +2218,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2465,6 +2480,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2498,6 +2514,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2530,11 +2547,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2684,6 +2701,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2762,8 +2780,6 @@ CONFIG_MFD_CORE=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2812,6 +2828,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -2841,6 +2859,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -2861,6 +2880,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -2944,6 +2964,7 @@ CONFIG_MSI_BITMAP_SELFTEST=y
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -3080,9 +3101,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3265,6 +3288,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3299,6 +3323,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3377,6 +3402,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3438,6 +3467,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3560,6 +3590,7 @@ CONFIG_OCFS2_FS=m
CONFIG_OCFS2_FS_O2CB=m
# CONFIG_OCFS2_FS_STATS is not set
CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCXL=m
# CONFIG_OF_OVERLAY is not set
# CONFIG_OF_UNITTEST is not set
# CONFIG_OMFS_FS is not set
@@ -3659,6 +3690,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3720,6 +3752,7 @@ CONFIG_PHYLINK=m
# CONFIG_PI433 is not set
CONFIG_PID_NS=y
# CONFIG_PINCONF is not set
+# CONFIG_PINCTRL_AXP209 is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_IPQ8074 is not set
@@ -3794,7 +3827,9 @@ CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_ICSWX_PID is not set
# CONFIG_PPC_ICSWX_USE_SIGILL is not set
CONFIG_PPC_ICSWX=y
+# CONFIG_PPC_IRQ_SOFT_MASK_DEBUG is not set
CONFIG_PPC_MAPLE=y
+CONFIG_PPC_MEM_KEYS=y
# CONFIG_PPC_MEMTRACE is not set
# CONFIG_PPC_MPC5200_LPBFIFO is not set
CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
@@ -3932,6 +3967,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4168,6 +4204,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
# CONFIG_SAMSUNG_USBPHY is not set
@@ -4310,9 +4347,8 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
+# CONFIG_SCSI_UFSHCD is not set
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -4322,6 +4358,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SD_ADC_MODULATOR is not set
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4497,6 +4534,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4588,6 +4626,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_GPIO=y
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4600,6 +4639,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -4824,6 +4864,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
# CONFIG_SND_SOC is not set
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -4836,6 +4877,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -4855,13 +4898,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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
# CONFIG_SND_SOC_TS3A227E is not set
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -4922,6 +4969,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
@@ -4931,6 +4981,7 @@ CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPI_AXI_SPI_ENGINE is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_DEBUG is not set
# CONFIG_SPI_DESIGNWARE is not set
CONFIG_SPI_FSL_LPSPI=m
@@ -4995,6 +5046,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5087,7 +5141,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5146,7 +5199,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5305,6 +5357,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5617,6 +5670,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5761,6 +5815,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -5907,6 +5962,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XILINX_EMACLITE is not set
CONFIG_XILINX_GMII2RGMII=m
# CONFIG_XILINX_LL_TEMAC is not set
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -5934,6 +5990,7 @@ CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
# CONFIG_ZONE_DEVICE is not set
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config
index 24576b201..f8f99e020 100644
--- a/kernel-ppc64le-debug.config
+++ b/kernel-ppc64le-debug.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -192,6 +193,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -205,6 +207,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -388,6 +391,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -444,6 +448,7 @@ CONFIG_BOOTX_TEXT=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -661,6 +666,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -686,6 +692,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -947,7 +954,6 @@ CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SET_MODULE_RONX=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1025,6 +1031,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1081,6 +1088,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1154,6 +1162,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1167,6 +1176,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1295,6 +1305,7 @@ CONFIG_F2FS_FS_XATTR=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_F2FS_STAT_FS=y
CONFIG_FA_DUMP=y
+CONFIG_FAIL_FUNCTION=y
# CONFIG_FAIL_FUTEX is not set
# CONFIG_FAIL_IOMMU is not set
CONFIG_FAIL_IO_TIMEOUT=y
@@ -1396,6 +1407,7 @@ CONFIG_FCOE=m
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
# CONFIG_FHCI_DEBUG is not set
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1524,6 +1536,7 @@ CONFIG_GPIOLIB=y
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1552,6 +1565,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
@@ -1599,6 +1613,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1747,7 +1762,7 @@ CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_POWERNV=m
CONFIG_HW_RANDOM_PSERIES=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
@@ -1864,6 +1879,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2036,6 +2052,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2165,7 +2182,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2430,6 +2446,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2463,6 +2480,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2495,11 +2513,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2650,6 +2668,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2728,8 +2747,6 @@ CONFIG_MFD_CORE=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2778,6 +2795,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -2807,6 +2826,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -2827,6 +2847,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -2910,6 +2931,7 @@ CONFIG_MSI_BITMAP_SELFTEST=y
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -3046,9 +3068,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3231,6 +3255,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3265,6 +3290,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3343,6 +3369,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3404,6 +3434,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3526,6 +3557,7 @@ CONFIG_OCFS2_FS=m
CONFIG_OCFS2_FS_O2CB=m
# CONFIG_OCFS2_FS_STATS is not set
CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCXL=m
# CONFIG_OF_OVERLAY is not set
# CONFIG_OF_UNITTEST is not set
# CONFIG_OMFS_FS is not set
@@ -3623,6 +3655,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3684,6 +3717,7 @@ CONFIG_PHYLINK=m
# CONFIG_PI433 is not set
CONFIG_PID_NS=y
# CONFIG_PINCONF is not set
+# CONFIG_PINCTRL_AXP209 is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_IPQ8074 is not set
@@ -3755,7 +3789,9 @@ CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_ICSWX_PID is not set
# CONFIG_PPC_ICSWX_USE_SIGILL is not set
CONFIG_PPC_ICSWX=y
+# CONFIG_PPC_IRQ_SOFT_MASK_DEBUG is not set
# CONFIG_PPC_MAPLE is not set
+CONFIG_PPC_MEM_KEYS=y
# CONFIG_PPC_MEMTRACE is not set
# CONFIG_PPC_MPC5200_LPBFIFO is not set
CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
@@ -3894,6 +3930,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4130,6 +4167,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
# CONFIG_SAMSUNG_USBPHY is not set
@@ -4272,9 +4310,8 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
+# CONFIG_SCSI_UFSHCD is not set
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -4284,6 +4321,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SD_ADC_MODULATOR is not set
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4459,6 +4497,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4548,6 +4587,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_GPIO=y
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4560,6 +4600,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -4776,6 +4817,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
# CONFIG_SND_SOC is not set
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -4788,6 +4830,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -4807,13 +4851,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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
# CONFIG_SND_SOC_TS3A227E is not set
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -4874,6 +4922,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
@@ -4883,6 +4934,7 @@ CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPI_AXI_SPI_ENGINE is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_DEBUG is not set
# CONFIG_SPI_DESIGNWARE is not set
CONFIG_SPI_FSL_LPSPI=m
@@ -4947,6 +4999,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5039,7 +5094,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5098,7 +5152,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5257,6 +5310,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5569,6 +5623,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5713,6 +5768,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -5853,6 +5909,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XILINX_EMACLITE is not set
CONFIG_XILINX_GMII2RGMII=m
# CONFIG_XILINX_LL_TEMAC is not set
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -5880,6 +5937,7 @@ CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
# CONFIG_ZONE_DEVICE is not set
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config
index 4229e0d76..6c515f8b3 100644
--- a/kernel-ppc64le.config
+++ b/kernel-ppc64le.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -191,6 +192,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -204,6 +206,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -387,6 +390,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -443,6 +447,7 @@ CONFIG_BOOTX_TEXT=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -660,6 +665,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -685,6 +691,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -938,7 +945,6 @@ CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_SG is not set
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
# CONFIG_DEBUG_SPINLOCK is not set
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1014,6 +1020,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1070,6 +1077,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1143,6 +1151,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1156,6 +1165,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1378,6 +1388,7 @@ CONFIG_FCOE=m
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
# CONFIG_FHCI_DEBUG is not set
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1506,6 +1517,7 @@ CONFIG_GPIOLIB=y
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1534,6 +1546,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
@@ -1581,6 +1594,7 @@ CONFIG_HID_GYRATION=m
CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1729,7 +1743,7 @@ CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_POWERNV=m
CONFIG_HW_RANDOM_PSERIES=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
@@ -1846,6 +1860,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2018,6 +2033,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2147,7 +2163,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2410,6 +2425,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2443,6 +2459,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2475,11 +2492,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2629,6 +2646,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2707,8 +2725,6 @@ CONFIG_MFD_CORE=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2757,6 +2773,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -2786,6 +2804,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -2806,6 +2825,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -2888,6 +2908,7 @@ CONFIG_MSI_BITMAP_SELFTEST=y
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -3024,9 +3045,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3209,6 +3232,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3243,6 +3267,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3321,6 +3346,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3382,6 +3411,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3504,6 +3534,7 @@ CONFIG_OCFS2_FS=m
CONFIG_OCFS2_FS_O2CB=m
# CONFIG_OCFS2_FS_STATS is not set
CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OCXL=m
# CONFIG_OF_OVERLAY is not set
# CONFIG_OF_UNITTEST is not set
# CONFIG_OMFS_FS is not set
@@ -3601,6 +3632,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3662,6 +3694,7 @@ CONFIG_PHYLINK=m
# CONFIG_PI433 is not set
CONFIG_PID_NS=y
# CONFIG_PINCONF is not set
+# CONFIG_PINCTRL_AXP209 is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_IPQ8074 is not set
@@ -3733,7 +3766,9 @@ CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_ICSWX_PID is not set
# CONFIG_PPC_ICSWX_USE_SIGILL is not set
CONFIG_PPC_ICSWX=y
+# CONFIG_PPC_IRQ_SOFT_MASK_DEBUG is not set
# CONFIG_PPC_MAPLE is not set
+CONFIG_PPC_MEM_KEYS=y
# CONFIG_PPC_MEMTRACE is not set
# CONFIG_PPC_MPC5200_LPBFIFO is not set
CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
@@ -3871,6 +3906,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4107,6 +4143,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
# CONFIG_SAMSUNG_USBPHY is not set
@@ -4249,9 +4286,8 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
+# CONFIG_SCSI_UFSHCD is not set
CONFIG_SCSI_VIRTIO=m
CONFIG_SCSI_WD719X=m
CONFIG_SCSI=y
@@ -4261,6 +4297,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SD_ADC_MODULATOR is not set
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4436,6 +4473,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4525,6 +4563,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_GPIO=y
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4537,6 +4576,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -4752,6 +4792,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
# CONFIG_SND_SOC is not set
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -4764,6 +4805,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -4783,13 +4826,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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
# CONFIG_SND_SOC_TS3A227E is not set
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -4850,6 +4897,9 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
@@ -4859,6 +4909,7 @@ CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPI_AXI_SPI_ENGINE is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_DEBUG is not set
# CONFIG_SPI_DESIGNWARE is not set
CONFIG_SPI_FSL_LPSPI=m
@@ -4923,6 +4974,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5015,7 +5069,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5074,7 +5127,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5233,6 +5285,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5545,6 +5598,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5689,6 +5743,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -5829,6 +5884,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XILINX_EMACLITE is not set
CONFIG_XILINX_GMII2RGMII=m
# CONFIG_XILINX_LL_TEMAC is not set
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -5856,6 +5912,7 @@ CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
# CONFIG_ZONE_DEVICE is not set
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config
index 302c90970..54b47a5db 100644
--- a/kernel-s390x-debug.config
+++ b/kernel-s390x-debug.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
CONFIG_ACPI_DEBUG=y
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -196,6 +197,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -209,6 +211,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -390,6 +393,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -445,6 +449,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -663,6 +668,7 @@ CONFIG_CGROUPS=y
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_CHECK_STACK=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -689,6 +695,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -950,7 +957,6 @@ CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SET_MODULE_RONX=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_STACK_USAGE=y
@@ -1025,6 +1031,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1081,6 +1088,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
@@ -1153,6 +1161,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1166,6 +1175,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1262,6 +1272,8 @@ CONFIG_ETHERNET=y
# CONFIG_EXOFS_DEBUG is not set
# CONFIG_EXOFS_FS is not set
# CONFIG_EXPERT is not set
+CONFIG_EXPOLINE_MEDIUM=y
+CONFIG_EXPOLINE=y
CONFIG_EXPORTFS=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
@@ -1291,6 +1303,7 @@ CONFIG_F2FS_FS_SECURITY=y
CONFIG_F2FS_FS_XATTR=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_F2FS_STAT_FS=y
+CONFIG_FAIL_FUNCTION=y
# CONFIG_FAIL_FUTEX is not set
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_MAKE_REQUEST=y
@@ -1380,6 +1393,7 @@ CONFIG_FCOE_FNIC=m
# CONFIG_FDDI is not set
# CONFIG_FEALNX is not set
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_FIREWIRE is not set
CONFIG_FIREWIRE_NET=m
# CONFIG_FIREWIRE_NOSY is not set
@@ -1499,6 +1513,7 @@ CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1525,6 +1540,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
@@ -1570,6 +1586,7 @@ CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
# CONFIG_HID is not set
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1708,7 +1725,7 @@ CONFIG_HWLAT_TRACER=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_S390=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
@@ -1817,6 +1834,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -1989,6 +2007,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2118,7 +2137,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2276,6 +2294,7 @@ CONFIG_KDB_KEYBOARD=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
+CONFIG_KERNEL_NOBP=y
# CONFIG_KEXEC_FILE is not set
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
@@ -2375,6 +2394,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2407,6 +2427,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2439,11 +2460,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2593,6 +2614,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_SAS is not set
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2671,8 +2693,6 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-# CONFIG_MFD_RTSX_PCI is not set
-# CONFIG_MFD_RTSX_USB is not set
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2720,6 +2740,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MISC_RTSX_USB is not set
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
# CONFIG_MISDN_HFCMULTI is not set
@@ -2749,6 +2771,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
# CONFIG_MLXSW_CORE is not set
CONFIG_MLXSW_CORE_THERMAL=y
@@ -2769,6 +2792,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC is not set
# CONFIG_MMC_MTK is not set
@@ -2850,6 +2874,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -2983,9 +3008,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3169,6 +3196,7 @@ CONFIG_NET_VENDOR_AQUANTIA=y
# CONFIG_NET_VENDOR_CAVIUM is not set
# CONFIG_NET_VENDOR_CHELSIO is not set
# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_DEC is not set
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
@@ -3201,6 +3229,7 @@ CONFIG_NET_VENDOR_AQUANTIA=y
# CONFIG_NET_VENDOR_SIS is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
@@ -3277,6 +3306,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3338,6 +3371,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3555,6 +3589,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3618,6 +3653,7 @@ CONFIG_PHYLINK=m
# CONFIG_PI433 is not set
CONFIG_PID_NS=y
# CONFIG_PINCONF is not set
+# CONFIG_PINCTRL_AXP209 is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_IPQ8074 is not set
@@ -3787,6 +3823,7 @@ CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4019,6 +4056,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
CONFIG_S390_CCW_IOMMU=y
CONFIG_S390_GUEST_OLD_TRANSPORT=y
@@ -4175,9 +4213,8 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
# CONFIG_SCSI_UFSHCD is not set
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
CONFIG_SCSI_VIRTIO=m
# CONFIG_SCSI_WD719X is not set
CONFIG_SCSI=y
@@ -4187,6 +4224,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SD_ADC_MODULATOR is not set
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4361,6 +4399,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4445,6 +4484,7 @@ CONFIG_SHARED_KERNEL=y
# CONFIG_SIGMA is not set
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4457,6 +4497,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
# CONFIG_SLIP is not set
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -4674,6 +4715,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -4686,6 +4728,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -4705,13 +4749,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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
# CONFIG_SND_SOC_TS3A227E is not set
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -4772,12 +4820,16 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
# CONFIG_SOUND is not set
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPEAKUP is not set
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_DEBUG is not set
# CONFIG_SPI_DESIGNWARE is not set
CONFIG_SPI_FSL_LPSPI=m
@@ -4843,6 +4895,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -4933,7 +4988,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -4992,7 +5046,6 @@ CONFIG_TIFM_7XX1=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5154,6 +5207,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5461,6 +5515,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5606,6 +5661,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -5745,6 +5801,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_XILLYBUS is not set
# CONFIG_XILLYBUS_OF is not set
@@ -5769,6 +5826,7 @@ CONFIG_ZFCP=m
CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-s390x.config b/kernel-s390x.config
index a84f7d263..785fc05aa 100644
--- a/kernel-s390x.config
+++ b/kernel-s390x.config
@@ -44,6 +44,7 @@ CONFIG_ACPI_ALS=m
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_SPCR_TABLE=y
# CONFIG_ACQUIRE_WDT is not set
# CONFIG_AD2S1200 is not set
# CONFIG_AD2S1210 is not set
@@ -195,6 +196,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -208,6 +210,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -389,6 +392,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -444,6 +448,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -662,6 +667,7 @@ CONFIG_CGROUPS=y
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_CHECK_STACK=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -688,6 +694,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -941,7 +948,6 @@ CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_SG is not set
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
@@ -1014,6 +1020,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1070,6 +1077,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
@@ -1142,6 +1150,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1155,6 +1164,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1251,6 +1261,8 @@ CONFIG_ETHERNET=y
# CONFIG_EXOFS_DEBUG is not set
# CONFIG_EXOFS_FS is not set
# CONFIG_EXPERT is not set
+CONFIG_EXPOLINE_MEDIUM=y
+CONFIG_EXPOLINE=y
CONFIG_EXPORTFS=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
@@ -1362,6 +1374,7 @@ CONFIG_FCOE_FNIC=m
# CONFIG_FDDI is not set
# CONFIG_FEALNX is not set
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
# CONFIG_FIREWIRE is not set
CONFIG_FIREWIRE_NET=m
# CONFIG_FIREWIRE_NOSY is not set
@@ -1481,6 +1494,7 @@ CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1507,6 +1521,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
@@ -1552,6 +1567,7 @@ CONFIG_HID_HOLTEK=m
CONFIG_HID_ICADE=m
# CONFIG_HID is not set
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1690,7 +1706,7 @@ CONFIG_HWLAT_TRACER=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_S390=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
CONFIG_HWSPINLOCK=y
@@ -1799,6 +1815,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -1971,6 +1988,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2100,7 +2118,6 @@ CONFIG_IPVTAP=m
# CONFIG_IPW2200_DEBUG is not set
# CONFIG_IPW2200 is not set
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2256,6 +2273,7 @@ CONFIG_KDB_CONTINUE_CATASTROPHIC=0
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
+CONFIG_KERNEL_NOBP=y
# CONFIG_KEXEC_FILE is not set
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
@@ -2355,6 +2373,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2387,6 +2406,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2419,11 +2439,11 @@ CONFIG_LIBFCOE=m
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2572,6 +2592,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_SAS is not set
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2650,8 +2671,6 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-# CONFIG_MFD_RTSX_PCI is not set
-# CONFIG_MFD_RTSX_USB is not set
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -2699,6 +2718,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MISC_RTSX_USB is not set
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
# CONFIG_MISDN_HFCMULTI is not set
@@ -2728,6 +2749,7 @@ CONFIG_MLX5_MPFS=y
# CONFIG_MLX90614 is not set
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
# CONFIG_MLXSW_CORE is not set
CONFIG_MLXSW_CORE_THERMAL=y
@@ -2748,6 +2770,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC is not set
# CONFIG_MMC_MTK is not set
@@ -2828,6 +2851,7 @@ CONFIG_MSDOS_PARTITION=y
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
# CONFIG_MTD_BLKDEVS is not set
@@ -2961,9 +2985,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3147,6 +3173,7 @@ CONFIG_NET_VENDOR_AQUANTIA=y
# CONFIG_NET_VENDOR_CAVIUM is not set
# CONFIG_NET_VENDOR_CHELSIO is not set
# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_CORTINA is not set
# CONFIG_NET_VENDOR_DEC is not set
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
@@ -3179,6 +3206,7 @@ CONFIG_NET_VENDOR_AQUANTIA=y
# CONFIG_NET_VENDOR_SIS is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
@@ -3255,6 +3283,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3316,6 +3348,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3533,6 +3566,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3596,6 +3630,7 @@ CONFIG_PHYLINK=m
# CONFIG_PI433 is not set
CONFIG_PID_NS=y
# CONFIG_PINCONF is not set
+# CONFIG_PINCTRL_AXP209 is not set
# CONFIG_PINCTRL_CANNONLAKE is not set
CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_IPQ8074 is not set
@@ -3764,6 +3799,7 @@ CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3996,6 +4032,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
CONFIG_S390_CCW_IOMMU=y
CONFIG_S390_GUEST_OLD_TRANSPORT=y
@@ -4152,9 +4189,8 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
# CONFIG_SCSI_UFSHCD is not set
-CONFIG_SCSI_UFSHCD_PCI=m
-# CONFIG_SCSI_UFSHCD_PLATFORM is not set
CONFIG_SCSI_VIRTIO=m
# CONFIG_SCSI_WD719X is not set
CONFIG_SCSI=y
@@ -4164,6 +4200,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+# CONFIG_SD_ADC_MODULATOR is not set
CONFIG_SDIO_UART=m
CONFIG_SECCOMP=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -4338,6 +4375,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4422,6 +4460,7 @@ CONFIG_SHARED_KERNEL=y
# CONFIG_SIGMA is not set
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4434,6 +4473,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
# CONFIG_SLIP is not set
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -4650,6 +4690,7 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -4662,6 +4703,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -4681,13 +4724,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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
# CONFIG_SND_SOC_TS3A227E is not set
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -4748,12 +4795,16 @@ CONFIG_SONY_FF=y
# CONFIG_SONYPI is not set
# CONFIG_SOUND is not set
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE=y
CONFIG_SPARSE_RCU_POINTER=y
# CONFIG_SPEAKUP is not set
# CONFIG_SPI_ALTERA is not set
# CONFIG_SPI_AXI_SPI_ENGINE is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_BUTTERFLY is not set
+# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_DEBUG is not set
# CONFIG_SPI_DESIGNWARE is not set
CONFIG_SPI_FSL_LPSPI=m
@@ -4819,6 +4870,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -4909,7 +4963,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -4968,7 +5021,6 @@ CONFIG_TIFM_7XX1=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5130,6 +5182,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5437,6 +5490,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_PLATFORM is not set
CONFIG_USB_XUSBATM=m
@@ -5582,6 +5636,7 @@ CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=y
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -5721,6 +5776,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_XILLYBUS is not set
# CONFIG_XILLYBUS_OF is not set
@@ -5745,6 +5801,7 @@ CONFIG_ZFCP=m
CONFIG_ZISOFS=y
CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config
index 28c87711c..dce53cf78 100644
--- a/kernel-x86_64-debug.config
+++ b/kernel-x86_64-debug.config
@@ -40,6 +40,7 @@ CONFIG_ACCESSIBILITY=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
# CONFIG_ACORN_PARTITION is not set
CONFIG_ACPI_AC=y
@@ -78,6 +79,7 @@ CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_TOSHIBA=m
@@ -254,6 +256,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -267,6 +270,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -459,6 +463,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION=y
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -515,6 +520,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -734,6 +740,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -762,6 +769,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -904,6 +912,7 @@ CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
# CONFIG_CRYPTO_DEV_SP_CCP is not set
+CONFIG_CRYPTO_DEV_SP_PSP=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
@@ -1054,7 +1063,6 @@ CONFIG_DEBUG_RT_MUTEXES=y
CONFIG_DEBUG_SET_MODULE_RONX=y
CONFIG_DEBUG_SG=y
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
CONFIG_DEBUG_SLAB=y
CONFIG_DEBUG_SPINLOCK=y
CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1081,8 +1089,8 @@ CONFIG_DELL_LAPTOP=m
CONFIG_DELL_RBTN=m
# CONFIG_DELL_RBU is not set
CONFIG_DELL_SMBIOS=m
-CONFIG_DELL_SMBIOS_SMM=m
-CONFIG_DELL_SMBIOS_WMI=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_LED=m
@@ -1149,6 +1157,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1219,6 +1228,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1293,6 +1303,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1306,6 +1317,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1473,6 +1485,7 @@ CONFIG_F2FS_FS_XATTR=y
# CONFIG_F2FS_IO_TRACE is not set
CONFIG_F2FS_STAT_FS=y
CONFIG_F71808E_WDT=m
+CONFIG_FAIL_FUNCTION=y
# CONFIG_FAIL_FUTEX is not set
CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_MAKE_REQUEST=y
@@ -1574,6 +1587,7 @@ CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1671,6 +1685,7 @@ CONFIG_GIGASET_M105=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GP2AP020A00F is not set
+CONFIG_GPD_POCKET_FAN=m
# CONFIG_GPIO_104_DIO_48E is not set
# CONFIG_GPIO_104_IDI_48 is not set
# CONFIG_GPIO_104_IDIO_16 is not set
@@ -1709,6 +1724,7 @@ CONFIG_GPIOLIB=y
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1738,6 +1754,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HAVE_MEMORY_PRESENT=y
@@ -1788,6 +1805,7 @@ CONFIG_HID_HOLTEK=m
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1941,7 +1959,7 @@ CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
@@ -2074,6 +2092,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2228,6 +2247,7 @@ CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
@@ -2297,6 +2317,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2430,7 +2451,6 @@ CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2534,6 +2554,7 @@ CONFIG_IXGBE_HWMON=y
CONFIG_IXGBE=m
CONFIG_IXGBEVF=m
CONFIG_IXGB=m
+# CONFIG_JAILHOUSE_GUEST is not set
CONFIG_JBD2_DEBUG=y
CONFIG_JBD2=y
# CONFIG_JFFS2_FS is not set
@@ -2593,7 +2614,8 @@ CONFIG_KERNEL_GZIP=y
CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
CONFIG_KEXEC_FILE=y
CONFIG_KEXEC_JUMP=y
-CONFIG_KEXEC_VERIFY_SIG=y
+CONFIG_KEXEC_SIG_FORCE=y
+CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2646,6 +2668,7 @@ CONFIG_KS0108_PORT=0x378
CONFIG_KSM=y
CONFIG_KSZ884X_PCI=m
CONFIG_KVM_AMD=m
+CONFIG_KVM_AMD_SEV=y
# CONFIG_KVM_DEBUG_FS is not set
CONFIG_KVM_DEVICE_ASSIGNMENT=y
CONFIG_KVM_GUEST=y
@@ -2698,6 +2721,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2730,6 +2754,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2764,11 +2789,11 @@ CONFIG_LIBNVDIMM=y
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2916,6 +2941,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2997,8 +3023,6 @@ CONFIG_MFD_INTEL_LPSS_PCI=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -3050,6 +3074,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3081,6 +3107,7 @@ CONFIG_MLX5_MPFS=y
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
CONFIG_MLX_PLATFORM=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3101,6 +3128,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -3186,6 +3214,7 @@ CONFIG_MSI_WMI=m
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
CONFIG_MTD_BLKDEVS=m
@@ -3327,9 +3356,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3513,6 +3544,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3545,6 +3577,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3624,6 +3657,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3685,6 +3722,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3936,6 +3974,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -4007,6 +4046,7 @@ CONFIG_PHYSICAL_START=0x1000000
CONFIG_PID_NS=y
CONFIG_PINCONF=y
# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_AXP209 is not set
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_BROXTON=m
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4192,6 +4232,7 @@ CONFIG_RANDOMIZE_BASE=y
CONFIG_RANDOMIZE_MEMORY=y
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4458,6 +4499,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
CONFIG_SAMSUNG_LAPTOP=m
@@ -4598,6 +4640,7 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
# CONFIG_SCSI_UFSHCD_PLATFORM is not set
@@ -4610,6 +4653,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
# CONFIG_SDMA_VERBOSITY is not set
CONFIG_SECCOMP=y
@@ -4801,6 +4845,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4894,6 +4939,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SILEAD_DMI=y
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4906,6 +4952,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5149,8 +5196,9 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5163,6 +5211,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -5182,13 +5232,17 @@ CONFIG_SND_SOC_SSM4567=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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5216,6 +5270,7 @@ CONFIG_SND_SOC_WM8524=m
CONFIG_SND_SONICVIBES=m
# CONFIG_SND_SPI is not set
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_TRIDENT=m
CONFIG_SND_USB_6FIRE=m
@@ -5253,6 +5308,10 @@ CONFIG_SONYPI_COMPAT=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_EXTREME=y
@@ -5332,6 +5391,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5425,7 +5487,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5491,7 +5552,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5654,6 +5714,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5962,6 +6023,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XUSBATM=m
@@ -5984,6 +6046,7 @@ CONFIG_UWB_WHCI=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_V4L_PLATFORM_DRIVERS is not set
# CONFIG_V4L_TEST_DRIVERS is not set
+# CONFIG_VBOXGUEST is not set
# CONFIG_VCNL4000 is not set
# CONFIG_VEML6070 is not set
CONFIG_VETH=m
@@ -6050,6 +6113,7 @@ CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IPU3_CIO2=m
# CONFIG_VIDEO_IVTV_ALSA is not set
# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
CONFIG_VIDEO_IVTV=m
@@ -6105,12 +6169,13 @@ CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_ZR36060=m
# CONFIG_VIPERBOARD_ADC is not set
-# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6270,7 +6335,7 @@ CONFIG_X86_PAT=y
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY=m
CONFIG_X86_PM_TIMER=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_PTDUMP=y
@@ -6333,6 +6398,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -6359,6 +6425,7 @@ CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZONE_DEVICE=y
CONFIG_ZONE_DMA=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel-x86_64.config b/kernel-x86_64.config
index f5509af6c..2fe868f3a 100644
--- a/kernel-x86_64.config
+++ b/kernel-x86_64.config
@@ -40,6 +40,7 @@ CONFIG_ACCESSIBILITY=y
CONFIG_ACENIC=m
# CONFIG_ACENIC_OMIT_TIGON_I is not set
CONFIG_ACERHDF=m
+CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
# CONFIG_ACORN_PARTITION is not set
CONFIG_ACPI_AC=y
@@ -78,6 +79,7 @@ CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_TABLE_UPGRADE=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_TOSHIBA=m
@@ -253,6 +255,7 @@ CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
CONFIG_ATH10K_SDIO=m
+# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_ATH10K_USB=m
CONFIG_ATH5K_DEBUG=y
@@ -266,6 +269,7 @@ CONFIG_ATH6KL_USB=m
CONFIG_ATH9K_AHB=y
CONFIG_ATH9K_BTCOEX_SUPPORT=y
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
+# CONFIG_ATH9K_COMMON_SPECTRAL is not set
CONFIG_ATH9K_DEBUGFS=y
# CONFIG_ATH9K_DEBUG is not set
# CONFIG_ATH9K_DYNACK is not set
@@ -458,6 +462,7 @@ CONFIG_BLK_DEV_LOOP=m
CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
CONFIG_BLK_DEV_MD=y
CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NULL_BLK_FAULT_INJECTION is not set
CONFIG_BLK_DEV_NULL_BLK=m
CONFIG_BLK_DEV_NVME=m
# CONFIG_BLK_DEV_NVME_SCSI is not set
@@ -514,6 +519,7 @@ CONFIG_BOOT_PRINTK_DELAY=y
CONFIG_BOUNCE=y
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT=y
+# CONFIG_BPF_KPROBE_OVERRIDE is not set
CONFIG_BPF_STREAM_PARSER=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPQETHER=m
@@ -733,6 +739,7 @@ CONFIG_CHARGER_SMB347=m
# CONFIG_CHASH_SELFTEST is not set
# CONFIG_CHASH_STATS is not set
CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_CHELSIO_IPSEC_INLINE=y
CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T1=m
CONFIG_CHELSIO_T3=m
@@ -761,6 +768,7 @@ CONFIG_CIFS_NFSD_EXPORT=y
CONFIG_CIFS_POSIX=y
CONFIG_CIFS_SMB2=y
# CONFIG_CIFS_SMB311 is not set
+# CONFIG_CIFS_SMB_DIRECT is not set
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_STATS=y
CONFIG_CIFS_UPCALL=y
@@ -902,6 +910,7 @@ CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
# CONFIG_CRYPTO_DEV_SP_CCP is not set
+CONFIG_CRYPTO_DEV_SP_PSP=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
@@ -1045,7 +1054,6 @@ CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DEBUG_SET_MODULE_RONX=y
# CONFIG_DEBUG_SG is not set
CONFIG_DEBUG_SHIRQ=y
-CONFIG_DEBUG_SHOW_MEMALLOC_LINE=y
# CONFIG_DEBUG_SPINLOCK is not set
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1071,8 +1079,8 @@ CONFIG_DELL_LAPTOP=m
CONFIG_DELL_RBTN=m
# CONFIG_DELL_RBU is not set
CONFIG_DELL_SMBIOS=m
-CONFIG_DELL_SMBIOS_SMM=m
-CONFIG_DELL_SMBIOS_WMI=m
+CONFIG_DELL_SMBIOS_SMM=y
+CONFIG_DELL_SMBIOS_WMI=y
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
CONFIG_DELL_WMI_LED=m
@@ -1138,6 +1146,7 @@ CONFIG_DM_SNAPSHOT=y
CONFIG_DM_SWITCH=m
CONFIG_DM_THIN_PROVISIONING=m
CONFIG_DM_UEVENT=y
+CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
CONFIG_DM_ZERO=y
@@ -1208,6 +1217,7 @@ CONFIG_DRM_MGAG200=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
+# 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_LG_LG4573 is not set
@@ -1282,6 +1292,7 @@ CONFIG_DVB_FIREDTV=m
CONFIG_DVB_HOPPER=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_MMAP is not set
CONFIG_DVB_MN88472=m
CONFIG_DVB_MN88473=m
CONFIG_DVB_NETUP_UNIDVB=m
@@ -1295,6 +1306,7 @@ CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
+# CONFIG_DVB_ULE_DEBUG is not set
CONFIG_DVB_USB_A800=m
CONFIG_DVB_USB_AF9005=m
CONFIG_DVB_USB_AF9005_REMOTE=m
@@ -1556,6 +1568,7 @@ CONFIG_FCOE=m
# CONFIG_FDDI is not set
CONFIG_FEALNX=m
CONFIG_FHANDLE=y
+# CONFIG_FIND_BIT_BENCHMARK is not set
CONFIG_FIREWIRE=m
CONFIG_FIREWIRE_NET=m
CONFIG_FIREWIRE_NOSY=m
@@ -1653,6 +1666,7 @@ CONFIG_GIGASET_M105=m
# CONFIG_GOLDFISH is not set
# CONFIG_GOOGLE_FIRMWARE is not set
# CONFIG_GP2AP020A00F is not set
+CONFIG_GPD_POCKET_FAN=m
# CONFIG_GPIO_104_DIO_48E is not set
# CONFIG_GPIO_104_IDI_48 is not set
# CONFIG_GPIO_104_IDIO_16 is not set
@@ -1691,6 +1705,7 @@ CONFIG_GPIOLIB=y
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
CONFIG_GPIO_PCI_IDIO_16=m
# CONFIG_GPIO_PISOSR is not set
# CONFIG_GPIO_RDC321X is not set
@@ -1720,6 +1735,7 @@ CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
+CONFIG_HARDENED_USERCOPY_FALLBACK=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_HAVE_MEMORY_PRESENT=y
@@ -1770,6 +1786,7 @@ CONFIG_HID_HOLTEK=m
CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_ICADE=m
CONFIG_HID_ITE=m
+CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_KYE=m
@@ -1923,7 +1940,7 @@ CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_AMD=m
CONFIG_HW_RANDOM_INTEL=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_HW_RANDOM_TPM=m
+CONFIG_HW_RANDOM_TPM=y
CONFIG_HW_RANDOM_VIA=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM=y
@@ -2056,6 +2073,7 @@ CONFIG_IGB_HWMON=y
CONFIG_IGB=m
CONFIG_IGBVF=m
CONFIG_IIO_BUFFER_CB=m
+CONFIG_IIO_BUFFER_HW_CONSUMER=m
CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
@@ -2210,6 +2228,7 @@ CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHTDC_TI_PWRBTN=m
CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
@@ -2279,6 +2298,7 @@ CONFIG_IP6_NF_MATCH_MH=m
CONFIG_IP6_NF_MATCH_OPTS=m
CONFIG_IP6_NF_MATCH_RPFILTER=m
CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_SECURITY=m
@@ -2412,7 +2432,6 @@ CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPWIRELESS=m
-# CONFIG_IPX_INTERN is not set
# CONFIG_IPX is not set
# CONFIG_IRDA is not set
CONFIG_IR_ENE=m
@@ -2516,6 +2535,7 @@ CONFIG_IXGBE_HWMON=y
CONFIG_IXGBE=m
CONFIG_IXGBEVF=m
CONFIG_IXGB=m
+# CONFIG_JAILHOUSE_GUEST is not set
# CONFIG_JBD2_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JFFS2_FS is not set
@@ -2573,7 +2593,8 @@ CONFIG_KERNEL_GZIP=y
CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
CONFIG_KEXEC_FILE=y
CONFIG_KEXEC_JUMP=y
-CONFIG_KEXEC_VERIFY_SIG=y
+CONFIG_KEXEC_SIG_FORCE=y
+CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2626,6 +2647,7 @@ CONFIG_KS0108_PORT=0x378
CONFIG_KSM=y
CONFIG_KSZ884X_PCI=m
CONFIG_KVM_AMD=m
+CONFIG_KVM_AMD_SEV=y
# CONFIG_KVM_DEBUG_FS is not set
CONFIG_KVM_DEVICE_ASSIGNMENT=y
CONFIG_KVM_GUEST=y
@@ -2678,6 +2700,7 @@ CONFIG_LEDS_IS31FL32XX=m
CONFIG_LEDS_LM3530=m
# CONFIG_LEDS_LM355x is not set
# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_LM3692X=m
# CONFIG_LEDS_LOCOMO is not set
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
@@ -2710,6 +2733,7 @@ CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_NETDEV=m
CONFIG_LEDS_TRIGGER_ONESHOT=m
CONFIG_LEDS_TRIGGER_PANIC=y
CONFIG_LEDS_TRIGGERS=y
@@ -2744,11 +2768,11 @@ CONFIG_LIBNVDIMM=y
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
-CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_STAGING=y
+CONFIG_LIRC=y
CONFIG_LIRC_ZILOG=m
# CONFIG_LIVEPATCH is not set
# CONFIG_LKDTM is not set
@@ -2896,6 +2920,7 @@ CONFIG_MEGARAID_MAILBOX=m
CONFIG_MEGARAID_MM=m
CONFIG_MEGARAID_NEWGEN=y
CONFIG_MEGARAID_SAS=m
+CONFIG_MELLANOX_PLATFORM=y
CONFIG_MEMCG_SWAP_ENABLED=y
CONFIG_MEMCG_SWAP=y
CONFIG_MEMCG=y
@@ -2977,8 +3002,6 @@ CONFIG_MFD_INTEL_LPSS_PCI=m
# CONFIG_MFD_RK808 is not set
# CONFIG_MFD_RN5T618 is not set
# CONFIG_MFD_RT5033 is not set
-CONFIG_MFD_RTSX_PCI=m
-CONFIG_MFD_RTSX_USB=m
# CONFIG_MFD_SEC_CORE is not set
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SKY81452 is not set
@@ -3030,6 +3053,8 @@ CONFIG_MII=m
CONFIG_MINIX_FS=m
CONFIG_MINIX_SUBPARTITION=y
CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISC_RTSX_PCI=m
+CONFIG_MISC_RTSX_USB=m
CONFIG_MISDN_AVMFRITZ=m
CONFIG_MISDN_DSP=m
CONFIG_MISDN_HFCMULTI=m
@@ -3061,6 +3086,7 @@ CONFIG_MLX5_MPFS=y
CONFIG_MLX_CPLD_PLATFORM=m
CONFIG_MLXFW=m
CONFIG_MLX_PLATFORM=m
+CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXSW_CORE_HWMON=y
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_CORE_THERMAL=y
@@ -3081,6 +3107,7 @@ CONFIG_MMA7660=m
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
CONFIG_MMC_CB710=m
+CONFIG_MMC_CQHCI=m
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC=m
# CONFIG_MMC_MTK is not set
@@ -3166,6 +3193,7 @@ CONFIG_MSI_WMI=m
# CONFIG_MSM_GCC_8994 is not set
CONFIG_MSPRO_BLOCK=m
CONFIG_MT7601U=m
+CONFIG_MT76x2E=m
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_AR7_PARTS is not set
CONFIG_MTD_BLKDEVS=m
@@ -3307,9 +3335,11 @@ CONFIG_NET_CORE=y
# CONFIG_NET_DCCPPROBE is not set
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=m
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+# CONFIG_NET_DSA_LEGACY is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
CONFIG_NET_DSA_MT7530=m
@@ -3493,6 +3523,7 @@ CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_NET_VENDOR_CAVIUM is not set
CONFIG_NET_VENDOR_CHELSIO=y
CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_NET_VENDOR_CORTINA is not set
CONFIG_NET_VENDOR_DEC=y
CONFIG_NET_VENDOR_DLINK=y
CONFIG_NET_VENDOR_EMULEX=y
@@ -3525,6 +3556,7 @@ CONFIG_NET_VENDOR_SILAN=y
CONFIG_NET_VENDOR_SIS=y
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_NET_VENDOR_SNI is not set
+# CONFIG_NET_VENDOR_SOCIONEXT is not set
CONFIG_NET_VENDOR_SOLARFLARE=y
CONFIG_NET_VENDOR_STMICRO=y
CONFIG_NET_VENDOR_SUN=y
@@ -3604,6 +3636,10 @@ CONFIG_NFC_TRF7970A=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_DUP_NETDEV=m
+CONFIG_NF_FLOW_TABLE_INET=m
+CONFIG_NF_FLOW_TABLE_IPV4=m
+CONFIG_NF_FLOW_TABLE_IPV6=m
+CONFIG_NF_FLOW_TABLE=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_BRIDGE=m
CONFIG_NF_LOG_IPV4=m
@@ -3665,6 +3701,7 @@ CONFIG_NFT_FIB_INET=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NFT_FIB_IPV6=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_FLOW_OFFLOAD=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_HASH=m
CONFIG_NFT_LIMIT=m
@@ -3916,6 +3953,7 @@ CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
+CONFIG_PCIE_CADENCE_HOST=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_HOST_ECAM is not set
# CONFIG_PCIE_DW_PLAT is not set
@@ -3987,6 +4025,7 @@ CONFIG_PHYSICAL_START=0x1000000
CONFIG_PID_NS=y
CONFIG_PINCONF=y
# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_AXP209 is not set
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_BROXTON=m
# CONFIG_PINCTRL_CANNONLAKE is not set
@@ -4171,6 +4210,7 @@ CONFIG_RANDOMIZE_BASE=y
CONFIG_RANDOMIZE_MEMORY=y
# CONFIG_RAPIDIO is not set
CONFIG_RAS_CEC=y
+# CONFIG_RAVE_SP_CORE is not set
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4437,6 +4477,7 @@ CONFIG_RTLLIB=m
# CONFIG_RTLWIFI_DEBUG is not set
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
+CONFIG_RUNTIME_TESTING_MENU=y
CONFIG_S2IO=m
# CONFIG_SAMPLES is not set
CONFIG_SAMSUNG_LAPTOP=m
@@ -4577,6 +4618,7 @@ CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
CONFIG_SCSI_SYM53C8XX_MMIO=y
# CONFIG_SCSI_UFS_DWC_TC_PCI is not set
+# CONFIG_SCSI_UFS_DWC_TC_PLATFORM is not set
CONFIG_SCSI_UFSHCD=m
CONFIG_SCSI_UFSHCD_PCI=m
# CONFIG_SCSI_UFSHCD_PLATFORM is not set
@@ -4589,6 +4631,7 @@ CONFIG_SCTP_COOKIE_HMAC_SHA1=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y
+CONFIG_SD_ADC_MODULATOR=m
CONFIG_SDIO_UART=m
# CONFIG_SDMA_VERBOSITY is not set
CONFIG_SECCOMP=y
@@ -4780,6 +4823,7 @@ CONFIG_SENSORS_VT1211=m
CONFIG_SENSORS_VT8231=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83773G=m
CONFIG_SENSORS_W83781D=m
CONFIG_SENSORS_W83791D=m
CONFIG_SENSORS_W83792D=m
@@ -4873,6 +4917,7 @@ CONFIG_SH_ETH=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SILEAD_DMI=y
# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_SIOX is not set
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4885,6 +4930,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLICOSS is not set
+# CONFIG_SLIMBUS is not set
CONFIG_SLIP_COMPRESSED=y
CONFIG_SLIP=m
# CONFIG_SLIP_MODE_SLIP6 is not set
@@ -5127,8 +5173,9 @@ CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
-CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=m
+CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
CONFIG_SND_SOC_MAX98927=m
@@ -5141,6 +5188,8 @@ CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
+CONFIG_SND_SOC_PCM186X_I2C=m
+CONFIG_SND_SOC_PCM186X_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
@@ -5160,13 +5209,17 @@ CONFIG_SND_SOC_SSM4567=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_TAS6424=m
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
+CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TLV320AIC3X is not set
# CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SOC_TS3A227E=m
+CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5194,6 +5247,7 @@ CONFIG_SND_SOC_WM8524=m
CONFIG_SND_SONICVIBES=m
# CONFIG_SND_SPI is not set
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM=m
+CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_TRIDENT=m
CONFIG_SND_USB_6FIRE=m
@@ -5231,6 +5285,10 @@ CONFIG_SONYPI_COMPAT=y
# CONFIG_SONYPI is not set
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SOUNDWIRE_BUS=m
+CONFIG_SOUNDWIRE_CADENCE=m
+CONFIG_SOUNDWIRE_INTEL=m
+CONFIG_SOUNDWIRE=y
CONFIG_SP5100_TCO=m
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_EXTREME=y
@@ -5310,6 +5368,9 @@ CONFIG_STRICT_DEVMEM=y
# CONFIG_STRING_SELFTEST is not set
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
+CONFIG_ST_UVIS25_I2C=m
+CONFIG_ST_UVIS25=m
+CONFIG_ST_UVIS25_SPI=m
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5403,7 +5464,6 @@ CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
# CONFIG_TEE is not set
-# CONFIG_TEGRA_BPMP_THERMAL is not set
CONFIG_TEHUTI=m
CONFIG_TELCLOCK=m
CONFIG_TERANETICS_PHY=m
@@ -5469,7 +5529,6 @@ CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
-# CONFIG_TIMER_STATS is not set
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
@@ -5632,6 +5691,7 @@ CONFIG_UIO_SERCOS3=m
CONFIG_ULI526X=m
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_UNISYSSPAR is not set
+# CONFIG_UNISYS_VISORBUS is not set
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX_DIAG=m
CONFIG_UNIXWARE_DISKLABEL=y
@@ -5940,6 +6000,7 @@ CONFIG_USB_WDM=m
# CONFIG_USB_WUSB_CBAF_DEBUG is not set
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
+CONFIG_USB_XHCI_DBGCAP=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XUSBATM=m
@@ -5962,6 +6023,7 @@ CONFIG_UWB_WHCI=m
CONFIG_V4L_MEM2MEM_DRIVERS=y
# CONFIG_V4L_PLATFORM_DRIVERS is not set
# CONFIG_V4L_TEST_DRIVERS is not set
+# CONFIG_VBOXGUEST is not set
# CONFIG_VCNL4000 is not set
# CONFIG_VEML6070 is not set
CONFIG_VETH=m
@@ -6028,6 +6090,7 @@ CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
CONFIG_VIDEO_HDPVR=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IPU3_CIO2=m
# CONFIG_VIDEO_IVTV_ALSA is not set
# CONFIG_VIDEO_IVTV_DEPRECATED_IOCTLS is not set
CONFIG_VIDEO_IVTV=m
@@ -6083,12 +6146,13 @@ CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_ZR36060=m
# CONFIG_VIPERBOARD_ADC is not set
-# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MENU=y
# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_NET=m
@@ -6248,7 +6312,7 @@ CONFIG_X86_PAT=y
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_X86_PLATFORM_DEVICES=y
-CONFIG_X86_PMEM_LEGACY=y
+CONFIG_X86_PMEM_LEGACY=m
CONFIG_X86_PM_TIMER=y
CONFIG_X86_POWERNOW_K8=m
# CONFIG_X86_PTDUMP is not set
@@ -6311,6 +6375,7 @@ CONFIG_XFS_QUOTA=y
# CONFIG_XFS_WARN is not set
# CONFIG_XILINX_DMA is not set
CONFIG_XILINX_GMII2RGMII=m
+CONFIG_XILINX_VCU=m
# CONFIG_XILINX_WATCHDOG is not set
CONFIG_XILLYBUS=m
# CONFIG_XILLYBUS_OF is not set
@@ -6337,6 +6402,7 @@ CONFIG_ZLIB_DEFLATE=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZONE_DEVICE=y
CONFIG_ZONE_DMA=y
+CONFIG_ZOPT2201=m
# CONFIG_ZPA2326 is not set
CONFIG_ZRAM=m
# CONFIG_ZRAM_WRITEBACK is not set
diff --git a/kernel.spec b/kernel.spec
index ad9507b26..100b42525 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -44,13 +44,13 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be appended after the rcX and
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
#
-%global baserelease 350
+%global baserelease 251
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
# which yields a base_sublevel of 0.
-%define base_sublevel 15
+%define base_sublevel 16
## If this is a released kernel ##
%if 0%{?released_kernel}
@@ -58,7 +58,7 @@ Summary: The Linux kernel
%define stable_rc 0
# Do we have a -stable update to apply?
-%define stable_update 18
+%define stable_update 3
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev %{stable_update}
@@ -381,9 +381,8 @@ Summary: The Linux kernel
Name: kernel%{?variant}
-Group: System Environment/Kernel
License: GPLv2 and Redistributable, no modification permitted
-URL: http://www.kernel.org/
+URL: https://www.kernel.org/
Version: %{rpmversion}
Release: %{pkg_release}
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
@@ -401,7 +400,7 @@ Requires: kernel-modules-uname-r = %{KVERREL}%{?variant}
#
BuildRequires: kmod, patch, bash, tar, git
BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk
-BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc
+BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, bison, flex
BuildRequires: net-tools, hostname, bc, elfutils-devel
%if %{with_sparse}
BuildRequires: sparse
@@ -523,6 +522,9 @@ Source5000: patch-4.%{base_sublevel}-git%{gitrev}.xz
# ongoing complaint, full discussion delayed until ksummit/plumbers
Patch002: 0001-iio-Use-event-header-from-kernel-tree.patch
+# gcc -Werror=aliasing workaround
+Patch003: 0001-Temporarily-work-around-gcc-aliasing-warning-error.patch
+
%if !%{nopatches}
# Git trees.
@@ -588,110 +590,87 @@ Patch300: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch
# http://www.spinics.net/lists/linux-tegra/msg26029.html
Patch301: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch
-# Fix OMAP4 (pandaboard)
-Patch302: arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch
-
# http://patchwork.ozlabs.org/patch/587554/
-Patch303: ARM-tegra-usb-no-reset.patch
-
-# https://www.spinics.net/lists/arm-kernel/msg554183.html
-Patch304: arm-imx6-hummingboard2.patch
-
-Patch305: arm64-Revert-allwinner-a64-pine64-Use-dcdc1-regulato.patch
+Patch302: ARM-tegra-usb-no-reset.patch
# https://patchwork.kernel.org/patch/9820417/
-Patch306: qcom-msm89xx-fixes.patch
+Patch303: qcom-msm89xx-fixes.patch
# https://patchwork.kernel.org/patch/10173115/
-Patch307: arm-dts-imx6qdl-udoo-Disable-usbh1-to-avoid-kernel-hang.patch
-
-# Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/
-Patch308: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch
-
-# In 4.16
-Patch309: arm-exynos-fix-dwc3-neg.patch
+Patch304: arm-dts-imx6qdl-udoo-Disable-usbh1-to-avoid-kernel-hang.patch
-# In 4.16
-Patch310: arm-imx6-cpufreq-fix-loading.patch
+# http://patches.linaro.org/patch/131764/
+Patch305: wcn36xx-Fix-firmware-crash-due-to-corrupted-buffer-address.patch
-# https://www.spinics.net/lists/stable/msg214527.html
-Patch311: arm-clk-bcm2835-hdmi-fixes.patch
+# https://patchwork.kernel.org/patch/10245303/
+Patch306: wcn36xx-reduce-verbosity-of-drivers-messages.patch
# https://www.spinics.net/lists/arm-kernel/msg632925.html
-Patch313: arm-crypto-sunxi-ss-Add-MODULE_ALIAS-to-sun4i-ss.patch
+Patch307: arm-crypto-sunxi-ss-Add-MODULE_ALIAS-to-sun4i-ss.patch
-# https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=synquacer-netsec
-Patch330: arm64-socionext-96b-enablement.patch
-
-# https://patchwork.kernel.org/patch/10149775/ MMC support for Synquacer
-Patch331: arm64-mmc-sdhci_f_sdh30-add-ACPI-support.patch
+# Fix USB on the RPi https://patchwork.kernel.org/patch/9879371/
+Patch308: bcm283x-dma-mapping-skip-USB-devices-when-configuring-DMA-during-probe.patch
-# 400 - IBM (ppc/s390x) patches
+# https://www.spinics.net/lists/arm-kernel/msg621982.html
+Patch309: bcm283x-Fix-probing-of-bcm2835-i2s.patch
-# 500 - Temp fixes/CVEs etc
+# https://www.spinics.net/lists/arm-kernel/msg633942.html
+Patch310: mmc-sdhci-iproc-Disable-preset-values-for-BCM2835.patch
-# 550-600 Meltdown and Spectre Fixes
+# https://www.spinics.net/lists/arm-kernel/msg633945.html
+Patch311: bcm2835-hwrng-Handle-deferred-clock-properly.patch
-# 600 - Patches for improved Bay and Cherry Trail device support
-# Below patches are submitted upstream, awaiting review / merging
-Patch610: 0010-Input-silead-Add-support-for-capactive-home-button-f.patch
+Patch312: bcm283x-clk-audio-fixes.patch
-# rhbz 1476467
-Patch617: Fix-for-module-sig-verification.patch
+# https://marc.info/?l=linux-kernel&m=152328880417846&w=2
+Patch313: arm64-thunderx-crypto-zip-fixes.patch
-# rhbz 1431375
-Patch619: input-rmi4-remove-the-need-for-artifical-IRQ.patch
+# https://www.spinics.net/lists/linux-crypto/msg32725.html
+Patch314: crypto-testmgr-Allow-different-compression-results.patch
-# rhbz 1509461
-Patch625: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch
+Patch315: arm-tegra-fix-nouveau-crash.patch
-# For https://fedoraproject.org/wiki/Changes/ImprovedLaptopBatteryLife
-# Queued in bluetooth-next for merging into 4.16
-Patch628: 0001-Bluetooth-btusb-Add-a-Kconfig-option-to-enable-USB-a.patch
+# https://www.spinics.net/lists/arm-kernel/msg630629.html
+Patch316: arm-sunxi-nvmem-fixH3.patch
-# Fix left-button not working with some hid-multitouch touchpads
-# Adding these suggested by Benjamin Tissoires
-# Queued in hid.git/for-4.16/hid-quirks-cleanup/multitouch for merging into 4.16
-Patch630: 0001-HID-multitouch-Properly-deal-with-Win8-PTP-reports-w.patch
-Patch632: 0003-HID-multitouch-Combine-all-left-button-events-in-a-f.patch
+# Upstream 4.17 back port
+Patch317: of-i2c-fix-module-aliases.patch
-# Make SATA link powermanagement policy configurable for:
-# https://fedoraproject.org/wiki/Changes/ImprovedLaptopBatteryLife
-# Queued upstream for merging into 4.16
-Patch638: 0003-ahci-Allow-setting-a-default-LPM-policy-for-mobile-c.patch
+# https://patchwork.kernel.org/patch/10311335/
+Patch318: clk-ti-fix-flag-space-conflict-with-clkctrl-clocks.patch
-# rhbz1514969, submitted upstream
-Patch640: 0001-platform-x86-dell-laptop-Filter-out-spurious-keyboar.patch
+Patch319: arm-dts-Add-am335x-pocketbeagle.patch
-# https://bugzilla.kernel.org/show_bug.cgi?id=198351
-Patch652: iwlwifi-mvn.patch
+# Enabling Patches for the RPi3+
+Patch320: bcm2837-rpi-initial-support-for-the-3.patch
+Patch321: bcm2837-gpio-expander.patch
+Patch322: bcm2837-enable-pmu.patch
+Patch323: bcm2837-lan78xx-fixes.patch
-# CVE-2018-1000026 rhbz 1541846 1546744
-Patch653: CVE-2018-1000026.patch
+# 400 - IBM (ppc/s390x) patches
-# rhbz 1549316
-Patch657: ipmi-fixes.patch
+# 500 - Temp fixes/CVEs etc
-# CVE-2018-8043 rhbz 1554199 1554200
-Patch660: 0001-net-phy-mdio-bcm-unimac-fix-potential-NULL-dereferen.patch
+# rhbz 1476467
+Patch501: Fix-for-module-sig-verification.patch
-# CVE-2017-18232 rhbz 1558066 1558067
-Patch663: 0001-scsi-libsas-direct-call-probe-and-destruct.patch
+# rhbz 1431375
+Patch502: input-rmi4-remove-the-need-for-artifical-IRQ.patch
-# rhbz 1511786
-Patch664: drm-nouveau-bl-fix-backlight-regression.patch
+# rhbz 1509461
+Patch503: v3-2-2-Input-synaptics---Lenovo-X1-Carbon-5-should-use-SMBUS-RMI.patch
-# rhbz 1558977
-Patch665: sunrpc-remove-incorrect-HMAC-request-initialization.patch
+# In v4.17
+# rhbz 1549316
+Patch504: ipmi-fixes.patch
-# CVE-2018-10021 rhbz 1566407 1566409
-Patch666: 0001-scsi-libsas-defer-ata-device-eh-commands-to-libata.patch
+# rhbz 1566510
+Patch505: net-Revert-macsec-missing-dev_put-on-error-in-macsec_newlink.patch
# END OF PATCH DEFINITIONS
%endif
-BuildRoot: %{_tmppath}/kernel-%{KVERREL}-root
%description
The kernel meta package
@@ -725,7 +704,6 @@ AutoProv: yes\
%package headers
Summary: Header files for the Linux kernel for use by glibc
-Group: Development/System
Obsoletes: glibc-kernheaders < 3.0-46
Provides: glibc-kernheaders = 3.0-46
%if "0%{?variant}"
@@ -741,7 +719,6 @@ glibc package.
%package cross-headers
Summary: Header files for the Linux kernel for use by cross-glibc
-Group: Development/System
%description cross-headers
Kernel-cross-headers includes the C header files that specify the interface
between the Linux kernel and userspace libraries and programs. The
@@ -752,7 +729,6 @@ cross-glibc package.
%package bootwrapper
Summary: Boot wrapper files for generating combined kernel + initrd images
-Group: Development/System
Requires: gzip binutils
%description bootwrapper
Kernel-bootwrapper contains the wrapper code which makes bootable "zImage"
@@ -760,7 +736,6 @@ files combining both kernel and initial ramdisk.
%package debuginfo-common-%{_target_cpu}
Summary: Kernel source files used by %{name}-debuginfo packages
-Group: Development/Debug
Provides: installonlypkg(kernel)
%description debuginfo-common-%{_target_cpu}
This package is required by %{name}-debuginfo subpackages.
@@ -773,7 +748,6 @@ It provides the kernel source files common to all builds.
%define kernel_debuginfo_package() \
%package %{?1:%{1}-}debuginfo\
Summary: Debug information for package %{name}%{?1:-%{1}}\
-Group: Development/Debug\
Requires: %{name}-debuginfo-common-%{_target_cpu} = %{version}-%{release}\
Provides: %{name}%{?1:-%{1}}-debuginfo-%{_target_cpu} = %{version}-%{release}\
Provides: installonlypkg(kernel)\
@@ -791,7 +765,6 @@ This is required to use SystemTap with %{name}%{?1:-%{1}}-%{KVERREL}.\
%define kernel_devel_package() \
%package %{?1:%{1}-}devel\
Summary: Development package for building kernel modules to match the %{?2:%{2} }kernel\
-Group: System Environment/Kernel\
Provides: kernel%{?1:-%{1}}-devel-%{_target_cpu} = %{version}-%{release}\
Provides: kernel-devel-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
Provides: kernel-devel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
@@ -812,7 +785,6 @@ against the %{?2:%{2} }kernel package.\
%define kernel_modules_extra_package() \
%package %{?1:%{1}-}modules-extra\
Summary: Extra kernel modules to match the %{?2:%{2} }kernel\
-Group: System Environment/Kernel\
Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}\
Provides: kernel%{?1:-%{1}}-modules-extra-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
Provides: kernel%{?1:-%{1}}-modules-extra = %{version}-%{release}%{?1:+%{1}}\
@@ -833,7 +805,6 @@ This package provides less commonly used kernel modules for the %{?2:%{2} }kerne
%define kernel_modules_package() \
%package %{?1:%{1}-}modules\
Summary: kernel modules to match the %{?2:%{2}-}core kernel\
-Group: System Environment/Kernel\
Provides: kernel%{?1:-%{1}}-modules-%{_target_cpu} = %{version}-%{release}\
Provides: kernel-modules-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
Provides: kernel-modules = %{version}-%{release}%{?1:+%{1}}\
@@ -853,7 +824,6 @@ This package provides commonly used kernel modules for the %{?2:%{2}-}core kerne
%define kernel_meta_package() \
%package %{1}\
summary: kernel meta-package for the %{1} kernel\
-group: system environment/kernel\
Requires: kernel-%{1}-core-uname-r = %{KVERREL}%{?variant}+%{1}\
Requires: kernel-%{1}-modules-uname-r = %{KVERREL}%{?variant}+%{1}\
Provides: installonlypkg(kernel)\
@@ -869,7 +839,6 @@ The meta-package for the %{1} kernel\
%define kernel_variant_package(n:) \
%package %{?1:%{1}-}core\
Summary: %{variant_summary}\
-Group: System Environment/Kernel\
Provides: kernel-%{?1:%{1}-}core-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
Provides: installonlypkg(kernel)\
%{expand:%%kernel_reqprovconf}\
@@ -1690,7 +1659,6 @@ BuildKernel %make_target %kernel_image %{_use_vdso}
%ifnarch noarch
%global __debug_package 1
%files -f debugfiles.list debuginfo-common-%{_target_cpu}
-%defattr(-,root,root)
%endif
%endif
@@ -1763,9 +1731,6 @@ make DESTDIR=$RPM_BUILD_ROOT bootwrapper_install WRAPPER_OBJDIR=%{_libdir}/kerne
### clean
###
-%clean
-rm -rf $RPM_BUILD_ROOT
-
###
### scripts
###
@@ -1876,27 +1841,22 @@ fi
%if %{with_headers}
%files headers
-%defattr(-,root,root)
/usr/include/*
%endif
%if %{with_cross_headers}
%files cross-headers
-%defattr(-,root,root)
/usr/*-linux-gnu/include/*
%endif
%if %{with_bootwrapper}
%files bootwrapper
-%defattr(-,root,root)
/usr/sbin/*
%{_libdir}/kernel-wrapper
%endif
# empty meta-package
%files
-%defattr(-,root,root)
-
# This is %%{image_install_path} on an arch where that includes ELF files,
# or empty otherwise.
%define elf_image_install_path %{?kernel_image_elf:%{image_install_path}}
@@ -1909,7 +1869,6 @@ fi
%define kernel_variant_files(k:) \
%if %{2}\
%{expand:%%files -f kernel-%{?3:%{3}-}core.list %{?3:%{3}-}core}\
-%defattr(-,root,root)\
%{!?_licensedir:%global license %%doc}\
%license linux-%{KVERREL}/COPYING\
/lib/modules/%{KVERREL}%{?3:+%{3}}/%{?-k:%{-k*}}%{!?-k:vmlinuz}\
@@ -1937,29 +1896,24 @@ fi
%endif\
/lib/modules/%{KVERREL}%{?3:+%{3}}/modules.*\
%{expand:%%files -f kernel-%{?3:%{3}-}modules.list %{?3:%{3}-}modules}\
-%defattr(-,root,root)\
%{expand:%%files %{?3:%{3}-}devel}\
-%defattr(-,root,root)\
%defverify(not mtime)\
/usr/src/kernels/%{KVERREL}%{?3:+%{3}}\
%{expand:%%files %{?3:%{3}-}modules-extra}\
-%defattr(-,root,root)\
/lib/modules/%{KVERREL}%{?3:+%{3}}/extra\
%if %{with_debuginfo}\
%ifnarch noarch\
%{expand:%%files -f debuginfo%{?3}.list %{?3:%{3}-}debuginfo}\
-%defattr(-,root,root)\
%endif\
%endif\
%if %{?3:1} %{!?3:0}\
%{expand:%%files %{3}}\
-%defattr(-,root,root)\
%endif\
%endif\
%{nil}
-%kernel_variant_files %{_use_vdso} %{with_up}
-%kernel_variant_files %{_use_vdso} %{with_debug} debug
+%kernel_variant_files %{_use_vdso} %{with_up}
+%kernel_variant_files %{_use_vdso} %{with_debug} debug
%kernel_variant_files %{use_vdso} %{with_pae} %{pae}
%kernel_variant_files %{use_vdso} %{with_pae_debug} %{pae}debug
@@ -1968,6 +1922,22 @@ fi
#
#
%changelog
+* Thu Apr 19 2018 Jeremy Cline <jeremy@jcline.org> - 4.16.3-200
+- Linux v4.16.3
+
+* Thu Apr 19 2018 Peter Robinson <pbrobinson@fedoraproject.org>
+- Enable UFS storage options on ARM
+- Add support for Pocket Beagle
+
+* Tue Apr 17 2018 Peter Robinson <pbrobinson@fedoraproject.org>
+- Enable drivers for Xilinx ZYMQ-MP Ultra96
+
+* Mon Apr 16 2018 Laura Abbott <labbott@fedoraproject.org>
+- Fix for hang on removal of macsec module (rhbz 1566410)
+
+* Thu Apr 12 2018 Jeremy Cline <jeremy@jcline.org> - 4.16.2-200
+- Linux v4.16.2
+
* Thu Apr 12 2018 Laura Abbott <labbott@redhat.com> - 4.15.17-300
- Linux v4.15.17
diff --git a/mmc-sdhci-iproc-Disable-preset-values-for-BCM2835.patch b/mmc-sdhci-iproc-Disable-preset-values-for-BCM2835.patch
new file mode 100644
index 000000000..7b3b2c01c
--- /dev/null
+++ b/mmc-sdhci-iproc-Disable-preset-values-for-BCM2835.patch
@@ -0,0 +1,37 @@
+From patchwork Mon Feb 12 20:02:44 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: mmc: sdhci-iproc: Disable preset values for BCM2835
+From: Stefan Wahren <stefan.wahren@i2se.com>
+X-Patchwork-Id: 10214367
+Message-Id: <1518465764-30051-1-git-send-email-stefan.wahren@i2se.com>
+To: Adrian Hunter <adrian.hunter@intel.com>,
+ Ulf Hansson <ulf.hansson@linaro.org>
+Cc: Eric Anholt <eric@anholt.net>, Ray Jui <rjui@broadcom.com>,
+ Scott Branden <sbranden@broadcom.com>, Jon Mason <jonmason@broadcom.com>,
+ linux-arm-kernel@lists.infradead.org,
+ bcm-kernel-feedback-list@broadcom.com, linux-mmc@vger.kernel.org,
+ Stefan Wahren <stefan.wahren@i2se.com>
+Date: Mon, 12 Feb 2018 21:02:44 +0100
+
+According to the BCM2835 datasheet there are no preset value registers.
+This wasn't an issue before, because we didn't propagate 1.8V support.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+---
+ drivers/mmc/host/sdhci-iproc.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c
+index 61666d2..0ef741b 100644
+--- a/drivers/mmc/host/sdhci-iproc.c
++++ b/drivers/mmc/host/sdhci-iproc.c
+@@ -214,6 +214,7 @@ static const struct sdhci_pltfm_data sdhci_bcm2835_pltfm_data = {
+ SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
+ SDHCI_QUIRK_MISSING_CAPS |
+ SDHCI_QUIRK_NO_HISPD_BIT,
++ .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
+ .ops = &sdhci_iproc_32only_ops,
+ };
+
diff --git a/net-Revert-macsec-missing-dev_put-on-error-in-macsec_newlink.patch b/net-Revert-macsec-missing-dev_put-on-error-in-macsec_newlink.patch
new file mode 100644
index 000000000..f3af83782
--- /dev/null
+++ b/net-Revert-macsec-missing-dev_put-on-error-in-macsec_newlink.patch
@@ -0,0 +1,57 @@
+From patchwork Mon Apr 16 10:17:50 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [net] Revert "macsec: missing dev_put() on error in macsec_newlink()"
+X-Patchwork-Submitter: Dan Carpenter <dan.carpenter@oracle.com>
+X-Patchwork-Id: 898556
+X-Patchwork-Delegate: davem@davemloft.net
+Message-Id: <20180416101750.GA19613@mwanda>
+To: Laura Abbott <labbott@redhat.com>, Sabrina Dubroca <sd@queasysnail.net>
+Cc: "David S. Miller" <davem@davemloft.net>,
+ Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
+ netdev@vger.kernel.org
+Date: Mon, 16 Apr 2018 13:17:50 +0300
+From: Dan Carpenter <dan.carpenter@oracle.com>
+List-Id: <netdev.vger.kernel.org>
+
+This patch is just wrong, sorry. I was trying to fix a static checker
+warning and misread the code. The reference taken in macsec_newlink()
+is released in macsec_free_netdev() when the netdevice is destroyed.
+
+This reverts commit 5dcd8400884cc4a043a6d4617e042489e5d566a9.
+
+Reported-by: Laura Abbott <labbott@redhat.com>
+Fixes: 5dcd8400884c ("macsec: missing dev_put() on error in macsec_newlink()")
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Acked-by: Sabrina Dubroca <sd@queasysnail.net>
+---
+I sent this earlier but I messed up the CC list. I've updated the
+commit message as well.
+
+ drivers/net/macsec.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c
+index 9cbb0c8a896a..7de88b33d5b9 100644
+--- a/drivers/net/macsec.c
++++ b/drivers/net/macsec.c
+@@ -3277,7 +3277,7 @@ static int macsec_newlink(struct net *net, struct net_device *dev,
+
+ err = netdev_upper_dev_link(real_dev, dev, extack);
+ if (err < 0)
+- goto put_dev;
++ goto unregister;
+
+ /* need to be already registered so that ->init has run and
+ * the MAC addr is set
+@@ -3316,8 +3316,7 @@ static int macsec_newlink(struct net *net, struct net_device *dev,
+ macsec_del_dev(macsec);
+ unlink:
+ netdev_upper_dev_unlink(real_dev, dev);
+-put_dev:
+- dev_put(real_dev);
++unregister:
+ unregister_netdevice(dev);
+ return err;
+ }
diff --git a/of-i2c-fix-module-aliases.patch b/of-i2c-fix-module-aliases.patch
new file mode 100644
index 000000000..3c737f6e8
--- /dev/null
+++ b/of-i2c-fix-module-aliases.patch
@@ -0,0 +1,69 @@
+From af503716ac1444db61d80cb6d17cfe62929c21df Mon Sep 17 00:00:00 2001
+From: Javier Martinez Canillas <javierm@redhat.com>
+Date: Sun, 3 Dec 2017 22:40:50 +0100
+Subject: i2c: core: report OF style module alias for devices registered via OF
+
+The buses should honor the firmware interface used to register the device,
+but the I2C core reports a MODALIAS of the form i2c:<device> even for I2C
+devices registered via OF.
+
+This means that user-space will never get an OF stype uevent MODALIAS even
+when the drivers modules contain aliases exported from both the I2C and OF
+device ID tables. For example, an Atmel maXTouch Touchscreen registered by
+a DT node with compatible "atmel,maxtouch" has the following module alias:
+
+$ cat /sys/class/i2c-adapter/i2c-8/8-004b/modalias
+i2c:maxtouch
+
+So udev won't be able to auto-load a module for an OF-only device driver.
+Many OF-only drivers duplicate the OF device ID table entries in an I2C ID
+table only has a workaround for how the I2C core reports the module alias.
+
+This patch changes the I2C core to report an OF related MODALIAS uevent if
+the device was registered via OF. So for the previous example, after this
+patch, the reported MODALIAS for the Atmel maXTouch will be the following:
+
+$ cat /sys/class/i2c-adapter/i2c-8/8-004b/modalias
+of:NtrackpadT<NULL>Catmel,maxtouch
+
+NOTE: This patch may break out-of-tree drivers that were relying on this
+ behavior, and only had an I2C device ID table even when the device
+ was registered via OF. There are no remaining drivers in mainline
+ that do this, but out-of-tree drivers have to be fixed and define
+ a proper OF device ID table to have module auto-loading working.
+
+Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
+Tested-by: Dmitry Mastykin <mastichi@gmail.com>
+Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
+---
+ drivers/i2c/i2c-core-base.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
+index 5a00bf4..edfc23e4 100644
+--- a/drivers/i2c/i2c-core-base.c
++++ b/drivers/i2c/i2c-core-base.c
+@@ -124,6 +124,10 @@ static int i2c_device_uevent(struct device *dev, struct kobj_uevent_env *env)
+ struct i2c_client *client = to_i2c_client(dev);
+ int rc;
+
++ rc = of_device_uevent_modalias(dev, env);
++ if (rc != -ENODEV)
++ return rc;
++
+ rc = acpi_device_uevent_modalias(dev, env);
+ if (rc != -ENODEV)
+ return rc;
+@@ -439,6 +443,10 @@ show_modalias(struct device *dev, struct device_attribute *attr, char *buf)
+ struct i2c_client *client = to_i2c_client(dev);
+ int len;
+
++ len = of_device_modalias(dev, buf, PAGE_SIZE);
++ if (len != -ENODEV)
++ return len;
++
+ len = acpi_device_modalias(dev, buf, PAGE_SIZE -1);
+ if (len != -ENODEV)
+ return len;
+--
+cgit v1.1
diff --git a/sources b/sources
index 907cac674..b8d574d0d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (linux-4.15.tar.xz) = c00d92659df815a53dcac7dde145b742b1f20867d380c07cb09ddb3295d6ff10f8931b21ef0b09d7156923a3957b39d74d87c883300173b2e20690d2b4ec35ea
-SHA512 (patch-4.15.18.xz) = c40dfeedce4876fa4df51ae93978b2a8d9844ca04cf890a6d708fd85786dcda99a6611066977d5a4d841a03af8838d6aa6e1bc69084720fbf7147058b8394fb8
+SHA512 (linux-4.16.tar.xz) = ab47849314b177d0eec9dbf261f33972b0d89fb92fb0650130ffa7abc2f36c0fab2d06317dc1683c51a472a9a631573a9b1e7258d6281a2ee189897827f14662
+SHA512 (patch-4.16.3.xz) = 7c7c2c090d7375a923524d88f86a714576321094de94bcfd78d467b78c3b933c2cdb4863db24b0091b28f78ae10a5d4e112c3d150998d552d29e737f043e5fa8
diff --git a/sunrpc-remove-incorrect-HMAC-request-initialization.patch b/sunrpc-remove-incorrect-HMAC-request-initialization.patch
deleted file mode 100644
index c31bb73bb..000000000
--- a/sunrpc-remove-incorrect-HMAC-request-initialization.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 5cdbcf4aa78b57c4f10892f20725174829cca191 Mon Sep 17 00:00:00 2001
-From: Eric Biggers <ebiggers@google.com>
-Date: Wed, 28 Mar 2018 10:57:22 -0700
-Subject: [PATCH] sunrpc: remove incorrect HMAC request initialization
-
-make_checksum_hmac_md5() is allocating an HMAC transform and doing
-crypto API calls in the following order:
-
- crypto_ahash_init()
- crypto_ahash_setkey()
- crypto_ahash_digest()
-
-This is wrong because it makes no sense to init() the request before a
-key has been set, given that the initial state depends on the key. And
-digest() is short for init() + update() + final(), so in this case
-there's no need to explicitly call init() at all.
-
-Before commit 9fa68f620041 ("crypto: hash - prevent using keyed hashes
-without setting key") the extra init() had no real effect, at least for
-the software HMAC implementation. (There are also hardware drivers that
-implement HMAC-MD5, and it's not immediately obvious how gracefully they
-handle init() before setkey().) But now the crypto API detects this
-incorrect initialization and returns -ENOKEY. This is breaking NFS
-mounts in some cases.
-
-Fix it by removing the incorrect call to crypto_ahash_init().
-
-Reported-by: Michael Young <m.a.young@durham.ac.uk>
-Fixes: 9fa68f620041 ("crypto: hash - prevent using keyed hashes without setting key")
-Fixes: fffdaef2eb4a ("gss_krb5: Add support for rc4-hmac encryption")
-Cc: stable@vger.kernel.org
-Signed-off-by: Eric Biggers <ebiggers@google.com>
-Signed-off-by: Jeremy Cline <jeremy@jcline.org>
----
- net/sunrpc/auth_gss/gss_krb5_crypto.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/net/sunrpc/auth_gss/gss_krb5_crypto.c b/net/sunrpc/auth_gss/gss_krb5_crypto.c
-index 12649c9fedab..8654494b4d0a 100644
---- a/net/sunrpc/auth_gss/gss_krb5_crypto.c
-+++ b/net/sunrpc/auth_gss/gss_krb5_crypto.c
-@@ -237,9 +237,6 @@ make_checksum_hmac_md5(struct krb5_ctx *kctx, char *header, int hdrlen,
-
- ahash_request_set_callback(req, CRYPTO_TFM_REQ_MAY_SLEEP, NULL, NULL);
-
-- err = crypto_ahash_init(req);
-- if (err)
-- goto out;
- err = crypto_ahash_setkey(hmac_md5, cksumkey, kctx->gk5e->keylength);
- if (err)
- goto out;
---
-2.16.2
-
diff --git a/wcn36xx-Fix-firmware-crash-due-to-corrupted-buffer-address.patch b/wcn36xx-Fix-firmware-crash-due-to-corrupted-buffer-address.patch
new file mode 100644
index 000000000..dd8db063c
--- /dev/null
+++ b/wcn36xx-Fix-firmware-crash-due-to-corrupted-buffer-address.patch
@@ -0,0 +1,164 @@
+From patchwork Thu Mar 15 11:31:33 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: wcn36xx: Fix firmware crash due to corrupted buffer address
+X-Patchwork-Submitter: Ramon Fried <rfried@codeaurora.org>
+X-Patchwork-Id: 131764
+Message-Id: <20180315113133.28791-1-rfried@codeaurora.org>
+To: k.eugene.e@gmail.com, kvalo@codeaurora.org,
+ wcn36xx@lists.infradead.org, linux-wireless@vger.kernel.org
+Cc: Loic Poulain <loic.poulain@linaro.org>, Ramon Fried <rfried@codeaurora.org>
+Date: Thu, 15 Mar 2018 13:31:33 +0200
+From: Ramon Fried <rfried@codeaurora.org>
+List-Id: <linux-wireless.vger.kernel.org>
+
+From: Loic Poulain <loic.poulain@linaro.org>
+
+wcn36xx_start_tx function retrieves the buffer descriptor from the
+channel control queue to start filling tx buffer information. However,
+nothing prevents this same buffer to be concurrently accessed in a
+concurent tx call, leading to potential buffer coruption and firmware
+crash (observed during iperf test). The channel control queue should
+only be accessed and updated with the channel lock.
+
+Fix this issue by using a local buffer descriptor which will be copied
+in the thread-safe wcn36xx_dxe_tx_frame.
+
+Note that buffer descriptor size is few bytes so the introduced copy
+overhead is insignificant. Moreover, this allows to keep the locked
+section minimal.
+
+Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
+Signed-off-by: Ramon Fried <rfried@codeaurora.org>
+---
+ drivers/net/wireless/ath/wcn36xx/dxe.c | 13 ++++---------
+ drivers/net/wireless/ath/wcn36xx/dxe.h | 3 ++-
+ drivers/net/wireless/ath/wcn36xx/txrx.c | 32 ++++++++++----------------------
+ 3 files changed, 16 insertions(+), 32 deletions(-)
+
+--
+The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
+a Linux Foundation Collaborative Project
+
+diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.c b/drivers/net/wireless/ath/wcn36xx/dxe.c
+index 7d5ecaf02288..2c3b899a88fa 100644
+--- a/drivers/net/wireless/ath/wcn36xx/dxe.c
++++ b/drivers/net/wireless/ath/wcn36xx/dxe.c
+@@ -27,15 +27,6 @@
+ #include "wcn36xx.h"
+ #include "txrx.h"
+
+-void *wcn36xx_dxe_get_next_bd(struct wcn36xx *wcn, bool is_low)
+-{
+- struct wcn36xx_dxe_ch *ch = is_low ?
+- &wcn->dxe_tx_l_ch :
+- &wcn->dxe_tx_h_ch;
+-
+- return ch->head_blk_ctl->bd_cpu_addr;
+-}
+-
+ static void wcn36xx_ccu_write_register(struct wcn36xx *wcn, int addr, int data)
+ {
+ wcn36xx_dbg(WCN36XX_DBG_DXE,
+@@ -648,6 +639,7 @@ void wcn36xx_dxe_free_mem_pools(struct wcn36xx *wcn)
+
+ int wcn36xx_dxe_tx_frame(struct wcn36xx *wcn,
+ struct wcn36xx_vif *vif_priv,
++ struct wcn36xx_tx_bd *bd,
+ struct sk_buff *skb,
+ bool is_low)
+ {
+@@ -681,6 +673,9 @@ int wcn36xx_dxe_tx_frame(struct wcn36xx *wcn,
+ ctl->skb = NULL;
+ desc = ctl->desc;
+
++ /* write buffer descriptor */
++ memcpy(ctl->bd_cpu_addr, bd, sizeof(*bd));
++
+ /* Set source address of the BD we send */
+ desc->src_addr_l = ctl->bd_phy_addr;
+
+diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.h b/drivers/net/wireless/ath/wcn36xx/dxe.h
+index 2bc376c5391b..ce580960d109 100644
+--- a/drivers/net/wireless/ath/wcn36xx/dxe.h
++++ b/drivers/net/wireless/ath/wcn36xx/dxe.h
+@@ -452,6 +452,7 @@ struct wcn36xx_dxe_mem_pool {
+ dma_addr_t phy_addr;
+ };
+
++struct wcn36xx_tx_bd;
+ struct wcn36xx_vif;
+ int wcn36xx_dxe_allocate_mem_pools(struct wcn36xx *wcn);
+ void wcn36xx_dxe_free_mem_pools(struct wcn36xx *wcn);
+@@ -463,8 +464,8 @@ void wcn36xx_dxe_deinit(struct wcn36xx *wcn);
+ int wcn36xx_dxe_init_channels(struct wcn36xx *wcn);
+ int wcn36xx_dxe_tx_frame(struct wcn36xx *wcn,
+ struct wcn36xx_vif *vif_priv,
++ struct wcn36xx_tx_bd *bd,
+ struct sk_buff *skb,
+ bool is_low);
+ void wcn36xx_dxe_tx_ack_ind(struct wcn36xx *wcn, u32 status);
+-void *wcn36xx_dxe_get_next_bd(struct wcn36xx *wcn, bool is_low);
+ #endif /* _DXE_H_ */
+diff --git a/drivers/net/wireless/ath/wcn36xx/txrx.c b/drivers/net/wireless/ath/wcn36xx/txrx.c
+index 22304edc5948..b1768ed6b0be 100644
+--- a/drivers/net/wireless/ath/wcn36xx/txrx.c
++++ b/drivers/net/wireless/ath/wcn36xx/txrx.c
+@@ -272,21 +272,9 @@ int wcn36xx_start_tx(struct wcn36xx *wcn,
+ bool is_low = ieee80211_is_data(hdr->frame_control);
+ bool bcast = is_broadcast_ether_addr(hdr->addr1) ||
+ is_multicast_ether_addr(hdr->addr1);
+- struct wcn36xx_tx_bd *bd = wcn36xx_dxe_get_next_bd(wcn, is_low);
+-
+- if (!bd) {
+- /*
+- * TX DXE are used in pairs. One for the BD and one for the
+- * actual frame. The BD DXE's has a preallocated buffer while
+- * the skb ones does not. If this isn't true something is really
+- * wierd. TODO: Recover from this situation
+- */
+-
+- wcn36xx_err("bd address may not be NULL for BD DXE\n");
+- return -EINVAL;
+- }
++ struct wcn36xx_tx_bd bd;
+
+- memset(bd, 0, sizeof(*bd));
++ memset(&bd, 0, sizeof(bd));
+
+ wcn36xx_dbg(WCN36XX_DBG_TX,
+ "tx skb %p len %d fc %04x sn %d %s %s\n",
+@@ -296,10 +284,10 @@ int wcn36xx_start_tx(struct wcn36xx *wcn,
+
+ wcn36xx_dbg_dump(WCN36XX_DBG_TX_DUMP, "", skb->data, skb->len);
+
+- bd->dpu_rf = WCN36XX_BMU_WQ_TX;
++ bd.dpu_rf = WCN36XX_BMU_WQ_TX;
+
+- bd->tx_comp = !!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS);
+- if (bd->tx_comp) {
++ bd.tx_comp = !!(info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS);
++ if (bd.tx_comp) {
+ wcn36xx_dbg(WCN36XX_DBG_DXE, "TX_ACK status requested\n");
+ spin_lock_irqsave(&wcn->dxe_lock, flags);
+ if (wcn->tx_ack_skb) {
+@@ -321,13 +309,13 @@ int wcn36xx_start_tx(struct wcn36xx *wcn,
+
+ /* Data frames served first*/
+ if (is_low)
+- wcn36xx_set_tx_data(bd, wcn, &vif_priv, sta_priv, skb, bcast);
++ wcn36xx_set_tx_data(&bd, wcn, &vif_priv, sta_priv, skb, bcast);
+ else
+ /* MGMT and CTRL frames are handeld here*/
+- wcn36xx_set_tx_mgmt(bd, wcn, &vif_priv, skb, bcast);
++ wcn36xx_set_tx_mgmt(&bd, wcn, &vif_priv, skb, bcast);
+
+- buff_to_be((u32 *)bd, sizeof(*bd)/sizeof(u32));
+- bd->tx_bd_sign = 0xbdbdbdbd;
++ buff_to_be((u32 *)&bd, sizeof(bd)/sizeof(u32));
++ bd.tx_bd_sign = 0xbdbdbdbd;
+
+- return wcn36xx_dxe_tx_frame(wcn, vif_priv, skb, is_low);
++ return wcn36xx_dxe_tx_frame(wcn, vif_priv, &bd, skb, is_low);
+ }
diff --git a/wcn36xx-reduce-verbosity-of-drivers-messages.patch b/wcn36xx-reduce-verbosity-of-drivers-messages.patch
new file mode 100644
index 000000000..7f9e39b40
--- /dev/null
+++ b/wcn36xx-reduce-verbosity-of-drivers-messages.patch
@@ -0,0 +1,95 @@
+From patchwork Tue Feb 27 14:05:35 2018
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v3] wcn36xx: reduce verbosity of drivers messages
+From: Ramon Fried <rfried@codeaurora.org>
+X-Patchwork-Id: 10245303
+Message-Id: <20180227140535.4794-1-rfried@codeaurora.org>
+To: k.eugene.e@gmail.com, kvalo@codeaurora.org,
+ wcn36xx@lists.infradead.org, linux-wireless@vger.kernel.org
+Cc: Ramon Fried <rfried@codeaurora.org>
+Date: Tue, 27 Feb 2018 16:05:35 +0200
+
+Whenever the WLAN interface is started the FW
+version and caps are printed.
+The caps now will be displayed only in debug mode.
+Firmware version will be displayed only once on first
+startup of the interface.
+
+Change-Id: I4db6ea7f384fe15eebe4c3ddb1d1ccab00094332
+Signed-off-by: Ramon Fried <rfried@codeaurora.org>
+---
+v2: print the firwmare version as info but only
+ onetime.
+v3: change the static variable to a struct variable.
+
+ drivers/net/wireless/ath/wcn36xx/main.c | 3 ++-
+ drivers/net/wireless/ath/wcn36xx/smd.c | 18 ++++++++++--------
+ drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 2 ++
+ 3 files changed, 14 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c
+index ab5be6d2c691..bfe9062bfa52 100644
+--- a/drivers/net/wireless/ath/wcn36xx/main.c
++++ b/drivers/net/wireless/ath/wcn36xx/main.c
+@@ -261,7 +261,7 @@ static void wcn36xx_feat_caps_info(struct wcn36xx *wcn)
+
+ for (i = 0; i < MAX_FEATURE_SUPPORTED; i++) {
+ if (get_feat_caps(wcn->fw_feat_caps, i))
+- wcn36xx_info("FW Cap %s\n", wcn36xx_get_cap_name(i));
++ wcn36xx_dbg(WCN36XX_DBG_MAC, "FW Cap %s\n", wcn36xx_get_cap_name(i));
+ }
+ }
+
+@@ -1283,6 +1283,7 @@ static int wcn36xx_probe(struct platform_device *pdev)
+ wcn = hw->priv;
+ wcn->hw = hw;
+ wcn->dev = &pdev->dev;
++ wcn->first_boot = true;
+ mutex_init(&wcn->conf_mutex);
+ mutex_init(&wcn->hal_mutex);
+ mutex_init(&wcn->scan_lock);
+diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c
+index 2a4871ca9c72..1a5b4d57c0ac 100644
+--- a/drivers/net/wireless/ath/wcn36xx/smd.c
++++ b/drivers/net/wireless/ath/wcn36xx/smd.c
+@@ -409,15 +409,17 @@ static int wcn36xx_smd_start_rsp(struct wcn36xx *wcn, void *buf, size_t len)
+ wcn->fw_minor = rsp->start_rsp_params.version.minor;
+ wcn->fw_major = rsp->start_rsp_params.version.major;
+
+- wcn36xx_info("firmware WLAN version '%s' and CRM version '%s'\n",
+- wcn->wlan_version, wcn->crm_version);
+-
+- wcn36xx_info("firmware API %u.%u.%u.%u, %u stations, %u bssids\n",
+- wcn->fw_major, wcn->fw_minor,
+- wcn->fw_version, wcn->fw_revision,
+- rsp->start_rsp_params.stations,
+- rsp->start_rsp_params.bssids);
++ if (wcn->first_boot) {
++ wcn->first_boot = false;
++ wcn36xx_info("firmware WLAN version '%s' and CRM version '%s'\n",
++ wcn->wlan_version, wcn->crm_version);
+
++ wcn36xx_info("firmware API %u.%u.%u.%u, %u stations, %u bssids\n",
++ wcn->fw_major, wcn->fw_minor,
++ wcn->fw_version, wcn->fw_revision,
++ rsp->start_rsp_params.stations,
++ rsp->start_rsp_params.bssids);
++ }
+ return 0;
+ }
+
+diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+index 81017e6703b4..5854adf43f3a 100644
+--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
++++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h
+@@ -192,6 +192,8 @@ struct wcn36xx {
+ u8 crm_version[WCN36XX_HAL_VERSION_LENGTH + 1];
+ u8 wlan_version[WCN36XX_HAL_VERSION_LENGTH + 1];
+
++ bool first_boot;
++
+ /* IRQs */
+ int tx_irq;
+ int rx_irq;