summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0001-ASoC-SOF-Fix-memory-leak-in-sof_dfsentry_write.patch37
-rw-r--r--0001-RDMA-Fix-goto-target-to-release-the-allocated-memory.patch33
-rw-r--r--0001-ath9k-release-allocated-buffer-if-timed-out.patch29
-rw-r--r--0001-ath9k_htc-release-allocated-buffer-if-timed-out.patch46
-rw-r--r--0001-drm-amd-display-prevent-memory-leak.patch82
-rw-r--r--0001-drm-nouveau-Move-the-declaration-of-struct-nouveau_c.patch158
-rw-r--r--0001-iwlwifi-dbg_ini-fix-memory-leak-in-alloc_sgtable.patch29
-rw-r--r--0001-iwlwifi-pcie-fix-memory-leaks-in-iwl_pcie_ctxt_info_.patch99
-rw-r--r--0001-nl80211-fix-memory-leak-in-nl80211_get_ftm_responder.patch33
-rw-r--r--0001-tracing-Have-error-path-in-predicate_parse-free-its-.patch37
-rw-r--r--0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch4
-rw-r--r--0002-drm-nouveau-Fix-drm-core-using-atomic-code-paths-on-.patch115
-rw-r--r--Input-synaptics-pin-3-touches-when-the-firmware-repo.patch47
-rw-r--r--KEYS-Make-use-of-platform-keyring-for-module-signature.patch33
-rw-r--r--Kbuild-Add-an-option-to-enable-GCC-VTA.patch94
-rw-r--r--Module.kabi_aarch640
-rw-r--r--Module.kabi_dup_aarch640
-rw-r--r--Module.kabi_dup_ppc64le0
-rw-r--r--Module.kabi_dup_s390x0
-rw-r--r--Module.kabi_dup_x86_640
-rw-r--r--Module.kabi_ppc64le0
-rw-r--r--Module.kabi_s390x0
-rw-r--r--Module.kabi_x86_640
-rw-r--r--Revert-ARM-bcm283x-Switch-V3D-over-to-using-the-PM-driver-instead-of-firmware.patch78
-rw-r--r--alsa-5.5.patch11957
-rw-r--r--alsa-5.6.patch390
-rw-r--r--arm64-dts-qcom-Add-Lenovo-Yoga-C630.patch623
-rw-r--r--ath9k-rx-dma-stop-check.patch38
-rw-r--r--check-kabi0
-rwxr-xr-xconfigs/build_configs.sh72
-rw-r--r--configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE1
-rw-r--r--configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE1
-rw-r--r--configs/fedora/debug/x86/x86_64/CONFIG_NR_CPUS1
-rw-r--r--configs/fedora/debug/x86/x86_64/README2
-rw-r--r--configs/fedora/generic/CONFIG_ADIN_PHY1
-rw-r--r--configs/fedora/generic/CONFIG_ADIS164601
-rw-r--r--configs/fedora/generic/CONFIG_AMD_XGBE1
-rw-r--r--configs/fedora/generic/CONFIG_ARCH_IOP13XX1
-rw-r--r--configs/fedora/generic/CONFIG_ARCH_IOP33X1
-rw-r--r--configs/fedora/generic/CONFIG_ARCH_KS86951
-rw-r--r--configs/fedora/generic/CONFIG_ARCH_LPC32XX1
-rw-r--r--configs/fedora/generic/CONFIG_ARCH_W90X9001
-rw-r--r--configs/fedora/generic/CONFIG_ATH9K_PCI_NO_EEPROM1
-rw-r--r--configs/fedora/generic/CONFIG_BLK_CGROUP_IOCOST1
-rw-r--r--configs/fedora/generic/CONFIG_CAN_F816011
-rw-r--r--configs/fedora/generic/CONFIG_CAN_J19391
-rw-r--r--configs/fedora/generic/CONFIG_CAN_KVASER_PCIEFD1
-rw-r--r--configs/fedora/generic/CONFIG_CAN_M_CAN_PLATFORM1
-rw-r--r--configs/fedora/generic/CONFIG_CAN_M_CAN_TCAN4X5X1
-rw-r--r--configs/fedora/generic/CONFIG_CPU_IDLE_GOV_HALTPOLL1
-rw-r--r--configs/fedora/generic/CONFIG_CRASH1
-rw-r--r--configs/fedora/generic/CONFIG_CROS_EC1
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_AEGIS128L1
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_AEGIS2561
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_DEV_CCP_DEBUGFS1
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_DEV_SAFEXCEL1
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_ESSIV1
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_MORUS12801
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_MORUS6401
-rw-r--r--configs/fedora/generic/CONFIG_CRYPTO_SHA5122
-rw-r--r--configs/fedora/generic/CONFIG_DEBUG_INFO_BTF2
-rw-r--r--configs/fedora/generic/CONFIG_DEBUG_INFO_VTA1
-rw-r--r--configs/fedora/generic/CONFIG_DMABUF_SELFTESTS1
-rw-r--r--configs/fedora/generic/CONFIG_DM_CLONE1
-rw-r--r--configs/fedora/generic/CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG1
-rw-r--r--configs/fedora/generic/CONFIG_DRM_GM12U3201
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_LG_LB035Q021
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_NEC_NL8048HL111
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_NOVATEK_NT390161
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_RAYDIUM_RM671911
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_SHARP_LS037V7DW011
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_SONY_ACX565AKM1
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_TPO_TD028TTEC11
-rw-r--r--configs/fedora/generic/CONFIG_DRM_PANEL_TPO_TD043MTEA11
-rw-r--r--configs/fedora/generic/CONFIG_DRM_TDFX2
-rw-r--r--configs/fedora/generic/CONFIG_DRM_TINYDRM1
-rw-r--r--configs/fedora/generic/CONFIG_EFI_RCI2_TABLE1
-rw-r--r--configs/fedora/generic/CONFIG_EFI_TEST2
-rw-r--r--configs/fedora/generic/CONFIG_EXFAT_FS1
-rw-r--r--configs/fedora/generic/CONFIG_FSL_ENETC_MDIO1
-rw-r--r--configs/fedora/generic/CONFIG_FS_VERITY1
-rw-r--r--configs/fedora/generic/CONFIG_FS_VERITY_BUILTIN_SIGNATURES1
-rw-r--r--configs/fedora/generic/CONFIG_FS_VERITY_DEBUG1
-rw-r--r--configs/fedora/generic/CONFIG_HEADERS_INSTALL2
-rw-r--r--configs/fedora/generic/CONFIG_HEADER_TEST2
-rw-r--r--configs/fedora/generic/CONFIG_HID_CREATIVE_SB05401
-rw-r--r--configs/fedora/generic/CONFIG_I2C_BCM20481
-rw-r--r--configs/fedora/generic/CONFIG_IMA_APPRAISE_MODSIG1
-rw-r--r--configs/fedora/generic/CONFIG_IMA_DEFAULT_HASH_SHA5121
-rw-r--r--configs/fedora/generic/CONFIG_INPUT_PWM_BEEPER2
-rw-r--r--configs/fedora/generic/CONFIG_IONIC1
-rw-r--r--configs/fedora/generic/CONFIG_JOYSTICK_FSIA6B1
-rw-r--r--configs/fedora/generic/CONFIG_KERNEL_HEADER_TEST1
-rw-r--r--configs/fedora/generic/CONFIG_LIVEPATCH2
-rw-r--r--configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL1
-rw-r--r--configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY1
-rw-r--r--configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY1
-rw-r--r--configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE1
-rw-r--r--configs/fedora/generic/CONFIG_MAX54321
-rw-r--r--configs/fedora/generic/CONFIG_MLX5_SW_STEERING1
-rw-r--r--configs/fedora/generic/CONFIG_MLX5_TLS1
-rw-r--r--configs/fedora/generic/CONFIG_MMC_SDHCI_OF_ASPEED1
-rw-r--r--configs/fedora/generic/CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS1
-rw-r--r--configs/fedora/generic/CONFIG_MOXTET1
-rw-r--r--configs/fedora/generic/CONFIG_MTD_NAND_MXIC1
-rw-r--r--configs/fedora/generic/CONFIG_NETDEVSIM2
-rw-r--r--configs/fedora/generic/CONFIG_NET_DSA_MICROCHIP_KSZ87951
-rw-r--r--configs/fedora/generic/CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C1
-rw-r--r--configs/fedora/generic/CONFIG_NET_TC_SKB_EXT1
-rw-r--r--configs/fedora/generic/CONFIG_NET_VENDOR_PENSANDO1
-rw-r--r--configs/fedora/generic/CONFIG_NFT_SOCKET2
-rw-r--r--configs/fedora/generic/CONFIG_NFT_TPROXY2
-rw-r--r--configs/fedora/generic/CONFIG_NFT_TUNNEL2
-rw-r--r--configs/fedora/generic/CONFIG_NOA13051
-rw-r--r--configs/fedora/generic/CONFIG_OPTIMIZE_INLINING2
-rw-r--r--configs/fedora/generic/CONFIG_PINCTRL_SC71801
-rw-r--r--configs/fedora/generic/CONFIG_PREEMPT_LL1
-rw-r--r--configs/fedora/generic/CONFIG_RANDOM_TRUST_BOOTLOADER1
-rw-r--r--configs/fedora/generic/CONFIG_RDMA_SIW2
-rw-r--r--configs/fedora/generic/CONFIG_READ_ONLY_THP_FOR_FS1
-rw-r--r--configs/fedora/generic/CONFIG_REGULATOR_SY8824X1
-rw-r--r--configs/fedora/generic/CONFIG_REMOTEPROC2
-rw-r--r--configs/fedora/generic/CONFIG_SECURITY_LOCKDOWN_LSM1
-rw-r--r--configs/fedora/generic/CONFIG_SECURITY_LOCKDOWN_LSM_EARLY1
-rw-r--r--configs/fedora/generic/CONFIG_SENSORS_ADS10151
-rw-r--r--configs/fedora/generic/CONFIG_SENSORS_AS3701
-rw-r--r--configs/fedora/generic/CONFIG_SENSORS_INSPUR_IPSPS1
-rw-r--r--configs/fedora/generic/CONFIG_SERIAL_8250_MOXA1
-rw-r--r--configs/fedora/generic/CONFIG_SERIAL_FSL_LINFLEXUART1
-rw-r--r--configs/fedora/generic/CONFIG_SGI_IOC41
-rw-r--r--configs/fedora/generic/CONFIG_SND_HDA_INTEL2
-rw-r--r--configs/fedora/generic/CONFIG_SND_HDA_INTEL_DETECT_DMIC1
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_SOF_OF1
-rw-r--r--configs/fedora/generic/CONFIG_SND_SOC_UDA13341
-rw-r--r--configs/fedora/generic/CONFIG_SOUNDWIRE_BUS1
-rw-r--r--configs/fedora/generic/CONFIG_TEST_LIVEPATCH1
-rw-r--r--configs/fedora/generic/CONFIG_TINYDRM_HX8357D1
-rw-r--r--configs/fedora/generic/CONFIG_TINYDRM_ILI92251
-rw-r--r--configs/fedora/generic/CONFIG_TINYDRM_ILI93411
-rw-r--r--configs/fedora/generic/CONFIG_TINYDRM_MI0283QT1
-rw-r--r--configs/fedora/generic/CONFIG_TINYDRM_REPAPER1
-rw-r--r--configs/fedora/generic/CONFIG_TINYDRM_ST75861
-rw-r--r--configs/fedora/generic/CONFIG_TINYDRM_ST7735R1
-rw-r--r--configs/fedora/generic/CONFIG_TLS_DEVICE2
-rw-r--r--configs/fedora/generic/CONFIG_UAPI_HEADER_TEST1
-rw-r--r--configs/fedora/generic/CONFIG_USB_CDNS31
-rw-r--r--configs/fedora/generic/CONFIG_USB_CONN_GPIO1
-rw-r--r--configs/fedora/generic/CONFIG_USB_OHCI_HCD_SSB1
-rw-r--r--configs/fedora/generic/CONFIG_USB_RIO5001
-rw-r--r--configs/fedora/generic/CONFIG_VIRTIO_FS1
-rw-r--r--configs/fedora/generic/CONFIG_W1_MASTER_SGI1
-rw-r--r--configs/fedora/generic/CONFIG_W1_SLAVE_DS250X1
-rw-r--r--configs/fedora/generic/arm/CONFIG_APDS99601
-rw-r--r--configs/fedora/generic/arm/CONFIG_ARCH_ASPEED1
-rw-r--r--configs/fedora/generic/arm/CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM1
-rw-r--r--configs/fedora/generic/arm/CONFIG_ARM_PSCI_CPUIDLE1
-rw-r--r--configs/fedora/generic/arm/CONFIG_ARM_PSCI_FW1
-rw-r--r--configs/fedora/generic/arm/CONFIG_ARM_QCOM_CPUFREQ_KRYO1
-rw-r--r--configs/fedora/generic/arm/CONFIG_BATTERY_GAUGE_LTC29411
-rw-r--r--configs/fedora/generic/arm/CONFIG_BATTERY_MAX170401
-rw-r--r--configs/fedora/generic/arm/CONFIG_CAN_MCP251X1
-rw-r--r--configs/fedora/generic/arm/CONFIG_CROS_EC1
-rw-r--r--configs/fedora/generic/arm/CONFIG_CROS_EC_CHARDEV1
-rw-r--r--configs/fedora/generic/arm/CONFIG_CRYPTO_AEGIS128_SIMD1
-rw-r--r--configs/fedora/generic/arm/CONFIG_DRM_TINYDRM1
-rw-r--r--configs/fedora/generic/arm/CONFIG_GPIO_MOXTET1
-rw-r--r--configs/fedora/generic/arm/CONFIG_GPIO_TPS6586X (renamed from configs/fedora/generic/arm/armv7/armv7/CONFIG_GPIO_TPS6586X)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_HDC100X1
-rw-r--r--configs/fedora/generic/arm/CONFIG_HTU211
-rw-r--r--configs/fedora/generic/arm/CONFIG_IMX7ULP_WDT1
-rw-r--r--configs/fedora/generic/arm/CONFIG_IMX_DSP1
-rw-r--r--configs/fedora/generic/arm/CONFIG_INPUT_PWM_BEEPER1
-rw-r--r--configs/fedora/generic/arm/CONFIG_INTERCONNECT_QCOM_QCS4041
-rw-r--r--configs/fedora/generic/arm/CONFIG_LEDS_PCA963X1
-rw-r--r--configs/fedora/generic/arm/CONFIG_MAG31101
-rw-r--r--configs/fedora/generic/arm/CONFIG_MCP320X1
-rw-r--r--configs/fedora/generic/arm/CONFIG_MCP34221
-rw-r--r--configs/fedora/generic/arm/CONFIG_MESON_EE_PM_DOMAINS1
-rw-r--r--configs/fedora/generic/arm/CONFIG_MFD_CROS_EC1
-rw-r--r--configs/fedora/generic/arm/CONFIG_MFD_CROS_EC_CHARDEV1
-rw-r--r--configs/fedora/generic/arm/CONFIG_MFD_CROS_EC_DEV1
-rw-r--r--configs/fedora/generic/arm/CONFIG_MOXTET1
-rw-r--r--configs/fedora/generic/arm/CONFIG_PWM_PCA96851
-rw-r--r--configs/fedora/generic/arm/CONFIG_QCOM_SOCINFO1
-rw-r--r--configs/fedora/generic/arm/CONFIG_RESET_SCMI1
-rw-r--r--configs/fedora/generic/arm/CONFIG_RTC_DRV_MESON_VRTC1
-rw-r--r--configs/fedora/generic/arm/CONFIG_SENSORS_GPIO_FAN (renamed from configs/fedora/generic/arm/armv7/CONFIG_SENSORS_GPIO_FAN)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SI7020 (renamed from configs/fedora/generic/arm/armv7/CONFIG_SI7020)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SM_GCC_81501
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_ADAU1977_I2C1
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_CS42651
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_CS4271_I2C1
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_CS42XX8_I2C (renamed from configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_CS42XX8_I2C)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_DA72131
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_ICS434321
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_MAX98357A (renamed from configs/fedora/generic/arm/aarch64/CONFIG_SND_SOC_MAX98357A)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_PCM5102A1
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_SGTL5000 (renamed from configs/fedora/generic/arm/aarch64/CONFIG_SND_SOC_SGTL5000)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_TLV320AIC23 (renamed from configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC23)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_TLV320AIC23_I2C (renamed from configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC23_I2C)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_TLV320AIC23_SPI (renamed from configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC23_SPI)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_WM8731 (renamed from configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_WM8731)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_SND_SOC_WM87411
-rw-r--r--configs/fedora/generic/arm/CONFIG_TCG_FTPM_TEE1
-rw-r--r--configs/fedora/generic/arm/CONFIG_TINYDRM_MIPI_DBI1
-rw-r--r--configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_ADS7846 (renamed from configs/fedora/generic/arm/armv7/CONFIG_TOUCHSCREEN_ADS7846)0
-rw-r--r--configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_EXC30001
-rw-r--r--configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_GOODIX1
-rw-r--r--configs/fedora/generic/arm/CONFIG_TSL45311
-rw-r--r--configs/fedora/generic/arm/CONFIG_TURRIS_MOX_RWTM1
-rw-r--r--configs/fedora/generic/arm/CONFIG_USB_CONN_GPIO1
-rw-r--r--configs/fedora/generic/arm/CONFIG_USB_OHCI_HCD1
-rw-r--r--configs/fedora/generic/arm/CONFIG_VEML60701
-rw-r--r--configs/fedora/generic/arm/CONFIG_VIDEO_SUN4I_CSI1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_ARM64_TAGGED_ADDR_ABI1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_ARM64_VA_BITS_521
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_ARM_QCOM_CPUFREQ_NVMEM1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_CAVIUM_TX2_ERRATUM_219 (renamed from configs/fedora/generic/arm/CONFIG_CAVIUM_TX2_ERRATUM_219)0
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_CLK_IMX8MN1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_CRYPTO_DEV_HISI_ZIP1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_EDAC_BLUEFIELD1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_HISI_KIRIN_DW_DSI1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_KEXEC_SIG1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_NR_CPUS2
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_PCIE_AL1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_PCIE_TEGRA1941
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_PHY_TEGRA194_P2U1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_QCOM_SOCINFO1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_RTC_DRV_FSL_FTM_ALARM1
-rw-r--r--configs/fedora/generic/arm/aarch64/CONFIG_SM_GCC_81501
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_ARCH_MULTI_V51
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_EDAC_ARMADA_XP1
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_MTD_M25P801
-rw-r--r--configs/fedora/generic/arm/armv7/CONFIG_SND_SOC_SGTL50001
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_ARM_TEGRA20_DEVFREQ1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_LGPHILIPS_LB035Q021
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_NEC_NL8048HL111
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_SHARP_LS037V7DW011
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM1
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC11
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA11
-rw-r--r--configs/fedora/generic/arm/armv7/armv7/CONFIG_QCOM_COMMAND_DB1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_EFI_TEST1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_HMM_MIRROR2
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_INPUT_PWM_BEEPER1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_NR_CPUS2
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_OPAL_CORE1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_PPC_SVM1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_SND_HDA_INTEL1
-rw-r--r--configs/fedora/generic/powerpc/CONFIG_SND_HDA_INTEL_DETECT_DMIC1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_CRYPTO_SHA3_256_S3901
-rw-r--r--configs/fedora/generic/s390x/CONFIG_CRYPTO_SHA3_512_S3901
-rw-r--r--configs/fedora/generic/s390x/CONFIG_EFI_TEST1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_INPUT_PWM_BEEPER1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_KEXEC_SIG1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_KEXEC_VERIFY_SIG1
-rw-r--r--configs/fedora/generic/s390x/CONFIG_MARCH_Z151
-rw-r--r--configs/fedora/generic/s390x/CONFIG_NR_CPUS2
-rw-r--r--configs/fedora/generic/s390x/CONFIG_TUNE_Z151
-rw-r--r--configs/fedora/generic/x86/CONFIG_CPU_IDLE_GOV_HALTPOLL1
-rw-r--r--configs/fedora/generic/x86/CONFIG_CROS_EC1
-rw-r--r--configs/fedora/generic/x86/CONFIG_CROS_EC_I2C1
-rw-r--r--configs/fedora/generic/x86/CONFIG_CROS_EC_PROTO1
-rw-r--r--configs/fedora/generic/x86/CONFIG_CROS_EC_SPI1
-rw-r--r--configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DCN2_11
-rw-r--r--configs/fedora/generic/x86/CONFIG_EFI_RCI2_TABLE1
-rw-r--r--configs/fedora/generic/x86/CONFIG_HALTPOLL_CPUIDLE1
-rw-r--r--configs/fedora/generic/x86/CONFIG_KS0108 (renamed from configs/fedora/generic/CONFIG_KS0108)0
-rw-r--r--configs/fedora/generic/x86/CONFIG_KS0108_DELAY (renamed from configs/fedora/generic/CONFIG_KS0108_DELAY)0
-rw-r--r--configs/fedora/generic/x86/CONFIG_KS0108_PORT (renamed from configs/fedora/generic/CONFIG_KS0108_PORT)0
-rw-r--r--configs/fedora/generic/x86/CONFIG_LOCK_DOWN_KERNEL1
-rw-r--r--configs/fedora/generic/x86/CONFIG_LOCK_DOWN_KERNEL_FORCE1
-rw-r--r--configs/fedora/generic/x86/CONFIG_MAXSMP2
-rw-r--r--configs/fedora/generic/x86/CONFIG_PARAVIRT_SPINLOCKS2
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_HDA_INTEL1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_HDA_INTEL_DETECT_DMIC1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC2
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC~1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH2
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH~1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L11
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1~1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_LINK1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL2
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_VIDEO_CROS_EC_CEC1
-rw-r--r--configs/fedora/generic/x86/i686/CONFIG_CRYPTO_AES_5861
-rw-r--r--configs/fedora/generic/x86/i686/CONFIG_INPUT_PWM_BEEPER1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CROS_EC_CHARDEV1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AEGIS128L_AESNI_SSE21
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AEGIS256_AESNI_SSE21
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AES_X86_641
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS1280_AVX21
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS1280_SSE21
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS640_SSE21
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC_CHARDEV1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC_DEV1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_NR_CPUS2
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_OPTIMIZE_INLINING1
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_SGI_IOC41
-rw-r--r--configs/fedora/generic/x86/x86_64/CONFIG_X86_5LEVEL2
-rw-r--r--configs/flavors1
-rw-r--r--configs/priority.fedora (renamed from configs/config_generation)0
-rwxr-xr-xconfigs/process_configs.sh97
-rw-r--r--cpupower.config0
-rw-r--r--cpupower.service0
-rw-r--r--crash-driver.patch722
-rw-r--r--die-floppy-die.patch29
-rw-r--r--drm-i915-hush-check-crtc-state.patch32
-rw-r--r--dwc3-fix.patch80
-rw-r--r--efi-lockdown.patch2173
-rw-r--r--efi-secureboot.patch254
-rw-r--r--filter-aarch64.sh.fedora18
-rw-r--r--filter-aarch64.sh.rhel0
-rw-r--r--filter-armv7hl.sh.fedora18
-rw-r--r--filter-armv7hl.sh.rhel0
-rw-r--r--filter-i686.sh.fedora14
-rw-r--r--filter-i686.sh.rhel0
-rwxr-xr-xfilter-modules.sh.fedora153
-rw-r--r--filter-modules.sh.rhel0
-rw-r--r--filter-ppc64le.sh.fedora14
-rw-r--r--filter-ppc64le.sh.rhel0
-rw-r--r--filter-s390x.sh.fedora12
-rw-r--r--filter-s390x.sh.rhel0
-rw-r--r--filter-x86_64.sh.fedora12
-rw-r--r--filter-x86_64.sh.rhel0
-rw-r--r--firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch89
-rwxr-xr-xgenerate_all_configs.sh34
-rw-r--r--gpio-max77620-Use-correct-unit-for-debounce-times.patch475
-rw-r--r--input-kill-stupid-messages.patch30
-rw-r--r--kernel-aarch64-debug-fedora.config (renamed from kernel-aarch64-debug.config)225
-rw-r--r--kernel-aarch64-debug-rhel.config1
-rw-r--r--kernel-aarch64-fedora.config (renamed from kernel-aarch64.config)223
-rw-r--r--kernel-aarch64-rhel.config1
-rw-r--r--kernel-armv7hl-debug-fedora.config (renamed from kernel-armv7hl-debug.config)210
-rw-r--r--kernel-armv7hl-fedora.config (renamed from kernel-armv7hl.config)208
-rw-r--r--kernel-armv7hl-lpae-debug-fedora.config (renamed from kernel-armv7hl-lpae-debug.config)211
-rw-r--r--kernel-armv7hl-lpae-fedora.config (renamed from kernel-armv7hl-lpae.config)209
-rw-r--r--kernel-i686-debug-fedora.config (renamed from kernel-i686-debug.config)167
-rw-r--r--kernel-i686-fedora.config (renamed from kernel-i686.config)167
-rw-r--r--kernel-ppc64le-debug-fedora.config (renamed from kernel-ppc64le-debug.config)140
-rw-r--r--kernel-ppc64le-debug-rhel.config1
-rw-r--r--kernel-ppc64le-fedora.config (renamed from kernel-ppc64le.config)138
-rw-r--r--kernel-ppc64le-rhel.config1
-rw-r--r--kernel-s390x-debug-fedora.config (renamed from kernel-s390x-debug.config)144
-rw-r--r--kernel-s390x-debug-rhel.config1
-rw-r--r--kernel-s390x-fedora.config (renamed from kernel-s390x.config)142
-rw-r--r--kernel-s390x-rhel.config1
-rw-r--r--kernel-s390x-zfcpdump-rhel.config1
-rw-r--r--kernel-x86_64-debug-fedora.config (renamed from kernel-x86_64-debug.config)179
-rw-r--r--kernel-x86_64-debug-rhel.config1
-rw-r--r--kernel-x86_64-fedora.config (renamed from kernel-x86_64.config)181
-rw-r--r--kernel-x86_64-rhel.config1
-rw-r--r--kernel.spec1217
-rw-r--r--lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch34
-rw-r--r--lift-lockdown-sysrq.patch287
-rw-r--r--lis3-improve-handling-of-null-rate.patch75
-rwxr-xr-xmod-extra-blacklist.sh48
-rw-r--r--mod-extra.list2
-rw-r--r--mod-extra.list.fedora196
-rw-r--r--mod-extra.list.rhel0
-rwxr-xr-xmod-extra.sh62
-rw-r--r--mod-internal.list4
-rw-r--r--namespaces-no-expert.patch27
-rw-r--r--no-pcspkr-modalias.patch22
-rwxr-xr-xparallel_xz.sh26
-rw-r--r--redhatsecureboot003.cerbin0 -> 829 bytes
-rw-r--r--redhatsecurebootca2.cerbin0 -> 872 bytes
-rwxr-xr-xscripts/create_headers_tarball.sh8
-rw-r--r--scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch39
-rw-r--r--secureboot.cerbin0 -> 899 bytes
-rw-r--r--securebootca.cerbin0 -> 977 bytes
-rw-r--r--sources5
-rwxr-xr-xupdate_scripts.sh12
-rw-r--r--x509.genkey.fedora16
-rw-r--r--x509.genkey.rhel16
393 files changed, 17256 insertions, 5986 deletions
diff --git a/0001-ASoC-SOF-Fix-memory-leak-in-sof_dfsentry_write.patch b/0001-ASoC-SOF-Fix-memory-leak-in-sof_dfsentry_write.patch
deleted file mode 100644
index 587a2acd1..000000000
--- a/0001-ASoC-SOF-Fix-memory-leak-in-sof_dfsentry_write.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From c0a333d842ef67ac04adc72ff79dc1ccc3dca4ed Mon Sep 17 00:00:00 2001
-From: Navid Emamdoost <navid.emamdoost@gmail.com>
-Date: Sun, 27 Oct 2019 14:48:47 -0500
-Subject: [PATCH] ASoC: SOF: Fix memory leak in sof_dfsentry_write
-
-In the implementation of sof_dfsentry_write() memory allocated for
-string is leaked in case of an error. Go to error handling path if the
-d_name.name is not valid.
-
-Fixes: 091c12e1f50c ("ASoC: SOF: debug: add new debugfs entries for IPC flood test")
-Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
-Link: https://lore.kernel.org/r/20191027194856.4056-1-navid.emamdoost@gmail.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
----
- sound/soc/sof/debug.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c
-index 54cd431faab7..5529e8eeca46 100644
---- a/sound/soc/sof/debug.c
-+++ b/sound/soc/sof/debug.c
-@@ -152,8 +152,10 @@ static ssize_t sof_dfsentry_write(struct file *file, const char __user *buffer,
- * in the debugfs entry.
- */
- if (strcmp(dfse->dfsentry->d_name.name, "ipc_flood_count") &&
-- strcmp(dfse->dfsentry->d_name.name, "ipc_flood_duration_ms"))
-- return -EINVAL;
-+ strcmp(dfse->dfsentry->d_name.name, "ipc_flood_duration_ms")) {
-+ ret = -EINVAL;
-+ goto out;
-+ }
-
- if (!strcmp(dfse->dfsentry->d_name.name, "ipc_flood_duration_ms"))
- flood_duration_test = true;
---
-2.23.0
-
diff --git a/0001-RDMA-Fix-goto-target-to-release-the-allocated-memory.patch b/0001-RDMA-Fix-goto-target-to-release-the-allocated-memory.patch
deleted file mode 100644
index 87f4b4db7..000000000
--- a/0001-RDMA-Fix-goto-target-to-release-the-allocated-memory.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 4a9d46a9fe14401f21df69cea97c62396d5fb053 Mon Sep 17 00:00:00 2001
-From: Navid Emamdoost <navid.emamdoost@gmail.com>
-Date: Tue, 10 Sep 2019 17:21:19 -0500
-Subject: [PATCH] RDMA: Fix goto target to release the allocated memory
-
-In bnxt_re_create_srq(), when ib_copy_to_udata() fails allocated memory
-should be released by goto fail.
-
-Fixes: 37cb11acf1f7 ("RDMA/bnxt_re: Add SRQ support for Broadcom adapters")
-Link: https://lore.kernel.org/r/20190910222120.16517-1-navid.emamdoost@gmail.com
-Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
-Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
-Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
----
- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
-index f9e97d0cc459..b4149dc9e824 100644
---- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c
-+++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c
-@@ -1398,7 +1398,7 @@ int bnxt_re_create_srq(struct ib_srq *ib_srq,
- dev_err(rdev_to_dev(rdev), "SRQ copy to udata failed!");
- bnxt_qplib_destroy_srq(&rdev->qplib_res,
- &srq->qplib_srq);
-- goto exit;
-+ goto fail;
- }
- }
- if (nq)
---
-2.23.0
-
diff --git a/0001-ath9k-release-allocated-buffer-if-timed-out.patch b/0001-ath9k-release-allocated-buffer-if-timed-out.patch
deleted file mode 100644
index db71192a3..000000000
--- a/0001-ath9k-release-allocated-buffer-if-timed-out.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 728c1e2a05e4b5fc52fab3421dce772a806612a2 Mon Sep 17 00:00:00 2001
-From: Navid Emamdoost <navid.emamdoost@gmail.com>
-Date: Fri, 6 Sep 2019 13:59:30 -0500
-Subject: [PATCH] ath9k: release allocated buffer if timed out
-
-In ath9k_wmi_cmd, the allocated network buffer needs to be released
-if timeout happens. Otherwise memory will be leaked.
-
-Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/ath/ath9k/wmi.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/wireless/ath/ath9k/wmi.c b/drivers/net/wireless/ath/ath9k/wmi.c
-index d1f6710ca63b..cdc146091194 100644
---- a/drivers/net/wireless/ath/ath9k/wmi.c
-+++ b/drivers/net/wireless/ath/ath9k/wmi.c
-@@ -336,6 +336,7 @@ int ath9k_wmi_cmd(struct wmi *wmi, enum wmi_cmd_id cmd_id,
- ath_dbg(common, WMI, "Timeout waiting for WMI command: %s\n",
- wmi_cmd_to_name(cmd_id));
- mutex_unlock(&wmi->op_mutex);
-+ kfree_skb(skb);
- return -ETIMEDOUT;
- }
-
---
-2.23.0
-
diff --git a/0001-ath9k_htc-release-allocated-buffer-if-timed-out.patch b/0001-ath9k_htc-release-allocated-buffer-if-timed-out.patch
deleted file mode 100644
index 0d21d61c7..000000000
--- a/0001-ath9k_htc-release-allocated-buffer-if-timed-out.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 853acf7caf10b828102d92d05b5c101666a6142b Mon Sep 17 00:00:00 2001
-From: Navid Emamdoost <navid.emamdoost@gmail.com>
-Date: Fri, 6 Sep 2019 13:26:03 -0500
-Subject: [PATCH] ath9k_htc: release allocated buffer if timed out
-
-In htc_config_pipe_credits, htc_setup_complete, and htc_connect_service
-if time out happens, the allocated buffer needs to be released.
-Otherwise there will be memory leak.
-
-Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
-Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
----
- drivers/net/wireless/ath/ath9k/htc_hst.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/net/wireless/ath/ath9k/htc_hst.c b/drivers/net/wireless/ath/ath9k/htc_hst.c
-index 1bf63a4efb4c..d091c8ebdcf0 100644
---- a/drivers/net/wireless/ath/ath9k/htc_hst.c
-+++ b/drivers/net/wireless/ath/ath9k/htc_hst.c
-@@ -170,6 +170,7 @@ static int htc_config_pipe_credits(struct htc_target *target)
- time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
- if (!time_left) {
- dev_err(target->dev, "HTC credit config timeout\n");
-+ kfree_skb(skb);
- return -ETIMEDOUT;
- }
-
-@@ -205,6 +206,7 @@ static int htc_setup_complete(struct htc_target *target)
- time_left = wait_for_completion_timeout(&target->cmd_wait, HZ);
- if (!time_left) {
- dev_err(target->dev, "HTC start timeout\n");
-+ kfree_skb(skb);
- return -ETIMEDOUT;
- }
-
-@@ -277,6 +279,7 @@ int htc_connect_service(struct htc_target *target,
- if (!time_left) {
- dev_err(target->dev, "Service connection timeout for: %d\n",
- service_connreq->service_id);
-+ kfree_skb(skb);
- return -ETIMEDOUT;
- }
-
---
-2.23.0
-
diff --git a/0001-drm-amd-display-prevent-memory-leak.patch b/0001-drm-amd-display-prevent-memory-leak.patch
deleted file mode 100644
index e74ad2913..000000000
--- a/0001-drm-amd-display-prevent-memory-leak.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 104c307147ad379617472dd91a5bcb368d72bd6d Mon Sep 17 00:00:00 2001
-From: Navid Emamdoost <navid.emamdoost@gmail.com>
-Date: Tue, 24 Sep 2019 23:23:56 -0500
-Subject: [PATCH] drm/amd/display: prevent memory leak
-
-In dcn*_create_resource_pool the allocated memory should be released if
-construct pool fails.
-
-Reviewed-by: Harry Wentland <harry.wentland@amd.com>
-Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c | 1 +
- drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c | 1 +
- drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c | 1 +
- drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c | 1 +
- drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c | 1 +
- 5 files changed, 5 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
-index afc61055eca1..1787b9bf800a 100644
---- a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
-+++ b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
-@@ -1091,6 +1091,7 @@ struct resource_pool *dce100_create_resource_pool(
- if (construct(num_virtual_links, dc, pool))
- return &pool->base;
-
-+ kfree(pool);
- BREAK_TO_DEBUGGER();
- return NULL;
- }
-diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
-index c66fe170e1e8..318e9c2e2ca8 100644
---- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
-+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
-@@ -1462,6 +1462,7 @@ struct resource_pool *dce110_create_resource_pool(
- if (construct(num_virtual_links, dc, pool, asic_id))
- return &pool->base;
-
-+ kfree(pool);
- BREAK_TO_DEBUGGER();
- return NULL;
- }
-diff --git a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
-index 2b3a2917c168..83e1878161c9 100644
---- a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
-+++ b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
-@@ -1342,6 +1342,7 @@ struct resource_pool *dce112_create_resource_pool(
- if (construct(num_virtual_links, dc, pool))
- return &pool->base;
-
-+ kfree(pool);
- BREAK_TO_DEBUGGER();
- return NULL;
- }
-diff --git a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
-index 236c4c0324b1..8b85e5274bba 100644
---- a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
-+++ b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
-@@ -1208,6 +1208,7 @@ struct resource_pool *dce120_create_resource_pool(
- if (construct(num_virtual_links, dc, pool))
- return &pool->base;
-
-+ kfree(pool);
- BREAK_TO_DEBUGGER();
- return NULL;
- }
-diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
-index 5a89e462e7cc..59305e411a66 100644
---- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
-+++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c
-@@ -1570,6 +1570,7 @@ struct resource_pool *dcn10_create_resource_pool(
- if (construct(init_data->num_virtual_links, dc, pool))
- return &pool->base;
-
-+ kfree(pool);
- BREAK_TO_DEBUGGER();
- return NULL;
- }
---
-2.23.0
-
diff --git a/0001-drm-nouveau-Move-the-declaration-of-struct-nouveau_c.patch b/0001-drm-nouveau-Move-the-declaration-of-struct-nouveau_c.patch
new file mode 100644
index 000000000..548304eab
--- /dev/null
+++ b/0001-drm-nouveau-Move-the-declaration-of-struct-nouveau_c.patch
@@ -0,0 +1,158 @@
+From 37a68eab4cd92b507c9e8afd760fdc18e4fecac6 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Thu, 24 Oct 2019 10:52:52 +0200
+Subject: [PATCH v2 1/2] drm/nouveau: Move the declaration of struct
+ nouveau_conn_atom up a bit
+
+Place the declaration of struct nouveau_conn_atom above that of
+struct nouveau_connector. This commit makes no changes to the moved
+block what so ever, it just moves it up a bit.
+
+This is a preparation patch to fix some issues with connector handling
+on pre nv50 displays (which do not use atomic modesetting).
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Reviewed-by: Lyude Paul <lyude@redhat.com>
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+---
+ drivers/gpu/drm/nouveau/nouveau_connector.h | 110 ++++++++++----------
+ 1 file changed, 55 insertions(+), 55 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.h b/drivers/gpu/drm/nouveau/nouveau_connector.h
+index f43a8d63aef8..de9588420884 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_connector.h
++++ b/drivers/gpu/drm/nouveau/nouveau_connector.h
+@@ -29,6 +29,7 @@
+
+ #include <nvif/notify.h>
+
++#include <drm/drm_crtc.h>
+ #include <drm/drm_edid.h>
+ #include <drm/drm_encoder.h>
+ #include <drm/drm_dp_helper.h>
+@@ -44,6 +45,60 @@ struct dcb_output;
+ struct nouveau_backlight;
+ #endif
+
++#define nouveau_conn_atom(p) \
++ container_of((p), struct nouveau_conn_atom, state)
++
++struct nouveau_conn_atom {
++ struct drm_connector_state state;
++
++ struct {
++ /* The enum values specifically defined here match nv50/gf119
++ * hw values, and the code relies on this.
++ */
++ enum {
++ DITHERING_MODE_OFF = 0x00,
++ DITHERING_MODE_ON = 0x01,
++ DITHERING_MODE_DYNAMIC2X2 = 0x10 | DITHERING_MODE_ON,
++ DITHERING_MODE_STATIC2X2 = 0x18 | DITHERING_MODE_ON,
++ DITHERING_MODE_TEMPORAL = 0x20 | DITHERING_MODE_ON,
++ DITHERING_MODE_AUTO
++ } mode;
++ enum {
++ DITHERING_DEPTH_6BPC = 0x00,
++ DITHERING_DEPTH_8BPC = 0x02,
++ DITHERING_DEPTH_AUTO
++ } depth;
++ } dither;
++
++ struct {
++ int mode; /* DRM_MODE_SCALE_* */
++ struct {
++ enum {
++ UNDERSCAN_OFF,
++ UNDERSCAN_ON,
++ UNDERSCAN_AUTO,
++ } mode;
++ u32 hborder;
++ u32 vborder;
++ } underscan;
++ bool full;
++ } scaler;
++
++ struct {
++ int color_vibrance;
++ int vibrant_hue;
++ } procamp;
++
++ union {
++ struct {
++ bool dither:1;
++ bool scaler:1;
++ bool procamp:1;
++ };
++ u8 mask;
++ } set;
++};
++
+ struct nouveau_connector {
+ struct drm_connector base;
+ enum dcb_connector_type type;
+@@ -121,61 +176,6 @@ extern int nouveau_ignorelid;
+ extern int nouveau_duallink;
+ extern int nouveau_hdmimhz;
+
+-#include <drm/drm_crtc.h>
+-#define nouveau_conn_atom(p) \
+- container_of((p), struct nouveau_conn_atom, state)
+-
+-struct nouveau_conn_atom {
+- struct drm_connector_state state;
+-
+- struct {
+- /* The enum values specifically defined here match nv50/gf119
+- * hw values, and the code relies on this.
+- */
+- enum {
+- DITHERING_MODE_OFF = 0x00,
+- DITHERING_MODE_ON = 0x01,
+- DITHERING_MODE_DYNAMIC2X2 = 0x10 | DITHERING_MODE_ON,
+- DITHERING_MODE_STATIC2X2 = 0x18 | DITHERING_MODE_ON,
+- DITHERING_MODE_TEMPORAL = 0x20 | DITHERING_MODE_ON,
+- DITHERING_MODE_AUTO
+- } mode;
+- enum {
+- DITHERING_DEPTH_6BPC = 0x00,
+- DITHERING_DEPTH_8BPC = 0x02,
+- DITHERING_DEPTH_AUTO
+- } depth;
+- } dither;
+-
+- struct {
+- int mode; /* DRM_MODE_SCALE_* */
+- struct {
+- enum {
+- UNDERSCAN_OFF,
+- UNDERSCAN_ON,
+- UNDERSCAN_AUTO,
+- } mode;
+- u32 hborder;
+- u32 vborder;
+- } underscan;
+- bool full;
+- } scaler;
+-
+- struct {
+- int color_vibrance;
+- int vibrant_hue;
+- } procamp;
+-
+- union {
+- struct {
+- bool dither:1;
+- bool scaler:1;
+- bool procamp:1;
+- };
+- u8 mask;
+- } set;
+-};
+-
+ void nouveau_conn_attach_properties(struct drm_connector *);
+ void nouveau_conn_reset(struct drm_connector *);
+ struct drm_connector_state *
+--
+2.23.0
+
diff --git a/0001-iwlwifi-dbg_ini-fix-memory-leak-in-alloc_sgtable.patch b/0001-iwlwifi-dbg_ini-fix-memory-leak-in-alloc_sgtable.patch
deleted file mode 100644
index d82c3f254..000000000
--- a/0001-iwlwifi-dbg_ini-fix-memory-leak-in-alloc_sgtable.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From b4b814fec1a5a849383f7b3886b654a13abbda7d Mon Sep 17 00:00:00 2001
-From: Navid Emamdoost <navid.emamdoost@gmail.com>
-Date: Thu, 12 Sep 2019 23:23:27 -0500
-Subject: [PATCH] iwlwifi: dbg_ini: fix memory leak in alloc_sgtable
-
-In alloc_sgtable if alloc_page fails, the alocated table should be
-released.
-
-Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
-Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
----
- drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-index 5c8602de9168..87421807e040 100644
---- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-+++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
-@@ -646,6 +646,7 @@ static struct scatterlist *alloc_sgtable(int size)
- if (new_page)
- __free_page(new_page);
- }
-+ kfree(table);
- return NULL;
- }
- alloc_size = min_t(int, size, PAGE_SIZE);
---
-2.23.0
-
diff --git a/0001-iwlwifi-pcie-fix-memory-leaks-in-iwl_pcie_ctxt_info_.patch b/0001-iwlwifi-pcie-fix-memory-leaks-in-iwl_pcie_ctxt_info_.patch
deleted file mode 100644
index a72e920bd..000000000
--- a/0001-iwlwifi-pcie-fix-memory-leaks-in-iwl_pcie_ctxt_info_.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 0f4f199443faca715523b0659aa536251d8b978f Mon Sep 17 00:00:00 2001
-From: Navid Emamdoost <navid.emamdoost@gmail.com>
-Date: Fri, 27 Sep 2019 15:56:04 -0500
-Subject: [PATCH] iwlwifi: pcie: fix memory leaks in
- iwl_pcie_ctxt_info_gen3_init
-
-In iwl_pcie_ctxt_info_gen3_init there are cases that the allocated dma
-memory is leaked in case of error.
-
-DMA memories prph_scratch, prph_info, and ctxt_info_gen3 are allocated
-and initialized to be later assigned to trans_pcie. But in any error case
-before such assignment the allocated memories should be released.
-
-First of such error cases happens when iwl_pcie_init_fw_sec fails.
-Current implementation correctly releases prph_scratch. But in two
-sunsequent error cases where dma_alloc_coherent may fail, such
-releases are missing.
-
-This commit adds release for prph_scratch when allocation for
-prph_info fails, and adds releases for prph_scratch and prph_info when
-allocation for ctxt_info_gen3 fails.
-
-Fixes: 2ee824026288 ("iwlwifi: pcie: support context information for 22560 devices")
-Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
-Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
----
- .../intel/iwlwifi/pcie/ctxt-info-gen3.c | 36 +++++++++++++------
- 1 file changed, 25 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-index 75fa8a6aafee..74980382e64c 100644
---- a/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-+++ b/drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c
-@@ -107,13 +107,9 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
-
- /* allocate ucode sections in dram and set addresses */
- ret = iwl_pcie_init_fw_sec(trans, fw, &prph_scratch->dram);
-- if (ret) {
-- dma_free_coherent(trans->dev,
-- sizeof(*prph_scratch),
-- prph_scratch,
-- trans_pcie->prph_scratch_dma_addr);
-- return ret;
-- }
-+ if (ret)
-+ goto err_free_prph_scratch;
-+
-
- /* Allocate prph information
- * currently we don't assign to the prph info anything, but it would get
-@@ -121,16 +117,20 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
- prph_info = dma_alloc_coherent(trans->dev, sizeof(*prph_info),
- &trans_pcie->prph_info_dma_addr,
- GFP_KERNEL);
-- if (!prph_info)
-- return -ENOMEM;
-+ if (!prph_info) {
-+ ret = -ENOMEM;
-+ goto err_free_prph_scratch;
-+ }
-
- /* Allocate context info */
- ctxt_info_gen3 = dma_alloc_coherent(trans->dev,
- sizeof(*ctxt_info_gen3),
- &trans_pcie->ctxt_info_dma_addr,
- GFP_KERNEL);
-- if (!ctxt_info_gen3)
-- return -ENOMEM;
-+ if (!ctxt_info_gen3) {
-+ ret = -ENOMEM;
-+ goto err_free_prph_info;
-+ }
-
- ctxt_info_gen3->prph_info_base_addr =
- cpu_to_le64(trans_pcie->prph_info_dma_addr);
-@@ -186,6 +186,20 @@ int iwl_pcie_ctxt_info_gen3_init(struct iwl_trans *trans,
- iwl_set_bit(trans, CSR_GP_CNTRL, CSR_AUTO_FUNC_INIT);
-
- return 0;
-+
-+err_free_prph_info:
-+ dma_free_coherent(trans->dev,
-+ sizeof(*prph_info),
-+ prph_info,
-+ trans_pcie->prph_info_dma_addr);
-+
-+err_free_prph_scratch:
-+ dma_free_coherent(trans->dev,
-+ sizeof(*prph_scratch),
-+ prph_scratch,
-+ trans_pcie->prph_scratch_dma_addr);
-+ return ret;
-+
- }
-
- void iwl_pcie_ctxt_info_gen3_free(struct iwl_trans *trans)
---
-2.23.0
-
diff --git a/0001-nl80211-fix-memory-leak-in-nl80211_get_ftm_responder.patch b/0001-nl80211-fix-memory-leak-in-nl80211_get_ftm_responder.patch
deleted file mode 100644
index e72e53ebd..000000000
--- a/0001-nl80211-fix-memory-leak-in-nl80211_get_ftm_responder.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 1399c59fa92984836db90538cf92397fe7caaa57 Mon Sep 17 00:00:00 2001
-From: Navid Emamdoost <navid.emamdoost@gmail.com>
-Date: Fri, 4 Oct 2019 14:42:19 -0500
-Subject: [PATCH] nl80211: fix memory leak in nl80211_get_ftm_responder_stats
-
-In nl80211_get_ftm_responder_stats, a new skb is created via nlmsg_new
-named msg. If nl80211hdr_put() fails, then msg should be released. The
-return statement should be replace by goto to error handling code.
-
-Fixes: 81e54d08d9d8 ("cfg80211: support FTM responder configuration/statistics")
-Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
-Link: https://lore.kernel.org/r/20191004194220.19412-1-navid.emamdoost@gmail.com
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
----
- net/wireless/nl80211.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
-index 141cdb171665..4453dd375de9 100644
---- a/net/wireless/nl80211.c
-+++ b/net/wireless/nl80211.c
-@@ -13682,7 +13682,7 @@ static int nl80211_get_ftm_responder_stats(struct sk_buff *skb,
- hdr = nl80211hdr_put(msg, info->snd_portid, info->snd_seq, 0,
- NL80211_CMD_GET_FTM_RESPONDER_STATS);
- if (!hdr)
-- return -ENOBUFS;
-+ goto nla_put_failure;
-
- if (nla_put_u32(msg, NL80211_ATTR_IFINDEX, dev->ifindex))
- goto nla_put_failure;
---
-2.23.0
-
diff --git a/0001-tracing-Have-error-path-in-predicate_parse-free-its-.patch b/0001-tracing-Have-error-path-in-predicate_parse-free-its-.patch
deleted file mode 100644
index 42d4e176a..000000000
--- a/0001-tracing-Have-error-path-in-predicate_parse-free-its-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 96c5c6e6a5b6db592acae039fed54b5c8844cd35 Mon Sep 17 00:00:00 2001
-From: Navid Emamdoost <navid.emamdoost@gmail.com>
-Date: Fri, 20 Sep 2019 17:57:59 -0500
-Subject: [PATCH] tracing: Have error path in predicate_parse() free its
- allocated memory
-
-In predicate_parse, there is an error path that is not going to
-out_free instead it returns directly which leads to a memory leak.
-
-Link: http://lkml.kernel.org/r/20190920225800.3870-1-navid.emamdoost@gmail.com
-
-Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
-Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
----
- kernel/trace/trace_events_filter.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
-index c773b8fb270c..c9a74f82b14a 100644
---- a/kernel/trace/trace_events_filter.c
-+++ b/kernel/trace/trace_events_filter.c
-@@ -452,8 +452,10 @@ predicate_parse(const char *str, int nr_parens, int nr_preds,
-
- switch (*next) {
- case '(': /* #2 */
-- if (top - op_stack > nr_parens)
-- return ERR_PTR(-EINVAL);
-+ if (top - op_stack > nr_parens) {
-+ ret = -EINVAL;
-+ goto out_free;
-+ }
- *(++top) = invert;
- continue;
- case '!': /* #3 */
---
-2.23.0
-
diff --git a/0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch b/0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
index 0844550b6..871105093 100644
--- a/0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
+++ b/0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
@@ -39,9 +39,9 @@ index 557a47829d0..e8f9c7d84e9 100644
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -31,6 +31,7 @@
- #include <linux/acpi.h>
#include <linux/ucs2_string.h>
#include <linux/memblock.h>
+ #include <linux/security.h>
+#include <linux/bsearch.h>
#include <asm/early_ioremap.h>
@@ -177,7 +177,7 @@ index 557a47829d0..e8f9c7d84e9 100644
+ return found->description;
}
- bool efi_is_table_address(unsigned long phys_addr)
+ static DEFINE_SPINLOCK(efi_mem_reserve_persistent_lock);
--
2.15.0
diff --git a/0002-drm-nouveau-Fix-drm-core-using-atomic-code-paths-on-.patch b/0002-drm-nouveau-Fix-drm-core-using-atomic-code-paths-on-.patch
new file mode 100644
index 000000000..077f391ca
--- /dev/null
+++ b/0002-drm-nouveau-Fix-drm-core-using-atomic-code-paths-on-.patch
@@ -0,0 +1,115 @@
+From 64d17f25dcad518461ccf0c260544e1e379c5b35 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Thu, 24 Oct 2019 10:52:53 +0200
+Subject: [PATCH v2 2/2] drm/nouveau: Fix drm-core using atomic code-paths on
+ pre-nv50 hardware
+
+We do not support atomic modesetting on pre-nv50 hardware, but until now
+our connector code was setting drm_connector->state on pre-nv50 hardware.
+
+This causes the core to enter atomic modesetting paths in at least:
+
+1. drm_connector_get_encoder(), returning connector->state->best_encoder
+which is always 0, causing us to always report 0 as encoder_id in
+the drmModeConnector struct returned by drmModeGetConnector().
+
+2. drm_encoder_get_crtc(), returning NULL because uses_atomic get set,
+causing us to always report 0 as crtc_id in the drmModeEncoder struct
+returned by drmModeGetEncoder()
+
+Which in turn confuses userspace, at least plymouth thinks that the pipe
+has changed because of this and tries to reconfigure it unnecessarily.
+
+More in general we should not set drm_connector->state in the non-atomic
+code as this violates the drm-core's expectations.
+
+This commit fixes this by using a nouveau_conn_atom struct embedded in the
+nouveau_connector struct for property handling in the non-atomic case.
+
+Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1706557
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+---
+ drivers/gpu/drm/nouveau/nouveau_connector.c | 28 +++++++++++++++------
+ drivers/gpu/drm/nouveau/nouveau_connector.h | 6 +++++
+ 2 files changed, 27 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
+index 5b413588b823..9a9a7f5003d3 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
++++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
+@@ -245,14 +245,22 @@ nouveau_conn_atomic_duplicate_state(struct drm_connector *connector)
+ void
+ nouveau_conn_reset(struct drm_connector *connector)
+ {
++ struct nouveau_connector *nv_connector = nouveau_connector(connector);
+ struct nouveau_conn_atom *asyc;
+
+- if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL))))
+- return;
++ if (drm_drv_uses_atomic_modeset(connector->dev)) {
++ if (WARN_ON(!(asyc = kzalloc(sizeof(*asyc), GFP_KERNEL))))
++ return;
++
++ if (connector->state)
++ nouveau_conn_atomic_destroy_state(connector,
++ connector->state);
++
++ __drm_atomic_helper_connector_reset(connector, &asyc->state);
++ } else {
++ asyc = &nv_connector->properties_state;
++ }
+
+- if (connector->state)
+- nouveau_conn_atomic_destroy_state(connector, connector->state);
+- __drm_atomic_helper_connector_reset(connector, &asyc->state);
+ asyc->dither.mode = DITHERING_MODE_AUTO;
+ asyc->dither.depth = DITHERING_DEPTH_AUTO;
+ asyc->scaler.mode = DRM_MODE_SCALE_NONE;
+@@ -276,8 +284,14 @@ void
+ nouveau_conn_attach_properties(struct drm_connector *connector)
+ {
+ struct drm_device *dev = connector->dev;
+- struct nouveau_conn_atom *armc = nouveau_conn_atom(connector->state);
+ struct nouveau_display *disp = nouveau_display(dev);
++ struct nouveau_connector *nv_connector = nouveau_connector(connector);
++ struct nouveau_conn_atom *armc;
++
++ if (drm_drv_uses_atomic_modeset(connector->dev))
++ armc = nouveau_conn_atom(connector->state);
++ else
++ armc = &nv_connector->properties_state;
+
+ /* Init DVI-I specific properties. */
+ if (connector->connector_type == DRM_MODE_CONNECTOR_DVII)
+@@ -748,9 +762,9 @@ static int
+ nouveau_connector_set_property(struct drm_connector *connector,
+ struct drm_property *property, uint64_t value)
+ {
+- struct nouveau_conn_atom *asyc = nouveau_conn_atom(connector->state);
+ struct nouveau_connector *nv_connector = nouveau_connector(connector);
+ struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder;
++ struct nouveau_conn_atom *asyc = &nv_connector->properties_state;
+ struct drm_encoder *encoder = to_drm_encoder(nv_encoder);
+ int ret;
+
+diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.h b/drivers/gpu/drm/nouveau/nouveau_connector.h
+index de9588420884..de84fb4708c7 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_connector.h
++++ b/drivers/gpu/drm/nouveau/nouveau_connector.h
+@@ -118,6 +118,12 @@ struct nouveau_connector {
+ #ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT
+ struct nouveau_backlight *backlight;
+ #endif
++ /*
++ * Our connector property code expects a nouveau_conn_atom struct
++ * even on pre-nv50 where we do not support atomic. This embedded
++ * version gets used in the non atomic modeset case.
++ */
++ struct nouveau_conn_atom properties_state;
+ };
+
+ static inline struct nouveau_connector *nouveau_connector(
+--
+2.23.0
+
diff --git a/Input-synaptics-pin-3-touches-when-the-firmware-repo.patch b/Input-synaptics-pin-3-touches-when-the-firmware-repo.patch
deleted file mode 100644
index e697968c7..000000000
--- a/Input-synaptics-pin-3-touches-when-the-firmware-repo.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
-Date: Thu, 16 Apr 2015 13:01:46 -0400
-Subject: [PATCH] Input - synaptics: pin 3 touches when the firmware reports 3
- fingers
-
-Synaptics PS/2 touchpad can send only 2 touches in a report. They can
-detect 4 or 5 and this information is valuable.
-
-In commit 63c4fda (Input: synaptics - allocate 3 slots to keep stability
-in image sensors), we allocate 3 slots, but we still continue to report
-the 2 available fingers. That means that the client sees 2 used slots while
-there is a total of 3 fingers advertised by BTN_TOOL_TRIPLETAP.
-
-For old kernels this is not a problem because max_slots was 2 and libinput/
-xorg-synaptics knew how to deal with that. Now that max_slot is 3, the
-clients ignore BTN_TOOL_TRIPLETAP and count the actual used slots (so 2).
-It then gets confused when receiving the BTN_TOOL_TRIPLETAP and DOUBLETAP
-information, and goes wild.
-
-We can pin the 3 slots until we get a total number of fingers below 2.
-
-Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1212230
-
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
----
- drivers/input/mouse/synaptics.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
-index 3a32caf06bf1..58102970f94f 100644
---- a/drivers/input/mouse/synaptics.c
-+++ b/drivers/input/mouse/synaptics.c
-@@ -940,6 +940,14 @@ static void synaptics_report_mt_data(struct psmouse *psmouse,
- input_report_abs(dev, ABS_MT_PRESSURE, hw[i]->z);
- }
-
-+ /* keep (slot count <= num_fingers) by pinning all slots */
-+ if (num_fingers >= 3) {
-+ for (i = 0; i < 3; i++) {
-+ input_mt_slot(dev, i);
-+ input_mt_report_slot_state(dev, MT_TOOL_FINGER, true);
-+ }
-+ }
-+
- input_mt_drop_unused(dev);
-
- /* Don't use active slot count to generate BTN_TOOL events. */
diff --git a/KEYS-Make-use-of-platform-keyring-for-module-signature.patch b/KEYS-Make-use-of-platform-keyring-for-module-signature.patch
index a13dcdba5..7c2a0b68d 100644
--- a/KEYS-Make-use-of-platform-keyring-for-module-signature.patch
+++ b/KEYS-Make-use-of-platform-keyring-for-module-signature.patch
@@ -13,42 +13,31 @@ As such, kernel modules signed with keys from the MokList variable
were not successfully verified.
Signed-off-by: Robert Holmes <robeholmes@gmail.com>
+Signed-off-by: Jeremy Cline <jcline@redhat.com>
---
kernel/module_signing.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git a/kernel/module_signing.c b/kernel/module_signing.c
-index 6b9a926fd86b..cf94220e9154 100644
+index 9d9fc678c91d..84ad75a53c83 100644
--- a/kernel/module_signing.c
+++ b/kernel/module_signing.c
-@@ -49,6 +49,7 @@ int mod_verify_sig(const void *mod, struct load_info *info)
- {
- struct module_signature ms;
- size_t sig_len, modlen = info->len;
-+ int ret;
-
- pr_devel("==>%s(,%zu)\n", __func__, modlen);
-
-@@ -82,8 +83,15 @@ int mod_verify_sig(const void *mod, struct load_info *info)
- return -EBADMSG;
- }
+@@ -38,8 +38,15 @@ int mod_verify_sig(const void *mod, struct load_info *info)
+ modlen -= sig_len + sizeof(ms);
+ info->len = modlen;
- return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
-- VERIFY_USE_SECONDARY_KEYRING,
-- VERIFYING_MODULE_SIGNATURE,
-- NULL, NULL);
+ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
-+ VERIFY_USE_SECONDARY_KEYRING,
-+ VERIFYING_MODULE_SIGNATURE,
-+ NULL, NULL);
+ VERIFY_USE_SECONDARY_KEYRING,
+ VERIFYING_MODULE_SIGNATURE,
+ NULL, NULL);
+ if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) {
+ ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len,
-+ VERIFY_USE_PLATFORM_KEYRING,
-+ VERIFYING_MODULE_SIGNATURE,
-+ NULL, NULL);
++ VERIFY_USE_PLATFORM_KEYRING,
++ VERIFYING_MODULE_SIGNATURE,
++ NULL, NULL);
+ }
+ return ret;
}
--
2.21.0
-
diff --git a/Kbuild-Add-an-option-to-enable-GCC-VTA.patch b/Kbuild-Add-an-option-to-enable-GCC-VTA.patch
deleted file mode 100644
index 6bbb0efdf..000000000
--- a/Kbuild-Add-an-option-to-enable-GCC-VTA.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From a446d2f94ce540689c7a46bf457d92409e9c4d7e Mon Sep 17 00:00:00 2001
-From: Josh Stone <jistone@redhat.com>
-Date: Fri, 21 Nov 2014 10:40:00 -0800
-Subject: [PATCH] Kbuild: Add an option to enable GCC VTA
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Due to recent codegen issues, gcc -fvar-tracking-assignments was
-unconditionally disabled in commit 2062afb4f804a ("Fix gcc-4.9.0
-miscompilation of load_balance() in scheduler"). However, this reduces
-the debuginfo coverage for variable locations, especially in inline
-functions. VTA is certainly not perfect either in those cases, but it
-is much better than without. With compiler versions that have fixed the
-codegen bugs, we would prefer to have the better details for SystemTap,
-and surely other debuginfo consumers like perf will benefit as well.
-
-This patch simply makes CONFIG_DEBUG_INFO_VTA an option. I considered
-Frank and Linus's discussion of a cc-option-like -fcompare-debug test,
-but I'm convinced that a narrow test of an arch-specific codegen issue
-is not really useful. GCC has their own regression tests for this, so
-I'd suggest GCC_COMPARE_DEBUG=-fvar-tracking-assignments-toggle is more
-useful for kernel developers to test confidence.
-
-In fact, I ran into a couple more issues when testing for this patch[1],
-although neither of those had any codegen impact.
- [1] https://bugzilla.redhat.com/show_bug.cgi?id=1140872
-
-With gcc-4.9.2-1.fc22, I can now build v3.18-rc5 with Fedora's i686 and
-x86_64 configs, and this is completely clean with GCC_COMPARE_DEBUG.
-
-Cc: Frank Ch. Eigler <fche@redhat.com>
-Cc: Jakub Jelinek <jakub@redhat.com>
-Cc: Josh Boyer <jwboyer@fedoraproject.org>
-Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Cc: Linus Torvalds <torvalds@linux-foundation.org>
-Cc: Andrew Morton <akpm@linux-foundation.org>
-Cc: Markus Trippelsdorf <markus@trippelsdorf.de>
-Cc: Michel Dänzer <michel@daenzer.net>
-Signed-off-by: Josh Stone <jistone@redhat.com>
-Signed-off-by: Jeremy Cline <jcline@redhat.com>
----
- Makefile | 4 ++++
- lib/Kconfig.debug | 18 +++++++++++++++++-
- 2 files changed, 21 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 9ef547fc7ffe..5777d902f8f3 100644
---- a/Makefile
-+++ b/Makefile
-@@ -735,7 +735,11 @@ KBUILD_CFLAGS += -fomit-frame-pointer
- KBUILD_CFLAGS += -ftrivial-auto-var-init=pattern
- endif
-
-+ifdef CONFIG_DEBUG_INFO_VTA
-+DEBUG_CFLAGS += $(call cc-option, -fvar-tracking-assignments)
-+else
- DEBUG_CFLAGS := $(call cc-option, -fno-var-tracking-assignments)
-+endif
-
- ifdef CONFIG_DEBUG_INFO
- ifdef CONFIG_DEBUG_INFO_SPLIT
-diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
-index 0d9e81779e37..424206212931 100644
---- a/lib/Kconfig.debug
-+++ b/lib/Kconfig.debug
-@@ -217,7 +217,23 @@ config DEBUG_INFO_DWARF4
- Generate dwarf4 debug info. This requires recent versions
- of gcc and gdb. It makes the debug information larger.
- But it significantly improves the success of resolving
-- variables in gdb on optimized code.
-+ variables in gdb on optimized code. The gcc docs also
-+ recommend enabling -fvar-tracking-assignments for maximum
-+ benefit. (see DEBUG_INFO_VTA)
-+
-+config DEBUG_INFO_VTA
-+ bool "Enable var-tracking-assignments for debuginfo"
-+ depends on DEBUG_INFO
-+ help
-+ Enable gcc -fvar-tracking-assignments for improved debug
-+ information on variable locations in optimized code. Per
-+ gcc, DEBUG_INFO_DWARF4 is recommended for best use of VTA.
-+
-+ VTA has been implicated in codegen bugs (gcc PR61801,
-+ PR61904), so this may deserve some caution. One can set
-+ GCC_COMPARE_DEBUG=-fvar-tracking-assignments-toggle in the
-+ environment to automatically compile everything both ways,
-+ generating an error if anything differs.
-
- config DEBUG_INFO_BTF
- bool "Generate BTF typeinfo"
---
-2.20.1
-
diff --git a/Module.kabi_aarch64 b/Module.kabi_aarch64
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Module.kabi_aarch64
diff --git a/Module.kabi_dup_aarch64 b/Module.kabi_dup_aarch64
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Module.kabi_dup_aarch64
diff --git a/Module.kabi_dup_ppc64le b/Module.kabi_dup_ppc64le
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Module.kabi_dup_ppc64le
diff --git a/Module.kabi_dup_s390x b/Module.kabi_dup_s390x
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Module.kabi_dup_s390x
diff --git a/Module.kabi_dup_x86_64 b/Module.kabi_dup_x86_64
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Module.kabi_dup_x86_64
diff --git a/Module.kabi_ppc64le b/Module.kabi_ppc64le
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Module.kabi_ppc64le
diff --git a/Module.kabi_s390x b/Module.kabi_s390x
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Module.kabi_s390x
diff --git a/Module.kabi_x86_64 b/Module.kabi_x86_64
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Module.kabi_x86_64
diff --git a/Revert-ARM-bcm283x-Switch-V3D-over-to-using-the-PM-driver-instead-of-firmware.patch b/Revert-ARM-bcm283x-Switch-V3D-over-to-using-the-PM-driver-instead-of-firmware.patch
deleted file mode 100644
index 8627b6087..000000000
--- a/Revert-ARM-bcm283x-Switch-V3D-over-to-using-the-PM-driver-instead-of-firmware.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 9d1a8ad3c56f4e84a0ec46246b4c08a6d139f638 Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Sun, 13 Oct 2019 14:33:23 +0100
-Subject: [PATCH] Revert "ARM: bcm283x: Switch V3D over to using the PM driver
- instead of firmware."
-
-Since release of the new BCM2835 PM driver there has been several reports
-of V3D probing issues. This is caused by timeouts during powering-up the
-GRAFX PM domain:
-
- bcm2835-power: Timeout waiting for grafx power OK
-
-I was able to reproduce this reliable on my Raspberry Pi 3B+ after setting
-force_turbo=1 in the firmware configuration. Since there are no issues
-using the firmware PM driver with the same setup, there must be an issue
-in the BCM2835 PM driver.
-
-Unfortunately there hasn't been much progress in identifying the root cause
-since June (mostly in the lack of documentation), so i decided to switch
-back until the issue in the BCM2835 PM driver is fixed.
-
-Link: https://github.com/raspberrypi/linux/issues/3046
-Fixes: e1dc2b2e1bef (" ARM: bcm283x: Switch V3D over to using the PM driver instead of firmware.")
-Cc: stable@vger.kernel.org
-Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
-Acked-by: Eric Anholt <eric@anholt.net>
----
- a/arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 ++++
- b/arch/arm/boot/dts/bcm283x.dtsi | 4 +---
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
-index 715d50c64529..d136867c317f 100644
---- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
-+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
-@@ -90,6 +90,10 @@
- status = "okay";
- };
-
-+&v3d {
-+ power-domains = <&power RPI_POWER_DOMAIN_V3D>;
-+};
-+
- &vec {
- power-domains = <&power RPI_POWER_DOMAIN_VEC>;
- status = "okay";
-diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
-index 4b21ddb26aa5..0c6a6611f285 100644
---- a/arch/arm/boot/dts/bcm283x.dtsi
-+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -3,7 +3,6 @@
- #include <dt-bindings/clock/bcm2835-aux.h>
- #include <dt-bindings/gpio/gpio.h>
- #include <dt-bindings/interrupt-controller/irq.h>
--#include <dt-bindings/soc/bcm2835-pm.h>
-
- /* firmware-provided startup stubs live here, where the secondary CPUs are
- * spinning.
-@@ -121,7 +120,7 @@
- #interrupt-cells = <2>;
- };
-
-- pm: watchdog@7e100000 {
-+ watchdog@7e100000 {
- compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
- #power-domain-cells = <1>;
- #reset-cells = <1>;
-@@ -641,7 +640,6 @@
- compatible = "brcm,bcm2835-v3d";
- reg = <0x7ec00000 0x1000>;
- interrupts = <1 10>;
-- power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>;
- };
-
- vc4: gpu {
---
-2.21.0
-
diff --git a/alsa-5.5.patch b/alsa-5.5.patch
new file mode 100644
index 000000000..e9eaa0bc6
--- /dev/null
+++ b/alsa-5.5.patch
@@ -0,0 +1,11957 @@
+From 0ac6b457d6e7f945aa84c26effe306b83bcf7ddb Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Sun, 25 Nov 2018 23:12:08 +0000
+Subject: [PATCH 001/130] ALSA: usb-audio: fix spelling mistake "Frequence" ->
+ "Frequency"
+
+There are spelling mistakes in equalizer name fields, fix them.
+
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 940f457392e684bf0005628f6a155040648c5894)
+Bugzilla: 1772498
+---
+ sound/usb/mixer_us16x08.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sound/usb/mixer_us16x08.c b/sound/usb/mixer_us16x08.c
+index f0e8e1539450..aea3b4ad7ded 100644
+--- a/sound/usb/mixer_us16x08.c
++++ b/sound/usb/mixer_us16x08.c
+@@ -1109,7 +1109,7 @@ static const struct snd_us16x08_control_params eq_controls[] = {
+ .control_id = SND_US16X08_ID_EQLOWFREQ,
+ .type = USB_MIXER_U8,
+ .num_channels = 16,
+- .name = "EQ Low Frequence",
++ .name = "EQ Low Frequency",
+ },
+ { /* EQ mid low gain */
+ .kcontrol_new = &snd_us16x08_eq_gain_ctl,
+@@ -1123,7 +1123,7 @@ static const struct snd_us16x08_control_params eq_controls[] = {
+ .control_id = SND_US16X08_ID_EQLOWMIDFREQ,
+ .type = USB_MIXER_U8,
+ .num_channels = 16,
+- .name = "EQ MidLow Frequence",
++ .name = "EQ MidLow Frequency",
+ },
+ { /* EQ mid low Q */
+ .kcontrol_new = &snd_us16x08_eq_mid_width_ctl,
+@@ -1144,7 +1144,7 @@ static const struct snd_us16x08_control_params eq_controls[] = {
+ .control_id = SND_US16X08_ID_EQHIGHMIDFREQ,
+ .type = USB_MIXER_U8,
+ .num_channels = 16,
+- .name = "EQ MidHigh Frequence",
++ .name = "EQ MidHigh Frequency",
+ },
+ { /* EQ mid high Q */
+ .kcontrol_new = &snd_us16x08_eq_mid_width_ctl,
+@@ -1165,7 +1165,7 @@ static const struct snd_us16x08_control_params eq_controls[] = {
+ .control_id = SND_US16X08_ID_EQHIGHFREQ,
+ .type = USB_MIXER_U8,
+ .num_channels = 16,
+- .name = "EQ High Frequence",
++ .name = "EQ High Frequency",
+ },
+ };
+
+--
+2.20.1
+
+
+From accf87200cc0d1411c40e577f7104c55caac01dc Mon Sep 17 00:00:00 2001
+From: Saurav Girepunje <saurav.girepunje@gmail.com>
+Date: Tue, 29 Oct 2019 23:22:00 +0530
+Subject: [PATCH 002/130] ALSA: usb-audio: sound: usb: usb true/false for bool
+ return type
+
+Use true/false for bool type return in uac_clock_source_is_valid().
+
+Signed-off-by: Saurav Girepunje <saurav.girepunje@gmail.com>
+Link: https://lore.kernel.org/r/20191029175200.GA7320@saurav
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 1d4961d9eb1aaa498dfb44779b7e4b95d79112d0)
+Bugzilla: 1772498
+---
+ sound/usb/clock.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/sound/usb/clock.c b/sound/usb/clock.c
+index 6b8c14f9b5d4..018b1ecb5404 100644
+--- a/sound/usb/clock.c
++++ b/sound/usb/clock.c
+@@ -165,21 +165,21 @@ static bool uac_clock_source_is_valid(struct snd_usb_audio *chip,
+ snd_usb_find_clock_source_v3(chip->ctrl_intf, source_id);
+
+ if (!cs_desc)
+- return 0;
++ return false;
+ bmControls = le32_to_cpu(cs_desc->bmControls);
+ } else { /* UAC_VERSION_1/2 */
+ struct uac_clock_source_descriptor *cs_desc =
+ snd_usb_find_clock_source(chip->ctrl_intf, source_id);
+
+ if (!cs_desc)
+- return 0;
++ return false;
+ bmControls = cs_desc->bmControls;
+ }
+
+ /* If a clock source can't tell us whether it's valid, we assume it is */
+ if (!uac_v2v3_control_is_readable(bmControls,
+ UAC2_CS_CONTROL_CLOCK_VALID))
+- return 1;
++ return true;
+
+ err = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), UAC2_CS_CUR,
+ USB_TYPE_CLASS | USB_RECIP_INTERFACE | USB_DIR_IN,
+@@ -191,10 +191,10 @@ static bool uac_clock_source_is_valid(struct snd_usb_audio *chip,
+ dev_warn(&dev->dev,
+ "%s(): cannot get clock validity for id %d\n",
+ __func__, source_id);
+- return 0;
++ return false;
+ }
+
+- return !!data;
++ return data ? true : false;
+ }
+
+ static int __uac_clock_find_source(struct snd_usb_audio *chip, int entity_id,
+--
+2.20.1
+
+
+From 50704a502a8b9b71ca96de1bd0da70394d9576b3 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Thu, 14 Nov 2019 17:56:13 +0100
+Subject: [PATCH 003/130] ALSA: usb-audio: Add skip_validation option
+
+The unit descriptor validation may lead to a probe error when the
+device provides a buggy descriptor or the validator detected
+incorrectly. For identifying such an error and band-aiding, give a
+new module option, skip_validation. With this option, the driver
+ignores the validation errors with the hexdump of the unit
+descriptor, so we can check it in a bit more details.
+
+Link: https://lore.kernel.org/r/20191114165613.7422-2-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f35ef592477c5347b8f780a5f0d4970671e22c61)
+Bugzilla: 1772498
+---
+ sound/usb/card.c | 3 +++
+ sound/usb/usbaudio.h | 1 +
+ sound/usb/validate.c | 23 ++++++++++++++++++++---
+ 3 files changed, 24 insertions(+), 3 deletions(-)
+
+diff --git a/sound/usb/card.c b/sound/usb/card.c
+index db91dc76cc91..9f743ebae615 100644
+--- a/sound/usb/card.c
++++ b/sound/usb/card.c
+@@ -74,6 +74,7 @@ static bool autoclock = true;
+ static char *quirk_alias[SNDRV_CARDS];
+
+ bool snd_usb_use_vmalloc = true;
++bool snd_usb_skip_validation;
+
+ module_param_array(index, int, NULL, 0444);
+ MODULE_PARM_DESC(index, "Index value for the USB audio adapter.");
+@@ -96,6 +97,8 @@ module_param_array(quirk_alias, charp, NULL, 0444);
+ MODULE_PARM_DESC(quirk_alias, "Quirk aliases, e.g. 0123abcd:5678beef.");
+ module_param_named(use_vmalloc, snd_usb_use_vmalloc, bool, 0444);
+ MODULE_PARM_DESC(use_vmalloc, "Use vmalloc for PCM intermediate buffers (default: yes).");
++module_param_named(skip_validation, snd_usb_skip_validation, bool, 0444);
++MODULE_PARM_DESC(skip_validation, "Skip unit descriptor validation (default: no).");
+
+ /*
+ * we keep the snd_usb_audio_t instances by ourselves for merging
+diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
+index feb30f9c1716..ff3cbf653de8 100644
+--- a/sound/usb/usbaudio.h
++++ b/sound/usb/usbaudio.h
+@@ -120,5 +120,6 @@ int snd_usb_lock_shutdown(struct snd_usb_audio *chip);
+ void snd_usb_unlock_shutdown(struct snd_usb_audio *chip);
+
+ extern bool snd_usb_use_vmalloc;
++extern bool snd_usb_skip_validation;
+
+ #endif /* __USBAUDIO_H */
+diff --git a/sound/usb/validate.c b/sound/usb/validate.c
+index 389e8657434a..36ae78c3da3d 100644
+--- a/sound/usb/validate.c
++++ b/sound/usb/validate.c
+@@ -322,11 +322,28 @@ static bool validate_desc(unsigned char *hdr, int protocol,
+
+ bool snd_usb_validate_audio_desc(void *p, int protocol)
+ {
+- return validate_desc(p, protocol, audio_validators);
++ unsigned char *c = p;
++ bool valid;
++
++ valid = validate_desc(p, protocol, audio_validators);
++ if (!valid && snd_usb_skip_validation) {
++ print_hex_dump(KERN_ERR, "USB-audio: buggy audio desc: ",
++ DUMP_PREFIX_NONE, 16, 1, c, c[0], true);
++ valid = true;
++ }
++ return valid;
+ }
+
+ bool snd_usb_validate_midi_desc(void *p)
+ {
+- return validate_desc(p, UAC_VERSION_1, midi_validators);
++ unsigned char *c = p;
++ bool valid;
++
++ valid = validate_desc(p, UAC_VERSION_1, midi_validators);
++ if (!valid && snd_usb_skip_validation) {
++ print_hex_dump(KERN_ERR, "USB-audio: buggy midi desc: ",
++ DUMP_PREFIX_NONE, 16, 1, c, c[0], true);
++ valid = true;
++ }
++ return valid;
+ }
+-
+--
+2.20.1
+
+
+From fb285eb397d32ae1edbdc4e7ad82a0e2157b2454 Mon Sep 17 00:00:00 2001
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Date: Fri, 18 Oct 2019 15:38:47 +0800
+Subject: [PATCH 004/130] PCI: Add a helper to check Power Resource
+ Requirements _PR3 existence
+
+A driver may want to know the existence of _PR3, to choose different
+runtime suspend behavior. A user will be add in next patch.
+
+This is mostly the same as nouveau_pr3_present().
+
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Acked-by: Bjorn Helgaas <bhelgaas@google.com>
+Link: https://lore.kernel.org/r/20191018073848.14590-1-kai.heng.feng@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 52525b7a3cf82adec5c6cf0ecbd23ff228badc94)
+Bugzilla: 1772498
+---
+ drivers/pci/pci.c | 18 ++++++++++++++++++
+ include/linux/pci.h | 2 ++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
+index a97e2571a527..fcfaadc774ee 100644
+--- a/drivers/pci/pci.c
++++ b/drivers/pci/pci.c
+@@ -5854,6 +5854,24 @@ int pci_set_vga_state(struct pci_dev *dev, bool decode,
+ return 0;
+ }
+
++#ifdef CONFIG_ACPI
++bool pci_pr3_present(struct pci_dev *pdev)
++{
++ struct acpi_device *adev;
++
++ if (acpi_disabled)
++ return false;
++
++ adev = ACPI_COMPANION(&pdev->dev);
++ if (!adev)
++ return false;
++
++ return adev->power.flags.power_resources &&
++ acpi_has_method(adev->handle, "_PR3");
++}
++EXPORT_SYMBOL_GPL(pci_pr3_present);
++#endif
++
+ /**
+ * pci_add_dma_alias - Add a DMA devfn alias for a device
+ * @dev: the PCI device for which alias is added
+diff --git a/include/linux/pci.h b/include/linux/pci.h
+index f9088c89a534..1d15c5d49cdd 100644
+--- a/include/linux/pci.h
++++ b/include/linux/pci.h
+@@ -2310,9 +2310,11 @@ struct irq_domain *pci_host_bridge_acpi_msi_domain(struct pci_bus *bus);
+
+ void
+ pci_msi_register_fwnode_provider(struct fwnode_handle *(*fn)(struct device *));
++bool pci_pr3_present(struct pci_dev *pdev);
+ #else
+ static inline struct irq_domain *
+ pci_host_bridge_acpi_msi_domain(struct pci_bus *bus) { return NULL; }
++static bool pci_pr3_present(struct pci_dev *pdev) { return false; }
+ #endif
+
+ #ifdef CONFIG_EEH
+--
+2.20.1
+
+
+From 7fbcfac9bf68e2ccccafb3736287e1b1e021c2f3 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 21 Oct 2019 16:25:20 +0200
+Subject: [PATCH 005/130] PCI: Fix missing inline for pci_pr3_present()
+
+The inline prefix was missing in the dummy function pci_pr3_present()
+definition. Fix it.
+
+Reported-by: kbuild test robot <lkp@intel.com>
+Fixes: 52525b7a3cf8 ("PCI: Add a helper to check Power Resource Requirements _PR3 existence")
+Link: https://lore.kernel.org/r/201910212111.qHm6OcWx%lkp@intel.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 46b4bff6572b0552b1ee062043621e4b252638d8)
+Bugzilla: 1772498
+---
+ include/linux/pci.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/linux/pci.h b/include/linux/pci.h
+index 1d15c5d49cdd..be529d311122 100644
+--- a/include/linux/pci.h
++++ b/include/linux/pci.h
+@@ -2314,7 +2314,7 @@ bool pci_pr3_present(struct pci_dev *pdev);
+ #else
+ static inline struct irq_domain *
+ pci_host_bridge_acpi_msi_domain(struct pci_bus *bus) { return NULL; }
+-static bool pci_pr3_present(struct pci_dev *pdev) { return false; }
++static inline bool pci_pr3_present(struct pci_dev *pdev) { return false; }
+ #endif
+
+ #ifdef CONFIG_EEH
+--
+2.20.1
+
+
+From 6e6ea1a80e8b33f3908fdfa4ce45c3fa684cda75 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Tue, 22 Oct 2019 19:43:12 +0200
+Subject: [PATCH 006/130] ALSA: hda: add Intel DSP configuration / probe code
+
+For distributions, we need one place where we can decide
+which driver will be activated for the auto-configation of the
+Intel's HDA hardware with DSP. Actually, we cover three drivers:
+
+* Legacy HDA
+* Intel SST
+* Intel Sound Open Firmware (SOF)
+
+All those drivers registers similar PCI IDs, so the first
+driver probed from the PCI stack can win. But... it is not
+guaranteed that the correct driver wins.
+
+This commit changes Intel's NHLT ACPI module to a common
+DSP probe module for the Intel's hardware. All above sound
+drivers calls this code. The user can force another behaviour
+using the module parameter 'dsp_driver' located in
+the 'snd-intel-dspcfg' module.
+
+This change allows to add specific dmi checks for the specific
+systems. The examples are taken from the pull request:
+
+ https://github.com/thesofproject/linux/pull/927
+
+Tested on Lenovo Carbon X1 7th gen.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022174313.29087-1-perex@perex.cz
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 82d9d54a6c0ee8b12211fa4e59fd940a2da4e063)
+Bugzilla: 1772498
+---
+ include/sound/intel-dsp-config.h | 34 +++++
+ sound/hda/Kconfig | 10 +-
+ sound/hda/Makefile | 5 +-
+ sound/hda/intel-dsp-config.c | 249 +++++++++++++++++++++++++++++++
+ sound/hda/intel-nhlt.c | 3 -
+ sound/pci/hda/Kconfig | 11 +-
+ sound/pci/hda/hda_intel.c | 49 ++----
+ sound/soc/intel/Kconfig | 2 +-
+ sound/soc/intel/skylake/skl.c | 19 +--
+ sound/soc/sof/intel/Kconfig | 2 +-
+ sound/soc/sof/sof-pci-dev.c | 6 +
+ 11 files changed, 322 insertions(+), 68 deletions(-)
+ create mode 100644 include/sound/intel-dsp-config.h
+ create mode 100644 sound/hda/intel-dsp-config.c
+
+diff --git a/include/sound/intel-dsp-config.h b/include/sound/intel-dsp-config.h
+new file mode 100644
+index 000000000000..c36622bee3f8
+--- /dev/null
++++ b/include/sound/intel-dsp-config.h
+@@ -0,0 +1,34 @@
++/* SPDX-License-Identifier: GPL-2.0-only */
++/*
++ * intel-dsp-config.h - Intel DSP config
++ *
++ * Copyright (c) 2019 Jaroslav Kysela <perex@perex.cz>
++ */
++
++#ifndef __INTEL_DSP_CONFIG_H__
++#define __INTEL_DSP_CONFIG_H__
++
++struct pci_dev;
++
++enum {
++ SND_INTEL_DSP_DRIVER_ANY = 0,
++ SND_INTEL_DSP_DRIVER_LEGACY,
++ SND_INTEL_DSP_DRIVER_SST,
++ SND_INTEL_DSP_DRIVER_SOF,
++ SND_INTEL_DSP_DRIVER_LAST = SND_INTEL_DSP_DRIVER_SOF
++};
++
++#if IS_ENABLED(CONFIG_SND_INTEL_DSP_CONFIG)
++
++int snd_intel_dsp_driver_probe(struct pci_dev *pci);
++
++#else
++
++static inline int snd_intel_dsp_driver_probe(struct pci_dev *pci)
++{
++ return SND_INTEL_DSP_DRIVER_ANY;
++}
++
++#endif
++
++#endif
+diff --git a/sound/hda/Kconfig b/sound/hda/Kconfig
+index 3d33fc1757ba..b0c88fe040ee 100644
+--- a/sound/hda/Kconfig
++++ b/sound/hda/Kconfig
+@@ -34,6 +34,12 @@ config SND_HDA_PREALLOC_SIZE
+ via a proc file (/proc/asound/card*/pcm*/sub*/prealloc), too.
+
+ config SND_INTEL_NHLT
+- tristate
++ bool
+ # this config should be selected only for Intel ACPI platforms.
+- # A fallback is provided so that the code compiles in all cases.
+\ No newline at end of file
++ # A fallback is provided so that the code compiles in all cases.
++
++config SND_INTEL_DSP_CONFIG
++ tristate
++ select SND_INTEL_NHLT if ACPI
++ # this config should be selected only for Intel DSP platforms.
++ # A fallback is provided so that the code compiles in all cases.
+diff --git a/sound/hda/Makefile b/sound/hda/Makefile
+index 8560f6ef1b19..601e617918b8 100644
+--- a/sound/hda/Makefile
++++ b/sound/hda/Makefile
+@@ -14,5 +14,6 @@ obj-$(CONFIG_SND_HDA_CORE) += snd-hda-core.o
+ #extended hda
+ obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/
+
+-snd-intel-nhlt-objs := intel-nhlt.o
+-obj-$(CONFIG_SND_INTEL_NHLT) += snd-intel-nhlt.o
++snd-intel-dspcfg-objs := intel-dsp-config.o
++snd-intel-dspcfg-$(CONFIG_SND_INTEL_NHLT) += intel-nhlt.o
++obj-$(CONFIG_SND_INTEL_DSP_CONFIG) += snd-intel-dspcfg.o
+diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
+new file mode 100644
+index 000000000000..d9f6d9e872b4
+--- /dev/null
++++ b/sound/hda/intel-dsp-config.c
+@@ -0,0 +1,249 @@
++// SPDX-License-Identifier: GPL-2.0
++// Copyright (c) 2019 Jaroslav Kysela <perex@perex.cz>
++
++#include <linux/bits.h>
++#include <linux/dmi.h>
++#include <linux/module.h>
++#include <linux/pci.h>
++#include <sound/core.h>
++#include <sound/intel-dsp-config.h>
++#include <sound/intel-nhlt.h>
++
++static int dsp_driver;
++
++module_param(dsp_driver, int, 0444);
++MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF)");
++
++#define FLAG_SST BIT(0)
++#define FLAG_SOF BIT(1)
++#define FLAG_SOF_ONLY_IF_DMIC BIT(16)
++
++struct config_entry {
++ u32 flags;
++ u16 device;
++ const struct dmi_system_id *dmi_table;
++};
++
++/*
++ * configuration table
++ * - the order of similar PCI ID entries is important!
++ * - the first successful match will win
++ */
++static const struct config_entry config_table[] = {
++/* Cometlake-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_LP)
++ {
++ /* prefer SST */
++ .flags = FLAG_SST,
++ .device = 0x02c8,
++ },
++#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x02c8,
++ },
++#endif
++/* Cometlake-H */
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_H)
++ {
++ .flags = FLAG_SST,
++ .device = 0x06c8,
++ },
++#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x06c8,
++ },
++#endif
++/* Merrifield */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_MERRIFIELD)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x119a,
++ },
++#endif
++/* Broxton-T */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x1a98,
++ },
++#endif
++/* Geminilake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_GEMINILAKE)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x3198,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
++ },
++#endif
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_GLK)
++ {
++ .flags = FLAG_SST,
++ .device = 0x3198,
++ },
++#endif
++/* Icelake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x34c8,
++ },
++#endif
++/* Elkhart Lake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_ELKHARTLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x4b55,
++ },
++#endif
++/* Appololake (Broxton-P) */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x5a98,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Up Squared",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "AAEON"),
++ DMI_MATCH(DMI_BOARD_NAME, "UP-APL01"),
++ }
++ },
++ {}
++ }
++ },
++#endif
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
++ {
++ .flags = FLAG_SST,
++ .device = 0x5a98,
++ },
++#endif
++/* Cannonlake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_CANNONLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x9dc8,
++ },
++#endif
++/* Sunrise Point-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_SKYLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x9d70,
++ },
++#endif
++/* Kabylake-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_KABYLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x9d71,
++ },
++#endif
++/* Tigerlake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0xa0c8,
++ },
++#endif
++/* Coffelake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0xa348,
++ },
++#endif
++};
++
++static const struct config_entry *snd_intel_dsp_find_config
++ (struct pci_dev *pci, const struct config_entry *table, u32 len)
++{
++ u16 device;
++
++ device = pci->device;
++ for (; len > 0; len--, table++) {
++ if (table->device != device)
++ continue;
++ if (table->dmi_table && !dmi_check_system(table->dmi_table))
++ continue;
++ return table;
++ }
++ return NULL;
++}
++
++static int snd_intel_dsp_check_dmic(struct pci_dev *pci)
++{
++ struct nhlt_acpi_table *nhlt;
++ int ret = 0;
++
++ nhlt = intel_nhlt_init(&pci->dev);
++ if (nhlt) {
++ if (intel_nhlt_get_dmic_geo(&pci->dev, nhlt))
++ ret = 1;
++ intel_nhlt_free(nhlt);
++ }
++ return ret;
++}
++
++int snd_intel_dsp_driver_probe(struct pci_dev *pci)
++{
++ const struct config_entry *cfg;
++
++ if (dsp_driver > 0 && dsp_driver <= SND_INTEL_DSP_DRIVER_LAST)
++ return dsp_driver;
++
++ /* Intel vendor only */
++ if (snd_BUG_ON(pci->vendor != 0x8086))
++ return SND_INTEL_DSP_DRIVER_ANY;
++
++ /*
++ * detect DSP by checking class/subclass/prog-id information
++ * class=04 subclass 03 prog-if 00: no DSP, use legacy driver
++ * class=04 subclass 01 prog-if 00: DSP is present
++ * (and may be required e.g. for DMIC or SSP support)
++ * class=04 subclass 03 prog-if 80: use DSP or legacy mode
++ */
++ if (pci->class == 0x040300)
++ return SND_INTEL_DSP_DRIVER_LEGACY;
++ if (pci->class != 0x040100 && pci->class != 0x040380) {
++ dev_err(&pci->dev, "Unknown PCI class/subclass/prog-if information (0x%06x) found, selecting HDA legacy driver\n", pci->class);
++ return SND_INTEL_DSP_DRIVER_LEGACY;
++ }
++
++ dev_info(&pci->dev, "DSP detected with PCI class/subclass/prog-if info 0x%06x\n", pci->class);
++
++ /* find the configuration for the specific device */
++ cfg = snd_intel_dsp_find_config(pci, config_table, ARRAY_SIZE(config_table));
++ if (!cfg)
++ return SND_INTEL_DSP_DRIVER_ANY;
++
++ if (cfg->flags & FLAG_SOF) {
++ if (cfg->flags & FLAG_SOF_ONLY_IF_DMIC) {
++ if (snd_intel_dsp_check_dmic(pci)) {
++ dev_info(&pci->dev, "Digital mics found on Skylake+ platform, using SOF driver\n");
++ return SND_INTEL_DSP_DRIVER_SOF;
++ }
++ } else {
++ return SND_INTEL_DSP_DRIVER_SOF;
++ }
++ }
++
++ if (cfg->flags & FLAG_SST)
++ return SND_INTEL_DSP_DRIVER_SST;
++
++ return SND_INTEL_DSP_DRIVER_LEGACY;
++}
++EXPORT_SYMBOL_GPL(snd_intel_dsp_driver_probe);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("Intel DSP config driver");
+diff --git a/sound/hda/intel-nhlt.c b/sound/hda/intel-nhlt.c
+index daede96f28ee..097ff6c10099 100644
+--- a/sound/hda/intel-nhlt.c
++++ b/sound/hda/intel-nhlt.c
+@@ -102,6 +102,3 @@ int intel_nhlt_get_dmic_geo(struct device *dev, struct nhlt_acpi_table *nhlt)
+ return dmic_geo;
+ }
+ EXPORT_SYMBOL_GPL(intel_nhlt_get_dmic_geo);
+-
+-MODULE_LICENSE("GPL v2");
+-MODULE_DESCRIPTION("Intel NHLT driver");
+diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
+index dae47a45b2b8..bd48335d09d7 100644
+--- a/sound/pci/hda/Kconfig
++++ b/sound/pci/hda/Kconfig
+@@ -12,7 +12,7 @@ config SND_HDA_INTEL
+ tristate "HD Audio PCI"
+ depends on SND_PCI
+ select SND_HDA
+- select SND_INTEL_NHLT if ACPI
++ select SND_INTEL_DSP_CONFIG
+ help
+ Say Y here to include support for Intel "High Definition
+ Audio" (Azalia) and its compatible devices.
+@@ -23,15 +23,6 @@ config SND_HDA_INTEL
+ To compile this driver as a module, choose M here: the module
+ will be called snd-hda-intel.
+
+-config SND_HDA_INTEL_DETECT_DMIC
+- bool "DMIC detection and probe abort"
+- depends on SND_HDA_INTEL
+- help
+- Say Y to detect digital microphones on SKL+ devices. DMICs
+- cannot be handled by the HDaudio legacy driver and are
+- currently only supported by the SOF driver.
+- If unsure say N.
+-
+ config SND_HDA_TEGRA
+ tristate "NVIDIA Tegra HD Audio"
+ depends on ARCH_TEGRA
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index c52419376c74..2e5742d095ff 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -46,7 +46,7 @@
+ #include <sound/initval.h>
+ #include <sound/hdaudio.h>
+ #include <sound/hda_i915.h>
+-#include <sound/intel-nhlt.h>
++#include <sound/intel-dsp-config.h>
+ #include <linux/vgaarb.h>
+ #include <linux/vga_switcheroo.h>
+ #include <linux/firmware.h>
+@@ -124,7 +124,7 @@ static char *patch[SNDRV_CARDS];
+ static bool beep_mode[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] =
+ CONFIG_SND_HDA_INPUT_BEEP_MODE};
+ #endif
+-static bool dmic_detect = IS_ENABLED(CONFIG_SND_HDA_INTEL_DETECT_DMIC);
++static bool dsp_driver = 1;
+
+ module_param_array(index, int, NULL, 0444);
+ MODULE_PARM_DESC(index, "Index value for Intel HD audio interface.");
+@@ -159,8 +159,9 @@ module_param_array(beep_mode, bool, NULL, 0444);
+ MODULE_PARM_DESC(beep_mode, "Select HDA Beep registration mode "
+ "(0=off, 1=on) (default=1).");
+ #endif
+-module_param(dmic_detect, bool, 0444);
+-MODULE_PARM_DESC(dmic_detect, "DMIC detect on SKL+ platforms");
++module_param(dsp_driver, bool, 0444);
++MODULE_PARM_DESC(dsp_driver, "Allow DSP driver selection (bypass this driver) "
++ "(0=off, 1=on) (default=1)");
+
+ #ifdef CONFIG_PM
+ static int param_set_xint(const char *val, const struct kernel_param *kp);
+@@ -2020,25 +2021,6 @@ static const struct hda_controller_ops pci_hda_ops = {
+ .position_check = azx_position_check,
+ };
+
+-static int azx_check_dmic(struct pci_dev *pci, struct azx *chip)
+-{
+- struct nhlt_acpi_table *nhlt;
+- int ret = 0;
+-
+- if (chip->driver_type == AZX_DRIVER_SKL &&
+- pci->class != 0x040300) {
+- nhlt = intel_nhlt_init(&pci->dev);
+- if (nhlt) {
+- if (intel_nhlt_get_dmic_geo(&pci->dev, nhlt)) {
+- ret = -ENODEV;
+- dev_info(&pci->dev, "Digital mics found on Skylake+ platform, aborting probe\n");
+- }
+- intel_nhlt_free(nhlt);
+- }
+- }
+- return ret;
+-}
+-
+ static int azx_probe(struct pci_dev *pci,
+ const struct pci_device_id *pci_id)
+ {
+@@ -2056,6 +2038,16 @@ static int azx_probe(struct pci_dev *pci,
+ return -ENOENT;
+ }
+
++ /*
++ * stop probe if another Intel's DSP driver should be activated
++ */
++ if (dsp_driver) {
++ err = snd_intel_dsp_driver_probe(pci);
++ if (err != SND_INTEL_DSP_DRIVER_ANY &&
++ err != SND_INTEL_DSP_DRIVER_LEGACY)
++ return -ENODEV;
++ }
++
+ err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
+ 0, &card);
+ if (err < 0) {
+@@ -2069,17 +2061,6 @@ static int azx_probe(struct pci_dev *pci,
+ card->private_data = chip;
+ hda = container_of(chip, struct hda_intel, chip);
+
+- /*
+- * stop probe if digital microphones detected on Skylake+ platform
+- * with the DSP enabled. This is an opt-in behavior defined at build
+- * time or at run-time with a module parameter
+- */
+- if (dmic_detect) {
+- err = azx_check_dmic(pci, chip);
+- if (err < 0)
+- goto out_free;
+- }
+-
+ pci_set_drvdata(pci, card);
+
+ err = register_vga_switcheroo(chip);
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 01c99750212a..9ad89d56092b 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -215,7 +215,7 @@ config SND_SOC_INTEL_SKYLAKE_COMMON
+ select SND_SOC_INTEL_SST
+ select SND_SOC_HDAC_HDA if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
+ select SND_SOC_ACPI_INTEL_MATCH
+- select SND_INTEL_NHLT if ACPI
++ select SND_INTEL_DSP_CONFIG
+ help
+ If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
+ GeminiLake or CannonLake platform with the DSP enabled in the BIOS
+diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
+index 141dbbf975ac..58ba3e9469ba 100644
+--- a/sound/soc/intel/skylake/skl.c
++++ b/sound/soc/intel/skylake/skl.c
+@@ -27,6 +27,7 @@
+ #include <sound/hda_i915.h>
+ #include <sound/hda_codec.h>
+ #include <sound/intel-nhlt.h>
++#include <sound/intel-dsp-config.h>
+ #include "skl.h"
+ #include "skl-sst-dsp.h"
+ #include "skl-sst-ipc.h"
+@@ -987,22 +988,10 @@ static int skl_probe(struct pci_dev *pci,
+
+ switch (skl_pci_binding) {
+ case SND_SKL_PCI_BIND_AUTO:
+- /*
+- * detect DSP by checking class/subclass/prog-id information
+- * class=04 subclass 03 prog-if 00: no DSP, use legacy driver
+- * class=04 subclass 01 prog-if 00: DSP is present
+- * (and may be required e.g. for DMIC or SSP support)
+- * class=04 subclass 03 prog-if 80: use DSP or legacy mode
+- */
+- if (pci->class == 0x040300) {
+- dev_info(&pci->dev, "The DSP is not enabled on this platform, aborting probe\n");
++ err = snd_intel_dsp_driver_probe(pci);
++ if (err != SND_INTEL_DSP_DRIVER_ANY &&
++ err != SND_INTEL_DSP_DRIVER_SST)
+ return -ENODEV;
+- }
+- if (pci->class != 0x040100 && pci->class != 0x040380) {
+- dev_err(&pci->dev, "Unknown PCI class/subclass/prog-if information (0x%06x) found, aborting probe\n", pci->class);
+- return -ENODEV;
+- }
+- dev_info(&pci->dev, "DSP detected with PCI class/subclass/prog-if info 0x%06x\n", pci->class);
+ break;
+ case SND_SKL_PCI_BIND_LEGACY:
+ dev_info(&pci->dev, "Module parameter forced binding with HDaudio legacy, aborting probe\n");
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index d62f51d33be1..1be28581c328 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -296,7 +296,7 @@ config SND_SOC_SOF_HDA
+ tristate
+ select SND_HDA_EXT_CORE if SND_SOC_SOF_HDA_LINK
+ select SND_SOC_HDAC_HDA if SND_SOC_SOF_HDA_AUDIO_CODEC
+- select SND_INTEL_NHLT if ACPI
++ select SND_INTEL_DSP_CONFIG
+ help
+ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index d66412a77873..3a9e0e2a150d 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -12,6 +12,7 @@
+ #include <linux/module.h>
+ #include <linux/pci.h>
+ #include <linux/pm_runtime.h>
++#include <sound/intel-dsp-config.h>
+ #include <sound/soc-acpi.h>
+ #include <sound/soc-acpi-intel-match.h>
+ #include <sound/sof.h>
+@@ -277,6 +278,11 @@ static int sof_pci_probe(struct pci_dev *pci,
+ const struct snd_sof_dsp_ops *ops;
+ int ret;
+
++ ret = snd_intel_dsp_driver_probe(pci);
++ if (ret != SND_INTEL_DSP_DRIVER_ANY &&
++ ret != SND_INTEL_DSP_DRIVER_SOF)
++ return -ENODEV;
++
+ dev_dbg(&pci->dev, "PCI DSP detected");
+
+ /* get ops for platform */
+--
+2.20.1
+
+
+From 8f609dd45d5598536e5a1a7a84fe19ff7c13559a Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 22 Oct 2019 19:43:13 +0200
+Subject: [PATCH 007/130] ALSA: hda: fix intel DSP config
+
+Reshuffle list of devices by historical order and add correct
+information as needed.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Link: https://lore.kernel.org/r/20191022174313.29087-2-perex@perex.cz
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit cc8f81c7e625168a60843b2b39e3a327cf5170fe)
+Bugzilla: 1772498
+---
+ sound/hda/intel-dsp-config.c | 220 ++++++++++++++++++++++++++---------
+ 1 file changed, 164 insertions(+), 56 deletions(-)
+
+diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
+index d9f6d9e872b4..0b2a7201a46a 100644
+--- a/sound/hda/intel-dsp-config.c
++++ b/sound/hda/intel-dsp-config.c
+@@ -30,45 +30,98 @@ struct config_entry {
+ * - the first successful match will win
+ */
+ static const struct config_entry config_table[] = {
+-/* Cometlake-LP */
+-#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_LP)
++/* Merrifield */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_MERRIFIELD)
+ {
+- /* prefer SST */
+- .flags = FLAG_SST,
+- .device = 0x02c8,
++ .flags = FLAG_SOF,
++ .device = 0x119a,
+ },
+-#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP)
++#endif
++/* Broxton-T */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
+ {
+ .flags = FLAG_SOF,
+- .device = 0x02c8,
++ .device = 0x1a98,
+ },
+ #endif
+-/* Cometlake-H */
+-#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_H)
++/*
++ * Apollolake (Broxton-P)
++ * the legacy HDaudio driver is used except on Up Squared (SOF) and
++ * Chromebooks (SST)
++ */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
+ {
+- .flags = FLAG_SST,
+- .device = 0x06c8,
++ .flags = FLAG_SOF,
++ .device = 0x5a98,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Up Squared",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "AAEON"),
++ DMI_MATCH(DMI_BOARD_NAME, "UP-APL01"),
++ }
++ },
++ {}
++ }
+ },
+-#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)
++#endif
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
+ {
+- .flags = FLAG_SOF,
+- .device = 0x06c8,
++ .flags = FLAG_SST,
++ .device = 0x5a98,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+ #endif
+-/* Merrifield */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_MERRIFIELD)
++/*
++ * Skylake and Kabylake use legacy HDaudio driver except for Google
++ * Chromebooks (SST)
++ */
++
++/* Sunrise Point-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKL)
+ {
+- .flags = FLAG_SOF,
+- .device = 0x119a,
++ .flags = FLAG_SST,
++ .device = 0x9d70,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+ #endif
+-/* Broxton-T */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
++/* Kabylake-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL)
+ {
+- .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x1a98,
++ .flags = FLAG_SST,
++ .device = 0x9d71,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+ #endif
++
++/*
++ * Geminilake uses legacy HDaudio driver except for Google
++ * Chromebooks
++ */
+ /* Geminilake */
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_GEMINILAKE)
+ {
+@@ -85,84 +138,139 @@ static const struct config_entry config_table[] = {
+ }
+ },
+ #endif
+-#if IS_ENABLED(CONFIG_SND_SOC_INTEL_GLK)
++
++/*
++ * CoffeeLake, CannonLake, CometLake, IceLake, TigerLake use legacy
++ * HDaudio driver except for Google Chromebooks and when DMICs are
++ * present. Two cases are required since Coreboot does not expose NHLT
++ * tables.
++ *
++ * When the Chromebook quirk is not present, it's based on information
++ * that no such device exists. When the quirk is present, it could be
++ * either based on product information or a placeholder.
++ */
++
++/* Cannonlake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_CANNONLAKE)
+ {
+- .flags = FLAG_SST,
+- .device = 0x3198,
++ .flags = FLAG_SOF,
++ .device = 0x9dc8,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+-#endif
+-/* Icelake */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x34c8,
++ .device = 0x9dc8,
+ },
+ #endif
+-/* Elkhart Lake */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_ELKHARTLAKE)
++
++/* Coffelake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE)
++ {
++ .flags = FLAG_SOF,
++ .device = 0xa348,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
++ },
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x4b55,
++ .device = 0xa348,
+ },
+ #endif
+-/* Appololake (Broxton-P) */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
++
++/* Cometlake-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP)
+ {
+ .flags = FLAG_SOF,
+- .device = 0x5a98,
++ .device = 0x02c8,
+ .dmi_table = (const struct dmi_system_id []) {
+ {
+- .ident = "Up Squared",
++ .ident = "Google Chromebooks",
+ .matches = {
+- DMI_MATCH(DMI_SYS_VENDOR, "AAEON"),
+- DMI_MATCH(DMI_BOARD_NAME, "UP-APL01"),
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
+ }
+ },
+ {}
+ }
+ },
+-#endif
+-#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
+ {
+- .flags = FLAG_SST,
+- .device = 0x5a98,
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x02c8,
+ },
+ #endif
+-/* Cannonlake */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_CANNONLAKE)
++/* Cometlake-H */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x9dc8,
++ .device = 0x06c8,
+ },
+ #endif
+-/* Sunrise Point-LP */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_SKYLAKE)
++
++/* Icelake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
+ {
+- .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x9d70,
++ .flags = FLAG_SOF,
++ .device = 0x34c8,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+-#endif
+-/* Kabylake-LP */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_KABYLAKE)
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x9d71,
++ .device = 0x34c8,
+ },
+ #endif
++
+ /* Tigerlake */
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
++ {
++ .flags = FLAG_SOF,
++ .device = 0xa0c8,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
++ },
++
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+ .device = 0xa0c8,
+ },
+ #endif
+-/* Coffelake */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE)
++
++/* Elkhart Lake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_ELKHARTLAKE)
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0xa348,
++ .device = 0x4b55,
+ },
+ #endif
++
+ };
+
+ static const struct config_entry *snd_intel_dsp_find_config
+--
+2.20.1
+
+
+From 56731f15b8cce801875906ab32fefecd7858ab1a Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Mon, 28 Oct 2019 17:46:24 +0100
+Subject: [PATCH 008/130] ASoC: intel - fix the card names
+
+Those strings are exposed to the user space as the
+card name thus used in the GUIs. The common
+standard is to avoid '_' here. The worst case
+is 'sof-skl_hda_card' string.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191028164624.14334-1-perex@perex.cz
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit d745cc1ab65945b2d17ec9c5652f38299c054649)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 2 +-
+ sound/soc/intel/boards/skl_hda_dsp_generic.c | 2 +-
+ sound/soc/intel/boards/sof_rt5682.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+index 74dda8784f1a..d14ca327c684 100644
+--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
++++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+@@ -623,7 +623,7 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
+ * kabylake audio machine driver for MAX98927 + RT5514 + RT5663
+ */
+ static struct snd_soc_card kabylake_audio_card = {
+- .name = "kbl_r5514_5663_max",
++ .name = "kbl-r5514-5663-max",
+ .owner = THIS_MODULE,
+ .dai_link = kabylake_dais,
+ .num_links = ARRAY_SIZE(kabylake_dais),
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+index 1778acdc367c..e8d676c192f6 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_generic.c
++++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+@@ -90,7 +90,7 @@ skl_hda_add_dai_link(struct snd_soc_card *card, struct snd_soc_dai_link *link)
+ }
+
+ static struct snd_soc_card hda_soc_card = {
+- .name = "skl_hda_card",
++ .name = "hda-dsp",
+ .owner = THIS_MODULE,
+ .dai_link = skl_hda_be_dai_links,
+ .dapm_widgets = skl_hda_widgets,
+diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
+index 4f6e58c3954a..320a9b9273db 100644
+--- a/sound/soc/intel/boards/sof_rt5682.c
++++ b/sound/soc/intel/boards/sof_rt5682.c
+@@ -370,7 +370,7 @@ static int dmic_init(struct snd_soc_pcm_runtime *rtd)
+
+ /* sof audio machine driver for rt5682 codec */
+ static struct snd_soc_card sof_audio_card_rt5682 = {
+- .name = "sof_rt5682",
++ .name = "rt5682", /* the sof- prefix is added by the core */
+ .owner = THIS_MODULE,
+ .controls = sof_controls,
+ .num_controls = ARRAY_SIZE(sof_controls),
+--
+2.20.1
+
+
+From 63d4f97804a1ab4ad9e84843bdee307c2ab9e9b5 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 28 Oct 2019 14:06:34 +0100
+Subject: [PATCH 009/130] ALSA: hda: Allow non-Intel device probe gracefully
+
+The recent addition of snd_intel_dsp_driver_probe() check caused a
+spurious kernel warning when the driver is loaded for a non-Intel
+hardware due to snd_BUG_ON(). Moreover, for such a hardware, we
+should always return SND_INTEL_DSP_DRIVER_ANY, not check the
+dsp_driver option at all.
+
+This patch fixes these issues for non-Intel devices.
+
+Fixes: 82d9d54a6c0e ("ALSA: hda: add Intel DSP configuration / probe code")
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Link: https://lore.kernel.org/r/20191028130634.3501-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 91636a82044a2821201b54faac4d1d2425260842)
+Bugzilla: 1772498
+---
+ sound/hda/intel-dsp-config.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
+index 0b2a7201a46a..be1df80ed013 100644
+--- a/sound/hda/intel-dsp-config.c
++++ b/sound/hda/intel-dsp-config.c
+@@ -307,13 +307,13 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
+ {
+ const struct config_entry *cfg;
+
+- if (dsp_driver > 0 && dsp_driver <= SND_INTEL_DSP_DRIVER_LAST)
+- return dsp_driver;
+-
+ /* Intel vendor only */
+- if (snd_BUG_ON(pci->vendor != 0x8086))
++ if (pci->vendor != 0x8086)
+ return SND_INTEL_DSP_DRIVER_ANY;
+
++ if (dsp_driver > 0 && dsp_driver <= SND_INTEL_DSP_DRIVER_LAST)
++ return dsp_driver;
++
+ /*
+ * detect DSP by checking class/subclass/prog-id information
+ * class=04 subclass 03 prog-if 00: no DSP, use legacy driver
+--
+2.20.1
+
+
+From fddf95e9cd5e5768e35aa6f60a9686f21e690dc5 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 5 Nov 2019 09:18:06 +0100
+Subject: [PATCH 010/130] ALSA: hda: Disable regmap internal locking
+
+Since we apply the own mutex (bus->cmd_mutex) in HDA core side, the
+internal locking in regmap is superfluous. This patch adds the flag
+to indicate that.
+
+Also, an infamous side-effect by this change is that it disables the
+regmap debugfs, too, and this is seen rather good; the regmap debugfs
+isn't quite useful for HD-audio as it provides the very sparse
+registers and its debugfs access tends to lead to the way too high
+resource usages or sometimes hang up. So it'd be rather safe to
+disable it altogether.
+
+Link: https://lore.kernel.org/r/2029139028.10333037.1572874551626.JavaMail.zimbra@redhat.com
+Link: https://lore.kernel.org/r/20191105081806.4896-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 42ec336f1f9d54049811b749f729e9e01c152ade)
+Bugzilla: 1772498
+---
+ sound/hda/hdac_regmap.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/hda/hdac_regmap.c b/sound/hda/hdac_regmap.c
+index 286361ecd640..906b1e20bae0 100644
+--- a/sound/hda/hdac_regmap.c
++++ b/sound/hda/hdac_regmap.c
+@@ -363,6 +363,7 @@ static const struct regmap_config hda_regmap_cfg = {
+ .reg_write = hda_reg_write,
+ .use_single_read = true,
+ .use_single_write = true,
++ .disable_locking = true,
+ };
+
+ /**
+--
+2.20.1
+
+
+From b9f21867949f2ed530dbefed02d139c5a92e0621 Mon Sep 17 00:00:00 2001
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Date: Fri, 18 Oct 2019 15:38:48 +0800
+Subject: [PATCH 011/130] ALSA: hda: Allow HDA to be runtime suspended when
+ dGPU is not bound to a driver
+
+Nvidia proprietary driver doesn't support runtime power management, so
+when a user only wants to use the integrated GPU, it's a common practice
+to let dGPU not to bind any driver, and let its upstream port to be
+runtime suspended. At the end of runtime suspension the port uses
+platform power management to disable power through _OFF method of power
+resource, which is listed by _PR3.
+
+After commit b516ea586d71 ("PCI: Enable NVIDIA HDA controllers"), when
+the dGPU comes with an HDA function, the HDA won't be suspended if the
+dGPU is unbound, so the power resource can't be turned off by its
+upstream port driver.
+
+Commit 37a3a98ef601 ("ALSA: hda - Enable runtime PM only for
+discrete GPU") only allows HDA to be runtime suspended once GPU is
+bound, to keep APU's HDA working.
+
+However, HDA on dGPU isn't that useful if dGPU is not bound to any
+driver. So let's relax the runtime suspend requirement for dGPU's HDA
+function, to disable the power source to save lots of power.
+
+BugLink: https://bugs.launchpad.net/bugs/1840835
+Fixes: b516ea586d71 ("PCI: Enable NVIDIA HDA controllers")
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Link: https://lore.kernel.org/r/20191018073848.14590-2-kai.heng.feng@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit bacd861452d2be86a4df341b12e32db7dac8021e)
+Bugzilla: 1772498
+---
+ sound/pci/hda/hda_intel.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index 2e5742d095ff..e0e9d4ee180d 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -1281,11 +1281,17 @@ static void init_vga_switcheroo(struct azx *chip)
+ {
+ struct hda_intel *hda = container_of(chip, struct hda_intel, chip);
+ struct pci_dev *p = get_bound_vga(chip->pci);
++ struct pci_dev *parent;
+ if (p) {
+ dev_info(chip->card->dev,
+ "Handle vga_switcheroo audio client\n");
+ hda->use_vga_switcheroo = 1;
+- chip->bus.keep_power = 1; /* cleared in either gpu_bound op or codec probe */
++
++ /* cleared in either gpu_bound op or codec probe, or when its
++ * upstream port has _PR3 (i.e. dGPU).
++ */
++ parent = pci_upstream_bridge(p);
++ chip->bus.keep_power = parent ? !pci_pr3_present(parent) : 1;
+ chip->driver_caps |= AZX_DCAPS_PM_RUNTIME;
+ pci_dev_put(p);
+ }
+--
+2.20.1
+
+
+From e3eb037a46c5b6771e9336bb493063dbffb90e04 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:09 +0200
+Subject: [PATCH 013/130] ALSA: hda/hdmi - implement mst_no_extra_pcms flag
+
+To support the DP-MST multiple streams via single connector feature,
+the HDMI driver was extended with the concept of backup PCMs. See
+commit 9152085defb6 ("ALSA: hda - add DP MST audio support").
+
+This implementation works fine with snd_hda_intel.c as PCM topology
+is fully managed within the single driver.
+
+When the HDA codec driver is used from ASoC components, the concept
+of backup PCMs no longer fits. For ASoC topologies, the physical
+HDMI converters are presented as backend DAIs and these should match
+with hardware capabilities. The ASoC topology may define arbitrary
+PCMs (i.e. frontend DAIs) and have processing elements before eventual
+routing to the HDMI BE DAIs. With backup PCMs, the link between
+FE and BE DAIs would become dynamic and change when monitors are
+(un)plugged. This would lead to modifying the topology every time
+hotplug events happen, which is not currently possible in ASoC and
+there does not seem to be any obvious benefits from this design.
+
+To overcome above problems and enable the HDMI driver to be used
+from ASoC, this patch adds a new mode (mst_no_extra_pcms flags) to
+patch_hdmi.c. In this mode, the codec driver does not assume
+the backup PCMs to be created.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-2-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 2a2edfbbfee47947dd05f5860c66c0e80ee5e09d)
+Bugzilla: 1772498
+---
+ include/sound/hda_codec.h | 1 +
+ sound/pci/hda/patch_hdmi.c | 19 ++++++++++++++-----
+ 2 files changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/include/sound/hda_codec.h b/include/sound/hda_codec.h
+index 9a0393cf024c..ac18f428eda6 100644
+--- a/include/sound/hda_codec.h
++++ b/include/sound/hda_codec.h
+@@ -254,6 +254,7 @@ struct hda_codec {
+ unsigned int force_pin_prefix:1; /* Add location prefix */
+ unsigned int link_down_at_suspend:1; /* link down at runtime suspend */
+ unsigned int relaxed_resume:1; /* don't resume forcibly for jack */
++ unsigned int mst_no_extra_pcms:1; /* no backup PCMs for DP-MST */
+
+ #ifdef CONFIG_PM
+ unsigned long power_on_acct;
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index d14f6684737d..b8579cd21809 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -2075,15 +2075,24 @@ static bool is_hdmi_pcm_attached(struct hdac_device *hdac, int pcm_idx)
+ static int generic_hdmi_build_pcms(struct hda_codec *codec)
+ {
+ struct hdmi_spec *spec = codec->spec;
+- int idx;
++ int idx, pcm_num;
+
+ /*
+ * for non-mst mode, pcm number is the same as before
+- * for DP MST mode, pcm number is (nid number + dev_num - 1)
+- * dev_num is the device entry number in a pin
+- *
++ * for DP MST mode without extra PCM, pcm number is same
++ * for DP MST mode with extra PCMs, pcm number is
++ * (nid number + dev_num - 1)
++ * dev_num is the device entry number in a pin
+ */
+- for (idx = 0; idx < spec->num_nids + spec->dev_num - 1; idx++) {
++
++ if (codec->mst_no_extra_pcms)
++ pcm_num = spec->num_nids;
++ else
++ pcm_num = spec->num_nids + spec->dev_num - 1;
++
++ codec_dbg(codec, "hdmi: pcm_num set to %d\n", pcm_num);
++
++ for (idx = 0; idx < pcm_num; idx++) {
+ struct hda_pcm *info;
+ struct hda_pcm_stream *pstr;
+
+--
+2.20.1
+
+
+From d396423ca770d10ab33a485f118e80a1a9f70516 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 11 Nov 2019 20:09:37 +0100
+Subject: [PATCH 014/130] ALSA: hda/hdmi - Clean up Intel platform-specific
+ fixup checks
+
+Introduce a new flag in hdmi_spec to indicate the Intel platform-
+specific fixups so that we can get rid of the lengthy codec ID
+checks. The flag is set in intel_hsw_common_init() commonly.
+
+Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111190937.19186-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit cb45722b289b54476b68883985c2824c69a7fba9)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_hdmi.c | 27 +++++----------------------
+ 1 file changed, 5 insertions(+), 22 deletions(-)
+
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index b8579cd21809..ee72d990cef3 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -37,25 +37,6 @@ static bool static_hdmi_pcm;
+ module_param(static_hdmi_pcm, bool, 0644);
+ MODULE_PARM_DESC(static_hdmi_pcm, "Don't restrict PCM parameters per ELD info");
+
+-#define is_haswell(codec) ((codec)->core.vendor_id == 0x80862807)
+-#define is_broadwell(codec) ((codec)->core.vendor_id == 0x80862808)
+-#define is_skylake(codec) ((codec)->core.vendor_id == 0x80862809)
+-#define is_broxton(codec) ((codec)->core.vendor_id == 0x8086280a)
+-#define is_kabylake(codec) ((codec)->core.vendor_id == 0x8086280b)
+-#define is_geminilake(codec) (((codec)->core.vendor_id == 0x8086280d) || \
+- ((codec)->core.vendor_id == 0x80862800))
+-#define is_cannonlake(codec) ((codec)->core.vendor_id == 0x8086280c)
+-#define is_icelake(codec) ((codec)->core.vendor_id == 0x8086280f)
+-#define is_tigerlake(codec) ((codec)->core.vendor_id == 0x80862812)
+-#define is_haswell_plus(codec) (is_haswell(codec) || is_broadwell(codec) \
+- || is_skylake(codec) || is_broxton(codec) \
+- || is_kabylake(codec) || is_geminilake(codec) \
+- || is_cannonlake(codec) || is_icelake(codec) \
+- || is_tigerlake(codec))
+-#define is_valleyview(codec) ((codec)->core.vendor_id == 0x80862882)
+-#define is_cherryview(codec) ((codec)->core.vendor_id == 0x80862883)
+-#define is_valleyview_plus(codec) (is_valleyview(codec) || is_cherryview(codec))
+-
+ struct hdmi_spec_per_cvt {
+ hda_nid_t cvt_nid;
+ int assigned;
+@@ -162,6 +143,7 @@ struct hdmi_spec {
+
+ bool dyn_pin_out;
+ bool dyn_pcm_assign;
++ bool intel_hsw_fixup; /* apply Intel platform-specific fixups */
+ /*
+ * Non-generic VIA/NVIDIA specific
+ */
+@@ -925,7 +907,7 @@ static int hdmi_setup_stream(struct hda_codec *codec, hda_nid_t cvt_nid,
+ return err;
+ }
+
+- if (is_haswell_plus(codec)) {
++ if (spec->intel_hsw_fixup) {
+
+ /*
+ * on recent platforms IEC Coding Type is required for HBR
+@@ -1709,7 +1691,7 @@ static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid)
+ * To simplify the implementation, malloc all
+ * the virtual pins in the initialization statically
+ */
+- if (is_haswell_plus(codec)) {
++ if (spec->intel_hsw_fixup) {
+ /*
+ * On Intel platforms, device entries number is
+ * changed dynamically. If there is a DP MST
+@@ -1758,7 +1740,7 @@ static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid)
+ per_pin->dev_id = i;
+ per_pin->non_pcm = false;
+ snd_hda_set_dev_select(codec, pin_nid, i);
+- if (is_haswell_plus(codec))
++ if (spec->intel_hsw_fixup)
+ intel_haswell_fixup_connect_list(codec, pin_nid);
+ err = hdmi_read_pin_conn(codec, pin_idx);
+ if (err < 0)
+@@ -2825,6 +2807,7 @@ static int intel_hsw_common_init(struct hda_codec *codec, hda_nid_t vendor_nid,
+ spec->vendor_nid = vendor_nid;
+ spec->port_map = port_map;
+ spec->port_num = port_num;
++ spec->intel_hsw_fixup = true;
+
+ intel_haswell_enable_all_pins(codec, true);
+ intel_haswell_fixup_enable_dp12(codec);
+--
+2.20.1
+
+
+From 3c8372547754addd020cc95c164508fd67cb53b8 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Fri, 15 Nov 2019 14:44:47 +0200
+Subject: [PATCH 015/130] ALSA: hda: hdmi - fix port numbering for ICL and TGL
+ platforms
+
+Semantics of port#0 differ between ICL and TGL:
+
+ ICL port#0 -> never used for HDAudio
+ ICL port#1 -> should be mapped to first pin (0x04)
+ TGL port#0 -> typically not used, but HW has the support,
+ so should be mapped to first pin (0x04)
+ TGL port#1 -> should be mapped to 2nd pin (0x06)
+
+Refactor the port mapping logic to allow to take the above
+differences into account. Fixes issues with HDAudio on some
+TGL platforms.
+
+Co-developed-by: Pan Xiuli <xiuli.pan@linux.intel.com>
+Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Link: https://lore.kernel.org/r/20191115124449.20512-2-kai.vehmanen@linux.intel.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit d577cf76fa3192f9e656bb101aa54d25a6a71347)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_hdmi.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index ee72d990cef3..cc35a8569439 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -2664,7 +2664,7 @@ static int intel_pin2port(void *audio_ptr, int pin_nid)
+ */
+ for (i = 0; i < spec->port_num; i++) {
+ if (pin_nid == spec->port_map[i])
+- return i + 1;
++ return i;
+ }
+
+ /* return -1 if pin number exceeds our expectation */
+@@ -2684,9 +2684,9 @@ static int intel_port2pin(struct hda_codec *codec, int port)
+ return port + intel_base_nid(codec) - 1;
+ }
+
+- if (port < 1 || port > spec->port_num)
++ if (port < 0 || port >= spec->port_num)
+ return 0;
+- return spec->port_map[port - 1];
++ return spec->port_map[port];
+ }
+
+ static void intel_pin_eld_notify(void *audio_ptr, int port, int pipe)
+@@ -2838,9 +2838,9 @@ static int patch_i915_icl_hdmi(struct hda_codec *codec)
+ {
+ /*
+ * pin to port mapping table where the value indicate the pin number and
+- * the index indicate the port number with 1 base.
++ * the index indicate the port number.
+ */
+- static const int map[] = {0x4, 0x6, 0x8, 0xa, 0xb};
++ static const int map[] = {0x0, 0x4, 0x6, 0x8, 0xa, 0xb};
+
+ return intel_hsw_common_init(codec, 0x02, map, ARRAY_SIZE(map));
+ }
+@@ -2849,7 +2849,7 @@ static int patch_i915_tgl_hdmi(struct hda_codec *codec)
+ {
+ /*
+ * pin to port mapping table where the value indicate the pin number and
+- * the index indicate the port number with 1 base.
++ * the index indicate the port number.
+ */
+ static const int map[] = {0x4, 0x6, 0x8, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf};
+
+--
+2.20.1
+
+
+From 485ef81d2510635f707bec0fb461b199e0b6cb89 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Fri, 15 Nov 2019 14:44:48 +0200
+Subject: [PATCH 016/130] ALSA: hda: hdmi - remove redundant code comments
+
+Remove unnecessary comments related to pin mapping on
+Intel platforms.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Link: https://lore.kernel.org/r/20191115124449.20512-3-kai.vehmanen@linux.intel.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c8e3eb9be57f91751aeb9397118755390dbff9a4)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_hdmi.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index cc35a8569439..71848dce0025 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -2655,7 +2655,7 @@ static int intel_pin2port(void *audio_ptr, int pin_nid)
+ base_nid = intel_base_nid(codec);
+ if (WARN_ON(pin_nid < base_nid || pin_nid >= base_nid + 3))
+ return -1;
+- return pin_nid - base_nid + 1; /* intel port is 1-based */
++ return pin_nid - base_nid + 1;
+ }
+
+ /*
+@@ -2667,7 +2667,6 @@ static int intel_pin2port(void *audio_ptr, int pin_nid)
+ return i;
+ }
+
+- /* return -1 if pin number exceeds our expectation */
+ codec_info(codec, "Can't find the HDMI/DP port for pin %d\n", pin_nid);
+ return -1;
+ }
+@@ -2680,7 +2679,6 @@ static int intel_port2pin(struct hda_codec *codec, int port)
+ /* we assume only from port-B to port-D */
+ if (port < 1 || port > 3)
+ return 0;
+- /* intel port is 1-based */
+ return port + intel_base_nid(codec) - 1;
+ }
+
+@@ -2856,7 +2854,6 @@ static int patch_i915_tgl_hdmi(struct hda_codec *codec)
+ return intel_hsw_common_init(codec, 0x02, map, ARRAY_SIZE(map));
+ }
+
+-
+ /* Intel Baytrail and Braswell; with eld notifier */
+ static int patch_i915_byt_hdmi(struct hda_codec *codec)
+ {
+--
+2.20.1
+
+
+From c581baec7a7479f1767335255a7b7de405bfc707 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Fri, 15 Nov 2019 14:44:49 +0200
+Subject: [PATCH 017/130] ALSA: hda - remove forced polling workaround for CFL
+ and CNL
+
+Remove the workarounds added in commit fa763f1b2858 ("ALSA:
+hda - Force polling mode on CNL for fixing codec communication")
+and commit a8d7bde23e71 ("ALSA: hda - Force polling mode on CFL
+for fixing codec communication").
+
+The workarounds are no longer needed after the more generic
+change done in commit 2756d9143aa5 ("ALSA: hda - Fix intermittent
+CORB/RIRB stall on Intel chips"). This change applies to a larger
+set of hardware and covers CFL and CNL as well.
+
+Similar change was already done to SOF DSP HDA driver with
+no regressions detected.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Link: https://lore.kernel.org/r/20191115124449.20512-4-kai.vehmanen@linux.intel.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit ee906c6b9c6e7e4ad749f5cfdf65768455f4bf43)
+Bugzilla: 1772498
+---
+ sound/pci/hda/hda_intel.c | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index 8981109e3565..e76a0bb6d3cf 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -369,8 +369,6 @@ enum {
+ ((pci)->device == 0x160c))
+
+ #define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98)
+-#define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0xa348)
+-#define IS_CNL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x9dc8)
+
+ static char *driver_short_names[] = {
+ [AZX_DRIVER_ICH] = "HDA Intel",
+@@ -1763,10 +1761,6 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci,
+ if (!azx_snoop(chip))
+ azx_bus(chip)->dma_type = SNDRV_DMA_TYPE_DEV_UC;
+
+- /* Workaround for a communication error on CFL (bko#199007) and CNL */
+- if (IS_CFL(pci) || IS_CNL(pci))
+- azx_bus(chip)->polling_mode = 1;
+-
+ if (chip->driver_type == AZX_DRIVER_NVIDIA) {
+ dev_dbg(chip->card->dev, "Enable delay in RIRB handling\n");
+ chip->bus.needs_damn_long_delay = 1;
+--
+2.20.1
+
+
+From 8de79a35aa53df66d5eec899cafff067a0908da4 Mon Sep 17 00:00:00 2001
+From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Date: Tue, 15 Oct 2019 14:44:09 +0900
+Subject: [PATCH 018/130] ASoC: sof: include types.h at header.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Content-Transfer-Encoding: 8bit
+
+Without <types.h> we will get these error
+
+linux/include/sound/sof/header.h:125:2: error: unknown type name ‘uint32_t’uint32_t size;
+linux/include/sound/sof/header.h:136:2: error: unknown type name ‘uint32_t’uint32_t size;
+linux/include/sound/sof/header.h:137:2: error: unknown type name ‘uint32_t’uint32_t cmd;
+...
+linux/include/sound/sof/dai-imx.h:18:2: error: unknown type name ‘uint16_t’uint16_t reserved1;
+linux/include/sound/sof/dai-imx.h:30:2: error: unknown type name ‘uint16_t’uint16_t tdm_slot_width;
+linux/include/sound/sof/dai-imx.h:31:2: error: unknown type name ‘uint16_t’uint16_t reserved2;
+
+Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Link: https://lore.kernel.org/r/87a7a24l7r.wl-kuninori.morimoto.gx@renesas.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 03048217624a9472c1c7a205c8ea9bf8d4026e59)
+Bugzilla: 1772498
+---
+ include/sound/sof/header.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/sound/sof/header.h b/include/sound/sof/header.h
+index 10f00c08dbb7..332143ff7278 100644
+--- a/include/sound/sof/header.h
++++ b/include/sound/sof/header.h
+@@ -9,6 +9,7 @@
+ #ifndef __INCLUDE_SOUND_SOF_HEADER_H__
+ #define __INCLUDE_SOUND_SOF_HEADER_H__
+
++#include <linux/types.h>
+ #include <uapi/sound/sof/abi.h>
+
+ /** \addtogroup sof_uapi uAPI
+--
+2.20.1
+
+
+From eeb591355d00f4e6e077745aca5ff5a2899eca2d Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:28 -0500
+Subject: [PATCH 019/130] ASoC: SOF: trace: move to opt-in with Kconfig and
+ module parameter
+
+In a number of debug cases, the DMA-based trace can add problems
+(e.g. with HDaudio channel allocation). It also generates additional
+traffic on the bus and if the DMA handling is unreliable will prevent
+audio use-cases from working normally. Using the trace also requires
+tools to be installed on the target.
+
+The trace can be instead handled as dynamic debug. We can use a
+Kconfig to force the trace to be enabled in all cases, or use a module
+parameter to enable it on a need-basis, e.g. by setting "options
+snd_sof sof_debug=0x1" in a /etc/modprobe.d file.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 2ab4c50f6955514150f83b47b7aee3ba5fe3ac1d)
+Bugzilla: 1772498
+---
+ sound/soc/sof/Kconfig | 8 ++++++++
+ sound/soc/sof/core.c | 25 +++++++++++++++++++------
+ sound/soc/sof/sof-priv.h | 13 +++++++++----
+ sound/soc/sof/trace.c | 17 ++++++++++++++++-
+ 4 files changed, 52 insertions(+), 11 deletions(-)
+
+diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
+index bb8036ae567e..cc592bcadae7 100644
+--- a/sound/soc/sof/Kconfig
++++ b/sound/soc/sof/Kconfig
+@@ -142,6 +142,14 @@ config SND_SOC_SOF_DEBUG_ENABLE_DEBUGFS_CACHE
+ Say Y if you want to enable caching the memory windows.
+ If unsure, select "N".
+
++config SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE
++ bool "SOF enable firmware trace"
++ help
++ The firmware trace can be enabled either at build-time with
++ this option, or dynamically by setting flags in the SOF core
++ module parameter (similar to dynamic debug)
++ If unsure, select "N".
++
+ config SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST
+ bool "SOF enable IPC flood test"
+ help
+diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
+index 81f28f7ff1a0..15167b8220ed 100644
+--- a/sound/soc/sof/core.c
++++ b/sound/soc/sof/core.c
+@@ -16,6 +16,11 @@
+ #include "sof-priv.h"
+ #include "ops.h"
+
++/* see SOF_DBG_ flags */
++int sof_core_debug;
++module_param_named(sof_debug, sof_core_debug, int, 0444);
++MODULE_PARM_DESC(sof_debug, "SOF core debug options (0x0 all off)");
++
+ /* SOF defaults if not provided by the platform in ms */
+ #define TIMEOUT_DEFAULT_IPC_MS 500
+ #define TIMEOUT_DEFAULT_BOOT_MS 2000
+@@ -350,12 +355,20 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
+ goto fw_run_err;
+ }
+
+- /* init DMA trace */
+- ret = snd_sof_init_trace(sdev);
+- if (ret < 0) {
+- /* non fatal */
+- dev_warn(sdev->dev,
+- "warning: failed to initialize trace %d\n", ret);
++ if (IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE) ||
++ (sof_core_debug & SOF_DBG_ENABLE_TRACE)) {
++ sdev->dtrace_is_supported = true;
++
++ /* init DMA trace */
++ ret = snd_sof_init_trace(sdev);
++ if (ret < 0) {
++ /* non fatal */
++ dev_warn(sdev->dev,
++ "warning: failed to initialize trace %d\n",
++ ret);
++ }
++ } else {
++ dev_dbg(sdev->dev, "SOF firmware trace disabled\n");
+ }
+
+ /* hereafter all FW boot flows are for PM reasons */
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 730f3259dd02..d5b1a4f895da 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -28,10 +28,14 @@
+ #include <uapi/sound/sof/fw.h>
+
+ /* debug flags */
+-#define SOF_DBG_REGS BIT(1)
+-#define SOF_DBG_MBOX BIT(2)
+-#define SOF_DBG_TEXT BIT(3)
+-#define SOF_DBG_PCI BIT(4)
++#define SOF_DBG_ENABLE_TRACE BIT(0)
++#define SOF_DBG_REGS BIT(1)
++#define SOF_DBG_MBOX BIT(2)
++#define SOF_DBG_TEXT BIT(3)
++#define SOF_DBG_PCI BIT(4)
++
++/* global debug state set by SOF_DBG_ flags */
++extern int sof_core_debug;
+
+ /* max BARs mmaped devices can use */
+ #define SND_SOF_BARS 8
+@@ -434,6 +438,7 @@ struct snd_sof_dev {
+ int dma_trace_pages;
+ wait_queue_head_t trace_sleep;
+ u32 host_offset;
++ u32 dtrace_is_supported; /* set with Kconfig or module parameter */
+ u32 dtrace_is_enabled;
+ u32 dtrace_error;
+ u32 dtrace_draining;
+diff --git a/sound/soc/sof/trace.c b/sound/soc/sof/trace.c
+index 4c3cff031fd6..b0e4556c8536 100644
+--- a/sound/soc/sof/trace.c
++++ b/sound/soc/sof/trace.c
+@@ -162,6 +162,9 @@ int snd_sof_init_trace_ipc(struct snd_sof_dev *sdev)
+ struct sof_ipc_reply ipc_reply;
+ int ret;
+
++ if (!sdev->dtrace_is_supported)
++ return 0;
++
+ if (sdev->dtrace_is_enabled || !sdev->dma_trace_pages)
+ return -EINVAL;
+
+@@ -222,6 +225,9 @@ int snd_sof_init_trace(struct snd_sof_dev *sdev)
+ {
+ int ret;
+
++ if (!sdev->dtrace_is_supported)
++ return 0;
++
+ /* set false before start initialization */
+ sdev->dtrace_is_enabled = false;
+
+@@ -277,6 +283,9 @@ EXPORT_SYMBOL(snd_sof_init_trace);
+ int snd_sof_trace_update_pos(struct snd_sof_dev *sdev,
+ struct sof_ipc_dma_trace_posn *posn)
+ {
++ if (!sdev->dtrace_is_supported)
++ return 0;
++
+ if (sdev->dtrace_is_enabled && sdev->host_offset != posn->host_offset) {
+ sdev->host_offset = posn->host_offset;
+ wake_up(&sdev->trace_sleep);
+@@ -293,6 +302,9 @@ int snd_sof_trace_update_pos(struct snd_sof_dev *sdev,
+ /* an error has occurred within the DSP that prevents further trace */
+ void snd_sof_trace_notify_for_error(struct snd_sof_dev *sdev)
+ {
++ if (!sdev->dtrace_is_supported)
++ return;
++
+ if (sdev->dtrace_is_enabled) {
+ dev_err(sdev->dev, "error: waking up any trace sleepers\n");
+ sdev->dtrace_error = true;
+@@ -305,7 +317,7 @@ void snd_sof_release_trace(struct snd_sof_dev *sdev)
+ {
+ int ret;
+
+- if (!sdev->dtrace_is_enabled)
++ if (!sdev->dtrace_is_supported || !sdev->dtrace_is_enabled)
+ return;
+
+ ret = snd_sof_dma_trace_trigger(sdev, SNDRV_PCM_TRIGGER_STOP);
+@@ -326,6 +338,9 @@ EXPORT_SYMBOL(snd_sof_release_trace);
+
+ void snd_sof_free_trace(struct snd_sof_dev *sdev)
+ {
++ if (!sdev->dtrace_is_supported)
++ return;
++
+ snd_sof_release_trace(sdev);
+
+ snd_dma_free_pages(&sdev->dmatb);
+--
+2.20.1
+
+
+From f1e8f5f928c09194078db704356af60ddaee6280 Mon Sep 17 00:00:00 2001
+From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:29 -0500
+Subject: [PATCH 020/130] ASoC: SOF: ipc: retain DSP context after FW
+ exception.
+
+Add config option to prevent DSP entering D3 after any FW exception.
+This can then be used to dump FW context for debug.
+
+Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 9a06508bf7824ba34f2e1e9e08df505ac14a44c2)
+Bugzilla: 1772498
+---
+ sound/soc/sof/Kconfig | 8 ++++++++
+ sound/soc/sof/debug.c | 16 ++++++++++++++++
+ sound/soc/sof/ipc.c | 4 +---
+ sound/soc/sof/sof-priv.h | 2 ++
+ 4 files changed, 27 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
+index cc592bcadae7..56a3ab66b46b 100644
+--- a/sound/soc/sof/Kconfig
++++ b/sound/soc/sof/Kconfig
+@@ -158,6 +158,14 @@ config SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST
+ Say Y if you want to enable IPC flood test.
+ If unsure, select "N".
+
++config SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT
++ bool "SOF retain DSP context on any FW exceptions"
++ help
++ This option keeps the DSP in D0 state so that firmware debug
++ information can be retained and dumped to userspace.
++ Say Y if you want to retain DSP context for FW exceptions.
++ If unsure, select "N".
++
+ endif ## SND_SOC_SOF_DEBUG
+
+ endif ## SND_SOC_SOF_OPTIONS
+diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c
+index 5529e8eeca46..d2b3b99d3a20 100644
+--- a/sound/soc/sof/debug.c
++++ b/sound/soc/sof/debug.c
+@@ -463,3 +463,19 @@ void snd_sof_free_debug(struct snd_sof_dev *sdev)
+ debugfs_remove_recursive(sdev->debugfs_root);
+ }
+ EXPORT_SYMBOL_GPL(snd_sof_free_debug);
++
++void snd_sof_handle_fw_exception(struct snd_sof_dev *sdev)
++{
++ if (IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT) ||
++ (sof_core_debug & SOF_DBG_RETAIN_CTX)) {
++ /* should we prevent DSP entering D3 ? */
++ dev_info(sdev->dev, "info: preventing DSP entering D3 state to preserve context\n");
++ pm_runtime_get_noresume(sdev->dev);
++ }
++
++ /* dump vital information to the logs */
++ snd_sof_dsp_dbg_dump(sdev, SOF_DBG_REGS | SOF_DBG_MBOX);
++ snd_sof_ipc_dump(sdev);
++ snd_sof_trace_notify_for_error(sdev);
++}
++EXPORT_SYMBOL(snd_sof_handle_fw_exception);
+diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
+index 086eeeab8679..3382a745ba5a 100644
+--- a/sound/soc/sof/ipc.c
++++ b/sound/soc/sof/ipc.c
+@@ -210,9 +210,7 @@ static int tx_wait_done(struct snd_sof_ipc *ipc, struct snd_sof_ipc_msg *msg,
+ if (ret == 0) {
+ dev_err(sdev->dev, "error: ipc timed out for 0x%x size %d\n",
+ hdr->cmd, hdr->size);
+- snd_sof_dsp_dbg_dump(ipc->sdev, SOF_DBG_REGS | SOF_DBG_MBOX);
+- snd_sof_ipc_dump(ipc->sdev);
+- snd_sof_trace_notify_for_error(ipc->sdev);
++ snd_sof_handle_fw_exception(ipc->sdev);
+ ret = -ETIMEDOUT;
+ } else {
+ /* copy the data returned from DSP */
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index d5b1a4f895da..348759035dd0 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -33,6 +33,7 @@
+ #define SOF_DBG_MBOX BIT(2)
+ #define SOF_DBG_TEXT BIT(3)
+ #define SOF_DBG_PCI BIT(4)
++#define SOF_DBG_RETAIN_CTX BIT(5) /* prevent DSP D3 on FW exception */
+
+ /* global debug state set by SOF_DBG_ flags */
+ extern int sof_core_debug;
+@@ -580,6 +581,7 @@ void snd_sof_get_status(struct snd_sof_dev *sdev, u32 panic_code,
+ struct sof_ipc_panic_info *panic_info,
+ void *stack, size_t stack_words);
+ int snd_sof_init_trace_ipc(struct snd_sof_dev *sdev);
++void snd_sof_handle_fw_exception(struct snd_sof_dev *sdev);
+
+ /*
+ * Platform specific ops.
+--
+2.20.1
+
+
+From 9de42cad7a0c02393de0999286b1c2cc2a3ea39f Mon Sep 17 00:00:00 2001
+From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:32 -0500
+Subject: [PATCH 021/130] ASoC: SOF: core: check for mandatory fw_ready op
+ during SOF probe
+
+fw_ready should be a mandatory op. Make sure fw_ready ops is set
+during probe.
+
+Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-8-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8692d498d675e2e1433274c5f03b855824f3f35d)
+Bugzilla: 1772498
+---
+ sound/soc/sof/core.c | 3 ++-
+ sound/soc/sof/ipc.c | 6 ------
+ sound/soc/sof/sof-priv.h | 2 +-
+ 3 files changed, 3 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
+index 15167b8220ed..5998861a9002 100644
+--- a/sound/soc/sof/core.c
++++ b/sound/soc/sof/core.c
+@@ -466,7 +466,8 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
+ if (!sof_ops(sdev) || !sof_ops(sdev)->probe || !sof_ops(sdev)->run ||
+ !sof_ops(sdev)->block_read || !sof_ops(sdev)->block_write ||
+ !sof_ops(sdev)->send_msg || !sof_ops(sdev)->load_firmware ||
+- !sof_ops(sdev)->ipc_msg_data || !sof_ops(sdev)->ipc_pcm_params)
++ !sof_ops(sdev)->ipc_msg_data || !sof_ops(sdev)->ipc_pcm_params ||
++ !sof_ops(sdev)->fw_ready)
+ return -EINVAL;
+
+ INIT_LIST_HEAD(&sdev->pcm_list);
+diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
+index 3382a745ba5a..5994e1073364 100644
+--- a/sound/soc/sof/ipc.c
++++ b/sound/soc/sof/ipc.c
+@@ -794,12 +794,6 @@ struct snd_sof_ipc *snd_sof_ipc_init(struct snd_sof_dev *sdev)
+ struct snd_sof_ipc *ipc;
+ struct snd_sof_ipc_msg *msg;
+
+- /* check if mandatory ops required for ipc are defined */
+- if (!sof_ops(sdev)->fw_ready) {
+- dev_err(sdev->dev, "error: ipc mandatory ops not defined\n");
+- return NULL;
+- }
+-
+ ipc = devm_kzalloc(sdev->dev, sizeof(*ipc), GFP_KERNEL);
+ if (!ipc)
+ return NULL;
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 348759035dd0..44f789bf7fb0 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -133,7 +133,7 @@ struct snd_sof_dsp_ops {
+ * FW ready checks for ABI compatibility and creates
+ * memory windows at first boot
+ */
+- int (*fw_ready)(struct snd_sof_dev *sdev, u32 msg_id); /* optional */
++ int (*fw_ready)(struct snd_sof_dev *sdev, u32 msg_id); /* mandatory */
+
+ /* connect pcm substream to a host stream */
+ int (*pcm_open)(struct snd_sof_dev *sdev,
+--
+2.20.1
+
+
+From 63398beda87ad3d6d43cc5fc90f173540b3fd1b3 Mon Sep 17 00:00:00 2001
+From: Marcin Rajwa <marcin.rajwa@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:33 -0500
+Subject: [PATCH 022/130] ASoC: SOF: ipc: introduce no_stream_position in
+ sof_ipc_stream_params struct
+
+The host period bytes value needs to be passed to firmware.
+However current implementation uses this field for different
+purpose - to indicate whether FW should send stream position
+to the host. Therefore this patch introduces another field
+"no_stream_position", a boolean value aimed to store information
+about position tracking. This way host_period_bytes preserves its
+original value.
+
+Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-9-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e3ebfd0ab5b4880bfb6a9f32614c2e389cc3da56)
+Bugzilla: 1772498
+---
+ include/sound/sof/stream.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/sound/sof/stream.h b/include/sound/sof/stream.h
+index 0b71b381b952..7facefb541b3 100644
+--- a/include/sound/sof/stream.h
++++ b/include/sound/sof/stream.h
+@@ -83,10 +83,10 @@ struct sof_ipc_stream_params {
+ uint16_t sample_valid_bytes;
+ uint16_t sample_container_bytes;
+
+- /* for notifying host period has completed - 0 means no period IRQ */
+ uint32_t host_period_bytes;
++ uint16_t no_stream_position; /**< 1 means don't send stream position */
+
+- uint32_t reserved[2];
++ uint16_t reserved[3];
+ uint16_t chmap[SOF_IPC_MAX_CHANNELS]; /**< channel map - SOF_CHMAP_ */
+ } __packed;
+
+--
+2.20.1
+
+
+From 0a637a33ef7f532235b1d972ee54cf8b603730e5 Mon Sep 17 00:00:00 2001
+From: Marcin Rajwa <marcin.rajwa@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:34 -0500
+Subject: [PATCH 023/130] ASoC: SOF: Intel: hda: fix reset of host_period_bytes
+
+This patch prevents the reset of host period bytes
+and uses no_stream_position to record requests
+for stream position.
+
+Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-10-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f567ff6c76f7e9b317248fcab7a0eb3ef432dc9e)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-pcm.c | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-pcm.c b/sound/soc/sof/intel/hda-pcm.c
+index 9b730f183529..575f5f5877d8 100644
+--- a/sound/soc/sof/intel/hda-pcm.c
++++ b/sound/soc/sof/intel/hda-pcm.c
+@@ -89,6 +89,7 @@ int hda_dsp_pcm_hw_params(struct snd_sof_dev *sdev,
+ struct hdac_ext_stream *stream = stream_to_hdac_ext_stream(hstream);
+ struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
+ struct snd_dma_buffer *dmab;
++ struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
+ int ret;
+ u32 size, rate, bits;
+
+@@ -116,9 +117,17 @@ int hda_dsp_pcm_hw_params(struct snd_sof_dev *sdev,
+ /* disable SPIB, to enable buffer wrap for stream */
+ hda_dsp_stream_spib_config(sdev, stream, HDA_DSP_SPIB_DISABLE, 0);
+
+- /* set host_period_bytes to 0 if no IPC position */
+- if (hda && hda->no_ipc_position)
+- ipc_params->host_period_bytes = 0;
++ /* update no_stream_position flag for ipc params */
++ if (hda && hda->no_ipc_position) {
++ /* For older ABIs set host_period_bytes to zero to inform
++ * FW we don't want position updates. Newer versions use
++ * no_stream_position for this purpose.
++ */
++ if (v->abi_version < SOF_ABI_VER(3, 10, 0))
++ ipc_params->host_period_bytes = 0;
++ else
++ ipc_params->no_stream_position = 1;
++ }
+
+ ipc_params->stream_tag = hstream->stream_tag;
+
+--
+2.20.1
+
+
+From 7f89237bf642c6a090557db68be76c6d67658904 Mon Sep 17 00:00:00 2001
+From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:37 -0500
+Subject: [PATCH 024/130] ASoC: SOF: Intel: Add context data to any IPC
+ timeout.
+
+Helps with FW debug as it provides DSP IPC processing context.
+
+Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-13-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 3a9e204d4e36904a464a2e53206b053a7ffc7bad)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/bdw.c | 22 +++++++++++++++++++++-
+ sound/soc/sof/intel/byt.c | 23 ++++++++++++++++++++++-
+ 2 files changed, 43 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
+index 80e2826fb447..f395d0638876 100644
+--- a/sound/soc/sof/intel/bdw.c
++++ b/sound/soc/sof/intel/bdw.c
+@@ -247,7 +247,7 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
+ struct sof_ipc_dsp_oops_xtensa xoops;
+ struct sof_ipc_panic_info panic_info;
+ u32 stack[BDW_STACK_DUMP_SIZE];
+- u32 status, panic;
++ u32 status, panic, imrx, imrd;
+
+ /* now try generic SOF status messages */
+ status = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IPCD);
+@@ -256,6 +256,26 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
+ BDW_STACK_DUMP_SIZE);
+ snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
+ BDW_STACK_DUMP_SIZE);
++
++ /* provide some context for firmware debug */
++ imrx = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IMRX);
++ imrd = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IMRD);
++ dev_err(sdev->dev,
++ "error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
++ panic & SHIM_IPCX_BUSY ? "yes" : "no",
++ panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
++ dev_err(sdev->dev,
++ "error: mask host: pending %s complete %s raw 0x%8.8x\n",
++ imrx & SHIM_IMRX_BUSY ? "yes" : "no",
++ imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
++ dev_err(sdev->dev,
++ "error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
++ status & SHIM_IPCD_BUSY ? "yes" : "no",
++ status & SHIM_IPCD_DONE ? "yes" : "no", status);
++ dev_err(sdev->dev,
++ "error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
++ imrd & SHIM_IMRD_BUSY ? "yes" : "no",
++ imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
+ }
+
+ /*
+diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
+index a1e514f71739..b2597ecfdc1c 100644
+--- a/sound/soc/sof/intel/byt.c
++++ b/sound/soc/sof/intel/byt.c
+@@ -145,7 +145,7 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
+ struct sof_ipc_dsp_oops_xtensa xoops;
+ struct sof_ipc_panic_info panic_info;
+ u32 stack[BYT_STACK_DUMP_SIZE];
+- u32 status, panic;
++ u32 status, panic, imrd, imrx;
+
+ /* now try generic SOF status messages */
+ status = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IPCD);
+@@ -154,6 +154,27 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
+ BYT_STACK_DUMP_SIZE);
+ snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
+ BYT_STACK_DUMP_SIZE);
++
++ /* provide some context for firmware debug */
++ imrx = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IMRX);
++ imrd = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IMRD);
++ dev_err(sdev->dev,
++ "error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
++ panic & SHIM_IPCX_BUSY ? "yes" : "no",
++ panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
++ dev_err(sdev->dev,
++ "error: mask host: pending %s complete %s raw 0x%8.8x\n",
++ imrx & SHIM_IMRX_BUSY ? "yes" : "no",
++ imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
++ dev_err(sdev->dev,
++ "error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
++ status & SHIM_IPCD_BUSY ? "yes" : "no",
++ status & SHIM_IPCD_DONE ? "yes" : "no", status);
++ dev_err(sdev->dev,
++ "error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
++ imrd & SHIM_IMRD_BUSY ? "yes" : "no",
++ imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
++
+ }
+
+ /*
+--
+2.20.1
+
+
+From 5c2784a52e77957f4c7a677296369d1ef09413db Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:35 -0500
+Subject: [PATCH 025/130] ASoC: SOF: enable sync_write in hdac_bus
+
+Align SOF HDA implementation with snd-hda-intel driver and enable
+sync_write flag for all supported Intel platforms in SOF. When set,
+a sync is issued after each verb write.
+
+Sync after write has helped to overcome intermittent delays in
+system resume flow on Intel Coffee Lake systems, and most recently
+probe errors related to the HDMI codec on Ice Lake systems.
+
+Matches the snd-hda-intel driver change done in commit 2756d9143aa5
+("ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips").
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f3416e7144f5d4ba0fc5dcef6ebfff891266c46a)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 06e84679087b..5a5163eef2ef 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -268,6 +268,7 @@ static int hda_init(struct snd_sof_dev *sdev)
+
+ bus->use_posbuf = 1;
+ bus->bdl_pos_adj = 0;
++ bus->sync_write = 1;
+
+ mutex_init(&hbus->prepare_mutex);
+ hbus->pci = pci;
+--
+2.20.1
+
+
+From e1cc39fb37b304910435e08907d9bd3f29636b89 Mon Sep 17 00:00:00 2001
+From: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:41 -0500
+Subject: [PATCH 026/130] ASoC: SOF: enable dual control for pga
+
+Currently sof pga element supports only 1 kcontrol and you can't create
+for example a mixer element with combined volume slider and mute switch.
+So enable sof pga to have more than 1 kcontrol associated with it. Also
+check for possible NULL tlv pointer as switch element might not have it.
+
+Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-8-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit a68c6b6cc77b841dc37c17a5d9a7074e26801af5)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 4452594c2e17..32a70ffc149d 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -1581,7 +1581,7 @@ static int sof_widget_load_pga(struct snd_soc_component *scomp, int index,
+ if (!volume)
+ return -ENOMEM;
+
+- if (le32_to_cpu(tw->num_kcontrols) != 1) {
++ if (!le32_to_cpu(tw->num_kcontrols)) {
+ dev_err(sdev->dev, "error: invalid kcontrol count %d for volume\n",
+ tw->num_kcontrols);
+ ret = -EINVAL;
+@@ -1618,7 +1618,8 @@ static int sof_widget_load_pga(struct snd_soc_component *scomp, int index,
+ swidget->private = volume;
+
+ list_for_each_entry(scontrol, &sdev->kcontrol_list, list) {
+- if (scontrol->comp_id == swidget->comp_id) {
++ if (scontrol->comp_id == swidget->comp_id &&
++ scontrol->volume_table) {
+ min_step = scontrol->min_volume_step;
+ max_step = scontrol->max_volume_step;
+ volume->min_value = scontrol->volume_table[min_step];
+--
+2.20.1
+
+
+From 7e68f35584ab3b3242a91431037bc7ed5df568dd Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:36 -0500
+Subject: [PATCH 027/130] Revert "ASoC: SOF: Force polling mode on CFL and CNL"
+
+This reverts commit 64ca9d9fcb3e3c86b1417e3d17a90b43dd660f81.
+
+The workaround is no longer needed after configuring HDAC
+bus with sync_write=1.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 902fd492d5ea2c02666ddadc1da977ca94e6b52c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda.c | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 5a5163eef2ef..103f4273c4d3 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -32,9 +32,6 @@
+ /* platform specific devices */
+ #include "shim.h"
+
+-#define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0xa348)
+-#define IS_CNL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x9dc8)
+-
+ #define EXCEPT_MAX_HDR_SIZE 0x400
+
+ /*
+@@ -262,10 +259,6 @@ static int hda_init(struct snd_sof_dev *sdev)
+ /* HDA bus init */
+ sof_hda_bus_init(bus, &pci->dev);
+
+- /* Workaround for a communication error on CFL (bko#199007) and CNL */
+- if (IS_CFL(pci) || IS_CNL(pci))
+- bus->polling_mode = 1;
+-
+ bus->use_posbuf = 1;
+ bus->bdl_pos_adj = 0;
+ bus->sync_write = 1;
+--
+2.20.1
+
+
+From beea344394167f3c1f55422f06646a4faa72e697 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:37 -0500
+Subject: [PATCH 028/130] ASoC: SOF: acpi: add debug module param
+
+Add debug parameter for snd-sof-acpi.
+
+One of the usages for this debug parameter to disable pm_runtime,
+which can be useful for platform bringup, or keep the parent device
+active while enabling pm_runtime for child devices (e.g. with
+SoundWire or MFD). This can also be useful to measure suspend-resume
+latencies or child devices.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 70b0c75ae1e3d35f829b5fe7ae5692efae63ca71)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-acpi-dev.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/sof-acpi-dev.c b/sound/soc/sof/sof-acpi-dev.c
+index ea7b8b895412..df318f50dd0b 100644
+--- a/sound/soc/sof/sof-acpi-dev.c
++++ b/sound/soc/sof/sof-acpi-dev.c
+@@ -29,6 +29,12 @@ static char *tplg_path;
+ module_param(tplg_path, charp, 0444);
+ MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
+
++static int sof_acpi_debug;
++module_param_named(sof_acpi_debug, sof_acpi_debug, int, 0444);
++MODULE_PARM_DESC(sof_acpi_debug, "SOF ACPI debug options (0x0 all off)");
++
++#define SOF_ACPI_DISABLE_PM_RUNTIME BIT(0)
++
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_HASWELL)
+ static const struct sof_dev_desc sof_acpi_haswell_desc = {
+ .machines = snd_soc_acpi_intel_haswell_machines,
+@@ -121,6 +127,9 @@ static const struct dev_pm_ops sof_acpi_pm = {
+
+ static void sof_acpi_probe_complete(struct device *dev)
+ {
++ if (sof_acpi_debug & SOF_ACPI_DISABLE_PM_RUNTIME)
++ return;
++
+ /* allow runtime_pm */
+ pm_runtime_set_autosuspend_delay(dev, SND_SOF_SUSPEND_DELAY_MS);
+ pm_runtime_use_autosuspend(dev);
+@@ -221,7 +230,8 @@ static int sof_acpi_probe(struct platform_device *pdev)
+
+ static int sof_acpi_remove(struct platform_device *pdev)
+ {
+- pm_runtime_disable(&pdev->dev);
++ if (!(sof_acpi_debug & SOF_ACPI_DISABLE_PM_RUNTIME))
++ pm_runtime_disable(&pdev->dev);
+
+ /* call sof helper for DSP hardware remove */
+ snd_sof_device_remove(&pdev->dev);
+--
+2.20.1
+
+
+From 34cbc5daae759efa7dd448def5beacd283386cc7 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:38 -0500
+Subject: [PATCH 029/130] ASoC: SOF: pci: add debug module param
+
+Add debug parameter for snd-sof-pci.
+
+One of the usages for this debug parameter to disable pm_runtime,
+which can be useful for platform bringup, or keep the parent device
+active while enabling pm_runtime for child devices (e.g. with
+SoundWire or MFD). This can also be useful to measure suspend-resume
+latencies or child devices.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8b160dc2a92c83a566b0596c79febb5933f9a6b5)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-pci-dev.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index 3a9e0e2a150d..be5a8da504c5 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -30,6 +30,12 @@ static char *tplg_path;
+ module_param(tplg_path, charp, 0444);
+ MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
+
++static int sof_pci_debug;
++module_param_named(sof_pci_debug, sof_pci_debug, int, 0444);
++MODULE_PARM_DESC(sof_pci_debug, "SOF PCI debug options (0x0 all off)");
++
++#define SOF_PCI_DISABLE_PM_RUNTIME BIT(0)
++
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
+ static const struct sof_dev_desc bxt_desc = {
+ .machines = snd_soc_acpi_intel_bxt_machines,
+@@ -250,6 +256,9 @@ static void sof_pci_probe_complete(struct device *dev)
+ {
+ dev_dbg(dev, "Completing SOF PCI probe");
+
++ if (sof_pci_debug & SOF_PCI_DISABLE_PM_RUNTIME)
++ return;
++
+ /* allow runtime_pm */
+ pm_runtime_set_autosuspend_delay(dev, SND_SOF_SUSPEND_DELAY_MS);
+ pm_runtime_use_autosuspend(dev);
+@@ -376,7 +385,8 @@ static void sof_pci_remove(struct pci_dev *pci)
+ snd_sof_device_remove(&pci->dev);
+
+ /* follow recommendation in pci-driver.c to increment usage counter */
+- pm_runtime_get_noresume(&pci->dev);
++ if (!(sof_pci_debug & SOF_PCI_DISABLE_PM_RUNTIME))
++ pm_runtime_get_noresume(&pci->dev);
+
+ /* release pci regions and disable device */
+ pci_release_regions(pci);
+--
+2.20.1
+
+
+From 39844b2b23b8746263988926996db159a3ebbea7 Mon Sep 17 00:00:00 2001
+From: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:43 -0500
+Subject: [PATCH 030/130] ASoC: SOF: acpi led support for switch controls
+
+Currently sof doesn't support acpi leds with mute switches. So implement
+acpi leds following quite shamelessly existing HDA implementation by
+Takashi Iwai.
+
+Mute leds can be enabled in topology by adding led and direction token
+in switch control private data.
+
+Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-10-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5d43001ae43606dc525f55c482c545afba01bb55)
+Bugzilla: 1772498
+---
+ include/uapi/sound/sof/tokens.h | 4 ++++
+ sound/soc/sof/control.c | 32 ++++++++++++++++++++++++++++++++
+ sound/soc/sof/sof-priv.h | 9 +++++++++
+ sound/soc/sof/topology.c | 13 +++++++++++++
+ 4 files changed, 58 insertions(+)
+
+diff --git a/include/uapi/sound/sof/tokens.h b/include/uapi/sound/sof/tokens.h
+index 8f996857fb24..28ef01a67765 100644
+--- a/include/uapi/sound/sof/tokens.h
++++ b/include/uapi/sound/sof/tokens.h
+@@ -114,4 +114,8 @@
+ #define SOF_TKN_IMX_ESAI_FIRST_TOKEN 1100
+ /* TODO: Add ESAI tokens */
+
++/* Led control for mute switches */
++#define SOF_TKN_MUTE_LED_USE 1300
++#define SOF_TKN_MUTE_LED_DIRECTION 1301
++
+ #endif
+diff --git a/sound/soc/sof/control.c b/sound/soc/sof/control.c
+index 2b8711eda362..b73d4587c5da 100644
+--- a/sound/soc/sof/control.c
++++ b/sound/soc/sof/control.c
+@@ -11,8 +11,37 @@
+ /* Mixer Controls */
+
+ #include <linux/pm_runtime.h>
++#include <linux/leds.h>
+ #include "sof-priv.h"
+
++static void update_mute_led(struct snd_sof_control *scontrol,
++ struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ unsigned int temp = 0;
++ unsigned int mask;
++ int i;
++
++ mask = 1U << snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
++
++ for (i = 0; i < scontrol->num_channels; i++) {
++ if (ucontrol->value.integer.value[i]) {
++ temp |= mask;
++ break;
++ }
++ }
++
++ if (temp == scontrol->led_ctl.led_value)
++ return;
++
++ scontrol->led_ctl.led_value = temp;
++
++ if (!scontrol->led_ctl.direction)
++ ledtrig_audio_set(LED_AUDIO_MUTE, temp ? LED_OFF : LED_ON);
++ else
++ ledtrig_audio_set(LED_AUDIO_MICMUTE, temp ? LED_OFF : LED_ON);
++}
++
+ static inline u32 mixer_to_ipc(unsigned int value, u32 *volume_map, int size)
+ {
+ if (value >= size)
+@@ -118,6 +147,9 @@ int snd_sof_switch_put(struct snd_kcontrol *kcontrol,
+ cdata->chanv[i].value = value;
+ }
+
++ if (scontrol->led_ctl.use_led)
++ update_mute_led(scontrol, kcontrol, ucontrol);
++
+ /* notify DSP of mixer updates */
+ if (pm_runtime_active(sdev->dev))
+ snd_sof_ipc_set_get_comp_data(sdev->ipc, scontrol,
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 44f789bf7fb0..5a11a8517fa5 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -15,6 +15,7 @@
+
+ #include <sound/hdaudio.h>
+ #include <sound/soc.h>
++#include <sound/control.h>
+
+ #include <sound/sof.h>
+ #include <sound/sof/stream.h> /* needs to be included before control.h */
+@@ -310,6 +311,12 @@ struct snd_sof_pcm {
+ bool prepared[2]; /* PCM_PARAMS set successfully */
+ };
+
++struct snd_sof_led_control {
++ unsigned int use_led;
++ unsigned int direction;
++ unsigned int led_value;
++};
++
+ /* ALSA SOF Kcontrol device */
+ struct snd_sof_control {
+ struct snd_sof_dev *sdev;
+@@ -324,6 +331,8 @@ struct snd_sof_control {
+ u32 *volume_table; /* volume table computed from tlv data*/
+
+ struct list_head list; /* list in sdev control list */
++
++ struct snd_sof_led_control led_ctl;
+ };
+
+ /* ASoC SOF DAPM widget */
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 32a70ffc149d..e150f53d2124 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -494,6 +494,11 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ }
+
+ out:
++ /* set up possible led control from mixer private data */
++ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
++ ARRAY_SIZE(led_tokens), mc->priv.array,
++ le32_to_cpu(mc->priv.size));
++
+ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+ scontrol->comp_id, scontrol->num_channels);
+
+@@ -840,6 +845,14 @@ static const struct sof_topology_token dmic_pdm_tokens[] = {
+ static const struct sof_topology_token hda_tokens[] = {
+ };
+
++/* Leds */
++static const struct sof_topology_token led_tokens[] = {
++ {SOF_TKN_MUTE_LED_USE, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32,
++ offsetof(struct snd_sof_led_control, use_led), 0},
++ {SOF_TKN_MUTE_LED_DIRECTION, SND_SOC_TPLG_TUPLE_TYPE_WORD,
++ get_token_u32, offsetof(struct snd_sof_led_control, direction), 0},
++};
++
+ static void sof_parse_uuid_tokens(struct snd_soc_component *scomp,
+ void *object,
+ const struct sof_topology_token *tokens,
+--
+2.20.1
+
+
+From 151d91920fd3e9626541fe9b3d2f6af16f765f8c Mon Sep 17 00:00:00 2001
+From: Daniel Baluta <daniel.baluta@nxp.com>
+Date: Tue, 8 Oct 2019 11:44:39 -0500
+Subject: [PATCH 031/130] ASoC: SOF: imx: Describe ESAI parameters to be sent
+ to DSP
+
+Introduce sof_ipc_dai_esai_params to keep information that
+we get from topology and we send to DSP FW.
+
+Also bump the ABI minor to reflect the changes on DSP FW.
+
+Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-6-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit b4be427683cf6debda331a5d6a4af34885851d19)
+Bugzilla: 1772498
+---
+ include/sound/sof/dai-imx.h | 34 +++++++++++++++++++++++++++++++++
+ include/sound/sof/dai.h | 2 ++
+ include/uapi/sound/sof/abi.h | 2 +-
+ include/uapi/sound/sof/tokens.h | 3 +--
+ 4 files changed, 38 insertions(+), 3 deletions(-)
+ create mode 100644 include/sound/sof/dai-imx.h
+
+diff --git a/include/sound/sof/dai-imx.h b/include/sound/sof/dai-imx.h
+new file mode 100644
+index 000000000000..e02fb0b0fae1
+--- /dev/null
++++ b/include/sound/sof/dai-imx.h
+@@ -0,0 +1,34 @@
++/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
++/*
++ * Copyright 2019 NXP
++ *
++ * Author: Daniel Baluta <daniel.baluta@nxp.com>
++ */
++
++#ifndef __INCLUDE_SOUND_SOF_DAI_IMX_H__
++#define __INCLUDE_SOUND_SOF_DAI_IMX_H__
++
++#include <sound/sof/header.h>
++
++/* ESAI Configuration Request - SOF_IPC_DAI_ESAI_CONFIG */
++struct sof_ipc_dai_esai_params {
++ struct sof_ipc_hdr hdr;
++
++ /* MCLK */
++ uint16_t reserved1;
++ uint16_t mclk_id;
++ uint32_t mclk_direction;
++
++ uint32_t mclk_rate; /* MCLK frequency in Hz */
++ uint32_t fsync_rate; /* FSYNC frequency in Hz */
++ uint32_t bclk_rate; /* BCLK frequency in Hz */
++
++ /* TDM */
++ uint32_t tdm_slots;
++ uint32_t rx_slots;
++ uint32_t tx_slots;
++ uint16_t tdm_slot_width;
++ uint16_t reserved2; /* alignment */
++} __packed;
++
++#endif
+diff --git a/include/sound/sof/dai.h b/include/sound/sof/dai.h
+index 0f1235022146..c229565767e5 100644
+--- a/include/sound/sof/dai.h
++++ b/include/sound/sof/dai.h
+@@ -11,6 +11,7 @@
+
+ #include <sound/sof/header.h>
+ #include <sound/sof/dai-intel.h>
++#include <sound/sof/dai-imx.h>
+
+ /*
+ * DAI Configuration.
+@@ -73,6 +74,7 @@ struct sof_ipc_dai_config {
+ struct sof_ipc_dai_dmic_params dmic;
+ struct sof_ipc_dai_hda_params hda;
+ struct sof_ipc_dai_alh_params alh;
++ struct sof_ipc_dai_esai_params esai;
+ };
+ } __packed;
+
+diff --git a/include/uapi/sound/sof/abi.h b/include/uapi/sound/sof/abi.h
+index a0fe0d4c4b66..ebfdc20ca081 100644
+--- a/include/uapi/sound/sof/abi.h
++++ b/include/uapi/sound/sof/abi.h
+@@ -26,7 +26,7 @@
+
+ /* SOF ABI version major, minor and patch numbers */
+ #define SOF_ABI_MAJOR 3
+-#define SOF_ABI_MINOR 10
++#define SOF_ABI_MINOR 11
+ #define SOF_ABI_PATCH 0
+
+ /* SOF ABI version number. Format within 32bit word is MMmmmppp */
+diff --git a/include/uapi/sound/sof/tokens.h b/include/uapi/sound/sof/tokens.h
+index 28ef01a67765..d65406f34361 100644
+--- a/include/uapi/sound/sof/tokens.h
++++ b/include/uapi/sound/sof/tokens.h
+@@ -111,8 +111,7 @@
+ /* TODO: Add SAI tokens */
+
+ /* ESAI */
+-#define SOF_TKN_IMX_ESAI_FIRST_TOKEN 1100
+-/* TODO: Add ESAI tokens */
++#define SOF_TKN_IMX_ESAI_MCLK_ID 1100
+
+ /* Led control for mute switches */
+ #define SOF_TKN_MUTE_LED_USE 1300
+--
+2.20.1
+
+
+From 631932d09b78a4b8bbc939342d52631749b3e790 Mon Sep 17 00:00:00 2001
+From: Daniel Baluta <daniel.baluta@nxp.com>
+Date: Tue, 8 Oct 2019 11:44:40 -0500
+Subject: [PATCH 032/130] ASoC: SOF: imx: Read ESAI parameters and send them to
+ DSP
+
+ESAI parameters are read for topology file, packed into
+sof_ipc_dai_esai_parms struct and then sent to DSP.
+
+Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-7-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit a4eff5f86c9c5e7d07d880bd86ce8faad19d7063)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pcm.c | 8 +++++
+ sound/soc/sof/topology.c | 69 ++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 75 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
+index 2b876d497447..b0f4217433e5 100644
+--- a/sound/soc/sof/pcm.c
++++ b/sound/soc/sof/pcm.c
+@@ -691,6 +691,14 @@ static int sof_pcm_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
+ case SOF_DAI_INTEL_ALH:
+ /* do nothing for ALH dai_link */
+ break;
++ case SOF_DAI_IMX_ESAI:
++ channels->min = dai->dai_config->esai.tdm_slots;
++ channels->max = dai->dai_config->esai.tdm_slots;
++
++ dev_dbg(sdev->dev,
++ "channels_min: %d channels_max: %d\n",
++ channels->min, channels->max);
++ break;
+ default:
+ dev_err(sdev->dev, "error: invalid DAI type %d\n",
+ dai->dai_config->type);
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index e150f53d2124..0adad3246652 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -804,6 +804,13 @@ static const struct sof_topology_token dmic_tokens[] = {
+
+ };
+
++/* ESAI */
++static const struct sof_topology_token esai_tokens[] = {
++ {SOF_TKN_IMX_ESAI_MCLK_ID,
++ SND_SOC_TPLG_TUPLE_TYPE_SHORT, get_token_u16,
++ offsetof(struct sof_ipc_dai_esai_params, mclk_id), 0},
++};
++
+ /*
+ * DMIC PDM Tokens
+ * SOF_TKN_INTEL_DMIC_PDM_CTRL_ID should be the first token
+@@ -2550,8 +2557,66 @@ static int sof_link_esai_load(struct snd_soc_component *scomp, int index,
+ struct snd_soc_tplg_hw_config *hw_config,
+ struct sof_ipc_dai_config *config)
+ {
+- /*TODO: Add implementation */
+- return 0;
++ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
++ struct snd_soc_tplg_private *private = &cfg->priv;
++ struct sof_ipc_reply reply;
++ u32 size = sizeof(*config);
++ int ret;
++
++ /* handle master/slave and inverted clocks */
++ sof_dai_set_format(hw_config, config);
++
++ /* init IPC */
++ memset(&config->esai, 0, sizeof(struct sof_ipc_dai_esai_params));
++ config->hdr.size = size;
++
++ ret = sof_parse_tokens(scomp, &config->esai, esai_tokens,
++ ARRAY_SIZE(esai_tokens), private->array,
++ le32_to_cpu(private->size));
++ if (ret != 0) {
++ dev_err(sdev->dev, "error: parse esai tokens failed %d\n",
++ le32_to_cpu(private->size));
++ return ret;
++ }
++
++ config->esai.mclk_rate = le32_to_cpu(hw_config->mclk_rate);
++ config->esai.bclk_rate = le32_to_cpu(hw_config->bclk_rate);
++ config->esai.fsync_rate = le32_to_cpu(hw_config->fsync_rate);
++ config->esai.mclk_direction = hw_config->mclk_direction;
++ config->esai.tdm_slots = le32_to_cpu(hw_config->tdm_slots);
++ config->esai.tdm_slot_width = le32_to_cpu(hw_config->tdm_slot_width);
++ config->esai.rx_slots = le32_to_cpu(hw_config->rx_slots);
++ config->esai.tx_slots = le32_to_cpu(hw_config->tx_slots);
++
++ dev_info(sdev->dev,
++ "tplg: config ESAI%d fmt 0x%x mclk %d width %d slots %d mclk id %d\n",
++ config->dai_index, config->format,
++ config->esai.mclk_rate, config->esai.tdm_slot_width,
++ config->esai.tdm_slots, config->esai.mclk_id);
++
++ if (config->esai.tdm_slots < 1 || config->esai.tdm_slots > 8) {
++ dev_err(sdev->dev, "error: invalid channel count for ESAI%d\n",
++ config->dai_index);
++ return -EINVAL;
++ }
++
++ /* send message to DSP */
++ ret = sof_ipc_tx_message(sdev->ipc,
++ config->hdr.cmd, config, size, &reply,
++ sizeof(reply));
++ if (ret < 0) {
++ dev_err(sdev->dev, "error: failed to set DAI config for ESAI%d\n",
++ config->dai_index);
++ return ret;
++ }
++
++ /* set config for all DAI's with name matching the link name */
++ ret = sof_set_dai_config(sdev, size, link, config);
++ if (ret < 0)
++ dev_err(sdev->dev, "error: failed to save DAI config for ESAI%d\n",
++ config->dai_index);
++
++ return ret;
+ }
+
+ static int sof_link_dmic_load(struct snd_soc_component *scomp, int index,
+--
+2.20.1
+
+
+From 78da07e36b7ae563f64def77a72dc02cf010cd8f Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 11 Oct 2019 11:43:09 -0500
+Subject: [PATCH 033/130] ASoC: SOF: Intel: byt: fix operator precedence
+ warnings
+
+Address cppcheck warnings
+
+sound/soc/sof/intel/byt.c:163:26: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ panic & SHIM_IPCX_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/byt.c:164:26: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
+ ^
+
+sound/soc/sof/intel/byt.c:167:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrx & SHIM_IMRX_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/byt.c:168:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
+ ^
+
+sound/soc/sof/intel/byt.c:171:27: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ status & SHIM_IPCD_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/byt.c:172:27: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ status & SHIM_IPCD_DONE ? "yes" : "no", status);
+ ^
+
+sound/soc/sof/intel/byt.c:175:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrd & SHIM_IMRD_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/byt.c:176:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
+ ^
+
+Fixes: 3a9e204d4e369 ("ASoC: SOF: Intel: Add context data to any IPC timeout.")
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191011164312.7988-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f9f618e7128e834db3f54d290a926c4a71104e02)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/byt.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
+index b2597ecfdc1c..07e5efe4945c 100644
+--- a/sound/soc/sof/intel/byt.c
++++ b/sound/soc/sof/intel/byt.c
+@@ -160,20 +160,20 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
+ imrd = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IMRD);
+ dev_err(sdev->dev,
+ "error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
+- panic & SHIM_IPCX_BUSY ? "yes" : "no",
+- panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
++ (panic & SHIM_IPCX_BUSY) ? "yes" : "no",
++ (panic & SHIM_IPCX_DONE) ? "yes" : "no", panic);
+ dev_err(sdev->dev,
+ "error: mask host: pending %s complete %s raw 0x%8.8x\n",
+- imrx & SHIM_IMRX_BUSY ? "yes" : "no",
+- imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
++ (imrx & SHIM_IMRX_BUSY) ? "yes" : "no",
++ (imrx & SHIM_IMRX_DONE) ? "yes" : "no", imrx);
+ dev_err(sdev->dev,
+ "error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
+- status & SHIM_IPCD_BUSY ? "yes" : "no",
+- status & SHIM_IPCD_DONE ? "yes" : "no", status);
++ (status & SHIM_IPCD_BUSY) ? "yes" : "no",
++ (status & SHIM_IPCD_DONE) ? "yes" : "no", status);
+ dev_err(sdev->dev,
+ "error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
+- imrd & SHIM_IMRD_BUSY ? "yes" : "no",
+- imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
++ (imrd & SHIM_IMRD_BUSY) ? "yes" : "no",
++ (imrd & SHIM_IMRD_DONE) ? "yes" : "no", imrd);
+
+ }
+
+--
+2.20.1
+
+
+From c1b2c6fecd44be2baa21f763e26a2a98d06708e6 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 11 Oct 2019 11:43:10 -0500
+Subject: [PATCH 034/130] ASoC: SOF: Intel: bdw: fix operator precedence
+ warnings
+
+Address cppcheck warnings
+
+sound/soc/sof/intel/bdw.c:265:26: style: Clarify calculation precedence
+for '&' and '?'. [clarifyCalculation]
+ panic & SHIM_IPCX_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/bdw.c:266:26: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
+ ^
+
+sound/soc/sof/intel/bdw.c:269:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrx & SHIM_IMRX_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/bdw.c:270:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
+ ^
+
+sound/soc/sof/intel/bdw.c:273:27: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ status & SHIM_IPCD_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/bdw.c:274:27: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ status & SHIM_IPCD_DONE ? "yes" : "no", status);
+ ^
+
+sound/soc/sof/intel/bdw.c:277:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrd & SHIM_IMRD_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/bdw.c:278:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
+ ^
+
+Fixes: 3a9e204d4e369 ("ASoC: SOF: Intel: Add context data to any IPC timeout.")
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191011164312.7988-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7ad03a2c848f6fb0a8dea656c9c161929696878e)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/bdw.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
+index f395d0638876..bf961a8798a7 100644
+--- a/sound/soc/sof/intel/bdw.c
++++ b/sound/soc/sof/intel/bdw.c
+@@ -262,20 +262,20 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
+ imrd = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IMRD);
+ dev_err(sdev->dev,
+ "error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
+- panic & SHIM_IPCX_BUSY ? "yes" : "no",
+- panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
++ (panic & SHIM_IPCX_BUSY) ? "yes" : "no",
++ (panic & SHIM_IPCX_DONE) ? "yes" : "no", panic);
+ dev_err(sdev->dev,
+ "error: mask host: pending %s complete %s raw 0x%8.8x\n",
+- imrx & SHIM_IMRX_BUSY ? "yes" : "no",
+- imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
++ (imrx & SHIM_IMRX_BUSY) ? "yes" : "no",
++ (imrx & SHIM_IMRX_DONE) ? "yes" : "no", imrx);
+ dev_err(sdev->dev,
+ "error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
+- status & SHIM_IPCD_BUSY ? "yes" : "no",
+- status & SHIM_IPCD_DONE ? "yes" : "no", status);
++ (status & SHIM_IPCD_BUSY) ? "yes" : "no",
++ (status & SHIM_IPCD_DONE) ? "yes" : "no", status);
+ dev_err(sdev->dev,
+ "error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
+- imrd & SHIM_IMRD_BUSY ? "yes" : "no",
+- imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
++ (imrd & SHIM_IMRD_BUSY) ? "yes" : "no",
++ (imrd & SHIM_IMRD_DONE) ? "yes" : "no", imrd);
+ }
+
+ /*
+--
+2.20.1
+
+
+From 2a49b432e13f3820663d2a6210b1782ee17b0348 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 11 Oct 2019 11:43:11 -0500
+Subject: [PATCH 035/130] ASoC: SOF: topology: remove always-true redundant
+ test
+
+Address cppcheck warning:
+
+sound/soc/sof/topology.c:2322:6: style: Condition 'pcm' is always true
+[knownConditionTrueFalse]
+ if (pcm) {
+ ^
+
+sound/soc/sof/topology.c:2311:6: note: Assuming that condition '!pcm'
+is not redundant
+ if (!pcm)
+ ^
+
+sound/soc/sof/topology.c:2322:6: note: Condition 'pcm' is always true
+ if (pcm) {
+ ^
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191011164312.7988-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 494e8f65da24d550a5e7c6a85b9433ffb181705c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 0adad3246652..b451e8df77d3 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -2309,10 +2309,9 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
+ spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].comp_id = COMP_ID_UNASSIGNED;
+ spcm->stream[SNDRV_PCM_STREAM_CAPTURE].comp_id = COMP_ID_UNASSIGNED;
+
+- if (pcm) {
+- spcm->pcm = *pcm;
+- dev_dbg(sdev->dev, "tplg: load pcm %s\n", pcm->dai_name);
+- }
++ spcm->pcm = *pcm;
++ dev_dbg(sdev->dev, "tplg: load pcm %s\n", pcm->dai_name);
++
+ dai_drv->dobj.private = spcm;
+ list_add(&spcm->list, &sdev->pcm_list);
+
+--
+2.20.1
+
+
+From 3c7ba2805c8c4af4e61d2f40ca078fc0fdc9d17b Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 11 Oct 2019 11:43:12 -0500
+Subject: [PATCH 036/130] ASoC: SOF: topology: check errors when parsing LED
+ tokens
+
+sof_parse_tokens() returns a value that is checked on every call
+except for LED tokens, fix with explicit test.
+
+Detected with cppcheck warning:
+
+sound/soc/sof/topology.c:973:6: style: Variable 'ret' is assigned a
+value that is never used. [unreadVariable]
+ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
+ ^
+
+Fixes: 5d43001ae4360 ("ASoC: SOF: acpi led support for switch controls")
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191011164312.7988-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8a3ab38c36926ddbda3d2a3086c0a741fa175cff)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index b451e8df77d3..8032bb8a709c 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -498,6 +498,11 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
+ ARRAY_SIZE(led_tokens), mc->priv.array,
+ le32_to_cpu(mc->priv.size));
++ if (ret != 0) {
++ dev_err(sdev->dev, "error: parse led tokens failed %d\n",
++ le32_to_cpu(mc->priv.size));
++ return ret;
++ }
+
+ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+ scontrol->comp_id, scontrol->num_channels);
+--
+2.20.1
+
+
+From 3450e41ea1124a2ee3a26849cc00a99ac8df8a67 Mon Sep 17 00:00:00 2001
+From: YueHaibing <yuehaibing@huawei.com>
+Date: Mon, 14 Oct 2019 17:13:08 +0800
+Subject: [PATCH 037/130] ASoC: SOF: Fix randbuild error
+
+When LEDS_TRIGGER_AUDIO is m and SND_SOC_SOF is y,
+
+sound/soc/sof/control.o: In function `snd_sof_switch_put':
+control.c:(.text+0x587): undefined reference to `ledtrig_audio_set'
+control.c:(.text+0x593): undefined reference to `ledtrig_audio_set'
+
+Reported-by: Hulk Robot <hulkci@huawei.com>
+Fixes: 5d43001ae436 ("ASoC: SOF: acpi led support for switch controls")
+Signed-off-by: YueHaibing <yuehaibing@huawei.com>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191014091308.23688-1-yuehaibing@huawei.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 9899a7a869935c4c93247b290ac7a70e0deab202)
+Bugzilla: 1772498
+---
+ sound/soc/sof/control.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sound/soc/sof/control.c b/sound/soc/sof/control.c
+index b73d4587c5da..7baf7f1507c3 100644
+--- a/sound/soc/sof/control.c
++++ b/sound/soc/sof/control.c
+@@ -36,10 +36,12 @@ static void update_mute_led(struct snd_sof_control *scontrol,
+
+ scontrol->led_ctl.led_value = temp;
+
++#if IS_REACHABLE(CONFIG_LEDS_TRIGGER_AUDIO)
+ if (!scontrol->led_ctl.direction)
+ ledtrig_audio_set(LED_AUDIO_MUTE, temp ? LED_OFF : LED_ON);
+ else
+ ledtrig_audio_set(LED_AUDIO_MICMUTE, temp ? LED_OFF : LED_ON);
++#endif
+ }
+
+ static inline u32 mixer_to_ipc(unsigned int value, u32 *volume_map, int size)
+--
+2.20.1
+
+
+From 46c0429ba78df9619b0c845dd0377e812cc0ceca Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 22 Oct 2019 14:28:43 -0500
+Subject: [PATCH 038/130] ASoC: SOF: Intel: hda-loader: improve error handling
+
+If a ROM timeout is detected, we still stop the DMA but will return
+the initial error should the DMA stop also fail.
+
+Likewise the cleanup is handled regardless of the status, but we
+return the initial error.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022192844.21022-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 76dc6a2b312d15c91ff4b4d171e98cdc73ba3745)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-loader.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-loader.c b/sound/soc/sof/intel/hda-loader.c
+index 65c2af3fcaab..7956dbf5be88 100644
+--- a/sound/soc/sof/intel/hda-loader.c
++++ b/sound/soc/sof/intel/hda-loader.c
+@@ -253,10 +253,16 @@ static int cl_copy_fw(struct snd_sof_dev *sdev, struct hdac_ext_stream *stream)
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_BASEFW_TIMEOUT_US);
+
++ /*
++ * even in case of errors we still need to stop the DMAs,
++ * but we return the initial error should the DMA stop also fail
++ */
++
+ ret = cl_trigger(sdev, stream, SNDRV_PCM_TRIGGER_STOP);
+ if (ret < 0) {
+ dev_err(sdev->dev, "error: DMA trigger stop failed\n");
+- return ret;
++ if (!status)
++ status = ret;
+ }
+
+ return status;
+@@ -341,13 +347,15 @@ int hda_dsp_cl_boot_firmware(struct snd_sof_dev *sdev)
+ /*
+ * Perform codeloader stream cleanup.
+ * This should be done even if firmware loading fails.
++ * If the cleanup also fails, we return the initial error
+ */
+ ret1 = cl_cleanup(sdev, &sdev->dmab, stream);
+ if (ret1 < 0) {
+ dev_err(sdev->dev, "error: Code loader DSP cleanup failed\n");
+
+ /* set return value to indicate cleanup failure */
+- ret = ret1;
++ if (!ret)
++ ret = ret1;
+ }
+
+ /*
+--
+2.20.1
+
+
+From c2f63a4a75f4bd02ec46b58dee7468acc0771576 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 22 Oct 2019 14:28:44 -0500
+Subject: [PATCH 039/130] ASoC: SOF: Intel: hda: add dev_err() traces for
+ snd_sof_dsp_read_poll_timeout()
+
+Such traces should be extremely rare but extremely useful for debug.
+
+Report errors for all calls to sdn_sof_dsp_read_poll_timeout(), but
+only on negative values for consistency.
+
+Add traces that enable each timeout to be uniquely identified.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022192844.21022-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 6a414489e0f3309a221f26b3d11c19d1a96a3635)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 30 +++++++++++++++++++++++++++---
+ sound/soc/sof/intel/hda-loader.c | 13 ++++++++++++-
+ sound/soc/sof/intel/hda-stream.c | 24 ++++++++++++++++++++----
+ 3 files changed, 59 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index fb55a3c5afd0..3ea401646e0c 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -42,6 +42,12 @@ int hda_dsp_core_reset_enter(struct snd_sof_dev *sdev, unsigned int core_mask)
+ ((adspcs & reset) == reset),
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_RESET_TIMEOUT_US);
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on HDA_DSP_REG_ADSPCS read\n",
++ __func__);
++ return ret;
++ }
+
+ /* has core entered reset ? */
+ adspcs = snd_sof_dsp_read(sdev, HDA_DSP_BAR,
+@@ -77,6 +83,13 @@ int hda_dsp_core_reset_leave(struct snd_sof_dev *sdev, unsigned int core_mask)
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_RESET_TIMEOUT_US);
+
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on HDA_DSP_REG_ADSPCS read\n",
++ __func__);
++ return ret;
++ }
++
+ /* has core left reset ? */
+ adspcs = snd_sof_dsp_read(sdev, HDA_DSP_BAR,
+ HDA_DSP_REG_ADSPCS);
+@@ -151,8 +164,12 @@ int hda_dsp_core_power_up(struct snd_sof_dev *sdev, unsigned int core_mask)
+ (adspcs & cpa) == cpa,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_RESET_TIMEOUT_US);
+- if (ret < 0)
+- dev_err(sdev->dev, "error: timeout on core powerup\n");
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on HDA_DSP_REG_ADSPCS read\n",
++ __func__);
++ return ret;
++ }
+
+ /* did core power up ? */
+ adspcs = snd_sof_dsp_read(sdev, HDA_DSP_BAR,
+@@ -171,17 +188,24 @@ int hda_dsp_core_power_up(struct snd_sof_dev *sdev, unsigned int core_mask)
+ int hda_dsp_core_power_down(struct snd_sof_dev *sdev, unsigned int core_mask)
+ {
+ u32 adspcs;
++ int ret;
+
+ /* update bits */
+ snd_sof_dsp_update_bits_unlocked(sdev, HDA_DSP_BAR,
+ HDA_DSP_REG_ADSPCS,
+ HDA_DSP_ADSPCS_SPA_MASK(core_mask), 0);
+
+- return snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR,
++ ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR,
+ HDA_DSP_REG_ADSPCS, adspcs,
+ !(adspcs & HDA_DSP_ADSPCS_SPA_MASK(core_mask)),
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_PD_TIMEOUT * USEC_PER_MSEC);
++ if (ret < 0)
++ dev_err(sdev->dev,
++ "error: %s: timeout on HDA_DSP_REG_ADSPCS read\n",
++ __func__);
++
++ return ret;
+ }
+
+ bool hda_dsp_core_is_enabled(struct snd_sof_dev *sdev,
+diff --git a/sound/soc/sof/intel/hda-loader.c b/sound/soc/sof/intel/hda-loader.c
+index 7956dbf5be88..b1783360fe10 100644
+--- a/sound/soc/sof/intel/hda-loader.c
++++ b/sound/soc/sof/intel/hda-loader.c
+@@ -126,7 +126,8 @@ static int cl_dsp_init(struct snd_sof_dev *sdev, const void *fwdata,
+ HDA_DSP_INIT_TIMEOUT_US);
+
+ if (ret < 0) {
+- dev_err(sdev->dev, "error: waiting for HIPCIE done\n");
++ dev_err(sdev->dev, "error: %s: timeout for HIPCIE done\n",
++ __func__);
+ goto err;
+ }
+
+@@ -152,6 +153,10 @@ static int cl_dsp_init(struct snd_sof_dev *sdev, const void *fwdata,
+ if (!ret)
+ return 0;
+
++ dev_err(sdev->dev,
++ "error: %s: timeout HDA_DSP_SRAM_REG_ROM_STATUS read\n",
++ __func__);
++
+ err:
+ hda_dsp_dump(sdev, SOF_DBG_REGS | SOF_DBG_PCI | SOF_DBG_MBOX);
+ hda_dsp_core_reset_power_down(sdev, chip->cores_mask);
+@@ -258,6 +263,12 @@ static int cl_copy_fw(struct snd_sof_dev *sdev, struct hdac_ext_stream *stream)
+ * but we return the initial error should the DMA stop also fail
+ */
+
++ if (status < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout HDA_DSP_SRAM_REG_ROM_STATUS read\n",
++ __func__);
++ }
++
+ ret = cl_trigger(sdev, stream, SNDRV_PCM_TRIGGER_STOP);
+ if (ret < 0) {
+ dev_err(sdev->dev, "error: DMA trigger stop failed\n");
+diff --git a/sound/soc/sof/intel/hda-stream.c b/sound/soc/sof/intel/hda-stream.c
+index 0c11fceb28a7..29ab43281670 100644
+--- a/sound/soc/sof/intel/hda-stream.c
++++ b/sound/soc/sof/intel/hda-stream.c
+@@ -275,8 +275,12 @@ int hda_dsp_stream_trigger(struct snd_sof_dev *sdev,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_STREAM_RUN_TIMEOUT);
+
+- if (ret)
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: cmd %d: timeout on STREAM_SD_OFFSET read\n",
++ __func__, cmd);
+ return ret;
++ }
+
+ hstream->running = true;
+ break;
+@@ -294,8 +298,12 @@ int hda_dsp_stream_trigger(struct snd_sof_dev *sdev,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_STREAM_RUN_TIMEOUT);
+
+- if (ret)
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: cmd %d: timeout on STREAM_SD_OFFSET read\n",
++ __func__, cmd);
+ return ret;
++ }
+
+ snd_sof_dsp_write(sdev, HDA_DSP_HDA_BAR, sd_offset +
+ SOF_HDA_ADSP_REG_CL_SD_STS,
+@@ -356,8 +364,12 @@ int hda_dsp_stream_hw_params(struct snd_sof_dev *sdev,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_STREAM_RUN_TIMEOUT);
+
+- if (ret)
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on STREAM_SD_OFFSET read1\n",
++ __func__);
+ return ret;
++ }
+
+ snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
+ sd_offset + SOF_HDA_ADSP_REG_CL_SD_STS,
+@@ -418,8 +430,12 @@ int hda_dsp_stream_hw_params(struct snd_sof_dev *sdev,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_STREAM_RUN_TIMEOUT);
+
+- if (ret)
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on STREAM_SD_OFFSET read2\n",
++ __func__);
+ return ret;
++ }
+
+ snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
+ sd_offset + SOF_HDA_ADSP_REG_CL_SD_STS,
+--
+2.20.1
+
+
+From ae6f9d27eca6aa21c2f47b7d22dacc72bc6ff71d Mon Sep 17 00:00:00 2001
+From: Pan Xiuli <xiuli.pan@linux.intel.com>
+Date: Tue, 22 Oct 2019 14:47:05 -0500
+Subject: [PATCH 040/130] ASoC: SOF: Intel: initial support to JasperLake.
+
+Add Kconfig, PCI ID and chip info for JSL platform.
+The DSP only has 2 cores for this platform.
+
+Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022194705.23347-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 6fd9903527bf103167004022a0199b8fac1b8b29)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/Kconfig | 16 ++++++++++++++++
+ sound/soc/sof/intel/cnl.c | 17 +++++++++++++++++
+ sound/soc/sof/intel/hda.h | 1 +
+ sound/soc/sof/sof-pci-dev.c | 22 ++++++++++++++++++++++
+ 4 files changed, 56 insertions(+)
+
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index 1be28581c328..aac8d5deba3d 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -29,6 +29,7 @@ config SND_SOC_SOF_INTEL_PCI
+ select SND_SOC_SOF_COMETLAKE_H if SND_SOC_SOF_COMETLAKE_H_SUPPORT
+ select SND_SOC_SOF_TIGERLAKE if SND_SOC_SOF_TIGERLAKE_SUPPORT
+ select SND_SOC_SOF_ELKHARTLAKE if SND_SOC_SOF_ELKHARTLAKE_SUPPORT
++ select SND_SOC_SOF_JASPERLAKE if SND_SOC_SOF_JASPERLAKE_SUPPORT
+ help
+ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+@@ -244,6 +245,21 @@ config SND_SOC_SOF_ELKHARTLAKE
+ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
++config SND_SOC_SOF_JASPERLAKE_SUPPORT
++ bool "SOF support for JasperLake"
++ help
++ This adds support for Sound Open Firmware for Intel(R) platforms
++ using the JasperLake processors.
++ Say Y if you have such a device.
++ If unsure select "N".
++
++config SND_SOC_SOF_JASPERLAKE
++ tristate
++ select SND_SOC_SOF_HDA_COMMON
++ help
++ This option is not user-selectable but automagically handled by
++ 'select' statements at a higher level
++
+ config SND_SOC_SOF_HDA_COMMON
+ tristate
+ select SND_SOC_SOF_INTEL_COMMON
+diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
+index 4ddd73762d81..5b97bdfba823 100644
+--- a/sound/soc/sof/intel/cnl.c
++++ b/sound/soc/sof/intel/cnl.c
+@@ -327,3 +327,20 @@ const struct sof_intel_dsp_desc ehl_chip_info = {
+ .ssp_base_offset = CNL_SSP_BASE_OFFSET,
+ };
+ EXPORT_SYMBOL(ehl_chip_info);
++
++const struct sof_intel_dsp_desc jsl_chip_info = {
++ /* Jasperlake */
++ .cores_num = 2,
++ .init_core_mask = 1,
++ .cores_mask = HDA_DSP_CORE_MASK(0) |
++ HDA_DSP_CORE_MASK(1),
++ .ipc_req = CNL_DSP_REG_HIPCIDR,
++ .ipc_req_mask = CNL_DSP_REG_HIPCIDR_BUSY,
++ .ipc_ack = CNL_DSP_REG_HIPCIDA,
++ .ipc_ack_mask = CNL_DSP_REG_HIPCIDA_DONE,
++ .ipc_ctl = CNL_DSP_REG_HIPCCTL,
++ .rom_init_timeout = 300,
++ .ssp_count = ICL_SSP_COUNT,
++ .ssp_base_offset = CNL_SSP_BASE_OFFSET,
++};
++EXPORT_SYMBOL(jsl_chip_info);
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 23e430d3e056..ea02bf40cb25 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -604,5 +604,6 @@ extern const struct sof_intel_dsp_desc skl_chip_info;
+ extern const struct sof_intel_dsp_desc icl_chip_info;
+ extern const struct sof_intel_dsp_desc tgl_chip_info;
+ extern const struct sof_intel_dsp_desc ehl_chip_info;
++extern const struct sof_intel_dsp_desc jsl_chip_info;
+
+ #endif
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index be5a8da504c5..e0b150f29e81 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -246,6 +246,24 @@ static const struct sof_dev_desc ehl_desc = {
+ };
+ #endif
+
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_JASPERLAKE)
++static const struct sof_dev_desc jsl_desc = {
++ .machines = snd_soc_acpi_intel_jsl_machines,
++ .resindex_lpe_base = 0,
++ .resindex_pcicfg_base = -1,
++ .resindex_imr_base = -1,
++ .irqindex_host_ipc = -1,
++ .resindex_dma_base = -1,
++ .chip_info = &jsl_chip_info,
++ .default_fw_path = "intel/sof",
++ .default_tplg_path = "intel/sof-tplg",
++ .nocodec_fw_filename = "sof-jsl.ri",
++ .nocodec_tplg_filename = "sof-jsl-nocodec.tplg",
++ .ops = &sof_cnl_ops,
++ .arch_ops = &sof_xtensa_arch_ops
++};
++#endif
++
+ static const struct dev_pm_ops sof_pci_pm = {
+ SET_SYSTEM_SLEEP_PM_OPS(snd_sof_suspend, snd_sof_resume)
+ SET_RUNTIME_PM_OPS(snd_sof_runtime_suspend, snd_sof_runtime_resume,
+@@ -429,6 +447,10 @@ static const struct pci_device_id sof_pci_ids[] = {
+ { PCI_DEVICE(0x8086, 0x34C8),
+ .driver_data = (unsigned long)&icl_desc},
+ #endif
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_JASPERLAKE)
++ { PCI_DEVICE(0x8086, 0x38c8),
++ .driver_data = (unsigned long)&jsl_desc},
++#endif
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP)
+ { PCI_DEVICE(0x8086, 0x02c8),
+ .driver_data = (unsigned long)&cml_desc},
+--
+2.20.1
+
+
+From 7de4b3424a30b11a2ea4d63a6c6d57c9407bf771 Mon Sep 17 00:00:00 2001
+From: Pan Xiuli <xiuli.pan@linux.intel.com>
+Date: Tue, 22 Oct 2019 14:47:04 -0500
+Subject: [PATCH 041/130] ASoC: Intel: common: add ACPI matching tables for JSL
+
+There are no upstream machine drivers just yet so just add dummy table
+for compilation in nocodec-mode.
+
+Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022194705.23347-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4f0637eae56f02ef648de5ed839d572259d396e9)
+Bugzilla: 1772498
+---
+ include/sound/soc-acpi-intel-match.h | 1 +
+ sound/soc/intel/common/Makefile | 1 +
+ .../intel/common/soc-acpi-intel-jsl-match.c | 18 ++++++++++++++++++
+ 3 files changed, 20 insertions(+)
+ create mode 100644 sound/soc/intel/common/soc-acpi-intel-jsl-match.c
+
+diff --git a/include/sound/soc-acpi-intel-match.h b/include/sound/soc-acpi-intel-match.h
+index 6c9929abd90b..4e44782862df 100644
+--- a/include/sound/soc-acpi-intel-match.h
++++ b/include/sound/soc-acpi-intel-match.h
+@@ -27,6 +27,7 @@ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_ehl_machines[];
++extern struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[];
+
+ /*
+ * generic table used for HDA codec-based platforms, possibly with
+diff --git a/sound/soc/intel/common/Makefile b/sound/soc/intel/common/Makefile
+index 18d9630ae9a2..eafe95ead49b 100644
+--- a/sound/soc/intel/common/Makefile
++++ b/sound/soc/intel/common/Makefile
+@@ -9,6 +9,7 @@ snd-soc-acpi-intel-match-objs := soc-acpi-intel-byt-match.o soc-acpi-intel-cht-m
+ soc-acpi-intel-bxt-match.o soc-acpi-intel-glk-match.o \
+ soc-acpi-intel-cnl-match.o soc-acpi-intel-icl-match.o \
+ soc-acpi-intel-tgl-match.o soc-acpi-intel-ehl-match.o \
++ soc-acpi-intel-jsl-match.o \
+ soc-acpi-intel-hda-match.o
+
+ obj-$(CONFIG_SND_SOC_INTEL_SST) += snd-soc-sst-dsp.o snd-soc-sst-ipc.o
+diff --git a/sound/soc/intel/common/soc-acpi-intel-jsl-match.c b/sound/soc/intel/common/soc-acpi-intel-jsl-match.c
+new file mode 100644
+index 000000000000..1c68a04f0c6e
+--- /dev/null
++++ b/sound/soc/intel/common/soc-acpi-intel-jsl-match.c
+@@ -0,0 +1,18 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * soc-apci-intel-jsl-match.c - tables and support for JSL ACPI enumeration.
++ *
++ * Copyright (c) 2019, Intel Corporation.
++ *
++ */
++
++#include <sound/soc-acpi.h>
++#include <sound/soc-acpi-intel-match.h>
++
++struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[] = {
++ {},
++};
++EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_jsl_machines);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("Intel Common ACPI Match module");
+--
+2.20.1
+
+
+From a8fbd7629399a706abe19bbad51f2120a60f5f56 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Thu, 24 Oct 2019 16:03:17 -0500
+Subject: [PATCH 042/130] ASoC: SOF: define INFO_ flags in dsp_ops
+
+Currently the INFO_ flags such as PAUSE/NO_PERIOD_WAKEUP are defined
+in the SOF PCM core, which doesn't scale. To account for platform
+variations, these flags need to be set in DSP ops.
+
+This patch only moves the definitions and does not change any
+functionality.
+
+Reviewed-by: Jaska Uimonen <jaska.uimonen@intel.com>
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191024210318.30068-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 27e322fabd508ba73ced625fc41f0b7ceee26416)
+Bugzilla: 1772498
+---
+ sound/soc/sof/imx/imx8.c | 7 +++++++
+ sound/soc/sof/intel/apl.c | 7 +++++++
+ sound/soc/sof/intel/bdw.c | 9 ++++++++-
+ sound/soc/sof/intel/byt.c | 21 +++++++++++++++++++++
+ sound/soc/sof/intel/cnl.c | 7 +++++++
+ sound/soc/sof/pcm.c | 8 +++-----
+ sound/soc/sof/sof-priv.h | 3 +++
+ 7 files changed, 56 insertions(+), 6 deletions(-)
+
+diff --git a/sound/soc/sof/imx/imx8.c b/sound/soc/sof/imx/imx8.c
+index 2a22b18e5ec0..cfefcfd92798 100644
+--- a/sound/soc/sof/imx/imx8.c
++++ b/sound/soc/sof/imx/imx8.c
+@@ -388,6 +388,13 @@ struct snd_sof_dsp_ops sof_imx8_ops = {
+ /* DAI drivers */
+ .drv = imx8_dai,
+ .num_drv = 1, /* we have only 1 ESAI interface on i.MX8 */
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP
+ };
+ EXPORT_SYMBOL(sof_imx8_ops);
+
+diff --git a/sound/soc/sof/intel/apl.c b/sound/soc/sof/intel/apl.c
+index 8dc7a5558da4..15d26e8d90a9 100644
+--- a/sound/soc/sof/intel/apl.c
++++ b/sound/soc/sof/intel/apl.c
+@@ -97,6 +97,13 @@ const struct snd_sof_dsp_ops sof_apl_ops = {
+ .runtime_resume = hda_dsp_runtime_resume,
+ .runtime_idle = hda_dsp_runtime_idle,
+ .set_hw_params_upon_resume = hda_dsp_set_hw_params_upon_resume,
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_apl_ops);
+
+diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
+index bf961a8798a7..7b4cd1f456bf 100644
+--- a/sound/soc/sof/intel/bdw.c
++++ b/sound/soc/sof/intel/bdw.c
+@@ -591,7 +591,14 @@ const struct snd_sof_dsp_ops sof_bdw_ops = {
+
+ /* DAI drivers */
+ .drv = bdw_dai,
+- .num_drv = ARRAY_SIZE(bdw_dai)
++ .num_drv = ARRAY_SIZE(bdw_dai),
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_bdw_ops);
+
+diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
+index 07e5efe4945c..62edb959f1fc 100644
+--- a/sound/soc/sof/intel/byt.c
++++ b/sound/soc/sof/intel/byt.c
+@@ -532,6 +532,13 @@ const struct snd_sof_dsp_ops sof_tng_ops = {
+ /* DAI drivers */
+ .drv = byt_dai,
+ .num_drv = 3, /* we have only 3 SSPs on byt*/
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_tng_ops);
+
+@@ -693,6 +700,13 @@ const struct snd_sof_dsp_ops sof_byt_ops = {
+ /* DAI drivers */
+ .drv = byt_dai,
+ .num_drv = 3, /* we have only 3 SSPs on byt*/
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_byt_ops);
+
+@@ -753,6 +767,13 @@ const struct snd_sof_dsp_ops sof_cht_ops = {
+ .drv = byt_dai,
+ /* all 6 SSPs may be available for cherrytrail */
+ .num_drv = ARRAY_SIZE(byt_dai),
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_cht_ops);
+
+diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
+index 5b97bdfba823..e9cdcc040fb5 100644
+--- a/sound/soc/sof/intel/cnl.c
++++ b/sound/soc/sof/intel/cnl.c
+@@ -255,6 +255,13 @@ const struct snd_sof_dsp_ops sof_cnl_ops = {
+ .runtime_resume = hda_dsp_runtime_resume,
+ .runtime_idle = hda_dsp_runtime_idle,
+ .set_hw_params_upon_resume = hda_dsp_set_hw_params_upon_resume,
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_cnl_ops);
+
+diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
+index b0f4217433e5..b33928e1385b 100644
+--- a/sound/soc/sof/pcm.c
++++ b/sound/soc/sof/pcm.c
+@@ -435,6 +435,7 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
+ struct snd_soc_component *component =
+ snd_soc_rtdcom_lookup(rtd, DRV_NAME);
+ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(component);
++ const struct snd_sof_dsp_ops *ops = sof_ops(sdev);
+ struct snd_sof_pcm *spcm;
+ struct snd_soc_tplg_stream_caps *caps;
+ int ret;
+@@ -464,11 +465,8 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
+ le32_to_cpu(caps->period_size_min));
+
+ /* set runtime config */
+- runtime->hw.info = SNDRV_PCM_INFO_MMAP |
+- SNDRV_PCM_INFO_MMAP_VALID |
+- SNDRV_PCM_INFO_INTERLEAVED |
+- SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP;
++ runtime->hw.info = ops->hw_info; /* platform-specific */
++
+ runtime->hw.formats = le64_to_cpu(caps->formats);
+ runtime->hw.period_bytes_min = le32_to_cpu(caps->period_size_min);
+ runtime->hw.period_bytes_max = le32_to_cpu(caps->period_size_max);
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 5a11a8517fa5..2d40de5ee285 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -211,6 +211,9 @@ struct snd_sof_dsp_ops {
+ /* DAI ops */
+ struct snd_soc_dai_driver *drv;
+ int num_drv;
++
++ /* ALSA HW info flags, will be stored in snd_pcm_runtime.hw.info */
++ u32 hw_info;
+ };
+
+ /* DSP architecture specific callbacks for oops and stack dumps */
+--
+2.20.1
+
+
+From 67594879a9d4b17f5510ae384b2a7ed77e6d05cc Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Thu, 24 Oct 2019 16:03:18 -0500
+Subject: [PATCH 043/130] ASoC: SOF: Intel: only support INFO_BATCH for legacy
+ platforms
+
+The current position update is not precise enough for PulseAudio to
+work reliably with the timer-based scheduling on Baytrail,
+Cherrytrail, Broadwell.
+
+Disable the NO_PERIOD_WAKEUP capability and use BATCH to signal that
+the position is only reliable and updated during period_elapsed
+events.
+
+This will be reverted when the firmware provides a more accurate
+position for those platforms.
+
+Reviewed-by: Jaska Uimonen <jaska.uimonen@intel.com>
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191024210318.30068-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4c02a7bd43e22f4de53ad55b94d24e4388f712f0)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/bdw.c | 2 +-
+ sound/soc/sof/intel/byt.c | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
+index 7b4cd1f456bf..141dad554764 100644
+--- a/sound/soc/sof/intel/bdw.c
++++ b/sound/soc/sof/intel/bdw.c
+@@ -598,7 +598,7 @@ const struct snd_sof_dsp_ops sof_bdw_ops = {
+ SNDRV_PCM_INFO_MMAP_VALID |
+ SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
++ SNDRV_PCM_INFO_BATCH,
+ };
+ EXPORT_SYMBOL(sof_bdw_ops);
+
+diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
+index 62edb959f1fc..2abf80b3eb52 100644
+--- a/sound/soc/sof/intel/byt.c
++++ b/sound/soc/sof/intel/byt.c
+@@ -538,7 +538,7 @@ const struct snd_sof_dsp_ops sof_tng_ops = {
+ SNDRV_PCM_INFO_MMAP_VALID |
+ SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
++ SNDRV_PCM_INFO_BATCH,
+ };
+ EXPORT_SYMBOL(sof_tng_ops);
+
+@@ -706,7 +706,7 @@ const struct snd_sof_dsp_ops sof_byt_ops = {
+ SNDRV_PCM_INFO_MMAP_VALID |
+ SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
++ SNDRV_PCM_INFO_BATCH,
+ };
+ EXPORT_SYMBOL(sof_byt_ops);
+
+@@ -773,7 +773,7 @@ const struct snd_sof_dsp_ops sof_cht_ops = {
+ SNDRV_PCM_INFO_MMAP_VALID |
+ SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
++ SNDRV_PCM_INFO_BATCH,
+ };
+ EXPORT_SYMBOL(sof_cht_ops);
+
+--
+2.20.1
+
+
+From af01764721df770ee773faae776429901a9614fe Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Mon, 28 Oct 2019 18:33:29 +0100
+Subject: [PATCH 044/130] ASoC: SOF - remove the dead code (skylake/kabylake)
+
+Appearently the CONFIG_SND_SOC_SOF_KABYLAKE and CONFIG_SND_SOC_SOF_SKYLAKE
+options are not present in Kconfig and 'struct snd_sof_dsp_ops sof_skl_ops'
+is not declared in the code, too.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191028173329.29538-1-perex@perex.cz
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c3ad1092e1069f27d0ca110dcaada8a5435ea3e0)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda.h | 1 -
+ sound/soc/sof/sof-pci-dev.c | 44 -------------------------------------
+ 2 files changed, 45 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index ea02bf40cb25..8e03d876a0ac 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -596,7 +596,6 @@ extern struct snd_soc_dai_driver skl_dai[];
+ */
+ extern const struct snd_sof_dsp_ops sof_apl_ops;
+ extern const struct snd_sof_dsp_ops sof_cnl_ops;
+-extern const struct snd_sof_dsp_ops sof_skl_ops;
+
+ extern const struct sof_intel_dsp_desc apl_chip_info;
+ extern const struct sof_intel_dsp_desc cnl_chip_info;
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index e0b150f29e81..067acf389af7 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -174,42 +174,6 @@ static const struct sof_dev_desc icl_desc = {
+ };
+ #endif
+
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_SKYLAKE)
+-static const struct sof_dev_desc skl_desc = {
+- .machines = snd_soc_acpi_intel_skl_machines,
+- .resindex_lpe_base = 0,
+- .resindex_pcicfg_base = -1,
+- .resindex_imr_base = -1,
+- .irqindex_host_ipc = -1,
+- .resindex_dma_base = -1,
+- .chip_info = &skl_chip_info,
+- .default_fw_path = "intel/sof",
+- .default_tplg_path = "intel/sof-tplg",
+- .nocodec_fw_filename = "sof-skl.ri",
+- .nocodec_tplg_filename = "sof-skl-nocodec.tplg",
+- .ops = &sof_skl_ops,
+- .arch_ops = &sof_xtensa_arch_ops
+-};
+-#endif
+-
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_KABYLAKE)
+-static const struct sof_dev_desc kbl_desc = {
+- .machines = snd_soc_acpi_intel_kbl_machines,
+- .resindex_lpe_base = 0,
+- .resindex_pcicfg_base = -1,
+- .resindex_imr_base = -1,
+- .irqindex_host_ipc = -1,
+- .resindex_dma_base = -1,
+- .chip_info = &skl_chip_info,
+- .default_fw_path = "intel/sof",
+- .default_tplg_path = "intel/sof-tplg",
+- .nocodec_fw_filename = "sof-kbl.ri",
+- .nocodec_tplg_filename = "sof-kbl-nocodec.tplg",
+- .ops = &sof_skl_ops,
+- .arch_ops = &sof_xtensa_arch_ops
+-};
+-#endif
+-
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
+ static const struct sof_dev_desc tgl_desc = {
+ .machines = snd_soc_acpi_intel_tgl_machines,
+@@ -435,14 +399,6 @@ static const struct pci_device_id sof_pci_ids[] = {
+ { PCI_DEVICE(0x8086, 0xa348),
+ .driver_data = (unsigned long)&cfl_desc},
+ #endif
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_KABYLAKE)
+- { PCI_DEVICE(0x8086, 0x9d71),
+- .driver_data = (unsigned long)&kbl_desc},
+-#endif
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_SKYLAKE)
+- { PCI_DEVICE(0x8086, 0x9d70),
+- .driver_data = (unsigned long)&skl_desc},
+-#endif
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
+ { PCI_DEVICE(0x8086, 0x34C8),
+ .driver_data = (unsigned long)&icl_desc},
+--
+2.20.1
+
+
+From d08a87dcaa98f79927dd564cf6313b6161e33f84 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:10 +0200
+Subject: [PATCH 045/130] ASoC: hdac_hda: add support for HDMI/DP as a HDA
+ codec
+
+Handle all HDA codecs using same logic, including HDMI/DP.
+
+Call to snd_hda_codec_build_controls() is delayed for HDMI/DP HDA
+devices. This is needed to discover the PCM device numbers as
+defined in topology.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-3-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 608b8c36c37114289e3ea328783161f542fdf71d)
+Bugzilla: 1772498
+---
+ sound/soc/codecs/hdac_hda.c | 114 ++++++++++++++++++++++++++++++++----
+ sound/soc/codecs/hdac_hda.h | 13 +++-
+ 2 files changed, 114 insertions(+), 13 deletions(-)
+
+diff --git a/sound/soc/codecs/hdac_hda.c b/sound/soc/codecs/hdac_hda.c
+index 4570f662fb48..6803d39e09a5 100644
+--- a/sound/soc/codecs/hdac_hda.c
++++ b/sound/soc/codecs/hdac_hda.c
+@@ -14,13 +14,11 @@
+ #include <sound/pcm_params.h>
+ #include <sound/soc.h>
+ #include <sound/hdaudio_ext.h>
++#include <sound/hda_i915.h>
+ #include <sound/hda_codec.h>
+ #include <sound/hda_register.h>
+-#include "hdac_hda.h"
+
+-#define HDAC_ANALOG_DAI_ID 0
+-#define HDAC_DIGITAL_DAI_ID 1
+-#define HDAC_ALT_ANALOG_DAI_ID 2
++#include "hdac_hda.h"
+
+ #define STUB_FORMATS (SNDRV_PCM_FMTBIT_S8 | \
+ SNDRV_PCM_FMTBIT_U8 | \
+@@ -32,6 +30,11 @@
+ SNDRV_PCM_FMTBIT_U32_LE | \
+ SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE)
+
++#define STUB_HDMI_RATES (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |\
++ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 |\
++ SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 |\
++ SNDRV_PCM_RATE_192000)
++
+ static int hdac_hda_dai_open(struct snd_pcm_substream *substream,
+ struct snd_soc_dai *dai);
+ static void hdac_hda_dai_close(struct snd_pcm_substream *substream,
+@@ -121,7 +124,46 @@ static struct snd_soc_dai_driver hdac_hda_dais[] = {
+ .formats = STUB_FORMATS,
+ .sig_bits = 24,
+ },
+-}
++},
++{
++ .id = HDAC_HDMI_0_DAI_ID,
++ .name = "intel-hdmi-hifi1",
++ .ops = &hdac_hda_dai_ops,
++ .playback = {
++ .stream_name = "hifi1",
++ .channels_min = 1,
++ .channels_max = 32,
++ .rates = STUB_HDMI_RATES,
++ .formats = STUB_FORMATS,
++ .sig_bits = 24,
++ },
++},
++{
++ .id = HDAC_HDMI_1_DAI_ID,
++ .name = "intel-hdmi-hifi2",
++ .ops = &hdac_hda_dai_ops,
++ .playback = {
++ .stream_name = "hifi2",
++ .channels_min = 1,
++ .channels_max = 32,
++ .rates = STUB_HDMI_RATES,
++ .formats = STUB_FORMATS,
++ .sig_bits = 24,
++ },
++},
++{
++ .id = HDAC_HDMI_2_DAI_ID,
++ .name = "intel-hdmi-hifi3",
++ .ops = &hdac_hda_dai_ops,
++ .playback = {
++ .stream_name = "hifi3",
++ .channels_min = 1,
++ .channels_max = 32,
++ .rates = STUB_HDMI_RATES,
++ .formats = STUB_FORMATS,
++ .sig_bits = 24,
++ },
++},
+
+ };
+
+@@ -135,10 +177,11 @@ static int hdac_hda_dai_set_tdm_slot(struct snd_soc_dai *dai,
+
+ hda_pvt = snd_soc_component_get_drvdata(component);
+ pcm = &hda_pvt->pcm[dai->id];
++
+ if (tx_mask)
+- pcm[dai->id].stream_tag[SNDRV_PCM_STREAM_PLAYBACK] = tx_mask;
++ pcm->stream_tag[SNDRV_PCM_STREAM_PLAYBACK] = tx_mask;
+ else
+- pcm[dai->id].stream_tag[SNDRV_PCM_STREAM_CAPTURE] = rx_mask;
++ pcm->stream_tag[SNDRV_PCM_STREAM_CAPTURE] = rx_mask;
+
+ return 0;
+ }
+@@ -278,6 +321,12 @@ static struct hda_pcm *snd_soc_find_pcm_from_dai(struct hdac_hda_priv *hda_pvt,
+ struct hda_pcm *cpcm;
+ const char *pcm_name;
+
++ /*
++ * map DAI ID to the closest matching PCM name, using the naming
++ * scheme used by hda-codec snd_hda_gen_build_pcms() and for
++ * HDMI in hda_codec patch_hdmi.c)
++ */
++
+ switch (dai->id) {
+ case HDAC_ANALOG_DAI_ID:
+ pcm_name = "Analog";
+@@ -288,13 +337,22 @@ static struct hda_pcm *snd_soc_find_pcm_from_dai(struct hdac_hda_priv *hda_pvt,
+ case HDAC_ALT_ANALOG_DAI_ID:
+ pcm_name = "Alt Analog";
+ break;
++ case HDAC_HDMI_0_DAI_ID:
++ pcm_name = "HDMI 0";
++ break;
++ case HDAC_HDMI_1_DAI_ID:
++ pcm_name = "HDMI 1";
++ break;
++ case HDAC_HDMI_2_DAI_ID:
++ pcm_name = "HDMI 2";
++ break;
+ default:
+ dev_err(&hcodec->core.dev, "invalid dai id %d\n", dai->id);
+ return NULL;
+ }
+
+ list_for_each_entry(cpcm, &hcodec->pcm_list_head, list) {
+- if (strpbrk(cpcm->name, pcm_name))
++ if (strstr(cpcm->name, pcm_name))
+ return cpcm;
+ }
+
+@@ -302,6 +360,18 @@ static struct hda_pcm *snd_soc_find_pcm_from_dai(struct hdac_hda_priv *hda_pvt,
+ return NULL;
+ }
+
++static bool is_hdmi_codec(struct hda_codec *hcodec)
++{
++ struct hda_pcm *cpcm;
++
++ list_for_each_entry(cpcm, &hcodec->pcm_list_head, list) {
++ if (cpcm->pcm_type == HDA_PCM_TYPE_HDMI)
++ return true;
++ }
++
++ return false;
++}
++
+ static int hdac_hda_codec_probe(struct snd_soc_component *component)
+ {
+ struct hdac_hda_priv *hda_pvt =
+@@ -322,6 +392,15 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component)
+
+ snd_hdac_ext_bus_link_get(hdev->bus, hlink);
+
++ /*
++ * Ensure any HDA display is powered at codec probe.
++ * After snd_hda_codec_device_new(), display power is
++ * managed by runtime PM.
++ */
++ if (hda_pvt->need_display_power)
++ snd_hdac_display_power(hdev->bus,
++ HDA_CODEC_IDX_CONTROLLER, true);
++
+ ret = snd_hda_codec_device_new(hcodec->bus, component->card->snd_card,
+ hdev->addr, hcodec);
+ if (ret < 0) {
+@@ -366,20 +445,31 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component)
+ dev_dbg(&hdev->dev, "no patch file found\n");
+ }
+
++ /* configure codec for 1:1 PCM:DAI mapping */
++ hcodec->mst_no_extra_pcms = 1;
++
+ ret = snd_hda_codec_parse_pcms(hcodec);
+ if (ret < 0) {
+ dev_err(&hdev->dev, "unable to map pcms to dai %d\n", ret);
+ goto error;
+ }
+
+- ret = snd_hda_codec_build_controls(hcodec);
+- if (ret < 0) {
+- dev_err(&hdev->dev, "unable to create controls %d\n", ret);
+- goto error;
++ /* HDMI controls need to be created in machine drivers */
++ if (!is_hdmi_codec(hcodec)) {
++ ret = snd_hda_codec_build_controls(hcodec);
++ if (ret < 0) {
++ dev_err(&hdev->dev, "unable to create controls %d\n",
++ ret);
++ goto error;
++ }
+ }
+
+ hcodec->core.lazy_cache = true;
+
++ if (hda_pvt->need_display_power)
++ snd_hdac_display_power(hdev->bus,
++ HDA_CODEC_IDX_CONTROLLER, false);
++
+ /*
+ * hdac_device core already sets the state to active and calls
+ * get_noresume. So enable runtime and set the device to suspend.
+diff --git a/sound/soc/codecs/hdac_hda.h b/sound/soc/codecs/hdac_hda.h
+index 6b1bd4f428e7..e145cec085b8 100644
+--- a/sound/soc/codecs/hdac_hda.h
++++ b/sound/soc/codecs/hdac_hda.h
+@@ -6,6 +6,16 @@
+ #ifndef __HDAC_HDA_H__
+ #define __HDAC_HDA_H__
+
++enum {
++ HDAC_ANALOG_DAI_ID = 0,
++ HDAC_DIGITAL_DAI_ID,
++ HDAC_ALT_ANALOG_DAI_ID,
++ HDAC_HDMI_0_DAI_ID,
++ HDAC_HDMI_1_DAI_ID,
++ HDAC_HDMI_2_DAI_ID,
++ HDAC_LAST_DAI_ID = HDAC_HDMI_2_DAI_ID,
++};
++
+ struct hdac_hda_pcm {
+ int stream_tag[2];
+ unsigned int format_val[2];
+@@ -13,7 +23,8 @@ struct hdac_hda_pcm {
+
+ struct hdac_hda_priv {
+ struct hda_codec codec;
+- struct hdac_hda_pcm pcm[2];
++ struct hdac_hda_pcm pcm[HDAC_LAST_DAI_ID];
++ bool need_display_power;
+ };
+
+ #define hdac_to_hda_priv(_hdac) \
+--
+2.20.1
+
+
+From 669fa4378c36f288936e3bdc52dfba7b245ea9fe Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:13 +0200
+Subject: [PATCH 046/130] ASoC: SOF: Intel: add support for snd-hda-codec-hdmi
+
+Add support to implement HDMI/DP audio by using the common
+snd-hda-codec-hdmi driver.
+
+Change of codec driver affects user-space as the two
+drivers expose different mixer controls. A new kernel
+module option "use_common_hdmi" is added to user-space
+to indicate which interface should be used. The default
+driver can be selected via a Kconfig option.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-6-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 139c7febad1afa221c687f3314560284e482a1f4)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/Kconfig | 10 ++++++++++
+ sound/soc/sof/intel/hda-codec.c | 22 ++++++++++++++++++----
+ sound/soc/sof/intel/hda.c | 6 ++++++
+ sound/soc/sof/intel/hda.h | 6 ++++--
+ 4 files changed, 38 insertions(+), 6 deletions(-)
+
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index aac8d5deba3d..95a2d1708dd9 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -299,6 +299,16 @@ config SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
+ Say Y if you want to enable DMI Link L1
+ If unsure, select "N".
+
++config SND_SOC_SOF_HDA_COMMON_HDMI_CODEC
++ bool "SOF common HDA HDMI codec driver"
++ depends on SND_SOC_SOF_HDA_LINK
++ depends on SND_HDA_CODEC_HDMI
++ help
++ This adds support for HDMI audio by using the common HDA
++ HDMI/DisplayPort codec driver.
++ Say Y if you want to use the common codec driver with SOF.
++ If unsure select "Y".
++
+ endif ## SND_SOC_SOF_HDA_COMMON
+
+ config SND_SOC_SOF_HDA_LINK_BASELINE
+diff --git a/sound/soc/sof/intel/hda-codec.c b/sound/soc/sof/intel/hda-codec.c
+index 3ca6795a89ba..827f84a0722e 100644
+--- a/sound/soc/sof/intel/hda-codec.c
++++ b/sound/soc/sof/intel/hda-codec.c
+@@ -84,6 +84,8 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address)
+ {
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
+ struct hdac_hda_priv *hda_priv;
++ struct snd_soc_acpi_mach_params *mach_params = NULL;
++ struct snd_sof_pdata *pdata = sdev->pdata;
+ #endif
+ struct hda_bus *hbus = sof_to_hbus(sdev);
+ struct hdac_device *hdev;
+@@ -113,8 +115,19 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address)
+ if (ret < 0)
+ return ret;
+
+- /* use legacy bus only for HDA codecs, idisp uses ext bus */
+- if ((resp & 0xFFFF0000) != IDISP_VID_INTEL) {
++ if (pdata->machine)
++ mach_params = (struct snd_soc_acpi_mach_params *)
++ &pdata->machine->mach_params;
++
++ if ((resp & 0xFFFF0000) == IDISP_VID_INTEL)
++ hda_priv->need_display_power = true;
++
++ /*
++ * if common HDMI codec driver is not used, codec load
++ * is skipped here and hdac_hdmi is used instead
++ */
++ if ((mach_params && mach_params->common_hdmi_codec_drv) ||
++ (resp & 0xFFFF0000) != IDISP_VID_INTEL) {
+ hdev->type = HDA_DEV_LEGACY;
+ hda_codec_load_module(&hda_priv->codec);
+ }
+@@ -155,7 +168,8 @@ int hda_codec_probe_bus(struct snd_sof_dev *sdev)
+ }
+ EXPORT_SYMBOL(hda_codec_probe_bus);
+
+-#if IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)
++#if IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \
++ IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)
+
+ void hda_codec_i915_get(struct snd_sof_dev *sdev)
+ {
+@@ -204,6 +218,6 @@ int hda_codec_i915_exit(struct snd_sof_dev *sdev)
+ }
+ EXPORT_SYMBOL(hda_codec_i915_exit);
+
+-#endif /* CONFIG_SND_SOC_HDAC_HDMI */
++#endif
+
+ MODULE_LICENSE("Dual BSD/GPL");
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 103f4273c4d3..7dc0018dc4c3 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -53,6 +53,11 @@ MODULE_PARM_DESC(use_msi, "SOF HDA use PCI MSI mode");
+ static int hda_dmic_num = -1;
+ module_param_named(dmic_num, hda_dmic_num, int, 0444);
+ MODULE_PARM_DESC(dmic_num, "SOF HDA DMIC number");
++
++static bool hda_codec_use_common_hdmi =
++ IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC);
++module_param_named(use_common_hdmi, hda_codec_use_common_hdmi, bool, 0444);
++MODULE_PARM_DESC(use_common_hdmi, "SOF HDA use common HDMI codec driver");
+ #endif
+
+ static const struct hda_dsp_msg_code hda_dsp_rom_msg[] = {
+@@ -459,6 +464,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
+ &pdata->machine->mach_params;
+ mach_params->codec_mask = bus->codec_mask;
+ mach_params->platform = dev_name(sdev->dev);
++ mach_params->common_hdmi_codec_drv = hda_codec_use_common_hdmi;
+ }
+
+ /* create codec instances */
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 8e03d876a0ac..d6ef657b8900 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -565,7 +565,9 @@ void hda_codec_jack_check(struct snd_sof_dev *sdev);
+
+ #endif /* CONFIG_SND_SOC_SOF_HDA */
+
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) && IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) && \
++ (IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \
++ IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI))
+
+ void hda_codec_i915_get(struct snd_sof_dev *sdev);
+ void hda_codec_i915_put(struct snd_sof_dev *sdev);
+@@ -579,7 +581,7 @@ static inline void hda_codec_i915_put(struct snd_sof_dev *sdev) { }
+ static inline int hda_codec_i915_init(struct snd_sof_dev *sdev) { return 0; }
+ static inline int hda_codec_i915_exit(struct snd_sof_dev *sdev) { return 0; }
+
+-#endif /* CONFIG_SND_SOC_SOF_HDA && CONFIG_SND_SOC_HDAC_HDMI */
++#endif
+
+ /*
+ * Trace Control.
+--
+2.20.1
+
+
+From 480f07ccb82555912594c2b6d560fdeb35176b40 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:35 -0500
+Subject: [PATCH 047/130] ASoC: SOF: Intel: Baytrail: clarify mutual exclusion
+ with Atom/SST driver
+
+Some distros select all options blindly, which leads to confusion and
+bug reports. Since SOF does not support Baytrail-CR for now, and
+UCM/topology files are still being propagated to downstream distros,
+make SOF on Baytrail an opt-in option that first require distros to
+opt-out of existing defaults.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit df7257e544faf838c3e7ad6b4e89ffe59e87f5e1)
+Bugzilla: 1772498
+---
+ sound/soc/intel/Kconfig | 3 +++
+ sound/soc/sof/intel/Kconfig | 10 +++++++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 9ad89d56092b..5fd4be74b7ea 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -101,6 +101,9 @@ config SND_SST_ATOM_HIFI2_PLATFORM_ACPI
+ If you have a Intel Baytrail or Cherrytrail platform with an I2S
+ codec, then enable this option by saying Y or m. This is a
+ recommended option
++ This option is mutually exclusive with the SOF support on
++ Baytrail/Cherrytrail. If you want to enable SOF on
++ Baytrail/Cherrytrail, you need to deselect this option first.
+
+ config SND_SOC_INTEL_SKYLAKE
+ tristate "All Skylake/SST Platforms"
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index 95a2d1708dd9..b6b509151b34 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -62,10 +62,18 @@ if SND_SOC_SOF_INTEL_ACPI
+
+ config SND_SOC_SOF_BAYTRAIL_SUPPORT
+ bool "SOF support for Baytrail, Braswell and Cherrytrail"
++ depends on SND_SST_ATOM_HIFI2_PLATFORM_ACPI=n
+ help
+ This adds support for Sound Open Firmware for Intel(R) platforms
+ using the Baytrail, Braswell or Cherrytrail processors.
+- Say Y if you have such a device.
++ This option is mutually exclusive with the Atom/SST and Baytrail
++ legacy drivers. If you want to enable SOF on Baytrail/Cherrytrail,
++ you need to deselect those options first.
++ SOF does not support Baytrail-CR for now, so this option is not
++ recommended for distros. At some point all legacy drivers will be
++ deprecated but not before all userspace firmware/topology/UCM files
++ are made available to downstream distros.
++ Say Y if you want to enable SOF on Baytrail/Cherrytrail
+ If unsure select "N".
+
+ config SND_SOC_SOF_BAYTRAIL
+--
+2.20.1
+
+
+From 8a391c34be3b2140c0498675df21523b8246ceb8 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:36 -0500
+Subject: [PATCH 048/130] ASoC: SOF: Intel: Broadwell: clarify mutual exclusion
+ with legacy driver
+
+Some distros select all options blindly, which leads to confusion and
+bug reports. SOF does not fully support Broadwell due to firmware
+dependencies, the machine drivers can only support one option, and
+UCM/topology files are still being propagated to downstream distros,
+so make SOF on Broadwell an opt-in option that first require distros
+to opt-out of existing defaults.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204237
+Fixes: f35bf70f61d3 ('ASoC: Intel: Make sure BDW based machine drivers build for SOF')
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit a6955fe0e2309feeab5ec71e4b0dcbe498f4f497)
+Bugzilla: 1772498
+---
+ sound/soc/intel/Kconfig | 3 +++
+ sound/soc/sof/intel/Kconfig | 10 +++++++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 5fd4be74b7ea..658eff2daf4e 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -59,6 +59,9 @@ config SND_SOC_INTEL_HASWELL
+ If you have a Intel Haswell or Broadwell platform connected to
+ an I2S codec, then enable this option by saying Y or m. This is
+ typically used for Chromebooks. This is a recommended option.
++ This option is mutually exclusive with the SOF support on
++ Broadwell. If you want to enable SOF on Broadwell, you need to
++ deselect this option first.
+
+ config SND_SOC_INTEL_BAYTRAIL
+ tristate "Baytrail (legacy) Platforms"
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index b6b509151b34..0db9e80b7cef 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -85,10 +85,18 @@ config SND_SOC_SOF_BAYTRAIL
+
+ config SND_SOC_SOF_BROADWELL_SUPPORT
+ bool "SOF support for Broadwell"
++ depends on SND_SOC_INTEL_HASWELL=n
+ help
+ This adds support for Sound Open Firmware for Intel(R) platforms
+ using the Broadwell processors.
+- Say Y if you have such a device.
++ This option is mutually exclusive with the Haswell/Broadwell legacy
++ driver. If you want to enable SOF on Broadwell you need to deselect
++ the legacy driver first.
++ SOF does fully support Broadwell yet, so this option is not
++ recommended for distros. At some point all legacy drivers will be
++ deprecated but not before all userspace firmware/topology/UCM files
++ are made available to downstream distros.
++ Say Y if you want to enable SOF on Broadwell
+ If unsure select "N".
+
+ config SND_SOC_SOF_BROADWELL
+--
+2.20.1
+
+
+From 95761516cf6f36ea1e2e23ca4470c756dc0acda3 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:38 -0500
+Subject: [PATCH 049/130] ASoC: SOF: Kconfig: add EXPERT dependency for
+ developer options, clarify help
+
+Some distros select all possible options, despite existing warnings to
+be careful. This leads to e.g. user reports that the HDaudio codec and
+DMIC are not handled by SOF.
+
+Add an explicit menu item to unlock developer options, and make them
+dependent on CONFIG_EXPERT. Hopefully with this double-lock these
+options will only be selected by developers.
+
+GitHub issue: https://github.com/thesofproject/sof/issues/1885
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 70ae4eb540af32ee6a6260143ccae6054ebd433f)
+Bugzilla: 1772498
+---
+ sound/soc/sof/Kconfig | 25 ++++++++++++++++---------
+ 1 file changed, 16 insertions(+), 9 deletions(-)
+
+diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
+index 56a3ab66b46b..6435eb531668 100644
+--- a/sound/soc/sof/Kconfig
++++ b/sound/soc/sof/Kconfig
+@@ -14,7 +14,6 @@ config SND_SOC_SOF_PCI
+ depends on PCI
+ select SND_SOC_SOF
+ select SND_SOC_ACPI if ACPI
+- select SND_SOC_SOF_OPTIONS
+ select SND_SOC_SOF_INTEL_PCI if SND_SOC_SOF_INTEL_TOPLEVEL
+ help
+ This adds support for PCI enumeration. This option is
+@@ -27,7 +26,6 @@ config SND_SOC_SOF_ACPI
+ depends on ACPI || COMPILE_TEST
+ select SND_SOC_SOF
+ select SND_SOC_ACPI if ACPI
+- select SND_SOC_SOF_OPTIONS
+ select SND_SOC_SOF_INTEL_ACPI if SND_SOC_SOF_INTEL_TOPLEVEL
+ select IOSF_MBI if X86 && PCI
+ help
+@@ -40,19 +38,23 @@ config SND_SOC_SOF_OF
+ tristate "SOF OF enumeration support"
+ depends on OF || COMPILE_TEST
+ select SND_SOC_SOF
+- select SND_SOC_SOF_OPTIONS
+ help
+ This adds support for Device Tree enumeration. This option is
+ required to enable i.MX8 devices.
+ Say Y if you need this option. If unsure select "N".
+
+-config SND_SOC_SOF_OPTIONS
+- tristate
++config SND_SOC_SOF_DEVELOPER_SUPPORT
++ bool "SOF developer options support"
++ depends on EXPERT
+ help
+- This option is not user-selectable but automagically handled by
+- 'select' statements at a higher level
++ This option unlock SOF developer options for debug/performance/
++ code hardening.
++ Distributions should not select this option, only SOF development
++ teams should select it.
++ Say Y if you are involved in SOF development and need this option
++ If not, select N
+
+-if SND_SOC_SOF_OPTIONS
++if SND_SOC_SOF_DEVELOPER_SUPPORT
+
+ config SND_SOC_SOF_NOCODEC
+ tristate
+@@ -64,6 +66,11 @@ config SND_SOC_SOF_NOCODEC_SUPPORT
+ option if no known codec is detected. This is typically only
+ enabled for developers or devices where the sound card is
+ controlled externally
++ This option is mutually exclusive with the Intel HDaudio support,
++ selecting it may have negative impacts and prevent e.g. microphone
++ functionality from being enabled on Intel CoffeeLake and later
++ platforms.
++ Distributions should not select this option!
+ Say Y if you need this nocodec fallback option
+ If unsure select "N".
+
+@@ -168,7 +175,7 @@ config SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT
+
+ endif ## SND_SOC_SOF_DEBUG
+
+-endif ## SND_SOC_SOF_OPTIONS
++endif ## SND_SOC_SOF_DEVELOPER_SUPPORT
+
+ config SND_SOC_SOF
+ tristate
+--
+2.20.1
+
+
+From 34edfaf5c61574b5156daeb173476650be7b87a0 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:39 -0500
+Subject: [PATCH 050/130] ASoC: SOF: imx: fix reverse CONFIG_SND_SOC_SOF_OF
+ dependency
+
+updated solution to the problem reported with randconfig:
+
+CONFIG_SND_SOC_SOF_IMX depends on CONFIG_SND_SOC_SOF, but is in
+turn referenced by the sof-of-dev driver. This creates a reverse
+dependency that manifests in a link error when CONFIG_SND_SOC_SOF_OF
+is built-in but CONFIG_SND_SOC_SOF_IMX=m:
+
+sound/soc/sof/sof-of-dev.o:(.data+0x118): undefined reference to `sof_imx8_ops'
+
+use def_trisate to propagate the right settings without select.
+
+Fixes: f4df4e4042b0 ("ASoC: SOF: imx8: Fix COMPILE_TEST error")
+Fixes: 202acc565a1f ("ASoC: SOF: imx: Add i.MX8 HW support")
+Suggested-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-6-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f9ad75468453b019b92c5296e6a04bf7c37f49e4)
+Bugzilla: 1772498
+---
+ sound/soc/sof/imx/Kconfig | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/imx/Kconfig b/sound/soc/sof/imx/Kconfig
+index 5acae75f5750..71f318bc2c74 100644
+--- a/sound/soc/sof/imx/Kconfig
++++ b/sound/soc/sof/imx/Kconfig
+@@ -11,8 +11,8 @@ config SND_SOC_SOF_IMX_TOPLEVEL
+
+ if SND_SOC_SOF_IMX_TOPLEVEL
+
+-config SND_SOC_SOF_IMX8
+- tristate "SOF support for i.MX8"
++config SND_SOC_SOF_IMX8_SUPPORT
++ bool "SOF support for i.MX8"
+ depends on IMX_SCU
+ depends on IMX_DSP
+ help
+@@ -20,4 +20,8 @@ config SND_SOC_SOF_IMX8
+ Say Y if you have such a device.
+ If unsure select "N".
+
++config SND_SOC_SOF_IMX8
++ def_tristate SND_SOC_SOF_OF
++ depends on SND_SOC_SOF_IMX8_SUPPORT
++
+ endif ## SND_SOC_SOF_IMX_IMX_TOPLEVEL
+--
+2.20.1
+
+
+From 5efd9ba11e644ef74a0c51d543145f116a886438 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:40 -0500
+Subject: [PATCH 051/130] ASoC: SOF: Intel: use def_tristate, avoid using
+ select
+
+So far we used select to use the relevant built-in/module options, but
+this led to blurring layers between core and Intel Kconfigs.
+
+Use def_tristate works just as well and removes Intel stuff from the code.
+
+Suggested-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-7-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit b000135e5f272118e576e9720590e5979f0abe49)
+Bugzilla: 1772498
+---
+ sound/soc/sof/Kconfig | 2 --
+ sound/soc/sof/intel/Kconfig | 4 ++--
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
+index 6435eb531668..71a0fc075a63 100644
+--- a/sound/soc/sof/Kconfig
++++ b/sound/soc/sof/Kconfig
+@@ -14,7 +14,6 @@ config SND_SOC_SOF_PCI
+ depends on PCI
+ select SND_SOC_SOF
+ select SND_SOC_ACPI if ACPI
+- select SND_SOC_SOF_INTEL_PCI if SND_SOC_SOF_INTEL_TOPLEVEL
+ help
+ This adds support for PCI enumeration. This option is
+ required to enable Intel Skylake+ devices
+@@ -26,7 +25,6 @@ config SND_SOC_SOF_ACPI
+ depends on ACPI || COMPILE_TEST
+ select SND_SOC_SOF
+ select SND_SOC_ACPI if ACPI
+- select SND_SOC_SOF_INTEL_ACPI if SND_SOC_SOF_INTEL_TOPLEVEL
+ select IOSF_MBI if X86 && PCI
+ help
+ This adds support for ACPI enumeration. This option is required
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index 0db9e80b7cef..f7c30a08ffbf 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -10,7 +10,7 @@ config SND_SOC_SOF_INTEL_TOPLEVEL
+ if SND_SOC_SOF_INTEL_TOPLEVEL
+
+ config SND_SOC_SOF_INTEL_ACPI
+- tristate
++ def_tristate SND_SOC_SOF_ACPI
+ select SND_SOC_SOF_BAYTRAIL if SND_SOC_SOF_BAYTRAIL_SUPPORT
+ select SND_SOC_SOF_BROADWELL if SND_SOC_SOF_BROADWELL_SUPPORT
+ help
+@@ -18,7 +18,7 @@ config SND_SOC_SOF_INTEL_ACPI
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_INTEL_PCI
+- tristate
++ def_tristate SND_SOC_SOF_PCI
+ select SND_SOC_SOF_MERRIFIELD if SND_SOC_SOF_MERRIFIELD_SUPPORT
+ select SND_SOC_SOF_APOLLOLAKE if SND_SOC_SOF_APOLLOLAKE_SUPPORT
+ select SND_SOC_SOF_GEMINILAKE if SND_SOC_SOF_GEMINILAKE_SUPPORT
+--
+2.20.1
+
+
+From 19b52530d84901fdfb1924862f3f82458ad110bc Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Fri, 4 Oct 2019 16:49:31 +0200
+Subject: [PATCH 052/130] sound: Fix Kconfig indentation
+
+Adjust indentation from spaces to tab (+optional two spaces) as in
+coding style with command like:
+ $ sed -e 's/^ /\t/' -i */Kconfig
+
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+Acked-by: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191004144931.3851-1-krzk@kernel.org
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 82e8d723e9e6698572098bf2976223d5069b34b5)
+Bugzilla: 1772498
+---
+ sound/core/Kconfig | 28 ++++++++++----------
+ sound/drivers/Kconfig | 20 +++++++-------
+ sound/firewire/Kconfig | 6 ++---
+ sound/isa/Kconfig | 18 ++++++-------
+ sound/mips/Kconfig | 12 ++++-----
+ sound/pci/Kconfig | 2 +-
+ sound/soc/cirrus/Kconfig | 14 +++++-----
+ sound/soc/codecs/Kconfig | 32 +++++++++++------------
+ sound/soc/intel/Kconfig | 2 +-
+ sound/soc/intel/boards/Kconfig | 48 +++++++++++++++++-----------------
+ sound/soc/pxa/Kconfig | 16 ++++++------
+ sound/soc/qcom/Kconfig | 20 +++++++-------
+ sound/soc/samsung/Kconfig | 8 +++---
+ sound/soc/sof/imx/Kconfig | 12 ++++-----
+ sound/soc/sof/intel/Kconfig | 22 ++++++++--------
+ sound/soc/xilinx/Kconfig | 20 +++++++-------
+ sound/soc/zte/Kconfig | 12 ++++-----
+ sound/usb/Kconfig | 32 +++++++++++------------
+ 18 files changed, 162 insertions(+), 162 deletions(-)
+
+diff --git a/sound/core/Kconfig b/sound/core/Kconfig
+index 4ee79ad6ae22..4044c42d8595 100644
+--- a/sound/core/Kconfig
++++ b/sound/core/Kconfig
+@@ -72,11 +72,11 @@ config SND_PCM_OSS
+ config SND_PCM_OSS_PLUGINS
+ bool "OSS PCM (digital audio) API - Include plugin system"
+ depends on SND_PCM_OSS
+- default y
++ default y
+ help
+- If you disable this option, the ALSA's OSS PCM API will not
+- support conversion of channels, formats and rates. It will
+- behave like most of new OSS/Free drivers in 2.4/2.6 kernels.
++ If you disable this option, the ALSA's OSS PCM API will not
++ support conversion of channels, formats and rates. It will
++ behave like most of new OSS/Free drivers in 2.4/2.6 kernels.
+
+ config SND_PCM_TIMER
+ bool "PCM timer interface" if EXPERT
+@@ -128,13 +128,13 @@ config SND_SUPPORT_OLD_API
+ or older).
+
+ config SND_PROC_FS
+- bool "Sound Proc FS Support" if EXPERT
+- depends on PROC_FS
+- default y
+- help
+- Say 'N' to disable Sound proc FS, which may reduce code size about
+- 9KB on x86_64 platform.
+- If unsure say Y.
++ bool "Sound Proc FS Support" if EXPERT
++ depends on PROC_FS
++ default y
++ help
++ Say 'N' to disable Sound proc FS, which may reduce code size about
++ 9KB on x86_64 platform.
++ If unsure say Y.
+
+ config SND_VERBOSE_PROCFS
+ bool "Verbose procfs contents"
+@@ -142,8 +142,8 @@ config SND_VERBOSE_PROCFS
+ default y
+ help
+ Say Y here to include code for verbose procfs contents (provides
+- useful information to developers when a problem occurs). On the
+- other side, it makes the ALSA subsystem larger.
++ useful information to developers when a problem occurs). On the
++ other side, it makes the ALSA subsystem larger.
+
+ config SND_VERBOSE_PRINTK
+ bool "Verbose printk"
+@@ -164,7 +164,7 @@ config SND_DEBUG_VERBOSE
+ depends on SND_DEBUG
+ help
+ Say Y here to enable extra-verbose debugging messages.
+-
++
+ Let me repeat: it enables EXTRA-VERBOSE DEBUGGING messages.
+ So, say Y only if you are ready to be annoyed.
+
+diff --git a/sound/drivers/Kconfig b/sound/drivers/Kconfig
+index 09932cc98e9d..15d6d46acf9c 100644
+--- a/sound/drivers/Kconfig
++++ b/sound/drivers/Kconfig
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0-only
+ config SND_MPU401_UART
+- tristate
+- select SND_RAWMIDI
++ tristate
++ select SND_RAWMIDI
+
+ config SND_OPL3_LIB
+ tristate
+@@ -90,16 +90,16 @@ config SND_DUMMY
+ will be called snd-dummy.
+
+ config SND_ALOOP
+- tristate "Generic loopback driver (PCM)"
+- select SND_PCM
+- help
+- Say 'Y' or 'M' to include support for the PCM loopback device.
++ tristate "Generic loopback driver (PCM)"
++ select SND_PCM
++ help
++ Say 'Y' or 'M' to include support for the PCM loopback device.
+ This module returns played samples back to the user space using
+ the standard ALSA PCM device. The devices are routed 0->1 and
+- 1->0, where first number is the playback PCM device and second
++ 1->0, where first number is the playback PCM device and second
+ number is the capture device. Module creates two PCM devices and
+ configured number of substreams (see the pcm_substreams module
+- parameter).
++ parameter).
+
+ The loopback device allows time sychronization with an external
+ timing source using the time shift universal control (+-20%
+@@ -142,12 +142,12 @@ config SND_MTS64
+ select SND_RAWMIDI
+ help
+ The ESI Miditerminal 4140 is a 4 In 4 Out MIDI Interface with
+- additional SMPTE Timecode capabilities for the parallel port.
++ additional SMPTE Timecode capabilities for the parallel port.
+
+ Say 'Y' to include support for this device.
+
+ To compile this driver as a module, chose 'M' here: the module
+- will be called snd-mts64.
++ will be called snd-mts64.
+
+ config SND_SERIAL_U16550
+ tristate "UART16550 serial MIDI driver"
+diff --git a/sound/firewire/Kconfig b/sound/firewire/Kconfig
+index b0a904cdb932..995c2cefc222 100644
+--- a/sound/firewire/Kconfig
++++ b/sound/firewire/Kconfig
+@@ -77,7 +77,7 @@ config SND_BEBOB
+ tristate "BridgeCo DM1000/DM1100/DM1500 with BeBoB firmware"
+ select SND_FIREWIRE_LIB
+ select SND_HWDEP
+- help
++ help
+ Say Y here to include support for FireWire devices based
+ on BridgeCo DM1000/DM1100/DM1500 with BeBoB firmware:
+ * Edirol FA-66/FA-101
+@@ -111,8 +111,8 @@ config SND_BEBOB
+ * M-Audio FireWire 1814/ProjectMix IO
+ * Digidesign Mbox 2 Pro
+
+- To compile this driver as a module, choose M here: the module
+- will be called snd-bebob.
++ To compile this driver as a module, choose M here: the module
++ will be called snd-bebob.
+
+ config SND_FIREWIRE_DIGI00X
+ tristate "Digidesign Digi 002/003 family support"
+diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig
+index b690ed937cbe..6ffa48dd5983 100644
+--- a/sound/isa/Kconfig
++++ b/sound/isa/Kconfig
+@@ -2,22 +2,22 @@
+ # ALSA ISA drivers
+
+ config SND_WSS_LIB
+- tristate
+- select SND_PCM
++ tristate
++ select SND_PCM
+ select SND_TIMER
+
+ config SND_SB_COMMON
+- tristate
++ tristate
+
+ config SND_SB8_DSP
+- tristate
+- select SND_PCM
+- select SND_SB_COMMON
++ tristate
++ select SND_PCM
++ select SND_SB_COMMON
+
+ config SND_SB16_DSP
+- tristate
+- select SND_PCM
+- select SND_SB_COMMON
++ tristate
++ select SND_PCM
++ select SND_SB_COMMON
+
+ menuconfig SND_ISA
+ bool "ISA sound devices"
+diff --git a/sound/mips/Kconfig b/sound/mips/Kconfig
+index 8a33402fd415..b497b803c834 100644
+--- a/sound/mips/Kconfig
++++ b/sound/mips/Kconfig
+@@ -14,15 +14,15 @@ config SND_SGI_O2
+ tristate "SGI O2 Audio"
+ depends on SGI_IP32
+ select SND_PCM
+- help
+- Sound support for the SGI O2 Workstation.
++ help
++ Sound support for the SGI O2 Workstation.
+
+ config SND_SGI_HAL2
+- tristate "SGI HAL2 Audio"
+- depends on SGI_HAS_HAL2
++ tristate "SGI HAL2 Audio"
++ depends on SGI_HAS_HAL2
+ select SND_PCM
+- help
+- Sound support for the SGI Indy and Indigo2 Workstation.
++ help
++ Sound support for the SGI Indy and Indigo2 Workstation.
+
+ endif # SND_MIPS
+
+diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
+index 7630f808d087..93bc9bef7641 100644
+--- a/sound/pci/Kconfig
++++ b/sound/pci/Kconfig
+@@ -217,7 +217,7 @@ config SND_CMIPCI
+ will be called snd-cmipci.
+
+ config SND_OXYGEN_LIB
+- tristate
++ tristate
+
+ config SND_OXYGEN
+ tristate "C-Media 8786, 8787, 8788 (Oxygen)"
+diff --git a/sound/soc/cirrus/Kconfig b/sound/soc/cirrus/Kconfig
+index 2333efac758a..8039a8febefa 100644
+--- a/sound/soc/cirrus/Kconfig
++++ b/sound/soc/cirrus/Kconfig
+@@ -33,13 +33,13 @@ config SND_EP93XX_SOC_AC97
+ select SND_SOC_AC97_BUS
+
+ config SND_EP93XX_SOC_SNAPPERCL15
+- tristate "SoC Audio support for Bluewater Systems Snapper CL15 module"
+- depends on SND_EP93XX_SOC && MACH_SNAPPER_CL15 && I2C
+- select SND_EP93XX_SOC_I2S
+- select SND_SOC_TLV320AIC23_I2C
+- help
+- Say Y or M here if you want to add support for I2S audio on the
+- Bluewater Systems Snapper CL15 module.
++ tristate "SoC Audio support for Bluewater Systems Snapper CL15 module"
++ depends on SND_EP93XX_SOC && MACH_SNAPPER_CL15 && I2C
++ select SND_EP93XX_SOC_I2S
++ select SND_SOC_TLV320AIC23_I2C
++ help
++ Say Y or M here if you want to add support for I2S audio on the
++ Bluewater Systems Snapper CL15 module.
+
+ config SND_EP93XX_SOC_SIMONE
+ tristate "SoC Audio support for Simplemachines Sim.One board"
+diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
+index 229cc89f8c5a..ef9d73b89623 100644
+--- a/sound/soc/codecs/Kconfig
++++ b/sound/soc/codecs/Kconfig
+@@ -257,16 +257,16 @@ config SND_SOC_ALL_CODECS
+ select SND_SOC_WM9705 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
+ select SND_SOC_WM9712 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
+ select SND_SOC_WM9713 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
+- help
+- Normally ASoC codec drivers are only built if a machine driver which
+- uses them is also built since they are only usable with a machine
+- driver. Selecting this option will allow these drivers to be built
+- without an explicit machine driver for test and development purposes.
++ help
++ Normally ASoC codec drivers are only built if a machine driver which
++ uses them is also built since they are only usable with a machine
++ driver. Selecting this option will allow these drivers to be built
++ without an explicit machine driver for test and development purposes.
+
+ Support for the bus types used to access the codecs to be built must
+ be selected separately.
+
+- If unsure select "N".
++ If unsure select "N".
+
+ config SND_SOC_88PM860X
+ tristate
+@@ -570,8 +570,8 @@ config SND_SOC_CS42XX8_I2C
+
+ # Cirrus Logic CS43130 HiFi DAC
+ config SND_SOC_CS43130
+- tristate "Cirrus Logic CS43130 CODEC"
+- depends on I2C
++ tristate "Cirrus Logic CS43130 CODEC"
++ depends on I2C
+
+ config SND_SOC_CS4341
+ tristate "Cirrus Logic CS4341 CODEC"
+@@ -643,19 +643,19 @@ config SND_SOC_L3
+ tristate
+
+ config SND_SOC_DA7210
+- tristate
++ tristate
+
+ config SND_SOC_DA7213
+- tristate
++ tristate
+
+ config SND_SOC_DA7218
+ tristate
+
+ config SND_SOC_DA7219
+- tristate
++ tristate
+
+ config SND_SOC_DA732X
+- tristate
++ tristate
+
+ config SND_SOC_DA9055
+ tristate
+@@ -717,7 +717,7 @@ config SND_SOC_INNO_RK3036
+ select REGMAP_MMIO
+
+ config SND_SOC_ISABELLE
+- tristate
++ tristate
+
+ config SND_SOC_LM49453
+ tristate
+@@ -988,7 +988,7 @@ config SND_SOC_RT5640
+ tristate
+
+ config SND_SOC_RT5645
+- tristate
++ tristate
+
+ config SND_SOC_RT5651
+ tristate
+@@ -1220,7 +1220,7 @@ config SND_SOC_UDA134X
+ tristate
+
+ config SND_SOC_UDA1380
+- tristate
++ tristate
+ depends on I2C
+
+ config SND_SOC_WCD9335
+@@ -1348,7 +1348,7 @@ config SND_SOC_WM8904
+ depends on I2C
+
+ config SND_SOC_WM8940
+- tristate
++ tristate
+
+ config SND_SOC_WM8955
+ tristate
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 658eff2daf4e..7e9feca333b7 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -119,7 +119,7 @@ config SND_SOC_INTEL_SKYLAKE
+ select SND_SOC_INTEL_CNL
+ select SND_SOC_INTEL_CFL
+ help
+- This is a backwards-compatible option to select all devices
++ This is a backwards-compatible option to select all devices
+ supported by the Intel SST/Skylake driver. This option is no
+ longer recommended and will be deprecated when the SOF
+ driver is introduced. Distributions should explicitly
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 5c27f7ab4a5f..882ff36a7c9c 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -3,13 +3,13 @@ menuconfig SND_SOC_INTEL_MACH
+ bool "Intel Machine drivers"
+ depends on SND_SOC_INTEL_SST_TOPLEVEL || SND_SOC_SOF_INTEL_TOPLEVEL
+ help
+- Intel ASoC Machine Drivers. If you have a Intel machine that
+- has an audio controller with a DSP and I2S or DMIC port, then
+- enable this option by saying Y
++ Intel ASoC Machine Drivers. If you have a Intel machine that
++ has an audio controller with a DSP and I2S or DMIC port, then
++ enable this option by saying Y
+
+- Note that the answer to this question doesn't directly affect the
+- kernel: saying N will just cause the configurator to skip all
+- the questions about Intel ASoC machine drivers.
++ Note that the answer to this question doesn't directly affect the
++ kernel: saying N will just cause the configurator to skip all
++ the questions about Intel ASoC machine drivers.
+
+ if SND_SOC_INTEL_MACH
+
+@@ -114,11 +114,11 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
+ depends on X86_INTEL_LPSS || COMPILE_TEST
+ select SND_SOC_ACPI
+ select SND_SOC_RT5670
+- help
+- This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
+- platforms with RT5672 audio codec.
+- Say Y or m if you have such a device. This is a recommended option.
+- If unsure select "N".
++ help
++ This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
++ platforms with RT5672 audio codec.
++ Say Y or m if you have such a device. This is a recommended option.
++ If unsure select "N".
+
+ config SND_SOC_INTEL_CHT_BSW_RT5645_MACH
+ tristate "Cherrytrail & Braswell with RT5645/5650 codec"
+@@ -311,20 +311,20 @@ config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
+ If unsure select "N".
+
+ config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
+- tristate "KBL with RT5663, RT5514 and MAX98927 in I2S Mode"
++ tristate "KBL with RT5663, RT5514 and MAX98927 in I2S Mode"
+ depends on I2C && ACPI
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+- depends on SPI
+- select SND_SOC_RT5663
+- select SND_SOC_RT5514
+- select SND_SOC_RT5514_SPI
+- select SND_SOC_MAX98927
+- select SND_SOC_HDAC_HDMI
+- help
+- This adds support for ASoC Onboard Codec I2S machine driver. This will
+- create an alsa sound card for RT5663 + RT5514 + MAX98927.
+- Say Y or m if you have such a device. This is a recommended option.
+- If unsure select "N".
++ depends on SPI
++ select SND_SOC_RT5663
++ select SND_SOC_RT5514
++ select SND_SOC_RT5514_SPI
++ select SND_SOC_MAX98927
++ select SND_SOC_HDAC_HDMI
++ help
++ This adds support for ASoC Onboard Codec I2S machine driver. This will
++ create an alsa sound card for RT5663 + RT5514 + MAX98927.
++ Say Y or m if you have such a device. This is a recommended option.
++ If unsure select "N".
+
+ config SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH
+ tristate "KBL with DA7219 and MAX98357A in I2S Mode"
+@@ -393,7 +393,7 @@ config SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH
+ help
+ This adds support for ASoC machine driver for Intel platforms
+ SKL/KBL/BXT/APL with iDisp, HDA audio codecs.
+- Say Y or m if you have such a device. This is a recommended option.
++ Say Y or m if you have such a device. This is a recommended option.
+ If unsure select "N".
+
+ endif ## SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC
+diff --git a/sound/soc/pxa/Kconfig b/sound/soc/pxa/Kconfig
+index 213d4dab0346..295cfffa4646 100644
+--- a/sound/soc/pxa/Kconfig
++++ b/sound/soc/pxa/Kconfig
+@@ -190,14 +190,14 @@ config SND_PXA2XX_SOC_MAGICIAN
+ HTC Magician.
+
+ config SND_PXA2XX_SOC_MIOA701
+- tristate "SoC Audio support for MIO A701"
+- depends on SND_PXA2XX_SOC && MACH_MIOA701
++ tristate "SoC Audio support for MIO A701"
++ depends on SND_PXA2XX_SOC && MACH_MIOA701
+ depends on AC97_BUS=n
+- select SND_PXA2XX_SOC_AC97
+- select SND_SOC_WM9713
+- help
+- Say Y if you want to add support for SoC audio on the
+- MIO A701.
++ select SND_PXA2XX_SOC_AC97
++ select SND_SOC_WM9713
++ help
++ Say Y if you want to add support for SoC audio on the
++ MIO A701.
+
+ config SND_PXA2XX_SOC_IMOTE2
+ tristate "SoC Audio support for IMote 2"
+@@ -205,7 +205,7 @@ config SND_PXA2XX_SOC_IMOTE2
+ select SND_PXA2XX_SOC_I2S
+ select SND_SOC_WM8940
+ help
+- Say Y if you want to add support for SoC audio on the
++ Say Y if you want to add support for SoC audio on the
+ IMote 2.
+
+ config SND_MMP_SOC_BROWNSTONE
+diff --git a/sound/soc/qcom/Kconfig b/sound/soc/qcom/Kconfig
+index 60086858e920..6530d2462a9e 100644
+--- a/sound/soc/qcom/Kconfig
++++ b/sound/soc/qcom/Kconfig
+@@ -3,8 +3,8 @@ config SND_SOC_QCOM
+ tristate "ASoC support for QCOM platforms"
+ depends on ARCH_QCOM || COMPILE_TEST
+ help
+- Say Y or M if you want to add support to use audio devices
+- in Qualcomm Technologies SOC-based platforms.
++ Say Y or M if you want to add support to use audio devices
++ in Qualcomm Technologies SOC-based platforms.
+
+ config SND_SOC_LPASS_CPU
+ tristate
+@@ -30,17 +30,17 @@ config SND_SOC_STORM
+ select SND_SOC_LPASS_IPQ806X
+ select SND_SOC_MAX98357A
+ help
+- Say Y or M if you want add support for SoC audio on the
+- Qualcomm Technologies IPQ806X-based Storm board.
++ Say Y or M if you want add support for SoC audio on the
++ Qualcomm Technologies IPQ806X-based Storm board.
+
+ config SND_SOC_APQ8016_SBC
+ tristate "SoC Audio support for APQ8016 SBC platforms"
+ depends on SND_SOC_QCOM
+ select SND_SOC_LPASS_APQ8016
+ help
+- Support for Qualcomm Technologies LPASS audio block in
+- APQ8016 SOC-based systems.
+- Say Y if you want to use audio devices on MI2S.
++ Support for Qualcomm Technologies LPASS audio block in
++ APQ8016 SOC-based systems.
++ Say Y if you want to use audio devices on MI2S.
+
+ config SND_SOC_QCOM_COMMON
+ tristate
+@@ -93,9 +93,9 @@ config SND_SOC_MSM8996
+ select SND_SOC_QDSP6
+ select SND_SOC_QCOM_COMMON
+ help
+- Support for Qualcomm Technologies LPASS audio block in
+- APQ8096 SoC-based systems.
+- Say Y if you want to use audio device on this SoCs
++ Support for Qualcomm Technologies LPASS audio block in
++ APQ8096 SoC-based systems.
++ Say Y if you want to use audio device on this SoCs
+
+ config SND_SOC_SDM845
+ tristate "SoC Machine driver for SDM845 boards"
+diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
+index 638983123d8f..9304177de78a 100644
+--- a/sound/soc/samsung/Kconfig
++++ b/sound/soc/samsung/Kconfig
+@@ -195,10 +195,10 @@ config SND_SOC_ODROID
+ Say Y here to enable audio support for the Odroid XU3/XU4.
+
+ config SND_SOC_ARNDALE_RT5631_ALC5631
+- tristate "Audio support for RT5631(ALC5631) on Arndale Board"
+- depends on I2C
+- select SND_SAMSUNG_I2S
+- select SND_SOC_RT5631
++ tristate "Audio support for RT5631(ALC5631) on Arndale Board"
++ depends on I2C
++ select SND_SAMSUNG_I2S
++ select SND_SOC_RT5631
+
+ config SND_SOC_SAMSUNG_TM2_WM5110
+ tristate "SoC I2S Audio support for WM5110 on TM2 board"
+diff --git a/sound/soc/sof/imx/Kconfig b/sound/soc/sof/imx/Kconfig
+index 71f318bc2c74..bae4f7bf5f75 100644
+--- a/sound/soc/sof/imx/Kconfig
++++ b/sound/soc/sof/imx/Kconfig
+@@ -5,9 +5,9 @@ config SND_SOC_SOF_IMX_TOPLEVEL
+ depends on ARM64|| COMPILE_TEST
+ depends on SND_SOC_SOF_OF
+ help
+- This adds support for Sound Open Firmware for NXP i.MX platforms.
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for NXP i.MX platforms.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ if SND_SOC_SOF_IMX_TOPLEVEL
+
+@@ -16,9 +16,9 @@ config SND_SOC_SOF_IMX8_SUPPORT
+ depends on IMX_SCU
+ depends on IMX_DSP
+ help
+- This adds support for Sound Open Firmware for NXP i.MX8 platforms
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for NXP i.MX8 platforms
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ config SND_SOC_SOF_IMX8
+ def_tristate SND_SOC_SOF_OF
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index f7c30a08ffbf..b27fd3fdf335 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -37,7 +37,7 @@ config SND_SOC_SOF_INTEL_PCI
+ config SND_SOC_SOF_INTEL_HIFI_EP_IPC
+ tristate
+ help
+- This option is not user-selectable but automagically handled by
++ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_INTEL_ATOM_HIFI_EP
+@@ -234,31 +234,31 @@ config SND_SOC_SOF_COMETLAKE_H_SUPPORT
+ config SND_SOC_SOF_TIGERLAKE_SUPPORT
+ bool "SOF support for Tigerlake"
+ help
+- This adds support for Sound Open Firmware for Intel(R) platforms
+- using the Tigerlake processors.
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for Intel(R) platforms
++ using the Tigerlake processors.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ config SND_SOC_SOF_TIGERLAKE
+ tristate
+ select SND_SOC_SOF_HDA_COMMON
+ help
+- This option is not user-selectable but automagically handled by
++ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_ELKHARTLAKE_SUPPORT
+ bool "SOF support for ElkhartLake"
+ help
+- This adds support for Sound Open Firmware for Intel(R) platforms
+- using the ElkhartLake processors.
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for Intel(R) platforms
++ using the ElkhartLake processors.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ config SND_SOC_SOF_ELKHARTLAKE
+ tristate
+ select SND_SOC_SOF_HDA_COMMON
+ help
+- This option is not user-selectable but automagically handled by
++ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_JASPERLAKE_SUPPORT
+diff --git a/sound/soc/xilinx/Kconfig b/sound/soc/xilinx/Kconfig
+index 69973179ef15..1d3586b68db7 100644
+--- a/sound/soc/xilinx/Kconfig
++++ b/sound/soc/xilinx/Kconfig
+@@ -9,15 +9,15 @@ config SND_SOC_XILINX_I2S
+ encapsulates PCM in AES format and sends AES data.
+
+ config SND_SOC_XILINX_AUDIO_FORMATTER
+- tristate "Audio support for the the Xilinx audio formatter"
+- help
+- Select this option to enable Xilinx audio formatter
+- support. This provides DMA platform device support for
+- audio functionality.
++ tristate "Audio support for the the Xilinx audio formatter"
++ help
++ Select this option to enable Xilinx audio formatter
++ support. This provides DMA platform device support for
++ audio functionality.
+
+ config SND_SOC_XILINX_SPDIF
+- tristate "Audio support for the the Xilinx SPDIF"
+- help
+- Select this option to enable Xilinx SPDIF Audio.
+- This provides playback and capture of SPDIF audio in
+- AES format.
++ tristate "Audio support for the the Xilinx SPDIF"
++ help
++ Select this option to enable Xilinx SPDIF Audio.
++ This provides playback and capture of SPDIF audio in
++ AES format.
+diff --git a/sound/soc/zte/Kconfig b/sound/soc/zte/Kconfig
+index a7842e4b791c..a23d4f13ca19 100644
+--- a/sound/soc/zte/Kconfig
++++ b/sound/soc/zte/Kconfig
+@@ -18,9 +18,9 @@ config ZX_I2S
+ ZTE ZX I2S interface
+
+ config ZX_TDM
+- tristate "ZTE ZX TDM Driver Support"
+- depends on COMMON_CLK
+- select SND_SOC_GENERIC_DMAENGINE_PCM
+- help
+- Say Y or M if you want to add support for codecs attached to the
+- ZTE ZX TDM interface
++ tristate "ZTE ZX TDM Driver Support"
++ depends on COMMON_CLK
++ select SND_SOC_GENERIC_DMAENGINE_PCM
++ help
++ Say Y or M if you want to add support for codecs attached to the
++ ZTE ZX TDM interface
+diff --git a/sound/usb/Kconfig b/sound/usb/Kconfig
+index e2c53a0841da..059242f15d75 100644
+--- a/sound/usb/Kconfig
++++ b/sound/usb/Kconfig
+@@ -107,24 +107,24 @@ config SND_USB_US122L
+ will be called snd-usb-us122l.
+
+ config SND_USB_6FIRE
+- tristate "TerraTec DMX 6Fire USB"
+- select FW_LOADER
+- select BITREVERSE
+- select SND_RAWMIDI
+- select SND_PCM
+- select SND_VMASTER
+- help
+- Say Y here to include support for TerraTec 6fire DMX USB interface.
+-
+- You will need firmware files in order to be able to use the device
+- after it has been coldstarted. An install script for the firmware
+- and further help can be found at
+- http://sixfireusb.sourceforge.net
++ tristate "TerraTec DMX 6Fire USB"
++ select FW_LOADER
++ select BITREVERSE
++ select SND_RAWMIDI
++ select SND_PCM
++ select SND_VMASTER
++ help
++ Say Y here to include support for TerraTec 6fire DMX USB interface.
++
++ You will need firmware files in order to be able to use the device
++ after it has been coldstarted. An install script for the firmware
++ and further help can be found at
++ http://sixfireusb.sourceforge.net
+
+ config SND_USB_HIFACE
+- tristate "M2Tech hiFace USB-SPDIF driver"
+- select SND_PCM
+- help
++ tristate "M2Tech hiFace USB-SPDIF driver"
++ select SND_PCM
++ help
+ Select this option to include support for M2Tech hiFace USB-SPDIF
+ interface.
+
+--
+2.20.1
+
+
+From d04677b943723aa40149b14f28e02a51cdf68080 Mon Sep 17 00:00:00 2001
+From: Sam McNally <sammc@chromium.org>
+Date: Tue, 17 Sep 2019 15:49:33 +1000
+Subject: [PATCH 053/130] ASoC: Intel: cht_bsw_rt5645: Add quirk for boards
+ using pmc_plt_clk_0
+
+As of commit 648e921888ad ("clk: x86: Stop marking clocks as
+CLK_IS_CRITICAL"), the cht_bsw_rt5645 driver needs to enable the clock
+it's using for the codec's mclk. It does this from commit 7735bce05a9c
+("ASoC: Intel: boards: use devm_clk_get() unconditionally"), enabling
+pmc_plt_clk_3. However, Strago family Chromebooks use pmc_plt_clk_0 for
+the codec mclk, resulting in white noise with some digital microphones.
+Add a DMI-based quirk for Strago family Chromebooks to use pmc_plt_clk_0
+instead - mirroring the changes made to cht_bsw_max98090_ti in
+commit a182ecd3809c ("ASoC: intel: cht_bsw_max98090_ti: Add quirk for
+boards using pmc_plt_clk_0") and making use of the existing
+dmi_check_system() call and related infrastructure added in
+commit 22af29114eb4 ("ASoC: Intel: cht-bsw-rt5645: add quirks for
+SSP0/AIF1/AIF2 routing").
+
+Signed-off-by: Sam McNally <sammc@chromium.org>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190917054933.209335-1-sammc@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit adebb11139029ddf1fba6f796c4a476f17eacddc)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/cht_bsw_rt5645.c | 26 +++++++++++++++++++------
+ 1 file changed, 20 insertions(+), 6 deletions(-)
+
+diff --git a/sound/soc/intel/boards/cht_bsw_rt5645.c b/sound/soc/intel/boards/cht_bsw_rt5645.c
+index 8879c3be29d5..c68a5b85a4a0 100644
+--- a/sound/soc/intel/boards/cht_bsw_rt5645.c
++++ b/sound/soc/intel/boards/cht_bsw_rt5645.c
+@@ -48,6 +48,7 @@ struct cht_mc_private {
+ #define CHT_RT5645_SSP2_AIF2 BIT(16) /* default is using AIF1 */
+ #define CHT_RT5645_SSP0_AIF1 BIT(17)
+ #define CHT_RT5645_SSP0_AIF2 BIT(18)
++#define CHT_RT5645_PMC_PLT_CLK_0 BIT(19)
+
+ static unsigned long cht_rt5645_quirk = 0;
+
+@@ -59,6 +60,8 @@ static void log_quirks(struct device *dev)
+ dev_info(dev, "quirk SSP0_AIF1 enabled");
+ if (cht_rt5645_quirk & CHT_RT5645_SSP0_AIF2)
+ dev_info(dev, "quirk SSP0_AIF2 enabled");
++ if (cht_rt5645_quirk & CHT_RT5645_PMC_PLT_CLK_0)
++ dev_info(dev, "quirk PMC_PLT_CLK_0 enabled");
+ }
+
+ static int platform_clock_control(struct snd_soc_dapm_widget *w,
+@@ -226,15 +229,21 @@ static int cht_aif1_hw_params(struct snd_pcm_substream *substream,
+ return 0;
+ }
+
+-/* uncomment when we have a real quirk
+ static int cht_rt5645_quirk_cb(const struct dmi_system_id *id)
+ {
+ cht_rt5645_quirk = (unsigned long)id->driver_data;
+ return 1;
+ }
+-*/
+
+ static const struct dmi_system_id cht_rt5645_quirk_table[] = {
++ {
++ /* Strago family Chromebooks */
++ .callback = cht_rt5645_quirk_cb,
++ .matches = {
++ DMI_MATCH(DMI_PRODUCT_FAMILY, "Intel_Strago"),
++ },
++ .driver_data = (void *)CHT_RT5645_PMC_PLT_CLK_0,
++ },
+ {
+ },
+ };
+@@ -526,6 +535,7 @@ static int snd_cht_mc_probe(struct platform_device *pdev)
+ int dai_index = 0;
+ int ret_val = 0;
+ int i;
++ const char *mclk_name;
+
+ drv = devm_kzalloc(&pdev->dev, sizeof(*drv), GFP_KERNEL);
+ if (!drv)
+@@ -662,11 +672,15 @@ static int snd_cht_mc_probe(struct platform_device *pdev)
+ if (ret_val)
+ return ret_val;
+
+- drv->mclk = devm_clk_get(&pdev->dev, "pmc_plt_clk_3");
++ if (cht_rt5645_quirk & CHT_RT5645_PMC_PLT_CLK_0)
++ mclk_name = "pmc_plt_clk_0";
++ else
++ mclk_name = "pmc_plt_clk_3";
++
++ drv->mclk = devm_clk_get(&pdev->dev, mclk_name);
+ if (IS_ERR(drv->mclk)) {
+- dev_err(&pdev->dev,
+- "Failed to get MCLK from pmc_plt_clk_3: %ld\n",
+- PTR_ERR(drv->mclk));
++ dev_err(&pdev->dev, "Failed to get MCLK from %s: %ld\n",
++ mclk_name, PTR_ERR(drv->mclk));
+ return PTR_ERR(drv->mclk);
+ }
+
+--
+2.20.1
+
+
+From 83c22d6aef225035385971716098b753ea2d145e Mon Sep 17 00:00:00 2001
+From: Naveen M <naveen.m@intel.com>
+Date: Tue, 15 Oct 2019 00:28:00 +0800
+Subject: [PATCH 054/130] ASoC: Intel: eve: Enable mclk and ssp sclk early
+
+rt5663 and rt5514 needs mclk/sclk early to synchronize its internal
+clocks.
+
+Signed-off-by: Naveen M <naveen.m@intel.com>
+Signed-off-by: Harsha Priya <harshapriya.n@intel.com>
+Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
+Signed-off-by: Brent Lu <brent.lu@intel.com>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/1571070480-25666-1-git-send-email-brent.lu@intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 47cbea21628187c32efad562867aa2b6760d83cc)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 1 +
+ .../intel/boards/kbl_rt5663_rt5514_max98927.c | 94 +++++++++++++++++++
+ 2 files changed, 95 insertions(+)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 882ff36a7c9c..778422d36e61 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -320,6 +320,7 @@ config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
+ select SND_SOC_RT5514_SPI
+ select SND_SOC_MAX98927
+ select SND_SOC_HDAC_HDMI
++ select SND_SOC_INTEL_SKYLAKE_SSP_CLK
+ help
+ This adds support for ASoC Onboard Codec I2S machine driver. This will
+ create an alsa sound card for RT5663 + RT5514 + MAX98927.
+diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+index d14ca327c684..ea0005d7d3c8 100644
+--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
++++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+@@ -22,6 +22,9 @@
+ #include "../../codecs/rt5514.h"
+ #include "../../codecs/rt5663.h"
+ #include "../../codecs/hdac_hdmi.h"
++#include <linux/clk.h>
++#include <linux/clk-provider.h>
++#include <linux/clkdev.h>
+
+ #define KBL_REALTEK_CODEC_DAI "rt5663-aif"
+ #define KBL_REALTEK_DMIC_CODEC_DAI "rt5514-aif1"
+@@ -50,6 +53,8 @@ struct kbl_codec_private {
+ struct snd_soc_jack kabylake_headset;
+ struct list_head hdmi_pcm_list;
+ struct snd_soc_jack kabylake_hdmi[2];
++ struct clk *mclk;
++ struct clk *sclk;
+ };
+
+ enum {
+@@ -71,6 +76,61 @@ static const struct snd_kcontrol_new kabylake_controls[] = {
+ SOC_DAPM_PIN_SWITCH("DMIC"),
+ };
+
++static int platform_clock_control(struct snd_soc_dapm_widget *w,
++ struct snd_kcontrol *k, int event)
++{
++ struct snd_soc_dapm_context *dapm = w->dapm;
++ struct snd_soc_card *card = dapm->card;
++ struct kbl_codec_private *priv = snd_soc_card_get_drvdata(card);
++ int ret = 0;
++
++ /*
++ * MCLK/SCLK need to be ON early for a successful synchronization of
++ * codec internal clock. And the clocks are turned off during
++ * POST_PMD after the stream is stopped.
++ */
++ switch (event) {
++ case SND_SOC_DAPM_PRE_PMU:
++ /* Enable MCLK */
++ ret = clk_set_rate(priv->mclk, 24000000);
++ if (ret < 0) {
++ dev_err(card->dev, "Can't set rate for mclk, err: %d\n",
++ ret);
++ return ret;
++ }
++
++ ret = clk_prepare_enable(priv->mclk);
++ if (ret < 0) {
++ dev_err(card->dev, "Can't enable mclk, err: %d\n", ret);
++ return ret;
++ }
++
++ /* Enable SCLK */
++ ret = clk_set_rate(priv->sclk, 3072000);
++ if (ret < 0) {
++ dev_err(card->dev, "Can't set rate for sclk, err: %d\n",
++ ret);
++ clk_disable_unprepare(priv->mclk);
++ return ret;
++ }
++
++ ret = clk_prepare_enable(priv->sclk);
++ if (ret < 0) {
++ dev_err(card->dev, "Can't enable sclk, err: %d\n", ret);
++ clk_disable_unprepare(priv->mclk);
++ }
++ break;
++ case SND_SOC_DAPM_POST_PMD:
++ clk_disable_unprepare(priv->mclk);
++ clk_disable_unprepare(priv->sclk);
++ break;
++ default:
++ return 0;
++ }
++
++ return 0;
++}
++
+ static const struct snd_soc_dapm_widget kabylake_widgets[] = {
+ SND_SOC_DAPM_HP("Headphone Jack", NULL),
+ SND_SOC_DAPM_MIC("Headset Mic", NULL),
+@@ -79,11 +139,15 @@ static const struct snd_soc_dapm_widget kabylake_widgets[] = {
+ SND_SOC_DAPM_MIC("DMIC", NULL),
+ SND_SOC_DAPM_SPK("HDMI1", NULL),
+ SND_SOC_DAPM_SPK("HDMI2", NULL),
++ SND_SOC_DAPM_SUPPLY("Platform Clock", SND_SOC_NOPM, 0, 0,
++ platform_clock_control, SND_SOC_DAPM_PRE_PMU |
++ SND_SOC_DAPM_POST_PMD),
+
+ };
+
+ static const struct snd_soc_dapm_route kabylake_map[] = {
+ /* Headphones */
++ { "Headphone Jack", NULL, "Platform Clock" },
+ { "Headphone Jack", NULL, "HPOL" },
+ { "Headphone Jack", NULL, "HPOR" },
+
+@@ -92,6 +156,7 @@ static const struct snd_soc_dapm_route kabylake_map[] = {
+ { "Right Spk", NULL, "Right BE_OUT" },
+
+ /* other jacks */
++ { "Headset Mic", NULL, "Platform Clock" },
+ { "IN1P", NULL, "Headset Mic" },
+ { "IN1N", NULL, "Headset Mic" },
+
+@@ -643,6 +708,7 @@ static int kabylake_audio_probe(struct platform_device *pdev)
+ {
+ struct kbl_codec_private *ctx;
+ struct snd_soc_acpi_mach *mach;
++ int ret = 0;
+
+ ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL);
+ if (!ctx)
+@@ -658,6 +724,34 @@ static int kabylake_audio_probe(struct platform_device *pdev)
+ dmic_constraints = mach->mach_params.dmic_num == 2 ?
+ &constraints_dmic_2ch : &constraints_dmic_channels;
+
++ ctx->mclk = devm_clk_get(&pdev->dev, "ssp1_mclk");
++ if (IS_ERR(ctx->mclk)) {
++ ret = PTR_ERR(ctx->mclk);
++ if (ret == -ENOENT) {
++ dev_info(&pdev->dev,
++ "Failed to get ssp1_mclk, defer probe\n");
++ return -EPROBE_DEFER;
++ }
++
++ dev_err(&pdev->dev, "Failed to get ssp1_mclk with err:%d\n",
++ ret);
++ return ret;
++ }
++
++ ctx->sclk = devm_clk_get(&pdev->dev, "ssp1_sclk");
++ if (IS_ERR(ctx->sclk)) {
++ ret = PTR_ERR(ctx->sclk);
++ if (ret == -ENOENT) {
++ dev_info(&pdev->dev,
++ "Failed to get ssp1_sclk, defer probe\n");
++ return -EPROBE_DEFER;
++ }
++
++ dev_err(&pdev->dev, "Failed to get ssp1_sclk with err:%d\n",
++ ret);
++ return ret;
++ }
++
+ return devm_snd_soc_register_card(&pdev->dev, &kabylake_audio_card);
+ }
+
+--
+2.20.1
+
+
+From f80cddbefe9bca88b832b053587286c56a35a6fc Mon Sep 17 00:00:00 2001
+From: Brent Lu <brent.lu@intel.com>
+Date: Fri, 25 Oct 2019 17:11:31 +0800
+Subject: [PATCH 055/130] ASoC: eve: implement set_bias_level function for
+ rt5514
+
+The first DMIC capture always fail (zero sequence data from PCM port)
+after using DSP hotwording function (i.e. Google assistant).
+
+This rt5514 codec requires to control mclk directly in the set_bias_level
+function. Implement this function in machine driver to control the
+ssp1_mclk clock explicitly could fix this issue.
+
+Signed-off-by: Brent Lu <brent.lu@intel.com>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/1571994691-20199-1-git-send-email-brent.lu@intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 15747a80207585fe942416025540c0ff34e2aef8)
+Bugzilla: 1772498
+---
+ .../intel/boards/kbl_rt5663_rt5514_max98927.c | 50 +++++++++++++++++++
+ 1 file changed, 50 insertions(+)
+
+diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+index ea0005d7d3c8..a1056cda3dd7 100644
+--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
++++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+@@ -653,6 +653,55 @@ static struct snd_soc_dai_link kabylake_dais[] = {
+ },
+ };
+
++static int kabylake_set_bias_level(struct snd_soc_card *card,
++ struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)
++{
++ struct snd_soc_component *component = dapm->component;
++ struct kbl_codec_private *priv = snd_soc_card_get_drvdata(card);
++ int ret = 0;
++
++ if (!component || strcmp(component->name, RT5514_DEV_NAME))
++ return 0;
++
++ if (IS_ERR(priv->mclk))
++ return 0;
++
++ /*
++ * It's required to control mclk directly in the set_bias_level
++ * function for rt5514 codec or the recording function could
++ * break.
++ */
++ switch (level) {
++ case SND_SOC_BIAS_PREPARE:
++ if (dapm->bias_level == SND_SOC_BIAS_ON) {
++ dev_dbg(card->dev, "Disable mclk");
++ clk_disable_unprepare(priv->mclk);
++ } else {
++ dev_dbg(card->dev, "Enable mclk");
++ ret = clk_set_rate(priv->mclk, 24000000);
++ if (ret) {
++ dev_err(card->dev, "Can't set rate for mclk, err: %d\n",
++ ret);
++ return ret;
++ }
++
++ ret = clk_prepare_enable(priv->mclk);
++ if (ret) {
++ dev_err(card->dev, "Can't enable mclk, err: %d\n",
++ ret);
++
++ /* mclk is already enabled in FW */
++ ret = 0;
++ }
++ }
++ break;
++ default:
++ break;
++ }
++
++ return ret;
++}
++
+ static int kabylake_card_late_probe(struct snd_soc_card *card)
+ {
+ struct kbl_codec_private *ctx = snd_soc_card_get_drvdata(card);
+@@ -692,6 +741,7 @@ static struct snd_soc_card kabylake_audio_card = {
+ .owner = THIS_MODULE,
+ .dai_link = kabylake_dais,
+ .num_links = ARRAY_SIZE(kabylake_dais),
++ .set_bias_level = kabylake_set_bias_level,
+ .controls = kabylake_controls,
+ .num_controls = ARRAY_SIZE(kabylake_controls),
+ .dapm_widgets = kabylake_widgets,
+--
+2.20.1
+
+
+From 1b41ab23dfde6f139695afbb1cef0846453a8070 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:11 +0200
+Subject: [PATCH 056/130] ASoC: Intel: skl-hda-dsp-generic: use
+ snd-hda-codec-hdmi
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+When snd-hda-codec-hdmi is used, the PCM device numbers are
+parsed from card topology and passed to the codec driver.
+This needs to be done at runtime as topology changes may
+affect PCM device allocation.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-4-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7de9a47c8971bdec07cc9a62e948382003c5908f)
+Bugzilla: 1772498
+---
+ include/sound/soc-acpi.h | 2 +
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/hda_dsp_common.c | 85 ++++++++++++++++++++
+ sound/soc/intel/boards/hda_dsp_common.h | 32 ++++++++
+ sound/soc/intel/boards/skl_hda_dsp_common.c | 6 ++
+ sound/soc/intel/boards/skl_hda_dsp_common.h | 23 ++++++
+ sound/soc/intel/boards/skl_hda_dsp_generic.c | 1 +
+ 7 files changed, 150 insertions(+), 1 deletion(-)
+ create mode 100644 sound/soc/intel/boards/hda_dsp_common.c
+ create mode 100644 sound/soc/intel/boards/hda_dsp_common.h
+
+diff --git a/include/sound/soc-acpi.h b/include/sound/soc-acpi.h
+index 35b38e41e5b2..26d57bc9a91e 100644
+--- a/include/sound/soc-acpi.h
++++ b/include/sound/soc-acpi.h
+@@ -60,12 +60,14 @@ static inline struct snd_soc_acpi_mach *snd_soc_acpi_codec_list(void *arg)
+ * @acpi_ipc_irq_index: used for BYT-CR detection
+ * @platform: string used for HDaudio codec support
+ * @codec_mask: used for HDAudio support
++ * @common_hdmi_codec_drv: use commom HDAudio HDMI codec driver
+ */
+ struct snd_soc_acpi_mach_params {
+ u32 acpi_ipc_irq_index;
+ const char *platform;
+ u32 codec_mask;
+ u32 dmic_num;
++ bool common_hdmi_codec_drv;
+ };
+
+ /**
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 6445f90ea542..52e990b16b0d 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -24,7 +24,7 @@ snd-soc-kbl_rt5663_max98927-objs := kbl_rt5663_max98927.o
+ snd-soc-kbl_rt5663_rt5514_max98927-objs := kbl_rt5663_rt5514_max98927.o
+ snd-soc-kbl_rt5660-objs := kbl_rt5660.o
+ snd-soc-skl_rt286-objs := skl_rt286.o
+-snd-soc-skl_hda_dsp-objs := skl_hda_dsp_generic.o skl_hda_dsp_common.o
++snd-soc-skl_hda_dsp-objs := skl_hda_dsp_generic.o skl_hda_dsp_common.o hda_dsp_common.o
+ snd-skl_nau88l25_max98357a-objs := skl_nau88l25_max98357a.o
+ snd-soc-skl_nau88l25_ssm4567-objs := skl_nau88l25_ssm4567.o
+
+diff --git a/sound/soc/intel/boards/hda_dsp_common.c b/sound/soc/intel/boards/hda_dsp_common.c
+new file mode 100644
+index 000000000000..ed36b68d6705
+--- /dev/null
++++ b/sound/soc/intel/boards/hda_dsp_common.c
+@@ -0,0 +1,85 @@
++// SPDX-License-Identifier: GPL-2.0
++//
++// Copyright(c) 2019 Intel Corporation. All rights reserved.
++
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/hda_codec.h>
++#include <sound/hda_i915.h>
++#include "../../codecs/hdac_hda.h"
++
++#include "hda_dsp_common.h"
++
++/*
++ * Search card topology and return PCM device number
++ * matching Nth HDMI device (zero-based index).
++ */
++struct snd_pcm *hda_dsp_hdmi_pcm_handle(struct snd_soc_card *card,
++ int hdmi_idx)
++{
++ struct snd_soc_pcm_runtime *rtd;
++ struct snd_pcm *spcm;
++ int i = 0;
++
++ for_each_card_rtds(card, rtd) {
++ spcm = rtd->pcm ?
++ rtd->pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].pcm : NULL;
++ if (spcm && strstr(spcm->id, "HDMI")) {
++ if (i == hdmi_idx)
++ return rtd->pcm;
++ ++i;
++ }
++ }
++
++ return NULL;
++}
++
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
++/*
++ * Search card topology and register HDMI PCM related controls
++ * to codec driver.
++ */
++int hda_dsp_hdmi_build_controls(struct snd_soc_card *card,
++ struct snd_soc_component *comp)
++{
++ struct hdac_hda_priv *hda_pvt;
++ struct hda_codec *hcodec;
++ struct snd_pcm *spcm;
++ struct hda_pcm *hpcm;
++ int err = 0, i = 0;
++
++ if (!comp)
++ return -EINVAL;
++
++ hda_pvt = snd_soc_component_get_drvdata(comp);
++ hcodec = &hda_pvt->codec;
++
++ list_for_each_entry(hpcm, &hcodec->pcm_list_head, list) {
++ spcm = hda_dsp_hdmi_pcm_handle(card, i);
++ if (spcm) {
++ hpcm->pcm = spcm;
++ hpcm->device = spcm->device;
++ dev_dbg(card->dev,
++ "%s: mapping HDMI converter %d to PCM %d (%p)\n",
++ __func__, i, hpcm->device, spcm);
++ } else {
++ hpcm->pcm = 0;
++ hpcm->device = SNDRV_PCM_INVALID_DEVICE;
++ dev_warn(card->dev,
++ "%s: no PCM in topology for HDMI converter %d\n\n",
++ __func__, i);
++ }
++ i++;
++ }
++ snd_hdac_display_power(hcodec->core.bus,
++ HDA_CODEC_IDX_CONTROLLER, true);
++ err = snd_hda_codec_build_controls(hcodec);
++ if (err < 0)
++ dev_err(card->dev, "unable to create controls %d\n", err);
++ snd_hdac_display_power(hcodec->core.bus,
++ HDA_CODEC_IDX_CONTROLLER, false);
++
++ return err;
++}
++
++#endif
+diff --git a/sound/soc/intel/boards/hda_dsp_common.h b/sound/soc/intel/boards/hda_dsp_common.h
+new file mode 100644
+index 000000000000..431f7f09dccb
+--- /dev/null
++++ b/sound/soc/intel/boards/hda_dsp_common.h
+@@ -0,0 +1,32 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++/*
++ * Copyright(c) 2019 Intel Corporation.
++ */
++
++/*
++ * This file defines helper functions used by multiple
++ * Intel HDA based machine drivers.
++ */
++
++#ifndef __HDA_DSP_COMMON_H
++#define __HDA_DSP_COMMON_H
++
++#include <sound/hda_codec.h>
++#include <sound/hda_i915.h>
++#include "../../codecs/hdac_hda.h"
++
++struct snd_pcm *hda_dsp_hdmi_pcm_handle(struct snd_soc_card *card,
++ int hdmi_idx);
++
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
++int hda_dsp_hdmi_build_controls(struct snd_soc_card *card,
++ struct snd_soc_component *comp);
++#else
++static inline int hda_dsp_hdmi_build_controls(struct snd_soc_card *card,
++ struct snd_soc_component *comp)
++{
++ return -EINVAL;
++}
++#endif
++
++#endif /* __HDA_DSP_COMMON_H */
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_common.c b/sound/soc/intel/boards/skl_hda_dsp_common.c
+index 58409b6e476e..eb419e1ec42b 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_common.c
++++ b/sound/soc/intel/boards/skl_hda_dsp_common.c
+@@ -14,6 +14,9 @@
+ #include "../../codecs/hdac_hdmi.h"
+ #include "skl_hda_dsp_common.h"
+
++#include <sound/hda_codec.h>
++#include "../../codecs/hdac_hda.h"
++
+ #define NAME_SIZE 32
+
+ int skl_hda_hdmi_add_pcm(struct snd_soc_card *card, int device)
+@@ -136,6 +139,9 @@ int skl_hda_hdmi_jack_init(struct snd_soc_card *card)
+ char jack_name[NAME_SIZE];
+ int err;
+
++ if (ctx->common_hdmi_codec_drv)
++ return skl_hda_hdmi_build_controls(card);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_common.h b/sound/soc/intel/boards/skl_hda_dsp_common.h
+index daa582e513b2..bbe6e2acfda3 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_common.h
++++ b/sound/soc/intel/boards/skl_hda_dsp_common.h
+@@ -14,6 +14,9 @@
+ #include <linux/platform_device.h>
+ #include <sound/core.h>
+ #include <sound/jack.h>
++#include <sound/hda_codec.h>
++#include "../../codecs/hdac_hda.h"
++#include "hda_dsp_common.h"
+
+ #define HDA_DSP_MAX_BE_DAI_LINKS 7
+
+@@ -29,10 +32,30 @@ struct skl_hda_private {
+ int pcm_count;
+ int dai_index;
+ const char *platform_name;
++ bool common_hdmi_codec_drv;
+ };
+
+ extern struct snd_soc_dai_link skl_hda_be_dai_links[HDA_DSP_MAX_BE_DAI_LINKS];
+ int skl_hda_hdmi_jack_init(struct snd_soc_card *card);
+ int skl_hda_hdmi_add_pcm(struct snd_soc_card *card, int device);
+
++/*
++ * Search card topology and register HDMI PCM related controls
++ * to codec driver.
++ */
++static inline int skl_hda_hdmi_build_controls(struct snd_soc_card *card)
++{
++ struct skl_hda_private *ctx = snd_soc_card_get_drvdata(card);
++ struct snd_soc_component *component;
++ struct skl_hda_hdmi_pcm *pcm;
++
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct skl_hda_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++ if (!component)
++ return -EINVAL;
++
++ return hda_dsp_hdmi_build_controls(card, component);
++}
++
+ #endif /* __SOUND_SOC_HDA_DSP_COMMON_H */
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+index e8d676c192f6..4e45901e3a2f 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_generic.c
++++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+@@ -178,6 +178,7 @@ static int skl_hda_audio_probe(struct platform_device *pdev)
+ ctx->pcm_count = hda_soc_card.num_links;
+ ctx->dai_index = 1; /* hdmi codec dai name starts from index 1 */
+ ctx->platform_name = mach->mach_params.platform;
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
+
+ hda_soc_card.dev = &pdev->dev;
+ snd_soc_card_set_drvdata(&hda_soc_card, ctx);
+--
+2.20.1
+
+
+From b07481ef39cfbbf0caadac6432121bd4d49bd69f Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:12 +0200
+Subject: [PATCH 057/130] ASoC: Intel: skl-hda-dsp-generic: fix include guard
+ name
+
+Match the include guard define to actual filename. The source
+directory now has an actual hda_dsp_common.h header, so the old
+include guard may cause confusion.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-5-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0f163110256ac91aee562da149838fcb8a39d518)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/skl_hda_dsp_common.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_common.h b/sound/soc/intel/boards/skl_hda_dsp_common.h
+index bbe6e2acfda3..d6150670ca05 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_common.h
++++ b/sound/soc/intel/boards/skl_hda_dsp_common.h
+@@ -8,8 +8,8 @@
+ * platforms with HDA Codecs.
+ */
+
+-#ifndef __SOUND_SOC_HDA_DSP_COMMON_H
+-#define __SOUND_SOC_HDA_DSP_COMMON_H
++#ifndef __SKL_HDA_DSP_COMMON_H
++#define __SKL_HDA_DSP_COMMON_H
+ #include <linux/module.h>
+ #include <linux/platform_device.h>
+ #include <sound/core.h>
+--
+2.20.1
+
+
+From 33d568ce43c1a625611c9680c932607183716854 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:14 +0200
+Subject: [PATCH 058/130] ASoC: Intel: bxt-da7219-max98357a: common hdmi codec
+ support
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-7-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 57ad18906f24278893b128967551fe7fa0996129)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/bxt_da7219_max98357a.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 52e990b16b0d..0cf4a984f083 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -4,7 +4,7 @@ snd-soc-sst-byt-rt5640-mach-objs := byt-rt5640.o
+ snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o
+ snd-soc-sst-bdw-rt5677-mach-objs := bdw-rt5677.o
+ snd-soc-sst-broadwell-objs := broadwell.o
+-snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o
++snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o hda_dsp_common.o
+ snd-soc-sst-bxt-rt298-objs := bxt_rt298.o
+ snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o
+ snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
+diff --git a/sound/soc/intel/boards/bxt_da7219_max98357a.c b/sound/soc/intel/boards/bxt_da7219_max98357a.c
+index ac1dea5f9d11..5873abb46441 100644
+--- a/sound/soc/intel/boards/bxt_da7219_max98357a.c
++++ b/sound/soc/intel/boards/bxt_da7219_max98357a.c
+@@ -21,6 +21,7 @@
+ #include "../../codecs/da7219.h"
+ #include "../../codecs/da7219-aad.h"
+ #include "../common/soc-intel-quirks.h"
++#include "hda_dsp_common.h"
+
+ #define BXT_DIALOG_CODEC_DAI "da7219-hifi"
+ #define BXT_MAXIM_CODEC_DAI "HiFi"
+@@ -38,6 +39,7 @@ struct bxt_hdmi_pcm {
+
+ struct bxt_card_private {
+ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
+ };
+
+ enum {
+@@ -615,6 +617,13 @@ static int bxt_card_late_probe(struct snd_soc_card *card)
+ snd_soc_dapm_add_routes(&card->dapm, broxton_map,
+ ARRAY_SIZE(broxton_map));
+
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct bxt_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+@@ -720,6 +729,8 @@ static int broxton_audio_probe(struct platform_device *pdev)
+ if (ret)
+ return ret;
+
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
+ return devm_snd_soc_register_card(&pdev->dev, &broxton_audio_card);
+ }
+
+--
+2.20.1
+
+
+From 555533e73e096583395ce632a80116c059ce97d5 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:15 +0200
+Subject: [PATCH 059/130] ASoC: Intel: glk_rt5682_max98357a: common hdmi codec
+ support
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-8-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit dfe87aa86cd92d21603d64f4035fecae19c92e7a)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/glk_rt5682_max98357a.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 0cf4a984f083..b36f44906c91 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -6,7 +6,7 @@ snd-soc-sst-bdw-rt5677-mach-objs := bdw-rt5677.o
+ snd-soc-sst-broadwell-objs := broadwell.o
+ snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o hda_dsp_common.o
+ snd-soc-sst-bxt-rt298-objs := bxt_rt298.o
+-snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o
++snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o hda_dsp_common.o
+ snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
+ snd-soc-sst-bytcr-rt5651-objs := bytcr_rt5651.o
+ snd-soc-sst-cht-bsw-rt5672-objs := cht_bsw_rt5672.o
+diff --git a/sound/soc/intel/boards/glk_rt5682_max98357a.c b/sound/soc/intel/boards/glk_rt5682_max98357a.c
+index bd2d371f2acd..b36264d1d1cd 100644
+--- a/sound/soc/intel/boards/glk_rt5682_max98357a.c
++++ b/sound/soc/intel/boards/glk_rt5682_max98357a.c
+@@ -19,6 +19,7 @@
+ #include <sound/soc-acpi.h>
+ #include "../../codecs/rt5682.h"
+ #include "../../codecs/hdac_hdmi.h"
++#include "hda_dsp_common.h"
+
+ /* The platform clock outputs 19.2Mhz clock to codec as I2S MCLK */
+ #define GLK_PLAT_CLK_FREQ 19200000
+@@ -41,6 +42,7 @@ struct glk_hdmi_pcm {
+ struct glk_card_private {
+ struct snd_soc_jack geminilake_headset;
+ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
+ };
+
+ enum {
+@@ -545,6 +547,13 @@ static int glk_card_late_probe(struct snd_soc_card *card)
+ int err = 0;
+ int i = 0;
+
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct glk_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+@@ -612,6 +621,8 @@ static int geminilake_audio_probe(struct platform_device *pdev)
+ if (ret)
+ return ret;
+
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
+ return devm_snd_soc_register_card(&pdev->dev, card);
+ }
+
+--
+2.20.1
+
+
+From d186922c20154420654a00b8b6186df7c0a9f4f3 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:16 +0200
+Subject: [PATCH 060/130] ASoC: intel: sof_rt5682: common hdmi codec support
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-9-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 59bbd703ea2eae7c2766713135e4742c07fbbad7)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/sof_rt5682.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index b36f44906c91..255cee8c7906 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -17,7 +17,7 @@ snd-soc-sst-byt-cht-cx2072x-objs := bytcht_cx2072x.o
+ snd-soc-sst-byt-cht-da7213-objs := bytcht_da7213.o
+ snd-soc-sst-byt-cht-es8316-objs := bytcht_es8316.o
+ snd-soc-sst-byt-cht-nocodec-objs := bytcht_nocodec.o
+-snd-soc-sof_rt5682-objs := sof_rt5682.o
++snd-soc-sof_rt5682-objs := sof_rt5682.o hda_dsp_common.o
+ snd-soc-kbl_da7219_max98357a-objs := kbl_da7219_max98357a.o
+ snd-soc-kbl_da7219_max98927-objs := kbl_da7219_max98927.o
+ snd-soc-kbl_rt5663_max98927-objs := kbl_rt5663_max98927.o
+diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
+index 320a9b9273db..751b8ea6ae1f 100644
+--- a/sound/soc/intel/boards/sof_rt5682.c
++++ b/sound/soc/intel/boards/sof_rt5682.c
+@@ -21,6 +21,7 @@
+ #include "../../codecs/rt5682.h"
+ #include "../../codecs/hdac_hdmi.h"
+ #include "../common/soc-intel-quirks.h"
++#include "hda_dsp_common.h"
+
+ #define NAME_SIZE 32
+
+@@ -53,6 +54,7 @@ struct sof_card_private {
+ struct clk *mclk;
+ struct snd_soc_jack sof_headset;
+ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
+ };
+
+ static int sof_rt5682_quirk_cb(const struct dmi_system_id *id)
+@@ -274,6 +276,13 @@ static int sof_card_late_probe(struct snd_soc_card *card)
+ if (is_legacy_cpu)
+ return 0;
+
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct sof_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+@@ -651,6 +660,8 @@ static int sof_audio_probe(struct platform_device *pdev)
+ if (ret)
+ return ret;
+
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
+ snd_soc_card_set_drvdata(&sof_audio_card_rt5682, ctx);
+
+ return devm_snd_soc_register_card(&pdev->dev,
+--
+2.20.1
+
+
+From 3f4711fbc1d93be2c68d2eff99baef5d1ae7bb54 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:17 +0200
+Subject: [PATCH 061/130] ASoC: Intel: bxt_rt298: common hdmi codec support
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-10-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7d2ae58376658a3ca0d8f9a53f6f065df126c432)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/bxt_rt298.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 255cee8c7906..8bddf379cef1 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -5,7 +5,7 @@ snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o
+ snd-soc-sst-bdw-rt5677-mach-objs := bdw-rt5677.o
+ snd-soc-sst-broadwell-objs := broadwell.o
+ snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o hda_dsp_common.o
+-snd-soc-sst-bxt-rt298-objs := bxt_rt298.o
++snd-soc-sst-bxt-rt298-objs := bxt_rt298.o hda_dsp_common.o
+ snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o hda_dsp_common.o
+ snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
+ snd-soc-sst-bytcr-rt5651-objs := bytcr_rt5651.o
+diff --git a/sound/soc/intel/boards/bxt_rt298.c b/sound/soc/intel/boards/bxt_rt298.c
+index adf416a49b48..eabf9d8468ae 100644
+--- a/sound/soc/intel/boards/bxt_rt298.c
++++ b/sound/soc/intel/boards/bxt_rt298.c
+@@ -18,6 +18,7 @@
+ #include <sound/pcm_params.h>
+ #include "../../codecs/hdac_hdmi.h"
+ #include "../../codecs/rt298.h"
++#include "hda_dsp_common.h"
+
+ /* Headset jack detection DAPM pins */
+ static struct snd_soc_jack broxton_headset;
+@@ -31,6 +32,7 @@ struct bxt_hdmi_pcm {
+
+ struct bxt_rt286_private {
+ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
+ };
+
+ enum {
+@@ -527,6 +529,13 @@ static int bxt_card_late_probe(struct snd_soc_card *card)
+ int err, i = 0;
+ char jack_name[NAME_SIZE];
+
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct bxt_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+@@ -626,6 +635,8 @@ static int broxton_audio_probe(struct platform_device *pdev)
+ if (ret)
+ return ret;
+
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
+ return devm_snd_soc_register_card(&pdev->dev, card);
+ }
+
+--
+2.20.1
+
+
+From 03a37d6f2b29db4c976ede85c9a605471ea405b3 Mon Sep 17 00:00:00 2001
+From: Naveen Manohar <naveen.m@intel.com>
+Date: Fri, 1 Nov 2019 12:18:46 -0500
+Subject: [PATCH 062/130] ASoC: Intel: Add acpi match for rt1011 based m/c
+ driver
+
+Add match for CML m/c with RT1011 and RT5682
+
+Signed-off-by: Naveen Manohar <naveen.m@intel.com>
+Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101171847.26767-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f95ce1355944189c26e4182c813d7f018b434dbd)
+Bugzilla: 1772498
+---
+ sound/soc/intel/common/soc-acpi-intel-cnl-match.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/sound/soc/intel/common/soc-acpi-intel-cnl-match.c b/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
+index 985aa366c9e8..16d0bae8b316 100644
+--- a/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
++++ b/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
+@@ -47,6 +47,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[] = {
+ .sof_fw_filename = "sof-cnl.ri",
+ .sof_tplg_filename = "sof-cml-rt5682-max98357a.tplg",
+ },
++ {
++ .id = "10EC1011",
++ .drv_name = "cml_rt1011_rt5682",
++ .quirk_data = &cml_codecs,
++ .sof_fw_filename = "sof-cnl.ri",
++ .sof_tplg_filename = "sof-cml-rt1011-rt5682.tplg",
++ },
+ {
+ .id = "10EC5682",
+ .drv_name = "sof_rt5682",
+--
+2.20.1
+
+
+From 90dad5c0eeccbe941c5afaca1f60339a5bb31984 Mon Sep 17 00:00:00 2001
+From: Naveen Manohar <naveen.m@intel.com>
+Date: Fri, 1 Nov 2019 12:18:47 -0500
+Subject: [PATCH 063/130] ASoC: Intel: boards: Add CML m/c using RT1011 and
+ RT5682
+
+Machine driver to enable
+RT5682 on SSP0, DMIC, HDMI and
+RT1011 AMP on SSP1 with
+2 CH / 24 bit TDM Playback over 4 individual codecs and
+4 CH / 24 bit Capture to provide feedback.
+
+Signed-off-by: Naveen Manohar <naveen.m@intel.com>
+Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101171847.26767-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 17fe95d6df9320409015e5114309a3c05e31b736)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 14 +
+ sound/soc/intel/boards/Makefile | 2 +
+ sound/soc/intel/boards/cml_rt1011_rt5682.c | 487 +++++++++++++++++++++
+ 3 files changed, 503 insertions(+)
+ create mode 100644 sound/soc/intel/boards/cml_rt1011_rt5682.c
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 778422d36e61..ef40f83e0a3b 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -423,6 +423,20 @@ config SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+ select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
+
++config SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
++ tristate "CML with RT1011 and RT5682 in I2S Mode"
++ depends on I2C && ACPI
++ depends on MFD_INTEL_LPSS || COMPILE_TEST
++ select SND_SOC_RT1011
++ select SND_SOC_RT5682
++ select SND_SOC_DMIC
++ select SND_SOC_HDAC_HDMI
++ help
++ This adds support for ASoC machine driver for SOF platform with
++ RT1011 + RT5682 I2S codec.
++ Say Y if you have such a device.
++ If unsure select "N".
++
+ endif ## SND_SOC_SOF_COMETLAKE_LP && SND_SOC_SOF_HDA_LINK
+
+ endif ## SND_SOC_INTEL_MACH
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 8bddf379cef1..9ae6544c6f3b 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -18,6 +18,7 @@ snd-soc-sst-byt-cht-da7213-objs := bytcht_da7213.o
+ snd-soc-sst-byt-cht-es8316-objs := bytcht_es8316.o
+ snd-soc-sst-byt-cht-nocodec-objs := bytcht_nocodec.o
+ snd-soc-sof_rt5682-objs := sof_rt5682.o hda_dsp_common.o
++snd-soc-cml_rt1011_rt5682-objs := cml_rt1011_rt5682.o hda_dsp_common.o
+ snd-soc-kbl_da7219_max98357a-objs := kbl_da7219_max98357a.o
+ snd-soc-kbl_da7219_max98927-objs := kbl_da7219_max98927.o
+ snd-soc-kbl_rt5663_max98927-objs := kbl_rt5663_max98927.o
+@@ -47,6 +48,7 @@ obj-$(CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH) += snd-soc-sst-byt-cht-cx2072x.
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH) += snd-soc-sst-byt-cht-da7213.o
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH) += snd-soc-sst-byt-cht-es8316.o
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH) += snd-soc-sst-byt-cht-nocodec.o
++obj-$(CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH) += snd-soc-cml_rt1011_rt5682.o
+ obj-$(CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH) += snd-soc-kbl_da7219_max98357a.o
+ obj-$(CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH) += snd-soc-kbl_da7219_max98927.o
+ obj-$(CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH) += snd-soc-kbl_rt5663_max98927.o
+diff --git a/sound/soc/intel/boards/cml_rt1011_rt5682.c b/sound/soc/intel/boards/cml_rt1011_rt5682.c
+new file mode 100644
+index 000000000000..a22f97234201
+--- /dev/null
++++ b/sound/soc/intel/boards/cml_rt1011_rt5682.c
+@@ -0,0 +1,487 @@
++// SPDX-License-Identifier: GPL-2.0
++// Copyright(c) 2019 Intel Corporation.
++
++/*
++ * Intel Cometlake I2S Machine driver for RT1011 + RT5682 codec
++ */
++
++#include <linux/input.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++#include <linux/dmi.h>
++#include <linux/slab.h>
++#include <asm/cpu_device_id.h>
++#include <linux/acpi.h>
++#include <sound/core.h>
++#include <sound/jack.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/rt5682.h>
++#include <sound/soc-acpi.h>
++#include "../../codecs/rt1011.h"
++#include "../../codecs/rt5682.h"
++#include "../../codecs/hdac_hdmi.h"
++#include "hda_dsp_common.h"
++
++/* The platform clock outputs 24Mhz clock to codec as I2S MCLK */
++#define CML_PLAT_CLK 24000000
++#define CML_RT1011_CODEC_DAI "rt1011-aif"
++#define CML_RT5682_CODEC_DAI "rt5682-aif1"
++#define NAME_SIZE 32
++
++static struct snd_soc_jack hdmi_jack[3];
++
++struct hdmi_pcm {
++ struct list_head head;
++ struct snd_soc_dai *codec_dai;
++ int device;
++};
++
++struct card_private {
++ char codec_name[SND_ACPI_I2C_ID_LEN];
++ struct snd_soc_jack headset;
++ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
++};
++
++static const struct snd_kcontrol_new cml_controls[] = {
++ SOC_DAPM_PIN_SWITCH("Headphone Jack"),
++ SOC_DAPM_PIN_SWITCH("Headset Mic"),
++ SOC_DAPM_PIN_SWITCH("TL Ext Spk"),
++ SOC_DAPM_PIN_SWITCH("TR Ext Spk"),
++ SOC_DAPM_PIN_SWITCH("WL Ext Spk"),
++ SOC_DAPM_PIN_SWITCH("WR Ext Spk"),
++};
++
++static const struct snd_soc_dapm_widget cml_rt1011_rt5682_widgets[] = {
++ SND_SOC_DAPM_SPK("TL Ext Spk", NULL),
++ SND_SOC_DAPM_SPK("TR Ext Spk", NULL),
++ SND_SOC_DAPM_SPK("WL Ext Spk", NULL),
++ SND_SOC_DAPM_SPK("WR Ext Spk", NULL),
++ SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_MIC("Headset Mic", NULL),
++ SND_SOC_DAPM_MIC("SoC DMIC", NULL),
++};
++
++static const struct snd_soc_dapm_route cml_rt1011_rt5682_map[] = {
++ /*speaker*/
++ {"TL Ext Spk", NULL, "TL SPO"},
++ {"TR Ext Spk", NULL, "TR SPO"},
++ {"WL Ext Spk", NULL, "WL SPO"},
++ {"WR Ext Spk", NULL, "WR SPO"},
++
++ /* HP jack connectors - unknown if we have jack detection */
++ { "Headphone Jack", NULL, "HPOL" },
++ { "Headphone Jack", NULL, "HPOR" },
++
++ /* other jacks */
++ { "IN1P", NULL, "Headset Mic" },
++
++ /* DMIC */
++ {"DMic", NULL, "SoC DMIC"},
++};
++
++static int cml_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
++{
++ struct card_private *ctx = snd_soc_card_get_drvdata(rtd->card);
++ struct snd_soc_component *component = rtd->codec_dai->component;
++ struct snd_soc_jack *jack;
++ int ret;
++
++ /* need to enable ASRC function for 24MHz mclk rate */
++ rt5682_sel_asrc_clk_src(component, RT5682_DA_STEREO1_FILTER |
++ RT5682_AD_STEREO1_FILTER,
++ RT5682_CLK_SEL_I2S1_ASRC);
++
++ /*
++ * Headset buttons map to the google Reference headset.
++ * These can be configured by userspace.
++ */
++ ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
++ SND_JACK_HEADSET | SND_JACK_BTN_0 |
++ SND_JACK_BTN_1 | SND_JACK_BTN_2 |
++ SND_JACK_BTN_3,
++ &ctx->headset, NULL, 0);
++ if (ret) {
++ dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
++ return ret;
++ }
++
++ jack = &ctx->headset;
++
++ snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
++ snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
++ snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
++ snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
++ ret = snd_soc_component_set_jack(component, jack, NULL);
++ if (ret)
++ dev_err(rtd->dev, "Headset Jack call-back failed: %d\n", ret);
++
++ return ret;
++};
++
++static int cml_rt5682_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_dai *codec_dai = rtd->codec_dai;
++ int clk_id, clk_freq, pll_out, ret;
++
++ clk_id = RT5682_PLL1_S_MCLK;
++ clk_freq = CML_PLAT_CLK;
++
++ pll_out = params_rate(params) * 512;
++
++ ret = snd_soc_dai_set_pll(codec_dai, 0, clk_id, clk_freq, pll_out);
++ if (ret < 0)
++ dev_warn(rtd->dev, "snd_soc_dai_set_pll err = %d\n", ret);
++
++ /* Configure sysclk for codec */
++ ret = snd_soc_dai_set_sysclk(codec_dai, RT5682_SCLK_S_PLL1,
++ pll_out, SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ dev_warn(rtd->dev, "snd_soc_dai_set_sysclk err = %d\n", ret);
++
++ /*
++ * slot_width should be equal or large than data length, set them
++ * be the same
++ */
++ ret = snd_soc_dai_set_tdm_slot(codec_dai, 0x0, 0x0, 2,
++ params_width(params));
++ if (ret < 0)
++ dev_warn(rtd->dev, "set TDM slot err:%d\n", ret);
++ return ret;
++}
++
++static int cml_rt1011_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_dai *codec_dai;
++ struct snd_soc_card *card = rtd->card;
++ int srate, i, ret = 0;
++
++ srate = params_rate(params);
++
++ for (i = 0; i < rtd->num_codecs; i++) {
++ codec_dai = rtd->codec_dais[i];
++
++ /* 100 Fs to drive 24 bit data */
++ ret = snd_soc_dai_set_pll(codec_dai, 0, RT1011_PLL1_S_BCLK,
++ 100 * srate, 256 * srate);
++ if (ret < 0) {
++ dev_err(card->dev, "codec_dai clock not set\n");
++ return ret;
++ }
++
++ ret = snd_soc_dai_set_sysclk(codec_dai,
++ RT1011_FS_SYS_PRE_S_PLL1,
++ 256 * srate, SND_SOC_CLOCK_IN);
++ if (ret < 0) {
++ dev_err(card->dev, "codec_dai clock not set\n");
++ return ret;
++ }
++
++ /*
++ * Codec TDM is configured as 24 bit capture/ playback.
++ * 2 CH PB is done over 4 codecs - 2 Woofers and 2 Tweeters.
++ * The Left woofer and tweeter plays the Left playback data
++ * and similar by the Right.
++ * Hence 2 codecs (1 T and 1 W pair) share same Rx slot.
++ * The feedback is captured for each codec individually.
++ * Hence all 4 codecs use 1 Tx slot each for feedback.
++ */
++ if (!strcmp(codec_dai->component->name, "i2c-10EC1011:00")) {
++ ret = snd_soc_dai_set_tdm_slot(codec_dai,
++ 0x4, 0x1, 4, 24);
++ if (ret < 0)
++ break;
++ }
++ if (!strcmp(codec_dai->component->name, "i2c-10EC1011:02")) {
++ ret = snd_soc_dai_set_tdm_slot(codec_dai,
++ 0x1, 0x1, 4, 24);
++ if (ret < 0)
++ break;
++ }
++ /* TDM Rx slot 2 is used for Right Woofer & Tweeters pair */
++ if (!strcmp(codec_dai->component->name, "i2c-10EC1011:01")) {
++ ret = snd_soc_dai_set_tdm_slot(codec_dai,
++ 0x8, 0x2, 4, 24);
++ if (ret < 0)
++ break;
++ }
++ if (!strcmp(codec_dai->component->name, "i2c-10EC1011:03")) {
++ ret = snd_soc_dai_set_tdm_slot(codec_dai,
++ 0x2, 0x2, 4, 24);
++ if (ret < 0)
++ break;
++ }
++ }
++ if (ret < 0)
++ dev_err(rtd->dev,
++ "set codec TDM slot for %s failed with error %d\n",
++ codec_dai->component->name, ret);
++ return ret;
++}
++
++static struct snd_soc_ops cml_rt5682_ops = {
++ .hw_params = cml_rt5682_hw_params,
++};
++
++static const struct snd_soc_ops cml_rt1011_ops = {
++ .hw_params = cml_rt1011_hw_params,
++};
++
++static int sof_card_late_probe(struct snd_soc_card *card)
++{
++ struct card_private *ctx = snd_soc_card_get_drvdata(card);
++ struct snd_soc_component *component = NULL;
++ char jack_name[NAME_SIZE];
++ struct hdmi_pcm *pcm;
++ int ret, i = 0;
++
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
++ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
++ component = pcm->codec_dai->component;
++ snprintf(jack_name, sizeof(jack_name),
++ "HDMI/DP, pcm=%d Jack", pcm->device);
++ ret = snd_soc_card_jack_new(card, jack_name,
++ SND_JACK_AVOUT, &hdmi_jack[i],
++ NULL, 0);
++ if (ret)
++ return ret;
++
++ ret = hdac_hdmi_jack_init(pcm->codec_dai, pcm->device,
++ &hdmi_jack[i]);
++ if (ret < 0)
++ return ret;
++
++ i++;
++ }
++ if (!component)
++ return -EINVAL;
++
++ return hdac_hdmi_jack_port_init(component, &card->dapm);
++}
++
++static int hdmi_init(struct snd_soc_pcm_runtime *rtd)
++{
++ struct card_private *ctx = snd_soc_card_get_drvdata(rtd->card);
++ struct snd_soc_dai *dai = rtd->codec_dai;
++ struct hdmi_pcm *pcm;
++
++ pcm = devm_kzalloc(rtd->card->dev, sizeof(*pcm), GFP_KERNEL);
++ if (!pcm)
++ return -ENOMEM;
++
++ pcm->device = dai->id;
++ pcm->codec_dai = dai;
++
++ list_add_tail(&pcm->head, &ctx->hdmi_pcm_list);
++
++ return 0;
++}
++
++/* Cometlake digital audio interface glue - connects codec <--> CPU */
++
++SND_SOC_DAILINK_DEF(ssp0_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("SSP0 Pin")));
++SND_SOC_DAILINK_DEF(ssp0_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("i2c-10EC5682:00",
++ CML_RT5682_CODEC_DAI)));
++
++SND_SOC_DAILINK_DEF(ssp1_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("SSP1 Pin")));
++SND_SOC_DAILINK_DEF(ssp1_codec,
++ DAILINK_COMP_ARRAY(
++ /* WL */ COMP_CODEC("i2c-10EC1011:00", CML_RT1011_CODEC_DAI),
++ /* WR */ COMP_CODEC("i2c-10EC1011:01", CML_RT1011_CODEC_DAI),
++ /* TL */ COMP_CODEC("i2c-10EC1011:02", CML_RT1011_CODEC_DAI),
++ /* TR */ COMP_CODEC("i2c-10EC1011:03", CML_RT1011_CODEC_DAI)));
++
++SND_SOC_DAILINK_DEF(dmic_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("DMIC01 Pin")));
++
++SND_SOC_DAILINK_DEF(dmic16k_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("DMIC16k Pin")));
++
++SND_SOC_DAILINK_DEF(dmic_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("dmic-codec", "dmic-hifi")));
++
++SND_SOC_DAILINK_DEF(idisp1_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("iDisp1 Pin")));
++SND_SOC_DAILINK_DEF(idisp1_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("ehdaudio0D2", "intel-hdmi-hifi1")));
++
++SND_SOC_DAILINK_DEF(idisp2_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("iDisp2 Pin")));
++SND_SOC_DAILINK_DEF(idisp2_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("ehdaudio0D2", "intel-hdmi-hifi2")));
++
++SND_SOC_DAILINK_DEF(idisp3_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("iDisp3 Pin")));
++SND_SOC_DAILINK_DEF(idisp3_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("ehdaudio0D2", "intel-hdmi-hifi3")));
++
++SND_SOC_DAILINK_DEF(platform,
++ DAILINK_COMP_ARRAY(COMP_PLATFORM("0000:00:1f.3")));
++
++static struct snd_soc_dai_link cml_rt1011_rt5682_dailink[] = {
++ /* Back End DAI links */
++ {
++ /* SSP0 - Codec */
++ .name = "SSP0-Codec",
++ .id = 0,
++ .init = cml_rt5682_codec_init,
++ .ignore_pmdown_time = 1,
++ .ops = &cml_rt5682_ops,
++ .dpcm_playback = 1,
++ .dpcm_capture = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(ssp0_pin, ssp0_codec, platform),
++ },
++ {
++ .name = "dmic01",
++ .id = 1,
++ .ignore_suspend = 1,
++ .dpcm_capture = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(dmic_pin, dmic_codec, platform),
++ },
++ {
++ .name = "dmic16k",
++ .id = 2,
++ .ignore_suspend = 1,
++ .dpcm_capture = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(dmic16k_pin, dmic_codec, platform),
++ },
++ {
++ .name = "iDisp1",
++ .id = 3,
++ .init = hdmi_init,
++ .dpcm_playback = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(idisp1_pin, idisp1_codec, platform),
++ },
++ {
++ .name = "iDisp2",
++ .id = 4,
++ .init = hdmi_init,
++ .dpcm_playback = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(idisp2_pin, idisp2_codec, platform),
++ },
++ {
++ .name = "iDisp3",
++ .id = 5,
++ .init = hdmi_init,
++ .dpcm_playback = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(idisp3_pin, idisp3_codec, platform),
++ },
++ {
++ /*
++ * SSP1 - Codec : added to end of list ensuring
++ * reuse of common topologies for other end points
++ * and changing only SSP1's codec
++ */
++ .name = "SSP1-Codec",
++ .id = 6,
++ .dpcm_playback = 1,
++ .dpcm_capture = 1, /* Capture stream provides Feedback */
++ .no_pcm = 1,
++ .ops = &cml_rt1011_ops,
++ SND_SOC_DAILINK_REG(ssp1_pin, ssp1_codec, platform),
++ },
++};
++
++static struct snd_soc_codec_conf rt1011_conf[] = {
++ {
++ .dev_name = "i2c-10EC1011:00",
++ .name_prefix = "WL",
++ },
++ {
++ .dev_name = "i2c-10EC1011:01",
++ .name_prefix = "WR",
++ },
++ {
++ .dev_name = "i2c-10EC1011:02",
++ .name_prefix = "TL",
++ },
++ {
++ .dev_name = "i2c-10EC1011:03",
++ .name_prefix = "TR",
++ },
++};
++
++/* Cometlake audio machine driver for RT1011 and RT5682 */
++static struct snd_soc_card snd_soc_card_cml = {
++ .name = "cml_rt1011_rt5682",
++ .dai_link = cml_rt1011_rt5682_dailink,
++ .num_links = ARRAY_SIZE(cml_rt1011_rt5682_dailink),
++ .codec_conf = rt1011_conf,
++ .num_configs = ARRAY_SIZE(rt1011_conf),
++ .dapm_widgets = cml_rt1011_rt5682_widgets,
++ .num_dapm_widgets = ARRAY_SIZE(cml_rt1011_rt5682_widgets),
++ .dapm_routes = cml_rt1011_rt5682_map,
++ .num_dapm_routes = ARRAY_SIZE(cml_rt1011_rt5682_map),
++ .controls = cml_controls,
++ .num_controls = ARRAY_SIZE(cml_controls),
++ .fully_routed = true,
++ .late_probe = sof_card_late_probe,
++};
++
++static int snd_cml_rt1011_probe(struct platform_device *pdev)
++{
++ struct card_private *ctx;
++ struct snd_soc_acpi_mach *mach;
++ const char *platform_name;
++ int ret;
++
++ ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_ATOMIC);
++ if (!ctx)
++ return -ENOMEM;
++
++ INIT_LIST_HEAD(&ctx->hdmi_pcm_list);
++ mach = (&pdev->dev)->platform_data;
++ snd_soc_card_cml.dev = &pdev->dev;
++ platform_name = mach->mach_params.platform;
++
++ /* set platform name for each dailink */
++ ret = snd_soc_fixup_dai_links_platform_name(&snd_soc_card_cml,
++ platform_name);
++ if (ret)
++ return ret;
++
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
++ snd_soc_card_set_drvdata(&snd_soc_card_cml, ctx);
++
++ return devm_snd_soc_register_card(&pdev->dev, &snd_soc_card_cml);
++}
++
++static struct platform_driver snd_cml_rt1011_rt5682_driver = {
++ .probe = snd_cml_rt1011_probe,
++ .driver = {
++ .name = "cml_rt1011_rt5682",
++ .pm = &snd_soc_pm_ops,
++ },
++};
++module_platform_driver(snd_cml_rt1011_rt5682_driver);
++
++/* Module information */
++MODULE_DESCRIPTION("Cometlake Audio Machine driver - RT1011 and RT5682 in I2S mode");
++MODULE_AUTHOR("Naveen Manohar <naveen.m@intel.com>");
++MODULE_AUTHOR("Sathya Prakash M R <sathya.prakash.m.r@intel.com>");
++MODULE_AUTHOR("Shuming Fan <shumingf@realtek.com>");
++MODULE_LICENSE("GPL v2");
++MODULE_ALIAS("platform:cml_rt1011_rt5682");
+--
+2.20.1
+
+
+From 0ce85d8a56990759d10305784278be01bb32633b Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:37 -0500
+Subject: [PATCH 064/130] ASoC: Intel: add mutual exclusion between SOF and
+ legacy Baytrail driver
+
+This legacy driver is already deprecated, let's make sure there is no
+conflict with SOF.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 280393b712b7e338addc2f7f60b4e4da787ba19b)
+Bugzilla: 1772498
+---
+ sound/soc/intel/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 7e9feca333b7..d6c5c68b7499 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -65,7 +65,7 @@ config SND_SOC_INTEL_HASWELL
+
+ config SND_SOC_INTEL_BAYTRAIL
+ tristate "Baytrail (legacy) Platforms"
+- depends on DMADEVICES && ACPI && SND_SST_ATOM_HIFI2_PLATFORM=n
++ depends on DMADEVICES && ACPI && SND_SST_ATOM_HIFI2_PLATFORM=n && SND_SOC_SOF_BAYTRAIL=n
+ select SND_SOC_INTEL_SST
+ select SND_SOC_INTEL_SST_ACPI
+ select SND_SOC_INTEL_SST_FIRMWARE
+--
+2.20.1
+
+
+From 5626167a66bddb85e0a33735c85dfb45781f4bce Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:41 -0500
+Subject: [PATCH 065/130] ASoC: Intel: Skylake: mark HDAudio codec support as
+ deprecated.
+
+This option famously broke audio on Linus' laptop and the problem have
+not been fixed.
+
+Mark as DEPRECATED to avoid any ambiguity with distros.
+
+Use SOF if you need HDaudio support w/ the DSP enabled, e.g. for DMIC
+capture.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-8-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 02701b909c2fab4b49f9c9545ab921c9b2c7a768)
+Bugzilla: 1772498
+---
+ sound/soc/intel/Kconfig | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index d6c5c68b7499..c8de0bb5bed9 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -209,9 +209,12 @@ config SND_SOC_INTEL_SKYLAKE_SSP_CLK
+ config SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
+ bool "HDAudio codec support"
+ help
+- If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
+- GeminiLake or CannonLake platform with an HDaudio codec
+- then enable this option by saying Y
++ This option broke audio on Linus' Skylake laptop in December 2018
++ and the race conditions during the probe were not fixed since.
++ This option is DEPRECATED, all HDaudio codec support needs
++ to be handled by the SOF driver.
++ Distributions should not enable this option and there are no known
++ users of this capability.
+
+ config SND_SOC_INTEL_SKYLAKE_COMMON
+ tristate
+--
+2.20.1
+
+
+From 61e12eb73831fdc01c8b251a41ba4851a57c0370 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:42 -0500
+Subject: [PATCH 066/130] ASoC: Intel: boards: remove select SND_HDA_DSP_LOADER
+
+This option is only required with the Skylake platform driver, there
+is no reason to have this option in machine drivers. This is
+e.g. useless for SOF-based solutions.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-9-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 9e7301762f6df44bb4a452b6aecbe0f322b370ee)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index ef40f83e0a3b..91952ffc0b67 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -270,7 +270,6 @@ config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
+ depends on I2C && ACPI
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+ select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
+- select SND_HDA_DSP_LOADER
+ help
+ This adds support for ASoC machine driver for Broxton-P platforms
+ with DA7219 + MAX98357A I2S audio codec.
+@@ -284,7 +283,6 @@ config SND_SOC_INTEL_BXT_RT298_MACH
+ select SND_SOC_RT298
+ select SND_SOC_DMIC
+ select SND_SOC_HDAC_HDMI
+- select SND_HDA_DSP_LOADER
+ help
+ This adds support for ASoC machine driver for Broxton platforms
+ with RT286 I2S audio codec.
+@@ -375,7 +373,6 @@ config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
+ select SND_SOC_MAX98357A
+ select SND_SOC_DMIC
+ select SND_SOC_HDAC_HDMI
+- select SND_HDA_DSP_LOADER
+ help
+ This adds support for ASoC machine driver for Geminilake platforms
+ with RT5682 + MAX98357A I2S audio codec.
+--
+2.20.1
+
+
+From 299b13ab242eba943e1d2b54ac43e7148470d435 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:43 -0500
+Subject: [PATCH 067/130] ASoC: Intel: boards: fix configs for
+ bxt-da7219-max98057a
+
+The same driver is reused for 3 different configurations, but the
+driver will only be build if ApolloLake is selected.
+
+Fix and make sure each device can work without dependencies on others
+(useful for minimal configurations).
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-10-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c4a09f9a523e674ef9a046e05d99c90f2c9513b1)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 24 ++++++++++++++++++++++--
+ sound/soc/intel/boards/Makefile | 2 +-
+ 2 files changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 91952ffc0b67..826694ecfdbf 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -263,13 +263,17 @@ config SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
+ select SND_SOC_DMIC
+ select SND_SOC_HDAC_HDMI
+
++config SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON
++ tristate
++ select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
++
+ if SND_SOC_INTEL_APL
+
+ config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
+ tristate "Broxton with DA7219 and MAX98357A in I2S Mode"
+ depends on I2C && ACPI
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+- select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
++ select SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON
+ help
+ This adds support for ASoC machine driver for Broxton-P platforms
+ with DA7219 + MAX98357A I2S audio codec.
+@@ -365,6 +369,17 @@ endif ## SND_SOC_INTEL_KBL
+
+ if SND_SOC_INTEL_GLK || (SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK)
+
++config SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH
++ tristate "GLK with DA7219 and MAX98357A in I2S Mode"
++ depends on I2C && ACPI
++ depends on MFD_INTEL_LPSS || COMPILE_TEST
++ select SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON
++ help
++ This adds support for ASoC machine driver for Geminilake platforms
++ with DA7219 + MAX98357A I2S audio codec.
++ Say Y or m if you have such a device. This is a recommended option.
++ If unsure select "N".
++
+ config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
+ tristate "GLK with RT5682 and MAX98357A in I2S Mode"
+ depends on I2C && ACPI
+@@ -418,7 +433,12 @@ config SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
+ tristate "CML_LP with DA7219 and MAX98357A in I2S Mode"
+ depends on I2C && ACPI
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+- select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
++ select SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON
++ help
++ This adds support for ASoC machine driver for Cometlake platforms
++ with DA7219 + MAX98357A I2S audio codec.
++ Say Y or m if you have such a device. This is a recommended option.
++ If unsure select "N".
+
+ config SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
+ tristate "CML with RT1011 and RT5682 in I2S Mode"
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 9ae6544c6f3b..ba1aa89db09d 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -33,7 +33,7 @@ obj-$(CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH) += snd-soc-sof_rt5682.o
+ obj-$(CONFIG_SND_SOC_INTEL_HASWELL_MACH) += snd-soc-sst-haswell.o
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH) += snd-soc-sst-byt-rt5640-mach.o
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH) += snd-soc-sst-byt-max98090-mach.o
+-obj-$(CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH) += snd-soc-sst-bxt-da7219_max98357a.o
++obj-$(CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON) += snd-soc-sst-bxt-da7219_max98357a.o
+ obj-$(CONFIG_SND_SOC_INTEL_BXT_RT298_MACH) += snd-soc-sst-bxt-rt298.o
+ obj-$(CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH) += snd-soc-sst-glk-rt5682_max98357a.o
+ obj-$(CONFIG_SND_SOC_INTEL_BROADWELL_MACH) += snd-soc-sst-broadwell.o
+--
+2.20.1
+
+
+From 39c98691a7108dbaeb9bab734553207553111ca5 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:44 -0500
+Subject: [PATCH 068/130] ASoC: Intel: boards: Geminilake is only supported by
+ SOF
+
+Geminilake machine drivers are only tested and recommended with SOF.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-11-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 3315e5b40f59d1aab6543773d99b1f19c3ea1848)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 826694ecfdbf..76d1e6ab30b5 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -367,7 +367,7 @@ config SND_SOC_INTEL_KBL_RT5660_MACH
+
+ endif ## SND_SOC_INTEL_KBL
+
+-if SND_SOC_INTEL_GLK || (SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK)
++if SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK
+
+ config SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH
+ tristate "GLK with DA7219 and MAX98357A in I2S Mode"
+@@ -394,7 +394,7 @@ config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
+ Say Y if you have such a device.
+ If unsure select "N".
+
+-endif ## SND_SOC_INTEL_GLK || (SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK)
++endif ## SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK
+
+ if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC
+
+--
+2.20.1
+
+
+From 7b646af780bfa2e42b8e89856172469a540e7186 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:45 -0500
+Subject: [PATCH 069/130] ASoC: Intel: boards: sof_rt5682: use dependency on
+ SOF_HDA_LINK
+
+The wrong dependency is used and the build can be broken
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-12-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8039105987fcd8dda39074df013cfdf0025dd297)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 76d1e6ab30b5..2702aefee775 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -411,11 +411,11 @@ config SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH
+
+ endif ## SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC
+
+-if SND_SOC_SOF_HDA_COMMON || SND_SOC_SOF_BAYTRAIL
++if SND_SOC_SOF_HDA_LINK || SND_SOC_SOF_BAYTRAIL
+ config SND_SOC_INTEL_SOF_RT5682_MACH
+ tristate "SOF with rt5682 codec in I2S Mode"
+ depends on I2C && ACPI
+- depends on (SND_SOC_SOF_HDA_COMMON && (MFD_INTEL_LPSS || COMPILE_TEST)) ||\
++ depends on (SND_SOC_SOF_HDA_LINK && (MFD_INTEL_LPSS || COMPILE_TEST)) ||\
+ (SND_SOC_SOF_BAYTRAIL && (X86_INTEL_LPSS || COMPILE_TEST))
+ select SND_SOC_RT5682
+ select SND_SOC_DMIC
+@@ -425,7 +425,7 @@ config SND_SOC_INTEL_SOF_RT5682_MACH
+ with rt5682 codec.
+ Say Y if you have such a device.
+ If unsure select "N".
+-endif ## SND_SOC_SOF_HDA_COMMON || SND_SOC_SOF_BAYTRAIL
++endif ## SND_SOC_SOF_HDA_LINK || SND_SOC_SOF_BAYTRAIL
+
+ if (SND_SOC_SOF_COMETLAKE_LP && SND_SOC_SOF_HDA_LINK)
+
+--
+2.20.1
+
+
+From 02f03f3b08ed85cb5c0b1c270eb91bc714721641 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Fri, 8 Nov 2019 10:46:37 +0100
+Subject: [PATCH 070/130] ASoC: intel: Avoid non-standard macro usage
+
+Pass the device pointer from the PCI pointer directly, instead of a
+non-standard macro. The macro didn't give any better readability.
+
+Acked-by: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191108094641.20086-5-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 6420c24a30006e2fdbc292f88d37db56ca28f6e8)
+Bugzilla: 1772498
+---
+ sound/soc/intel/skylake/skl-pcm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/skylake/skl-pcm.c b/sound/soc/intel/skylake/skl-pcm.c
+index 7f287424af9b..07bc047f077e 100644
+--- a/sound/soc/intel/skylake/skl-pcm.c
++++ b/sound/soc/intel/skylake/skl-pcm.c
+@@ -1310,7 +1310,7 @@ static int skl_pcm_new(struct snd_soc_pcm_runtime *rtd)
+ size = MAX_PREALLOC_SIZE;
+ snd_pcm_lib_preallocate_pages_for_all(pcm,
+ SNDRV_DMA_TYPE_DEV_SG,
+- snd_dma_pci_data(skl->pci),
++ &skl->pci->dev,
+ size, MAX_PREALLOC_SIZE);
+ }
+
+--
+2.20.1
+
+
+From 3541bd9bf269e2df13150125f7e417632967e292 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:09 -0500
+Subject: [PATCH 071/130] ASoC: SOF: ipc: introduce message for DSP power
+ gating
+
+Add new ipc messages which will be sent from driver to FW, to ask FW to
+enter specific power saving state.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-14-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 10992004e1e960c7e256ec70c7ab22895a7003d7)
+Bugzilla: 1772498
+---
+ include/sound/sof/header.h | 1 +
+ include/sound/sof/pm.h | 8 ++++++++
+ 2 files changed, 9 insertions(+)
+
+diff --git a/include/sound/sof/header.h b/include/sound/sof/header.h
+index 332143ff7278..bf3edd9c08b4 100644
+--- a/include/sound/sof/header.h
++++ b/include/sound/sof/header.h
+@@ -75,6 +75,7 @@
+ #define SOF_IPC_PM_CLK_GET SOF_CMD_TYPE(0x005)
+ #define SOF_IPC_PM_CLK_REQ SOF_CMD_TYPE(0x006)
+ #define SOF_IPC_PM_CORE_ENABLE SOF_CMD_TYPE(0x007)
++#define SOF_IPC_PM_GATE SOF_CMD_TYPE(0x008)
+
+ /* component runtime config - multiple different types */
+ #define SOF_IPC_COMP_SET_VALUE SOF_CMD_TYPE(0x001)
+diff --git a/include/sound/sof/pm.h b/include/sound/sof/pm.h
+index 003879401d63..3cf2e0f39d94 100644
+--- a/include/sound/sof/pm.h
++++ b/include/sound/sof/pm.h
+@@ -45,4 +45,12 @@ struct sof_ipc_pm_core_config {
+ uint32_t enable_mask;
+ } __packed;
+
++struct sof_ipc_pm_gate {
++ struct sof_ipc_cmd_hdr hdr;
++ uint32_t flags; /* platform specific */
++
++ /* reserved for future use */
++ uint32_t reserved[5];
++} __packed;
++
+ #endif
+--
+2.20.1
+
+
+From 145c89d929bcdf53b50c6528997bfc2595883513 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:40:57 -0500
+Subject: [PATCH 072/130] ASoC: SOF: add a field to store the current D0
+ substate of DSP
+
+Add field d0_substate to struct snd_sof_dev to store the current DSP
+D0 sub-state(only meaningful when DSP in D0), which could be D0I0 or
+D0I3.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4c19030c511fd6eab029bae838f736256d2f43cd)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-priv.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 2d40de5ee285..481dfe4ee2d0 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -68,6 +68,12 @@ extern int sof_core_debug;
+
+ #define DMA_CHAN_INVALID 0xFFFFFFFF
+
++/* DSP D0ix sub-state */
++enum sof_d0_substate {
++ SOF_DSP_D0I0 = 0, /* DSP default D0 substate */
++ SOF_DSP_D0I3, /* DSP D0i3(low power) substate*/
++};
++
+ struct snd_sof_dev;
+ struct snd_sof_ipc_msg;
+ struct snd_sof_ipc;
+@@ -387,6 +393,9 @@ struct snd_sof_dev {
+ */
+ struct snd_soc_component_driver plat_drv;
+
++ /* power states related */
++ enum sof_d0_substate d0_substate;
++
+ /* DSP firmware boot */
+ wait_queue_head_t boot_wait;
+ u32 boot_complete;
+--
+2.20.1
+
+
+From b5d42bad1c65b0b71c7a1115a9d50f25a24c2351 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:40:58 -0500
+Subject: [PATCH 073/130] ASoC: SOF: reset default d0_substate at probe() and
+ resume()
+
+We initialize/reset d0_substate to default d0i0 value when doing
+transition D3-->D0, e.g. at success of probing and resuming.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 09fe6b528886c0d07ce539b837749edcc46618d0)
+Bugzilla: 1772498
+---
+ sound/soc/sof/core.c | 3 +++
+ sound/soc/sof/pm.c | 3 +++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
+index 5998861a9002..8661c2cca76b 100644
+--- a/sound/soc/sof/core.c
++++ b/sound/soc/sof/core.c
+@@ -458,6 +458,9 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
+ /* initialize sof device */
+ sdev->dev = dev;
+
++ /* initialize default D0 sub-state */
++ sdev->d0_substate = SOF_DSP_D0I0;
++
+ sdev->pdata = plat_data;
+ sdev->first_boot = true;
+ dev_set_drvdata(dev, sdev);
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index e23beaeefe00..81e623dfc7e5 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -326,6 +326,9 @@ static int sof_resume(struct device *dev, bool runtime_resume)
+ "error: ctx_restore ipc error during resume %d\n",
+ ret);
+
++ /* initialize default D0 sub-state */
++ sdev->d0_substate = SOF_DSP_D0I0;
++
+ return ret;
+ }
+
+--
+2.20.1
+
+
+From 3cf1bbbb4506efc80e8066c4d40e92264f26eec7 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:40:59 -0500
+Subject: [PATCH 074/130] ASoC: SOF: add set_power_state() to dsp_ops for power
+ state update
+
+D0i3 is a platform-defined substate of D0, so we need a
+platform-specific callback in dsp_ops to handle the relevant
+configurations.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e8f112d8c29f44ded83f97828c104bf0904871ec)
+Bugzilla: 1772498
+---
+ sound/soc/sof/ops.h | 9 +++++++++
+ sound/soc/sof/sof-priv.h | 2 ++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/sound/soc/sof/ops.h b/sound/soc/sof/ops.h
+index 824d36fe59fd..d7c8fc06f961 100644
+--- a/sound/soc/sof/ops.h
++++ b/sound/soc/sof/ops.h
+@@ -193,6 +193,15 @@ static inline int snd_sof_dsp_set_clk(struct snd_sof_dev *sdev, u32 freq)
+ return 0;
+ }
+
++static inline int snd_sof_dsp_set_power_state(struct snd_sof_dev *sdev,
++ enum sof_d0_substate substate)
++{
++ if (sof_ops(sdev)->set_power_state)
++ return sof_ops(sdev)->set_power_state(sdev, substate);
++
++ return 0;
++}
++
+ /* debug */
+ static inline void snd_sof_dsp_dbg_dump(struct snd_sof_dev *sdev, u32 flags)
+ {
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 481dfe4ee2d0..e9902e4e8e55 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -189,6 +189,8 @@ struct snd_sof_dsp_ops {
+ int (*runtime_resume)(struct snd_sof_dev *sof_dev); /* optional */
+ int (*runtime_idle)(struct snd_sof_dev *sof_dev); /* optional */
+ int (*set_hw_params_upon_resume)(struct snd_sof_dev *sdev); /* optional */
++ int (*set_power_state)(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate); /* optional */
+
+ /* DSP clocking */
+ int (*set_clk)(struct snd_sof_dev *sof_dev, u32 freq); /* optional */
+--
+2.20.1
+
+
+From 00b28b09cc4fb52852651219ac1369041484770d Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:00 -0500
+Subject: [PATCH 075/130] ASoC: SOF: Intel: hda-dsp: Add helper for setting DSP
+ D0ix substate
+
+Adding helper to implement setting dsp to d0i3 or d0i0 status, this will
+be needed for driver D0ix support.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 62f8f76604623980d41cf73691ca45288871efd9)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 46 +++++++++++++++++++++++++++++++++++
+ sound/soc/sof/intel/hda.h | 10 ++++++++
+ 2 files changed, 56 insertions(+)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index 3ea401646e0c..fa2f1f66c72c 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -306,6 +306,52 @@ void hda_dsp_ipc_int_disable(struct snd_sof_dev *sdev)
+ HDA_DSP_REG_HIPCCTL_BUSY | HDA_DSP_REG_HIPCCTL_DONE, 0);
+ }
+
++static int hda_dsp_wait_d0i3c_done(struct snd_sof_dev *sdev, int retry)
++{
++ struct hdac_bus *bus = sof_to_bus(sdev);
++
++ while (snd_hdac_chip_readb(bus, VS_D0I3C) & SOF_HDA_VS_D0I3C_CIP) {
++ if (!retry--)
++ return -ETIMEDOUT;
++ usleep_range(10, 15);
++ }
++
++ return 0;
++}
++
++int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate)
++{
++ struct hdac_bus *bus = sof_to_bus(sdev);
++ int retry = 50;
++ int ret;
++ u8 value;
++
++ /* Write to D0I3C after Command-In-Progress bit is cleared */
++ ret = hda_dsp_wait_d0i3c_done(sdev, retry);
++ if (ret < 0) {
++ dev_err(bus->dev, "CIP timeout before update D0I3C!\n");
++ return ret;
++ }
++
++ /* Update D0I3C register */
++ value = d0_substate == SOF_DSP_D0I3 ? SOF_HDA_VS_D0I3C_I3 : 0;
++ snd_hdac_chip_updateb(bus, VS_D0I3C, SOF_HDA_VS_D0I3C_I3, value);
++
++ /* Wait for cmd in progress to be cleared before exiting the function */
++ retry = 50;
++ ret = hda_dsp_wait_d0i3c_done(sdev, retry);
++ if (ret < 0) {
++ dev_err(bus->dev, "CIP timeout after D0I3C updated!\n");
++ return ret;
++ }
++
++ dev_vdbg(bus->dev, "D0I3C updated, register = 0x%x\n",
++ snd_hdac_chip_readb(bus, VS_D0I3C));
++
++ return 0;
++}
++
+ static int hda_suspend(struct snd_sof_dev *sdev, bool runtime_suspend)
+ {
+ struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index d6ef657b8900..21b0e180017a 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -64,6 +64,13 @@
+ #define SOF_HDA_PPCTL_PIE BIT(31)
+ #define SOF_HDA_PPCTL_GPROCEN BIT(30)
+
++/*Vendor Specific Registers*/
++#define SOF_HDA_VS_D0I3C 0x104A
++
++/* D0I3C Register fields */
++#define SOF_HDA_VS_D0I3C_CIP BIT(0) /* Command-In-Progress */
++#define SOF_HDA_VS_D0I3C_I3 BIT(2) /* D0i3 enable bit */
++
+ /* DPIB entry size: 8 Bytes = 2 DWords */
+ #define SOF_HDA_DPIB_ENTRY_SIZE 0x8
+
+@@ -455,6 +462,9 @@ int hda_dsp_core_reset_power_down(struct snd_sof_dev *sdev,
+ void hda_dsp_ipc_int_enable(struct snd_sof_dev *sdev);
+ void hda_dsp_ipc_int_disable(struct snd_sof_dev *sdev);
+
++int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate);
++
+ int hda_dsp_suspend(struct snd_sof_dev *sdev);
+ int hda_dsp_resume(struct snd_sof_dev *sdev);
+ int hda_dsp_runtime_suspend(struct snd_sof_dev *sdev);
+--
+2.20.1
+
+
+From d2b397a84c59634c88d3750db429f5be2e3a77ae Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:01 -0500
+Subject: [PATCH 076/130] ASoC: SOF: Intel: CNL: add set_power_state() ops
+
+Using hda_dsp_set_power_state() as set_power_state() ops for cnl to do
+d0ix platform configuration updates.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-6-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 73b51957122dc47a40325a5359b44ef337cbf217)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/cnl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
+index e9cdcc040fb5..982b81a0b13a 100644
+--- a/sound/soc/sof/intel/cnl.c
++++ b/sound/soc/sof/intel/cnl.c
+@@ -255,6 +255,7 @@ const struct snd_sof_dsp_ops sof_cnl_ops = {
+ .runtime_resume = hda_dsp_runtime_resume,
+ .runtime_idle = hda_dsp_runtime_idle,
+ .set_hw_params_upon_resume = hda_dsp_set_hw_params_upon_resume,
++ .set_power_state = hda_dsp_set_power_state,
+
+ /* ALSA HW info flags */
+ .hw_info = SNDRV_PCM_INFO_MMAP |
+--
+2.20.1
+
+
+From 7cb0adf614bc8d756f22dddd17f9eda4d48d6ee7 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:02 -0500
+Subject: [PATCH 077/130] ASoC: SOF: Intel: APL: add set_power_state() ops
+
+Using hda_dsp_set_power_state() as set_power_state() ops for apl to do
+d0ix platform configuration updates.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-7-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 35c930ba6025964ac71f041065ae212a0fcc7cca)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/apl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/soc/sof/intel/apl.c b/sound/soc/sof/intel/apl.c
+index 15d26e8d90a9..7daa8eb456c8 100644
+--- a/sound/soc/sof/intel/apl.c
++++ b/sound/soc/sof/intel/apl.c
+@@ -97,6 +97,7 @@ const struct snd_sof_dsp_ops sof_apl_ops = {
+ .runtime_resume = hda_dsp_runtime_resume,
+ .runtime_idle = hda_dsp_runtime_idle,
+ .set_hw_params_upon_resume = hda_dsp_set_hw_params_upon_resume,
++ .set_power_state = hda_dsp_set_power_state,
+
+ /* ALSA HW info flags */
+ .hw_info = SNDRV_PCM_INFO_MMAP |
+--
+2.20.1
+
+
+From e1f3cdb3b898b881acc9465773ff534a26f37cd9 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:03 -0500
+Subject: [PATCH 078/130] ASoC: SOF: add flag to snd_sof_pcm_stream for D0i3
+ compatible stream
+
+Add flag d0i3_compatible to struct snd_sof_pcm_stream to denote if the
+stream can tolerate a transition to the D0i3 substate while opened (thus
+seen as 'active' by pm_runtime).
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-8-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e5c97e88084b8dca6850eba5d2937716b88306c1)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-priv.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index e9902e4e8e55..7a21a45d3635 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -310,6 +310,7 @@ struct snd_sof_pcm_stream {
+ struct sof_ipc_stream_posn posn;
+ struct snd_pcm_substream *substream;
+ struct work_struct period_elapsed_work;
++ bool d0i3_compatible; /* DSP can be in D0I3 when this pcm is opened */
+ };
+
+ /* ALSA SOF PCM device */
+--
+2.20.1
+
+
+From 84bac6cfab76bb8e71b50054d9576aacb6e4c0d2 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:04 -0500
+Subject: [PATCH 079/130] ASoC: SOF: token: add tokens for PCM compatible with
+ D0i3 substate
+
+Add stream token SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3 and
+SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3 to denote if the stream can be
+opened at low power d0i3 status or not.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-9-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4a94940988cc44adeb383401dea0beeac4abbe63)
+Bugzilla: 1772498
+---
+ include/uapi/sound/sof/tokens.h | 4 ++++
+ sound/soc/sof/topology.c | 10 ++++++++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/include/uapi/sound/sof/tokens.h b/include/uapi/sound/sof/tokens.h
+index d65406f34361..76883e6fb750 100644
+--- a/include/uapi/sound/sof/tokens.h
++++ b/include/uapi/sound/sof/tokens.h
+@@ -113,6 +113,10 @@
+ /* ESAI */
+ #define SOF_TKN_IMX_ESAI_MCLK_ID 1100
+
++/* Stream */
++#define SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3 1200
++#define SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3 1201
++
+ /* Led control for mute switches */
+ #define SOF_TKN_MUTE_LED_USE 1300
+ #define SOF_TKN_MUTE_LED_DIRECTION 1301
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 8032bb8a709c..c4bc23163497 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -735,6 +735,16 @@ static const struct sof_topology_token pcm_tokens[] = {
+ offsetof(struct sof_ipc_comp_host, dmac_config), 0},
+ };
+
++/* PCM */
++static const struct sof_topology_token stream_tokens[] = {
++ {SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3,
++ SND_SOC_TPLG_TUPLE_TYPE_BOOL, get_token_u16,
++ offsetof(struct snd_sof_pcm, stream[0].d0i3_compatible), 0},
++ {SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3,
++ SND_SOC_TPLG_TUPLE_TYPE_BOOL, get_token_u16,
++ offsetof(struct snd_sof_pcm, stream[1].d0i3_compatible), 0},
++};
++
+ /* Generic components */
+ static const struct sof_topology_token comp_tokens[] = {
+ {SOF_TKN_COMP_PERIOD_SINK_COUNT,
+--
+2.20.1
+
+
+From 178524d176b58f1c218cf1ddf701cfa7fa7a9a04 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:05 -0500
+Subject: [PATCH 080/130] ASoC: SOF: topology: parse and store d0i3_compatible
+ flag
+
+Parses the token from tplg file and store it to snd_sof_pcm_stream
+d0i3_compatible flag, which can be used later for d0ix transition
+management.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-10-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c5232c0171428f005a3204e1c264231fb5999b28)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index c4bc23163497..9e3996125d03 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -2308,6 +2308,7 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
+ {
+ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
+ struct snd_soc_tplg_stream_caps *caps;
++ struct snd_soc_tplg_private *private = &pcm->priv;
+ struct snd_sof_pcm *spcm;
+ int stream = SNDRV_PCM_STREAM_PLAYBACK;
+ int ret = 0;
+@@ -2330,10 +2331,22 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
+ dai_drv->dobj.private = spcm;
+ list_add(&spcm->list, &sdev->pcm_list);
+
++ ret = sof_parse_tokens(scomp, spcm, stream_tokens,
++ ARRAY_SIZE(stream_tokens), private->array,
++ le32_to_cpu(private->size));
++ if (ret) {
++ dev_err(sdev->dev, "error: parse stream tokens failed %d\n",
++ le32_to_cpu(private->size));
++ return ret;
++ }
++
+ /* do we need to allocate playback PCM DMA pages */
+ if (!spcm->pcm.playback)
+ goto capture;
+
++ dev_vdbg(sdev->dev, "tplg: pcm %s stream tokens: playback d0i3:%d\n",
++ spcm->pcm.pcm_name, spcm->stream[0].d0i3_compatible);
++
+ caps = &spcm->pcm.caps[stream];
+
+ /* allocate playback page table buffer */
+@@ -2361,6 +2374,9 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
+ if (!spcm->pcm.capture)
+ return ret;
+
++ dev_vdbg(sdev->dev, "tplg: pcm %s stream tokens: capture d0i3:%d\n",
++ spcm->pcm.pcm_name, spcm->stream[1].d0i3_compatible);
++
+ caps = &spcm->pcm.caps[stream];
+
+ /* allocate capture page table buffer */
+--
+2.20.1
+
+
+From 99f21fd84280a7fc9a6f33f8f82b757306db97e7 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:06 -0500
+Subject: [PATCH 081/130] ASoC: SOF: Intel: hda-dsp: align the comments for
+ D0I3C update
+
+Align the logs for CIP timeout at D0I3C.I3 updating.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-11-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit aae7c82d01219bf568a7b12f5839d7ca52b17d59)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index fa2f1f66c72c..74805a066183 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -330,7 +330,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ /* Write to D0I3C after Command-In-Progress bit is cleared */
+ ret = hda_dsp_wait_d0i3c_done(sdev, retry);
+ if (ret < 0) {
+- dev_err(bus->dev, "CIP timeout before update D0I3C!\n");
++ dev_err(bus->dev, "CIP timeout before D0I3C update!\n");
+ return ret;
+ }
+
+@@ -342,7 +342,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ retry = 50;
+ ret = hda_dsp_wait_d0i3c_done(sdev, retry);
+ if (ret < 0) {
+- dev_err(bus->dev, "CIP timeout after D0I3C updated!\n");
++ dev_err(bus->dev, "CIP timeout after D0I3C update!\n");
+ return ret;
+ }
+
+--
+2.20.1
+
+
+From f672aa4a4452ca0d79a8f6b44c76c0139f6f99ec Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:07 -0500
+Subject: [PATCH 082/130] ASoC: SOF: Intel: HDA: use macro for register polling
+ retry count
+
+Define macro and use it for the register polling retry count.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-12-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 92f4beb718d76e93b76343a3ba872df6cb210672)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 6 ++----
+ sound/soc/sof/intel/hda.h | 1 +
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index 74805a066183..936361bd25e9 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -323,12 +323,11 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ enum sof_d0_substate d0_substate)
+ {
+ struct hdac_bus *bus = sof_to_bus(sdev);
+- int retry = 50;
+ int ret;
+ u8 value;
+
+ /* Write to D0I3C after Command-In-Progress bit is cleared */
+- ret = hda_dsp_wait_d0i3c_done(sdev, retry);
++ ret = hda_dsp_wait_d0i3c_done(sdev, HDA_DSP_REG_POLL_RETRY_COUNT);
+ if (ret < 0) {
+ dev_err(bus->dev, "CIP timeout before D0I3C update!\n");
+ return ret;
+@@ -339,8 +338,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ snd_hdac_chip_updateb(bus, VS_D0I3C, SOF_HDA_VS_D0I3C_I3, value);
+
+ /* Wait for cmd in progress to be cleared before exiting the function */
+- retry = 50;
+- ret = hda_dsp_wait_d0i3c_done(sdev, retry);
++ ret = hda_dsp_wait_d0i3c_done(sdev, HDA_DSP_REG_POLL_RETRY_COUNT);
+ if (ret < 0) {
+ dev_err(bus->dev, "CIP timeout after D0I3C update!\n");
+ return ret;
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 21b0e180017a..5a089efc0e4c 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -214,6 +214,7 @@
+ #define HDA_DSP_CTRL_RESET_TIMEOUT 100
+ #define HDA_DSP_WAIT_TIMEOUT 500 /* 500 msec */
+ #define HDA_DSP_REG_POLL_INTERVAL_US 500 /* 0.5 msec */
++#define HDA_DSP_REG_POLL_RETRY_COUNT 50
+
+ #define HDA_DSP_ADSPIC_IPC 1
+ #define HDA_DSP_ADSPIS_IPC 1
+--
+2.20.1
+
+
+From e21c6caf57e71006a145a73c117305e0fe2ea512 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:08 -0500
+Subject: [PATCH 083/130] ASoC: SOF: PM: rename sof_send_pm_ipc to
+ sof_send_pm_ctx_ipc
+
+The helper sof_send_pm_ipc() is only suitable for context save/restore
+IPCs' sending, so rename it to sof_send_pm_ctx_ipc here.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-13-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7c7eba2402c11137d1fa1d3fb964a2c6fc1ded3e)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 81e623dfc7e5..ac900fb3379e 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -197,7 +197,7 @@ static int sof_restore_pipelines(struct snd_sof_dev *sdev)
+ return ret;
+ }
+
+-static int sof_send_pm_ipc(struct snd_sof_dev *sdev, int cmd)
++static int sof_send_pm_ctx_ipc(struct snd_sof_dev *sdev, int cmd)
+ {
+ struct sof_ipc_pm_ctx pm_ctx;
+ struct sof_ipc_reply reply;
+@@ -320,7 +320,7 @@ static int sof_resume(struct device *dev, bool runtime_resume)
+ }
+
+ /* notify DSP of system resume */
+- ret = sof_send_pm_ipc(sdev, SOF_IPC_PM_CTX_RESTORE);
++ ret = sof_send_pm_ctx_ipc(sdev, SOF_IPC_PM_CTX_RESTORE);
+ if (ret < 0)
+ dev_err(sdev->dev,
+ "error: ctx_restore ipc error during resume %d\n",
+@@ -361,7 +361,7 @@ static int sof_suspend(struct device *dev, bool runtime_suspend)
+ sof_cache_debugfs(sdev);
+ #endif
+ /* notify DSP of upcoming power down */
+- ret = sof_send_pm_ipc(sdev, SOF_IPC_PM_CTX_SAVE);
++ ret = sof_send_pm_ctx_ipc(sdev, SOF_IPC_PM_CTX_SAVE);
+ if (ret == -EBUSY || ret == -EAGAIN) {
+ /*
+ * runtime PM has logic to handle -EBUSY/-EAGAIN so
+--
+2.20.1
+
+
+From 0852a87eb392f8a9d735b60d3a151332da158519 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:10 -0500
+Subject: [PATCH 084/130] ASoC: SOF: Intel: hda-ipc: Don't read mailbox for
+ PM_GATE reply
+
+Memory windows could be powered off before receiving PM_GATE IPC reply
+from FW, we can't read the mailbox to get reply.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-15-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 463fbf6dc03aff41e973602bbad6cb135fa6d48a)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-ipc.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-ipc.c b/sound/soc/sof/intel/hda-ipc.c
+index 6aae6f18b3dc..0fd2153c1769 100644
+--- a/sound/soc/sof/intel/hda-ipc.c
++++ b/sound/soc/sof/intel/hda-ipc.c
+@@ -83,10 +83,12 @@ void hda_dsp_ipc_get_reply(struct snd_sof_dev *sdev)
+ }
+
+ hdr = msg->msg_data;
+- if (hdr->cmd == (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_CTX_SAVE)) {
++ if (hdr->cmd == (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_CTX_SAVE) ||
++ hdr->cmd == (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_GATE)) {
+ /*
+ * memory windows are powered off before sending IPC reply,
+- * so we can't read the mailbox for CTX_SAVE reply.
++ * so we can't read the mailbox for CTX_SAVE and PM_GATE
++ * replies.
+ */
+ reply.error = 0;
+ reply.hdr.cmd = SOF_IPC_GLB_REPLY;
+--
+2.20.1
+
+
+From eee9b23d3c152581249c19f492cf21bd1e023a24 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:11 -0500
+Subject: [PATCH 085/130] ASoC: SOF: Intel: HDA: add cAVS specific compact IPC
+ header file
+
+On cAVS platforms, some IPCs are required to be sent via IPC registers
+only(e.g. when in D0i3, mailbox is unaccessible), add hda-ipc.h to hold
+definition of those compact IPCs.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-16-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5056193d4d1a8b73087145add21141c46027d6a2)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-ipc.h | 51 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 51 insertions(+)
+ create mode 100644 sound/soc/sof/intel/hda-ipc.h
+
+diff --git a/sound/soc/sof/intel/hda-ipc.h b/sound/soc/sof/intel/hda-ipc.h
+new file mode 100644
+index 000000000000..aef0ceac9803
+--- /dev/null
++++ b/sound/soc/sof/intel/hda-ipc.h
+@@ -0,0 +1,51 @@
++/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
++/*
++ * This file is provided under a dual BSD/GPLv2 license. When using or
++ * redistributing this file, you may do so under either license.
++ *
++ * Copyright(c) 2019 Intel Corporation. All rights reserved.
++ *
++ * Author: Keyon Jie <yang.jie@linux.intel.com>
++ */
++
++#ifndef __SOF_INTEL_HDA_IPC_H
++#define __SOF_INTEL_HDA_IPC_H
++
++/*
++ * Primary register, mapped to
++ * - DIPCTDR (HIPCIDR) in sideband IPC (cAVS 1.8+)
++ * - DIPCT in cAVS 1.5 IPC
++ *
++ * Secondary register, mapped to:
++ * - DIPCTDD (HIPCIDD) in sideband IPC (cAVS 1.8+)
++ * - DIPCTE in cAVS 1.5 IPC
++ */
++
++/* Common bits in primary register */
++
++/* Reserved for doorbell */
++#define HDA_IPC_RSVD_31 BIT(31)
++/* Target, 0 - normal message, 1 - compact message(cAVS compatible) */
++#define HDA_IPC_MSG_COMPACT BIT(30)
++/* Direction, 0 - request, 1 - response */
++#define HDA_IPC_RSP BIT(29)
++
++#define HDA_IPC_TYPE_SHIFT 24
++#define HDA_IPC_TYPE_MASK GENMASK(28, 24)
++#define HDA_IPC_TYPE(x) ((x) << HDA_IPC_TYPE_SHIFT)
++
++#define HDA_IPC_PM_GATE HDA_IPC_TYPE(0x8U)
++
++/* Command specific payload bits in secondary register */
++
++/* Disable DMA tracing (0 - keep tracing, 1 - to disable DMA trace) */
++#define HDA_PM_NO_DMA_TRACE BIT(4)
++/* Prevent clock gating (0 - cg allowed, 1 - DSP clock always on) */
++#define HDA_PM_PCG BIT(3)
++/* Prevent power gating (0 - deep power state transitions allowed) */
++#define HDA_PM_PPG BIT(2)
++/* Indicates whether streaming is active */
++#define HDA_PM_PG_STREAMING BIT(1)
++#define HDA_PM_PG_RSVD BIT(0)
++
++#endif
+--
+2.20.1
+
+
+From 325dfda7c31d247932c0ec20eda966bf0ca24512 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:12 -0500
+Subject: [PATCH 086/130] ASoC: SOF: configure D0ix IPC flags in
+ set_power_state
+
+The configuration for D0ix in FW is platform specific, let's do this and
+send IPC in the platform set_power_state() ops.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-17-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 534037fddd34b58be86a826d449a5a6635ecdbf5)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 32 +++++++++++++++++++++++++++++++-
+ 1 file changed, 31 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index 936361bd25e9..b5070409a5e3 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -19,6 +19,7 @@
+ #include <sound/hda_register.h>
+ #include "../ops.h"
+ #include "hda.h"
++#include "hda-ipc.h"
+
+ /*
+ * DSP Core control.
+@@ -319,10 +320,28 @@ static int hda_dsp_wait_d0i3c_done(struct snd_sof_dev *sdev, int retry)
+ return 0;
+ }
+
++static int hda_dsp_send_pm_gate_ipc(struct snd_sof_dev *sdev, u32 flags)
++{
++ struct sof_ipc_pm_gate pm_gate;
++ struct sof_ipc_reply reply;
++
++ memset(&pm_gate, 0, sizeof(pm_gate));
++
++ /* configure pm_gate ipc message */
++ pm_gate.hdr.size = sizeof(pm_gate);
++ pm_gate.hdr.cmd = SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_GATE;
++ pm_gate.flags = flags;
++
++ /* send pm_gate ipc to dsp */
++ return sof_ipc_tx_message(sdev->ipc, pm_gate.hdr.cmd, &pm_gate,
++ sizeof(pm_gate), &reply, sizeof(reply));
++}
++
+ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ enum sof_d0_substate d0_substate)
+ {
+ struct hdac_bus *bus = sof_to_bus(sdev);
++ u32 flags;
+ int ret;
+ u8 value;
+
+@@ -347,7 +366,18 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ dev_vdbg(bus->dev, "D0I3C updated, register = 0x%x\n",
+ snd_hdac_chip_readb(bus, VS_D0I3C));
+
+- return 0;
++ if (d0_substate == SOF_DSP_D0I0)
++ flags = HDA_PM_PPG;/* prevent power gating in D0 */
++ else
++ flags = HDA_PM_NO_DMA_TRACE;/* disable DMA trace in D0I3*/
++
++ /* sending pm_gate IPC */
++ ret = hda_dsp_send_pm_gate_ipc(sdev, flags);
++ if (ret < 0)
++ dev_err(sdev->dev,
++ "error: PM_GATE ipc error %d\n", ret);
++
++ return ret;
+ }
+
+ static int hda_suspend(struct snd_sof_dev *sdev, bool runtime_suspend)
+--
+2.20.1
+
+
+From 9ade30b8b3cf0e8d73a89b9ded857c50aeb91a37 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:13 -0500
+Subject: [PATCH 087/130] ASoC: SOF: PM: add helpers for setting D0 substate
+ for ADSP
+
+Add snd_sof_set_d0_substate() helper for setting ADSP to a specific D0
+substate, it will call into the platform specific implementation, and
+update the d0_substate at success.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-18-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 601252869f50af6f5ab377e7f4846d7b09cc66c0)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 17 +++++++++++++++++
+ sound/soc/sof/sof-priv.h | 2 ++
+ 2 files changed, 19 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index ac900fb3379e..584241e9734a 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -411,6 +411,23 @@ int snd_sof_runtime_resume(struct device *dev)
+ }
+ EXPORT_SYMBOL(snd_sof_runtime_resume);
+
++int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate)
++{
++ int ret;
++
++ /* do platform specific set_state */
++ ret = snd_sof_dsp_set_power_state(sdev, d0_substate);
++ if (ret < 0)
++ return ret;
++
++ /* update dsp D0 sub-state */
++ sdev->d0_substate = d0_substate;
++
++ return 0;
++}
++EXPORT_SYMBOL(snd_sof_set_d0_substate);
++
+ int snd_sof_resume(struct device *dev)
+ {
+ return sof_resume(dev, false);
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 7a21a45d3635..2231c673c678 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -485,6 +485,8 @@ int snd_sof_runtime_resume(struct device *dev);
+ int snd_sof_runtime_idle(struct device *dev);
+ int snd_sof_resume(struct device *dev);
+ int snd_sof_suspend(struct device *dev);
++int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate);
+
+ void snd_sof_new_platform_drv(struct snd_sof_dev *sdev);
+
+--
+2.20.1
+
+
+From cd303b2a36cdc4dd2228147f9a9518da71d88215 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:14 -0500
+Subject: [PATCH 088/130] ASoC: SOF: Intel: CNL: add support for sending
+ compact IPC
+
+For compact IPCs, we will send the IPC header/command via the HIPCIDR
+register and the first 32bit payload via the HIPCIDD register, no
+mailbox will be used.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-19-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0267de58acfe5059ace739741f1533dd605ed22f)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/cnl.c | 42 ++++++++++++++++++++++++++++++++++-----
+ sound/soc/sof/intel/hda.h | 1 +
+ 2 files changed, 38 insertions(+), 5 deletions(-)
+
+diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
+index 982b81a0b13a..0e1e265f3f3b 100644
+--- a/sound/soc/sof/intel/cnl.c
++++ b/sound/soc/sof/intel/cnl.c
+@@ -17,6 +17,7 @@
+
+ #include "../ops.h"
+ #include "hda.h"
++#include "hda-ipc.h"
+
+ static const struct snd_sof_debugfs_map cnl_dsp_debugfs[] = {
+ {"hda", HDA_DSP_HDA_BAR, 0, 0x4000, SOF_DEBUGFS_ACCESS_ALWAYS},
+@@ -150,14 +151,45 @@ static void cnl_ipc_dsp_done(struct snd_sof_dev *sdev)
+ CNL_DSP_REG_HIPCCTL_DONE);
+ }
+
++static bool cnl_compact_ipc_compress(struct snd_sof_ipc_msg *msg,
++ u32 *dr, u32 *dd)
++{
++ struct sof_ipc_pm_gate *pm_gate;
++
++ if (msg->header == (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_GATE)) {
++ pm_gate = msg->msg_data;
++
++ /* send the compact message via the primary register */
++ *dr = HDA_IPC_MSG_COMPACT | HDA_IPC_PM_GATE;
++
++ /* send payload via the extended data register */
++ *dd = pm_gate->flags;
++
++ return true;
++ }
++
++ return false;
++}
++
+ static int cnl_ipc_send_msg(struct snd_sof_dev *sdev,
+ struct snd_sof_ipc_msg *msg)
+ {
+- /* send the message */
+- sof_mailbox_write(sdev, sdev->host_box.offset, msg->msg_data,
+- msg->msg_size);
+- snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR,
+- CNL_DSP_REG_HIPCIDR_BUSY);
++ u32 dr = 0;
++ u32 dd = 0;
++
++ if (cnl_compact_ipc_compress(msg, &dr, &dd)) {
++ /* send the message via IPC registers */
++ snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDD,
++ dd);
++ snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR,
++ CNL_DSP_REG_HIPCIDR_BUSY | dr);
++ } else {
++ /* send the message via mailbox */
++ sof_mailbox_write(sdev, sdev->host_box.offset, msg->msg_data,
++ msg->msg_size);
++ snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR,
++ CNL_DSP_REG_HIPCIDR_BUSY);
++ }
+
+ return 0;
+ }
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 5a089efc0e4c..5ad73a34b09c 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -312,6 +312,7 @@
+ #define CNL_DSP_REG_HIPCTDD (CNL_DSP_IPC_BASE + 0x08)
+ #define CNL_DSP_REG_HIPCIDR (CNL_DSP_IPC_BASE + 0x10)
+ #define CNL_DSP_REG_HIPCIDA (CNL_DSP_IPC_BASE + 0x14)
++#define CNL_DSP_REG_HIPCIDD (CNL_DSP_IPC_BASE + 0x18)
+ #define CNL_DSP_REG_HIPCCTL (CNL_DSP_IPC_BASE + 0x28)
+
+ /* HIPCI */
+--
+2.20.1
+
+
+From 8bb4306ead5641b1f9e7d97d0db0d5705b193e79 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:15 -0500
+Subject: [PATCH 089/130] ASoC: SOF: add a flag to indicate the system suspend
+ target
+
+Add flag 's0_suspend' to indicate if the system is entering S0ix or
+not.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-20-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7367d3096b1443e55a2c730d1966f423b15d5cad)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-priv.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 2231c673c678..e715673f20e5 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -398,6 +398,8 @@ struct snd_sof_dev {
+
+ /* power states related */
+ enum sof_d0_substate d0_substate;
++ /* flag to track if the intended power target of suspend is S0ix */
++ bool s0_suspend;
+
+ /* DSP firmware boot */
+ wait_queue_head_t boot_wait;
+--
+2.20.1
+
+
+From 8d8d925e7051604e82ef12a2dbddf5d77e02e40d Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:16 -0500
+Subject: [PATCH 090/130] ASoC: SOF: add a flag suspend_ignored for sof stream
+
+Add a suspend_ignored flag to snd_sof_pcm_stream that will be used to
+decide if the corresponding FW pipeline should be kept active to perform
+always on tasks when the system is entering the S0ix state.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-21-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4cd933abd4820da7eefe672ff439b32d199a07be)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-priv.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index e715673f20e5..c2541d020bde 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -311,6 +311,11 @@ struct snd_sof_pcm_stream {
+ struct snd_pcm_substream *substream;
+ struct work_struct period_elapsed_work;
+ bool d0i3_compatible; /* DSP can be in D0I3 when this pcm is opened */
++ /*
++ * flag to indicate that the DSP pipelines should be kept
++ * active or not while suspending the stream
++ */
++ bool suspend_ignored;
+ };
+
+ /* ALSA SOF PCM device */
+--
+2.20.1
+
+
+From 3b92b523982d92ab8944be6c739da55889e44878 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:17 -0500
+Subject: [PATCH 091/130] ASoC: SOF: PM: implement prepare/complete callbacks
+
+Implement the prepare() and complete() callbacks for power management,
+initialize s0_suspend flag at prepare(), and reset it at complete().
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-22-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0b50b3b1c3bc2a2c9eeab418b3de3e60e0530cf4)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 23 +++++++++++++++++++++++
+ sound/soc/sof/sof-priv.h | 2 ++
+ 2 files changed, 25 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 584241e9734a..99e4e6ffff74 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -439,3 +439,26 @@ int snd_sof_suspend(struct device *dev)
+ return sof_suspend(dev, false);
+ }
+ EXPORT_SYMBOL(snd_sof_suspend);
++
++int snd_sof_prepare(struct device *dev)
++{
++ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
++
++#if defined(CONFIG_ACPI)
++ sdev->s0_suspend = acpi_target_system_state() == ACPI_STATE_S0;
++#else
++ /* will suspend to S3 by default */
++ sdev->s0_suspend = false;
++#endif
++
++ return 0;
++}
++EXPORT_SYMBOL(snd_sof_prepare);
++
++void snd_sof_complete(struct device *dev)
++{
++ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
++
++ sdev->s0_suspend = false;
++}
++EXPORT_SYMBOL(snd_sof_complete);
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index c2541d020bde..6408ac88a3e5 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -492,6 +492,8 @@ int snd_sof_runtime_resume(struct device *dev);
+ int snd_sof_runtime_idle(struct device *dev);
+ int snd_sof_resume(struct device *dev);
+ int snd_sof_suspend(struct device *dev);
++int snd_sof_prepare(struct device *dev);
++void snd_sof_complete(struct device *dev);
+ int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
+ enum sof_d0_substate d0_substate);
+
+--
+2.20.1
+
+
+From a8161368f38eb802d5bfc2601420a94076b3527f Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:18 -0500
+Subject: [PATCH 092/130] ASoC: SOF: ignore suspend/resume for D0ix compatible
+ streams
+
+During system suspend, the PM framework will freeze all applications and
+the ALSA/ASoC core will suspend all RUNNING PCM streams.
+
+However, D0ix-compatible PCM streams should keep the related pipelines
+active in the DSP when the system is entering S0ix. The TRIGGER_SUSPEND
+event is trapped in such cases to prevent the pipelines from being
+stopped. Likewise, the TRIGGER_RESUME/START events should not affect the
+pipeline state.
+
+The SOF driver also triggers some DSP Firmware pipelines based on the
+DAPM widgets power events. In such cases, we also ignore PRE_PMU and
+POST_PMD events to keep the pipelines active.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-23-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit ac8c046f19f94ec419c60d7a073af75a71386e97)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pcm.c | 31 +++++++++++++++++++++++++++++++
+ sound/soc/sof/topology.c | 17 ++++++++++++++++-
+ 2 files changed, 47 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
+index b33928e1385b..927b197c2c8d 100644
+--- a/sound/soc/sof/pcm.c
++++ b/sound/soc/sof/pcm.c
+@@ -350,6 +350,16 @@ static int sof_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_RELEASE;
+ break;
+ case SNDRV_PCM_TRIGGER_RESUME:
++ if (spcm->stream[substream->stream].suspend_ignored) {
++ /*
++ * this case will be triggered when INFO_RESUME is
++ * supported, no need to resume streams that remained
++ * enabled in D0ix.
++ */
++ spcm->stream[substream->stream].suspend_ignored = false;
++ return 0;
++ }
++
+ /* set up hw_params */
+ ret = sof_pcm_prepare(substream);
+ if (ret < 0) {
+@@ -360,9 +370,30 @@ static int sof_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
+
+ /* fallthrough */
+ case SNDRV_PCM_TRIGGER_START:
++ if (spcm->stream[substream->stream].suspend_ignored) {
++ /*
++ * This case will be triggered when INFO_RESUME is
++ * not supported, no need to re-start streams that
++ * remained enabled in D0ix.
++ */
++ spcm->stream[substream->stream].suspend_ignored = false;
++ return 0;
++ }
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_START;
+ break;
+ case SNDRV_PCM_TRIGGER_SUSPEND:
++ if (sdev->s0_suspend &&
++ spcm->stream[substream->stream].d0i3_compatible) {
++ /*
++ * trap the event, not sending trigger stop to
++ * prevent the FW pipelines from being stopped,
++ * and mark the flag to ignore the upcoming DAPM
++ * PM events.
++ */
++ spcm->stream[substream->stream].suspend_ignored = true;
++ return 0;
++ }
++ /* fallthrough */
+ case SNDRV_PCM_TRIGGER_STOP:
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_STOP;
+ ipc_first = true;
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 9e3996125d03..ad798fb3bb32 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -135,7 +135,9 @@ static int sof_keyword_dapm_event(struct snd_soc_dapm_widget *w,
+ struct snd_kcontrol *k, int event)
+ {
+ struct snd_sof_widget *swidget = w->dobj.private;
++ int stream = SNDRV_PCM_STREAM_CAPTURE;
+ struct snd_sof_dev *sdev;
++ struct snd_sof_pcm *spcm;
+ int ret = 0;
+
+ if (!swidget)
+@@ -146,11 +148,19 @@ static int sof_keyword_dapm_event(struct snd_soc_dapm_widget *w,
+ dev_dbg(sdev->dev, "received event %d for widget %s\n",
+ event, w->name);
+
++ /* get runtime PCM params using widget's stream name */
++ spcm = snd_sof_find_spcm_name(sdev, swidget->widget->sname);
++
+ /* process events */
+ switch (event) {
+ case SND_SOC_DAPM_PRE_PMU:
++ if (spcm->stream[stream].suspend_ignored) {
++ dev_dbg(sdev->dev, "PRE_PMU event ignored, KWD pipeline is already RUNNING\n");
++ return 0;
++ }
++
+ /* set pcm params */
+- ret = ipc_pcm_params(swidget, SOF_IPC_STREAM_CAPTURE);
++ ret = ipc_pcm_params(swidget, stream);
+ if (ret < 0) {
+ dev_err(sdev->dev,
+ "error: failed to set pcm params for widget %s\n",
+@@ -166,6 +176,11 @@ static int sof_keyword_dapm_event(struct snd_soc_dapm_widget *w,
+ swidget->widget->name);
+ break;
+ case SND_SOC_DAPM_POST_PMD:
++ if (spcm->stream[stream].suspend_ignored) {
++ dev_dbg(sdev->dev, "POST_PMD even ignored, KWD pipeline will remain RUNNING\n");
++ return 0;
++ }
++
+ /* stop trigger */
+ ret = ipc_trigger(swidget, SOF_IPC_STREAM_TRIG_STOP);
+ if (ret < 0)
+--
+2.20.1
+
+
+From 95a260712df9014813aaeb2e8bf3149bcf82572c Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:19 -0500
+Subject: [PATCH 093/130] ASoC: SOF: Intel: hda-dsp: implement suspend/resume
+ for S0ix<->S0 transition
+
+Enable system wake up via IPC interrupt from DSP when the system is
+suspending to the S0ix state, and disable it in the corresponding
+resuming.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-24-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 66e40876ddc325d892c493a6d83574bbba5770ce)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index b5070409a5e3..d23573d9e9c4 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -477,6 +477,15 @@ static int hda_resume(struct snd_sof_dev *sdev, bool runtime_resume)
+
+ int hda_dsp_resume(struct snd_sof_dev *sdev)
+ {
++ struct pci_dev *pci = to_pci_dev(sdev->dev);
++
++ if (sdev->s0_suspend) {
++ /* restore and disable the system wakeup */
++ pci_restore_state(pci);
++ disable_irq_wake(pci->irq);
++ return 0;
++ }
++
+ /* init hda controller. DSP cores will be powered up during fw boot */
+ return hda_resume(sdev, false);
+ }
+@@ -509,8 +518,16 @@ int hda_dsp_runtime_suspend(struct snd_sof_dev *sdev)
+ int hda_dsp_suspend(struct snd_sof_dev *sdev)
+ {
+ struct hdac_bus *bus = sof_to_bus(sdev);
++ struct pci_dev *pci = to_pci_dev(sdev->dev);
+ int ret;
+
++ if (sdev->s0_suspend) {
++ /* enable the system waking up via IPC IRQ */
++ enable_irq_wake(pci->irq);
++ pci_save_state(pci);
++ return 0;
++ }
++
+ /* stop hda controller and power dsp off */
+ ret = hda_suspend(sdev, false);
+ if (ret < 0) {
+--
+2.20.1
+
+
+From fb1833ed7540f40d3c82371bea470e2802fee2a6 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:20 -0500
+Subject: [PATCH 094/130] ASoC: SOF: return -ENOTSUPP if D0I3 is not supported
+
+No set_power_state ops means that the platform doesn't support D0i3,
+return -ENOTSUPP for the case.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-25-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5655ce660a6d3eec4a3ad37feb99fb228540d1a9)
+Bugzilla: 1772498
+---
+ sound/soc/sof/ops.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/ops.h b/sound/soc/sof/ops.h
+index d7c8fc06f961..93512dcbaacd 100644
+--- a/sound/soc/sof/ops.h
++++ b/sound/soc/sof/ops.h
+@@ -199,7 +199,8 @@ static inline int snd_sof_dsp_set_power_state(struct snd_sof_dev *sdev,
+ if (sof_ops(sdev)->set_power_state)
+ return sof_ops(sdev)->set_power_state(sdev, substate);
+
+- return 0;
++ /* D0 substate is not supported */
++ return -ENOTSUPP;
+ }
+
+ /* debug */
+--
+2.20.1
+
+
+From a9ff8edc56014d193031b94c32da8d1ca4cd9181 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:21 -0500
+Subject: [PATCH 095/130] ASoC: SOF: PM: Add support for DSP D0i3 state when
+ entering S0ix
+
+When system is entering into S0ix, the PCI device may transition to the
+D0i3 substate instead of D3. In D0i3, some always-on functionality can
+be enabled, such as acoustic event detection, voice activity detection
+or hotwording. When an event is detected, the DSP firmware can wake-up
+the device for a transition to D0 with an interrupt.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-26-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c470fc3f61b25e955f8ba90fc9dc554881e4e72c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 46 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 99e4e6ffff74..560a937e0484 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -430,12 +430,58 @@ EXPORT_SYMBOL(snd_sof_set_d0_substate);
+
+ int snd_sof_resume(struct device *dev)
+ {
++ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
++ int ret;
++
++ if (sdev->s0_suspend) {
++ /* resume from D0I3 */
++ dev_dbg(sdev->dev, "DSP will exit from D0i3...\n");
++ ret = snd_sof_set_d0_substate(sdev, SOF_DSP_D0I0);
++ if (ret == -ENOTSUPP) {
++ /* fallback to resume from D3 */
++ dev_dbg(sdev->dev, "D0i3 not supported, fall back to resume from D3...\n");
++ goto d3_resume;
++ } else if (ret < 0) {
++ dev_err(sdev->dev, "error: failed to exit from D0I3 %d\n",
++ ret);
++ return ret;
++ }
++
++ /* platform-specific resume from D0i3 */
++ return snd_sof_dsp_resume(sdev);
++ }
++
++d3_resume:
++ /* resume from D3 */
+ return sof_resume(dev, false);
+ }
+ EXPORT_SYMBOL(snd_sof_resume);
+
+ int snd_sof_suspend(struct device *dev)
+ {
++ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
++ int ret;
++
++ if (sdev->s0_suspend) {
++ /* suspend to D0i3 */
++ dev_dbg(sdev->dev, "DSP is trying to enter D0i3...\n");
++ ret = snd_sof_set_d0_substate(sdev, SOF_DSP_D0I3);
++ if (ret == -ENOTSUPP) {
++ /* fallback to D3 suspend */
++ dev_dbg(sdev->dev, "D0i3 not supported, fall back to D3...\n");
++ goto d3_suspend;
++ } else if (ret < 0) {
++ dev_err(sdev->dev, "error: failed to enter D0I3, %d\n",
++ ret);
++ return ret;
++ }
++
++ /* platform-specific suspend to D0i3 */
++ return snd_sof_dsp_suspend(sdev);
++ }
++
++d3_suspend:
++ /* suspend to D3 */
+ return sof_suspend(dev, false);
+ }
+ EXPORT_SYMBOL(snd_sof_suspend);
+--
+2.20.1
+
+
+From 57fa7b6018c8497dbc676a7ed19580ce413c1f93 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:22 -0500
+Subject: [PATCH 096/130] ASoC: SOF: pci: Add prepare/complete PM callbacks
+
+Use the new implemented snd_sof_prepare() and snd_sof_complete() as the
+power management callbacks for pci probing platforms.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-27-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 6d407a39cc9619d0088b44333c6526924be00f8d)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-pci-dev.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index 067acf389af7..3b58b91e7b9e 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -229,6 +229,8 @@ static const struct sof_dev_desc jsl_desc = {
+ #endif
+
+ static const struct dev_pm_ops sof_pci_pm = {
++ .prepare = snd_sof_prepare,
++ .complete = snd_sof_complete,
+ SET_SYSTEM_SLEEP_PM_OPS(snd_sof_suspend, snd_sof_resume)
+ SET_RUNTIME_PM_OPS(snd_sof_runtime_suspend, snd_sof_runtime_resume,
+ snd_sof_runtime_idle)
+--
+2.20.1
+
+
+From 275c9af318fdb56701f9c336ecfdcaf8d05e7b03 Mon Sep 17 00:00:00 2001
+From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:09:16 -0500
+Subject: [PATCH 097/130] ASoC: SOF: Intel: hda: Simplify the
+ hda_dsp_wait_d0i3c_done() function
+
+Remove the retry argument for the hda_dsp_wait_d0i3c_done()
+function and use the HDA_DSP_REG_POLL_RETRY_COUNT macro
+directly.
+
+Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101170916.26517-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 65c56f5dccc87ca2993a50672e144c7378189f2c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index d23573d9e9c4..8cd5ecc01b62 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -307,9 +307,10 @@ void hda_dsp_ipc_int_disable(struct snd_sof_dev *sdev)
+ HDA_DSP_REG_HIPCCTL_BUSY | HDA_DSP_REG_HIPCCTL_DONE, 0);
+ }
+
+-static int hda_dsp_wait_d0i3c_done(struct snd_sof_dev *sdev, int retry)
++static int hda_dsp_wait_d0i3c_done(struct snd_sof_dev *sdev)
+ {
+ struct hdac_bus *bus = sof_to_bus(sdev);
++ int retry = HDA_DSP_REG_POLL_RETRY_COUNT;
+
+ while (snd_hdac_chip_readb(bus, VS_D0I3C) & SOF_HDA_VS_D0I3C_CIP) {
+ if (!retry--)
+@@ -346,7 +347,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ u8 value;
+
+ /* Write to D0I3C after Command-In-Progress bit is cleared */
+- ret = hda_dsp_wait_d0i3c_done(sdev, HDA_DSP_REG_POLL_RETRY_COUNT);
++ ret = hda_dsp_wait_d0i3c_done(sdev);
+ if (ret < 0) {
+ dev_err(bus->dev, "CIP timeout before D0I3C update!\n");
+ return ret;
+@@ -357,7 +358,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ snd_hdac_chip_updateb(bus, VS_D0I3C, SOF_HDA_VS_D0I3C_I3, value);
+
+ /* Wait for cmd in progress to be cleared before exiting the function */
+- ret = hda_dsp_wait_d0i3c_done(sdev, HDA_DSP_REG_POLL_RETRY_COUNT);
++ ret = hda_dsp_wait_d0i3c_done(sdev);
+ if (ret < 0) {
+ dev_err(bus->dev, "CIP timeout after D0I3C update!\n");
+ return ret;
+--
+2.20.1
+
+
+From a547d2de50bd9993d6b1723ece45ad954c042bb5 Mon Sep 17 00:00:00 2001
+From: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:42 -0500
+Subject: [PATCH 098/130] AsoC: SOF: refactor control load code
+
+Move code around to enable token parsing in control load.
+
+Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-9-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit acf1b71cb693263c7c9373296e872a8fa61a5cf3)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 336 +++++++++++++++++++--------------------
+ 1 file changed, 168 insertions(+), 168 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index ad798fb3bb32..d4aea5422ea8 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -447,174 +447,6 @@ static enum sof_comp_type find_process_comp_type(enum sof_ipc_process_type type)
+ return SOF_COMP_NONE;
+ }
+
+-/*
+- * Standard Kcontrols.
+- */
+-
+-static int sof_control_load_volume(struct snd_soc_component *scomp,
+- struct snd_sof_control *scontrol,
+- struct snd_kcontrol_new *kc,
+- struct snd_soc_tplg_ctl_hdr *hdr)
+-{
+- struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
+- struct snd_soc_tplg_mixer_control *mc =
+- container_of(hdr, struct snd_soc_tplg_mixer_control, hdr);
+- struct sof_ipc_ctrl_data *cdata;
+- int tlv[TLV_ITEMS];
+- unsigned int i;
+- int ret;
+-
+- /* validate topology data */
+- if (le32_to_cpu(mc->num_channels) > SND_SOC_TPLG_MAX_CHAN)
+- return -EINVAL;
+-
+- /* init the volume get/put data */
+- scontrol->size = struct_size(scontrol->control_data, chanv,
+- le32_to_cpu(mc->num_channels));
+- scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
+- if (!scontrol->control_data)
+- return -ENOMEM;
+-
+- scontrol->comp_id = sdev->next_comp_id;
+- scontrol->min_volume_step = le32_to_cpu(mc->min);
+- scontrol->max_volume_step = le32_to_cpu(mc->max);
+- scontrol->num_channels = le32_to_cpu(mc->num_channels);
+-
+- /* set cmd for mixer control */
+- if (le32_to_cpu(mc->max) == 1) {
+- scontrol->cmd = SOF_CTRL_CMD_SWITCH;
+- goto out;
+- }
+-
+- scontrol->cmd = SOF_CTRL_CMD_VOLUME;
+-
+- /* extract tlv data */
+- if (get_tlv_data(kc->tlv.p, tlv) < 0) {
+- dev_err(sdev->dev, "error: invalid TLV data\n");
+- return -EINVAL;
+- }
+-
+- /* set up volume table */
+- ret = set_up_volume_table(scontrol, tlv, le32_to_cpu(mc->max) + 1);
+- if (ret < 0) {
+- dev_err(sdev->dev, "error: setting up volume table\n");
+- return ret;
+- }
+-
+- /* set default volume values to 0dB in control */
+- cdata = scontrol->control_data;
+- for (i = 0; i < scontrol->num_channels; i++) {
+- cdata->chanv[i].channel = i;
+- cdata->chanv[i].value = VOL_ZERO_DB;
+- }
+-
+-out:
+- /* set up possible led control from mixer private data */
+- ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
+- ARRAY_SIZE(led_tokens), mc->priv.array,
+- le32_to_cpu(mc->priv.size));
+- if (ret != 0) {
+- dev_err(sdev->dev, "error: parse led tokens failed %d\n",
+- le32_to_cpu(mc->priv.size));
+- return ret;
+- }
+-
+- dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+- scontrol->comp_id, scontrol->num_channels);
+-
+- return 0;
+-}
+-
+-static int sof_control_load_enum(struct snd_soc_component *scomp,
+- struct snd_sof_control *scontrol,
+- struct snd_kcontrol_new *kc,
+- struct snd_soc_tplg_ctl_hdr *hdr)
+-{
+- struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
+- struct snd_soc_tplg_enum_control *ec =
+- container_of(hdr, struct snd_soc_tplg_enum_control, hdr);
+-
+- /* validate topology data */
+- if (le32_to_cpu(ec->num_channels) > SND_SOC_TPLG_MAX_CHAN)
+- return -EINVAL;
+-
+- /* init the enum get/put data */
+- scontrol->size = struct_size(scontrol->control_data, chanv,
+- le32_to_cpu(ec->num_channels));
+- scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
+- if (!scontrol->control_data)
+- return -ENOMEM;
+-
+- scontrol->comp_id = sdev->next_comp_id;
+- scontrol->num_channels = le32_to_cpu(ec->num_channels);
+-
+- scontrol->cmd = SOF_CTRL_CMD_ENUM;
+-
+- dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d comp_id %d\n",
+- scontrol->comp_id, scontrol->num_channels, scontrol->comp_id);
+-
+- return 0;
+-}
+-
+-static int sof_control_load_bytes(struct snd_soc_component *scomp,
+- struct snd_sof_control *scontrol,
+- struct snd_kcontrol_new *kc,
+- struct snd_soc_tplg_ctl_hdr *hdr)
+-{
+- struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
+- struct sof_ipc_ctrl_data *cdata;
+- struct snd_soc_tplg_bytes_control *control =
+- container_of(hdr, struct snd_soc_tplg_bytes_control, hdr);
+- struct soc_bytes_ext *sbe = (struct soc_bytes_ext *)kc->private_value;
+- int max_size = sbe->max;
+-
+- /* init the get/put bytes data */
+- scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
+- le32_to_cpu(control->priv.size);
+-
+- if (scontrol->size > max_size) {
+- dev_err(sdev->dev, "err: bytes data size %d exceeds max %d.\n",
+- scontrol->size, max_size);
+- return -EINVAL;
+- }
+-
+- scontrol->control_data = kzalloc(max_size, GFP_KERNEL);
+- cdata = scontrol->control_data;
+- if (!scontrol->control_data)
+- return -ENOMEM;
+-
+- scontrol->comp_id = sdev->next_comp_id;
+- scontrol->cmd = SOF_CTRL_CMD_BINARY;
+-
+- dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+- scontrol->comp_id, scontrol->num_channels);
+-
+- if (le32_to_cpu(control->priv.size) > 0) {
+- memcpy(cdata->data, control->priv.data,
+- le32_to_cpu(control->priv.size));
+-
+- if (cdata->data->magic != SOF_ABI_MAGIC) {
+- dev_err(sdev->dev, "error: Wrong ABI magic 0x%08x.\n",
+- cdata->data->magic);
+- return -EINVAL;
+- }
+- if (SOF_ABI_VERSION_INCOMPATIBLE(SOF_ABI_VERSION,
+- cdata->data->abi)) {
+- dev_err(sdev->dev,
+- "error: Incompatible ABI version 0x%08x.\n",
+- cdata->data->abi);
+- return -EINVAL;
+- }
+- if (cdata->data->size + sizeof(const struct sof_abi_hdr) !=
+- le32_to_cpu(control->priv.size)) {
+- dev_err(sdev->dev,
+- "error: Conflict in bytes vs. priv size.\n");
+- return -EINVAL;
+- }
+- }
+- return 0;
+-}
+-
+ /*
+ * Topology Token Parsing.
+ * New tokens should be added to headers and parsing tables below.
+@@ -1090,6 +922,174 @@ static void sof_dbg_comp_config(struct snd_soc_component *scomp,
+ config->frame_fmt);
+ }
+
++/*
++ * Standard Kcontrols.
++ */
++
++static int sof_control_load_volume(struct snd_soc_component *scomp,
++ struct snd_sof_control *scontrol,
++ struct snd_kcontrol_new *kc,
++ struct snd_soc_tplg_ctl_hdr *hdr)
++{
++ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
++ struct snd_soc_tplg_mixer_control *mc =
++ container_of(hdr, struct snd_soc_tplg_mixer_control, hdr);
++ struct sof_ipc_ctrl_data *cdata;
++ int tlv[TLV_ITEMS];
++ unsigned int i;
++ int ret;
++
++ /* validate topology data */
++ if (le32_to_cpu(mc->num_channels) > SND_SOC_TPLG_MAX_CHAN)
++ return -EINVAL;
++
++ /* init the volume get/put data */
++ scontrol->size = struct_size(scontrol->control_data, chanv,
++ le32_to_cpu(mc->num_channels));
++ scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
++ if (!scontrol->control_data)
++ return -ENOMEM;
++
++ scontrol->comp_id = sdev->next_comp_id;
++ scontrol->min_volume_step = le32_to_cpu(mc->min);
++ scontrol->max_volume_step = le32_to_cpu(mc->max);
++ scontrol->num_channels = le32_to_cpu(mc->num_channels);
++
++ /* set cmd for mixer control */
++ if (le32_to_cpu(mc->max) == 1) {
++ scontrol->cmd = SOF_CTRL_CMD_SWITCH;
++ goto out;
++ }
++
++ scontrol->cmd = SOF_CTRL_CMD_VOLUME;
++
++ /* extract tlv data */
++ if (get_tlv_data(kc->tlv.p, tlv) < 0) {
++ dev_err(sdev->dev, "error: invalid TLV data\n");
++ return -EINVAL;
++ }
++
++ /* set up volume table */
++ ret = set_up_volume_table(scontrol, tlv, le32_to_cpu(mc->max) + 1);
++ if (ret < 0) {
++ dev_err(sdev->dev, "error: setting up volume table\n");
++ return ret;
++ }
++
++ /* set default volume values to 0dB in control */
++ cdata = scontrol->control_data;
++ for (i = 0; i < scontrol->num_channels; i++) {
++ cdata->chanv[i].channel = i;
++ cdata->chanv[i].value = VOL_ZERO_DB;
++ }
++
++out:
++ /* set up possible led control from mixer private data */
++ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
++ ARRAY_SIZE(led_tokens), mc->priv.array,
++ le32_to_cpu(mc->priv.size));
++ if (ret != 0) {
++ dev_err(sdev->dev, "error: parse led tokens failed %d\n",
++ le32_to_cpu(mc->priv.size));
++ return ret;
++ }
++
++ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
++ scontrol->comp_id, scontrol->num_channels);
++
++ return 0;
++}
++
++static int sof_control_load_enum(struct snd_soc_component *scomp,
++ struct snd_sof_control *scontrol,
++ struct snd_kcontrol_new *kc,
++ struct snd_soc_tplg_ctl_hdr *hdr)
++{
++ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
++ struct snd_soc_tplg_enum_control *ec =
++ container_of(hdr, struct snd_soc_tplg_enum_control, hdr);
++
++ /* validate topology data */
++ if (le32_to_cpu(ec->num_channels) > SND_SOC_TPLG_MAX_CHAN)
++ return -EINVAL;
++
++ /* init the enum get/put data */
++ scontrol->size = struct_size(scontrol->control_data, chanv,
++ le32_to_cpu(ec->num_channels));
++ scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
++ if (!scontrol->control_data)
++ return -ENOMEM;
++
++ scontrol->comp_id = sdev->next_comp_id;
++ scontrol->num_channels = le32_to_cpu(ec->num_channels);
++
++ scontrol->cmd = SOF_CTRL_CMD_ENUM;
++
++ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d comp_id %d\n",
++ scontrol->comp_id, scontrol->num_channels, scontrol->comp_id);
++
++ return 0;
++}
++
++static int sof_control_load_bytes(struct snd_soc_component *scomp,
++ struct snd_sof_control *scontrol,
++ struct snd_kcontrol_new *kc,
++ struct snd_soc_tplg_ctl_hdr *hdr)
++{
++ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
++ struct sof_ipc_ctrl_data *cdata;
++ struct snd_soc_tplg_bytes_control *control =
++ container_of(hdr, struct snd_soc_tplg_bytes_control, hdr);
++ struct soc_bytes_ext *sbe = (struct soc_bytes_ext *)kc->private_value;
++ int max_size = sbe->max;
++
++ /* init the get/put bytes data */
++ scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
++ le32_to_cpu(control->priv.size);
++
++ if (scontrol->size > max_size) {
++ dev_err(sdev->dev, "err: bytes data size %d exceeds max %d.\n",
++ scontrol->size, max_size);
++ return -EINVAL;
++ }
++
++ scontrol->control_data = kzalloc(max_size, GFP_KERNEL);
++ cdata = scontrol->control_data;
++ if (!scontrol->control_data)
++ return -ENOMEM;
++
++ scontrol->comp_id = sdev->next_comp_id;
++ scontrol->cmd = SOF_CTRL_CMD_BINARY;
++
++ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
++ scontrol->comp_id, scontrol->num_channels);
++
++ if (le32_to_cpu(control->priv.size) > 0) {
++ memcpy(cdata->data, control->priv.data,
++ le32_to_cpu(control->priv.size));
++
++ if (cdata->data->magic != SOF_ABI_MAGIC) {
++ dev_err(sdev->dev, "error: Wrong ABI magic 0x%08x.\n",
++ cdata->data->magic);
++ return -EINVAL;
++ }
++ if (SOF_ABI_VERSION_INCOMPATIBLE(SOF_ABI_VERSION,
++ cdata->data->abi)) {
++ dev_err(sdev->dev,
++ "error: Incompatible ABI version 0x%08x.\n",
++ cdata->data->abi);
++ return -EINVAL;
++ }
++ if (cdata->data->size + sizeof(const struct sof_abi_hdr) !=
++ le32_to_cpu(control->priv.size)) {
++ dev_err(sdev->dev,
++ "error: Conflict in bytes vs. priv size.\n");
++ return -EINVAL;
++ }
++ }
++ return 0;
++}
++
+ /* external kcontrol init - used for any driver specific init */
+ static int sof_control_load(struct snd_soc_component *scomp, int index,
+ struct snd_kcontrol_new *kc,
+--
+2.20.1
+
+
+From b0ba4b0be937405c5982db296e5d9e57a9239c5a Mon Sep 17 00:00:00 2001
+From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Date: Mon, 4 Nov 2019 14:48:12 -0800
+Subject: [PATCH 099/130] ASoC: SOF: topology: set trigger order for FE DAI
+ link
+
+Set trigger order for FE DAI links to SND_SOC_DPCM_TRIGGER_POST
+to trigger the BE DAI's before the FE DAI's. This prevents the
+xruns seen on playback pipelines using the link DMA.
+
+Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191104224812.3393-3-ranjani.sridharan@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5eee2b3f60065a2530d13f28e771be48b989eb4c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index d4aea5422ea8..143b8259a70a 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -2952,6 +2952,10 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
+ if (!link->no_pcm) {
+ link->nonatomic = true;
+
++ /* set trigger order */
++ link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
++ link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
++
+ /* nothing more to do for FE dai links */
+ return 0;
+ }
+--
+2.20.1
+
+
+From 00e0accc297d44a65b09af38a2d6813467f5b8e9 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Tue, 19 Nov 2019 18:49:32 +0100
+Subject: [PATCH 100/130] ASoC: add control components management
+
+This ASCII string can carry additional information about
+soundcard components or configuration. Add the possibility
+to set this string via the ASoC card.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191119174933.25526-1-perex@perex.cz
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit dc73d73aa7145f55412611f3eead1e85ae026785)
+Bugzilla: 1772498
+---
+ include/sound/soc.h | 1 +
+ sound/soc/soc-core.c | 13 +++++++++++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/include/sound/soc.h b/include/sound/soc.h
+index f264c6509f00..efc5fb8f3d64 100644
+--- a/include/sound/soc.h
++++ b/include/sound/soc.h
+@@ -978,6 +978,7 @@ struct snd_soc_card {
+ const char *name;
+ const char *long_name;
+ const char *driver_name;
++ const char *components;
+ char dmi_longname[80];
+ char topology_shortname[32];
+
+diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
+index 88978a3036c4..fff910fd933e 100644
+--- a/sound/soc/soc-core.c
++++ b/sound/soc/soc-core.c
+@@ -2095,6 +2095,19 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
+ }
+ }
+
++ if (card->components) {
++ /* the current implementation of snd_component_add() accepts */
++ /* multiple components in the string separated by space, */
++ /* but the string collision (identical string) check might */
++ /* not work correctly */
++ ret = snd_component_add(card->snd_card, card->components);
++ if (ret < 0) {
++ dev_err(card->dev, "ASoC: %s snd_component_add() failed: %d\n",
++ card->name, ret);
++ goto probe_end;
++ }
++ }
++
+ if (card->late_probe) {
+ ret = card->late_probe(card);
+ if (ret < 0) {
+--
+2.20.1
+
+
+From 15b3f8b52655f2e8eafb5c209c829cd09650ae1f Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 20 Nov 2019 18:44:34 +0100
+Subject: [PATCH 101/130] ASoC: improve the DMI long card code in asoc-core
+
+Add append_dmi_string() function and make the code more readable.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191120174435.30920-1-perex@perex.cz
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4e01e5dbba96f731119f3f1a6bf51b54c98c5940)
+Bugzilla: 1772498
+---
+ sound/soc/soc-core.c | 66 +++++++++++++++++---------------------------
+ 1 file changed, 25 insertions(+), 41 deletions(-)
+
+diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
+index fff910fd933e..2cbd9796a25f 100644
+--- a/sound/soc/soc-core.c
++++ b/sound/soc/soc-core.c
+@@ -1729,6 +1729,23 @@ static int is_dmi_valid(const char *field)
+ return 1;
+ }
+
++/*
++ * Append a string to card->dmi_longname with character cleanups.
++ */
++static void append_dmi_string(struct snd_soc_card *card, const char *str)
++{
++ char *dst = card->dmi_longname;
++ size_t dst_len = sizeof(card->dmi_longname);
++ size_t len;
++
++ len = strlen(dst);
++ snprintf(dst + len, dst_len - len, "-%s", str);
++
++ len++; /* skip the separator "-" */
++ if (len < dst_len)
++ cleanup_dmi_name(dst + len);
++}
++
+ /**
+ * snd_soc_set_dmi_name() - Register DMI names to card
+ * @card: The card to register DMI names
+@@ -1763,61 +1780,36 @@ static int is_dmi_valid(const char *field)
+ int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour)
+ {
+ const char *vendor, *product, *product_version, *board;
+- size_t longname_buf_size = sizeof(card->snd_card->longname);
+- size_t len;
+
+ if (card->long_name)
+ return 0; /* long name already set by driver or from DMI */
+
+- /* make up dmi long name as: vendor.product.version.board */
++ /* make up dmi long name as: vendor-product-version-board */
+ vendor = dmi_get_system_info(DMI_BOARD_VENDOR);
+ if (!vendor || !is_dmi_valid(vendor)) {
+ dev_warn(card->dev, "ASoC: no DMI vendor name!\n");
+ return 0;
+ }
+
+- snprintf(card->dmi_longname, sizeof(card->snd_card->longname),
+- "%s", vendor);
++ snprintf(card->dmi_longname, sizeof(card->dmi_longname), "%s", vendor);
+ cleanup_dmi_name(card->dmi_longname);
+
+ product = dmi_get_system_info(DMI_PRODUCT_NAME);
+ if (product && is_dmi_valid(product)) {
+- len = strlen(card->dmi_longname);
+- snprintf(card->dmi_longname + len,
+- longname_buf_size - len,
+- "-%s", product);
+-
+- len++; /* skip the separator "-" */
+- if (len < longname_buf_size)
+- cleanup_dmi_name(card->dmi_longname + len);
++ append_dmi_string(card, product);
+
+ /*
+ * some vendors like Lenovo may only put a self-explanatory
+ * name in the product version field
+ */
+ product_version = dmi_get_system_info(DMI_PRODUCT_VERSION);
+- if (product_version && is_dmi_valid(product_version)) {
+- len = strlen(card->dmi_longname);
+- snprintf(card->dmi_longname + len,
+- longname_buf_size - len,
+- "-%s", product_version);
+-
+- len++;
+- if (len < longname_buf_size)
+- cleanup_dmi_name(card->dmi_longname + len);
+- }
++ if (product_version && is_dmi_valid(product_version))
++ append_dmi_string(card, product_version);
+ }
+
+ board = dmi_get_system_info(DMI_BOARD_NAME);
+ if (board && is_dmi_valid(board)) {
+- len = strlen(card->dmi_longname);
+- snprintf(card->dmi_longname + len,
+- longname_buf_size - len,
+- "-%s", board);
+-
+- len++;
+- if (len < longname_buf_size)
+- cleanup_dmi_name(card->dmi_longname + len);
++ append_dmi_string(card, board);
+ } else if (!product) {
+ /* fall back to using legacy name */
+ dev_warn(card->dev, "ASoC: no DMI board/product name!\n");
+@@ -1825,16 +1817,8 @@ int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour)
+ }
+
+ /* Add flavour to dmi long name */
+- if (flavour) {
+- len = strlen(card->dmi_longname);
+- snprintf(card->dmi_longname + len,
+- longname_buf_size - len,
+- "-%s", flavour);
+-
+- len++;
+- if (len < longname_buf_size)
+- cleanup_dmi_name(card->dmi_longname + len);
+- }
++ if (flavour)
++ append_dmi_string(card, flavour);
+
+ /* set the card long name */
+ card->long_name = card->dmi_longname;
+--
+2.20.1
+
+
+From f77607883b4040fdb1791e4e81402e452a97d1d0 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 20 Nov 2019 18:44:35 +0100
+Subject: [PATCH 102/130] ASoC: DMI long name - avoid to add board name if
+ matches with product name
+
+Current code:
+
+ LENOVO-20QE000VMC-ThinkPadX1Carbon7th-20QE000VMC
+
+With the patch:
+
+ LENOVO-20QE000VMC-ThinkPadX1Carbon7th
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Link: https://lore.kernel.org/r/20191120174435.30920-2-perex@perex.cz
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 39870b0dec68ed7dd814beb697e541670975c7d8)
+Bugzilla: 1772498
+---
+ sound/soc/soc-core.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
+index 2cbd9796a25f..d42924ff13f1 100644
+--- a/sound/soc/soc-core.c
++++ b/sound/soc/soc-core.c
+@@ -1809,7 +1809,8 @@ int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour)
+
+ board = dmi_get_system_info(DMI_BOARD_NAME);
+ if (board && is_dmi_valid(board)) {
+- append_dmi_string(card, board);
++ if (!product || strcasecmp(board, product))
++ append_dmi_string(card, board);
+ } else if (!product) {
+ /* fall back to using legacy name */
+ dev_warn(card->dev, "ASoC: no DMI board/product name!\n");
+--
+2.20.1
+
+
+From acab1a3016c11ce7262f08ee5f978ba0fd650d81 Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang@canonical.com>
+Date: Thu, 21 Nov 2019 10:26:43 +0800
+Subject: [PATCH 103/130] ALSA: hda/realtek - Move some alc256 pintbls to
+ fallback table
+
+We have a new Dell machine which needs to apply the quirk
+ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, try to use the fallback table
+to fix it this time. And we could remove all pintbls of alc256
+for applying DELL1_MIC_NO_PRESENCE on Dell machines.
+
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+Link: https://lore.kernel.org/r/20191121022644.8078-1-hui.wang@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit aed8c7f40882015aad45088256231babcbc24482)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 35 +++--------------------------------
+ 1 file changed, 3 insertions(+), 32 deletions(-)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index 80f66ba85f87..4c83ed4b0d5c 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -7608,38 +7608,6 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
+ SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+ {0x1b, 0x01011020},
+ {0x21, 0x02211010}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60130},
+- {0x14, 0x90170110},
+- {0x1b, 0x01011020},
+- {0x21, 0x0221101f}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60160},
+- {0x14, 0x90170120},
+- {0x21, 0x02211030}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60170},
+- {0x14, 0x90170120},
+- {0x21, 0x02211030}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell Inspiron 5468", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60180},
+- {0x14, 0x90170120},
+- {0x21, 0x02211030}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0xb7a60130},
+- {0x14, 0x90170110},
+- {0x21, 0x02211020}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60130},
+- {0x14, 0x90170110},
+- {0x14, 0x01011020},
+- {0x21, 0x0221101f}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- ALC256_STANDARD_PINS),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x14, 0x90170110},
+- {0x1b, 0x01011020},
+- {0x21, 0x0221101f}),
+ SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC256_FIXUP_ASUS_MIC,
+ {0x14, 0x90170110},
+ {0x1b, 0x90a70130},
+@@ -7852,6 +7820,9 @@ static const struct snd_hda_pin_quirk alc269_fallback_pin_fixup_tbl[] = {
+ SND_HDA_PIN_QUIRK(0x10ec0274, 0x1028, "Dell", ALC274_FIXUP_DELL_AIO_LINEOUT_VERB,
+ {0x19, 0x40000000},
+ {0x1a, 0x40000000}),
++ SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
++ {0x19, 0x40000000},
++ {0x1a, 0x40000000}),
+ {}
+ };
+
+--
+2.20.1
+
+
+From 0ea4ea7f506846d630b9c31bcc9668c34e6f0555 Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang@canonical.com>
+Date: Thu, 21 Nov 2019 10:26:44 +0800
+Subject: [PATCH 104/130] ALSA: hda/realtek - Move some alc236 pintbls to
+ fallback table
+
+We have a new Dell machine which needs to apply the quirk
+ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, try to use the fallback table
+to fix it this time. And we could remove all pintbls of alc236
+for applying DELL1_MIC_NO_PRESENCE on Dell machines.
+
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+Link: https://lore.kernel.org/r/20191121022644.8078-2-hui.wang@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit d64ebdbfd4f71406f58210f5ccb16977b4cd31d2)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 17 +++--------------
+ 1 file changed, 3 insertions(+), 14 deletions(-)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index 4c83ed4b0d5c..4ebe104cb592 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -7512,20 +7512,6 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
+ {0x19, 0x02a11020},
+ {0x1a, 0x02a11030},
+ {0x21, 0x0221101f}),
+- SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60140},
+- {0x14, 0x90170110},
+- {0x21, 0x02211020}),
+- SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60140},
+- {0x14, 0x90170150},
+- {0x21, 0x02211020}),
+- SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x21, 0x02211020}),
+- SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x40000000},
+- {0x14, 0x90170110},
+- {0x21, 0x02211020}),
+ SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
+ {0x14, 0x90170110},
+ {0x21, 0x02211020}),
+@@ -7823,6 +7809,9 @@ static const struct snd_hda_pin_quirk alc269_fallback_pin_fixup_tbl[] = {
+ SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+ {0x19, 0x40000000},
+ {0x1a, 0x40000000}),
++ SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
++ {0x19, 0x40000000},
++ {0x1a, 0x40000000}),
+ {}
+ };
+
+--
+2.20.1
+
+
+From 268e8ce52ad4278f6b94792483d3f8510b435b3e Mon Sep 17 00:00:00 2001
+From: Jens Verwiebe <info@jensverwiebe.de>
+Date: Sun, 24 Nov 2019 13:35:44 +0100
+Subject: [PATCH 107/130] ALSA: usb-audio: Fix Focusrite Scarlett 6i6 gen1 -
+ input handling
+
+The Scarlett 6i6 has no padding on rear inputs 3/4 but a gainstage.
+This patch introduces this functionality as to be seen in the mac
+or windows scarlett control.
+
+The correct address could already be found in the dump info, but was
+never used. Without this patch inputs 3/4 are quite unusable else.
+
+Signed-off-by: Jens Verwiebe <info@jensverwiebe.de>
+Link: https://lore.kernel.org/r/384d65cd-5e87-91eb-9fc3-e57226f534c6@jensverwiebe.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit bf2aa5cadd1c7bb91af4b5b1218e643cfffb5c9a)
+Bugzilla: 1772498
+---
+ sound/usb/mixer_scarlett.c | 23 +++++++++++++++++++++--
+ 1 file changed, 21 insertions(+), 2 deletions(-)
+
+diff --git a/sound/usb/mixer_scarlett.c b/sound/usb/mixer_scarlett.c
+index 83715fd8dfd6..9d10cbf1b5ed 100644
+--- a/sound/usb/mixer_scarlett.c
++++ b/sound/usb/mixer_scarlett.c
+@@ -142,6 +142,7 @@ enum {
+ SCARLETT_OUTPUTS,
+ SCARLETT_SWITCH_IMPEDANCE,
+ SCARLETT_SWITCH_PAD,
++ SCARLETT_SWITCH_GAIN,
+ };
+
+ enum {
+@@ -192,6 +193,15 @@ static const struct scarlett_mixer_elem_enum_info opt_pad = {
+ }
+ };
+
++static const struct scarlett_mixer_elem_enum_info opt_gain = {
++ .start = 0,
++ .len = 2,
++ .offsets = {},
++ .names = (char const * const []){
++ "Lo", "Hi"
++ }
++};
++
+ static const struct scarlett_mixer_elem_enum_info opt_impedance = {
+ .start = 0,
+ .len = 2,
+@@ -652,8 +662,8 @@ static struct scarlett_device_info s6i6_info = {
+ { .num = 1, .type = SCARLETT_SWITCH_PAD, .name = NULL},
+ { .num = 2, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
+ { .num = 2, .type = SCARLETT_SWITCH_PAD, .name = NULL},
+- { .num = 3, .type = SCARLETT_SWITCH_PAD, .name = NULL},
+- { .num = 4, .type = SCARLETT_SWITCH_PAD, .name = NULL},
++ { .num = 3, .type = SCARLETT_SWITCH_GAIN, .name = NULL},
++ { .num = 4, .type = SCARLETT_SWITCH_GAIN, .name = NULL},
+ },
+
+ .matrix_mux_init = {
+@@ -883,6 +893,15 @@ static int scarlett_controls_create_generic(struct usb_mixer_interface *mixer,
+ if (err < 0)
+ return err;
+ break;
++ case SCARLETT_SWITCH_GAIN:
++ sprintf(mx, "Input %d Gain Switch", ctl->num);
++ err = add_new_ctl(mixer, &usb_scarlett_ctl_enum,
++ scarlett_ctl_enum_resume, 0x01,
++ 0x08, ctl->num, USB_MIXER_S16, 1, mx,
++ &opt_gain, &elem);
++ if (err < 0)
++ return err;
++ break;
+ }
+ }
+
+--
+2.20.1
+
+
+From 98db14f3c44954a5da1239328f4677808d5a3acf Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:09:14 -0500
+Subject: [PATCH 108/130] ASoC: SOF: topology: fix missing NULL pointer check
+
+Add check to avoid possible NULL pointer dereference issue.
+
+This issue was reported by static analysis tools, we didn't face this
+issue but we can't rule it out either as a false positive.
+
+Reported-by: Keqiao Zhang <keqiao.zhang@intel.com>
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101170916.26517-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8cd73ce7ba6381feb9df763240dee3a6d4aff1ca)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 143b8259a70a..6096731e89ce 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -150,6 +150,11 @@ static int sof_keyword_dapm_event(struct snd_soc_dapm_widget *w,
+
+ /* get runtime PCM params using widget's stream name */
+ spcm = snd_sof_find_spcm_name(sdev, swidget->widget->sname);
++ if (!spcm) {
++ dev_err(sdev->dev, "error: cannot find PCM for %s\n",
++ swidget->widget->name);
++ return -EINVAL;
++ }
+
+ /* process events */
+ switch (event) {
+--
+2.20.1
+
+
+From d00288a4c998c445288666abb202808ea2d0dd8b Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:09:15 -0500
+Subject: [PATCH 109/130] ASoC: SOF: Intel: hda: set L1SEN on S0ix suspend
+
+Set L1SEN to make sure the system can enter S0ix, and restore it on
+resume.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101170916.26517-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 16299326a0cbbc88d4d6491a8ceebbfca81064c5)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 15 +++++++++++++++
+ sound/soc/sof/intel/hda.h | 3 +++
+ 2 files changed, 18 insertions(+)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index 8cd5ecc01b62..4a4d318f97ff 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -478,9 +478,16 @@ static int hda_resume(struct snd_sof_dev *sdev, bool runtime_resume)
+
+ int hda_dsp_resume(struct snd_sof_dev *sdev)
+ {
++ struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
+ struct pci_dev *pci = to_pci_dev(sdev->dev);
+
+ if (sdev->s0_suspend) {
++ /* restore L1SEN bit */
++ if (hda->l1_support_changed)
++ snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
++ HDA_VS_INTEL_EM2,
++ HDA_VS_INTEL_EM2_L1SEN, 0);
++
+ /* restore and disable the system wakeup */
+ pci_restore_state(pci);
+ disable_irq_wake(pci->irq);
+@@ -518,11 +525,19 @@ int hda_dsp_runtime_suspend(struct snd_sof_dev *sdev)
+
+ int hda_dsp_suspend(struct snd_sof_dev *sdev)
+ {
++ struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
+ struct hdac_bus *bus = sof_to_bus(sdev);
+ struct pci_dev *pci = to_pci_dev(sdev->dev);
+ int ret;
+
+ if (sdev->s0_suspend) {
++ /* enable L1SEN to make sure the system can enter S0Ix */
++ hda->l1_support_changed =
++ snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
++ HDA_VS_INTEL_EM2,
++ HDA_VS_INTEL_EM2_L1SEN,
++ HDA_VS_INTEL_EM2_L1SEN);
++
+ /* enable the system waking up via IPC IRQ */
+ enable_irq_wake(pci->irq);
+ pci_save_state(pci);
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 5ad73a34b09c..18d7e72bf9b7 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -408,6 +408,9 @@ struct sof_intel_hda_dev {
+
+ int irq;
+
++ /* PM related */
++ bool l1_support_changed;/* during suspend, is L1SEN changed or not */
++
+ /* DMIC device */
+ struct platform_device *dmic_dev;
+ };
+--
+2.20.1
+
+
+From d1475f9cebf57b062ca025e4d87ecaa8f0955f8e Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:29:01 -0600
+Subject: [PATCH 110/130] ASoC: SOF: Intel: hda: use fallback for firmware name
+
+We have platforms such as CFL with no known I2S codec being used, and
+the ACPI tables are currently empty, so fall-back to using the
+firmware filename used in nocodec mode
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111222901.19892-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0af237d51a4e734db959a158185f79019f022f59)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 7dc0018dc4c3..91bd88fddac7 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -415,9 +415,16 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
+ pdata->tplg_filename =
+ hda_mach->sof_tplg_filename;
+
+- /* firmware: pick the first in machine list */
++ /*
++ * firmware: pick the first in machine list,
++ * or use nocodec firmware name if list is empty
++ */
+ mach = pdata->desc->machines;
+- pdata->fw_filename = mach->sof_fw_filename;
++ if (mach->id[0])
++ pdata->fw_filename = mach->sof_fw_filename;
++ else
++ pdata->fw_filename =
++ pdata->desc->nocodec_fw_filename;
+
+ dev_info(bus->dev, "using HDA machine driver %s now\n",
+ hda_mach->drv_name);
+--
+2.20.1
+
+
+From 15f2f0826db2cd13a243fde28d9b7a6fd4b0428e Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:33:40 -0600
+Subject: [PATCH 111/130] ASoC: SOF: PM: add state machine to comments
+
+Add Audio DSP state machine with comments. Note that the
+'D0<-->runtime D0I3' part is not implemented yet.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111223343.19986-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 74b4dd04b19cc03e1cc369d9c371cf4206367df4)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 32 ++++++++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 560a937e0484..3204c92f0e7d 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -428,6 +428,38 @@ int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
+ }
+ EXPORT_SYMBOL(snd_sof_set_d0_substate);
+
++/*
++ * Audio DSP states may transform as below:-
++ *
++ * D0I3 compatible stream
++ * Runtime +---------------------+ opened only, timeout
++ * suspend | +--------------------+
++ * +------------+ D0(active) | |
++ * | | <---------------+ |
++ * | +--------> | | |
++ * | |Runtime +--^--+---------^--+--+ The last | |
++ * | |resume | | | | opened D0I3 | |
++ * | | | | | | compatible | |
++ * | | resume| | | | stream closed | |
++ * | | from | | D3 | | | |
++ * | | D3 | |suspend | | d0i3 | |
++ * | | | | | |suspend | |
++ * | | | | | | | |
++ * | | | | | | | |
++ * +-v---+-----------+--v-------+ | | +------+----v----+
++ * | | | +-----------> |
++ * | D3 (suspended) | | | D0I3 +-----+
++ * | | +--------------+ | |
++ * | | resume from | | |
++ * +-------------------^--------+ d0i3 suspend +----------------+ |
++ * | |
++ * | D3 suspend |
++ * +------------------------------------------------+
++ *
++ * d0i3_suspend = s0_suspend && D0I3 stream opened,
++ * D3 suspend = !d0i3_suspend,
++ */
++
+ int snd_sof_resume(struct device *dev)
+ {
+ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
+--
+2.20.1
+
+
+From a42c0c91a4bb7e180473b81bf98c56384149bd1c Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:33:41 -0600
+Subject: [PATCH 112/130] ASoC: SOF: PM: add check before setting d0_substate
+
+Add check before seeting d0_substate and return success if Audio DSP is
+already in the target substate.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111223343.19986-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 58a972efd21bb5adadd97f2546693ec64bfc99b9)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 3204c92f0e7d..b89810bf3230 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -416,6 +416,9 @@ int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
+ {
+ int ret;
+
++ if (sdev->d0_substate == d0_substate)
++ return 0;
++
+ /* do platform specific set_state */
+ ret = snd_sof_dsp_set_power_state(sdev, d0_substate);
+ if (ret < 0)
+--
+2.20.1
+
+
+From bba0301fd9f218213736d2db9368bbc09346cbb5 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:33:42 -0600
+Subject: [PATCH 113/130] ASoC: SOF: add helper to check if we should enter
+ d0i3 suspend
+
+Add helper to check if the DSP should be put in D0i3. This function
+returns true if a stream has ignored the SUSPEND trigger to keep the
+pipelines running in the DSP.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111223343.19986-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit a77e5d573f847d2f984c38eb711351326bc55258)
+Bugzilla: 1772498
+---
+ sound/soc/sof/core.c | 13 +++++++++++++
+ sound/soc/sof/sof-priv.h | 2 ++
+ 2 files changed, 15 insertions(+)
+
+diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
+index 8661c2cca76b..805918d3bcc0 100644
+--- a/sound/soc/sof/core.c
++++ b/sound/soc/sof/core.c
+@@ -132,6 +132,19 @@ struct snd_sof_dai *snd_sof_find_dai(struct snd_sof_dev *sdev,
+ return NULL;
+ }
+
++bool snd_sof_dsp_d0i3_on_suspend(struct snd_sof_dev *sdev)
++{
++ struct snd_sof_pcm *spcm;
++
++ list_for_each_entry(spcm, &sdev->pcm_list, list) {
++ if (spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].suspend_ignored ||
++ spcm->stream[SNDRV_PCM_STREAM_CAPTURE].suspend_ignored)
++ return true;
++ }
++
++ return false;
++}
++
+ /*
+ * FW Panic/fault handling.
+ */
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 6408ac88a3e5..c7c2c70ee4d0 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -553,6 +553,8 @@ struct snd_sof_pcm *snd_sof_find_spcm_dai(struct snd_sof_dev *sdev,
+ return NULL;
+ }
+
++bool snd_sof_dsp_d0i3_on_suspend(struct snd_sof_dev *sdev);
++
+ struct snd_sof_pcm *snd_sof_find_spcm_name(struct snd_sof_dev *sdev,
+ const char *name);
+ struct snd_sof_pcm *snd_sof_find_spcm_comp(struct snd_sof_dev *sdev,
+--
+2.20.1
+
+
+From 37c30238887254ea800b5913475bd444fe0ba46d Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:33:43 -0600
+Subject: [PATCH 114/130] ASoC: SOF: PM: only suspend to D0I3 when needed
+
+We should suspend audio to D3 by default, for the sake of power saving,
+change the condition of D0I3 suspending here to that when there is
+stream with suspend_ignored specified.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111223343.19986-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5e35d5f4224adb24c2bfa814b9fb562050aba3ea)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index b89810bf3230..0fd5567237a8 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -468,7 +468,7 @@ int snd_sof_resume(struct device *dev)
+ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
+ int ret;
+
+- if (sdev->s0_suspend) {
++ if (snd_sof_dsp_d0i3_on_suspend(sdev)) {
+ /* resume from D0I3 */
+ dev_dbg(sdev->dev, "DSP will exit from D0i3...\n");
+ ret = snd_sof_set_d0_substate(sdev, SOF_DSP_D0I0);
+@@ -497,7 +497,7 @@ int snd_sof_suspend(struct device *dev)
+ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
+ int ret;
+
+- if (sdev->s0_suspend) {
++ if (snd_sof_dsp_d0i3_on_suspend(sdev)) {
+ /* suspend to D0i3 */
+ dev_dbg(sdev->dev, "DSP is trying to enter D0i3...\n");
+ ret = snd_sof_set_d0_substate(sdev, SOF_DSP_D0I3);
+--
+2.20.1
+
+
+From 21fa58950c58b8b75e38f4cffac87e6058f0f01f Mon Sep 17 00:00:00 2001
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Date: Mon, 11 Nov 2019 16:20:38 -0600
+Subject: [PATCH 115/130] ASoC: SOF: topology: free kcontrol memory on error
+
+The volume and bytes kcontrols are currently not freeing their
+memory on initialization failures. When an error occurs, all the
+widgets loaded so far are unloaded via sof_widget_unload().
+But this only happens for the widgets that got successfully loaded.
+
+Fix that by kfree()-ing the allocated memory on load error.
+
+Fixes: 311ce4fe7637d ("ASoC: SOF: Add support for loading topologies")
+Reviewed-by: Paul Olaru <paul.olaru@nxp.com>
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111222039.19651-1-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 1b4efdaf6d6053c8944cee0edba0969dc1be7d4b)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 67 +++++++++++++++++++++++++++++-----------
+ 1 file changed, 49 insertions(+), 18 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 6096731e89ce..d82ab981e840 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -942,18 +942,22 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ struct sof_ipc_ctrl_data *cdata;
+ int tlv[TLV_ITEMS];
+ unsigned int i;
+- int ret;
++ int ret = 0;
+
+ /* validate topology data */
+- if (le32_to_cpu(mc->num_channels) > SND_SOC_TPLG_MAX_CHAN)
+- return -EINVAL;
++ if (le32_to_cpu(mc->num_channels) > SND_SOC_TPLG_MAX_CHAN) {
++ ret = -EINVAL;
++ goto out;
++ }
+
+ /* init the volume get/put data */
+ scontrol->size = struct_size(scontrol->control_data, chanv,
+ le32_to_cpu(mc->num_channels));
+ scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
+- if (!scontrol->control_data)
+- return -ENOMEM;
++ if (!scontrol->control_data) {
++ ret = -ENOMEM;
++ goto out;
++ }
+
+ scontrol->comp_id = sdev->next_comp_id;
+ scontrol->min_volume_step = le32_to_cpu(mc->min);
+@@ -963,7 +967,7 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ /* set cmd for mixer control */
+ if (le32_to_cpu(mc->max) == 1) {
+ scontrol->cmd = SOF_CTRL_CMD_SWITCH;
+- goto out;
++ goto skip;
+ }
+
+ scontrol->cmd = SOF_CTRL_CMD_VOLUME;
+@@ -971,14 +975,15 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ /* extract tlv data */
+ if (get_tlv_data(kc->tlv.p, tlv) < 0) {
+ dev_err(sdev->dev, "error: invalid TLV data\n");
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out_free;
+ }
+
+ /* set up volume table */
+ ret = set_up_volume_table(scontrol, tlv, le32_to_cpu(mc->max) + 1);
+ if (ret < 0) {
+ dev_err(sdev->dev, "error: setting up volume table\n");
+- return ret;
++ goto out_free;
+ }
+
+ /* set default volume values to 0dB in control */
+@@ -988,7 +993,7 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ cdata->chanv[i].value = VOL_ZERO_DB;
+ }
+
+-out:
++skip:
+ /* set up possible led control from mixer private data */
+ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
+ ARRAY_SIZE(led_tokens), mc->priv.array,
+@@ -996,13 +1001,21 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ if (ret != 0) {
+ dev_err(sdev->dev, "error: parse led tokens failed %d\n",
+ le32_to_cpu(mc->priv.size));
+- return ret;
++ goto out_free_table;
+ }
+
+ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+ scontrol->comp_id, scontrol->num_channels);
+
+- return 0;
++ return ret;
++
++out_free_table:
++ if (le32_to_cpu(mc->max) > 1)
++ kfree(scontrol->volume_table);
++out_free:
++ kfree(scontrol->control_data);
++out:
++ return ret;
+ }
+
+ static int sof_control_load_enum(struct snd_soc_component *scomp,
+@@ -1047,6 +1060,7 @@ static int sof_control_load_bytes(struct snd_soc_component *scomp,
+ container_of(hdr, struct snd_soc_tplg_bytes_control, hdr);
+ struct soc_bytes_ext *sbe = (struct soc_bytes_ext *)kc->private_value;
+ int max_size = sbe->max;
++ int ret = 0;
+
+ /* init the get/put bytes data */
+ scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
+@@ -1055,13 +1069,16 @@ static int sof_control_load_bytes(struct snd_soc_component *scomp,
+ if (scontrol->size > max_size) {
+ dev_err(sdev->dev, "err: bytes data size %d exceeds max %d.\n",
+ scontrol->size, max_size);
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out;
+ }
+
+ scontrol->control_data = kzalloc(max_size, GFP_KERNEL);
+ cdata = scontrol->control_data;
+- if (!scontrol->control_data)
+- return -ENOMEM;
++ if (!scontrol->control_data) {
++ ret = -ENOMEM;
++ goto out;
++ }
+
+ scontrol->comp_id = sdev->next_comp_id;
+ scontrol->cmd = SOF_CTRL_CMD_BINARY;
+@@ -1076,23 +1093,32 @@ static int sof_control_load_bytes(struct snd_soc_component *scomp,
+ if (cdata->data->magic != SOF_ABI_MAGIC) {
+ dev_err(sdev->dev, "error: Wrong ABI magic 0x%08x.\n",
+ cdata->data->magic);
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out_free;
+ }
+ if (SOF_ABI_VERSION_INCOMPATIBLE(SOF_ABI_VERSION,
+ cdata->data->abi)) {
+ dev_err(sdev->dev,
+ "error: Incompatible ABI version 0x%08x.\n",
+ cdata->data->abi);
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out_free;
+ }
+ if (cdata->data->size + sizeof(const struct sof_abi_hdr) !=
+ le32_to_cpu(control->priv.size)) {
+ dev_err(sdev->dev,
+ "error: Conflict in bytes vs. priv size.\n");
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out_free;
+ }
+ }
+- return 0;
++
++ return ret;
++
++out_free:
++ kfree(scontrol->control_data);
++out:
++ return ret;
+ }
+
+ /* external kcontrol init - used for any driver specific init */
+@@ -1150,6 +1176,11 @@ static int sof_control_load(struct snd_soc_component *scomp, int index,
+ return 0;
+ }
+
++ if (ret < 0) {
++ kfree(scontrol);
++ return ret;
++ }
++
+ dobj->private = scontrol;
+ list_add(&scontrol->list, &sdev->kcontrol_list);
+ return ret;
+--
+2.20.1
+
+
+From 165ac3fd39d420dc48ff9e05142a6e07dbc249e0 Mon Sep 17 00:00:00 2001
+From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:29:00 -0600
+Subject: [PATCH 116/130] ASoC: SOF: Intel: Fix CFL and CML FW nocodec binary
+ names.
+
+The manifest information is different between CNL, CML and CFL platforms
+hence we need to load different files.
+
+Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111222901.19892-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 653c28afa76b45c570370c3c3a89975c68c5fc8e)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-pci-dev.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index 3b58b91e7b9e..bbeffd932de7 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -120,7 +120,7 @@ static const struct sof_dev_desc cnl_desc = {
+
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE)
+ static const struct sof_dev_desc cfl_desc = {
+- .machines = snd_soc_acpi_intel_cnl_machines,
++ .machines = snd_soc_acpi_intel_cfl_machines,
+ .resindex_lpe_base = 0,
+ .resindex_pcicfg_base = -1,
+ .resindex_imr_base = -1,
+@@ -129,7 +129,7 @@ static const struct sof_dev_desc cfl_desc = {
+ .chip_info = &cnl_chip_info,
+ .default_fw_path = "intel/sof",
+ .default_tplg_path = "intel/sof-tplg",
+- .nocodec_fw_filename = "sof-cnl.ri",
++ .nocodec_fw_filename = "sof-cfl.ri",
+ .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
+ .ops = &sof_cnl_ops,
+ .arch_ops = &sof_xtensa_arch_ops
+@@ -140,7 +140,7 @@ static const struct sof_dev_desc cfl_desc = {
+ IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)
+
+ static const struct sof_dev_desc cml_desc = {
+- .machines = snd_soc_acpi_intel_cnl_machines,
++ .machines = snd_soc_acpi_intel_cml_machines,
+ .resindex_lpe_base = 0,
+ .resindex_pcicfg_base = -1,
+ .resindex_imr_base = -1,
+@@ -149,7 +149,7 @@ static const struct sof_dev_desc cml_desc = {
+ .chip_info = &cnl_chip_info,
+ .default_fw_path = "intel/sof",
+ .default_tplg_path = "intel/sof-tplg",
+- .nocodec_fw_filename = "sof-cnl.ri",
++ .nocodec_fw_filename = "sof-cml.ri",
+ .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
+ .ops = &sof_cnl_ops,
+ .arch_ops = &sof_xtensa_arch_ops
+--
+2.20.1
+
+
+From 6f3f161ac71319c1997170719e119f315a2251f6 Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Wed, 20 Nov 2019 21:32:52 +0800
+Subject: [PATCH 117/130] ASoC: Fix Kconfig indentation
+
+Adjust indentation from spaces to tab (+optional two spaces) as in
+coding style with command like:
+ $ sed -e 's/^ /\t/' -i */Kconfig
+
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191120133252.6365-1-krzk@kernel.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 3efd72330543da44e82e9371dfb639802c886f6c)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 24 ++++++++++++------------
+ sound/soc/sof/intel/Kconfig | 10 +++++-----
+ 2 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 2702aefee775..ef20316e83d1 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -441,18 +441,18 @@ config SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
+ If unsure select "N".
+
+ config SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
+- tristate "CML with RT1011 and RT5682 in I2S Mode"
+- depends on I2C && ACPI
+- depends on MFD_INTEL_LPSS || COMPILE_TEST
+- select SND_SOC_RT1011
+- select SND_SOC_RT5682
+- select SND_SOC_DMIC
+- select SND_SOC_HDAC_HDMI
+- help
+- This adds support for ASoC machine driver for SOF platform with
+- RT1011 + RT5682 I2S codec.
+- Say Y if you have such a device.
+- If unsure select "N".
++ tristate "CML with RT1011 and RT5682 in I2S Mode"
++ depends on I2C && ACPI
++ depends on MFD_INTEL_LPSS || COMPILE_TEST
++ select SND_SOC_RT1011
++ select SND_SOC_RT5682
++ select SND_SOC_DMIC
++ select SND_SOC_HDAC_HDMI
++ help
++ This adds support for ASoC machine driver for SOF platform with
++ RT1011 + RT5682 I2S codec.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ endif ## SND_SOC_SOF_COMETLAKE_LP && SND_SOC_SOF_HDA_LINK
+
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index b27fd3fdf335..cc09bb606f7d 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -264,16 +264,16 @@ config SND_SOC_SOF_ELKHARTLAKE
+ config SND_SOC_SOF_JASPERLAKE_SUPPORT
+ bool "SOF support for JasperLake"
+ help
+- This adds support for Sound Open Firmware for Intel(R) platforms
+- using the JasperLake processors.
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for Intel(R) platforms
++ using the JasperLake processors.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ config SND_SOC_SOF_JASPERLAKE
+ tristate
+ select SND_SOC_SOF_HDA_COMMON
+ help
+- This option is not user-selectable but automagically handled by
++ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_HDA_COMMON
+--
+2.20.1
+
+
+From 716051e31d6ac7c9c195f9f36e9b2d0bb7c1ee39 Mon Sep 17 00:00:00 2001
+From: Ben Zhang <benzh@chromium.org>
+Date: Tue, 5 Nov 2019 17:13:27 -0800
+Subject: [PATCH 118/130] ASoC: bdw-rt5677: Add a DAI link for rt5677 SPI PCM
+ device
+
+This link is needed for the RT5677 DSP to do hotwording
+
+Signed-off-by: Ben Zhang <benzh@chromium.org>
+Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
+Link: https://lore.kernel.org/r/20191106011335.223061-3-cujomalainey@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 157b006f6be46be833b2941856b86e0a9d8bfb0e)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/bdw-rt5677.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/sound/soc/intel/boards/bdw-rt5677.c b/sound/soc/intel/boards/bdw-rt5677.c
+index 4a4d3353e26d..eeb9a11e4e14 100644
+--- a/sound/soc/intel/boards/bdw-rt5677.c
++++ b/sound/soc/intel/boards/bdw-rt5677.c
+@@ -74,6 +74,7 @@ static const struct snd_soc_dapm_route bdw_rt5677_map[] = {
+ /* CODEC BE connections */
+ {"SSP0 CODEC IN", NULL, "AIF1 Capture"},
+ {"AIF1 Playback", NULL, "SSP0 CODEC OUT"},
++ {"DSP Capture", NULL, "DSP Buffer"},
+ };
+
+ static const struct snd_kcontrol_new bdw_rt5677_controls[] = {
+@@ -258,6 +259,12 @@ SND_SOC_DAILINK_DEF(platform,
+ SND_SOC_DAILINK_DEF(be,
+ DAILINK_COMP_ARRAY(COMP_CODEC("i2c-RT5677CE:00", "rt5677-aif1")));
+
++/* Wake on voice interface */
++SND_SOC_DAILINK_DEFS(dsp,
++ DAILINK_COMP_ARRAY(COMP_CPU("spi-RT5677AA:00")),
++ DAILINK_COMP_ARRAY(COMP_CODEC("i2c-RT5677CE:00", "rt5677-dspbuffer")),
++ DAILINK_COMP_ARRAY(COMP_PLATFORM("spi-RT5677AA:00")));
++
+ static struct snd_soc_dai_link bdw_rt5677_dais[] = {
+ /* Front End DAI links */
+ {
+@@ -276,6 +283,13 @@ static struct snd_soc_dai_link bdw_rt5677_dais[] = {
+ SND_SOC_DAILINK_REG(fe, dummy, platform),
+ },
+
++ /* Non-DPCM links */
++ {
++ .name = "Codec DSP",
++ .stream_name = "Wake on Voice",
++ SND_SOC_DAILINK_REG(dsp),
++ },
++
+ /* Back End DAI links */
+ {
+ /* SSP0 - Codec */
+--
+2.20.1
+
+
+From 0509dabb0d84b34fe4632eabc8aae3bf699dffb4 Mon Sep 17 00:00:00 2001
+From: Curtis Malainey <cujomalainey@chromium.org>
+Date: Tue, 5 Nov 2019 17:13:34 -0800
+Subject: [PATCH 119/130] ASoC: bdw-rt5677: Turn on MCLK1 for DSP via DAPM
+
+The RT5677 DSP needs the I2S MCLK1 to run its DSP. Add a dapm route to
+SSP0 CODEC IN so the clock is turned on automatically when the DSP is
+turned on.
+
+Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
+Link: https://lore.kernel.org/r/20191106011335.223061-10-cujomalainey@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 55229597a94531726878229ccfcd3fe4ec572dc3)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/bdw-rt5677.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sound/soc/intel/boards/bdw-rt5677.c b/sound/soc/intel/boards/bdw-rt5677.c
+index eeb9a11e4e14..b2475e3eff7b 100644
+--- a/sound/soc/intel/boards/bdw-rt5677.c
++++ b/sound/soc/intel/boards/bdw-rt5677.c
+@@ -75,6 +75,10 @@ static const struct snd_soc_dapm_route bdw_rt5677_map[] = {
+ {"SSP0 CODEC IN", NULL, "AIF1 Capture"},
+ {"AIF1 Playback", NULL, "SSP0 CODEC OUT"},
+ {"DSP Capture", NULL, "DSP Buffer"},
++
++ /* DSP Clock Connections */
++ { "DSP Buffer", NULL, "SSP0 CODEC IN" },
++ { "SSP0 CODEC IN", NULL, "DSPTX" },
+ };
+
+ static const struct snd_kcontrol_new bdw_rt5677_controls[] = {
+--
+2.20.1
+
+
+From 4ed26c72c431638378a523c30aea7842a84b48d7 Mon Sep 17 00:00:00 2001
+From: Yu-Hsuan Hsu <yuhsuan@chromium.org>
+Date: Tue, 24 Sep 2019 00:29:40 +0800
+Subject: [PATCH 120/130] ASoC: Intel: kbl_rt5663_rt5514_max98927: Add dmic
+ format constraint
+
+On KBL platform, the microphone is attached to external codec(rt5514)
+instead of PCH. However, TDM slot between PCH and codec is 16 bits only.
+In order to avoid setting wrong format, we should add a constraint to
+force to use 16 bits format forever.
+
+Signed-off-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190923162940.199580-1-yuhsuan@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e2db787bdcb4f2722ecf410168f0583764634e45)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+index a1056cda3dd7..3e5f6bead229 100644
+--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
++++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+@@ -465,6 +465,9 @@ static int kabylake_dmic_startup(struct snd_pcm_substream *substream)
+ snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS,
+ dmic_constraints);
+
++ runtime->hw.formats = SNDRV_PCM_FMTBIT_S16_LE;
++ snd_pcm_hw_constraint_msbits(runtime, 0, 16, 16);
++
+ return snd_pcm_hw_constraint_list(substream->runtime, 0,
+ SNDRV_PCM_HW_PARAM_RATE, &constraints_rates);
+ }
+--
+2.20.1
+
+
+From 0305b5a5db77305fc43a76efd39aed84c5561f96 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:28:59 -0600
+Subject: [PATCH 121/130] ASoC: Intel: acpi-match: split CNL tables in three
+
+Due to firmware manifest/signature differences, we have to use
+different firmware names, so split CNL machine table in three (CNL,
+CFL, CML).
+
+The CFL table is currently empty since all known platforms use
+HDaudio, but let's plan ahead.
+
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111222901.19892-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 1f24d93c4f4ec0bb0b73c5b020060aa2d9faa756)
+Bugzilla: 1772498
+---
+ include/sound/soc-acpi-intel-match.h | 2 +
+ sound/soc/intel/common/Makefile | 3 +-
+ .../intel/common/soc-acpi-intel-cfl-match.c | 18 ++++++
+ .../intel/common/soc-acpi-intel-cml-match.c | 56 +++++++++++++++++++
+ .../intel/common/soc-acpi-intel-cnl-match.c | 38 -------------
+ 5 files changed, 78 insertions(+), 39 deletions(-)
+ create mode 100644 sound/soc/intel/common/soc-acpi-intel-cfl-match.c
+ create mode 100644 sound/soc/intel/common/soc-acpi-intel-cml-match.c
+
+diff --git a/include/sound/soc-acpi-intel-match.h b/include/sound/soc-acpi-intel-match.h
+index 4e44782862df..20c0bee3b959 100644
+--- a/include/sound/soc-acpi-intel-match.h
++++ b/include/sound/soc-acpi-intel-match.h
+@@ -24,6 +24,8 @@ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_kbl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_bxt_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_glk_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[];
++extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cfl_machines[];
++extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cml_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_ehl_machines[];
+diff --git a/sound/soc/intel/common/Makefile b/sound/soc/intel/common/Makefile
+index eafe95ead49b..bd352878f89a 100644
+--- a/sound/soc/intel/common/Makefile
++++ b/sound/soc/intel/common/Makefile
+@@ -7,7 +7,8 @@ snd-soc-acpi-intel-match-objs := soc-acpi-intel-byt-match.o soc-acpi-intel-cht-m
+ soc-acpi-intel-hsw-bdw-match.o \
+ soc-acpi-intel-skl-match.o soc-acpi-intel-kbl-match.o \
+ soc-acpi-intel-bxt-match.o soc-acpi-intel-glk-match.o \
+- soc-acpi-intel-cnl-match.o soc-acpi-intel-icl-match.o \
++ soc-acpi-intel-cnl-match.o soc-acpi-intel-cfl-match.o \
++ soc-acpi-intel-cml-match.o soc-acpi-intel-icl-match.o \
+ soc-acpi-intel-tgl-match.o soc-acpi-intel-ehl-match.o \
+ soc-acpi-intel-jsl-match.o \
+ soc-acpi-intel-hda-match.o
+diff --git a/sound/soc/intel/common/soc-acpi-intel-cfl-match.c b/sound/soc/intel/common/soc-acpi-intel-cfl-match.c
+new file mode 100644
+index 000000000000..d6fd2026d0b8
+--- /dev/null
++++ b/sound/soc/intel/common/soc-acpi-intel-cfl-match.c
+@@ -0,0 +1,18 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * soc-apci-intel-cfl-match.c - tables and support for CFL ACPI enumeration.
++ *
++ * Copyright (c) 2019, Intel Corporation.
++ *
++ */
++
++#include <sound/soc-acpi.h>
++#include <sound/soc-acpi-intel-match.h>
++
++struct snd_soc_acpi_mach snd_soc_acpi_intel_cfl_machines[] = {
++ {},
++};
++EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cfl_machines);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("Intel Common ACPI Match module");
+diff --git a/sound/soc/intel/common/soc-acpi-intel-cml-match.c b/sound/soc/intel/common/soc-acpi-intel-cml-match.c
+new file mode 100644
+index 000000000000..5d08ae066738
+--- /dev/null
++++ b/sound/soc/intel/common/soc-acpi-intel-cml-match.c
+@@ -0,0 +1,56 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * soc-acpi-intel-cml-match.c - tables and support for CML ACPI enumeration.
++ *
++ * Copyright (c) 2019, Intel Corporation.
++ *
++ */
++
++#include <sound/soc-acpi.h>
++#include <sound/soc-acpi-intel-match.h>
++
++static struct snd_soc_acpi_codecs cml_codecs = {
++ .num_codecs = 1,
++ .codecs = {"10EC5682"}
++};
++
++static struct snd_soc_acpi_codecs cml_spk_codecs = {
++ .num_codecs = 1,
++ .codecs = {"MX98357A"}
++};
++
++struct snd_soc_acpi_mach snd_soc_acpi_intel_cml_machines[] = {
++ {
++ .id = "DLGS7219",
++ .drv_name = "cml_da7219_max98357a",
++ .quirk_data = &cml_spk_codecs,
++ .sof_fw_filename = "sof-cml.ri",
++ .sof_tplg_filename = "sof-cml-da7219-max98357a.tplg",
++ },
++ {
++ .id = "MX98357A",
++ .drv_name = "sof_rt5682",
++ .quirk_data = &cml_codecs,
++ .sof_fw_filename = "sof-cml.ri",
++ .sof_tplg_filename = "sof-cml-rt5682-max98357a.tplg",
++ },
++ {
++ .id = "10EC1011",
++ .drv_name = "cml_rt1011_rt5682",
++ .quirk_data = &cml_codecs,
++ .sof_fw_filename = "sof-cml.ri",
++ .sof_tplg_filename = "sof-cml-rt1011-rt5682.tplg",
++ },
++ {
++ .id = "10EC5682",
++ .drv_name = "sof_rt5682",
++ .sof_fw_filename = "sof-cml.ri",
++ .sof_tplg_filename = "sof-cml-rt5682.tplg",
++ },
++
++ {},
++};
++EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cml_machines);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("Intel Common ACPI Match module");
+diff --git a/sound/soc/intel/common/soc-acpi-intel-cnl-match.c b/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
+index 16d0bae8b316..27588841c8b0 100644
+--- a/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
++++ b/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
+@@ -14,16 +14,6 @@ static struct skl_machine_pdata cnl_pdata = {
+ .use_tplg_pcm = true,
+ };
+
+-static struct snd_soc_acpi_codecs cml_codecs = {
+- .num_codecs = 1,
+- .codecs = {"10EC5682"}
+-};
+-
+-static struct snd_soc_acpi_codecs cml_spk_codecs = {
+- .num_codecs = 1,
+- .codecs = {"MX98357A"}
+-};
+-
+ struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[] = {
+ {
+ .id = "INT34C2",
+@@ -33,34 +23,6 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[] = {
+ .sof_fw_filename = "sof-cnl.ri",
+ .sof_tplg_filename = "sof-cnl-rt274.tplg",
+ },
+- {
+- .id = "DLGS7219",
+- .drv_name = "cml_da7219_max98357a",
+- .quirk_data = &cml_spk_codecs,
+- .sof_fw_filename = "sof-cnl.ri",
+- .sof_tplg_filename = "sof-cml-da7219-max98357a.tplg",
+- },
+- {
+- .id = "MX98357A",
+- .drv_name = "sof_rt5682",
+- .quirk_data = &cml_codecs,
+- .sof_fw_filename = "sof-cnl.ri",
+- .sof_tplg_filename = "sof-cml-rt5682-max98357a.tplg",
+- },
+- {
+- .id = "10EC1011",
+- .drv_name = "cml_rt1011_rt5682",
+- .quirk_data = &cml_codecs,
+- .sof_fw_filename = "sof-cnl.ri",
+- .sof_tplg_filename = "sof-cml-rt1011-rt5682.tplg",
+- },
+- {
+- .id = "10EC5682",
+- .drv_name = "sof_rt5682",
+- .sof_fw_filename = "sof-cnl.ri",
+- .sof_tplg_filename = "sof-cml-rt5682.tplg",
+- },
+-
+ {},
+ };
+ EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cnl_machines);
+--
+2.20.1
+
+
+From 5013754204158edfa1252330c1120226af2dca7f Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 19 Nov 2019 15:51:38 +0100
+Subject: [PATCH 122/130] ASoC: Intel: bytcr_rt5640: Update quirk for Acer
+ Switch 10 SW5-012 2-in-1
+
+When the Acer Switch 10 SW5-012 quirk was added we did not have
+jack-detection support yet; and the builtin microphone selection of
+the original quirk is wrong too.
+
+Fix the microphone-input quirk and add jack-detection info so that the
+internal-microphone and headphone/set jack on the Switch 10 work properly.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191119145138.59162-1-hdegoede@redhat.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0bb887709eb16bdc4b5baddd8337abf3de72917f)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/bytcr_rt5640.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
+index 9c1aa4ec9cba..dd2b5ad08659 100644
+--- a/sound/soc/intel/boards/bytcr_rt5640.c
++++ b/sound/soc/intel/boards/bytcr_rt5640.c
+@@ -405,10 +405,12 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW5-012"),
+ },
+- .driver_data = (void *)(BYT_RT5640_IN1_MAP |
+- BYT_RT5640_MCLK_EN |
+- BYT_RT5640_SSP0_AIF1),
+-
++ .driver_data = (void *)(BYT_RT5640_DMIC1_MAP |
++ BYT_RT5640_JD_SRC_JD2_IN4N |
++ BYT_RT5640_OVCD_TH_2000UA |
++ BYT_RT5640_OVCD_SF_0P75 |
++ BYT_RT5640_SSP0_AIF1 |
++ BYT_RT5640_MCLK_EN),
+ },
+ {
+ .matches = {
+--
+2.20.1
+
+
+From 418156f40c1686839ff690363a6174049cebf3e8 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Fri, 29 Nov 2019 15:40:27 +0100
+Subject: [PATCH 124/130] ALSA: hda - fixup for the bass speaker on Lenovo
+ Carbon X1 7th gen
+
+The auto-parser assigns the bass speaker to DAC3 (NID 0x06) which
+is without the volume control. I do not see a reason to use DAC2,
+because the shared output to all speakers produces the sufficient
+and well balanced sound. The stereo support is enough for this
+purpose (laptop).
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Link: https://lore.kernel.org/r/20191129144027.14765-1-perex@perex.cz
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit d2cd795c4ece1a24fda170c35eeb4f17d9826cbb)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index d2bf70a1d2fd..a596790d4245 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -5544,6 +5544,16 @@ static void alc295_fixup_disable_dac3(struct hda_codec *codec,
+ }
+ }
+
++/* force NID 0x17 (Bass Speaker) to DAC1 to share it with the main speaker */
++static void alc285_fixup_speaker2_to_dac1(struct hda_codec *codec,
++ const struct hda_fixup *fix, int action)
++{
++ if (action == HDA_FIXUP_ACT_PRE_PROBE) {
++ hda_nid_t conn[1] = { 0x02 };
++ snd_hda_override_conn_list(codec, 0x17, 1, conn);
++ }
++}
++
+ /* Hook to update amp GPIO4 for automute */
+ static void alc280_hp_gpio4_automute_hook(struct hda_codec *codec,
+ struct hda_jack_callback *jack)
+@@ -5846,6 +5856,7 @@ enum {
+ ALC225_FIXUP_DISABLE_MIC_VREF,
+ ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
+ ALC295_FIXUP_DISABLE_DAC3,
++ ALC285_FIXUP_SPEAKER2_TO_DAC1,
+ ALC280_FIXUP_HP_HEADSET_MIC,
+ ALC221_FIXUP_HP_FRONT_MIC,
+ ALC292_FIXUP_TPT460,
+@@ -6646,6 +6657,10 @@ static const struct hda_fixup alc269_fixups[] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc295_fixup_disable_dac3,
+ },
++ [ALC285_FIXUP_SPEAKER2_TO_DAC1] = {
++ .type = HDA_FIXUP_FUNC,
++ .v.func = alc285_fixup_speaker2_to_dac1,
++ },
+ [ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+@@ -7221,6 +7236,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
+ SND_PCI_QUIRK(0x17aa, 0x224c, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
+ SND_PCI_QUIRK(0x17aa, 0x224d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
+ SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
++ SND_PCI_QUIRK(0x17aa, 0x2293, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_SPEAKER2_TO_DAC1),
+ SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
+ SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
+ SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
+@@ -7405,6 +7421,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
+ {.id = ALC255_FIXUP_DELL_SPK_NOISE, .name = "dell-spk-noise"},
+ {.id = ALC225_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "alc225-dell1"},
+ {.id = ALC295_FIXUP_DISABLE_DAC3, .name = "alc295-disable-dac3"},
++ {.id = ALC285_FIXUP_SPEAKER2_TO_DAC1, .name = "alc285-speaker2-to-dac1"},
+ {.id = ALC280_FIXUP_HP_HEADSET_MIC, .name = "alc280-hp-headset"},
+ {.id = ALC221_FIXUP_HP_FRONT_MIC, .name = "alc221-hp-mic"},
+ {.id = ALC298_FIXUP_SPK_VOLUME, .name = "alc298-spk-volume"},
+--
+2.20.1
+
+
+From a7ff4a018897902cb76e6946162f452e99747a0b Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Fri, 22 Nov 2019 14:26:24 +0100
+Subject: [PATCH 125/130] ALSA: hda/hdmi - Clear codec->relaxed_resume flag at
+ unbinding
+
+The HDMI codec may leave codec->relaxed_resume flag set even after
+unbinding. Clear it unconditionally.
+
+It's very unlikely that this actually matters in the real use case,
+so just a fix for consistency.
+
+Fixes: ade49db337a9 ("ALSA: hda/hdmi - Allow audio component for AMD/ATI and Nvidia HDMI")
+Link: https://lore.kernel.org/r/20191122132624.5482-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 10a9594563415855bd99678ea4f91dea792e5499)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_hdmi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index b35652cae616..5393da45b250 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -2311,8 +2311,8 @@ static void generic_hdmi_free(struct hda_codec *codec)
+ snd_hdac_acomp_exit(&codec->bus->core);
+ } else if (codec_has_acomp(codec)) {
+ snd_hdac_acomp_register_notifier(&codec->bus->core, NULL);
+- codec->relaxed_resume = 0;
+ }
++ codec->relaxed_resume = 0;
+
+ for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
+ struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
+--
+2.20.1
+
+
+From 396bdfdd1a2a119b724148d1e6911c6c1f76722b Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 22 Nov 2019 16:43:50 -0500
+Subject: [PATCH 126/130] ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD
+
+Only enable the vga_switcheroo logic on systems with the
+ATPX ACPI method. This logic is not needed for asics
+that are not part of a PX (PowerXpress)/HG (Hybrid Graphics)
+platform.
+
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Acked-by: Evan Quan <evan.quan@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Link: https://lore.kernel.org/r/20191122214353.582899-2-alexander.deucher@amd.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 586bc4aab878efcf672536f0cdec3d04b6990c94)
+Bugzilla: 1772498
+---
+ sound/pci/hda/hda_intel.c | 45 +++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 45 insertions(+)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index e76a0bb6d3cf..ff098957e30f 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -35,6 +35,7 @@
+ #include <linux/clocksource.h>
+ #include <linux/time.h>
+ #include <linux/completion.h>
++#include <linux/acpi.h>
+
+ #ifdef CONFIG_X86
+ /* for snoop control */
+@@ -1401,6 +1402,34 @@ static int azx_dev_free(struct snd_device *device)
+ }
+
+ #ifdef SUPPORT_VGA_SWITCHEROO
++#ifdef CONFIG_ACPI
++/* ATPX is in the integrated GPU's namespace */
++static bool atpx_present(void)
++{
++ struct pci_dev *pdev = NULL;
++ acpi_handle dhandle, atpx_handle;
++ acpi_status status;
++
++ while ((pdev = pci_get_class(PCI_BASE_CLASS_DISPLAY << 16, pdev)) != NULL) {
++ dhandle = ACPI_HANDLE(&pdev->dev);
++ if (dhandle) {
++ status = acpi_get_handle(dhandle, "ATPX", &atpx_handle);
++ if (!ACPI_FAILURE(status)) {
++ pci_dev_put(pdev);
++ return true;
++ }
++ }
++ pci_dev_put(pdev);
++ }
++ return false;
++}
++#else
++static bool atpx_present(void)
++{
++ return false;
++}
++#endif
++
+ /*
+ * Check of disabled HDMI controller by vga_switcheroo
+ */
+@@ -1412,6 +1441,22 @@ static struct pci_dev *get_bound_vga(struct pci_dev *pci)
+ switch (pci->vendor) {
+ case PCI_VENDOR_ID_ATI:
+ case PCI_VENDOR_ID_AMD:
++ if (pci->devfn == 1) {
++ p = pci_get_domain_bus_and_slot(pci_domain_nr(pci->bus),
++ pci->bus->number, 0);
++ if (p) {
++ /* ATPX is in the integrated GPU's ACPI namespace
++ * rather than the dGPU's namespace. However,
++ * the dGPU is the one who is involved in
++ * vgaswitcheroo.
++ */
++ if (((p->class >> 16) == PCI_BASE_CLASS_DISPLAY) &&
++ atpx_present())
++ return p;
++ pci_dev_put(p);
++ }
++ }
++ break;
+ case PCI_VENDOR_ID_NVIDIA:
+ if (pci->devfn == 1) {
+ p = pci_get_domain_bus_and_slot(pci_domain_nr(pci->bus),
+--
+2.20.1
+
+
+From a7347cade76e5cf325b36b01fd40fc8471c770a4 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 22 Nov 2019 16:43:51 -0500
+Subject: [PATCH 127/130] ALSA: hda/hdmi - Add new pci ids for AMD GPU display
+ audio
+
+These are needed so we can enable runtime pm in a subsequent
+patch.
+
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Link: https://lore.kernel.org/r/20191122214353.582899-3-alexander.deucher@amd.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8d68a87244a812323ce3f7d5022f9deda9db54b5)
+Bugzilla: 1772498
+---
+ sound/pci/hda/hda_intel.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index ff098957e30f..bc64d1565868 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -2599,6 +2599,20 @@ static const struct pci_device_id azx_ids[] = {
+ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
+ { PCI_DEVICE(0x1002, 0xaaf0),
+ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xaaf8),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab00),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab08),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab10),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab18),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab20),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab38),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
+ /* VIA VT8251/VT8237A */
+ { PCI_DEVICE(0x1106, 0x3288), .driver_data = AZX_DRIVER_VIA },
+ /* VIA GFX VT7122/VX900 */
+--
+2.20.1
diff --git a/alsa-5.6.patch b/alsa-5.6.patch
new file mode 100644
index 000000000..b128cc7e6
--- /dev/null
+++ b/alsa-5.6.patch
@@ -0,0 +1,390 @@
+From 4ef91c45a5a283dc8899402bc68adfe0aa9a026d Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 4 Dec 2019 15:15:44 -0600
+Subject: [PATCH 1/4] ASoC: intel/skl/hda - export number of digital
+ microphones via control components
+
+It is required for the auto-detection in the user space (for UCM).
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191204211556.12671-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8cd9956f61c65022209ce6d1e55ed12aea12357d)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/skl_hda_dsp_generic.c | 8 ++++++++
+ sound/soc/sof/intel/hda.c | 3 ++-
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+index 4e45901e3a2f..11eaee9ae41f 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_generic.c
++++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+@@ -100,6 +100,8 @@ static struct snd_soc_card hda_soc_card = {
+ .late_probe = skl_hda_card_late_probe,
+ };
+
++static char hda_soc_components[30];
++
+ #define IDISP_DAI_COUNT 3
+ #define HDAC_DAI_COUNT 2
+ #define DMIC_DAI_COUNT 2
+@@ -183,6 +185,12 @@ static int skl_hda_audio_probe(struct platform_device *pdev)
+ hda_soc_card.dev = &pdev->dev;
+ snd_soc_card_set_drvdata(&hda_soc_card, ctx);
+
++ if (mach->mach_params.dmic_num > 0) {
++ snprintf(hda_soc_components, sizeof(hda_soc_components),
++ "cfg-dmics:%d", mach->mach_params.dmic_num);
++ hda_soc_card.components = hda_soc_components;
++ }
++
+ return devm_snd_soc_register_card(&pdev->dev, &hda_soc_card);
+ }
+
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 91bd88fddac7..eea01f75d23d 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -351,7 +351,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
+ const char *tplg_filename;
+ const char *idisp_str;
+ const char *dmic_str;
+- int dmic_num;
++ int dmic_num = 0;
+ int codec_num = 0;
+ int i;
+ #endif
+@@ -472,6 +472,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
+ mach_params->codec_mask = bus->codec_mask;
+ mach_params->platform = dev_name(sdev->dev);
+ mach_params->common_hdmi_codec_drv = hda_codec_use_common_hdmi;
++ mach_params->dmic_num = dmic_num;
+ }
+
+ /* create codec instances */
+--
+2.20.1
+
+
+From 89be5f69889f7e9aeab05279869bba3e9e0d2002 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 4 Dec 2019 15:15:45 -0600
+Subject: [PATCH 2/4] ASoC: Intel - use control components to describe card
+ config
+
+Use the control interface (field 'components' in the info structure)
+to pass the I/O configuration details. The goal is to replace
+the card long name with this.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191204211556.12671-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0d5c8187562848b619a35f2ffc5e18ce703e9f3d)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/bytcht_es8316.c | 9 ++++++++-
+ sound/soc/intel/boards/bytcr_rt5640.c | 6 ++++++
+ sound/soc/intel/boards/bytcr_rt5651.c | 18 +++++++++++-------
+ 3 files changed, 25 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c
+index 46612331f5ea..efa33f30dcac 100644
+--- a/sound/soc/intel/boards/bytcht_es8316.c
++++ b/sound/soc/intel/boards/bytcht_es8316.c
+@@ -361,6 +361,7 @@ static struct snd_soc_dai_link byt_cht_es8316_dais[] = {
+ /* SoC card */
+ static char codec_name[SND_ACPI_I2C_ID_LEN];
+ static char long_name[50]; /* = "bytcht-es8316-*-spk-*-mic" */
++static char components_string[32]; /* = "cfg-spk:* cfg-mic:* */
+
+ static int byt_cht_es8316_suspend(struct snd_soc_card *card)
+ {
+@@ -572,11 +573,17 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
+ }
+ }
+
+- /* register the soc card */
++ snprintf(components_string, sizeof(components_string),
++ "cfg-spk:%s cfg-mic:%s",
++ (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "1" : "2",
++ mic_name[BYT_CHT_ES8316_MAP(quirk)]);
++ byt_cht_es8316_card.components = components_string;
+ snprintf(long_name, sizeof(long_name), "bytcht-es8316-%s-spk-%s-mic",
+ (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "mono" : "stereo",
+ mic_name[BYT_CHT_ES8316_MAP(quirk)]);
+ byt_cht_es8316_card.long_name = long_name;
++
++ /* register the soc card */
+ snd_soc_card_set_drvdata(&byt_cht_es8316_card, priv);
+
+ ret = devm_snd_soc_register_card(dev, &byt_cht_es8316_card);
+diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
+index dd2b5ad08659..7bc6d3cec94c 100644
+--- a/sound/soc/intel/boards/bytcr_rt5640.c
++++ b/sound/soc/intel/boards/bytcr_rt5640.c
+@@ -1083,6 +1083,7 @@ static char byt_rt5640_codec_name[SND_ACPI_I2C_ID_LEN];
+ static char byt_rt5640_codec_aif_name[12]; /* = "rt5640-aif[1|2]" */
+ static char byt_rt5640_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
+ static char byt_rt5640_long_name[40]; /* = "bytcr-rt5640-*-spk-*-mic" */
++static char byt_rt5640_components[32]; /* = "cfg-spk:* cfg-mic:*" */
+
+ static int byt_rt5640_suspend(struct snd_soc_card *card)
+ {
+@@ -1305,6 +1306,11 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
+ }
+ }
+
++ snprintf(byt_rt5640_components, sizeof(byt_rt5640_components),
++ "cfg-spk:%s cfg-mic:%s",
++ (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? "1" : "2",
++ map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]);
++ byt_rt5640_card.components = byt_rt5640_components;
+ snprintf(byt_rt5640_long_name, sizeof(byt_rt5640_long_name),
+ "bytcr-rt5640-%s-spk-%s-mic",
+ (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ?
+diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c
+index 4606f6f582d6..80a5674ddb1b 100644
+--- a/sound/soc/intel/boards/bytcr_rt5651.c
++++ b/sound/soc/intel/boards/bytcr_rt5651.c
+@@ -798,6 +798,7 @@ static char byt_rt5651_codec_name[SND_ACPI_I2C_ID_LEN];
+ static char byt_rt5651_codec_aif_name[12]; /* = "rt5651-aif[1|2]" */
+ static char byt_rt5651_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
+ static char byt_rt5651_long_name[50]; /* = "bytcr-rt5651-*-spk-*-mic[-swapped-hp]" */
++static char byt_rt5651_components[50]; /* = "cfg-spk:* cfg-mic:*" */
+
+ static int byt_rt5651_suspend(struct snd_soc_card *card)
+ {
+@@ -876,7 +877,6 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
+ const char *platform_name;
+ struct acpi_device *adev;
+ struct device *codec_dev;
+- const char *hp_swapped;
+ bool is_bytcr = false;
+ int ret_val = 0;
+ int dai_index = 0;
+@@ -1080,16 +1080,20 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
+ }
+ }
+
+- if (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED)
+- hp_swapped = "-hp-swapped";
+- else
+- hp_swapped = "";
+-
++ snprintf(byt_rt5651_components, sizeof(byt_rt5651_components),
++ "cfg-spk:%s cfg-mic:%s%s",
++ (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ? "1" : "2",
++ mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)],
++ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
++ " cfg-hp:lrswap" : "");
++ byt_rt5651_card.components = byt_rt5651_components;
+ snprintf(byt_rt5651_long_name, sizeof(byt_rt5651_long_name),
+ "bytcr-rt5651-%s-spk-%s-mic%s",
+ (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ?
+ "mono" : "stereo",
+- mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)], hp_swapped);
++ mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)],
++ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
++ "-hp-swapped" : "");
+ byt_rt5651_card.long_name = byt_rt5651_long_name;
+
+ /* override plaform name, if required */
+--
+2.20.1
+
+
+From 36c175e19e9cbb685708519d41e27cd803206737 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 4 Dec 2019 15:15:46 -0600
+Subject: [PATCH 3/4] ASoC: Intel - do not describe I/O configuration in the
+ long card name
+
+The long card name might be used in GUI. This information should be hidden.
+
+Add CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES configuration option.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191204211556.12671-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit b5706f8ec29fb461571d25e3e813ede121fe31cd)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 13 +++++++++++++
+ sound/soc/intel/boards/bytcht_es8316.c | 4 ++++
+ sound/soc/intel/boards/bytcr_rt5640.c | 4 ++++
+ sound/soc/intel/boards/bytcr_rt5651.c | 4 ++++
+ 4 files changed, 25 insertions(+)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index ef20316e83d1..145eb55bd691 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -13,6 +13,19 @@ menuconfig SND_SOC_INTEL_MACH
+
+ if SND_SOC_INTEL_MACH
+
++config SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
++ bool "Use more user friendly long card names"
++ help
++ Some drivers report the I/O configuration to userspace through the
++ soundcard's long card name in the control user space AP. An unfortunate
++ side effect is that this long name may also be used by the GUI,
++ confusing users with information they don't need.
++ This option prevents the long name from being modified, and the I/O
++ configuration will be provided through a different component interface.
++ Select Y if userspace like UCM (Use Case Manager) uses the component
++ interface.
++ If unsure select N.
++
+ if SND_SOC_INTEL_HASWELL
+
+ config SND_SOC_INTEL_HASWELL_MACH
+diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c
+index efa33f30dcac..12a1c5255484 100644
+--- a/sound/soc/intel/boards/bytcht_es8316.c
++++ b/sound/soc/intel/boards/bytcht_es8316.c
+@@ -360,7 +360,9 @@ static struct snd_soc_dai_link byt_cht_es8316_dais[] = {
+
+ /* SoC card */
+ static char codec_name[SND_ACPI_I2C_ID_LEN];
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ static char long_name[50]; /* = "bytcht-es8316-*-spk-*-mic" */
++#endif
+ static char components_string[32]; /* = "cfg-spk:* cfg-mic:* */
+
+ static int byt_cht_es8316_suspend(struct snd_soc_card *card)
+@@ -578,10 +580,12 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
+ (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "1" : "2",
+ mic_name[BYT_CHT_ES8316_MAP(quirk)]);
+ byt_cht_es8316_card.components = components_string;
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ snprintf(long_name, sizeof(long_name), "bytcht-es8316-%s-spk-%s-mic",
+ (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "mono" : "stereo",
+ mic_name[BYT_CHT_ES8316_MAP(quirk)]);
+ byt_cht_es8316_card.long_name = long_name;
++#endif
+
+ /* register the soc card */
+ snd_soc_card_set_drvdata(&byt_cht_es8316_card, priv);
+diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
+index 7bc6d3cec94c..648fcc1d07b5 100644
+--- a/sound/soc/intel/boards/bytcr_rt5640.c
++++ b/sound/soc/intel/boards/bytcr_rt5640.c
+@@ -1082,7 +1082,9 @@ static struct snd_soc_dai_link byt_rt5640_dais[] = {
+ static char byt_rt5640_codec_name[SND_ACPI_I2C_ID_LEN];
+ static char byt_rt5640_codec_aif_name[12]; /* = "rt5640-aif[1|2]" */
+ static char byt_rt5640_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ static char byt_rt5640_long_name[40]; /* = "bytcr-rt5640-*-spk-*-mic" */
++#endif
+ static char byt_rt5640_components[32]; /* = "cfg-spk:* cfg-mic:*" */
+
+ static int byt_rt5640_suspend(struct snd_soc_card *card)
+@@ -1311,12 +1313,14 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
+ (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? "1" : "2",
+ map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]);
+ byt_rt5640_card.components = byt_rt5640_components;
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ snprintf(byt_rt5640_long_name, sizeof(byt_rt5640_long_name),
+ "bytcr-rt5640-%s-spk-%s-mic",
+ (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ?
+ "mono" : "stereo",
+ map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]);
+ byt_rt5640_card.long_name = byt_rt5640_long_name;
++#endif
+
+ /* override plaform name, if required */
+ platform_name = mach->mach_params.platform;
+diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c
+index 80a5674ddb1b..c0d322a859f7 100644
+--- a/sound/soc/intel/boards/bytcr_rt5651.c
++++ b/sound/soc/intel/boards/bytcr_rt5651.c
+@@ -797,7 +797,9 @@ static struct snd_soc_dai_link byt_rt5651_dais[] = {
+ static char byt_rt5651_codec_name[SND_ACPI_I2C_ID_LEN];
+ static char byt_rt5651_codec_aif_name[12]; /* = "rt5651-aif[1|2]" */
+ static char byt_rt5651_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ static char byt_rt5651_long_name[50]; /* = "bytcr-rt5651-*-spk-*-mic[-swapped-hp]" */
++#endif
+ static char byt_rt5651_components[50]; /* = "cfg-spk:* cfg-mic:*" */
+
+ static int byt_rt5651_suspend(struct snd_soc_card *card)
+@@ -1087,6 +1089,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
+ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
+ " cfg-hp:lrswap" : "");
+ byt_rt5651_card.components = byt_rt5651_components;
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ snprintf(byt_rt5651_long_name, sizeof(byt_rt5651_long_name),
+ "bytcr-rt5651-%s-spk-%s-mic%s",
+ (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ?
+@@ -1095,6 +1098,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
+ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
+ "-hp-swapped" : "");
+ byt_rt5651_card.long_name = byt_rt5651_long_name;
++#endif
+
+ /* override plaform name, if required */
+ platform_name = mach->mach_params.platform;
+--
+2.20.1
+
+
+From 9aa9b367e35494f2d02112ca440a78908f645a04 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Fri, 22 Nov 2019 09:31:03 +0100
+Subject: [PATCH 4/4] ASoC: SOF - topology - do not change the link triger
+ order for old firmare
+
+This is patch for SOF v1.3 firmware. The DSP firmware will crash
+without this patch. The 1.4.1 firmare has this issue fixed.
+
+BugLink: https://github.com/thesofproject/sof/issues/2102
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+---
+ sound/soc/sof/topology.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index d82ab981e840..cbbbf96416ef 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -2971,6 +2971,7 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
+ struct snd_soc_tplg_private *private = &cfg->priv;
+ struct sof_ipc_dai_config config;
+ struct snd_soc_tplg_hw_config *hw_config;
++ struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
+ int num_hw_configs;
+ int ret;
+ int i = 0;
+@@ -2988,9 +2989,12 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
+ if (!link->no_pcm) {
+ link->nonatomic = true;
+
+- /* set trigger order */
+- link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
+- link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
++ /* this causes DSP panic on firmware v1.3 */
++ if (SOF_ABI_VER(v->major, v->minor, v->micro) > SOF_ABI_VER(3, 7, 0)) {
++ /* set trigger order */
++ link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
++ link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
++ }
+
+ /* nothing more to do for FE dai links */
+ return 0;
+--
+2.20.1
+
diff --git a/arm64-dts-qcom-Add-Lenovo-Yoga-C630.patch b/arm64-dts-qcom-Add-Lenovo-Yoga-C630.patch
deleted file mode 100644
index f823a810b..000000000
--- a/arm64-dts-qcom-Add-Lenovo-Yoga-C630.patch
+++ /dev/null
@@ -1,623 +0,0 @@
-From patchwork Thu Sep 5 14:51:12 2019
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-X-Patchwork-Submitter: Lee Jones <lee.jones@linaro.org>
-X-Patchwork-Id: 11133293
-Return-Path:
- <SRS0=FLD0=XA=lists.infradead.org=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@kernel.org>
-Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org
- [172.30.200.123])
- by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EF29913BD
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Thu, 5 Sep 2019 14:51:26 +0000 (UTC)
-Received: from bombadil.infradead.org (bombadil.infradead.org
- [198.137.202.133])
- (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
- (No client certificate requested)
- by mail.kernel.org (Postfix) with ESMTPS id 1997020820
- for <patchwork-linux-arm@patchwork.kernel.org>;
- Thu, 5 Sep 2019 14:51:27 +0000 (UTC)
-Authentication-Results: mail.kernel.org;
- dkim=pass (2048-bit key) header.d=lists.infradead.org
- header.i=@lists.infradead.org header.b="QcCmRfwJ";
- dkim=fail reason="signature verification failed" (2048-bit key)
- header.d=linaro.org header.i=@linaro.org header.b="UUIx2S2a"
-DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1997020820
-Authentication-Results: mail.kernel.org;
- dmarc=fail (p=none dis=none) header.from=linaro.org
-Authentication-Results: mail.kernel.org;
- spf=none
- smtp.mailfrom=linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
- d=lists.infradead.org; s=bombadil.20170209; h=Sender:
- Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe:
- List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date:
- Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date:
- Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:
- References:List-Owner; bh=RFMjkhfiAb3mDQJcei/M3ErXIrcuIvXho1uY3CGaFs8=; b=QcC
- mRfwJTEzsniFc2PQTDfopo/phWmprscia3e6OqRIHx0I6F8qNt3pLneLcx7MATAHPJHeD2Bfz/d1W
- vk/w8leYRcdrNca/SkMK3grqwTP3XueqwIC3W59cpisOR1/MTcmZZ05pTYnppFox5HNzWRfOL6Z6r
- CZvdTV7DVN0DYpv+NU1GnegQ3L8w/B1BaXGHVCPJjH/dHMLJ4OqBor2LD0dBQpYwROMamQbE3enrN
- WGMNjdb3YYZU47m5stsgoivzulIOlOF5PKp+VY75IwHxck1S07mqhqxB9cmIvdEke7S9T1EpoIOJs
- 2cu8v9rxofEpJNocOcSJeYiEpGj6qIA==;
-Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org)
- by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux))
- id 1i5t6X-0000ra-3X; Thu, 05 Sep 2019 14:51:21 +0000
-Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343])
- by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux))
- id 1i5t6S-0000r9-W3
- for linux-arm-kernel@lists.infradead.org; Thu, 05 Sep 2019 14:51:18 +0000
-Received: by mail-wm1-x343.google.com with SMTP id n10so3441823wmj.0
- for <linux-arm-kernel@lists.infradead.org>;
- Thu, 05 Sep 2019 07:51:16 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;
- h=from:to:cc:subject:date:message-id;
- bh=hP6dTKrGhmI4Li1vYBwvA5G00RWYLdiehRQLahBt/08=;
- b=UUIx2S2a1OTzLYcxsOGi8vjYvnpXjIXXfjjInQmQhJrOoLVMUI4bMk0pP8K4hv5+v1
- bC+ahF3FezFlzFIlypiny7EYPPxM79sdZHZnnpe6qgrTfl/6guRvEmNJy8vpPadhocR8
- IW0JAJGxuc7RH4bWScdjpjBLvTYEo3MLTNDGuJOCB05O5AH8D6gSDZPqwaUWbITmdboy
- JTOLJ37XUMxPF83r7F6BQwynpfcnLc9Ytv9w1tMp0R82MmO52QP457mar3d7PWPJu/Rw
- YJb6IDjcjSjZJrr3aGvnJVnETp/zGeRsmeTgNtJe37OYQ5blm4tzTlx1dRxuMiRRs6DS
- rUaA==
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
- d=1e100.net; s=20161025;
- h=x-gm-message-state:from:to:cc:subject:date:message-id;
- bh=hP6dTKrGhmI4Li1vYBwvA5G00RWYLdiehRQLahBt/08=;
- b=d2RovY2av4Dyx8Ou6LJ+nAvLFVrruV6de3b6OWCOF5mnVZA2T2tJEcsrZEGXSSpkiz
- 1YxSkV7YgJJElZhqlfudvkyyxth7A1ZDQnU4x3QyppMQ5lWeHg/xT9+q+h7orxiRjQeX
- 2J+SRG4WqZwcpbUSe95Wy2tPFVB5GYv1eyARjCARCpYOECeprtSl1ckDVyBJ/3G4AVLm
- kB1xk3Ua101/bad3LA8IW1Zo0ld7x7u42jPYO7kJhPH8Ec/l0mrAVSIJn54PKoLu/DhW
- yH6q+kD4LffmAtpj4ICo/rQdtmjV7msTJZ/Dcos9IpUPi5KoXbxWdP+NoUyaVleKhEIl
- IYMA==
-X-Gm-Message-State: APjAAAUQgezKycPxaZ7DvJWRiVy/0dp867xlik7J0fXQ60D99YKcuW0q
- aRR9aWXTADWPSkrcTkd0a071Qw==
-X-Google-Smtp-Source:
- APXvYqybUDyw7bzKyC0JJlkse2i6lXau2tHY0+7iUxCwZcbyfwIDTqmYWXxNn26wfhgBAKudt68zBQ==
-X-Received: by 2002:a1c:a404:: with SMTP id n4mr3206745wme.137.1567695075383;
- Thu, 05 Sep 2019 07:51:15 -0700 (PDT)
-Received: from localhost.localdomain ([95.147.198.36])
- by smtp.gmail.com with ESMTPSA id g201sm4376858wmg.34.2019.09.05.07.51.14
- (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
- Thu, 05 Sep 2019 07:51:14 -0700 (PDT)
-From: Lee Jones <lee.jones@linaro.org>
-To: agross@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com,
- bjorn.andersson@linaro.org, arnd@arndb.de
-Subject: [PATCH v4 1/1] arm64: dts: qcom: Add Lenovo Yoga C630
-Date: Thu, 5 Sep 2019 15:51:12 +0100
-Message-Id: <20190905145112.7366-1-lee.jones@linaro.org>
-X-Mailer: git-send-email 2.17.1
-X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3
-X-CRM114-CacheID: sfid-20190905_075117_040430_5C619449
-X-CRM114-Status: GOOD ( 14.05 )
-X-Spam-Score: -0.2 (/)
-X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary:
- Content analysis details: (-0.2 points)
- pts rule name description
- ---- ----------------------
- --------------------------------------------------
- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
- no trust [2a00:1450:4864:20:0:0:0:343 listed in]
- [list.dnswl.org]
- -0.0 SPF_PASS SPF: sender matches SPF record
- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
- -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from
- envelope-from domain
- -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
- author's domain
- 0.1 DKIM_SIGNED Message has a DKIM or DK signature,
- not necessarily
- valid
- -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
-X-BeenThere: linux-arm-kernel@lists.infradead.org
-X-Mailman-Version: 2.1.29
-Precedence: list
-List-Id: <linux-arm-kernel.lists.infradead.org>
-List-Unsubscribe:
- <http://lists.infradead.org/mailman/options/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>
-List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/>
-List-Post: <mailto:linux-arm-kernel@lists.infradead.org>
-List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>
-List-Subscribe:
- <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,
- <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>
-Cc: devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org,
- linux-kernel@vger.kernel.org, soc@kernel.org,
- Lee Jones <lee.jones@linaro.org>,
- linux-arm-kernel@lists.infradead.org
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org>
-Errors-To:
- linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org
-
-From: Bjorn Andersson <bjorn.andersson@linaro.org>
-
-The Lenovo Yoga C630 is built on the SDM850 from Qualcomm, but this seem
-to be similar enough to the SDM845 that we can reuse the sdm845.dtsi.
-
-Supported by this patch is: keyboard, battery monitoring, UFS storage,
-USB host and Bluetooth.
-
-Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
-Reviewed-by: Vinod Koul <vkoul@kernel.org>
-Acked-by: Sudeep Holla <sudeep.holla@arm.com>
-[Lee] Reorder, change licence, remove non-upstream device node
-Signed-off-by: Lee Jones <lee.jones@linaro.org>
----
-
-Changelog:
- * Reorder nodes alphabetically
- * Remove superfluous node for driver not yet upstream
- * Add (then remove) 'no-dma' property
- * Change licence to BSD
-
-arch/arm64/boot/dts/qcom/Makefile | 1 +
- .../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 446 ++++++++++++++++++
- 2 files changed, 447 insertions(+)
- create mode 100644 arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
-
-diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
-index 0a7e5dfce6f7..670c6c65f9e9 100644
---- a/arch/arm64/boot/dts/qcom/Makefile
-+++ b/arch/arm64/boot/dts/qcom/Makefile
-@@ -12,5 +12,6 @@ dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r2.dtb
- dtb-$(CONFIG_ARCH_QCOM) += sdm845-cheza-r3.dtb
- dtb-$(CONFIG_ARCH_QCOM) += sdm845-db845c.dtb
- dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb
-+dtb-$(CONFIG_ARCH_QCOM) += sdm850-lenovo-yoga-c630.dtb
- dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
- dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
-diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
-new file mode 100644
-index 000000000000..ded120d3aef5
---- /dev/null
-+++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts
-@@ -0,0 +1,446 @@
-+// SPDX-License-Identifier: BSD-3-Clause
-+/*
-+ * Lenovo Yoga C630
-+ *
-+ * Copyright (c) 2019, Linaro Ltd.
-+ */
-+
-+/dts-v1/;
-+
-+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
-+#include "sdm845.dtsi"
-+#include "pm8998.dtsi"
-+
-+/ {
-+ model = "Lenovo Yoga C630";
-+ compatible = "lenovo,yoga-c630", "qcom,sdm845";
-+
-+ aliases {
-+ hsuart0 = &uart6;
-+ };
-+};
-+
-+&apps_rsc {
-+ pm8998-rpmh-regulators {
-+ compatible = "qcom,pm8998-rpmh-regulators";
-+ qcom,pmic-id = "a";
-+
-+ vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
-+ vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
-+
-+ vreg_s2a_1p125: smps2 {
-+ };
-+
-+ vreg_s3a_1p35: smps3 {
-+ regulator-min-microvolt = <1352000>;
-+ regulator-max-microvolt = <1352000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_s4a_1p8: smps4 {
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_s5a_2p04: smps5 {
-+ regulator-min-microvolt = <2040000>;
-+ regulator-max-microvolt = <2040000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_s7a_1p025: smps7 {
-+ };
-+
-+ vdd_qusb_hs0:
-+ vdda_hp_pcie_core:
-+ vdda_mipi_csi0_0p9:
-+ vdda_mipi_csi1_0p9:
-+ vdda_mipi_csi2_0p9:
-+ vdda_mipi_dsi0_pll:
-+ vdda_mipi_dsi1_pll:
-+ vdda_qlink_lv:
-+ vdda_qlink_lv_ck:
-+ vdda_qrefs_0p875:
-+ vdda_pcie_core:
-+ vdda_pll_cc_ebi01:
-+ vdda_pll_cc_ebi23:
-+ vdda_sp_sensor:
-+ vdda_ufs1_core:
-+ vdda_ufs2_core:
-+ vdda_usb1_ss_core:
-+ vdda_usb2_ss_core:
-+ vreg_l1a_0p875: ldo1 {
-+ regulator-min-microvolt = <880000>;
-+ regulator-max-microvolt = <880000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vddpx_10:
-+ vreg_l2a_1p2: ldo2 {
-+ regulator-min-microvolt = <1200000>;
-+ regulator-max-microvolt = <1200000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ regulator-always-on;
-+ };
-+
-+ vreg_l3a_1p0: ldo3 {
-+ };
-+
-+ vdd_wcss_cx:
-+ vdd_wcss_mx:
-+ vdda_wcss_pll:
-+ vreg_l5a_0p8: ldo5 {
-+ regulator-min-microvolt = <800000>;
-+ regulator-max-microvolt = <800000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vddpx_13:
-+ vreg_l6a_1p8: ldo6 {
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_l7a_1p8: ldo7 {
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_l8a_1p2: ldo8 {
-+ };
-+
-+ vreg_l9a_1p8: ldo9 {
-+ };
-+
-+ vreg_l10a_1p8: ldo10 {
-+ };
-+
-+ vreg_l11a_1p0: ldo11 {
-+ };
-+
-+ vdd_qfprom:
-+ vdd_qfprom_sp:
-+ vdda_apc1_cs_1p8:
-+ vdda_gfx_cs_1p8:
-+ vdda_qrefs_1p8:
-+ vdda_qusb_hs0_1p8:
-+ vddpx_11:
-+ vreg_l12a_1p8: ldo12 {
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vddpx_2:
-+ vreg_l13a_2p95: ldo13 {
-+ };
-+
-+ vreg_l14a_1p88: ldo14 {
-+ regulator-min-microvolt = <1880000>;
-+ regulator-max-microvolt = <1880000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ regulator-always-on;
-+ };
-+
-+ vreg_l15a_1p8: ldo15 {
-+ };
-+
-+ vreg_l16a_2p7: ldo16 {
-+ };
-+
-+ vreg_l17a_1p3: ldo17 {
-+ regulator-min-microvolt = <1304000>;
-+ regulator-max-microvolt = <1304000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_l18a_2p7: ldo18 {
-+ };
-+
-+ vreg_l19a_3p0: ldo19 {
-+ regulator-min-microvolt = <3100000>;
-+ regulator-max-microvolt = <3108000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_l20a_2p95: ldo20 {
-+ regulator-min-microvolt = <2960000>;
-+ regulator-max-microvolt = <2960000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_l21a_2p95: ldo21 {
-+ };
-+
-+ vreg_l22a_2p85: ldo22 {
-+ };
-+
-+ vreg_l23a_3p3: ldo23 {
-+ };
-+
-+ vdda_qusb_hs0_3p1:
-+ vreg_l24a_3p075: ldo24 {
-+ regulator-min-microvolt = <3075000>;
-+ regulator-max-microvolt = <3083000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_l25a_3p3: ldo25 {
-+ regulator-min-microvolt = <3104000>;
-+ regulator-max-microvolt = <3112000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vdda_hp_pcie_1p2:
-+ vdda_hv_ebi0:
-+ vdda_hv_ebi1:
-+ vdda_hv_ebi2:
-+ vdda_hv_ebi3:
-+ vdda_mipi_csi_1p25:
-+ vdda_mipi_dsi0_1p2:
-+ vdda_mipi_dsi1_1p2:
-+ vdda_pcie_1p2:
-+ vdda_ufs1_1p2:
-+ vdda_ufs2_1p2:
-+ vdda_usb1_ss_1p2:
-+ vdda_usb2_ss_1p2:
-+ vreg_l26a_1p2: ldo26 {
-+ regulator-min-microvolt = <1200000>;
-+ regulator-max-microvolt = <1208000>;
-+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-+ };
-+
-+ vreg_l28a_3p0: ldo28 {
-+ };
-+
-+ vreg_lvs1a_1p8: lvs1 {
-+ };
-+
-+ vreg_lvs2a_1p8: lvs2 {
-+ };
-+ };
-+};
-+
-+&apps_smmu {
-+ /* TODO: Figure out how to survive booting with this enabled */
-+ status = "disabled";
-+};
-+
-+&gcc {
-+ protected-clocks = <GCC_QSPI_CORE_CLK>,
-+ <GCC_QSPI_CORE_CLK_SRC>,
-+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>;
-+};
-+
-+&i2c1 {
-+ status = "okay";
-+ clock-frequency = <400000>;
-+};
-+
-+&i2c3 {
-+ status = "okay";
-+ clock-frequency = <400000>;
-+
-+ hid@15 {
-+ compatible = "hid-over-i2c";
-+ reg = <0x15>;
-+ hid-descr-addr = <0x1>;
-+
-+ interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
-+ };
-+
-+ hid@2c {
-+ compatible = "hid-over-i2c";
-+ reg = <0x2c>;
-+ hid-descr-addr = <0x20>;
-+
-+ interrupts-extended = <&tlmm 37 IRQ_TYPE_EDGE_RISING>;
-+
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&i2c2_hid_active>;
-+ };
-+};
-+
-+&i2c5 {
-+ status = "okay";
-+ clock-frequency = <400000>;
-+
-+ hid@10 {
-+ compatible = "hid-over-i2c";
-+ reg = <0x10>;
-+ hid-descr-addr = <0x1>;
-+
-+ interrupts-extended = <&tlmm 125 IRQ_TYPE_EDGE_FALLING>;
-+
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&i2c6_hid_active>;
-+ };
-+};
-+
-+&i2c11 {
-+ status = "okay";
-+ clock-frequency = <400000>;
-+
-+ hid@5c {
-+ compatible = "hid-over-i2c";
-+ reg = <0x5c>;
-+ hid-descr-addr = <0x1>;
-+
-+ interrupts-extended = <&tlmm 92 IRQ_TYPE_LEVEL_LOW>;
-+
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&i2c12_hid_active>;
-+ };
-+};
-+
-+&qup_i2c12_default {
-+ drive-strength = <2>;
-+ bias-disable;
-+};
-+
-+&qup_uart6_default {
-+ pinmux {
-+ pins = "gpio45", "gpio46", "gpio47", "gpio48";
-+ function = "qup6";
-+ };
-+
-+ cts {
-+ pins = "gpio45";
-+ bias-pull-down;
-+ };
-+
-+ rts-tx {
-+ pins = "gpio46", "gpio47";
-+ drive-strength = <2>;
-+ bias-disable;
-+ };
-+
-+ rx {
-+ pins = "gpio48";
-+ bias-pull-up;
-+ };
-+};
-+
-+&qupv3_id_0 {
-+ status = "okay";
-+};
-+
-+&qupv3_id_1 {
-+ status = "okay";
-+};
-+
-+&tlmm {
-+ gpio-reserved-ranges = <0 4>, <81 4>;
-+
-+ i2c2_hid_active: i2c2-hid-active {
-+ pins = <37>;
-+ function = "gpio";
-+
-+ input-enable;
-+ bias-pull-up;
-+ drive-strength = <2>;
-+ };
-+
-+ i2c6_hid_active: i2c6-hid-active {
-+ pins = <125>;
-+ function = "gpio";
-+
-+ input-enable;
-+ bias-pull-up;
-+ drive-strength = <2>;
-+ };
-+
-+ i2c12_hid_active: i2c12-hid-active {
-+ pins = <92>;
-+ function = "gpio";
-+
-+ input-enable;
-+ bias-pull-up;
-+ drive-strength = <2>;
-+ };
-+};
-+
-+&uart6 {
-+ status = "okay";
-+
-+ bluetooth {
-+ compatible = "qcom,wcn3990-bt";
-+
-+ vddio-supply = <&vreg_s4a_1p8>;
-+ vddxo-supply = <&vreg_l7a_1p8>;
-+ vddrf-supply = <&vreg_l17a_1p3>;
-+ vddch0-supply = <&vreg_l25a_3p3>;
-+ max-speed = <3200000>;
-+ };
-+};
-+
-+&ufs_mem_hc {
-+ status = "okay";
-+
-+ vcc-supply = <&vreg_l20a_2p95>;
-+ vcc-max-microamp = <600000>;
-+};
-+
-+&ufs_mem_phy {
-+ status = "okay";
-+
-+ vdda-phy-supply = <&vdda_ufs1_core>;
-+ vdda-pll-supply = <&vdda_ufs1_1p2>;
-+};
-+
-+&usb_1 {
-+ status = "okay";
-+};
-+
-+&usb_1_dwc3 {
-+ dr_mode = "host";
-+};
-+
-+&usb_1_hsphy {
-+ status = "okay";
-+
-+ vdd-supply = <&vdda_usb1_ss_core>;
-+ vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
-+ vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
-+
-+ qcom,imp-res-offset-value = <8>;
-+ qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
-+ qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
-+ qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
-+};
-+
-+&usb_1_qmpphy {
-+ status = "okay";
-+
-+ vdda-phy-supply = <&vdda_usb1_ss_1p2>;
-+ vdda-pll-supply = <&vdda_usb1_ss_core>;
-+};
-+
-+&usb_2 {
-+ status = "okay";
-+};
-+
-+&usb_2_dwc3 {
-+ dr_mode = "host";
-+};
-+
-+&usb_2_hsphy {
-+ status = "okay";
-+
-+ vdd-supply = <&vdda_usb2_ss_core>;
-+ vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
-+ vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
-+
-+ qcom,imp-res-offset-value = <8>;
-+ qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
-+};
-+
-+&usb_2_qmpphy {
-+ status = "okay";
-+
-+ vdda-phy-supply = <&vdda_usb2_ss_1p2>;
-+ vdda-pll-supply = <&vdda_usb2_ss_core>;
-+};
diff --git a/ath9k-rx-dma-stop-check.patch b/ath9k-rx-dma-stop-check.patch
deleted file mode 100644
index 40cbafc7b..000000000
--- a/ath9k-rx-dma-stop-check.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: "kernel-team@fedoraproject.org" <kernel-team@fedoraproject.org>
-Date: Wed, 6 Feb 2013 09:57:47 -0500
-Subject: [PATCH] ath9k: rx dma stop check
-
----
- drivers/net/wireless/ath/ath9k/mac.c | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c
-index bba85d1a6cd1..ebbee8f17130 100644
---- a/drivers/net/wireless/ath/ath9k/mac.c
-+++ b/drivers/net/wireless/ath/ath9k/mac.c
-@@ -693,7 +693,7 @@ bool ath9k_hw_stopdmarecv(struct ath_hw *ah, bool *reset)
- {
- #define AH_RX_STOP_DMA_TIMEOUT 10000 /* usec */
- struct ath_common *common = ath9k_hw_common(ah);
-- u32 mac_status, last_mac_status = 0;
-+ u32 mac_status = 0, last_mac_status = 0;
- int i;
-
- /* Enable access to the DMA observation bus */
-@@ -723,6 +723,16 @@ bool ath9k_hw_stopdmarecv(struct ath_hw *ah, bool *reset)
- }
-
- if (i == 0) {
-+ if (!AR_SREV_9300_20_OR_LATER(ah) &&
-+ (mac_status & 0x700) == 0) {
-+ /*
-+ * DMA is idle but the MAC is still stuck
-+ * processing events
-+ */
-+ *reset = true;
-+ return true;
-+ }
-+
- ath_err(common,
- "DMA failed to stop in %d ms AR_CR=0x%08x AR_DIAG_SW=0x%08x DMADBG_7=0x%08x\n",
- AH_RX_STOP_DMA_TIMEOUT / 1000,
diff --git a/check-kabi b/check-kabi
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/check-kabi
diff --git a/configs/build_configs.sh b/configs/build_configs.sh
index 61c3c0455..4ccb0dc2e 100755
--- a/configs/build_configs.sh
+++ b/configs/build_configs.sh
@@ -19,8 +19,6 @@ cd $SCRIPT_DIR
set errexit
set nounset
-control_file="config_generation"
-
cleanup()
{
rm -f config-*
@@ -52,7 +50,9 @@ function merge_configs()
arch=$(echo "$archvar" | cut -f1 -d"-")
configs=$2
order=$3
- name=$OUTPUT_DIR/$PACKAGE_NAME-$archvar.config
+ flavor=$4
+
+ name=$OUTPUT_DIR/$PACKAGE_NAME-$archvar-$flavor.config
echo -n "Building $name ... "
touch config-merging config-merged
@@ -95,33 +95,55 @@ function merge_configs()
echo "done"
}
-while read line
-do
- if [ $(echo "$line" | grep -c "^#") -ne 0 ]; then
- continue
- elif [ $(echo "$line" | grep -c "^$") -ne 0 ]; then
- continue
- elif [ $(echo "$line" | grep -c "^ORDER") -ne 0 ]; then
- order=$(echo "$line" | cut -f2 -d"=")
- for o in $order
- do
- glist=$(find $o -type d)
- for d in $glist
+function build_flavor()
+{
+ flavor=$1
+ control_file="priority".$flavor
+ while read line
+ do
+ if [ $(echo "$line" | grep -c "^#") -ne 0 ]; then
+ continue
+ elif [ $(echo "$line" | grep -c "^$") -ne 0 ]; then
+ continue
+ elif [ $(echo "$line" | grep -c "^EMPTY") -ne 0 ]; then
+ empty=$(echo "$line" | cut -f2 -d"=")
+ for a in $empty
+ do
+ echo "# EMPTY" > $OUTPUT_DIR/$PACKAGE_NAME-$a-$flavor.config
+
+ done
+ elif [ $(echo "$line" | grep -c "^ORDER") -ne 0 ]; then
+ order=$(echo "$line" | cut -f2 -d"=")
+ for o in $order
do
- combine_config_layer $d
+ glist=$(find $o -type d)
+ for d in $glist
+ do
+ combine_config_layer $d
+ done
done
- done
- else
- arch=$(echo "$line" | cut -f1 -d"=")
- configs=$(echo "$line" | cut -f2 -d"=")
+ else
+ arch=$(echo "$line" | cut -f1 -d"=")
+ configs=$(echo "$line" | cut -f2 -d"=")
+
+ if [ -n "$SUBARCH" ]; then
+ case $arch in
+ $SUBARCH*)
+ ;;
+ *)
+ continue
+ esac
+ fi
- if [ -n "$SUBARCH" -a "$SUBARCH" != "$arch" ]; then
- continue
+ merge_configs $arch $configs "$order" $flavor
fi
+ done < $control_file
+}
- merge_configs $arch $configs "$order"
- fi
-done < $control_file
+while read line
+do
+ build_flavor $line
+done < flavors
# A passed in kernel version implies copy to final location
# otherwise defer to another script
diff --git a/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE b/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE
deleted file mode 100644
index 48732e524..000000000
--- a/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4096
diff --git a/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE b/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE
new file mode 100644
index 000000000..fbfa0f399
--- /dev/null
+++ b/configs/fedora/debug/CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE
@@ -0,0 +1 @@
+CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
diff --git a/configs/fedora/debug/x86/x86_64/CONFIG_NR_CPUS b/configs/fedora/debug/x86/x86_64/CONFIG_NR_CPUS
deleted file mode 100644
index 441191641..000000000
--- a/configs/fedora/debug/x86/x86_64/CONFIG_NR_CPUS
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_NR_CPUS=8192
diff --git a/configs/fedora/debug/x86/x86_64/README b/configs/fedora/debug/x86/x86_64/README
new file mode 100644
index 000000000..fa1c296db
--- /dev/null
+++ b/configs/fedora/debug/x86/x86_64/README
@@ -0,0 +1,2 @@
+Place config options in this directory that you want applied to x86_64
+debug kernel variant.
diff --git a/configs/fedora/generic/CONFIG_ADIN_PHY b/configs/fedora/generic/CONFIG_ADIN_PHY
new file mode 100644
index 000000000..7fc6478a5
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ADIN_PHY
@@ -0,0 +1 @@
+CONFIG_ADIN_PHY=m
diff --git a/configs/fedora/generic/CONFIG_ADIS16460 b/configs/fedora/generic/CONFIG_ADIS16460
new file mode 100644
index 000000000..e3f206072
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ADIS16460
@@ -0,0 +1 @@
+# CONFIG_ADIS16460 is not set
diff --git a/configs/fedora/generic/CONFIG_AMD_XGBE b/configs/fedora/generic/CONFIG_AMD_XGBE
deleted file mode 100644
index bc3c626e4..000000000
--- a/configs/fedora/generic/CONFIG_AMD_XGBE
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_AMD_XGBE is not set
diff --git a/configs/fedora/generic/CONFIG_ARCH_IOP13XX b/configs/fedora/generic/CONFIG_ARCH_IOP13XX
deleted file mode 100644
index afcc30683..000000000
--- a/configs/fedora/generic/CONFIG_ARCH_IOP13XX
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_ARCH_IOP13XX is not set
diff --git a/configs/fedora/generic/CONFIG_ARCH_IOP33X b/configs/fedora/generic/CONFIG_ARCH_IOP33X
deleted file mode 100644
index 810b89131..000000000
--- a/configs/fedora/generic/CONFIG_ARCH_IOP33X
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_ARCH_IOP33X is not set
diff --git a/configs/fedora/generic/CONFIG_ARCH_KS8695 b/configs/fedora/generic/CONFIG_ARCH_KS8695
deleted file mode 100644
index 065baadb5..000000000
--- a/configs/fedora/generic/CONFIG_ARCH_KS8695
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_ARCH_KS8695 is not set
diff --git a/configs/fedora/generic/CONFIG_ARCH_LPC32XX b/configs/fedora/generic/CONFIG_ARCH_LPC32XX
deleted file mode 100644
index 309e5f041..000000000
--- a/configs/fedora/generic/CONFIG_ARCH_LPC32XX
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_ARCH_LPC32XX is not set
diff --git a/configs/fedora/generic/CONFIG_ARCH_W90X900 b/configs/fedora/generic/CONFIG_ARCH_W90X900
deleted file mode 100644
index cf8f40c7e..000000000
--- a/configs/fedora/generic/CONFIG_ARCH_W90X900
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_ARCH_W90X900 is not set
diff --git a/configs/fedora/generic/CONFIG_ATH9K_PCI_NO_EEPROM b/configs/fedora/generic/CONFIG_ATH9K_PCI_NO_EEPROM
new file mode 100644
index 000000000..941b59840
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_ATH9K_PCI_NO_EEPROM
@@ -0,0 +1 @@
+CONFIG_ATH9K_PCI_NO_EEPROM=m
diff --git a/configs/fedora/generic/CONFIG_BLK_CGROUP_IOCOST b/configs/fedora/generic/CONFIG_BLK_CGROUP_IOCOST
new file mode 100644
index 000000000..b5de16173
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_BLK_CGROUP_IOCOST
@@ -0,0 +1 @@
+CONFIG_BLK_CGROUP_IOCOST=y
diff --git a/configs/fedora/generic/CONFIG_CAN_F81601 b/configs/fedora/generic/CONFIG_CAN_F81601
new file mode 100644
index 000000000..b24d08ba4
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CAN_F81601
@@ -0,0 +1 @@
+# CONFIG_CAN_F81601 is not set
diff --git a/configs/fedora/generic/CONFIG_CAN_J1939 b/configs/fedora/generic/CONFIG_CAN_J1939
new file mode 100644
index 000000000..388031677
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CAN_J1939
@@ -0,0 +1 @@
+# CONFIG_CAN_J1939 is not set
diff --git a/configs/fedora/generic/CONFIG_CAN_KVASER_PCIEFD b/configs/fedora/generic/CONFIG_CAN_KVASER_PCIEFD
new file mode 100644
index 000000000..d5191aa13
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CAN_KVASER_PCIEFD
@@ -0,0 +1 @@
+# CONFIG_CAN_KVASER_PCIEFD is not set
diff --git a/configs/fedora/generic/CONFIG_CAN_M_CAN_PLATFORM b/configs/fedora/generic/CONFIG_CAN_M_CAN_PLATFORM
new file mode 100644
index 000000000..fe2b43c10
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CAN_M_CAN_PLATFORM
@@ -0,0 +1 @@
+# CONFIG_CAN_M_CAN_PLATFORM is not set
diff --git a/configs/fedora/generic/CONFIG_CAN_M_CAN_TCAN4X5X b/configs/fedora/generic/CONFIG_CAN_M_CAN_TCAN4X5X
new file mode 100644
index 000000000..90e108828
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CAN_M_CAN_TCAN4X5X
@@ -0,0 +1 @@
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
diff --git a/configs/fedora/generic/CONFIG_CPU_IDLE_GOV_HALTPOLL b/configs/fedora/generic/CONFIG_CPU_IDLE_GOV_HALTPOLL
new file mode 100644
index 000000000..0d4e80f4d
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CPU_IDLE_GOV_HALTPOLL
@@ -0,0 +1 @@
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
diff --git a/configs/fedora/generic/CONFIG_CRASH b/configs/fedora/generic/CONFIG_CRASH
deleted file mode 100644
index 98a38fe93..000000000
--- a/configs/fedora/generic/CONFIG_CRASH
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRASH=m
diff --git a/configs/fedora/generic/CONFIG_CROS_EC b/configs/fedora/generic/CONFIG_CROS_EC
new file mode 100644
index 000000000..bd6dd449b
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CROS_EC
@@ -0,0 +1 @@
+# CONFIG_CROS_EC is not set
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_AEGIS128L b/configs/fedora/generic/CONFIG_CRYPTO_AEGIS128L
deleted file mode 100644
index 332f8d41c..000000000
--- a/configs/fedora/generic/CONFIG_CRYPTO_AEGIS128L
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_AEGIS128L=m
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_AEGIS256 b/configs/fedora/generic/CONFIG_CRYPTO_AEGIS256
deleted file mode 100644
index 505f92cb2..000000000
--- a/configs/fedora/generic/CONFIG_CRYPTO_AEGIS256
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_AEGIS256=m
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_DEV_CCP_DEBUGFS b/configs/fedora/generic/CONFIG_CRYPTO_DEV_CCP_DEBUGFS
new file mode 100644
index 000000000..fe46585da
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_DEV_CCP_DEBUGFS
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_DEV_SAFEXCEL b/configs/fedora/generic/CONFIG_CRYPTO_DEV_SAFEXCEL
new file mode 100644
index 000000000..6bd1d5baa
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_DEV_SAFEXCEL
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_ESSIV b/configs/fedora/generic/CONFIG_CRYPTO_ESSIV
new file mode 100644
index 000000000..9c914d446
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_CRYPTO_ESSIV
@@ -0,0 +1 @@
+CONFIG_CRYPTO_ESSIV=m
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_MORUS1280 b/configs/fedora/generic/CONFIG_CRYPTO_MORUS1280
deleted file mode 100644
index 631ee59ba..000000000
--- a/configs/fedora/generic/CONFIG_CRYPTO_MORUS1280
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_MORUS1280=m
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_MORUS640 b/configs/fedora/generic/CONFIG_CRYPTO_MORUS640
deleted file mode 100644
index 774f20fc6..000000000
--- a/configs/fedora/generic/CONFIG_CRYPTO_MORUS640
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_MORUS640=m
diff --git a/configs/fedora/generic/CONFIG_CRYPTO_SHA512 b/configs/fedora/generic/CONFIG_CRYPTO_SHA512
index 29ce3726b..5c25197e5 100644
--- a/configs/fedora/generic/CONFIG_CRYPTO_SHA512
+++ b/configs/fedora/generic/CONFIG_CRYPTO_SHA512
@@ -1 +1 @@
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
diff --git a/configs/fedora/generic/CONFIG_DEBUG_INFO_BTF b/configs/fedora/generic/CONFIG_DEBUG_INFO_BTF
index 3b5ac748f..39227b451 100644
--- a/configs/fedora/generic/CONFIG_DEBUG_INFO_BTF
+++ b/configs/fedora/generic/CONFIG_DEBUG_INFO_BTF
@@ -1 +1 @@
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
diff --git a/configs/fedora/generic/CONFIG_DEBUG_INFO_VTA b/configs/fedora/generic/CONFIG_DEBUG_INFO_VTA
deleted file mode 100644
index 593de8069..000000000
--- a/configs/fedora/generic/CONFIG_DEBUG_INFO_VTA
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DEBUG_INFO_VTA=y
diff --git a/configs/fedora/generic/CONFIG_DMABUF_SELFTESTS b/configs/fedora/generic/CONFIG_DMABUF_SELFTESTS
new file mode 100644
index 000000000..6943ce41c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DMABUF_SELFTESTS
@@ -0,0 +1 @@
+# CONFIG_DMABUF_SELFTESTS is not set
diff --git a/configs/fedora/generic/CONFIG_DM_CLONE b/configs/fedora/generic/CONFIG_DM_CLONE
new file mode 100644
index 000000000..03f992664
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DM_CLONE
@@ -0,0 +1 @@
+# CONFIG_DM_CLONE is not set
diff --git a/configs/fedora/generic/CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG b/configs/fedora/generic/CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG
new file mode 100644
index 000000000..4d2da6ce4
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG
@@ -0,0 +1 @@
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_GM12U320 b/configs/fedora/generic/CONFIG_DRM_GM12U320
new file mode 100644
index 000000000..f8f5101cc
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_GM12U320
@@ -0,0 +1 @@
+CONFIG_DRM_GM12U320=m
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_LG_LB035Q02 b/configs/fedora/generic/CONFIG_DRM_PANEL_LG_LB035Q02
new file mode 100644
index 000000000..fe60a1992
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_LG_LB035Q02
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_NEC_NL8048HL11 b/configs/fedora/generic/CONFIG_DRM_PANEL_NEC_NL8048HL11
new file mode 100644
index 000000000..339ff848f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_NEC_NL8048HL11
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_NOVATEK_NT39016 b/configs/fedora/generic/CONFIG_DRM_PANEL_NOVATEK_NT39016
new file mode 100644
index 000000000..edce22723
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_NOVATEK_NT39016
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_RAYDIUM_RM67191 b/configs/fedora/generic/CONFIG_DRM_PANEL_RAYDIUM_RM67191
new file mode 100644
index 000000000..085f3b0bb
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_RAYDIUM_RM67191
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_SHARP_LS037V7DW01 b/configs/fedora/generic/CONFIG_DRM_PANEL_SHARP_LS037V7DW01
new file mode 100644
index 000000000..26cceaa22
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_SHARP_LS037V7DW01
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_SONY_ACX565AKM b/configs/fedora/generic/CONFIG_DRM_PANEL_SONY_ACX565AKM
new file mode 100644
index 000000000..de1d34f6b
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_SONY_ACX565AKM
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_TPO_TD028TTEC1 b/configs/fedora/generic/CONFIG_DRM_PANEL_TPO_TD028TTEC1
new file mode 100644
index 000000000..8c0af5fb4
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_TPO_TD028TTEC1
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_PANEL_TPO_TD043MTEA1 b/configs/fedora/generic/CONFIG_DRM_PANEL_TPO_TD043MTEA1
new file mode 100644
index 000000000..4494ef96f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_DRM_PANEL_TPO_TD043MTEA1
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_TDFX b/configs/fedora/generic/CONFIG_DRM_TDFX
index 698169953..36f8ba1f9 100644
--- a/configs/fedora/generic/CONFIG_DRM_TDFX
+++ b/configs/fedora/generic/CONFIG_DRM_TDFX
@@ -1 +1 @@
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
diff --git a/configs/fedora/generic/CONFIG_DRM_TINYDRM b/configs/fedora/generic/CONFIG_DRM_TINYDRM
deleted file mode 100644
index be104b06c..000000000
--- a/configs/fedora/generic/CONFIG_DRM_TINYDRM
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_DRM_TINYDRM is not set
diff --git a/configs/fedora/generic/CONFIG_EFI_RCI2_TABLE b/configs/fedora/generic/CONFIG_EFI_RCI2_TABLE
new file mode 100644
index 000000000..9d1af7ab4
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_EFI_RCI2_TABLE
@@ -0,0 +1 @@
+# CONFIG_EFI_RCI2_TABLE is not set
diff --git a/configs/fedora/generic/CONFIG_EFI_TEST b/configs/fedora/generic/CONFIG_EFI_TEST
index 455eb3061..09ff10ce7 100644
--- a/configs/fedora/generic/CONFIG_EFI_TEST
+++ b/configs/fedora/generic/CONFIG_EFI_TEST
@@ -1 +1 @@
-# CONFIG_EFI_TEST is not set
+CONFIG_EFI_TEST=m
diff --git a/configs/fedora/generic/CONFIG_EXFAT_FS b/configs/fedora/generic/CONFIG_EXFAT_FS
new file mode 100644
index 000000000..2113d8106
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_EXFAT_FS
@@ -0,0 +1 @@
+# CONFIG_EXFAT_FS is not set
diff --git a/configs/fedora/generic/CONFIG_FSL_ENETC_MDIO b/configs/fedora/generic/CONFIG_FSL_ENETC_MDIO
new file mode 100644
index 000000000..9ae6245d1
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_FSL_ENETC_MDIO
@@ -0,0 +1 @@
+# CONFIG_FSL_ENETC_MDIO is not set
diff --git a/configs/fedora/generic/CONFIG_FS_VERITY b/configs/fedora/generic/CONFIG_FS_VERITY
new file mode 100644
index 000000000..962866cac
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_FS_VERITY
@@ -0,0 +1 @@
+CONFIG_FS_VERITY=y
diff --git a/configs/fedora/generic/CONFIG_FS_VERITY_BUILTIN_SIGNATURES b/configs/fedora/generic/CONFIG_FS_VERITY_BUILTIN_SIGNATURES
new file mode 100644
index 000000000..a9cb95904
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_FS_VERITY_BUILTIN_SIGNATURES
@@ -0,0 +1 @@
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
diff --git a/configs/fedora/generic/CONFIG_FS_VERITY_DEBUG b/configs/fedora/generic/CONFIG_FS_VERITY_DEBUG
new file mode 100644
index 000000000..5d654c77b
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_FS_VERITY_DEBUG
@@ -0,0 +1 @@
+# CONFIG_FS_VERITY_DEBUG is not set
diff --git a/configs/fedora/generic/CONFIG_HEADERS_INSTALL b/configs/fedora/generic/CONFIG_HEADERS_INSTALL
index 5b3057511..3400dd672 100644
--- a/configs/fedora/generic/CONFIG_HEADERS_INSTALL
+++ b/configs/fedora/generic/CONFIG_HEADERS_INSTALL
@@ -1 +1 @@
-# CONFIG_HEADERS_INSTALL is not set
+CONFIG_HEADERS_INSTALL=y
diff --git a/configs/fedora/generic/CONFIG_HEADER_TEST b/configs/fedora/generic/CONFIG_HEADER_TEST
index 2d55c1445..bcdd8b485 100644
--- a/configs/fedora/generic/CONFIG_HEADER_TEST
+++ b/configs/fedora/generic/CONFIG_HEADER_TEST
@@ -1 +1 @@
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADER_TEST=y
diff --git a/configs/fedora/generic/CONFIG_HID_CREATIVE_SB0540 b/configs/fedora/generic/CONFIG_HID_CREATIVE_SB0540
new file mode 100644
index 000000000..ce52dd6a4
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_HID_CREATIVE_SB0540
@@ -0,0 +1 @@
+# CONFIG_HID_CREATIVE_SB0540 is not set
diff --git a/configs/fedora/generic/CONFIG_I2C_BCM2048 b/configs/fedora/generic/CONFIG_I2C_BCM2048
deleted file mode 100644
index 65ce228bc..000000000
--- a/configs/fedora/generic/CONFIG_I2C_BCM2048
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_I2C_BCM2048 is not set
diff --git a/configs/fedora/generic/CONFIG_IMA_APPRAISE_MODSIG b/configs/fedora/generic/CONFIG_IMA_APPRAISE_MODSIG
new file mode 100644
index 000000000..e2c2e3e15
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_IMA_APPRAISE_MODSIG
@@ -0,0 +1 @@
+CONFIG_IMA_APPRAISE_MODSIG=y
diff --git a/configs/fedora/generic/CONFIG_IMA_DEFAULT_HASH_SHA512 b/configs/fedora/generic/CONFIG_IMA_DEFAULT_HASH_SHA512
new file mode 100644
index 000000000..63c785685
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_IMA_DEFAULT_HASH_SHA512
@@ -0,0 +1 @@
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
diff --git a/configs/fedora/generic/CONFIG_INPUT_PWM_BEEPER b/configs/fedora/generic/CONFIG_INPUT_PWM_BEEPER
index 9ac1c7b31..59fdb225d 100644
--- a/configs/fedora/generic/CONFIG_INPUT_PWM_BEEPER
+++ b/configs/fedora/generic/CONFIG_INPUT_PWM_BEEPER
@@ -1 +1 @@
-# CONFIG_INPUT_PWM_BEEPER is not set
+CONFIG_INPUT_PWM_BEEPER=m
diff --git a/configs/fedora/generic/CONFIG_IONIC b/configs/fedora/generic/CONFIG_IONIC
new file mode 100644
index 000000000..389ea4bb6
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_IONIC
@@ -0,0 +1 @@
+CONFIG_IONIC=m
diff --git a/configs/fedora/generic/CONFIG_JOYSTICK_FSIA6B b/configs/fedora/generic/CONFIG_JOYSTICK_FSIA6B
new file mode 100644
index 000000000..76957fd33
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_JOYSTICK_FSIA6B
@@ -0,0 +1 @@
+# CONFIG_JOYSTICK_FSIA6B is not set
diff --git a/configs/fedora/generic/CONFIG_KERNEL_HEADER_TEST b/configs/fedora/generic/CONFIG_KERNEL_HEADER_TEST
new file mode 100644
index 000000000..040d0b830
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_KERNEL_HEADER_TEST
@@ -0,0 +1 @@
+CONFIG_KERNEL_HEADER_TEST=y
diff --git a/configs/fedora/generic/CONFIG_LIVEPATCH b/configs/fedora/generic/CONFIG_LIVEPATCH
index 6f147cf26..1b05d0d1a 100644
--- a/configs/fedora/generic/CONFIG_LIVEPATCH
+++ b/configs/fedora/generic/CONFIG_LIVEPATCH
@@ -1 +1 @@
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
diff --git a/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL b/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL
deleted file mode 100644
index c22c35ff2..000000000
--- a/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_LOCK_DOWN_KERNEL is not set
diff --git a/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY b/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY
new file mode 100644
index 000000000..97079e8b0
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY
@@ -0,0 +1 @@
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
diff --git a/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY b/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY
new file mode 100644
index 000000000..895927de3
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY
@@ -0,0 +1 @@
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
diff --git a/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE b/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE
new file mode 100644
index 000000000..9c975c314
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE
@@ -0,0 +1 @@
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
diff --git a/configs/fedora/generic/CONFIG_MAX5432 b/configs/fedora/generic/CONFIG_MAX5432
new file mode 100644
index 000000000..b6ea28de1
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MAX5432
@@ -0,0 +1 @@
+# CONFIG_MAX5432 is not set
diff --git a/configs/fedora/generic/CONFIG_MLX5_SW_STEERING b/configs/fedora/generic/CONFIG_MLX5_SW_STEERING
new file mode 100644
index 000000000..28a9bc46a
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MLX5_SW_STEERING
@@ -0,0 +1 @@
+CONFIG_MLX5_SW_STEERING=y
diff --git a/configs/fedora/generic/CONFIG_MLX5_TLS b/configs/fedora/generic/CONFIG_MLX5_TLS
new file mode 100644
index 000000000..ca3633796
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MLX5_TLS
@@ -0,0 +1 @@
+# CONFIG_MLX5_TLS is not set
diff --git a/configs/fedora/generic/CONFIG_MMC_SDHCI_OF_ASPEED b/configs/fedora/generic/CONFIG_MMC_SDHCI_OF_ASPEED
new file mode 100644
index 000000000..1c72970c1
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MMC_SDHCI_OF_ASPEED
@@ -0,0 +1 @@
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
diff --git a/configs/fedora/generic/CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS b/configs/fedora/generic/CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
new file mode 100644
index 000000000..35c9fe219
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
@@ -0,0 +1 @@
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
diff --git a/configs/fedora/generic/CONFIG_MOXTET b/configs/fedora/generic/CONFIG_MOXTET
new file mode 100644
index 000000000..d141565b6
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MOXTET
@@ -0,0 +1 @@
+# CONFIG_MOXTET is not set
diff --git a/configs/fedora/generic/CONFIG_MTD_NAND_MXIC b/configs/fedora/generic/CONFIG_MTD_NAND_MXIC
new file mode 100644
index 000000000..6a2310167
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_MTD_NAND_MXIC
@@ -0,0 +1 @@
+# CONFIG_MTD_NAND_MXIC is not set
diff --git a/configs/fedora/generic/CONFIG_NETDEVSIM b/configs/fedora/generic/CONFIG_NETDEVSIM
index f7666c533..96004592a 100644
--- a/configs/fedora/generic/CONFIG_NETDEVSIM
+++ b/configs/fedora/generic/CONFIG_NETDEVSIM
@@ -1 +1 @@
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
diff --git a/configs/fedora/generic/CONFIG_NET_DSA_MICROCHIP_KSZ8795 b/configs/fedora/generic/CONFIG_NET_DSA_MICROCHIP_KSZ8795
new file mode 100644
index 000000000..37fb020d6
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_NET_DSA_MICROCHIP_KSZ8795
@@ -0,0 +1 @@
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
diff --git a/configs/fedora/generic/CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C b/configs/fedora/generic/CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C
new file mode 100644
index 000000000..e12e72f0a
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C
@@ -0,0 +1 @@
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
diff --git a/configs/fedora/generic/CONFIG_NET_TC_SKB_EXT b/configs/fedora/generic/CONFIG_NET_TC_SKB_EXT
new file mode 100644
index 000000000..3290f992f
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_NET_TC_SKB_EXT
@@ -0,0 +1 @@
+CONFIG_NET_TC_SKB_EXT=y
diff --git a/configs/fedora/generic/CONFIG_NET_VENDOR_PENSANDO b/configs/fedora/generic/CONFIG_NET_VENDOR_PENSANDO
new file mode 100644
index 000000000..aba7e5839
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_NET_VENDOR_PENSANDO
@@ -0,0 +1 @@
+CONFIG_NET_VENDOR_PENSANDO=y
diff --git a/configs/fedora/generic/CONFIG_NFT_SOCKET b/configs/fedora/generic/CONFIG_NFT_SOCKET
index d28a66d0a..84aa8fd92 100644
--- a/configs/fedora/generic/CONFIG_NFT_SOCKET
+++ b/configs/fedora/generic/CONFIG_NFT_SOCKET
@@ -1 +1 @@
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
diff --git a/configs/fedora/generic/CONFIG_NFT_TPROXY b/configs/fedora/generic/CONFIG_NFT_TPROXY
index e8288ff55..d43e8c5f4 100644
--- a/configs/fedora/generic/CONFIG_NFT_TPROXY
+++ b/configs/fedora/generic/CONFIG_NFT_TPROXY
@@ -1 +1 @@
-# CONFIG_NFT_TPROXY is not set
+CONFIG_NFT_TPROXY=m
diff --git a/configs/fedora/generic/CONFIG_NFT_TUNNEL b/configs/fedora/generic/CONFIG_NFT_TUNNEL
index a6c2fa49d..30f2b484f 100644
--- a/configs/fedora/generic/CONFIG_NFT_TUNNEL
+++ b/configs/fedora/generic/CONFIG_NFT_TUNNEL
@@ -1 +1 @@
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TUNNEL=m
diff --git a/configs/fedora/generic/CONFIG_NOA1305 b/configs/fedora/generic/CONFIG_NOA1305
new file mode 100644
index 000000000..2d1dd8731
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_NOA1305
@@ -0,0 +1 @@
+# CONFIG_NOA1305 is not set
diff --git a/configs/fedora/generic/CONFIG_OPTIMIZE_INLINING b/configs/fedora/generic/CONFIG_OPTIMIZE_INLINING
index b7e716809..6991e6d3f 100644
--- a/configs/fedora/generic/CONFIG_OPTIMIZE_INLINING
+++ b/configs/fedora/generic/CONFIG_OPTIMIZE_INLINING
@@ -1 +1 @@
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
diff --git a/configs/fedora/generic/CONFIG_PINCTRL_SC7180 b/configs/fedora/generic/CONFIG_PINCTRL_SC7180
new file mode 100644
index 000000000..797cd04fb
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_PINCTRL_SC7180
@@ -0,0 +1 @@
+# CONFIG_PINCTRL_SC7180 is not set
diff --git a/configs/fedora/generic/CONFIG_PREEMPT_LL b/configs/fedora/generic/CONFIG_PREEMPT_LL
deleted file mode 100644
index 513294a39..000000000
--- a/configs/fedora/generic/CONFIG_PREEMPT_LL
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_PREEMPT_LL is not set
diff --git a/configs/fedora/generic/CONFIG_RANDOM_TRUST_BOOTLOADER b/configs/fedora/generic/CONFIG_RANDOM_TRUST_BOOTLOADER
new file mode 100644
index 000000000..5597038dd
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_RANDOM_TRUST_BOOTLOADER
@@ -0,0 +1 @@
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
diff --git a/configs/fedora/generic/CONFIG_RDMA_SIW b/configs/fedora/generic/CONFIG_RDMA_SIW
index 67d1735af..3bc1ec48a 100644
--- a/configs/fedora/generic/CONFIG_RDMA_SIW
+++ b/configs/fedora/generic/CONFIG_RDMA_SIW
@@ -1 +1 @@
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
diff --git a/configs/fedora/generic/CONFIG_READ_ONLY_THP_FOR_FS b/configs/fedora/generic/CONFIG_READ_ONLY_THP_FOR_FS
new file mode 100644
index 000000000..5aceef7ad
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_READ_ONLY_THP_FOR_FS
@@ -0,0 +1 @@
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
diff --git a/configs/fedora/generic/CONFIG_REGULATOR_SY8824X b/configs/fedora/generic/CONFIG_REGULATOR_SY8824X
new file mode 100644
index 000000000..42053ce4c
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_REGULATOR_SY8824X
@@ -0,0 +1 @@
+# CONFIG_REGULATOR_SY8824X is not set
diff --git a/configs/fedora/generic/CONFIG_REMOTEPROC b/configs/fedora/generic/CONFIG_REMOTEPROC
index 5a1f9df99..a5c237d2f 100644
--- a/configs/fedora/generic/CONFIG_REMOTEPROC
+++ b/configs/fedora/generic/CONFIG_REMOTEPROC
@@ -1 +1 @@
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
diff --git a/configs/fedora/generic/CONFIG_SECURITY_LOCKDOWN_LSM b/configs/fedora/generic/CONFIG_SECURITY_LOCKDOWN_LSM
new file mode 100644
index 000000000..4a55be3bb
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SECURITY_LOCKDOWN_LSM
@@ -0,0 +1 @@
+CONFIG_SECURITY_LOCKDOWN_LSM=y
diff --git a/configs/fedora/generic/CONFIG_SECURITY_LOCKDOWN_LSM_EARLY b/configs/fedora/generic/CONFIG_SECURITY_LOCKDOWN_LSM_EARLY
new file mode 100644
index 000000000..edb6d0007
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SECURITY_LOCKDOWN_LSM_EARLY
@@ -0,0 +1 @@
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
diff --git a/configs/fedora/generic/CONFIG_SENSORS_ADS1015 b/configs/fedora/generic/CONFIG_SENSORS_ADS1015
deleted file mode 100644
index 928b4f25f..000000000
--- a/configs/fedora/generic/CONFIG_SENSORS_ADS1015
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SENSORS_ADS1015 is not set
diff --git a/configs/fedora/generic/CONFIG_SENSORS_AS370 b/configs/fedora/generic/CONFIG_SENSORS_AS370
new file mode 100644
index 000000000..f76a8def3
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SENSORS_AS370
@@ -0,0 +1 @@
+# CONFIG_SENSORS_AS370 is not set
diff --git a/configs/fedora/generic/CONFIG_SENSORS_INSPUR_IPSPS b/configs/fedora/generic/CONFIG_SENSORS_INSPUR_IPSPS
new file mode 100644
index 000000000..ac589f45a
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SENSORS_INSPUR_IPSPS
@@ -0,0 +1 @@
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
diff --git a/configs/fedora/generic/CONFIG_SERIAL_8250_MOXA b/configs/fedora/generic/CONFIG_SERIAL_8250_MOXA
deleted file mode 100644
index 5fe7e1175..000000000
--- a/configs/fedora/generic/CONFIG_SERIAL_8250_MOXA
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_SERIAL_8250_MOXA=m
diff --git a/configs/fedora/generic/CONFIG_SERIAL_FSL_LINFLEXUART b/configs/fedora/generic/CONFIG_SERIAL_FSL_LINFLEXUART
new file mode 100644
index 000000000..68d716e9d
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SERIAL_FSL_LINFLEXUART
@@ -0,0 +1 @@
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
diff --git a/configs/fedora/generic/CONFIG_SGI_IOC4 b/configs/fedora/generic/CONFIG_SGI_IOC4
deleted file mode 100644
index 0d104aafd..000000000
--- a/configs/fedora/generic/CONFIG_SGI_IOC4
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SGI_IOC4 is not set
diff --git a/configs/fedora/generic/CONFIG_SND_HDA_INTEL b/configs/fedora/generic/CONFIG_SND_HDA_INTEL
index dfe74ea98..6f057ecfe 100644
--- a/configs/fedora/generic/CONFIG_SND_HDA_INTEL
+++ b/configs/fedora/generic/CONFIG_SND_HDA_INTEL
@@ -1 +1 @@
-CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_INTEL is not set
diff --git a/configs/fedora/generic/CONFIG_SND_HDA_INTEL_DETECT_DMIC b/configs/fedora/generic/CONFIG_SND_HDA_INTEL_DETECT_DMIC
new file mode 100644
index 000000000..501f523b0
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_HDA_INTEL_DETECT_DMIC
@@ -0,0 +1 @@
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_SOF_OF b/configs/fedora/generic/CONFIG_SND_SOC_SOF_OF
new file mode 100644
index 000000000..54729e3fa
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_SOC_SOF_OF
@@ -0,0 +1 @@
+# CONFIG_SND_SOC_SOF_OF is not set
diff --git a/configs/fedora/generic/CONFIG_SND_SOC_UDA1334 b/configs/fedora/generic/CONFIG_SND_SOC_UDA1334
new file mode 100644
index 000000000..ab138d8d8
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_SND_SOC_UDA1334
@@ -0,0 +1 @@
+# CONFIG_SND_SOC_UDA1334 is not set
diff --git a/configs/fedora/generic/CONFIG_SOUNDWIRE_BUS b/configs/fedora/generic/CONFIG_SOUNDWIRE_BUS
deleted file mode 100644
index dd3714b7c..000000000
--- a/configs/fedora/generic/CONFIG_SOUNDWIRE_BUS
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_SOUNDWIRE_BUS=m
diff --git a/configs/fedora/generic/CONFIG_TEST_LIVEPATCH b/configs/fedora/generic/CONFIG_TEST_LIVEPATCH
new file mode 100644
index 000000000..38a780283
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TEST_LIVEPATCH
@@ -0,0 +1 @@
+# CONFIG_TEST_LIVEPATCH is not set
diff --git a/configs/fedora/generic/CONFIG_TINYDRM_HX8357D b/configs/fedora/generic/CONFIG_TINYDRM_HX8357D
new file mode 100644
index 000000000..b6034f2f3
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TINYDRM_HX8357D
@@ -0,0 +1 @@
+# CONFIG_TINYDRM_HX8357D is not set
diff --git a/configs/fedora/generic/CONFIG_TINYDRM_ILI9225 b/configs/fedora/generic/CONFIG_TINYDRM_ILI9225
new file mode 100644
index 000000000..1371c3f6e
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TINYDRM_ILI9225
@@ -0,0 +1 @@
+# CONFIG_TINYDRM_ILI9225 is not set
diff --git a/configs/fedora/generic/CONFIG_TINYDRM_ILI9341 b/configs/fedora/generic/CONFIG_TINYDRM_ILI9341
new file mode 100644
index 000000000..d0fdddaeb
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TINYDRM_ILI9341
@@ -0,0 +1 @@
+# CONFIG_TINYDRM_ILI9341 is not set
diff --git a/configs/fedora/generic/CONFIG_TINYDRM_MI0283QT b/configs/fedora/generic/CONFIG_TINYDRM_MI0283QT
new file mode 100644
index 000000000..fb0b5f045
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TINYDRM_MI0283QT
@@ -0,0 +1 @@
+# CONFIG_TINYDRM_MI0283QT is not set
diff --git a/configs/fedora/generic/CONFIG_TINYDRM_REPAPER b/configs/fedora/generic/CONFIG_TINYDRM_REPAPER
new file mode 100644
index 000000000..c4d2874fa
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TINYDRM_REPAPER
@@ -0,0 +1 @@
+# CONFIG_TINYDRM_REPAPER is not set
diff --git a/configs/fedora/generic/CONFIG_TINYDRM_ST7586 b/configs/fedora/generic/CONFIG_TINYDRM_ST7586
new file mode 100644
index 000000000..2b9e29f63
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TINYDRM_ST7586
@@ -0,0 +1 @@
+# CONFIG_TINYDRM_ST7586 is not set
diff --git a/configs/fedora/generic/CONFIG_TINYDRM_ST7735R b/configs/fedora/generic/CONFIG_TINYDRM_ST7735R
new file mode 100644
index 000000000..365910ba1
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_TINYDRM_ST7735R
@@ -0,0 +1 @@
+# CONFIG_TINYDRM_ST7735R is not set
diff --git a/configs/fedora/generic/CONFIG_TLS_DEVICE b/configs/fedora/generic/CONFIG_TLS_DEVICE
index 1d436b4a8..7a19aef6a 100644
--- a/configs/fedora/generic/CONFIG_TLS_DEVICE
+++ b/configs/fedora/generic/CONFIG_TLS_DEVICE
@@ -1 +1 @@
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
diff --git a/configs/fedora/generic/CONFIG_UAPI_HEADER_TEST b/configs/fedora/generic/CONFIG_UAPI_HEADER_TEST
new file mode 100644
index 000000000..b42b04505
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_UAPI_HEADER_TEST
@@ -0,0 +1 @@
+CONFIG_UAPI_HEADER_TEST=y
diff --git a/configs/fedora/generic/CONFIG_USB_CDNS3 b/configs/fedora/generic/CONFIG_USB_CDNS3
new file mode 100644
index 000000000..7f19f1a47
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_USB_CDNS3
@@ -0,0 +1 @@
+# CONFIG_USB_CDNS3 is not set
diff --git a/configs/fedora/generic/CONFIG_USB_CONN_GPIO b/configs/fedora/generic/CONFIG_USB_CONN_GPIO
new file mode 100644
index 000000000..e91343881
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_USB_CONN_GPIO
@@ -0,0 +1 @@
+# CONFIG_USB_CONN_GPIO is not set
diff --git a/configs/fedora/generic/CONFIG_USB_OHCI_HCD_SSB b/configs/fedora/generic/CONFIG_USB_OHCI_HCD_SSB
new file mode 100644
index 000000000..eb3e84ce6
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_USB_OHCI_HCD_SSB
@@ -0,0 +1 @@
+# CONFIG_USB_OHCI_HCD_SSB is not set
diff --git a/configs/fedora/generic/CONFIG_USB_RIO500 b/configs/fedora/generic/CONFIG_USB_RIO500
deleted file mode 100644
index 961c7e67f..000000000
--- a/configs/fedora/generic/CONFIG_USB_RIO500
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_USB_RIO500 is not set
diff --git a/configs/fedora/generic/CONFIG_VIRTIO_FS b/configs/fedora/generic/CONFIG_VIRTIO_FS
new file mode 100644
index 000000000..9fe646616
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_VIRTIO_FS
@@ -0,0 +1 @@
+CONFIG_VIRTIO_FS=m
diff --git a/configs/fedora/generic/CONFIG_W1_MASTER_SGI b/configs/fedora/generic/CONFIG_W1_MASTER_SGI
new file mode 100644
index 000000000..8360af649
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_W1_MASTER_SGI
@@ -0,0 +1 @@
+# CONFIG_W1_MASTER_SGI is not set
diff --git a/configs/fedora/generic/CONFIG_W1_SLAVE_DS250X b/configs/fedora/generic/CONFIG_W1_SLAVE_DS250X
new file mode 100644
index 000000000..fbab0ea85
--- /dev/null
+++ b/configs/fedora/generic/CONFIG_W1_SLAVE_DS250X
@@ -0,0 +1 @@
+# CONFIG_W1_SLAVE_DS250X is not set
diff --git a/configs/fedora/generic/arm/CONFIG_APDS9960 b/configs/fedora/generic/arm/CONFIG_APDS9960
new file mode 100644
index 000000000..d8df5d41a
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_APDS9960
@@ -0,0 +1 @@
+CONFIG_APDS9960=m
diff --git a/configs/fedora/generic/arm/CONFIG_ARCH_ASPEED b/configs/fedora/generic/arm/CONFIG_ARCH_ASPEED
new file mode 100644
index 000000000..067532b38
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_ARCH_ASPEED
@@ -0,0 +1 @@
+# CONFIG_ARCH_ASPEED is not set
diff --git a/configs/fedora/generic/arm/CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM b/configs/fedora/generic/arm/CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM
new file mode 100644
index 000000000..23c1c90c7
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM
@@ -0,0 +1 @@
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
diff --git a/configs/fedora/generic/arm/CONFIG_ARM_PSCI_CPUIDLE b/configs/fedora/generic/arm/CONFIG_ARM_PSCI_CPUIDLE
new file mode 100644
index 000000000..29843b961
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_ARM_PSCI_CPUIDLE
@@ -0,0 +1 @@
+CONFIG_ARM_PSCI_CPUIDLE=y
diff --git a/configs/fedora/generic/arm/CONFIG_ARM_PSCI_FW b/configs/fedora/generic/arm/CONFIG_ARM_PSCI_FW
new file mode 100644
index 000000000..8f3a93575
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_ARM_PSCI_FW
@@ -0,0 +1 @@
+CONFIG_ARM_PSCI_FW=y
diff --git a/configs/fedora/generic/arm/CONFIG_ARM_QCOM_CPUFREQ_KRYO b/configs/fedora/generic/arm/CONFIG_ARM_QCOM_CPUFREQ_KRYO
deleted file mode 100644
index 3b9e5e47f..000000000
--- a/configs/fedora/generic/arm/CONFIG_ARM_QCOM_CPUFREQ_KRYO
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_ARM_QCOM_CPUFREQ_KRYO=m
diff --git a/configs/fedora/generic/arm/CONFIG_BATTERY_GAUGE_LTC2941 b/configs/fedora/generic/arm/CONFIG_BATTERY_GAUGE_LTC2941
new file mode 100644
index 000000000..232f4909b
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_BATTERY_GAUGE_LTC2941
@@ -0,0 +1 @@
+CONFIG_BATTERY_GAUGE_LTC2941=m
diff --git a/configs/fedora/generic/arm/CONFIG_BATTERY_MAX17040 b/configs/fedora/generic/arm/CONFIG_BATTERY_MAX17040
new file mode 100644
index 000000000..e9e3fab08
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_BATTERY_MAX17040
@@ -0,0 +1 @@
+CONFIG_BATTERY_MAX17040=m
diff --git a/configs/fedora/generic/arm/CONFIG_CAN_MCP251X b/configs/fedora/generic/arm/CONFIG_CAN_MCP251X
new file mode 100644
index 000000000..861e26b17
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_CAN_MCP251X
@@ -0,0 +1 @@
+CONFIG_CAN_MCP251X=m
diff --git a/configs/fedora/generic/arm/CONFIG_CROS_EC b/configs/fedora/generic/arm/CONFIG_CROS_EC
new file mode 100644
index 000000000..1ad522e6a
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_CROS_EC
@@ -0,0 +1 @@
+CONFIG_CROS_EC=m
diff --git a/configs/fedora/generic/arm/CONFIG_CROS_EC_CHARDEV b/configs/fedora/generic/arm/CONFIG_CROS_EC_CHARDEV
new file mode 100644
index 000000000..a3df83240
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_CROS_EC_CHARDEV
@@ -0,0 +1 @@
+CONFIG_CROS_EC_CHARDEV=m
diff --git a/configs/fedora/generic/arm/CONFIG_CRYPTO_AEGIS128_SIMD b/configs/fedora/generic/arm/CONFIG_CRYPTO_AEGIS128_SIMD
new file mode 100644
index 000000000..0fa737a1d
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_CRYPTO_AEGIS128_SIMD
@@ -0,0 +1 @@
+CONFIG_CRYPTO_AEGIS128_SIMD=y
diff --git a/configs/fedora/generic/arm/CONFIG_DRM_TINYDRM b/configs/fedora/generic/arm/CONFIG_DRM_TINYDRM
deleted file mode 100644
index 4e6e01bfe..000000000
--- a/configs/fedora/generic/arm/CONFIG_DRM_TINYDRM
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_TINYDRM=m
diff --git a/configs/fedora/generic/arm/CONFIG_GPIO_MOXTET b/configs/fedora/generic/arm/CONFIG_GPIO_MOXTET
new file mode 100644
index 000000000..14a747e37
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_GPIO_MOXTET
@@ -0,0 +1 @@
+CONFIG_GPIO_MOXTET=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_GPIO_TPS6586X b/configs/fedora/generic/arm/CONFIG_GPIO_TPS6586X
index c8f2da811..c8f2da811 100644
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_GPIO_TPS6586X
+++ b/configs/fedora/generic/arm/CONFIG_GPIO_TPS6586X
diff --git a/configs/fedora/generic/arm/CONFIG_HDC100X b/configs/fedora/generic/arm/CONFIG_HDC100X
new file mode 100644
index 000000000..01ce4e667
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_HDC100X
@@ -0,0 +1 @@
+CONFIG_HDC100X=m
diff --git a/configs/fedora/generic/arm/CONFIG_HTU21 b/configs/fedora/generic/arm/CONFIG_HTU21
new file mode 100644
index 000000000..9508d6609
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_HTU21
@@ -0,0 +1 @@
+CONFIG_HTU21=m
diff --git a/configs/fedora/generic/arm/CONFIG_IMX7ULP_WDT b/configs/fedora/generic/arm/CONFIG_IMX7ULP_WDT
new file mode 100644
index 000000000..fc7a20637
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_IMX7ULP_WDT
@@ -0,0 +1 @@
+# CONFIG_IMX7ULP_WDT is not set
diff --git a/configs/fedora/generic/arm/CONFIG_IMX_DSP b/configs/fedora/generic/arm/CONFIG_IMX_DSP
new file mode 100644
index 000000000..e7d6b097b
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_IMX_DSP
@@ -0,0 +1 @@
+CONFIG_IMX_DSP=y
diff --git a/configs/fedora/generic/arm/CONFIG_INPUT_PWM_BEEPER b/configs/fedora/generic/arm/CONFIG_INPUT_PWM_BEEPER
deleted file mode 100644
index 59fdb225d..000000000
--- a/configs/fedora/generic/arm/CONFIG_INPUT_PWM_BEEPER
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_INPUT_PWM_BEEPER=m
diff --git a/configs/fedora/generic/arm/CONFIG_INTERCONNECT_QCOM_QCS404 b/configs/fedora/generic/arm/CONFIG_INTERCONNECT_QCOM_QCS404
new file mode 100644
index 000000000..5b700e166
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_INTERCONNECT_QCOM_QCS404
@@ -0,0 +1 @@
+# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
diff --git a/configs/fedora/generic/arm/CONFIG_LEDS_PCA963X b/configs/fedora/generic/arm/CONFIG_LEDS_PCA963X
new file mode 100644
index 000000000..42b62ab96
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_LEDS_PCA963X
@@ -0,0 +1 @@
+CONFIG_LEDS_PCA963X=m
diff --git a/configs/fedora/generic/arm/CONFIG_MAG3110 b/configs/fedora/generic/arm/CONFIG_MAG3110
new file mode 100644
index 000000000..029f5c044
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_MAG3110
@@ -0,0 +1 @@
+CONFIG_MAG3110=m
diff --git a/configs/fedora/generic/arm/CONFIG_MCP320X b/configs/fedora/generic/arm/CONFIG_MCP320X
new file mode 100644
index 000000000..072c95cb0
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_MCP320X
@@ -0,0 +1 @@
+CONFIG_MCP320X=m
diff --git a/configs/fedora/generic/arm/CONFIG_MCP3422 b/configs/fedora/generic/arm/CONFIG_MCP3422
new file mode 100644
index 000000000..213f87aa8
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_MCP3422
@@ -0,0 +1 @@
+CONFIG_MCP3422=m
diff --git a/configs/fedora/generic/arm/CONFIG_MESON_EE_PM_DOMAINS b/configs/fedora/generic/arm/CONFIG_MESON_EE_PM_DOMAINS
new file mode 100644
index 000000000..29e8d77d7
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_MESON_EE_PM_DOMAINS
@@ -0,0 +1 @@
+CONFIG_MESON_EE_PM_DOMAINS=y
diff --git a/configs/fedora/generic/arm/CONFIG_MFD_CROS_EC b/configs/fedora/generic/arm/CONFIG_MFD_CROS_EC
deleted file mode 100644
index 3600231f6..000000000
--- a/configs/fedora/generic/arm/CONFIG_MFD_CROS_EC
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MFD_CROS_EC=m
diff --git a/configs/fedora/generic/arm/CONFIG_MFD_CROS_EC_CHARDEV b/configs/fedora/generic/arm/CONFIG_MFD_CROS_EC_CHARDEV
deleted file mode 100644
index fc68f1d89..000000000
--- a/configs/fedora/generic/arm/CONFIG_MFD_CROS_EC_CHARDEV
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MFD_CROS_EC_CHARDEV=m
diff --git a/configs/fedora/generic/arm/CONFIG_MFD_CROS_EC_DEV b/configs/fedora/generic/arm/CONFIG_MFD_CROS_EC_DEV
new file mode 100644
index 000000000..a4fd1512e
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_MFD_CROS_EC_DEV
@@ -0,0 +1 @@
+CONFIG_MFD_CROS_EC_DEV=m
diff --git a/configs/fedora/generic/arm/CONFIG_MOXTET b/configs/fedora/generic/arm/CONFIG_MOXTET
new file mode 100644
index 000000000..29810388f
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_MOXTET
@@ -0,0 +1 @@
+CONFIG_MOXTET=m
diff --git a/configs/fedora/generic/arm/CONFIG_PWM_PCA9685 b/configs/fedora/generic/arm/CONFIG_PWM_PCA9685
new file mode 100644
index 000000000..822677184
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_PWM_PCA9685
@@ -0,0 +1 @@
+CONFIG_PWM_PCA9685=m
diff --git a/configs/fedora/generic/arm/CONFIG_QCOM_SOCINFO b/configs/fedora/generic/arm/CONFIG_QCOM_SOCINFO
new file mode 100644
index 000000000..c98f36a71
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_QCOM_SOCINFO
@@ -0,0 +1 @@
+CONFIG_QCOM_SOCINFO=m
diff --git a/configs/fedora/generic/arm/CONFIG_RESET_SCMI b/configs/fedora/generic/arm/CONFIG_RESET_SCMI
new file mode 100644
index 000000000..510ea209c
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_RESET_SCMI
@@ -0,0 +1 @@
+CONFIG_RESET_SCMI=y
diff --git a/configs/fedora/generic/arm/CONFIG_RTC_DRV_MESON_VRTC b/configs/fedora/generic/arm/CONFIG_RTC_DRV_MESON_VRTC
new file mode 100644
index 000000000..4ae0ab82f
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_RTC_DRV_MESON_VRTC
@@ -0,0 +1 @@
+CONFIG_RTC_DRV_MESON_VRTC=m
diff --git a/configs/fedora/generic/arm/armv7/CONFIG_SENSORS_GPIO_FAN b/configs/fedora/generic/arm/CONFIG_SENSORS_GPIO_FAN
index 9331ff3d7..9331ff3d7 100644
--- a/configs/fedora/generic/arm/armv7/CONFIG_SENSORS_GPIO_FAN
+++ b/configs/fedora/generic/arm/CONFIG_SENSORS_GPIO_FAN
diff --git a/configs/fedora/generic/arm/armv7/CONFIG_SI7020 b/configs/fedora/generic/arm/CONFIG_SI7020
index 57cab28ab..57cab28ab 100644
--- a/configs/fedora/generic/arm/armv7/CONFIG_SI7020
+++ b/configs/fedora/generic/arm/CONFIG_SI7020
diff --git a/configs/fedora/generic/arm/CONFIG_SM_GCC_8150 b/configs/fedora/generic/arm/CONFIG_SM_GCC_8150
new file mode 100644
index 000000000..70de2f2e1
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_SM_GCC_8150
@@ -0,0 +1 @@
+# CONFIG_SM_GCC_8150 is not set
diff --git a/configs/fedora/generic/arm/CONFIG_SND_SOC_ADAU1977_I2C b/configs/fedora/generic/arm/CONFIG_SND_SOC_ADAU1977_I2C
new file mode 100644
index 000000000..9665f5229
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_ADAU1977_I2C
@@ -0,0 +1 @@
+CONFIG_SND_SOC_ADAU1977_I2C=m
diff --git a/configs/fedora/generic/arm/CONFIG_SND_SOC_CS4265 b/configs/fedora/generic/arm/CONFIG_SND_SOC_CS4265
new file mode 100644
index 000000000..3c8bc686b
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_CS4265
@@ -0,0 +1 @@
+CONFIG_SND_SOC_CS4265=m
diff --git a/configs/fedora/generic/arm/CONFIG_SND_SOC_CS4271_I2C b/configs/fedora/generic/arm/CONFIG_SND_SOC_CS4271_I2C
new file mode 100644
index 000000000..3408b3502
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_CS4271_I2C
@@ -0,0 +1 @@
+CONFIG_SND_SOC_CS4271_I2C=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_CS42XX8_I2C b/configs/fedora/generic/arm/CONFIG_SND_SOC_CS42XX8_I2C
index f5db15237..f5db15237 100644
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_CS42XX8_I2C
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_CS42XX8_I2C
diff --git a/configs/fedora/generic/arm/CONFIG_SND_SOC_DA7213 b/configs/fedora/generic/arm/CONFIG_SND_SOC_DA7213
new file mode 100644
index 000000000..e7f8eecca
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_DA7213
@@ -0,0 +1 @@
+CONFIG_SND_SOC_DA7213=m
diff --git a/configs/fedora/generic/arm/CONFIG_SND_SOC_ICS43432 b/configs/fedora/generic/arm/CONFIG_SND_SOC_ICS43432
new file mode 100644
index 000000000..be2f8fc33
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_ICS43432
@@ -0,0 +1 @@
+CONFIG_SND_SOC_ICS43432=m
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_SND_SOC_MAX98357A b/configs/fedora/generic/arm/CONFIG_SND_SOC_MAX98357A
index bcf5b6da4..bcf5b6da4 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_SND_SOC_MAX98357A
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_MAX98357A
diff --git a/configs/fedora/generic/arm/CONFIG_SND_SOC_PCM5102A b/configs/fedora/generic/arm/CONFIG_SND_SOC_PCM5102A
new file mode 100644
index 000000000..b5aa6251d
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_PCM5102A
@@ -0,0 +1 @@
+CONFIG_SND_SOC_PCM5102A=m
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_SND_SOC_SGTL5000 b/configs/fedora/generic/arm/CONFIG_SND_SOC_SGTL5000
index ea71dece1..ea71dece1 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_SND_SOC_SGTL5000
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_SGTL5000
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC23 b/configs/fedora/generic/arm/CONFIG_SND_SOC_TLV320AIC23
index 6f39daa7e..6f39daa7e 100644
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC23
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_TLV320AIC23
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC23_I2C b/configs/fedora/generic/arm/CONFIG_SND_SOC_TLV320AIC23_I2C
index f131b6f76..f131b6f76 100644
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC23_I2C
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_TLV320AIC23_I2C
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC23_SPI b/configs/fedora/generic/arm/CONFIG_SND_SOC_TLV320AIC23_SPI
index 312955e99..312955e99 100644
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_TLV320AIC23_SPI
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_TLV320AIC23_SPI
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_WM8731 b/configs/fedora/generic/arm/CONFIG_SND_SOC_WM8731
index be7329279..be7329279 100644
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_SND_SOC_WM8731
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_WM8731
diff --git a/configs/fedora/generic/arm/CONFIG_SND_SOC_WM8741 b/configs/fedora/generic/arm/CONFIG_SND_SOC_WM8741
new file mode 100644
index 000000000..58adc551f
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_SND_SOC_WM8741
@@ -0,0 +1 @@
+CONFIG_SND_SOC_WM8741=m
diff --git a/configs/fedora/generic/arm/CONFIG_TCG_FTPM_TEE b/configs/fedora/generic/arm/CONFIG_TCG_FTPM_TEE
new file mode 100644
index 000000000..f84ad6543
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_TCG_FTPM_TEE
@@ -0,0 +1 @@
+CONFIG_TCG_FTPM_TEE=m
diff --git a/configs/fedora/generic/arm/CONFIG_TINYDRM_MIPI_DBI b/configs/fedora/generic/arm/CONFIG_TINYDRM_MIPI_DBI
deleted file mode 100644
index bb0235842..000000000
--- a/configs/fedora/generic/arm/CONFIG_TINYDRM_MIPI_DBI
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_TINYDRM_MIPI_DBI=m
diff --git a/configs/fedora/generic/arm/armv7/CONFIG_TOUCHSCREEN_ADS7846 b/configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_ADS7846
index 739ad5dee..739ad5dee 100644
--- a/configs/fedora/generic/arm/armv7/CONFIG_TOUCHSCREEN_ADS7846
+++ b/configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_ADS7846
diff --git a/configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_EXC3000 b/configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_EXC3000
new file mode 100644
index 000000000..9211c830e
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_EXC3000
@@ -0,0 +1 @@
+CONFIG_TOUCHSCREEN_EXC3000=m
diff --git a/configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_GOODIX b/configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_GOODIX
new file mode 100644
index 000000000..ad45d6831
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_TOUCHSCREEN_GOODIX
@@ -0,0 +1 @@
+CONFIG_TOUCHSCREEN_GOODIX=m
diff --git a/configs/fedora/generic/arm/CONFIG_TSL4531 b/configs/fedora/generic/arm/CONFIG_TSL4531
new file mode 100644
index 000000000..82759bc16
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_TSL4531
@@ -0,0 +1 @@
+CONFIG_TSL4531=m
diff --git a/configs/fedora/generic/arm/CONFIG_TURRIS_MOX_RWTM b/configs/fedora/generic/arm/CONFIG_TURRIS_MOX_RWTM
new file mode 100644
index 000000000..5dcb7dbb9
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_TURRIS_MOX_RWTM
@@ -0,0 +1 @@
+CONFIG_TURRIS_MOX_RWTM=m
diff --git a/configs/fedora/generic/arm/CONFIG_USB_CONN_GPIO b/configs/fedora/generic/arm/CONFIG_USB_CONN_GPIO
new file mode 100644
index 000000000..4113924f9
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_USB_CONN_GPIO
@@ -0,0 +1 @@
+CONFIG_USB_CONN_GPIO=m
diff --git a/configs/fedora/generic/arm/CONFIG_USB_OHCI_HCD b/configs/fedora/generic/arm/CONFIG_USB_OHCI_HCD
new file mode 100644
index 000000000..b57227638
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_USB_OHCI_HCD
@@ -0,0 +1 @@
+CONFIG_USB_OHCI_HCD=m
diff --git a/configs/fedora/generic/arm/CONFIG_VEML6070 b/configs/fedora/generic/arm/CONFIG_VEML6070
new file mode 100644
index 000000000..b714b90a3
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_VEML6070
@@ -0,0 +1 @@
+CONFIG_VEML6070=m
diff --git a/configs/fedora/generic/arm/CONFIG_VIDEO_SUN4I_CSI b/configs/fedora/generic/arm/CONFIG_VIDEO_SUN4I_CSI
new file mode 100644
index 000000000..890d5e0bc
--- /dev/null
+++ b/configs/fedora/generic/arm/CONFIG_VIDEO_SUN4I_CSI
@@ -0,0 +1 @@
+CONFIG_VIDEO_SUN4I_CSI=m
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_TAGGED_ADDR_ABI b/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_TAGGED_ADDR_ABI
new file mode 100644
index 000000000..478c311de
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_TAGGED_ADDR_ABI
@@ -0,0 +1 @@
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_VA_BITS_52 b/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_VA_BITS_52
new file mode 100644
index 000000000..3e4b995e9
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_ARM64_VA_BITS_52
@@ -0,0 +1 @@
+# CONFIG_ARM64_VA_BITS_52 is not set
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_ARM_QCOM_CPUFREQ_NVMEM b/configs/fedora/generic/arm/aarch64/CONFIG_ARM_QCOM_CPUFREQ_NVMEM
new file mode 100644
index 000000000..b50af990b
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_ARM_QCOM_CPUFREQ_NVMEM
@@ -0,0 +1 @@
+CONFIG_ARM_QCOM_CPUFREQ_NVMEM=m
diff --git a/configs/fedora/generic/arm/CONFIG_CAVIUM_TX2_ERRATUM_219 b/configs/fedora/generic/arm/aarch64/CONFIG_CAVIUM_TX2_ERRATUM_219
index b7f72514b..b7f72514b 100644
--- a/configs/fedora/generic/arm/CONFIG_CAVIUM_TX2_ERRATUM_219
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_CAVIUM_TX2_ERRATUM_219
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_CLK_IMX8MN b/configs/fedora/generic/arm/aarch64/CONFIG_CLK_IMX8MN
new file mode 100644
index 000000000..dd001886b
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_CLK_IMX8MN
@@ -0,0 +1 @@
+CONFIG_CLK_IMX8MN=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_CRYPTO_DEV_HISI_ZIP b/configs/fedora/generic/arm/aarch64/CONFIG_CRYPTO_DEV_HISI_ZIP
new file mode 100644
index 000000000..54dadfbdd
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_CRYPTO_DEV_HISI_ZIP
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_DEV_HISI_ZIP is not set
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_EDAC_BLUEFIELD b/configs/fedora/generic/arm/aarch64/CONFIG_EDAC_BLUEFIELD
new file mode 100644
index 000000000..8cecdf961
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_EDAC_BLUEFIELD
@@ -0,0 +1 @@
+CONFIG_EDAC_BLUEFIELD=m
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_HISI_KIRIN_DW_DSI b/configs/fedora/generic/arm/aarch64/CONFIG_HISI_KIRIN_DW_DSI
deleted file mode 100644
index cef60968e..000000000
--- a/configs/fedora/generic/arm/aarch64/CONFIG_HISI_KIRIN_DW_DSI
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_HISI_KIRIN_DW_DSI=m
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_KEXEC_SIG b/configs/fedora/generic/arm/aarch64/CONFIG_KEXEC_SIG
new file mode 100644
index 000000000..67b688658
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_KEXEC_SIG
@@ -0,0 +1 @@
+CONFIG_KEXEC_SIG=y
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_NR_CPUS b/configs/fedora/generic/arm/aarch64/CONFIG_NR_CPUS
index 0c4b1d904..4190afcbb 100644
--- a/configs/fedora/generic/arm/aarch64/CONFIG_NR_CPUS
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_NR_CPUS
@@ -1 +1 @@
-CONFIG_NR_CPUS=256
+CONFIG_NR_CPUS=4096
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_PCIE_AL b/configs/fedora/generic/arm/aarch64/CONFIG_PCIE_AL
new file mode 100644
index 000000000..4cfae7f6a
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_PCIE_AL
@@ -0,0 +1 @@
+# CONFIG_PCIE_AL is not set
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_PCIE_TEGRA194 b/configs/fedora/generic/arm/aarch64/CONFIG_PCIE_TEGRA194
new file mode 100644
index 000000000..5484caeef
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_PCIE_TEGRA194
@@ -0,0 +1 @@
+CONFIG_PCIE_TEGRA194=m
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_PHY_TEGRA194_P2U b/configs/fedora/generic/arm/aarch64/CONFIG_PHY_TEGRA194_P2U
new file mode 100644
index 000000000..23e44783c
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_PHY_TEGRA194_P2U
@@ -0,0 +1 @@
+CONFIG_PHY_TEGRA194_P2U=m
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_QCOM_SOCINFO b/configs/fedora/generic/arm/aarch64/CONFIG_QCOM_SOCINFO
new file mode 100644
index 000000000..8e56160a2
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_QCOM_SOCINFO
@@ -0,0 +1 @@
+# CONFIG_QCOM_SOCINFO is not set
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_RTC_DRV_FSL_FTM_ALARM b/configs/fedora/generic/arm/aarch64/CONFIG_RTC_DRV_FSL_FTM_ALARM
new file mode 100644
index 000000000..390851818
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_RTC_DRV_FSL_FTM_ALARM
@@ -0,0 +1 @@
+CONFIG_RTC_DRV_FSL_FTM_ALARM=m
diff --git a/configs/fedora/generic/arm/aarch64/CONFIG_SM_GCC_8150 b/configs/fedora/generic/arm/aarch64/CONFIG_SM_GCC_8150
new file mode 100644
index 000000000..3e341c392
--- /dev/null
+++ b/configs/fedora/generic/arm/aarch64/CONFIG_SM_GCC_8150
@@ -0,0 +1 @@
+CONFIG_SM_GCC_8150=y
diff --git a/configs/fedora/generic/arm/armv7/CONFIG_ARCH_MULTI_V5 b/configs/fedora/generic/arm/armv7/CONFIG_ARCH_MULTI_V5
new file mode 100644
index 000000000..642406b79
--- /dev/null
+++ b/configs/fedora/generic/arm/armv7/CONFIG_ARCH_MULTI_V5
@@ -0,0 +1 @@
+# CONFIG_ARCH_MULTI_V5 is not set
diff --git a/configs/fedora/generic/arm/armv7/CONFIG_EDAC_ARMADA_XP b/configs/fedora/generic/arm/armv7/CONFIG_EDAC_ARMADA_XP
new file mode 100644
index 000000000..301caab79
--- /dev/null
+++ b/configs/fedora/generic/arm/armv7/CONFIG_EDAC_ARMADA_XP
@@ -0,0 +1 @@
+CONFIG_EDAC_ARMADA_XP=y
diff --git a/configs/fedora/generic/arm/armv7/CONFIG_MTD_M25P80 b/configs/fedora/generic/arm/armv7/CONFIG_MTD_M25P80
deleted file mode 100644
index 9e4ab3f0b..000000000
--- a/configs/fedora/generic/arm/armv7/CONFIG_MTD_M25P80
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MTD_M25P80=m
diff --git a/configs/fedora/generic/arm/armv7/CONFIG_SND_SOC_SGTL5000 b/configs/fedora/generic/arm/armv7/CONFIG_SND_SOC_SGTL5000
deleted file mode 100644
index ea71dece1..000000000
--- a/configs/fedora/generic/arm/armv7/CONFIG_SND_SOC_SGTL5000
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_SND_SOC_SGTL5000=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_ARM_TEGRA20_DEVFREQ b/configs/fedora/generic/arm/armv7/armv7/CONFIG_ARM_TEGRA20_DEVFREQ
new file mode 100644
index 000000000..c3c35e684
--- /dev/null
+++ b/configs/fedora/generic/arm/armv7/armv7/CONFIG_ARM_TEGRA20_DEVFREQ
@@ -0,0 +1 @@
+CONFIG_ARM_TEGRA20_DEVFREQ=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_LGPHILIPS_LB035Q02 b/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_LGPHILIPS_LB035Q02
deleted file mode 100644
index 59d16a459..000000000
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_LGPHILIPS_LB035Q02
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_OMAP_PANEL_LGPHILIPS_LB035Q02=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_NEC_NL8048HL11 b/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_NEC_NL8048HL11
deleted file mode 100644
index 8751af145..000000000
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_NEC_NL8048HL11
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_OMAP_PANEL_NEC_NL8048HL11=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_SHARP_LS037V7DW01 b/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_SHARP_LS037V7DW01
deleted file mode 100644
index fe01d0a37..000000000
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_SHARP_LS037V7DW01
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_OMAP_PANEL_SHARP_LS037V7DW01=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM b/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM
deleted file mode 100644
index d4629e2b7..000000000
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_OMAP_PANEL_SONY_ACX565AKM=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC1 b/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC1
deleted file mode 100644
index de91d35b4..000000000
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC1
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_OMAP_PANEL_TPO_TD028TTEC1=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1 b/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1
deleted file mode 100644
index 9a503f8e7..000000000
--- a/configs/fedora/generic/arm/armv7/armv7/CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_OMAP_PANEL_TPO_TD043MTEA1=m
diff --git a/configs/fedora/generic/arm/armv7/armv7/CONFIG_QCOM_COMMAND_DB b/configs/fedora/generic/arm/armv7/armv7/CONFIG_QCOM_COMMAND_DB
new file mode 100644
index 000000000..0a34c3a7e
--- /dev/null
+++ b/configs/fedora/generic/arm/armv7/armv7/CONFIG_QCOM_COMMAND_DB
@@ -0,0 +1 @@
+CONFIG_QCOM_COMMAND_DB=y
diff --git a/configs/fedora/generic/powerpc/CONFIG_EFI_TEST b/configs/fedora/generic/powerpc/CONFIG_EFI_TEST
new file mode 100644
index 000000000..455eb3061
--- /dev/null
+++ b/configs/fedora/generic/powerpc/CONFIG_EFI_TEST
@@ -0,0 +1 @@
+# CONFIG_EFI_TEST is not set
diff --git a/configs/fedora/generic/powerpc/CONFIG_HMM_MIRROR b/configs/fedora/generic/powerpc/CONFIG_HMM_MIRROR
index 0d7d51185..11dfee6c1 100644
--- a/configs/fedora/generic/powerpc/CONFIG_HMM_MIRROR
+++ b/configs/fedora/generic/powerpc/CONFIG_HMM_MIRROR
@@ -1 +1 @@
-# CONFIG_HMM_MIRROR is not set
+CONFIG_HMM_MIRROR=y
diff --git a/configs/fedora/generic/powerpc/CONFIG_INPUT_PWM_BEEPER b/configs/fedora/generic/powerpc/CONFIG_INPUT_PWM_BEEPER
deleted file mode 100644
index 59fdb225d..000000000
--- a/configs/fedora/generic/powerpc/CONFIG_INPUT_PWM_BEEPER
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_INPUT_PWM_BEEPER=m
diff --git a/configs/fedora/generic/powerpc/CONFIG_NR_CPUS b/configs/fedora/generic/powerpc/CONFIG_NR_CPUS
index 27d187f4d..b13ed41c9 100644
--- a/configs/fedora/generic/powerpc/CONFIG_NR_CPUS
+++ b/configs/fedora/generic/powerpc/CONFIG_NR_CPUS
@@ -1 +1 @@
-CONFIG_NR_CPUS=1024
+CONFIG_NR_CPUS=2048
diff --git a/configs/fedora/generic/powerpc/CONFIG_OPAL_CORE b/configs/fedora/generic/powerpc/CONFIG_OPAL_CORE
new file mode 100644
index 000000000..48e23bed6
--- /dev/null
+++ b/configs/fedora/generic/powerpc/CONFIG_OPAL_CORE
@@ -0,0 +1 @@
+# CONFIG_OPAL_CORE is not set
diff --git a/configs/fedora/generic/powerpc/CONFIG_PPC_SVM b/configs/fedora/generic/powerpc/CONFIG_PPC_SVM
new file mode 100644
index 000000000..b62f122bf
--- /dev/null
+++ b/configs/fedora/generic/powerpc/CONFIG_PPC_SVM
@@ -0,0 +1 @@
+CONFIG_PPC_SVM=y
diff --git a/configs/fedora/generic/powerpc/CONFIG_SND_HDA_INTEL b/configs/fedora/generic/powerpc/CONFIG_SND_HDA_INTEL
new file mode 100644
index 000000000..dfe74ea98
--- /dev/null
+++ b/configs/fedora/generic/powerpc/CONFIG_SND_HDA_INTEL
@@ -0,0 +1 @@
+CONFIG_SND_HDA_INTEL=m
diff --git a/configs/fedora/generic/powerpc/CONFIG_SND_HDA_INTEL_DETECT_DMIC b/configs/fedora/generic/powerpc/CONFIG_SND_HDA_INTEL_DETECT_DMIC
new file mode 100644
index 000000000..501f523b0
--- /dev/null
+++ b/configs/fedora/generic/powerpc/CONFIG_SND_HDA_INTEL_DETECT_DMIC
@@ -0,0 +1 @@
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
diff --git a/configs/fedora/generic/s390x/CONFIG_CRYPTO_SHA3_256_S390 b/configs/fedora/generic/s390x/CONFIG_CRYPTO_SHA3_256_S390
new file mode 100644
index 000000000..2c2725640
--- /dev/null
+++ b/configs/fedora/generic/s390x/CONFIG_CRYPTO_SHA3_256_S390
@@ -0,0 +1 @@
+CONFIG_CRYPTO_SHA3_256_S390=m
diff --git a/configs/fedora/generic/s390x/CONFIG_CRYPTO_SHA3_512_S390 b/configs/fedora/generic/s390x/CONFIG_CRYPTO_SHA3_512_S390
new file mode 100644
index 000000000..0c00ba82a
--- /dev/null
+++ b/configs/fedora/generic/s390x/CONFIG_CRYPTO_SHA3_512_S390
@@ -0,0 +1 @@
+CONFIG_CRYPTO_SHA3_512_S390=m
diff --git a/configs/fedora/generic/s390x/CONFIG_EFI_TEST b/configs/fedora/generic/s390x/CONFIG_EFI_TEST
new file mode 100644
index 000000000..455eb3061
--- /dev/null
+++ b/configs/fedora/generic/s390x/CONFIG_EFI_TEST
@@ -0,0 +1 @@
+# CONFIG_EFI_TEST is not set
diff --git a/configs/fedora/generic/s390x/CONFIG_INPUT_PWM_BEEPER b/configs/fedora/generic/s390x/CONFIG_INPUT_PWM_BEEPER
new file mode 100644
index 000000000..9ac1c7b31
--- /dev/null
+++ b/configs/fedora/generic/s390x/CONFIG_INPUT_PWM_BEEPER
@@ -0,0 +1 @@
+# CONFIG_INPUT_PWM_BEEPER is not set
diff --git a/configs/fedora/generic/s390x/CONFIG_KEXEC_SIG b/configs/fedora/generic/s390x/CONFIG_KEXEC_SIG
new file mode 100644
index 000000000..67b688658
--- /dev/null
+++ b/configs/fedora/generic/s390x/CONFIG_KEXEC_SIG
@@ -0,0 +1 @@
+CONFIG_KEXEC_SIG=y
diff --git a/configs/fedora/generic/s390x/CONFIG_KEXEC_VERIFY_SIG b/configs/fedora/generic/s390x/CONFIG_KEXEC_VERIFY_SIG
deleted file mode 100644
index 5d9b84372..000000000
--- a/configs/fedora/generic/s390x/CONFIG_KEXEC_VERIFY_SIG
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_KEXEC_VERIFY_SIG is not set
diff --git a/configs/fedora/generic/s390x/CONFIG_MARCH_Z15 b/configs/fedora/generic/s390x/CONFIG_MARCH_Z15
new file mode 100644
index 000000000..6865b8850
--- /dev/null
+++ b/configs/fedora/generic/s390x/CONFIG_MARCH_Z15
@@ -0,0 +1 @@
+# CONFIG_MARCH_Z15 is not set
diff --git a/configs/fedora/generic/s390x/CONFIG_NR_CPUS b/configs/fedora/generic/s390x/CONFIG_NR_CPUS
index fa1ab7e94..9ce2b2de6 100644
--- a/configs/fedora/generic/s390x/CONFIG_NR_CPUS
+++ b/configs/fedora/generic/s390x/CONFIG_NR_CPUS
@@ -1 +1 @@
-CONFIG_NR_CPUS=64
+CONFIG_NR_CPUS=512
diff --git a/configs/fedora/generic/s390x/CONFIG_TUNE_Z15 b/configs/fedora/generic/s390x/CONFIG_TUNE_Z15
new file mode 100644
index 000000000..edbf220a0
--- /dev/null
+++ b/configs/fedora/generic/s390x/CONFIG_TUNE_Z15
@@ -0,0 +1 @@
+# CONFIG_TUNE_Z15 is not set
diff --git a/configs/fedora/generic/x86/CONFIG_CPU_IDLE_GOV_HALTPOLL b/configs/fedora/generic/x86/CONFIG_CPU_IDLE_GOV_HALTPOLL
new file mode 100644
index 000000000..4e01ab97c
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_CPU_IDLE_GOV_HALTPOLL
@@ -0,0 +1 @@
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
diff --git a/configs/fedora/generic/x86/CONFIG_CROS_EC b/configs/fedora/generic/x86/CONFIG_CROS_EC
new file mode 100644
index 000000000..bd6dd449b
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_CROS_EC
@@ -0,0 +1 @@
+# CONFIG_CROS_EC is not set
diff --git a/configs/fedora/generic/x86/CONFIG_CROS_EC_I2C b/configs/fedora/generic/x86/CONFIG_CROS_EC_I2C
deleted file mode 100644
index 67550eb9c..000000000
--- a/configs/fedora/generic/x86/CONFIG_CROS_EC_I2C
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CROS_EC_I2C=m
diff --git a/configs/fedora/generic/x86/CONFIG_CROS_EC_PROTO b/configs/fedora/generic/x86/CONFIG_CROS_EC_PROTO
deleted file mode 100644
index 96a1e9bcb..000000000
--- a/configs/fedora/generic/x86/CONFIG_CROS_EC_PROTO
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CROS_EC_PROTO=y
diff --git a/configs/fedora/generic/x86/CONFIG_CROS_EC_SPI b/configs/fedora/generic/x86/CONFIG_CROS_EC_SPI
deleted file mode 100644
index 54b52bed4..000000000
--- a/configs/fedora/generic/x86/CONFIG_CROS_EC_SPI
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CROS_EC_SPI=m
diff --git a/configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DCN2_1 b/configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DCN2_1
new file mode 100644
index 000000000..9aa94df3c
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_DRM_AMD_DC_DCN2_1
@@ -0,0 +1 @@
+CONFIG_DRM_AMD_DC_DCN2_1=y
diff --git a/configs/fedora/generic/x86/CONFIG_EFI_RCI2_TABLE b/configs/fedora/generic/x86/CONFIG_EFI_RCI2_TABLE
new file mode 100644
index 000000000..083461929
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_EFI_RCI2_TABLE
@@ -0,0 +1 @@
+CONFIG_EFI_RCI2_TABLE=y
diff --git a/configs/fedora/generic/x86/CONFIG_HALTPOLL_CPUIDLE b/configs/fedora/generic/x86/CONFIG_HALTPOLL_CPUIDLE
new file mode 100644
index 000000000..2a48c8bdc
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_HALTPOLL_CPUIDLE
@@ -0,0 +1 @@
+CONFIG_HALTPOLL_CPUIDLE=y
diff --git a/configs/fedora/generic/CONFIG_KS0108 b/configs/fedora/generic/x86/CONFIG_KS0108
index f93df735f..f93df735f 100644
--- a/configs/fedora/generic/CONFIG_KS0108
+++ b/configs/fedora/generic/x86/CONFIG_KS0108
diff --git a/configs/fedora/generic/CONFIG_KS0108_DELAY b/configs/fedora/generic/x86/CONFIG_KS0108_DELAY
index 0d26c17ef..0d26c17ef 100644
--- a/configs/fedora/generic/CONFIG_KS0108_DELAY
+++ b/configs/fedora/generic/x86/CONFIG_KS0108_DELAY
diff --git a/configs/fedora/generic/CONFIG_KS0108_PORT b/configs/fedora/generic/x86/CONFIG_KS0108_PORT
index e56a9f921..e56a9f921 100644
--- a/configs/fedora/generic/CONFIG_KS0108_PORT
+++ b/configs/fedora/generic/x86/CONFIG_KS0108_PORT
diff --git a/configs/fedora/generic/x86/CONFIG_LOCK_DOWN_KERNEL b/configs/fedora/generic/x86/CONFIG_LOCK_DOWN_KERNEL
deleted file mode 100644
index e99bff22d..000000000
--- a/configs/fedora/generic/x86/CONFIG_LOCK_DOWN_KERNEL
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_LOCK_DOWN_KERNEL=y
diff --git a/configs/fedora/generic/x86/CONFIG_LOCK_DOWN_KERNEL_FORCE b/configs/fedora/generic/x86/CONFIG_LOCK_DOWN_KERNEL_FORCE
deleted file mode 100644
index b6a333ecd..000000000
--- a/configs/fedora/generic/x86/CONFIG_LOCK_DOWN_KERNEL_FORCE
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_LOCK_DOWN_KERNEL_FORCE is not set
diff --git a/configs/fedora/generic/x86/CONFIG_MAXSMP b/configs/fedora/generic/x86/CONFIG_MAXSMP
index d0d71de53..8d0fa581d 100644
--- a/configs/fedora/generic/x86/CONFIG_MAXSMP
+++ b/configs/fedora/generic/x86/CONFIG_MAXSMP
@@ -1 +1 @@
-# CONFIG_MAXSMP is not set
+CONFIG_MAXSMP=y
diff --git a/configs/fedora/generic/x86/CONFIG_PARAVIRT_SPINLOCKS b/configs/fedora/generic/x86/CONFIG_PARAVIRT_SPINLOCKS
index 857e9465e..14b4c8d8d 100644
--- a/configs/fedora/generic/x86/CONFIG_PARAVIRT_SPINLOCKS
+++ b/configs/fedora/generic/x86/CONFIG_PARAVIRT_SPINLOCKS
@@ -1 +1 @@
-# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_HDA_INTEL b/configs/fedora/generic/x86/CONFIG_SND_HDA_INTEL
new file mode 100644
index 000000000..dfe74ea98
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_HDA_INTEL
@@ -0,0 +1 @@
+CONFIG_SND_HDA_INTEL=m
diff --git a/configs/fedora/generic/x86/CONFIG_SND_HDA_INTEL_DETECT_DMIC b/configs/fedora/generic/x86/CONFIG_SND_HDA_INTEL_DETECT_DMIC
new file mode 100644
index 000000000..501f523b0
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_HDA_INTEL_DETECT_DMIC
@@ -0,0 +1 @@
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
new file mode 100644
index 000000000..9d675be4d
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH
new file mode 100644
index 000000000..324a48c5f
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
index e109ab25a..eb1b21982 100644
--- a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
@@ -1 +1 @@
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC~ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC~
new file mode 100644
index 000000000..4181a1dd2
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC~
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=n
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
new file mode 100644
index 000000000..c13580570
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
@@ -0,0 +1,2 @@
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH~ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH~
new file mode 100644
index 000000000..bad67ba0e
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH~
@@ -0,0 +1 @@
+# CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH is not set
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH
new file mode 100644
index 000000000..c11d5fcea
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
new file mode 100644
index 000000000..1e007232f
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT
new file mode 100644
index 000000000..fa0eee213
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT
new file mode 100644
index 000000000..893908b7d
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT
new file mode 100644
index 000000000..711e96855
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT
new file mode 100644
index 000000000..f2d98813b
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT
new file mode 100644
index 000000000..eca28b0b2
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT
new file mode 100644
index 000000000..efe93bc3e
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT
new file mode 100644
index 000000000..9b6b0ebe3
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
new file mode 100644
index 000000000..3d5403951
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
@@ -0,0 +1 @@
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1~ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1~
new file mode 100644
index 000000000..df1d44aef
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1~
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1=n
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC
new file mode 100644
index 000000000..32dfcb2bc
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC
new file mode 100644
index 000000000..432d9eb42
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_LINK b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_LINK
new file mode 100644
index 000000000..3d4aa71ce
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_LINK
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_HDA_LINK=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT
new file mode 100644
index 000000000..acd67f035
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL
index a8070bb58..93748db03 100644
--- a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL
@@ -1 +1 @@
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT
new file mode 100644
index 000000000..d25aaa73d
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT
new file mode 100644
index 000000000..aa1c7a699
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT
new file mode 100644
index 000000000..616056ec4
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_VIDEO_CROS_EC_CEC b/configs/fedora/generic/x86/CONFIG_VIDEO_CROS_EC_CEC
deleted file mode 100644
index 180ec3f10..000000000
--- a/configs/fedora/generic/x86/CONFIG_VIDEO_CROS_EC_CEC
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_VIDEO_CROS_EC_CEC=m
diff --git a/configs/fedora/generic/x86/i686/CONFIG_CRYPTO_AES_586 b/configs/fedora/generic/x86/i686/CONFIG_CRYPTO_AES_586
deleted file mode 100644
index 4702bf09c..000000000
--- a/configs/fedora/generic/x86/i686/CONFIG_CRYPTO_AES_586
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_AES_586=y
diff --git a/configs/fedora/generic/x86/i686/CONFIG_INPUT_PWM_BEEPER b/configs/fedora/generic/x86/i686/CONFIG_INPUT_PWM_BEEPER
deleted file mode 100644
index 59fdb225d..000000000
--- a/configs/fedora/generic/x86/i686/CONFIG_INPUT_PWM_BEEPER
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_INPUT_PWM_BEEPER=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_CROS_EC_CHARDEV b/configs/fedora/generic/x86/x86_64/CONFIG_CROS_EC_CHARDEV
new file mode 100644
index 000000000..a3df83240
--- /dev/null
+++ b/configs/fedora/generic/x86/x86_64/CONFIG_CROS_EC_CHARDEV
@@ -0,0 +1 @@
+CONFIG_CROS_EC_CHARDEV=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2 b/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2
deleted file mode 100644
index 21a9942c6..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AEGIS256_AESNI_SSE2 b/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AEGIS256_AESNI_SSE2
deleted file mode 100644
index 847524120..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AEGIS256_AESNI_SSE2
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_AEGIS256_AESNI_SSE2=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AES_X86_64 b/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AES_X86_64
deleted file mode 100644
index 7c09d010b..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_AES_X86_64
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_AES_X86_64=y
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS1280_AVX2 b/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS1280_AVX2
deleted file mode 100644
index 8ae1a8885..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS1280_AVX2
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_MORUS1280_AVX2=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS1280_SSE2 b/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS1280_SSE2
deleted file mode 100644
index 786389934..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS1280_SSE2
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_MORUS1280_SSE2=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS640_SSE2 b/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS640_SSE2
deleted file mode 100644
index 07d98b3fd..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_CRYPTO_MORUS640_SSE2
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_CRYPTO_MORUS640_SSE2=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC b/configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC
deleted file mode 100644
index 3600231f6..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MFD_CROS_EC=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC_CHARDEV b/configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC_CHARDEV
deleted file mode 100644
index fc68f1d89..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC_CHARDEV
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MFD_CROS_EC_CHARDEV=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC_DEV b/configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC_DEV
new file mode 100644
index 000000000..a4fd1512e
--- /dev/null
+++ b/configs/fedora/generic/x86/x86_64/CONFIG_MFD_CROS_EC_DEV
@@ -0,0 +1 @@
+CONFIG_MFD_CROS_EC_DEV=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_NR_CPUS b/configs/fedora/generic/x86/x86_64/CONFIG_NR_CPUS
index 27d187f4d..441191641 100644
--- a/configs/fedora/generic/x86/x86_64/CONFIG_NR_CPUS
+++ b/configs/fedora/generic/x86/x86_64/CONFIG_NR_CPUS
@@ -1 +1 @@
-CONFIG_NR_CPUS=1024
+CONFIG_NR_CPUS=8192
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_OPTIMIZE_INLINING b/configs/fedora/generic/x86/x86_64/CONFIG_OPTIMIZE_INLINING
deleted file mode 100644
index 6991e6d3f..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_OPTIMIZE_INLINING
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_OPTIMIZE_INLINING=y
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_SGI_IOC4 b/configs/fedora/generic/x86/x86_64/CONFIG_SGI_IOC4
deleted file mode 100644
index 89b268e91..000000000
--- a/configs/fedora/generic/x86/x86_64/CONFIG_SGI_IOC4
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_SGI_IOC4=m
diff --git a/configs/fedora/generic/x86/x86_64/CONFIG_X86_5LEVEL b/configs/fedora/generic/x86/x86_64/CONFIG_X86_5LEVEL
index db301f396..ee4d305c7 100644
--- a/configs/fedora/generic/x86/x86_64/CONFIG_X86_5LEVEL
+++ b/configs/fedora/generic/x86/x86_64/CONFIG_X86_5LEVEL
@@ -1 +1 @@
-# CONFIG_X86_5LEVEL is not set
+CONFIG_X86_5LEVEL=y
diff --git a/configs/flavors b/configs/flavors
new file mode 100644
index 000000000..35a143bac
--- /dev/null
+++ b/configs/flavors
@@ -0,0 +1 @@
+fedora
diff --git a/configs/config_generation b/configs/priority.fedora
index b3385fd1c..b3385fd1c 100644
--- a/configs/config_generation
+++ b/configs/priority.fedora
diff --git a/configs/process_configs.sh b/configs/process_configs.sh
index 846fe2e70..b464d95ce 100755
--- a/configs/process_configs.sh
+++ b/configs/process_configs.sh
@@ -2,7 +2,20 @@
#
# This script takes the merged config files and processes them through oldconfig
# and listnewconfig
+#
+usage()
+{
+ # alphabetical order please
+ echo "process_configs.sh [ options ] package_name kernel_version"
+ echo " -a: report all errors, equivalent to [-c -n -w -i]"
+ echo " -c: error on mismatched config options"
+ echo " -i: continue on error"
+ echo " -n: error on unset config options"
+ echo " -t: test run, do not overwrite original config"
+ echo " -w: error on misconfigured config options"
+ exit 1
+}
die()
{
@@ -14,16 +27,16 @@ die()
switch_to_toplevel()
{
path="$(pwd)"
- while test "$path" != "/"
+ while test -n "$path"
do
test -e $path/MAINTAINERS && \
- test -d $path/drivers && \
- break
+ test -d $path/drivers && \
+ break
path="$(dirname $path)"
done
- test "$path" != "/" || die "Can't find toplevel"
+ test -n "$path" || die "Can't find toplevel"
echo "$path"
}
@@ -48,7 +61,7 @@ checkoptions()
configs[a[1]]=a[2];
} else {
if (configs[a[1]] != "" && configs[a[1]] != a[2])
- print "Found "a[1]"="configs[a[1]]" after generation, had " a[1]"="a[2]" in Source tree";
+ print "Found "a[1]"="a[2]" after generation, had " a[1]"="configs[a[1]]" in Source tree";
}
}
' $1 $2 > .mismatches
@@ -57,14 +70,15 @@ checkoptions()
then
echo "Error: Mismatches found in configuration files"
cat .mismatches
- exit 1
+ RETURNCODE=1
+ [ "$CONTINUEONERROR" ] || exit 1
fi
}
function process_configs()
{
# assume we are in $source_tree/configs, need to get to top level
- pushd $(switch_to_toplevel)
+ pushd $(switch_to_toplevel) &>/dev/null
for cfg in $SCRIPT_DIR/${PACKAGE_NAME}${KVERREL}${SUBARCH}*.config
do
@@ -73,49 +87,97 @@ function process_configs()
cfgorig="${cfg}.orig"
cat $cfg > $cfgorig
+ if [ "$arch" = "EMPTY" ]
+ then
+ # This arch is intentionally left blank
+ continue
+ fi
echo -n "Processing $cfg ... "
- # an empty grep is good but leaves a return value, so use # 'true' to bypass
- make ARCH=$arch KCONFIG_CONFIG=$cfg listnewconfig | grep -E 'CONFIG_' > .newoptions || true
+ make ARCH=$arch KCONFIG_CONFIG=$cfgorig listnewconfig >& .listnewconfig
+ grep -E 'CONFIG_' .listnewconfig > .newoptions
if test -n "$NEWOPTIONS" && test -s .newoptions
then
echo "Found unset config items, please set them to an appropriate value"
cat .newoptions
rm .newoptions
- exit 1
+ RETURNCODE=1
+ [ "$CONTINUEONERROR" ] || exit 1
fi
rm .newoptions
- make ARCH=$arch KCONFIG_CONFIG=$cfg olddefconfig > /dev/null || exit 1
+ grep -E 'config.*warning' .listnewconfig > .warnings
+ if test -n "$CHECKWARNINGS" && test -s .warnings
+ then
+ echo "Found misconfigured config items, please set them to an appropriate value"
+ cat .warnings
+ rm .warnings
+ RETURNCODE=1
+ [ "$CONTINUEONERROR" ] || exit 1
+ fi
+ rm .warnings
+
+ rm .listnewconfig
+
+ make ARCH=$arch KCONFIG_CONFIG=$cfgorig olddefconfig > /dev/null || exit 1
echo "# $arch" > ${cfgtmp}
- cat "${cfg}" >> ${cfgtmp}
+ cat "${cfgorig}" >> ${cfgtmp}
if test -n "$CHECKOPTIONS"
then
- checkoptions $cfgtmp $cfgorig
+ checkoptions $cfg $cfgtmp
+ fi
+ # if test run, don't overwrite original
+ if test -n "$TESTRUN"
+ then
+ rm ${cfgtmp}
+ else
+ mv ${cfgtmp} ${cfg}
fi
- mv ${cfgtmp} ${cfg}
rm ${cfgorig}
echo "done"
done
- rm "$SCRIPT_DIR"/*.config.old
+ rm "$SCRIPT_DIR"/*.config*.old
popd > /dev/null
echo "Processed config files are in $SCRIPT_DIR"
}
-NEWOPTIONS=""
CHECKOPTIONS=""
+CONTINUEONERROR=""
+NEWOPTIONS=""
+TESTRUN=""
+CHECKWARNINGS=""
+
+RETURNCODE=0
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
- -n)
+ -a)
+ CHECKOPTIONS="x"
+ CONTINUEONERROR="x"
NEWOPTIONS="x"
+ CHECKWARNINGS="x"
;;
-c)
CHECKOPTIONS="x"
;;
+ -h)
+ usage
+ ;;
+ -i)
+ CONTINUEONERROR="x"
+ ;;
+ -n)
+ NEWOPTIONS="x"
+ ;;
+ -t)
+ TESTRUN="x"
+ ;;
+ -w)
+ CHECKWARNINGS="x"
+ ;;
*)
break;;
esac
@@ -133,3 +195,4 @@ SCRIPT_DIR="$(dirname $SCRIPT)"
cd $SCRIPT_DIR
process_configs
+exit $RETURNCODE
diff --git a/cpupower.config b/cpupower.config
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/cpupower.config
diff --git a/cpupower.service b/cpupower.service
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/cpupower.service
diff --git a/crash-driver.patch b/crash-driver.patch
deleted file mode 100644
index 164dc90f5..000000000
--- a/crash-driver.patch
+++ /dev/null
@@ -1,722 +0,0 @@
-From 973e23bf27b0b2e5021321357fc570cccea3104c Mon Sep 17 00:00:00 2001
-From: Dave Anderson <anderson@redhat.com>
-Date: Tue, 26 Nov 2013 12:42:46 -0500
-Subject: [PATCH] crash-driver
-
-Bugzilla: N/A
-Upstream-status: Fedora mustard
----
- arch/arm/include/asm/crash-driver.h | 6 ++
- arch/arm64/include/asm/crash-driver.h | 6 ++
- arch/ia64/include/asm/crash-driver.h | 90 ++++++++++++++++++++++
- arch/ia64/kernel/ia64_ksyms.c | 3 +
- arch/powerpc/include/asm/crash-driver.h | 6 ++
- arch/s390/include/asm/crash-driver.h | 60 +++++++++++++++
- arch/s390/mm/maccess.c | 2 +
- arch/x86/include/asm/crash-driver.h | 6 ++
- drivers/char/Kconfig | 3 +
- drivers/char/Makefile | 2 +
- drivers/char/crash.c | 128 ++++++++++++++++++++++++++++++++
- include/asm-generic/crash-driver.h | 72 ++++++++++++++++++
- 12 files changed, 384 insertions(+)
- create mode 100644 arch/arm/include/asm/crash-driver.h
- create mode 100644 arch/arm64/include/asm/crash-driver.h
- create mode 100644 arch/ia64/include/asm/crash-driver.h
- create mode 100644 arch/powerpc/include/asm/crash-driver.h
- create mode 100644 arch/s390/include/asm/crash-driver.h
- create mode 100644 arch/x86/include/asm/crash-driver.h
- create mode 100644 drivers/char/crash.c
- create mode 100644 include/asm-generic/crash-driver.h
-
-diff --git a/arch/arm/include/asm/crash-driver.h b/arch/arm/include/asm/crash-driver.h
-new file mode 100644
-index 0000000..06e7ae9
---- /dev/null
-+++ b/arch/arm/include/asm/crash-driver.h
-@@ -0,0 +1,6 @@
-+#ifndef _ARM_CRASH_H
-+#define _ARM_CRASH_H
-+
-+#include <asm-generic/crash-driver.h>
-+
-+#endif /* _ARM_CRASH_H */
-diff --git a/arch/arm64/include/asm/crash-driver.h b/arch/arm64/include/asm/crash-driver.h
-new file mode 100644
-index 0000000..43b26da
---- /dev/null
-+++ b/arch/arm64/include/asm/crash-driver.h
-@@ -0,0 +1,6 @@
-+#ifndef _ARM64_CRASH_H
-+#define _ARM64_CRASH_H
-+
-+#include <asm-generic/crash-driver.h>
-+
-+#endif /* _ARM64_CRASH_H */
-diff --git a/arch/ia64/include/asm/crash-driver.h b/arch/ia64/include/asm/crash-driver.h
-new file mode 100644
-index 0000000..404bcb9
---- /dev/null
-+++ b/arch/ia64/include/asm/crash-driver.h
-@@ -0,0 +1,90 @@
-+#ifndef _ASM_IA64_CRASH_H
-+#define _ASM_IA64_CRASH_H
-+
-+/*
-+ * linux/include/asm-ia64/crash-driver.h
-+ *
-+ * Copyright (c) 2004 Red Hat, Inc. All rights reserved.
-+ *
-+ * 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, or (at your option)
-+ * any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/efi.h>
-+#include <linux/mm.h>
-+#include <asm/mmzone.h>
-+
-+static inline void *
-+map_virtual(u64 offset, struct page **pp)
-+{
-+ struct page *page;
-+ unsigned long pfn;
-+ u32 type;
-+
-+ if (REGION_NUMBER(offset) == 5) {
-+ char byte;
-+
-+ if (__get_user(byte, (char *)offset) == 0)
-+ return (void *)offset;
-+ else
-+ return NULL;
-+ }
-+
-+ switch (type = efi_mem_type(offset))
-+ {
-+ case EFI_LOADER_CODE:
-+ case EFI_LOADER_DATA:
-+ case EFI_BOOT_SERVICES_CODE:
-+ case EFI_BOOT_SERVICES_DATA:
-+ case EFI_CONVENTIONAL_MEMORY:
-+ break;
-+
-+ default:
-+ printk(KERN_INFO
-+ "crash memory driver: invalid memory type for %lx: %d\n",
-+ offset, type);
-+ return NULL;
-+ }
-+
-+ pfn = offset >> PAGE_SHIFT;
-+
-+ if (!pfn_valid(pfn)) {
-+ printk(KERN_INFO
-+ "crash memory driver: invalid pfn: %lx )\n", pfn);
-+ return NULL;
-+ }
-+
-+ page = pfn_to_page(pfn);
-+
-+ if (!page->virtual) {
-+ printk(KERN_INFO
-+ "crash memory driver: offset: %lx page: %lx page->virtual: NULL\n",
-+ offset, (unsigned long)page);
-+ return NULL;
-+ }
-+
-+ return (page->virtual + (offset & (PAGE_SIZE-1)));
-+}
-+
-+static inline void unmap_virtual(struct page *page)
-+{
-+ return;
-+}
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _ASM_IA64_CRASH_H */
-diff --git a/arch/ia64/kernel/ia64_ksyms.c b/arch/ia64/kernel/ia64_ksyms.c
-index d111248..b14b4c6 100644
---- a/arch/ia64/kernel/ia64_ksyms.c
-+++ b/arch/ia64/kernel/ia64_ksyms.c
-@@ -9,3 +9,6 @@
- EXPORT_SYMBOL(min_low_pfn); /* defined by bootmem.c, but not exported by generic code */
- EXPORT_SYMBOL(max_low_pfn); /* defined by bootmem.c, but not exported by generic code */
- #endif
-+
-+#include <linux/efi.h>
-+EXPORT_SYMBOL_GPL(efi_mem_type);
-diff --git a/arch/powerpc/include/asm/crash-driver.h b/arch/powerpc/include/asm/crash-driver.h
-new file mode 100644
-index 0000000..50092d9
---- /dev/null
-+++ b/arch/powerpc/include/asm/crash-driver.h
-@@ -0,0 +1,6 @@
-+#ifndef _PPC64_CRASH_H
-+#define _PPC64_CRASH_H
-+
-+#include <asm-generic/crash-driver.h>
-+
-+#endif /* _PPC64_CRASH_H */
-diff --git a/arch/s390/include/asm/crash-driver.h b/arch/s390/include/asm/crash-driver.h
-new file mode 100644
-index 0000000..552be5e
---- /dev/null
-+++ b/arch/s390/include/asm/crash-driver.h
-@@ -0,0 +1,60 @@
-+#ifndef _S390_CRASH_H
-+#define _S390_CRASH_H
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/mm.h>
-+#include <linux/highmem.h>
-+
-+/*
-+ * For swapped prefix pages get bounce buffer using xlate_dev_mem_ptr()
-+ */
-+static inline void *map_virtual(u64 offset, struct page **pp)
-+{
-+ struct page *page;
-+ unsigned long pfn;
-+ void *vaddr;
-+
-+ vaddr = xlate_dev_mem_ptr(offset);
-+ pfn = ((unsigned long) vaddr) >> PAGE_SHIFT;
-+ if ((unsigned long) vaddr != offset)
-+ page = pfn_to_page(pfn);
-+ else
-+ page = NULL;
-+
-+ if (!page_is_ram(pfn)) {
-+ printk(KERN_INFO
-+ "crash memory driver: !page_is_ram(pfn: %lx)\n", pfn);
-+ return NULL;
-+ }
-+
-+ if (!pfn_valid(pfn)) {
-+ printk(KERN_INFO
-+ "crash memory driver: invalid pfn: %lx )\n", pfn);
-+ return NULL;
-+ }
-+
-+ *pp = page;
-+ return vaddr;
-+}
-+
-+/*
-+ * Free bounce buffer if necessary
-+ */
-+static inline void unmap_virtual(struct page *page)
-+{
-+ void *vaddr;
-+
-+ if (page) {
-+ /*
-+ * Because for bounce buffers vaddr will never be 0
-+ * unxlate_dev_mem_ptr() will always free the bounce buffer.
-+ */
-+ vaddr = (void *)(page_to_pfn(page) << PAGE_SHIFT);
-+ unxlate_dev_mem_ptr(0, vaddr);
-+ }
-+}
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* _S390_CRASH_H */
-diff --git a/arch/s390/mm/maccess.c b/arch/s390/mm/maccess.c
-index 792f9c6..3197995 100644
---- a/arch/s390/mm/maccess.c
-+++ b/arch/s390/mm/maccess.c
-@@ -201,6 +201,7 @@ void *xlate_dev_mem_ptr(phys_addr_t addr)
- put_online_cpus();
- return bounce;
- }
-+EXPORT_SYMBOL_GPL(xlate_dev_mem_ptr);
-
- /*
- * Free converted buffer for /dev/mem access (if necessary)
-@@ -210,3 +211,4 @@ void unxlate_dev_mem_ptr(phys_addr_t addr, void *buf)
- if ((void *) addr != buf)
- free_page((unsigned long) buf);
- }
-+EXPORT_SYMBOL_GPL(unxlate_dev_mem_ptr);
-diff --git a/arch/x86/include/asm/crash-driver.h b/arch/x86/include/asm/crash-driver.h
-new file mode 100644
-index 0000000..fd4736e
---- /dev/null
-+++ b/arch/x86/include/asm/crash-driver.h
-@@ -0,0 +1,6 @@
-+#ifndef _X86_CRASH_H
-+#define _X86_CRASH_H
-+
-+#include <asm-generic/crash-driver.h>
-+
-+#endif /* _X86_CRASH_H */
-diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
-index dcc0973..99b99d5 100644
---- a/drivers/char/Kconfig
-+++ b/drivers/char/Kconfig
-@@ -4,6 +4,9 @@
-
- menu "Character devices"
-
-+config CRASH
-+ tristate "Crash Utility memory driver"
-+
- source "drivers/tty/Kconfig"
-
- config DEVMEM
-diff --git a/drivers/char/Makefile b/drivers/char/Makefile
-index 6e6c244..29cc9c8 100644
---- a/drivers/char/Makefile
-+++ b/drivers/char/Makefile
-@@ -58,3 +58,5 @@ js-rtc-y = rtc.o
- obj-$(CONFIG_XILLYBUS) += xillybus/
- obj-$(CONFIG_POWERNV_OP_PANEL) += powernv-op-panel.o
- obj-$(CONFIG_ADI) += adi.o
-+
-+obj-$(CONFIG_CRASH) += crash.o
-diff --git a/drivers/char/crash.c b/drivers/char/crash.c
-new file mode 100644
-index 0000000..085378a
---- /dev/null
-+++ b/drivers/char/crash.c
-@@ -0,0 +1,128 @@
-+/*
-+ * linux/drivers/char/crash.c
-+ *
-+ * Copyright (C) 2004 Dave Anderson <anderson@redhat.com>
-+ * Copyright (C) 2004 Red Hat, Inc.
-+ */
-+
-+/******************************************************************************
-+ *
-+ * 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, or (at your option)
-+ * any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ *****************************************************************************/
-+
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/miscdevice.h>
-+#include <linux/init.h>
-+#include <asm/io.h>
-+#include <linux/uaccess.h>
-+#include <asm/types.h>
-+#include <asm/crash-driver.h>
-+
-+#define CRASH_VERSION "1.0"
-+
-+/*
-+ * These are the file operation functions that allow crash utility
-+ * access to physical memory.
-+ */
-+
-+static loff_t
-+crash_llseek(struct file * file, loff_t offset, int orig)
-+{
-+ switch (orig) {
-+ case 0:
-+ file->f_pos = offset;
-+ return file->f_pos;
-+ case 1:
-+ file->f_pos += offset;
-+ return file->f_pos;
-+ default:
-+ return -EINVAL;
-+ }
-+}
-+
-+/*
-+ * Determine the page address for an address offset value,
-+ * get a virtual address for it, and copy it out.
-+ * Accesses must fit within a page.
-+ */
-+static ssize_t
-+crash_read(struct file *file, char *buf, size_t count, loff_t *poff)
-+{
-+ void *vaddr;
-+ struct page *page;
-+ u64 offset;
-+ ssize_t read;
-+
-+ offset = *poff;
-+ if (offset >> PAGE_SHIFT != (offset+count-1) >> PAGE_SHIFT)
-+ return -EINVAL;
-+
-+ vaddr = map_virtual(offset, &page);
-+ if (!vaddr)
-+ return -EFAULT;
-+
-+ if (copy_to_user(buf, vaddr, count)) {
-+ unmap_virtual(page);
-+ return -EFAULT;
-+ }
-+ unmap_virtual(page);
-+
-+ read = count;
-+ *poff += read;
-+ return read;
-+}
-+
-+static struct file_operations crash_fops = {
-+ .owner = THIS_MODULE,
-+ .llseek = crash_llseek,
-+ .read = crash_read,
-+};
-+
-+static struct miscdevice crash_dev = {
-+ MISC_DYNAMIC_MINOR,
-+ "crash",
-+ &crash_fops
-+};
-+
-+static int __init
-+crash_init(void)
-+{
-+ int ret;
-+
-+ ret = misc_register(&crash_dev);
-+ if (ret) {
-+ printk(KERN_ERR
-+ "crash memory driver: cannot misc_register (MISC_DYNAMIC_MINOR)\n");
-+ goto out;
-+ }
-+
-+ ret = 0;
-+ printk(KERN_INFO "crash memory driver: version %s\n", CRASH_VERSION);
-+out:
-+ return ret;
-+}
-+
-+static void __exit
-+crash_cleanup_module(void)
-+{
-+ misc_deregister(&crash_dev);
-+}
-+
-+module_init(crash_init);
-+module_exit(crash_cleanup_module);
-+
-+MODULE_LICENSE("GPL");
-diff --git a/include/asm-generic/crash-driver.h b/include/asm-generic/crash-driver.h
-new file mode 100644
-index 0000000..25ab986
---- /dev/null
-+++ b/include/asm-generic/crash-driver.h
-@@ -0,0 +1,72 @@
-+#ifndef __CRASH_H__
-+#define __CRASH_H__
-+
-+/*
-+ * include/linux/crash-driver.h
-+ *
-+ * Copyright (c) 2013 Red Hat, Inc. All rights reserved.
-+ *
-+ * 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, or (at your option)
-+ * any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+
-+#ifdef __KERNEL__
-+
-+#include <linux/mm.h>
-+#include <linux/highmem.h>
-+
-+static inline void *
-+map_virtual(u64 offset, struct page **pp)
-+{
-+ struct page *page;
-+ unsigned long pfn;
-+ void *vaddr;
-+
-+ pfn = (unsigned long)(offset >> PAGE_SHIFT);
-+
-+ if (!page_is_ram(pfn)) {
-+ printk(KERN_INFO
-+ "crash memory driver: !page_is_ram(pfn: %lx)\n", pfn);
-+ return NULL;
-+ }
-+
-+ if (!pfn_valid(pfn)) {
-+ printk(KERN_INFO
-+ "crash memory driver: invalid pfn: %lx )\n", pfn);
-+ return NULL;
-+ }
-+
-+ page = pfn_to_page(pfn);
-+
-+ vaddr = kmap(page);
-+ if (!vaddr) {
-+ printk(KERN_INFO
-+ "crash memory driver: pfn: %lx kmap(page: %lx) failed\n",
-+ pfn, (unsigned long)page);
-+ return NULL;
-+ }
-+
-+ *pp = page;
-+ return (vaddr + (offset & (PAGE_SIZE-1)));
-+}
-+
-+static inline void unmap_virtual(struct page *page)
-+{
-+ kunmap(page);
-+}
-+
-+#endif /* __KERNEL__ */
-+
-+#endif /* __CRASH_H__ */
---
-2.7.4
-
-From 23d8bd48303acda2d3a95a3e1a662784a4fa9fcd Mon Sep 17 00:00:00 2001
-From: Fedora Kernel Team <kernel-team@fedoraproject.org>
-Date: Tue, 20 Sep 2016 19:39:46 +0200
-Subject: [PATCH] Update of crash driver to handle CONFIG_HARDENED_USERCOPY and
- to restrict the supported architectures.
-
----
- drivers/char/Kconfig | 1 +
- drivers/char/crash.c | 33 ++++++++++++++++++++++++++++++---
- 2 files changed, 31 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
-index 99b99d5..be6a3ae 100644
---- a/drivers/char/Kconfig
-+++ b/drivers/char/Kconfig
-@@ -6,6 +6,7 @@ menu "Character devices"
-
- config CRASH
- tristate "Crash Utility memory driver"
-+ depends on X86_32 || X86_64 || ARM || ARM64 || PPC64 || S390
-
- source "drivers/tty/Kconfig"
-
-diff --git a/drivers/char/crash.c b/drivers/char/crash.c
-index 085378a..0258bf8 100644
---- a/drivers/char/crash.c
-+++ b/drivers/char/crash.c
-@@ -32,7 +32,7 @@
- #include <asm/types.h>
- #include <asm/crash-driver.h>
-
--#define CRASH_VERSION "1.0"
-+#define CRASH_VERSION "1.2"
-
- /*
- * These are the file operation functions that allow crash utility
-@@ -66,6 +66,7 @@ crash_read(struct file *file, char *buf, size_t count, loff_t *poff)
- struct page *page;
- u64 offset;
- ssize_t read;
-+ char *buffer = file->private_data;
-
- offset = *poff;
- if (offset >> PAGE_SHIFT != (offset+count-1) >> PAGE_SHIFT)
-@@ -74,8 +75,12 @@ crash_read(struct file *file, char *buf, size_t count, loff_t *poff)
- vaddr = map_virtual(offset, &page);
- if (!vaddr)
- return -EFAULT;
--
-- if (copy_to_user(buf, vaddr, count)) {
-+ /*
-+ * Use bounce buffer to bypass the CONFIG_HARDENED_USERCOPY
-+ * kernel text restriction.
-+ */
-+ memcpy(buffer, (char *)vaddr, count);
-+ if (copy_to_user(buf, buffer, count)) {
- unmap_virtual(page);
- return -EFAULT;
- }
-@@ -86,10 +91,32 @@ crash_read(struct file *file, char *buf, size_t count, loff_t *poff)
- return read;
- }
-
-+static int
-+crash_open(struct inode * inode, struct file * filp)
-+{
-+ if (!capable(CAP_SYS_RAWIO))
-+ return -EPERM;
-+
-+ filp->private_data = (void *)__get_free_page(GFP_KERNEL);
-+ if (!filp->private_data)
-+ return -ENOMEM;
-+
-+ return 0;
-+}
-+
-+static int
-+crash_release(struct inode *inode, struct file *filp)
-+{
-+ free_pages((unsigned long)filp->private_data, 0);
-+ return 0;
-+}
-+
- static struct file_operations crash_fops = {
- .owner = THIS_MODULE,
- .llseek = crash_llseek,
- .read = crash_read,
-+ .open = crash_open,
-+ .release = crash_release,
- };
-
- static struct miscdevice crash_dev = {
---
-2.7.4
-
-From: Dave Anderson <anderson@redhat.com>
-Date: Fri, 18 Nov 2016 11:52:35 -0500
-Cc: onestero@redhat.com
-Subject: [PATCH v2] Restore live system crash analysis for ARM64
-
-This v2 version simplifies the copy out of the kimage_voffset value
-to user-space per Oleg's suggestion.
-
-Upstream status: N/A
-
-Test: v2 version tested successfully with a modified crash utility
-
-The following Linux 4.6 commit breaks support for live system
-crash analysis on ARM64:
-
- commit a7f8de168ace487fa7b88cb154e413cf40e87fc6
- Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
- arm64: allow kernel Image to be loaded anywhere in physical memory
-
-The patchset drastically modified the kernel's virtual memory layout,
-where notably the static kernel text and data image was moved from the
-unity mapped region into the vmalloc region. Prior to Linux 4.6,
-the kernel's __virt_to_phys() function was this:
-
- #define __virt_to_phys(x) (((phys_addr_t)(x) - PAGE_OFFSET + PHYS_OFFSET))
-
-When running on a live system, the crash utility could determine PAGE_OFFSET
-by looking at the virtual addresses compiled into the vmlinux file, and
-PHYS_OFFSET can be determined by looking at /proc/iomem.
-
-As of Linux 4.6, it is done differently:
-
- #define __virt_to_phys(x) ({ \
- phys_addr_t __x = (phys_addr_t)(x); \
- __x & BIT(VA_BITS - 1) ? (__x & ~PAGE_OFFSET) + PHYS_OFFSET : \
- (__x - kimage_voffset); })
-
-The PAGE_OFFSET/PHYS_OFFSET section of the conditional expression is for
-traditional unity-mapped virtual addresses, but kernel text and static
-data requires the new "kimage_voffset" variable. Unfortunately, the
-contents of the new "kimage_voffset" variable is not available or
-calculatable from a user-space perspective, even with root privileges.
-
-At least the ARM64 developers made its contents available to modules
-with an EXPORT_SYMBOL(kimage_voffset) declaration. Accordingly, with
-a modification to the /dev/crash driver to return its contents, the
-crash utility can run on a live system.
-
-The patch allows for architecture-specific DEV_CRASH_ARCH_DATA ioctls
-to be created, where this is the first instance of one.
-
-
----
- arch/arm64/include/asm/crash-driver.h | 16 ++++++++++++++++
- drivers/char/crash.c | 13 ++++++++++++-
- 2 files changed, 28 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm64/include/asm/crash-driver.h b/arch/arm64/include/asm/crash-driver.h
-index 43b26da..fe68e7c 100644
---- a/arch/arm64/include/asm/crash-driver.h
-+++ b/arch/arm64/include/asm/crash-driver.h
-@@ -3,4 +3,20 @@
-
- #include <asm-generic/crash-driver.h>
-
-+#define DEV_CRASH_ARCH_DATA _IOR('c', 1, long)
-+
-+static long
-+crash_arch_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-+{
-+ extern u64 kimage_voffset;
-+
-+ switch (cmd)
-+ {
-+ case DEV_CRASH_ARCH_DATA:
-+ return put_user(kimage_voffset, (unsigned long __user *)arg);
-+ default:
-+ return -EINVAL;
-+ }
-+}
-+
- #endif /* _ARM64_CRASH_H */
-diff --git a/drivers/char/crash.c b/drivers/char/crash.c
-index 0258bf8..dfb767c 100644
---- a/drivers/char/crash.c
-+++ b/drivers/char/crash.c
-@@ -32,7 +32,7 @@
- #include <asm/types.h>
- #include <asm/crash-driver.h>
-
--#define CRASH_VERSION "1.2"
-+#define CRASH_VERSION "1.3"
-
- /*
- * These are the file operation functions that allow crash utility
-@@ -111,10 +111,21 @@ crash_release(struct inode *inode, struct file *filp)
- return 0;
- }
-
-+static long
-+crash_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-+{
-+#ifdef DEV_CRASH_ARCH_DATA
-+ return crash_arch_ioctl(file, cmd, arg);
-+#else
-+ return -EINVAL;
-+#endif
-+}
-+
- static struct file_operations crash_fops = {
- .owner = THIS_MODULE,
- .llseek = crash_llseek,
- .read = crash_read,
-+ .unlocked_ioctl = crash_ioctl,
- .open = crash_open,
- .release = crash_release,
- };
---
-1.8.3.1
-
diff --git a/die-floppy-die.patch b/die-floppy-die.patch
deleted file mode 100644
index caaa2dde5..000000000
--- a/die-floppy-die.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Kyle McMartin <kyle@phobos.i.jkkm.org>
-Date: Tue, 30 Mar 2010 00:04:29 -0400
-Subject: [PATCH] die-floppy-die
-
-Kill the floppy.ko pnp modalias. We were surviving just fine without
-autoloading floppy drivers, tyvm.
-
-Please feel free to register all complaints in the wastepaper bin.
-
-Bugzilla: N/A
-Upstream-status: Fedora mustard
----
- drivers/block/floppy.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
-index a08cda955285..e320e1e679cf 100644
---- a/drivers/block/floppy.c
-+++ b/drivers/block/floppy.c
-@@ -4633,8 +4633,7 @@ static const struct pnp_device_id floppy_pnpids[] = {
- {"PNP0700", 0},
- {}
- };
--
--MODULE_DEVICE_TABLE(pnp, floppy_pnpids);
-+/* MODULE_DEVICE_TABLE(pnp, floppy_pnpids); */
-
- #else
-
diff --git a/drm-i915-hush-check-crtc-state.patch b/drm-i915-hush-check-crtc-state.patch
deleted file mode 100644
index 6e2481838..000000000
--- a/drm-i915-hush-check-crtc-state.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8f8f3ee1e3ae35df618761475293dc5d8285b6e0 Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Mon, 10 Jul 2017 08:11:48 -0700
-Subject: [PATCH] drm/i915: hush check crtc state
-
-This is _by far_ the most common backtrace for i915 on retrace.fp.o, and
-it's mostly useless noise. There's not enough context when it's generated
-to know if something actually went wrong. Downgrade the message to
-KMS debugging so we can still get it if we want it.
-
-Bugzilla: 1027037 1028785
-Upstream-status: http://lists.freedesktop.org/archives/intel-gfx/2013-November/035948.html
----
- drivers/gpu/drm/i915/display/intel_display.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
-index 8592a7d422de..e915cf6b0ba6 100644
---- a/drivers/gpu/drm/i915/display/intel_display.c
-+++ b/drivers/gpu/drm/i915/display/intel_display.c
-@@ -12982,7 +12982,7 @@ verify_crtc_state(struct drm_crtc *crtc,
-
- sw_config = to_intel_crtc_state(new_crtc_state);
- if (!intel_pipe_config_compare(sw_config, pipe_config, false)) {
-- I915_STATE_WARN(1, "pipe state doesn't match!\n");
-+ DRM_DEBUG_KMS(1, "pipe state doesn't match!\n");
- intel_dump_pipe_config(pipe_config, NULL, "[hw state]");
- intel_dump_pipe_config(sw_config, NULL, "[sw state]");
- }
---
-2.21.0
-
diff --git a/dwc3-fix.patch b/dwc3-fix.patch
deleted file mode 100644
index d741b9e2e..000000000
--- a/dwc3-fix.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 4749e0e61241cc121de572520a39dab365b9ea1d Mon Sep 17 00:00:00 2001
-From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
-Date: Thu, 8 Aug 2019 16:39:42 -0700
-Subject: usb: dwc3: Update soft-reset wait polling rate
-
-Starting from DWC_usb31 version 1.90a and later, the DCTL.CSFRST bit
-will not be cleared until after all the internal clocks are synchronized
-during soft-reset. This may take a little more than 50ms. Set the
-polling rate at 20ms instead.
-
-Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
-Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
----
- drivers/usb/dwc3/core.c | 23 ++++++++++++++++++-----
- drivers/usb/dwc3/core.h | 2 ++
- 2 files changed, 20 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
-index 98bce85c29d0..252c397860ef 100644
---- a/drivers/usb/dwc3/core.c
-+++ b/drivers/usb/dwc3/core.c
-@@ -252,12 +252,25 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc)
- reg |= DWC3_DCTL_CSFTRST;
- dwc3_writel(dwc->regs, DWC3_DCTL, reg);
-
-+ /*
-+ * For DWC_usb31 controller 1.90a and later, the DCTL.CSFRST bit
-+ * is cleared only after all the clocks are synchronized. This can
-+ * take a little more than 50ms. Set the polling rate at 20ms
-+ * for 10 times instead.
-+ */
-+ if (dwc3_is_usb31(dwc) && dwc->revision >= DWC3_USB31_REVISION_190A)
-+ retries = 10;
-+
- do {
- reg = dwc3_readl(dwc->regs, DWC3_DCTL);
- if (!(reg & DWC3_DCTL_CSFTRST))
- goto done;
-
-- udelay(1);
-+ if (dwc3_is_usb31(dwc) &&
-+ dwc->revision >= DWC3_USB31_REVISION_190A)
-+ msleep(20);
-+ else
-+ udelay(1);
- } while (--retries);
-
- phy_exit(dwc->usb3_generic_phy);
-@@ -267,11 +280,11 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc)
-
- done:
- /*
-- * For DWC_usb31 controller, once DWC3_DCTL_CSFTRST bit is cleared,
-- * we must wait at least 50ms before accessing the PHY domain
-- * (synchronization delay). DWC_usb31 programming guide section 1.3.2.
-+ * For DWC_usb31 controller 1.80a and prior, once DCTL.CSFRST bit
-+ * is cleared, we must wait at least 50ms before accessing the PHY
-+ * domain (synchronization delay).
- */
-- if (dwc3_is_usb31(dwc))
-+ if (dwc3_is_usb31(dwc) && dwc->revision <= DWC3_USB31_REVISION_180A)
- msleep(50);
-
- return 0;
-diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
-index 3dd783b889cb..1c8b349379af 100644
---- a/drivers/usb/dwc3/core.h
-+++ b/drivers/usb/dwc3/core.h
-@@ -1137,6 +1137,8 @@ struct dwc3 {
- #define DWC3_USB31_REVISION_120A (0x3132302a | DWC3_REVISION_IS_DWC31)
- #define DWC3_USB31_REVISION_160A (0x3136302a | DWC3_REVISION_IS_DWC31)
- #define DWC3_USB31_REVISION_170A (0x3137302a | DWC3_REVISION_IS_DWC31)
-+#define DWC3_USB31_REVISION_180A (0x3138302a | DWC3_REVISION_IS_DWC31)
-+#define DWC3_USB31_REVISION_190A (0x3139302a | DWC3_REVISION_IS_DWC31)
-
- u32 version_type;
-
---
-cgit 1.2-0.3.lf.el7
-
diff --git a/efi-lockdown.patch b/efi-lockdown.patch
deleted file mode 100644
index 75d4b7ed7..000000000
--- a/efi-lockdown.patch
+++ /dev/null
@@ -1,2173 +0,0 @@
-From 4f426f922e12f0ffaed373536f68531e18d68495 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:44:57 +0000
-Subject: [PATCH 01/29] 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
-should be locked down, thereby disallowing various accesses that might
-allow the running kernel image to be changed including the loading of
-modules that aren't validly signed with a key we recognise, fiddling with
-MSR registers and disallowing hibernation.
-
-Signed-off-by: David Howells <dhowells@redhat.com>
-Acked-by: James Morris <james.l.morris@oracle.com>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- include/linux/kernel.h | 17 ++++++++++++
- include/linux/security.h | 9 +++++-
- security/Kconfig | 15 ++++++++++
- security/Makefile | 3 ++
- security/lock_down.c | 60 ++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 103 insertions(+), 1 deletion(-)
- create mode 100644 security/lock_down.c
-
-diff --git a/include/linux/kernel.h b/include/linux/kernel.h
-index 0c9bc231107f..f71008b0a641 100644
---- a/include/linux/kernel.h
-+++ b/include/linux/kernel.h
-@@ -312,6 +312,23 @@ static inline void refcount_error_report(struct pt_regs *regs, const char *err)
- { }
- #endif
-
-+#ifdef CONFIG_LOCK_DOWN_KERNEL
-+extern bool __kernel_is_locked_down(const char *what, bool first);
-+#else
-+static inline bool __kernel_is_locked_down(const char *what, bool first)
-+{
-+ return false;
-+}
-+#endif
-+
-+#define kernel_is_locked_down(what) \
-+ ({ \
-+ static bool message_given; \
-+ bool locked_down = __kernel_is_locked_down(what, !message_given); \
-+ message_given = true; \
-+ locked_down; \
-+ })
-+
- /* Internal, do not use. */
- 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 5f7441abbf42..fd7579c879a6 100644
---- a/include/linux/security.h
-+++ b/include/linux/security.h
-@@ -1829,5 +1829,12 @@ static inline void security_bpf_prog_free(struct bpf_prog_aux *aux)
- #endif /* CONFIG_SECURITY */
- #endif /* CONFIG_BPF_SYSCALL */
-
--#endif /* ! __LINUX_SECURITY_H */
-+#ifdef CONFIG_LOCK_DOWN_KERNEL
-+extern void __init init_lockdown(void);
-+#else
-+static inline void __init init_lockdown(void)
-+{
-+}
-+#endif
-
-+#endif /* ! __LINUX_SECURITY_H */
-diff --git a/security/Kconfig b/security/Kconfig
-index 06a30851511a..720cf9dee2b4 100644
---- a/security/Kconfig
-+++ b/security/Kconfig
-@@ -230,6 +230,21 @@ config STATIC_USERMODEHELPER_PATH
- If you wish for all usermode helper programs to be disabled,
- specify an empty string here (i.e. "").
-
-+config LOCK_DOWN_KERNEL
-+ bool "Allow the kernel to be 'locked down'"
-+ help
-+ Allow the kernel to be locked down. If lockdown support is enabled
-+ and activated, the kernel will impose additional restrictions
-+ intended to prevent uid 0 from being able to modify the running
-+ kernel. This may break userland applications that rely on low-level
-+ access to hardware.
-+
-+config LOCK_DOWN_KERNEL_FORCE
-+ bool "Enable kernel lockdown mode automatically"
-+ depends on LOCK_DOWN_KERNEL
-+ help
-+ Enable the kernel lock down functionality automatically at boot.
-+
- source "security/selinux/Kconfig"
- source "security/smack/Kconfig"
- source "security/tomoyo/Kconfig"
-diff --git a/security/Makefile b/security/Makefile
-index c598b904938f..5ff090149c88 100644
---- a/security/Makefile
-+++ b/security/Makefile
-@@ -32,3 +32,6 @@ obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o
- # Object integrity file lists
- subdir-$(CONFIG_INTEGRITY) += integrity
- obj-$(CONFIG_INTEGRITY) += integrity/
-+
-+# Allow the kernel to be locked down
-+obj-$(CONFIG_LOCK_DOWN_KERNEL) += lock_down.o
-diff --git a/security/lock_down.c b/security/lock_down.c
-new file mode 100644
-index 000000000000..18d8776a4d02
---- /dev/null
-+++ b/security/lock_down.c
-@@ -0,0 +1,60 @@
-+// SPDX-License-Identifier: GPL-2.0
-+/* Lock down the kernel
-+ *
-+ * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
-+ * Written by David Howells (dhowells@redhat.com)
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public Licence
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the Licence, or (at your option) any later version.
-+ */
-+
-+#include <linux/security.h>
-+#include <linux/export.h>
-+
-+static __ro_after_init bool kernel_locked_down;
-+
-+/*
-+ * Put the kernel into lock-down mode.
-+ */
-+static void __init lock_kernel_down(const char *where)
-+{
-+ if (!kernel_locked_down) {
-+ kernel_locked_down = true;
-+ pr_notice("Kernel is locked down from %s; see man kernel_lockdown.7\n",
-+ where);
-+ }
-+}
-+
-+static int __init lockdown_param(char *ignored)
-+{
-+ lock_kernel_down("command line");
-+ return 0;
-+}
-+
-+early_param("lockdown", lockdown_param);
-+
-+/*
-+ * Lock the kernel down from very early in the arch setup. This must happen
-+ * prior to things like ACPI being initialised.
-+ */
-+void __init init_lockdown(void)
-+{
-+#ifdef CONFIG_LOCK_DOWN_FORCE
-+ lock_kernel_down("Kernel configuration");
-+#endif
-+}
-+
-+/**
-+ * kernel_is_locked_down - Find out if the kernel is locked down
-+ * @what: Tag to use in notice generated if lockdown is in effect
-+ */
-+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);
-+ return kernel_locked_down;
-+}
-+EXPORT_SYMBOL(__kernel_is_locked_down);
---
-2.21.0
-
-
-From 7b3d34ce99e1db6152f3f350f7512ed67712d2bb Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:44:58 +0000
-Subject: [PATCH 02/29] 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.
-
-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 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.
-
- [Modified by Matthew Garrett to remove the IMA integration. This will
- be replaced with integration with the IMA architecture policy
- patchset.]
-
-Signed-off-by: David Howells <dhowells@redhat.com>
-Reviewed-by: Jiri Bohac <jbohac@suse.cz>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
-Cc: Jessica Yu <jeyu@kernel.org>
----
- kernel/module.c | 39 ++++++++++++++++++++++++++++++++-------
- 1 file changed, 32 insertions(+), 7 deletions(-)
-
-diff --git a/kernel/module.c b/kernel/module.c
-index a2cee14a83f3..c771a183b741 100644
---- a/kernel/module.c
-+++ b/kernel/module.c
-@@ -2753,8 +2753,9 @@ static inline void kmemleak_load_module(const struct module *mod,
- #ifdef CONFIG_MODULE_SIG
- static int module_sig_check(struct load_info *info, int flags)
- {
-- int err = -ENOKEY;
-+ int err = -ENODATA;
- const unsigned long markerlen = sizeof(MODULE_SIG_STRING) - 1;
-+ const char *reason;
- const void *mod = info->hdr;
-
- /*
-@@ -2769,16 +2770,40 @@ static int module_sig_check(struct load_info *info, int flags)
- err = mod_verify_sig(mod, info);
- }
-
-- 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 && !is_module_sig_enforced())
-- 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 (is_module_sig_enforced()) {
-+ pr_notice("%s is rejected\n", reason);
-+ return -EKEYREJECTED;
-+ }
-
-- return err;
-+ 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)
---
-2.21.0
-
-
-From e6cee3fcc560211fbc3d1efaf048ad4b987a4b73 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg59@srcf.ucam.org>
-Date: Mon, 18 Feb 2019 12:44:58 +0000
-Subject: [PATCH 03/29] Restrict /dev/{mem,kmem,port} when the kernel is locked
- down
-
-Allowing users to read and write to core kernel memory makes it possible
-for the kernel to be subverted, avoiding module loading restrictions, and
-also to steal cryptographic information.
-
-Disallow /dev/mem and /dev/kmem from being opened this when the kernel has
-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 <mjg59@srcf.ucam.org>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
-Cc: x86@kernel.org
----
- drivers/char/mem.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/char/mem.c b/drivers/char/mem.c
-index b08dc50f9f26..0a2f2e75d5f4 100644
---- a/drivers/char/mem.c
-+++ b/drivers/char/mem.c
-@@ -786,6 +786,8 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig)
-
- static int open_port(struct inode *inode, struct file *filp)
- {
-+ if (kernel_is_locked_down("/dev/mem,kmem,port"))
-+ return -EPERM;
- return capable(CAP_SYS_RAWIO) ? 0 : -EPERM;
- }
-
---
-2.21.0
-
-
-From 1fe9d9809a7bedff1c0a043f5bcaf128d479fe24 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg59@srcf.ucam.org>
-Date: Mon, 18 Feb 2019 12:44:58 +0000
-Subject: [PATCH 04/29] kexec_load: Disable at runtime if the kernel is locked
- down
-
-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() syscall which can check for a
-signature on the image to be booted.
-
-Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Acked-by: Dave Young <dyoung@redhat.com>
-cc: kexec@lists.infradead.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- kernel/kexec.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/kernel/kexec.c b/kernel/kexec.c
-index 1b018f1a6e0d..fc87f152c229 100644
---- a/kernel/kexec.c
-+++ b/kernel/kexec.c
-@@ -205,6 +205,13 @@ static inline int kexec_load_check(unsigned long nr_segments,
- if (result < 0)
- return result;
-
-+ /*
-+ * 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.21.0
-
-
-From b1dbde991ca218ddc1b25e293e94e72907b2b2dc Mon Sep 17 00:00:00 2001
-From: Dave Young <dyoung@redhat.com>
-Date: Mon, 18 Feb 2019 12:44:58 +0000
-Subject: [PATCH 05/29] Copy secure_boot flag in boot params across kexec
- reboot
-
-Kexec reboot in case secure boot being enabled does not keep the secure
-boot mode in new kernel, so later one can load unsigned kernel via legacy
-kexec_load. In this state, the system is missing the protections provided
-by secure boot.
-
-Adding a patch to fix this by retain the secure_boot flag in original
-kernel.
-
-secure_boot flag in boot_params is set in EFI stub, but kexec bypasses the
-stub. Fixing this issue by copying secure_boot flag across kexec reboot.
-
-Signed-off-by: Dave Young <dyoung@redhat.com>
-Signed-off-by: David Howells <dhowells@redhat.com>
-cc: kexec@lists.infradead.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- arch/x86/kernel/kexec-bzimage64.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/kernel/kexec-bzimage64.c b/arch/x86/kernel/kexec-bzimage64.c
-index 5ebcd02cbca7..d2f4e706a428 100644
---- a/arch/x86/kernel/kexec-bzimage64.c
-+++ b/arch/x86/kernel/kexec-bzimage64.c
-@@ -180,6 +180,7 @@ setup_efi_state(struct boot_params *params, unsigned long params_load_addr,
- if (efi_enabled(EFI_OLD_MEMMAP))
- return 0;
-
-+ params->secure_boot = boot_params.secure_boot;
- ei->efi_loader_signature = current_ei->efi_loader_signature;
- ei->efi_systab = current_ei->efi_systab;
- ei->efi_systab_hi = current_ei->efi_systab_hi;
---
-2.21.0
-
-
-From 054c9d4879b81dcf7c49c5815c30db59ad9356ea Mon Sep 17 00:00:00 2001
-From: Jiri Bohac <jbohac@suse.cz>
-Date: Mon, 18 Feb 2019 12:44:58 +0000
-Subject: [PATCH 06/29] 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.
-
- (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: kexec@lists.infradead.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- arch/x86/Kconfig | 20 ++++++++---
- crypto/asymmetric_keys/verify_pefile.c | 4 ++-
- include/linux/kexec.h | 4 +--
- kernel/kexec_file.c | 48 ++++++++++++++++++++++----
- 4 files changed, 61 insertions(+), 15 deletions(-)
-
-diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index 879741336771..df9592ce8503 100644
---- a/arch/x86/Kconfig
-+++ b/arch/x86/Kconfig
-@@ -2026,20 +2026,30 @@ config KEXEC_FILE
- config ARCH_HAS_KEXEC_PURGATORY
- def_bool KEXEC_FILE
-
--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/crypto/asymmetric_keys/verify_pefile.c b/crypto/asymmetric_keys/verify_pefile.c
-index 3b303fe2f061..cc9dbcecaaca 100644
---- a/crypto/asymmetric_keys/verify_pefile.c
-+++ b/crypto/asymmetric_keys/verify_pefile.c
-@@ -96,7 +96,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,
-@@ -403,6 +403,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 b9b1bc5f9669..58b27c7bdc2b 100644
---- a/include/linux/kexec.h
-+++ b/include/linux/kexec.h
-@@ -125,7 +125,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
-@@ -134,7 +134,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 b8cc032d5620..5036bde1e5b3 100644
---- a/kernel/kexec_file.c
-+++ b/kernel/kexec_file.c
-@@ -88,7 +88,7 @@ int __weak arch_kimage_file_post_load_cleanup(struct kimage *image)
- return kexec_image_post_load_cleanup_default(image);
- }
-
--#ifdef CONFIG_KEXEC_VERIFY_SIG
-+#ifdef CONFIG_KEXEC_SIG
- static int kexec_image_verify_sig_default(struct kimage *image, void *buf,
- unsigned long buf_len)
- {
-@@ -186,7 +186,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;
-
-@@ -202,15 +203,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.21.0
-
-
-From d0ca8a6c26bfd6c8de7ed1d83326aae9b4bdfbf4 Mon Sep 17 00:00:00 2001
-From: Jiri Bohac <jbohac@suse.cz>
-Date: Mon, 18 Feb 2019 12:44:58 +0000
-Subject: [PATCH 07/29] kexec_file: Restrict at runtime 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.
-
-[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. Modified by Matthew Garrett to remove the IMA
- integration, which will be replaced by integrating with the IMA
- architecture policy patches.]
-
-Signed-off-by: Jiri Bohac <jbohac@suse.cz>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Reviewed-by: Jiri Bohac <jbohac@suse.cz>
-cc: kexec@lists.infradead.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- kernel/kexec_file.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
-index 5036bde1e5b3..0668c29d2eaf 100644
---- a/kernel/kexec_file.c
-+++ b/kernel/kexec_file.c
-@@ -234,6 +234,12 @@ kimage_file_prepare_segments(struct kimage *image, int kernel_fd, int initrd_fd,
- }
-
- ret = 0;
-+
-+ if (kernel_is_locked_down(reason)) {
-+ ret = -EPERM;
-+ goto out;
-+ }
-+
- break;
-
- /* All other errors are fatal, including nomem, unparseable
---
-2.21.0
-
-
-From 3754ff197e10abd8ef88875e069741025ea0dd84 Mon Sep 17 00:00:00 2001
-From: Josh Boyer <jwboyer@fedoraproject.org>
-Date: Mon, 18 Feb 2019 12:44:59 +0000
-Subject: [PATCH 08/29] 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,
-so until we can work with signed hibernate images we disable it when the
-kernel is locked down.
-
-Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Cc: rjw@rjwysocki.net
-Cc: pavel@ucw.cz
-cc: linux-pm@vger.kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- kernel/power/hibernate.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
-index cd7434e6000d..0f30de4a712a 100644
---- a/kernel/power/hibernate.c
-+++ b/kernel/power/hibernate.c
-@@ -68,7 +68,7 @@ static const struct platform_hibernation_ops *hibernation_ops;
-
- bool hibernation_available(void)
- {
-- return (nohibernate == 0);
-+ return nohibernate == 0 && !kernel_is_locked_down("Hibernation");
- }
-
- /**
---
-2.21.0
-
-
-From a144fd3bcc7fcbf55b608c89b8cf64abec72130c Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg59@srcf.ucam.org>
-Date: Mon, 18 Feb 2019 12:44:59 +0000
-Subject: [PATCH 09/29] 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
-is locked down.
-
-Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Reviewed-by: James Morris <james.l.morris@oracle.com>
-cc: linux-pm@vger.kernel.org
-Cc: pavel@ucw.cz
-Cc: rjw@rjwysocki.net
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- kernel/power/user.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/kernel/power/user.c b/kernel/power/user.c
-index 77438954cc2b..0caff429eb55 100644
---- a/kernel/power/user.c
-+++ b/kernel/power/user.c
-@@ -49,6 +49,9 @@ static int snapshot_open(struct inode *inode, struct file *filp)
- if (!hibernation_available())
- return -EPERM;
-
-+ if (kernel_is_locked_down("/dev/snapshot"))
-+ return -EPERM;
-+
- lock_system_sleep();
-
- if (!atomic_add_unless(&snapshot_device_available, -1, 0)) {
---
-2.21.0
-
-
-From 069af594117ee566597173886950d3577c523983 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg59@srcf.ucam.org>
-Date: Mon, 18 Feb 2019 12:44:59 +0000
-Subject: [PATCH 10/29] PCI: Lock down BAR access when the kernel is locked
- down
-
-Any hardware that can potentially generate DMA has to be locked down in
-order to avoid it being possible for an attacker to modify kernel code,
-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 <mjg59@srcf.ucam.org>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Acked-by: Bjorn Helgaas <bhelgaas@google.com>
-cc: linux-pci@vger.kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- drivers/pci/pci-sysfs.c | 9 +++++++++
- drivers/pci/proc.c | 9 ++++++++-
- drivers/pci/syscall.c | 3 ++-
- 3 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
-index 965c72104150..f8cef3e348a3 100644
---- a/drivers/pci/pci-sysfs.c
-+++ b/drivers/pci/pci-sysfs.c
-@@ -907,6 +907,9 @@ static ssize_t pci_write_config(struct file *filp, struct kobject *kobj,
- loff_t init_off = off;
- u8 *data = (u8 *) buf;
-
-+ if (kernel_is_locked_down("Direct PCI access"))
-+ return -EPERM;
-+
- if (off > dev->cfg_size)
- return 0;
- if (off + count > dev->cfg_size) {
-@@ -1168,6 +1171,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];
-
-+ if (kernel_is_locked_down("Direct PCI access"))
-+ return -EPERM;
-+
- if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start))
- return -EINVAL;
-
-@@ -1243,6 +1249,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)
- {
-+ if (kernel_is_locked_down("Direct PCI access"))
-+ return -EPERM;
-+
- return pci_resource_io(filp, kobj, attr, buf, off, count, true);
- }
-
-diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
-index fe7fe678965b..23c9b5979f5d 100644
---- a/drivers/pci/proc.c
-+++ b/drivers/pci/proc.c
-@@ -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;
-
-+ if (kernel_is_locked_down("Direct PCI access"))
-+ return -EPERM;
-+
- if (pos >= size)
- return 0;
- if (nbytes >= size)
-@@ -196,6 +199,9 @@ static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd,
- #endif /* HAVE_PCI_MMAP */
- int ret = 0;
-
-+ if (kernel_is_locked_down("Direct PCI access"))
-+ return -EPERM;
-+
- switch (cmd) {
- case PCIIOC_CONTROLLER:
- ret = pci_domain_nr(dev->bus);
-@@ -238,7 +244,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;
-
-- if (!capable(CAP_SYS_RAWIO))
-+ if (!capable(CAP_SYS_RAWIO) ||
-+ kernel_is_locked_down("Direct PCI access"))
- return -EPERM;
-
- if (fpriv->mmap_state == pci_mmap_io) {
-diff --git a/drivers/pci/syscall.c b/drivers/pci/syscall.c
-index d96626c614f5..b8a08d3166a1 100644
---- a/drivers/pci/syscall.c
-+++ b/drivers/pci/syscall.c
-@@ -90,7 +90,8 @@ SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn,
- u32 dword;
- int err = 0;
-
-- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) ||
-+ kernel_is_locked_down("Direct PCI access"))
- return -EPERM;
-
- dev = pci_get_domain_bus_and_slot(0, bus, dfn);
---
-2.21.0
-
-
-From 97f7b0338b58afd67817ca886de78ce9bba67f29 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg59@srcf.ucam.org>
-Date: Mon, 18 Feb 2019 12:44:59 +0000
-Subject: [PATCH 11/29] x86: Lock down IO port access when the kernel is locked
- down
-
-IO port access would permit users to gain access to PCI configuration
-registers, which in turn (on a lot of hardware) give access to MMIO
-register space. This would potentially permit root to trigger arbitrary
-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 <mjg59@srcf.ucam.org>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
-cc: x86@kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- arch/x86/kernel/ioport.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
-index 0fe1c8782208..abc702a6ae9c 100644
---- a/arch/x86/kernel/ioport.c
-+++ b/arch/x86/kernel/ioport.c
-@@ -31,7 +31,8 @@ long ksys_ioperm(unsigned long from, unsigned long num, int turn_on)
-
- if ((from + num <= from) || (from + num > IO_BITMAP_BITS))
- return -EINVAL;
-- if (turn_on && !capable(CAP_SYS_RAWIO))
-+ if (turn_on && (!capable(CAP_SYS_RAWIO) ||
-+ kernel_is_locked_down("ioperm")))
- return -EPERM;
-
- /*
-@@ -126,7 +127,8 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
- return -EINVAL;
- /* Trying to gain more privileges? */
- if (level > old) {
-- if (!capable(CAP_SYS_RAWIO))
-+ if (!capable(CAP_SYS_RAWIO) ||
-+ kernel_is_locked_down("iopl"))
- return -EPERM;
- }
- regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) |
---
-2.21.0
-
-
-From 65029f8df39eb1d0a48cbcb6686b21e844ff9b3c Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg59@srcf.ucam.org>
-Date: Mon, 18 Feb 2019 12:44:59 +0000
-Subject: [PATCH 12/29] 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
-it could lead to execution of arbitrary code in kernel mode. Based on a
-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 <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>
-cc: x86@kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- arch/x86/kernel/msr.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
-index 3db2252b958d..5eed6530c223 100644
---- a/arch/x86/kernel/msr.c
-+++ b/arch/x86/kernel/msr.c
-@@ -79,6 +79,11 @@ static ssize_t msr_write(struct file *file, const char __user *buf,
- int err = 0;
- ssize_t bytes = 0;
-
-+ if (kernel_is_locked_down("Direct MSR access")) {
-+ pr_info("Direct access to MSR %x\n", reg);
-+ return -EPERM;
-+ }
-+
- if (count % 8)
- return -EINVAL; /* Invalid chunk size */
-
-@@ -130,6 +135,11 @@ static long msr_ioctl(struct file *file, unsigned int ioc, unsigned long arg)
- err = -EFAULT;
- break;
- }
-+ if (kernel_is_locked_down("Direct MSR access")) {
-+ pr_info("Direct access to MSR %x\n", regs[1]); /* Display %ecx */
-+ err = -EPERM;
-+ break;
-+ }
- err = wrmsr_safe_regs_on_cpu(cpu, regs);
- if (err)
- break;
---
-2.21.0
-
-
-From 0a0ad07ecc667dae61d7a1073559830184022be7 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg59@srcf.ucam.org>
-Date: Mon, 18 Feb 2019 12:44:59 +0000
-Subject: [PATCH 13/29] 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 <mjg59@srcf.ucam.org>
-Signed-off-by: David Howells <dhowells@redhat.com>
-cc: linux-acpi@vger.kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- drivers/acpi/custom_method.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
-index b2ef4c2ec955..33b821be0600 100644
---- a/drivers/acpi/custom_method.c
-+++ b/drivers/acpi/custom_method.c
-@@ -30,6 +30,9 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf,
- struct acpi_table_header table;
- acpi_status status;
-
-+ if (kernel_is_locked_down("ACPI custom methods"))
-+ return -EPERM;
-+
- if (!(*ppos)) {
- /* parse the table header to get the table length */
- if (count <= sizeof(struct acpi_table_header))
---
-2.21.0
-
-
-From ad843f3ba6d525cc47eb2c866de74a324d3a960c Mon Sep 17 00:00:00 2001
-From: Josh Boyer <jwboyer@redhat.com>
-Date: Mon, 18 Feb 2019 12:44:59 +0000
-Subject: [PATCH 14/29] 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
-makes it possible for a user to modify the workings of hardware . Reject
-the option when the kernel is locked down.
-
-Signed-off-by: Josh Boyer <jwboyer@redhat.com>
-Signed-off-by: David Howells <dhowells@redhat.com>
-cc: Dave Young <dyoung@redhat.com>
-cc: linux-acpi@vger.kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- drivers/acpi/osl.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
-index 9c0edf2fc0dd..0c5c7b51fb72 100644
---- a/drivers/acpi/osl.c
-+++ b/drivers/acpi/osl.c
-@@ -180,7 +180,7 @@ acpi_physical_address __init acpi_os_get_root_pointer(void)
- acpi_physical_address pa;
-
- #ifdef CONFIG_KEXEC
-- if (acpi_rsdp)
-+ if (acpi_rsdp && !kernel_is_locked_down("ACPI RSDP specification"))
- return acpi_rsdp;
- #endif
- pa = acpi_arch_get_root_pointer();
---
-2.21.0
-
-
-From 146618cd3ae3556184f3ca94ca82809f4e7090b9 Mon Sep 17 00:00:00 2001
-From: Linn Crosetto <linn@hpe.com>
-Date: Mon, 18 Feb 2019 12:45:00 +0000
-Subject: [PATCH 15/29] acpi: Disable ACPI table override if the kernel is
- locked down
-
-From the kernel documentation (initrd_table_override.txt):
-
- If the ACPI_INITRD_TABLE_OVERRIDE compile option is true, it is possible
- to override nearly any ACPI table provided by the BIOS with an
- instrumented, modified one.
-
-When securelevel is set, the kernel should disallow any unauthenticated
-changes to kernel space. ACPI tables contain code invoked by the kernel,
-so do not allow ACPI tables to be overridden if the kernel is locked down.
-
-Signed-off-by: Linn Crosetto <linn@hpe.com>
-Signed-off-by: David Howells <dhowells@redhat.com>
-cc: linux-acpi@vger.kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- drivers/acpi/tables.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
-index b32327759380..6fd5c8328427 100644
---- a/drivers/acpi/tables.c
-+++ b/drivers/acpi/tables.c
-@@ -578,6 +578,11 @@ void __init acpi_table_upgrade(void)
- if (table_nr == 0)
- return;
-
-+ if (kernel_is_locked_down("ACPI table override")) {
-+ pr_notice("kernel is locked down, ignoring table override\n");
-+ return;
-+ }
-+
- acpi_tables_addr =
- memblock_find_in_range(0, ACPI_TABLE_UPGRADE_MAX_PHYS,
- all_tables_size, PAGE_SIZE);
---
-2.21.0
-
-
-From e183b69655b6069c7007ad911252dd681fb0083f Mon Sep 17 00:00:00 2001
-From: Linn Crosetto <linn@hpe.com>
-Date: Mon, 18 Feb 2019 12:45:00 +0000
-Subject: [PATCH 16/29] acpi: Disable APEI error injection if the kernel is
- locked down
-
-ACPI provides an error injection mechanism, EINJ, for debugging and testing
-the ACPI Platform Error Interface (APEI) and other RAS features. If
-supported by the firmware, ACPI specification 5.0 and later provide for a
-way to specify a physical memory address to which to inject the error.
-
-Injecting errors through EINJ can produce errors which to the platform are
-indistinguishable from real hardware errors. This can have undesirable
-side-effects, such as causing the platform to mark hardware as needing
-replacement.
-
-While it does not provide a method to load unauthenticated privileged code,
-the effect of these errors may persist across reboots and affect trust in
-the underlying hardware, so disable error injection through EINJ if
-the kernel is locked down.
-
-Signed-off-by: Linn Crosetto <linn@hpe.com>
-Signed-off-by: David Howells <dhowells@redhat.com>
-cc: linux-acpi@vger.kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- drivers/acpi/apei/einj.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c
-index e430cf4caec2..dde995f871d6 100644
---- a/drivers/acpi/apei/einj.c
-+++ b/drivers/acpi/apei/einj.c
-@@ -510,6 +510,9 @@ static int einj_error_inject(u32 type, u32 flags, u64 param1, u64 param2,
- int rc;
- u64 base_addr, size;
-
-+ if (kernel_is_locked_down("ACPI error injection"))
-+ return -EPERM;
-+
- /* If user manually set "flags", make sure it is legal */
- if (flags && (flags &
- ~(SETWA_FLAGS_APICID|SETWA_FLAGS_MEM|SETWA_FLAGS_PCIE_SBDF)))
---
-2.21.0
-
-
-From 2c469f9240f58dce6049eae000d70dcef8025cfa Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:45:00 +0000
-Subject: [PATCH 17/29] Prohibit PCMCIA CIS storage when the kernel is locked
- down
-
-Prohibit replacement of the PCMCIA Card Information Structure when the
-kernel is locked down.
-
-Suggested-by: Dominik Brodowski <linux@dominikbrodowski.net>
-Signed-off-by: David Howells <dhowells@redhat.com>
-cc: linux-pcmcia@lists.infradead.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- drivers/pcmcia/cistpl.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
-index abd029945cc8..77919fa3fb4a 100644
---- a/drivers/pcmcia/cistpl.c
-+++ b/drivers/pcmcia/cistpl.c
-@@ -1575,6 +1575,9 @@ static ssize_t pccard_store_cis(struct file *filp, struct kobject *kobj,
- struct pcmcia_socket *s;
- int error;
-
-+ if (kernel_is_locked_down("Direct PCMCIA CIS storage"))
-+ return -EPERM;
-+
- s = to_socket(container_of(kobj, struct device, kobj));
-
- if (off)
---
-2.21.0
-
-
-From 5f1bdf370484979c291e37cd6905480a12083b18 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:45:00 +0000
-Subject: [PATCH 18/29] 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
-drivers that use the core serial code. All other drivers seem to either
-ignore attempts to change port/irq or give an error.
-
-Reported-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: David Howells <dhowells@redhat.com>
-cc: Jiri Slaby <jslaby@suse.com>
-Cc: linux-serial@vger.kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- drivers/tty/serial/serial_core.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
-index 4223cb496764..4f3cd7bc1713 100644
---- a/drivers/tty/serial/serial_core.c
-+++ b/drivers/tty/serial/serial_core.c
-@@ -846,6 +846,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;
-
-+ if ((change_port || change_irq) &&
-+ kernel_is_locked_down("Using TIOCSSERIAL to change device addresses, irqs and dma channels")) {
-+ retval = -EPERM;
-+ goto exit;
-+ }
-+
- if (!capable(CAP_SYS_ADMIN)) {
- retval = -EPERM;
- if (change_irq || change_port ||
---
-2.21.0
-
-
-From b07159ff6bc3345b49db17a82fa31013f398d4e5 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:45:01 +0000
-Subject: [PATCH 19/29] Lock down module params that specify hardware
- parameters (eg. ioport)
-
-Provided an annotation for module parameters that specify hardware
-parameters (such as io ports, iomem addresses, irqs, dma channels, fixed
-dma buffers and other types).
-
-Suggested-by: Alan Cox <gnomes@lxorguk.ukuu.org.uk>
-Signed-off-by: David Howells <dhowells@redhat.com>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- kernel/params.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/kernel/params.c b/kernel/params.c
-index cf448785d058..61a08a5da208 100644
---- a/kernel/params.c
-+++ b/kernel/params.c
-@@ -96,13 +96,19 @@ bool parameq(const char *a, const char *b)
- return parameqn(a, b, strlen(a)+1);
- }
-
--static void param_check_unsafe(const struct kernel_param *kp)
-+static bool param_check_unsafe(const struct kernel_param *kp,
-+ const char *doing)
- {
- if (kp->flags & KERNEL_PARAM_FL_UNSAFE) {
- pr_notice("Setting dangerous option %s - tainting kernel\n",
- kp->name);
- add_taint(TAINT_USER, LOCKDEP_STILL_OK);
- }
-+
-+ if (kp->flags & KERNEL_PARAM_FL_HWPARAM &&
-+ kernel_is_locked_down("Command line-specified device addresses, irqs and dma channels"))
-+ return false;
-+ return true;
- }
-
- static int parse_one(char *param,
-@@ -132,8 +138,10 @@ static int parse_one(char *param,
- pr_debug("handling %s with %p\n", param,
- params[i].ops->set);
- kernel_param_lock(params[i].mod);
-- param_check_unsafe(&params[i]);
-- err = params[i].ops->set(val, &params[i]);
-+ if (param_check_unsafe(&params[i], doing))
-+ err = params[i].ops->set(val, &params[i]);
-+ else
-+ err = -EPERM;
- kernel_param_unlock(params[i].mod);
- return err;
- }
-@@ -541,6 +549,12 @@ static ssize_t param_attr_show(struct module_attribute *mattr,
- return count;
- }
-
-+#ifdef CONFIG_MODULES
-+#define mod_name(mod) (mod)->name
-+#else
-+#define mod_name(mod) "unknown"
-+#endif
-+
- /* 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,
-@@ -553,8 +567,10 @@ static ssize_t param_attr_store(struct module_attribute *mattr,
- return -EPERM;
-
- kernel_param_lock(mk->mod);
-- param_check_unsafe(attribute->param);
-- err = attribute->param->ops->set(buf, attribute->param);
-+ if (param_check_unsafe(attribute->param, mod_name(mk->mod)))
-+ err = attribute->param->ops->set(buf, attribute->param);
-+ else
-+ err = -EPERM;
- kernel_param_unlock(mk->mod);
- if (!err)
- return len;
---
-2.21.0
-
-
-From 3e7fdce10f144b2a947f020bd0eeeb536c77153e Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:45:01 +0000
-Subject: [PATCH 20/29] 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.
-
-Suggested-by: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: David Howells <dhowells@redhat.com
-cc: Thomas Gleixner <tglx@linutronix.de>
-cc: Steven Rostedt <rostedt@goodmis.org>
-cc: Ingo Molnar <mingo@kernel.org>
-cc: "H. Peter Anvin" <hpa@zytor.com>
-cc: x86@kernel.org
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- arch/x86/mm/testmmiotrace.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/arch/x86/mm/testmmiotrace.c b/arch/x86/mm/testmmiotrace.c
-index 0881e1ff1e58..13f1da99ee5e 100644
---- a/arch/x86/mm/testmmiotrace.c
-+++ b/arch/x86/mm/testmmiotrace.c
-@@ -116,6 +116,9 @@ static int __init init(void)
- {
- unsigned long size = (read_far) ? (8 << 20) : (16 << 10);
-
-+ if (kernel_is_locked_down("MMIO trace testing"))
-+ return -EPERM;
-+
- if (mmio_address == 0) {
- 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.21.0
-
-
-From 1e81a8fd6ed139113011e3b7d70aa8b5c59a97cb Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:45:02 +0000
-Subject: [PATCH 21/29] 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>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- fs/proc/kcore.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
-index f5834488b67d..0639228c4904 100644
---- a/fs/proc/kcore.c
-+++ b/fs/proc/kcore.c
-@@ -545,6 +545,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.21.0
-
-
-From 03a1ba6091a421ae40a17dc67f61a96733c8f0d2 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:45:02 +0000
-Subject: [PATCH 22/29] 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>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
-Cc: Naveen N. Rao <naveen.n.rao@linux.ibm.com>
-Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
-Cc: davem@davemloft.net
-Cc: Masami Hiramatsu <mhiramat@kernel.org>
----
- kernel/kprobes.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/kernel/kprobes.c b/kernel/kprobes.c
-index 9f5433a52488..e54c7b70298a 100644
---- a/kernel/kprobes.c
-+++ b/kernel/kprobes.c
-@@ -1556,6 +1556,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.21.0
-
-
-From d743cdf3a9508b9d9293acb3170b1d76f5556d1a Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:45:02 +0000
-Subject: [PATCH 23/29] 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>
-Cc: Daniel Borkmann <daniel@iogearbox.net>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- kernel/bpf/syscall.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
-index 5d141f16f6fa..cf9f0d069a2a 100644
---- a/kernel/bpf/syscall.c
-+++ b/kernel/bpf/syscall.c
-@@ -2813,6 +2813,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 = bpf_check_uarg_tail_zero(uattr, sizeof(attr), size);
- if (err)
- return err;
---
-2.21.0
-
-
-From 7ec8d8a7bc177bc54e627b04a6aa4520174965cd Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:45:02 +0000
-Subject: [PATCH 24/29] 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>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Cc: Ingo Molnar <mingo@redhat.com>
-Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
----
- kernel/events/core.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/kernel/events/core.c b/kernel/events/core.c
-index eea9d52b010c..08f51f91d959 100644
---- a/kernel/events/core.c
-+++ b/kernel/events/core.c
-@@ -10824,6 +10824,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.21.0
-
-
-From 98fa6aca64b1723db15cb1791b734aebb105433e Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Mon, 18 Feb 2019 12:45:02 +0000
-Subject: [PATCH 25/29] 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).
-
- (2) When the kernel is locked down, only files with the following criteria
- are permitted to be opened:
-
- - The file must have mode 00444
- - The file must not have ioctl methods
- - The file must not have mmap
-
- (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 <mjg59@srcf.ucam.org>
-cc: Thomas Gleixner <tglx@linutronix.de>
-Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.com>
----
- fs/debugfs/file.c | 28 ++++++++++++++++++++++++++++
- fs/debugfs/inode.c | 30 ++++++++++++++++++++++++++++--
- 2 files changed, 56 insertions(+), 2 deletions(-)
-
-diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
-index 93e4ca6b2ad7..8eeff9068228 100644
---- a/fs/debugfs/file.c
-+++ b/fs/debugfs/file.c
-@@ -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");
-+}
-+
- 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;
-
- 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 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;
-
- 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 042b688ed124..cc0486ca1a11 100644
---- a/fs/debugfs/inode.c
-+++ b/fs/debugfs/inode.c
-@@ -35,6 +35,31 @@ static struct vfsmount *debugfs_mount;
- static int debugfs_mount_count;
- static bool debugfs_registered;
-
-+/*
-+ * 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;
-+ 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);
-@@ -369,6 +394,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);
-@@ -532,7 +558,7 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
- }
-
- 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) */
-@@ -632,7 +658,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.21.0
-
-
-From 39ffa9315f46123f0f1f66fb6fd0597211b43b1d Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Wed, 28 Feb 2018 14:43:03 +0000
-Subject: [PATCH 26/29] 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>
-Signed-off-by: Matthew Garrett <matthewgarrett@google.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 18d8776a4d02..ee00ca2677e7 100644
---- a/security/lock_down.c
-+++ b/security/lock_down.c
-@@ -53,8 +53,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.21.0
-
-
-From 0086dbfaa88118636bc5d77f25bd578034a84075 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <matthewgarrett@google.com>
-Date: Tue, 12 Mar 2019 12:50:30 -0700
-Subject: [PATCH 27/29] kexec: Allow kexec_file() with appropriate IMA policy
- when locked down
-
-Systems in lockdown mode should block the kexec of untrusted kernels.
-For x86 and ARM we can ensure that a kernel is trustworthy by validating
-a PE signature, but this isn't possible on other architectures. On those
-platforms we can use IMA digital signatures instead. Add a function to
-determine whether IMA has or will verify signatures for a given event type,
-and if so permit kexec_file() even if the kernel is otherwise locked down.
-This is restricted to cases where CONFIG_INTEGRITY_TRUSTED_KEYRING is set
-in order to prevent an attacker from loading additional keys at runtime.
-
-Signed-off-by: Matthew Garrett <mjg59@google.com>
-Acked-by: Mimi Zohar <zohar@linux.ibm.com>
-Cc: Dmitry Kasatkin <dmitry.kasatkin@gmail.com>
-Cc: linux-integrity@vger.kernel.org
----
- include/linux/ima.h | 9 ++++++
- kernel/kexec_file.c | 7 +++-
- security/integrity/ima/ima.h | 2 ++
- security/integrity/ima/ima_main.c | 2 +-
- security/integrity/ima/ima_policy.c | 50 +++++++++++++++++++++++++++++
- 5 files changed, 68 insertions(+), 2 deletions(-)
-
-diff --git a/include/linux/ima.h b/include/linux/ima.h
-index a20ad398d260..1c37f17f7203 100644
---- a/include/linux/ima.h
-+++ b/include/linux/ima.h
-@@ -131,4 +131,13 @@ static inline int ima_inode_removexattr(struct dentry *dentry,
- return 0;
- }
- #endif /* CONFIG_IMA_APPRAISE */
-+
-+#if defined(CONFIG_IMA_APPRAISE) && defined(CONFIG_INTEGRITY_TRUSTED_KEYRING)
-+extern bool ima_appraise_signature(enum kernel_read_file_id func);
-+#else
-+static inline bool ima_appraise_signature(enum kernel_read_file_id func)
-+{
-+ return false;
-+}
-+#endif /* CONFIG_IMA_APPRAISE && CONFIG_INTEGRITY_TRUSTED_KEYRING */
- #endif /* _LINUX_IMA_H */
-diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
-index 0668c29d2eaf..78728a0f16a7 100644
---- a/kernel/kexec_file.c
-+++ b/kernel/kexec_file.c
-@@ -235,7 +235,12 @@ kimage_file_prepare_segments(struct kimage *image, int kernel_fd, int initrd_fd,
-
- ret = 0;
-
-- if (kernel_is_locked_down(reason)) {
-+ /* If IMA is guaranteed to appraise a signature on the kexec
-+ * image, permit it even if the kernel is otherwise locked
-+ * down.
-+ */
-+ if (!ima_appraise_signature(READING_KEXEC_IMAGE) &&
-+ kernel_is_locked_down(reason)) {
- ret = -EPERM;
- goto out;
- }
-diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
-index 011b91c79351..64dcb11cf444 100644
---- a/security/integrity/ima/ima.h
-+++ b/security/integrity/ima/ima.h
-@@ -113,6 +113,8 @@ struct ima_kexec_hdr {
- u64 count;
- };
-
-+extern const int read_idmap[];
-+
- #ifdef CONFIG_HAVE_IMA_KEXEC
- void ima_load_kexec_buffer(void);
- #else
-diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c
-index 584019728660..b9f57503af2c 100644
---- a/security/integrity/ima/ima_main.c
-+++ b/security/integrity/ima/ima_main.c
-@@ -502,7 +502,7 @@ int ima_read_file(struct file *file, enum kernel_read_file_id read_id)
- return 0;
- }
-
--static const int read_idmap[READING_MAX_ID] = {
-+const int read_idmap[READING_MAX_ID] = {
- [READING_FIRMWARE] = FIRMWARE_CHECK,
- [READING_FIRMWARE_PREALLOC_BUFFER] = FIRMWARE_CHECK,
- [READING_MODULE] = MODULE_CHECK,
-diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c
-index 6df7f641ff66..827f1e33fe86 100644
---- a/security/integrity/ima/ima_policy.c
-+++ b/security/integrity/ima/ima_policy.c
-@@ -1456,3 +1456,53 @@ int ima_policy_show(struct seq_file *m, void *v)
- return 0;
- }
- #endif /* CONFIG_IMA_READ_POLICY */
-+
-+#if defined(CONFIG_IMA_APPRAISE) && defined(CONFIG_INTEGRITY_TRUSTED_KEYRING)
-+/*
-+ * ima_appraise_signature: whether IMA will appraise a given function using
-+ * an IMA digital signature. This is restricted to cases where the kernel
-+ * has a set of built-in trusted keys in order to avoid an attacker simply
-+ * loading additional keys.
-+ */
-+bool ima_appraise_signature(enum kernel_read_file_id id)
-+{
-+ struct ima_rule_entry *entry;
-+ bool found = false;
-+ enum ima_hooks func;
-+
-+ if (id >= READING_MAX_ID)
-+ return false;
-+
-+ func = read_idmap[id] ?: FILE_CHECK;
-+
-+ rcu_read_lock();
-+ list_for_each_entry_rcu(entry, ima_rules, list) {
-+ if (entry->action != APPRAISE)
-+ continue;
-+
-+ /*
-+ * A generic entry will match, but otherwise require that it
-+ * match the func we're looking for
-+ */
-+ if (entry->func && entry->func != func)
-+ continue;
-+
-+ /*
-+ * We require this to be a digital signature, not a raw IMA
-+ * hash.
-+ */
-+ if (entry->flags & IMA_DIGSIG_REQUIRED)
-+ found = true;
-+
-+ /*
-+ * We've found a rule that matches, so break now even if it
-+ * didn't require a digital signature - a later rule that does
-+ * won't override it, so would be a false positive.
-+ */
-+ break;
-+ }
-+
-+ rcu_read_unlock();
-+ return found;
-+}
-+#endif /* CONFIG_IMA_APPRAISE && CONFIG_INTEGRITY_TRUSTED_KEYRING */
---
-2.21.0
-
-
-From 4a84d19a10c31a363aa7d1f325bd212012263a98 Mon Sep 17 00:00:00 2001
-From: Kyle McMartin <kyle@redhat.com>
-Date: Mon, 9 Apr 2018 09:52:45 +0100
-Subject: [PATCH 28/29] 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 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>
-cc: x86@kernel.org
----
- arch/x86/include/asm/setup.h | 2 ++
- drivers/input/misc/uinput.c | 1 +
- drivers/tty/sysrq.c | 19 ++++++++++-----
- include/linux/input.h | 5 ++++
- include/linux/sysrq.h | 8 +++++-
- kernel/debug/kdb/kdb_main.c | 2 +-
- security/Kconfig | 10 ++++++++
- security/lock_down.c | 47 ++++++++++++++++++++++++++++++++++++
- 8 files changed, 86 insertions(+), 8 deletions(-)
-
-diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
-index ed8ec011a9fd..8daf633a5347 100644
---- a/arch/x86/include/asm/setup.h
-+++ b/arch/x86/include/asm/setup.h
-@@ -9,6 +9,8 @@
- #include <linux/linkage.h>
- #include <asm/page_types.h>
-
-+#define LOCKDOWN_LIFT_KEY 'x'
-+
- #ifdef __i386__
-
- #include <linux/pfn.h>
-diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c
-index 84051f20b18a..583ab2bc1916 100644
---- a/drivers/input/misc/uinput.c
-+++ b/drivers/input/misc/uinput.c
-@@ -353,6 +353,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 573b2055173c..7cc95a8bdf8d 100644
---- a/drivers/tty/sysrq.c
-+++ b/drivers/tty/sysrq.c
-@@ -480,6 +480,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 */
-+ /* x: May be registered on x86_64 for disabling secure boot */
- NULL, /* x */
- /* y: May be registered on sparc64 for global register dump */
- NULL, /* y */
-@@ -523,7 +524,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
- sysrq_key_table[i] = op_p;
- }
-
--void __handle_sysrq(int key, bool check_mask)
-+void __handle_sysrq(int key, unsigned int from)
- {
- struct sysrq_key_op *op_p;
- int orig_log_level;
-@@ -546,11 +547,15 @@ void __handle_sysrq(int key, bool check_mask)
-
- op_p = __sysrq_get_key_op(key);
- if (op_p) {
-- /*
-- * Should we check for enabled operations (/proc/sysrq-trigger
-- * should not) and is the invoked operation enabled?
-- */
-- if (!check_mask || sysrq_on_mask(op_p->enable_mask)) {
-+ /* Ban synthetic events from some sysrq functionality */
-+ if ((from == SYSRQ_FROM_PROC || from == SYSRQ_FROM_SYNTHETIC) &&
-+ op_p->enable_mask & SYSRQ_DISABLE_USERSPACE) {
-+ printk("This sysrq operation is disabled from userspace.\n");
-+ } else if (from == SYSRQ_FROM_KERNEL || sysrq_on_mask(op_p->enable_mask)) {
-+ /*
-+ * Should we check for enabled operations (/proc/sysrq-trigger
-+ * should not) and is the invoked operation enabled?
-+ */
- pr_info("%s\n", op_p->action_msg);
- console_loglevel = orig_log_level;
- op_p->handler(key);
-@@ -585,7 +590,7 @@ void __handle_sysrq(int key, bool check_mask)
- void handle_sysrq(int key)
- {
- if (sysrq_on())
-- __handle_sysrq(key, true);
-+ __handle_sysrq(key, SYSRQ_FROM_KERNEL);
- }
- EXPORT_SYMBOL(handle_sysrq);
-
-@@ -665,7 +670,7 @@ static void sysrq_do_reset(struct timer_list *t)
- static void sysrq_handle_reset_request(struct sysrq_state *state)
- {
- if (state->reset_requested)
-- __handle_sysrq(sysrq_xlate[KEY_B], false);
-+ __handle_sysrq(sysrq_xlate[KEY_B], SYSRQ_FROM_KERNEL);
-
- if (sysrq_reset_downtime_ms)
- mod_timer(&state->keyreset_timer,
-@@ -818,8 +823,10 @@ static bool sysrq_handle_keypress(struct sysrq_state *sysrq,
-
- default:
- if (sysrq->active && value && value != 2) {
-+ int from = sysrq->handle.dev->flags & INPUTDEV_FLAGS_SYNTHETIC ?
-+ SYSRQ_FROM_SYNTHETIC : 0;
- sysrq->need_reinject = false;
-- __handle_sysrq(sysrq_xlate[code], true);
-+ __handle_sysrq(sysrq_xlate[code], from);
- }
- break;
- }
-@@ -1102,7 +1109,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
-
- if (get_user(c, buf))
- return -EFAULT;
-- __handle_sysrq(c, false);
-+ __handle_sysrq(c, SYSRQ_FROM_PROC);
- }
-
- return count;
-diff --git a/include/linux/input.h b/include/linux/input.h
-index 510e78558c10..7e7065b2f58a 100644
---- a/include/linux/input.h
-+++ b/include/linux/input.h
-@@ -39,6 +39,7 @@ struct input_value {
- * @phys: physical path to the device in the system hierarchy
- * @uniq: unique identification code for the device (if device has it)
- * @id: id of the device (struct input_id)
-+ * @flags: input device flags (SYNTHETIC, etc.)
- * @propbit: bitmap of device properties and quirks
- * @evbit: bitmap of types of events supported by the device (EV_KEY,
- * EV_REL, etc.)
-@@ -121,6 +122,8 @@ struct input_dev {
- const char *uniq;
- struct input_id id;
-
-+ unsigned int flags;
-+
- unsigned long propbit[BITS_TO_LONGS(INPUT_PROP_CNT)];
-
- unsigned long evbit[BITS_TO_LONGS(EV_CNT)];
-@@ -187,6 +190,8 @@ struct input_dev {
- };
- #define to_input_dev(d) container_of(d, struct input_dev, dev)
-
-+#define INPUTDEV_FLAGS_SYNTHETIC 0x000000001
-+
- /*
- * 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 8c71874e8485..7de1f08b60a9 100644
---- a/include/linux/sysrq.h
-+++ b/include/linux/sysrq.h
-@@ -29,6 +29,8 @@
- #define SYSRQ_ENABLE_BOOT 0x0080
- #define SYSRQ_ENABLE_RTNICE 0x0100
-
-+#define SYSRQ_DISABLE_USERSPACE 0x00010000
-+
- struct sysrq_key_op {
- void (*handler)(int);
- char *help_msg;
-@@ -43,8 +45,12 @@ struct sysrq_key_op {
- * are available -- else NULL's).
- */
-
-+#define SYSRQ_FROM_KERNEL 0x0001
-+#define SYSRQ_FROM_PROC 0x0002
-+#define SYSRQ_FROM_SYNTHETIC 0x0004
-+
- void handle_sysrq(int key);
--void __handle_sysrq(int key, bool check_mask);
-+void __handle_sysrq(int key, unsigned int from);
- int register_sysrq_key(int key, struct sysrq_key_op *op);
- 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 9ecfa37c7fbf..902b7785d7dc 100644
---- a/kernel/debug/kdb/kdb_main.c
-+++ b/kernel/debug/kdb/kdb_main.c
-@@ -1981,7 +1981,7 @@ static int kdb_sr(int argc, const char **argv)
- return KDB_ARGCOUNT;
-
- kdb_trap_printk++;
-- __handle_sysrq(*argv[1], check_mask);
-+ __handle_sysrq(*argv[1], check_mask ? SYSRQ_FROM_KERNEL : 0);
- kdb_trap_printk--;
-
- return 0;
-diff --git a/security/Kconfig b/security/Kconfig
-index 720cf9dee2b4..fe08b674bfce 100644
---- a/security/Kconfig
-+++ b/security/Kconfig
-@@ -245,6 +245,16 @@ config LOCK_DOWN_KERNEL_FORCE
- help
- Enable the kernel lock down functionality automatically at boot.
-
-+config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
-+ bool "Allow the kernel lockdown to be lifted by SysRq"
-+ depends on LOCK_DOWN_KERNEL
-+ depends on !LOCK_DOWN_KERNEL_FORCE
-+ 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. On x86, this is SysRq+x.
-+
- source "security/selinux/Kconfig"
- source "security/smack/Kconfig"
- source "security/tomoyo/Kconfig"
-diff --git a/security/lock_down.c b/security/lock_down.c
-index ee00ca2677e7..d68dff872ced 100644
---- a/security/lock_down.c
-+++ b/security/lock_down.c
-@@ -12,8 +12,14 @@
-
- #include <linux/security.h>
- #include <linux/export.h>
-+#include <linux/sysrq.h>
-+#include <asm/setup.h>
-
-+#ifdef CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
-+static __read_mostly bool kernel_locked_down;
-+#else
- static __ro_after_init bool kernel_locked_down;
-+#endif
-
- /*
- * Put the kernel into lock-down mode.
-@@ -58,3 +64,44 @@ bool __kernel_is_locked_down(const char *what, bool first)
- return kernel_locked_down;
- }
- EXPORT_SYMBOL(__kernel_is_locked_down);
-+
-+#ifdef CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
-+
-+/*
-+ * Take the kernel out of lockdown mode.
-+ */
-+static void lift_kernel_lockdown(void)
-+{
-+ pr_notice("Lifting lockdown\n");
-+ kernel_locked_down = false;
-+}
-+
-+/*
-+ * Allow lockdown to be lifted by pressing something like SysRq+x (and not by
-+ * echoing the appropriate letter into the sysrq-trigger file).
-+ */
-+static void sysrq_handle_lockdown_lift(int key)
-+{
-+ if (kernel_locked_down)
-+ lift_kernel_lockdown();
-+}
-+
-+static struct sysrq_key_op lockdown_lift_sysrq_op = {
-+ .handler = sysrq_handle_lockdown_lift,
-+ .help_msg = "unSB(x)",
-+ .action_msg = "Disabling Secure Boot restrictions",
-+ .enable_mask = SYSRQ_DISABLE_USERSPACE,
-+};
-+
-+static int __init lockdown_lift_sysrq(void)
-+{
-+ if (kernel_locked_down) {
-+ lockdown_lift_sysrq_op.help_msg[5] = LOCKDOWN_LIFT_KEY;
-+ register_sysrq_key(LOCKDOWN_LIFT_KEY, &lockdown_lift_sysrq_op);
-+ }
-+ return 0;
-+}
-+
-+late_initcall(lockdown_lift_sysrq);
-+
-+#endif /* CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ */
---
-2.21.0
-
-
-From c3e9fb754f7603ae10a750f685f0174c5ae51ffa Mon Sep 17 00:00:00 2001
-From: Vasily Gorbik <gor@linux.ibm.com>
-Date: Wed, 21 Nov 2018 13:05:10 +0100
-Subject: [PATCH 29/29] debugfs: avoid EPERM when no open file operation
- defined
-
-With "debugfs: Restrict debugfs when the kernel is locked down"
-return code "r" is unconditionally set to -EPERM, which stays like that
-until function return if no "open" file operation defined, effectivelly
-resulting in "Operation not permitted" for all such files despite kernel
-lock down status or CONFIG_LOCK_DOWN_KERNEL being enabled.
-
-In particular this breaks 2 debugfs files on s390:
-/sys/kernel/debug/s390_hypfs/diag_304
-/sys/kernel/debug/s390_hypfs/diag_204
-
-To address that set EPERM return code only when debugfs_is_locked_down
-returns true.
-
-Fixes: 3fc322605158 ("debugfs: Restrict debugfs when the kernel is locked down")
-Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
----
- fs/debugfs/file.c | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
-index 8eeff9068228..9c56e1aa1f29 100644
---- a/fs/debugfs/file.c
-+++ b/fs/debugfs/file.c
-@@ -167,9 +167,10 @@ static int open_proxy_open(struct inode *inode, struct file *filp)
-
- real_fops = debugfs_real_fops(filp);
-
-- r = -EPERM;
-- if (debugfs_is_locked_down(inode, filp, real_fops))
-+ if (debugfs_is_locked_down(inode, filp, real_fops)) {
-+ r = -EPERM;
- goto out;
-+ }
-
- real_fops = fops_get(real_fops);
- if (!real_fops) {
-@@ -296,9 +297,10 @@ static int full_proxy_open(struct inode *inode, struct file *filp)
- return r == -EIO ? -ENOENT : r;
-
- real_fops = debugfs_real_fops(filp);
-- r = -EPERM;
-- if (debugfs_is_locked_down(inode, filp, real_fops))
-+ if (debugfs_is_locked_down(inode, filp, real_fops)) {
-+ r = -EPERM;
- goto out;
-+ }
-
- real_fops = fops_get(real_fops);
- if (!real_fops) {
---
-2.21.0
-
diff --git a/efi-secureboot.patch b/efi-secureboot.patch
index bb5b47b42..ee5382029 100644
--- a/efi-secureboot.patch
+++ b/efi-secureboot.patch
@@ -1,7 +1,109 @@
+From 478a0cff698409224330ea9e25eb332220b55dbb Mon Sep 17 00:00:00 2001
+From: Jeremy Cline <jcline@redhat.com>
+Date: Mon, 30 Sep 2019 21:22:47 +0000
+Subject: [PATCH 1/3] security: lockdown: expose a hook to lock the kernel down
+
+In order to automatically lock down kernels running on UEFI machines
+booted in Secure Boot mode, expose the lock_kernel_down() hook.
+
+Signed-off-by: Jeremy Cline <jcline@redhat.com>
+---
+ include/linux/lsm_hooks.h | 8 ++++++++
+ include/linux/security.h | 5 +++++
+ security/lockdown/lockdown.c | 1 +
+ security/security.c | 6 ++++++
+ 4 files changed, 20 insertions(+)
+
+diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
+index a3763247547c..8d76d1f153ed 100644
+--- a/include/linux/lsm_hooks.h
++++ b/include/linux/lsm_hooks.h
+@@ -1454,6 +1454,12 @@
+ * code execution in kernel space should be permitted.
+ *
+ * @what: kernel feature being accessed
++ *
++ * @lock_kernel_down
++ * Put the kernel into lock-down mode.
++ *
++ * @where: Where the lock-down is originating from (e.g. command line option)
++ * @level: The lock-down level (can only increase)
+ */
+ union security_list_options {
+ int (*binder_set_context_mgr)(struct task_struct *mgr);
+@@ -1818,6 +1824,7 @@ union security_list_options {
+ void (*bpf_prog_free_security)(struct bpf_prog_aux *aux);
+ #endif /* CONFIG_BPF_SYSCALL */
+ int (*locked_down)(enum lockdown_reason what);
++ int (*lock_kernel_down)(const char *where, enum lockdown_reason level);
+ };
+
+ struct security_hook_heads {
+@@ -2060,6 +2067,7 @@ struct security_hook_heads {
+ struct hlist_head bpf_prog_free_security;
+ #endif /* CONFIG_BPF_SYSCALL */
+ struct hlist_head locked_down;
++ struct hlist_head lock_kernel_down;
+ } __randomize_layout;
+
+ /*
+diff --git a/include/linux/security.h b/include/linux/security.h
+index a8d59d612d27..467b9ccdf993 100644
+--- a/include/linux/security.h
++++ b/include/linux/security.h
+@@ -442,6 +442,7 @@ int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen);
+ int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen);
+ int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen);
+ int security_locked_down(enum lockdown_reason what);
++int security_lock_kernel_down(const char *where, enum lockdown_reason level);
+ #else /* CONFIG_SECURITY */
+
+ static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data)
+@@ -1269,6 +1270,10 @@ static inline int security_locked_down(enum lockdown_reason what)
+ {
+ return 0;
+ }
++static inline int security_lock_kernel_down(const char *where, enum lockdown_reason level)
++{
++ return 0;
++}
+ #endif /* CONFIG_SECURITY */
+
+ #ifdef CONFIG_SECURITY_NETWORK
+diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c
+index 8a10b43daf74..72a623075749 100644
+--- a/security/lockdown/lockdown.c
++++ b/security/lockdown/lockdown.c
+@@ -97,6 +97,7 @@ static int lockdown_is_locked_down(enum lockdown_reason what)
+
+ static struct security_hook_list lockdown_hooks[] __lsm_ro_after_init = {
+ LSM_HOOK_INIT(locked_down, lockdown_is_locked_down),
++ LSM_HOOK_INIT(lock_kernel_down, lock_kernel_down),
+ };
+
+ static int __init lockdown_lsm_init(void)
+diff --git a/security/security.c b/security/security.c
+index 1bc000f834e2..1506b95427cf 100644
+--- a/security/security.c
++++ b/security/security.c
+@@ -2404,3 +2404,9 @@ int security_locked_down(enum lockdown_reason what)
+ return call_int_hook(locked_down, 0, what);
+ }
+ EXPORT_SYMBOL(security_locked_down);
++
++int security_lock_kernel_down(const char *where, enum lockdown_reason level)
++{
++ return call_int_hook(lock_kernel_down, 0, where, level);
++}
++EXPORT_SYMBOL(security_lock_kernel_down);
+--
+2.21.0
+
+
From b5123d0553f4ed5e734f6457696cdd30228d1eee Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Tue, 27 Feb 2018 10:04:55 +0000
-Subject: [PATCH 29/31] efi: Add an EFI_SECURE_BOOT flag to indicate secure
+Subject: [PATCH 2/3] 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
@@ -15,6 +117,7 @@ Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
cc: linux-efi@vger.kernel.org
+[Rebased for context; efi_is_table_address was moved to arch/x86]
Signed-off-by: Jeremy Cline <jcline@redhat.com>
---
arch/x86/kernel/setup.c | 14 +-----------
@@ -25,10 +128,10 @@ Signed-off-by: Jeremy Cline <jcline@redhat.com>
create mode 100644 drivers/firmware/efi/secureboot.c
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index b74e7bfed6ab..7da1712c89c9 100644
+index bbe35bf879f5..7e528b6af86b 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
-@@ -1158,19 +1158,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1179,19 +1179,7 @@ void __init setup_arch(char **cmdline_p)
/* Allocate bigger log buffer */
setup_log_buf(1);
@@ -50,7 +153,7 @@ index b74e7bfed6ab..7da1712c89c9 100644
reserve_initrd();
diff --git a/drivers/firmware/efi/Makefile b/drivers/firmware/efi/Makefile
-index 5f9f5039de50..7a0a6378203e 100644
+index 4ac2de4dfa72..195b078a423c 100644
--- a/drivers/firmware/efi/Makefile
+++ b/drivers/firmware/efi/Makefile
@@ -24,6 +24,7 @@ obj-$(CONFIG_EFI_FAKE_MEMMAP) += fake_mem.o
@@ -59,8 +162,8 @@ index 5f9f5039de50..7a0a6378203e 100644
obj-$(CONFIG_EFI_DEV_PATH_PARSER) += dev-path-parser.o
+obj-$(CONFIG_EFI) += secureboot.o
obj-$(CONFIG_APPLE_PROPERTIES) += apple-properties.o
+ obj-$(CONFIG_EFI_RCI2_TABLE) += rci2-table.o
- arm-obj-$(CONFIG_EFI) := arm-init.o arm-runtime.o
diff --git a/drivers/firmware/efi/secureboot.c b/drivers/firmware/efi/secureboot.c
new file mode 100644
index 000000000000..9070055de0a1
@@ -106,10 +209,10 @@ index 000000000000..9070055de0a1
+ }
+}
diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 100ce4a4aff6..62361b647a75 100644
+index 21d81021c1f4..758ec061d03b 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
-@@ -1155,6 +1155,14 @@ extern int __init efi_setup_pcdp_console(char *);
+@@ -1204,6 +1204,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? */
@@ -124,16 +227,16 @@ index 100ce4a4aff6..62361b647a75 100644
#ifdef CONFIG_EFI
/*
-@@ -1198,6 +1206,8 @@ static inline bool efi_enabled(int feature)
+@@ -1214,6 +1222,8 @@ static inline bool efi_enabled(int feature)
+ return test_bit(feature, &efi.flags) != 0;
+ }
extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused);
-
- extern bool efi_is_table_address(unsigned long phys_addr);
+
+extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode);
#else
static inline bool efi_enabled(int feature)
{
-@@ -1216,6 +1226,8 @@ static inline bool efi_is_table_address(unsigned long phys_addr)
+@@ -1227,6 +1237,8 @@ efi_capsule_pending(int *reset_type)
{
return false;
}
@@ -142,9 +245,7 @@ index 100ce4a4aff6..62361b647a75 100644
#endif
extern int efi_status_to_err(efi_status_t status);
-@@ -1577,12 +1589,6 @@ efi_status_t efi_setup_gop(efi_system_table_t *sys_table_arg,
- #endif
-
+@@ -1619,12 +1631,6 @@ static inline bool efi_runtime_disabled(void) { return true; }
extern void efi_call_virt_check_flags(unsigned long flags, const char *call);
extern unsigned long efi_call_virt_save_flags(void);
@@ -158,121 +259,76 @@ index 100ce4a4aff6..62361b647a75 100644
#ifdef CONFIG_RESET_ATTACK_MITIGATION
--
-2.19.1
+2.21.0
+
-From d78bf678059f83e22bec8ada1a448e22b9b90203 Mon Sep 17 00:00:00 2001
+From 15368f76d4997912318d35c52bfeb9041d85098e Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
-Date: Tue, 27 Feb 2018 10:04:55 +0000
-Subject: [PATCH 30/31] efi: Lock down the kernel if booted in secure boot mode
+Date: Mon, 30 Sep 2019 21:28:16 +0000
+Subject: [PATCH 3/3] 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
-require that all kernel modules also be signed. Add a configuration option
-that to lock down the kernel - which includes requiring validly signed
-modules - if the kernel is secure-booted.
+UEFI Secure Boot provides a mechanism for ensuring that the firmware
+will only load signed bootloaders and kernels. Certain use cases may
+also require that all kernel modules also be signed. Add a
+configuration option that to lock down the kernel - which includes
+requiring validly signed modules - if the kernel is secure-booted.
Signed-off-by: David Howells <dhowells@redhat.com>
-Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-cc: linux-efi@vger.kernel.org
+Signed-off-by: Jeremy Cline <jcline@redhat.com>
---
- arch/x86/kernel/setup.c | 6 ++++--
- fs/debugfs/inode.c | 2 +-
- security/Kconfig | 14 ++++++++++++++
- security/lock_down.c | 5 +++++
- 4 files changed, 20 insertions(+), 3 deletions(-)
+ arch/x86/kernel/setup.c | 8 ++++++++
+ security/lockdown/Kconfig | 13 +++++++++++++
+ 2 files changed, 21 insertions(+)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index adeee6329f55..27a54ec878bd 100644
+index 77ea96b794bd..a119e1bc9623 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
-@@ -65,6 +65,7 @@
- #include <linux/dma-mapping.h>
- #include <linux/ctype.h>
- #include <linux/uaccess.h>
+@@ -73,6 +73,7 @@
+ #include <linux/jiffies.h>
+ #include <linux/mem_encrypt.h>
+ #include <linux/sizes.h>
+#include <linux/security.h>
- #include <linux/percpu.h>
- #include <linux/crash_dump.h>
-@@ -1005,6 +1006,10 @@ void __init setup_arch(char **cmdline_p)
+ #include <linux/usb/xhci-dbgp.h>
+ #include <video/edid.h>
+@@ -1027,6 +1028,13 @@ void __init setup_arch(char **cmdline_p)
if (efi_enabled(EFI_BOOT))
efi_init();
+ efi_set_secure_boot(boot_params.secure_boot);
+
-+ init_lockdown();
++#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT
++ if (efi_enabled(EFI_SECURE_BOOT))
++ security_lock_kernel_down("EFI Secure Boot mode", LOCKDOWN_CONFIDENTIALITY_MAX);
++#endif
+
dmi_setup();
/*
-@@ -1159,8 +1164,6 @@ void __init setup_arch(char **cmdline_p)
- /* Allocate bigger log buffer */
- setup_log_buf(1);
-
-- efi_set_secure_boot(boot_params.secure_boot);
--
- 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 9c343f262bdd..30788bc47863 100644
---- a/security/Kconfig
-+++ b/security/Kconfig
-@@ -244,6 +244,20 @@ config LOCK_DOWN_KERNEL_FORCE
- Allow the lockdown on a kernel to be lifted, by pressing a SysRq key
- combination on a wired keyboard. On x86, this is SysRq+x.
+diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig
+index e84ddf484010..d0501353a4b9 100644
+--- a/security/lockdown/Kconfig
++++ b/security/lockdown/Kconfig
+@@ -16,6 +16,19 @@ config SECURITY_LOCKDOWN_LSM_EARLY
+ subsystem is fully initialised. If enabled, lockdown will
+ unconditionally be called before any other LSMs.
+config LOCK_DOWN_IN_EFI_SECURE_BOOT
+ bool "Lock down the kernel in EFI Secure Boot mode"
+ default n
-+ select LOCK_DOWN_KERNEL
-+ depends on EFI
++ depends on EFI && SECURITY_LOCKDOWN_LSM_EARLY
+ help
+ UEFI Secure Boot provides a mechanism for ensuring that the firmware
+ will only load signed bootloaders and kernels. Secure boot mode may
+ be determined from EFI variables provided by the system firmware if
+ not indicated by the boot parameters.
+
-+ Enabling this option turns on results in kernel lockdown being
-+ triggered if EFI Secure Boot is set.
++ Enabling this option results in kernel lockdown being triggered if
++ EFI Secure Boot is set.
+
- source "security/selinux/Kconfig"
- source "security/smack/Kconfig"
- source "security/tomoyo/Kconfig"
-diff --git a/security/lock_down.c b/security/lock_down.c
-index ee00ca2677e7..bb4dc7838f3e 100644
---- a/security/lock_down.c
-+++ b/security/lock_down.c
-@@ -12,6 +12,7 @@
-
- #include <linux/security.h>
- #include <linux/export.h>
-+#include <linux/efi.h>
- #include <linux/sysrq.h>
- #include <asm/setup.h>
-
-@@ -44,6 +45,10 @@ void __init init_lockdown(void)
- #ifdef CONFIG_LOCK_DOWN_FORCE
- lock_kernel_down("Kernel configuration");
- #endif
-+#ifdef CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT
-+ if (efi_enabled(EFI_SECURE_BOOT))
-+ lock_kernel_down("EFI secure boot");
-+#endif
- }
-
- /**
+ choice
+ prompt "Kernel default lockdown mode"
+ default LOCK_DOWN_KERNEL_FORCE_NONE
--
-2.14.3
+2.21.0
diff --git a/filter-aarch64.sh.fedora b/filter-aarch64.sh.fedora
new file mode 100644
index 000000000..41dc7d19c
--- /dev/null
+++ b/filter-aarch64.sh.fedora
@@ -0,0 +1,18 @@
+#! /bin/bash
+
+# This is the aarch64 override file for the core/drivers package split. The
+# module directories listed here and in the generic list in filter-modules.sh
+# will be moved to the resulting kernel-modules package for this arch.
+# Anything not listed in those files will be in the kernel-core package.
+#
+# Please review the default list in filter-modules.sh before making
+# 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 fpga infiniband isdn leds media memstick message mmc mtd 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 pl111 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 chtls"
diff --git a/filter-aarch64.sh.rhel b/filter-aarch64.sh.rhel
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/filter-aarch64.sh.rhel
diff --git a/filter-armv7hl.sh.fedora b/filter-armv7hl.sh.fedora
new file mode 100644
index 000000000..69183432b
--- /dev/null
+++ b/filter-armv7hl.sh.fedora
@@ -0,0 +1,18 @@
+#! /bin/bash
+
+# This is the armv7hl override file for the core/drivers package split. The
+# module directories listed here and in the generic list in filter-modules.sh
+# will be moved to the resulting kernel-modules package for this arch.
+# Anything not listed in those files will be in the kernel-core package.
+#
+# Please review the default list in filter-modules.sh before making
+# 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 fpga infiniband isdn media memstick message 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 arm armada bridge ast exynos etnaviv hisilicon i2c imx meson mgag200 msm nouveau omapdrm panel pl111 radeon rockchip sti stm sun4i sun4i-drm-hdmi tegra tilcdc 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 chtls bq27xxx_battery_hdq"
diff --git a/filter-armv7hl.sh.rhel b/filter-armv7hl.sh.rhel
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/filter-armv7hl.sh.rhel
diff --git a/filter-i686.sh.fedora b/filter-i686.sh.fedora
new file mode 100644
index 000000000..1a13ddf60
--- /dev/null
+++ b/filter-i686.sh.fedora
@@ -0,0 +1,14 @@
+#! /bin/bash
+
+# This is the i686 override file for the core/drivers package split. The
+# module directories listed here and in the generic list in filter-modules.sh
+# will be moved to the resulting kernel-modules package for this arch.
+# Anything not listed in those files will be in the kernel-core package.
+#
+# Please review the default list in filter-modules.sh before making
+# 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 fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1"
+
+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 hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation hid-sensor-temperature hid-sensor-humidity target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr chtls parport_serial regmap-sdw hid-asus"
diff --git a/filter-i686.sh.rhel b/filter-i686.sh.rhel
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/filter-i686.sh.rhel
diff --git a/filter-modules.sh.fedora b/filter-modules.sh.fedora
new file mode 100755
index 000000000..eb246e157
--- /dev/null
+++ b/filter-modules.sh.fedora
@@ -0,0 +1,153 @@
+#! /bin/bash
+#
+# Called as filter-modules.sh list-of-modules Arch
+
+# This script filters the modules into the kernel-core and kernel-modules
+# subpackages. We list out subsystems/subdirs to prune from the installed
+# module directory. What is left is put into the kernel-core package. What is
+# pruned is contained in the kernel-modules package.
+#
+# This file contains the default subsys/subdirs to prune from all architectures.
+# If an architecture needs to differ, we source a per-arch filter-<arch>.sh file
+# that contains the set of override lists to be used instead. If a module or
+# subsys should be in kernel-modules on all arches, please change the defaults
+# listed here.
+
+# Set the default dirs/modules to filter out
+driverdirs="atm auxdisplay bcma bluetooth firewire fmc fpga infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb soundwire staging tty uio uwb w1"
+
+chardrvs="mwave pcmcia"
+
+netdrvs="appletalk can dsa hamradio ieee802154 irda ppp slip usb wireless"
+
+ethdrvs="3com adaptec alteon amd aquantia atheros broadcom cadence calxeda chelsio cisco dec dlink emulex icplus marvell mellanox neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis smsc stmicro sun tehuti ti wiznet xircom"
+
+inputdrvs="gameport tablet touchscreen"
+
+scsidrvs="aacraid advansys aic7xxx aic94xx be2iscsi bfa bnx2i bnx2fc csiostor cxgbi esas2r fcoe fnic isci libsas lpfc megaraid mpt2sas mpt3sas mvsas pm8001 qla2xxx qla4xxx sym53c8xx_2 ufs qedf wd719x"
+
+usbdrvs="atm image misc serial wusbcore"
+
+fsdrvs="affs befs coda cramfs dlm ecryptfs hfs hfsplus jfs jffs2 minix ncpfs nilfs2 ocfs2 reiserfs romfs squashfs sysv ubifs ufs"
+
+netprots="6lowpan appletalk atm ax25 batman-adv bluetooth can dccp dsa ieee802154 irda l2tp mac80211 mac802154 mpls netrom nfc rds rfkill rose sctp smc wireless"
+
+drmdrvs="amd ast bridge gma500 i2c i915 mgag200 nouveau panel radeon"
+
+iiodrvs="accel adc afe common dac gyro health humidity light magnetometer multiplexer orientation potentiometer potentiostat pressure temperature"
+
+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 chtls parport_serial regmap-sdw hid-asus"
+
+# Grab the arch-specific filter list overrides
+source ./filter-$2.sh
+
+filter_dir() {
+ filelist=$1
+ dir=$2
+
+ grep -v -e "${dir}/" ${filelist} > ${filelist}.tmp
+
+ if [ $? -ne 0 ]
+ then
+ echo "Couldn't remove ${dir}. Skipping."
+ else
+ grep -e "${dir}/" ${filelist} >> k-d.list
+ mv ${filelist}.tmp $filelist
+ fi
+
+ return 0
+}
+
+filter_ko() {
+ filelist=$1
+ mod=$2
+
+ grep -v -e "${mod}.ko" ${filelist} > ${filelist}.tmp
+
+ if [ $? -ne 0 ]
+ then
+ echo "Couldn't remove ${mod}.ko Skipping."
+ else
+ grep -e "${mod}.ko" ${filelist} >> k-d.list
+ mv ${filelist}.tmp $filelist
+ fi
+
+ return 0
+}
+
+# Filter the drivers/ subsystems
+for subsys in ${driverdirs}
+do
+ filter_dir $1 drivers/${subsys}
+done
+
+# Filter the networking drivers
+for netdrv in ${netdrvs}
+do
+ filter_dir $1 drivers/net/${netdrv}
+done
+
+# Filter the char drivers
+for char in ${chardrvs}
+do
+ filter_dir $1 drivers/char/${input}
+done
+
+# Filter the ethernet drivers
+for eth in ${ethdrvs}
+do
+ filter_dir $1 drivers/net/ethernet/${eth}
+done
+
+# SCSI
+for scsi in ${scsidrvs}
+do
+ filter_dir $1 drivers/scsi/${scsi}
+done
+
+# Input
+for input in ${inputdrvs}
+do
+ filter_dir $1 drivers/input/${input}
+done
+
+# USB
+for usb in ${usbdrvs}
+do
+ filter_dir $1 drivers/usb/${usb}
+done
+
+# Filesystems
+for fs in ${fsdrvs}
+do
+ filter_dir $1 fs/${fs}
+done
+
+# Network protocols
+for prot in ${netprots}
+do
+ filter_dir $1 kernel/net/${prot}
+done
+
+# DRM
+for drm in ${drmdrvs}
+do
+ filter_dir $1 drivers/gpu/drm/${drm}
+done
+
+# Just kill sound.
+filter_dir $1 kernel/sound
+
+# Now go through and filter any single .ko files that might have deps on the
+# things we filtered above
+for mod in ${singlemods}
+do
+ filter_ko $1 ${mod}
+done
+
+# Go through our generated drivers list and remove the .ko files. We'll
+# restore them later.
+for mod in `cat k-d.list`
+do
+ rm -rf $mod
+done
diff --git a/filter-modules.sh.rhel b/filter-modules.sh.rhel
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/filter-modules.sh.rhel
diff --git a/filter-ppc64le.sh.fedora b/filter-ppc64le.sh.fedora
new file mode 100644
index 000000000..24d3f1346
--- /dev/null
+++ b/filter-ppc64le.sh.fedora
@@ -0,0 +1,14 @@
+#! /bin/bash
+
+# This is the ppc64le override file for the core/drivers package split. The
+# module directories listed here and in the generic list in filter-modules.sh
+# will be moved to the resulting kernel-modules package for this arch.
+# Anything not listed in those files will be in the kernel-core package.
+#
+# Please review the default list in filter-modules.sh before making
+# 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 fpga infiniband isdn leds media memstick message mmc mtd nfc ntb pcmcia platform power ssb staging tty uio uwb w1"
+
+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 chtls"
diff --git a/filter-ppc64le.sh.rhel b/filter-ppc64le.sh.rhel
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/filter-ppc64le.sh.rhel
diff --git a/filter-s390x.sh.fedora b/filter-s390x.sh.fedora
new file mode 100644
index 000000000..04f7110ad
--- /dev/null
+++ b/filter-s390x.sh.fedora
@@ -0,0 +1,12 @@
+#! /bin/bash
+
+# This is the s390x override file for the core/drivers package split. The
+# module directories listed here and in the generic list in filter-modules.sh
+# will be moved to the resulting kernel-modules package for this arch.
+# Anything not listed in those files will be in the kernel-core package.
+#
+# Please review the default list in filter-modules.sh before making
+# modifications to the overrides below. If something should be removed across
+# all arches, remove it in the default instead of per-arch.
+
+# Defaults work so no need to override
diff --git a/filter-s390x.sh.rhel b/filter-s390x.sh.rhel
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/filter-s390x.sh.rhel
diff --git a/filter-x86_64.sh.fedora b/filter-x86_64.sh.fedora
new file mode 100644
index 000000000..1aa80f2e0
--- /dev/null
+++ b/filter-x86_64.sh.fedora
@@ -0,0 +1,12 @@
+#! /bin/bash
+
+# This is the x86_64 override file for the core/drivers package split. The
+# module directories listed here and in the generic list in filter-modules.sh
+# will be moved to the resulting kernel-modules package for this arch.
+# Anything not listed in those files will be in the kernel-core package.
+#
+# Please review the default list in filter-modules.sh before making
+# modifications to the overrides below. If something should be removed across
+# all arches, remove it in the default instead of per-arch.
+
+# Defaults work so no need to override
diff --git a/filter-x86_64.sh.rhel b/filter-x86_64.sh.rhel
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/filter-x86_64.sh.rhel
diff --git a/firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch b/firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch
deleted file mode 100644
index 64b7dbefa..000000000
--- a/firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From: Laura Abbott <labbott@fedoraproject.org>
-Date: Tue, 28 Apr 2015 15:37:44 -0700
-Subject: [PATCH] firmware: Drop WARN from usermodehelper_read_trylock error
- case
-
-We've received a number of reports of warnings when coming
-out of suspend with certain bluetooth firmware configurations:
-
-WARNING: CPU: 3 PID: 3280 at drivers/base/firmware_class.c:1126
-_request_firmware+0x558/0x810()
-Modules linked in: ccm ip6t_rpfilter ip6t_REJECT nf_reject_ipv6
-xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter
-ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6
-ip6table_mangle ip6table_security ip6table_raw ip6table_filter
-ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4
-nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw
-binfmt_misc bnep intel_rapl iosf_mbi arc4 x86_pkg_temp_thermal
-snd_hda_codec_hdmi coretemp kvm_intel joydev snd_hda_codec_realtek
-iwldvm snd_hda_codec_generic kvm iTCO_wdt mac80211 iTCO_vendor_support
-snd_hda_intel snd_hda_controller snd_hda_codec crct10dif_pclmul
-snd_hwdep crc32_pclmul snd_seq crc32c_intel ghash_clmulni_intel uvcvideo
-snd_seq_device iwlwifi btusb videobuf2_vmalloc snd_pcm videobuf2_core
- serio_raw bluetooth cfg80211 videobuf2_memops sdhci_pci v4l2_common
-videodev thinkpad_acpi sdhci i2c_i801 lpc_ich mfd_core wacom mmc_core
-media snd_timer tpm_tis hid_logitech_hidpp wmi tpm rfkill snd mei_me mei
-shpchp soundcore nfsd auth_rpcgss nfs_acl lockd grace sunrpc i915
-i2c_algo_bit drm_kms_helper e1000e drm hid_logitech_dj ptp pps_core
-video
-CPU: 3 PID: 3280 Comm: kworker/u17:0 Not tainted 3.19.3-200.fc21.x86_64
-Hardware name: LENOVO 343522U/343522U, BIOS GCET96WW (2.56 ) 10/22/2013
-Workqueue: hci0 hci_power_on [bluetooth]
- 0000000000000000 0000000089944328 ffff88040acffb78 ffffffff8176e215
- 0000000000000000 0000000000000000 ffff88040acffbb8 ffffffff8109bc1a
- 0000000000000000 ffff88040acffcd0 00000000fffffff5 ffff8804076bac40
-Call Trace:
- [<ffffffff8176e215>] dump_stack+0x45/0x57
- [<ffffffff8109bc1a>] warn_slowpath_common+0x8a/0xc0
- [<ffffffff8109bd4a>] warn_slowpath_null+0x1a/0x20
- [<ffffffff814dbe78>] _request_firmware+0x558/0x810
- [<ffffffff814dc165>] request_firmware+0x35/0x50
- [<ffffffffa03a7886>] btusb_setup_bcm_patchram+0x86/0x590 [btusb]
- [<ffffffff814d40e6>] ? rpm_idle+0xd6/0x230
- [<ffffffffa04d4801>] hci_dev_do_open+0xe1/0xa90 [bluetooth]
- [<ffffffff810c51dd>] ? ttwu_do_activate.constprop.90+0x5d/0x70
- [<ffffffffa04d5980>] hci_power_on+0x40/0x200 [bluetooth]
- [<ffffffff810b487c>] process_one_work+0x14c/0x3f0
- [<ffffffff810b52f3>] worker_thread+0x53/0x470
- [<ffffffff810b52a0>] ? rescuer_thread+0x300/0x300
- [<ffffffff810ba548>] kthread+0xd8/0xf0
- [<ffffffff810ba470>] ? kthread_create_on_node+0x1b0/0x1b0
- [<ffffffff81774958>] ret_from_fork+0x58/0x90
- [<ffffffff810ba470>] ? kthread_create_on_node+0x1b0/0x1b0
-
-This occurs after every resume.
-
-When resuming, the bluetooth driver needs to re-request the
-firmware. This re-request is happening before usermodehelper
-is fully enabled. If the firmware load succeeded previously, the
-caching behavior of the firmware code typically negates the
-need to call the usermodehelper code again and the request
-succeeds. If the firmware was never loaded because it isn't
-actually present in the file system, this results in a call
-to usermodehelper and a failure warning every resume.
-
-The proper fix is to add a reset_resume functionality to the
-btusb driver to be able to handle the resume case. The
-work for this is ongoing so in the mean time just silence
-the warning since we know it's a problem.
-
-Bugzilla: 1133378
-Upstream-status: Working on it. It's a difficult problem :(
-Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
----
- drivers/base/firmware_class.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
-index 894bda114224..f7a8d27b6459 100644
---- a/drivers/base/firmware_class.c
-+++ b/drivers/base/firmware_class.c
-@@ -1144,7 +1144,7 @@ _request_firmware(const struct firmware **firmware_p, const char *name,
- }
- } else {
- ret = usermodehelper_read_trylock();
-- if (WARN_ON(ret)) {
-+ if (ret) {
- dev_err(device, "firmware: %s will not be loaded\n",
- name);
- goto out;
diff --git a/generate_all_configs.sh b/generate_all_configs.sh
index dde72eaff..14f0f3a24 100755
--- a/generate_all_configs.sh
+++ b/generate_all_configs.sh
@@ -1,6 +1,36 @@
#!/bin/sh
-for i in kernel-*.config; do
- NEW=kernel-$VERSION-`echo $i | cut -d - -f2-`
+# Adjusts the configuration options to build the variants correctly
+#
+# arg1: configuration to go in the primary variant
+# arg2: are we only generating debug configs
+
+
+PRIMARY=$1
+DEBUGBUILDSENABLED=$2
+
+if [ -z $2 ]; then
+ exit 1
+fi
+
+if [ $PRIMARY == "fedora" ]; then
+ SECONDARY=rhel
+else
+ SECONDARY=fedora
+fi
+
+for i in kernel-*-$PRIMARY.config; do
+ NEW=kernel-$VERSION-`echo $i | cut -d - -f2- | sed s/-$PRIMARY//`
+ #echo $NEW
mv $i $NEW
done
+
+rm kernel-*-$SECONDARY.config
+
+if [ $DEBUGBUILDSENABLED -eq 0 ]; then
+ for i in kernel-*debug*.config; do
+ base=`echo $i | sed -r s/-?debug//g`
+ NEW=kernel-`echo $base | cut -d - -f2-`
+ mv $i $NEW
+ done
+fi
diff --git a/gpio-max77620-Use-correct-unit-for-debounce-times.patch b/gpio-max77620-Use-correct-unit-for-debounce-times.patch
new file mode 100644
index 000000000..4d4b79d33
--- /dev/null
+++ b/gpio-max77620-Use-correct-unit-for-debounce-times.patch
@@ -0,0 +1,475 @@
+From patchwork Wed Oct 2 12:28:24 2019
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Thierry Reding <thierry.reding@gmail.com>
+X-Patchwork-Id: 1170635
+Return-Path: <linux-gpio-owner@vger.kernel.org>
+X-Original-To: incoming@patchwork.ozlabs.org
+Delivered-To: patchwork-incoming@bilbo.ozlabs.org
+Authentication-Results: ozlabs.org;
+ spf=none (mailfrom) smtp.mailfrom=vger.kernel.org
+ (client-ip=209.132.180.67; helo=vger.kernel.org;
+ envelope-from=linux-gpio-owner@vger.kernel.org;
+ receiver=<UNKNOWN>)
+Authentication-Results: ozlabs.org;
+ dmarc=pass (p=none dis=none) header.from=gmail.com
+Authentication-Results: ozlabs.org; dkim=pass (2048-bit key;
+ unprotected) header.d=gmail.com header.i=@gmail.com
+ header.b="ZNLKx8UP"; dkim-atps=neutral
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+ by ozlabs.org (Postfix) with ESMTP id 46jwRG4D1Dz9sPj
+ for <incoming@patchwork.ozlabs.org>;
+ Wed, 2 Oct 2019 22:28:42 +1000 (AEST)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1726684AbfJBM2d (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);
+ Wed, 2 Oct 2019 08:28:33 -0400
+Received: from mail-wr1-f66.google.com ([209.85.221.66]:43919 "EHLO
+ mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1725848AbfJBM2c (ORCPT
+ <rfc822; linux-gpio@vger.kernel.org>); Wed, 2 Oct 2019 08:28:32 -0400
+Received: by mail-wr1-f66.google.com with SMTP id q17so19436519wrx.10;
+ Wed, 02 Oct 2019 05:28:30 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
+ h=from:to:cc:subject:date:message-id:in-reply-to:references
+ :mime-version:content-transfer-encoding;
+ bh=iB2sFoZ4x2KF5IYNHgeqY98wXl2bB2JULeTFtyoqdVY=;
+ b=ZNLKx8UP+ukUsboEbPQ9oqLgg5M+37mex1mpr0SgaI7zjToRbmdCJL/chPAEK2r7t8
+ C+RcBU7oQnbO3L1hTZQh1VyMX84xXmn0x8g7AskW0bydPo29O2lwBgM9BeNJiMt7gaS7
+ LtCbNGe/ttaTfoTsJSOmpLgAJLVJ7mpN5r3h18HtAYcsB5NqjcgFF1yFZ9FvmXOIhxAm
+ 1MxDJ7tO9pJbc4JQ8iR/yPEsCNibvlX1qtkuBUWdy6aJHG4CkqIbqb+V+84d3R5bsmoe
+ sDx7f/mMbJ6cF7dCarqOe47Quscz7UkGw/gZywhaYNS/7p6JBvKDCe0bbruzj3MEXMRy
+ 2tlw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20161025;
+ h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+ :references:mime-version:content-transfer-encoding;
+ bh=iB2sFoZ4x2KF5IYNHgeqY98wXl2bB2JULeTFtyoqdVY=;
+ b=E8tcBQ6lyFYE0z3JyOT1cT/Bgc194gfYXxSrFLZnHENJjrNz2Ijr9mgmTvanMcmLgs
+ qvPIH6L5rKKzPpmhxkGCVNMunQuR3U4+g4lCHaJuDE3QikN/dAMpfidmgej7UBcnxYXq
+ c8yhdhWsg36bVdUYmTdrPVNYayH3WqNj6h3724+nRQnwGs5Y+emoWuhckIBZQR2fJd3Z
+ jEEmej1F2QBBv4/Cf7RoOd9BVX1DFI3LgOoGADQcGnuCW/+2clFWp860wnWLGdTGqPKI
+ KCaPoNOzFDkbQCyhebPt8recsiTexB8AmRdTCOszf/TYQwmlvVUUSVqdwY4/P2N0uAGO
+ 8kOA==
+X-Gm-Message-State: APjAAAVWUbix6mCYosiAjDRWTB69Pz3baQGdU6UKJJJba2d6nCyRFzs3
+ w1iyx5KVIbR84BwLezjxgUk=
+X-Google-Smtp-Source: APXvYqylRlhdhO5L5gTZTUh+KEGBPZYsf15BqzctBqRpCy2v75DzIQkOOs8h+NZd8ePk6530OH8SlA==
+X-Received: by 2002:adf:f112:: with SMTP id r18mr2493221wro.88.1570019309276;
+ Wed, 02 Oct 2019 05:28:29 -0700 (PDT)
+Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206])
+ by smtp.gmail.com with ESMTPSA id
+ h17sm10777194wme.6.2019.10.02.05.28.28
+ (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
+ Wed, 02 Oct 2019 05:28:28 -0700 (PDT)
+From: Thierry Reding <thierry.reding@gmail.com>
+To: Linus Walleij <linus.walleij@linaro.org>,
+ Bartosz Golaszewski <bgolaszewski@baylibre.com>
+Cc: Timo Alho <talho@nvidia.com>, linux-gpio@vger.kernel.org,
+ linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
+Subject: [PATCH 2/3] gpio: max77620: Do not allocate IRQs upfront
+Date: Wed, 2 Oct 2019 14:28:24 +0200
+Message-Id: <20191002122825.3948322-2-thierry.reding@gmail.com>
+X-Mailer: git-send-email 2.23.0
+In-Reply-To: <20191002122825.3948322-1-thierry.reding@gmail.com>
+References: <20191002122825.3948322-1-thierry.reding@gmail.com>
+MIME-Version: 1.0
+Sender: linux-gpio-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-gpio.vger.kernel.org>
+X-Mailing-List: linux-gpio@vger.kernel.org
+
+From: Thierry Reding <treding@nvidia.com>
+
+regmap_add_irq_chip() will try to allocate all of the IRQ descriptors
+upfront if passed a non-zero irq_base parameter. However, the intention
+is to allocate IRQ descriptors on an as-needed basis if possible. Pass 0
+instead of -1 to fix that use-case.
+
+Signed-off-by: Thierry Reding <treding@nvidia.com>
+---
+ drivers/gpio/gpio-max77620.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/gpio/gpio-max77620.c b/drivers/gpio/gpio-max77620.c
+index faf86ea9c51a..c58b56e5291e 100644
+--- a/drivers/gpio/gpio-max77620.c
++++ b/drivers/gpio/gpio-max77620.c
+@@ -304,7 +304,7 @@ static int max77620_gpio_probe(struct platform_device *pdev)
+ }
+
+ ret = devm_regmap_add_irq_chip(&pdev->dev, chip->rmap, gpio_irq,
+- IRQF_ONESHOT, -1,
++ IRQF_ONESHOT, 0,
+ &max77620_gpio_irq_chip,
+ &chip->gpio_irq_data);
+ if (ret < 0) {
+
+From patchwork Wed Oct 2 12:28:25 2019
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Patchwork-Submitter: Thierry Reding <thierry.reding@gmail.com>
+X-Patchwork-Id: 1170633
+Return-Path: <linux-gpio-owner@vger.kernel.org>
+X-Original-To: incoming@patchwork.ozlabs.org
+Delivered-To: patchwork-incoming@bilbo.ozlabs.org
+Authentication-Results: ozlabs.org;
+ spf=none (mailfrom) smtp.mailfrom=vger.kernel.org
+ (client-ip=209.132.180.67; helo=vger.kernel.org;
+ envelope-from=linux-gpio-owner@vger.kernel.org;
+ receiver=<UNKNOWN>)
+Authentication-Results: ozlabs.org;
+ dmarc=pass (p=none dis=none) header.from=gmail.com
+Authentication-Results: ozlabs.org; dkim=pass (2048-bit key;
+ unprotected) header.d=gmail.com header.i=@gmail.com
+ header.b="TsA9TpB7"; dkim-atps=neutral
+Received: from vger.kernel.org (vger.kernel.org [209.132.180.67])
+ by ozlabs.org (Postfix) with ESMTP id 46jwRD5mmDz9sPq
+ for <incoming@patchwork.ozlabs.org>;
+ Wed, 2 Oct 2019 22:28:40 +1000 (AEST)
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1727456AbfJBM2f (ORCPT <rfc822;incoming@patchwork.ozlabs.org>);
+ Wed, 2 Oct 2019 08:28:35 -0400
+Received: from mail-wm1-f66.google.com ([209.85.128.66]:34525 "EHLO
+ mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1726682AbfJBM2e (ORCPT
+ <rfc822; linux-gpio@vger.kernel.org>); Wed, 2 Oct 2019 08:28:34 -0400
+Received: by mail-wm1-f66.google.com with SMTP id y135so4823030wmc.1;
+ Wed, 02 Oct 2019 05:28:32 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
+ h=from:to:cc:subject:date:message-id:in-reply-to:references
+ :mime-version:content-transfer-encoding;
+ bh=CBafHZOcPLRsPg6HMh6RW3fmvKDiW2MODjit57xEepE=;
+ b=TsA9TpB72Q02EPmaBqcc4zzucsjsdc5mtjgAgTak5YrKh+mRT2HMioWeCxrLu5Cl+6
+ 66PhcUzrRtOnct3yEqC1hueFX+K8TsDr1bJq2f3L5LqA9rYz5Hdk93jVmwyEKtrPUOa5
+ DNgu/r4ppuWX/d9nuLpVLcFGOzWYjz/GSfyRm/B0MNSsiIFx/VfjsK6OQk48uN2gyMPf
+ LsirANA0HYZPyXaUFBkchtTE71HqGFSIzJGUSVGm12Z26puMZ9GiUid1l1XJjdDuFfhU
+ 3k9TQnvLEpZDHArb2G8JrwRI8fRZ/OBDLPyKvH/EEdDYa/FfJOzliZBqMgVFpXpXGTZ6
+ 7YAw==
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+ d=1e100.net; s=20161025;
+ h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to
+ :references:mime-version:content-transfer-encoding;
+ bh=CBafHZOcPLRsPg6HMh6RW3fmvKDiW2MODjit57xEepE=;
+ b=MVU3M5NDj2W8TitA2MM98hE9Vgb07UODtrRolwf9TaeTgf2XRMgYAWr9v5zaHvBU2q
+ 4q/HPqbn0WAW3OBfSQLW6CFcdiHOkjfR+r8tKHpNMNBbeDrj1DeeKE/A25plLXxg+Ypz
+ 1bKJe6DPvjIqLvrpVmPADaRtsAkgDFTt/h41ti2uTwS5xq4qEf1mwz6lFyJkGyf+Qjb5
+ pnViJ3Lv89RLBvJwWj0j2t/EzzznPZn9xP663YkNrUNRYrAM7ZBauvK7kMyf8LnKo96E
+ +niJu7OV4PnRspOC8AS3PPM4DHGctXZl6QMcJ1LyPwBkd8EHJioV1iDJKqHQIbxew46f
+ AzCA==
+X-Gm-Message-State: APjAAAWbRYKoHNSgs+vkRdoNeam2jbbuVKAFxN3ysahEdBul5DIjNFsz
+ JRjkPkilW+LPTwy2EmDLNUE=
+X-Google-Smtp-Source: APXvYqyfSTFvcH9+iLVzVGJ5KDEauN0ssdr9eBfIIdRWe8prWnP7KBGuKItc0GAk8lMLMDzdLKlWtw==
+X-Received: by 2002:a1c:7306:: with SMTP id d6mr2864027wmb.62.1570019311374;
+ Wed, 02 Oct 2019 05:28:31 -0700 (PDT)
+Received: from localhost (p2E5BE2CE.dip0.t-ipconnect.de. [46.91.226.206])
+ by smtp.gmail.com with ESMTPSA id
+ 90sm3179450wrr.1.2019.10.02.05.28.30
+ (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
+ Wed, 02 Oct 2019 05:28:30 -0700 (PDT)
+From: Thierry Reding <thierry.reding@gmail.com>
+To: Linus Walleij <linus.walleij@linaro.org>,
+ Bartosz Golaszewski <bgolaszewski@baylibre.com>
+Cc: Timo Alho <talho@nvidia.com>, linux-gpio@vger.kernel.org,
+ linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
+Subject: [PATCH 3/3] gpio: max77620: Fix interrupt handling
+Date: Wed, 2 Oct 2019 14:28:25 +0200
+Message-Id: <20191002122825.3948322-3-thierry.reding@gmail.com>
+X-Mailer: git-send-email 2.23.0
+In-Reply-To: <20191002122825.3948322-1-thierry.reding@gmail.com>
+References: <20191002122825.3948322-1-thierry.reding@gmail.com>
+MIME-Version: 1.0
+Sender: linux-gpio-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-gpio.vger.kernel.org>
+X-Mailing-List: linux-gpio@vger.kernel.org
+
+From: Timo Alho <talho@nvidia.com>
+
+The interrupt-related register fields on the MAX77620 GPIO controller
+share registers with GPIO related fields. If the IRQ chip is implemented
+with regmap-irq, this causes the IRQ controller code to overwrite fields
+previously configured by the GPIO controller code.
+
+Two examples where this causes problems are the NVIDIA Jetson TX1 and
+Jetson TX2 boards, where some of the GPIOs are used to enable vital
+power regulators. The MAX77620 GPIO controller also provides the USB OTG
+ID pin. If configured as an interrupt, this causes some of the
+regulators to be powered off.
+
+Signed-off-by: Timo Alho <talho@nvidia.com>
+Signed-off-by: Thierry Reding <treding@nvidia.com>
+---
+ drivers/gpio/gpio-max77620.c | 231 ++++++++++++++++++-----------------
+ 1 file changed, 117 insertions(+), 114 deletions(-)
+
+diff --git a/drivers/gpio/gpio-max77620.c b/drivers/gpio/gpio-max77620.c
+index c58b56e5291e..c5b64a4ac172 100644
+--- a/drivers/gpio/gpio-max77620.c
++++ b/drivers/gpio/gpio-max77620.c
+@@ -18,109 +18,115 @@ struct max77620_gpio {
+ struct gpio_chip gpio_chip;
+ struct regmap *rmap;
+ struct device *dev;
++ struct mutex buslock; /* irq_bus_lock */
++ unsigned int irq_type[8];
++ bool irq_enabled[8];
+ };
+
+-static const struct regmap_irq max77620_gpio_irqs[] = {
+- [0] = {
+- .reg_offset = 0,
+- .mask = MAX77620_IRQ_LVL2_GPIO_EDGE0,
+- .type = {
+- .type_rising_val = MAX77620_CNFG_GPIO_INT_RISING,
+- .type_falling_val = MAX77620_CNFG_GPIO_INT_FALLING,
+- .type_reg_mask = MAX77620_CNFG_GPIO_INT_MASK,
+- .type_reg_offset = 0,
+- .types_supported = IRQ_TYPE_EDGE_BOTH,
+- },
+- },
+- [1] = {
+- .reg_offset = 0,
+- .mask = MAX77620_IRQ_LVL2_GPIO_EDGE1,
+- .type = {
+- .type_rising_val = MAX77620_CNFG_GPIO_INT_RISING,
+- .type_falling_val = MAX77620_CNFG_GPIO_INT_FALLING,
+- .type_reg_mask = MAX77620_CNFG_GPIO_INT_MASK,
+- .type_reg_offset = 1,
+- .types_supported = IRQ_TYPE_EDGE_BOTH,
+- },
+- },
+- [2] = {
+- .reg_offset = 0,
+- .mask = MAX77620_IRQ_LVL2_GPIO_EDGE2,
+- .type = {
+- .type_rising_val = MAX77620_CNFG_GPIO_INT_RISING,
+- .type_falling_val = MAX77620_CNFG_GPIO_INT_FALLING,
+- .type_reg_mask = MAX77620_CNFG_GPIO_INT_MASK,
+- .type_reg_offset = 2,
+- .types_supported = IRQ_TYPE_EDGE_BOTH,
+- },
+- },
+- [3] = {
+- .reg_offset = 0,
+- .mask = MAX77620_IRQ_LVL2_GPIO_EDGE3,
+- .type = {
+- .type_rising_val = MAX77620_CNFG_GPIO_INT_RISING,
+- .type_falling_val = MAX77620_CNFG_GPIO_INT_FALLING,
+- .type_reg_mask = MAX77620_CNFG_GPIO_INT_MASK,
+- .type_reg_offset = 3,
+- .types_supported = IRQ_TYPE_EDGE_BOTH,
+- },
+- },
+- [4] = {
+- .reg_offset = 0,
+- .mask = MAX77620_IRQ_LVL2_GPIO_EDGE4,
+- .type = {
+- .type_rising_val = MAX77620_CNFG_GPIO_INT_RISING,
+- .type_falling_val = MAX77620_CNFG_GPIO_INT_FALLING,
+- .type_reg_mask = MAX77620_CNFG_GPIO_INT_MASK,
+- .type_reg_offset = 4,
+- .types_supported = IRQ_TYPE_EDGE_BOTH,
+- },
+- },
+- [5] = {
+- .reg_offset = 0,
+- .mask = MAX77620_IRQ_LVL2_GPIO_EDGE5,
+- .type = {
+- .type_rising_val = MAX77620_CNFG_GPIO_INT_RISING,
+- .type_falling_val = MAX77620_CNFG_GPIO_INT_FALLING,
+- .type_reg_mask = MAX77620_CNFG_GPIO_INT_MASK,
+- .type_reg_offset = 5,
+- .types_supported = IRQ_TYPE_EDGE_BOTH,
+- },
+- },
+- [6] = {
+- .reg_offset = 0,
+- .mask = MAX77620_IRQ_LVL2_GPIO_EDGE6,
+- .type = {
+- .type_rising_val = MAX77620_CNFG_GPIO_INT_RISING,
+- .type_falling_val = MAX77620_CNFG_GPIO_INT_FALLING,
+- .type_reg_mask = MAX77620_CNFG_GPIO_INT_MASK,
+- .type_reg_offset = 6,
+- .types_supported = IRQ_TYPE_EDGE_BOTH,
+- },
+- },
+- [7] = {
+- .reg_offset = 0,
+- .mask = MAX77620_IRQ_LVL2_GPIO_EDGE7,
+- .type = {
+- .type_rising_val = MAX77620_CNFG_GPIO_INT_RISING,
+- .type_falling_val = MAX77620_CNFG_GPIO_INT_FALLING,
+- .type_reg_mask = MAX77620_CNFG_GPIO_INT_MASK,
+- .type_reg_offset = 7,
+- .types_supported = IRQ_TYPE_EDGE_BOTH,
+- },
+- },
+-};
++static irqreturn_t max77620_gpio_irqhandler(int irq, void *data)
++{
++ struct max77620_gpio *gpio = data;
++ unsigned int value, offset;
++ unsigned long pending;
++ int err;
++
++ err = regmap_read(gpio->rmap, MAX77620_REG_IRQ_LVL2_GPIO, &value);
++ if (err < 0) {
++ dev_err(gpio->dev, "REG_IRQ_LVL2_GPIO read failed: %d\n", err);
++ return IRQ_NONE;
++ }
++
++ pending = value;
++
++ for_each_set_bit(offset, &pending, 8) {
++ unsigned int virq;
++
++ virq = irq_find_mapping(gpio->gpio_chip.irq.domain, offset);
++ handle_nested_irq(virq);
++ }
++
++ return IRQ_HANDLED;
++}
++
++static void max77620_gpio_irq_mask(struct irq_data *data)
++{
++ struct gpio_chip *chip = irq_data_get_irq_chip_data(data);
++ struct max77620_gpio *gpio = gpiochip_get_data(chip);
++
++ gpio->irq_enabled[data->hwirq] = false;
++}
+
+-static const struct regmap_irq_chip max77620_gpio_irq_chip = {
+- .name = "max77620-gpio",
+- .irqs = max77620_gpio_irqs,
+- .num_irqs = ARRAY_SIZE(max77620_gpio_irqs),
+- .num_regs = 1,
+- .num_type_reg = 8,
+- .irq_reg_stride = 1,
+- .type_reg_stride = 1,
+- .status_base = MAX77620_REG_IRQ_LVL2_GPIO,
+- .type_base = MAX77620_REG_GPIO0,
++static void max77620_gpio_irq_unmask(struct irq_data *data)
++{
++ struct gpio_chip *chip = irq_data_get_irq_chip_data(data);
++ struct max77620_gpio *gpio = gpiochip_get_data(chip);
++
++ gpio->irq_enabled[data->hwirq] = true;
++}
++
++static int max77620_gpio_set_irq_type(struct irq_data *data, unsigned int type)
++{
++ struct gpio_chip *chip = irq_data_get_irq_chip_data(data);
++ struct max77620_gpio *gpio = gpiochip_get_data(chip);
++ unsigned int irq_type;
++
++ switch (type) {
++ case IRQ_TYPE_EDGE_RISING:
++ irq_type = MAX77620_CNFG_GPIO_INT_RISING;
++ break;
++
++ case IRQ_TYPE_EDGE_FALLING:
++ irq_type = MAX77620_CNFG_GPIO_INT_FALLING;
++ break;
++
++ case IRQ_TYPE_EDGE_BOTH:
++ irq_type = MAX77620_CNFG_GPIO_INT_RISING |
++ MAX77620_CNFG_GPIO_INT_FALLING;
++ break;
++
++ default:
++ return -EINVAL;
++ }
++
++ gpio->irq_type[data->hwirq] = irq_type;
++
++ return 0;
++}
++
++static void max77620_gpio_bus_lock(struct irq_data *data)
++{
++ struct gpio_chip *chip = irq_data_get_irq_chip_data(data);
++ struct max77620_gpio *gpio = gpiochip_get_data(chip);
++
++ mutex_lock(&gpio->buslock);
++}
++
++static void max77620_gpio_bus_sync_unlock(struct irq_data *data)
++{
++ struct gpio_chip *chip = irq_data_get_irq_chip_data(data);
++ struct max77620_gpio *gpio = gpiochip_get_data(chip);
++ unsigned int value, offset = data->hwirq;
++ int err;
++
++ value = gpio->irq_enabled[offset] ? gpio->irq_type[offset] : 0;
++
++ err = regmap_update_bits(gpio->rmap, GPIO_REG_ADDR(offset),
++ MAX77620_CNFG_GPIO_INT_MASK, value);
++ if (err < 0)
++ dev_err(chip->parent, "failed to update interrupt mask: %d\n",
++ err);
++
++ mutex_unlock(&gpio->buslock);
++}
++
++static struct irq_chip max77620_gpio_irqchip = {
++ .name = "max77620-gpio",
++ .irq_mask = max77620_gpio_irq_mask,
++ .irq_unmask = max77620_gpio_irq_unmask,
++ .irq_set_type = max77620_gpio_set_irq_type,
++ .irq_bus_lock = max77620_gpio_bus_lock,
++ .irq_bus_sync_unlock = max77620_gpio_bus_sync_unlock,
++ .flags = IRQCHIP_MASK_ON_SUSPEND,
+ };
+
+ static int max77620_gpio_dir_input(struct gpio_chip *gc, unsigned int offset)
+@@ -254,14 +260,6 @@ static int max77620_gpio_set_config(struct gpio_chip *gc, unsigned int offset,
+ return -ENOTSUPP;
+ }
+
+-static int max77620_gpio_to_irq(struct gpio_chip *gc, unsigned int offset)
+-{
+- struct max77620_gpio *mgpio = gpiochip_get_data(gc);
+- struct max77620_chip *chip = dev_get_drvdata(mgpio->dev->parent);
+-
+- return regmap_irq_get_virq(chip->gpio_irq_data, offset);
+-}
+-
+ static int max77620_gpio_probe(struct platform_device *pdev)
+ {
+ struct max77620_chip *chip = dev_get_drvdata(pdev->dev.parent);
+@@ -287,7 +285,6 @@ static int max77620_gpio_probe(struct platform_device *pdev)
+ mgpio->gpio_chip.direction_output = max77620_gpio_dir_output;
+ mgpio->gpio_chip.set = max77620_gpio_set;
+ mgpio->gpio_chip.set_config = max77620_gpio_set_config;
+- mgpio->gpio_chip.to_irq = max77620_gpio_to_irq;
+ mgpio->gpio_chip.ngpio = MAX77620_GPIO_NR;
+ mgpio->gpio_chip.can_sleep = 1;
+ mgpio->gpio_chip.base = -1;
+@@ -303,15 +300,21 @@ static int max77620_gpio_probe(struct platform_device *pdev)
+ return ret;
+ }
+
+- ret = devm_regmap_add_irq_chip(&pdev->dev, chip->rmap, gpio_irq,
+- IRQF_ONESHOT, 0,
+- &max77620_gpio_irq_chip,
+- &chip->gpio_irq_data);
++ mutex_init(&mgpio->buslock);
++
++ gpiochip_irqchip_add_nested(&mgpio->gpio_chip, &max77620_gpio_irqchip,
++ 0, handle_edge_irq, IRQ_TYPE_NONE);
++
++ ret = request_threaded_irq(gpio_irq, NULL, max77620_gpio_irqhandler,
++ IRQF_ONESHOT, "max77620-gpio", mgpio);
+ if (ret < 0) {
+- dev_err(&pdev->dev, "Failed to add gpio irq_chip %d\n", ret);
++ dev_err(&pdev->dev, "failed to request IRQ: %d\n", ret);
+ return ret;
+ }
+
++ gpiochip_set_nested_irqchip(&mgpio->gpio_chip, &max77620_gpio_irqchip,
++ gpio_irq);
++
+ return 0;
+ }
+
diff --git a/input-kill-stupid-messages.patch b/input-kill-stupid-messages.patch
deleted file mode 100644
index 04205f857..000000000
--- a/input-kill-stupid-messages.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: "kernel-team@fedoraproject.org" <kernel-team@fedoraproject.org>
-Date: Thu, 29 Jul 2010 16:46:31 -0700
-Subject: [PATCH] input: kill stupid messages
-
-Bugzilla: N/A
-Upstream-status: Fedora mustard
----
- drivers/input/keyboard/atkbd.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
-index ec876b5b1382..9d5216e23a09 100644
---- a/drivers/input/keyboard/atkbd.c
-+++ b/drivers/input/keyboard/atkbd.c
-@@ -436,11 +436,15 @@ static irqreturn_t atkbd_interrupt(struct serio *serio, unsigned char data,
- goto out;
- case ATKBD_RET_ACK:
- case ATKBD_RET_NAK:
-+# if 0
-+ /* Quite a few key switchers and other tools trigger this
-+ * and it confuses people who can do nothing about it */
- if (printk_ratelimit())
- dev_warn(&serio->dev,
- "Spurious %s on %s. "
- "Some program might be trying to access hardware directly.\n",
- data == ATKBD_RET_ACK ? "ACK" : "NAK", serio->phys);
-+#endif
- goto out;
- case ATKBD_RET_ERR:
- atkbd->err_count++;
diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug-fedora.config
index 1c6629b3c..167933e16 100644
--- a/kernel-aarch64-debug.config
+++ b/kernel-aarch64-debug-fedora.config
@@ -129,6 +129,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -138,6 +139,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -204,7 +206,7 @@ CONFIG_AMIGA_PARTITION=y
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
CONFIG_APDS9802ALS=m
-# CONFIG_APDS9960 is not set
+CONFIG_APDS9960=m
# CONFIG_APPLE_PROPERTIES is not set
# CONFIG_APPLICOM is not set
CONFIG_APQ_GCC_8084=y
@@ -215,6 +217,7 @@ CONFIG_AR5523=m
# CONFIG_ARCH_ACTIONS is not set
# CONFIG_ARCH_AGILEX is not set
# CONFIG_ARCH_ALPINE is not set
+# CONFIG_ARCH_ASPEED is not set
# CONFIG_ARCH_BCM_21664 is not set
# CONFIG_ARCH_BCM_23550 is not set
# CONFIG_ARCH_BCM_281XX is not set
@@ -238,15 +241,11 @@ CONFIG_ARCH_BCM=y
# CONFIG_ARCH_FOOTBRIDGE is not set
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
CONFIG_ARCH_HISI=y
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_K3 is not set
-# CONFIG_ARCH_KS8695 is not set
CONFIG_ARCH_LAYERSCAPE=y
# CONFIG_ARCH_LG1K is not set
-# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MEDIATEK is not set
CONFIG_ARCH_MESON=y
CONFIG_ARCH_MULTIPLATFORM=y
@@ -276,7 +275,6 @@ CONFIG_ARCH_THUNDER2=y
CONFIG_ARCH_THUNDER=y
# CONFIG_ARCH_UNIPHIER is not set
CONFIG_ARCH_VEXPRESS=y
-# CONFIG_ARCH_W90X900 is not set
CONFIG_ARCH_XGENE=y
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQMP=y
@@ -314,16 +312,19 @@ CONFIG_ARM64_RAS_EXTN=y
# CONFIG_ARM64_RELOC_TEST is not set
CONFIG_ARM64_SVE=y
CONFIG_ARM64_SW_TTBR0_PAN=y
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
CONFIG_ARM64_UAO=y
# CONFIG_ARM64_VA_BITS_39 is not set
CONFIG_ARM64_VA_BITS=48
CONFIG_ARM64_VA_BITS_48=y
+# CONFIG_ARM64_VA_BITS_52 is not set
CONFIG_ARM64_VHE=y
CONFIG_ARM64=y
CONFIG_ARMADA_37XX_RWTM_MBOX=m
CONFIG_ARMADA_37XX_WATCHDOG=m
CONFIG_ARMADA_AP806_SYSCON=y
CONFIG_ARMADA_THERMAL=m
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER=y
@@ -354,10 +355,12 @@ CONFIG_ARM_MHU=m
CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_FW=y
CONFIG_ARM_PSCI=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
CONFIG_ARM_QCOM_CPUFREQ_HW=m
-CONFIG_ARM_QCOM_CPUFREQ_KRYO=m
+CONFIG_ARM_QCOM_CPUFREQ_NVMEM=m
CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SBSA_WATCHDOG=m
@@ -424,6 +427,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -540,9 +544,9 @@ CONFIG_BATTERY_BQ27XXX=m
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+CONFIG_BATTERY_GAUGE_LTC2941=m
# CONFIG_BATTERY_LEGO_EV3 is not set
-# CONFIG_BATTERY_MAX17040 is not set
+CONFIG_BATTERY_MAX17040=m
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1721X is not set
CONFIG_BATTERY_SBS=m
@@ -595,6 +599,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -794,18 +799,23 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
CONFIG_CAN_FLEXCAN=m
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
-# CONFIG_CAN_MCP251X is not set
+CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
@@ -941,6 +951,7 @@ CONFIG_CLK_BCM2835=y
CONFIG_CLKDEV_LOOKUP=y
# CONFIG_CLK_HSDK is not set
CONFIG_CLK_IMX8MM=y
+CONFIG_CLK_IMX8MN=y
CONFIG_CLK_IMX8MQ=y
CONFIG_CLK_IMX8QXP=y
# CONFIG_CLK_QORIQ is not set
@@ -1046,6 +1057,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -1056,7 +1068,6 @@ CONFIG_CPU_THERMAL=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -1071,10 +1082,12 @@ CONFIG_CRC8=m
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
+CONFIG_CROS_EC_CHARDEV=m
CONFIG_CROS_EC_DEBUGFS=m
CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
# CONFIG_CROS_EC_LIGHTBAR is not set
+CONFIG_CROS_EC=m
CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_EC_SPI=m
@@ -1086,9 +1099,8 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
+CONFIG_CRYPTO_AEGIS128_SIMD=y
CONFIG_CRYPTO_AES_ARM64_BS=m
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
@@ -1131,6 +1143,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DEV_CAVIUM_ZIP=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCP=y
CONFIG_CRYPTO_DEV_CCREE=m
CONFIG_CRYPTO_DEV_CHELSIO=m
@@ -1151,6 +1164,7 @@ CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
# CONFIG_CRYPTO_DEV_HISI_SEC is not set
+# CONFIG_CRYPTO_DEV_HISI_ZIP is not set
CONFIG_CRYPTO_DEV_MARVELL_CESA=m
# CONFIG_CRYPTO_DEV_MXS_DCP is not set
CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
@@ -1171,6 +1185,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -1192,8 +1207,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NHPOLY1305_NEON=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
@@ -1222,7 +1235,7 @@ 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_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_SM3=m
@@ -1276,17 +1289,16 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
-CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4096
+CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
CONFIG_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KOBJECT is not set
@@ -1363,6 +1375,7 @@ CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_API_DEBUG=y
CONFIG_DMA_BCM2835=m
+# CONFIG_DMABUF_SELFTESTS is not set
CONFIG_DMA_CMA=y
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
@@ -1379,6 +1392,7 @@ CONFIG_DMA_SUN6I=m
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1406,6 +1420,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1450,6 +1465,7 @@ CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_ETNAVIV_THERMAL=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
# CONFIG_DRM_HISI_HIBMC is not set
@@ -1497,13 +1513,17 @@ CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1515,10 +1535,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
CONFIG_DRM_PANEL_TPO_TPG110=m
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
CONFIG_DRM_PANEL=y
@@ -1543,12 +1567,11 @@ CONFIG_DRM_SUN4I=m
CONFIG_DRM_SUN6I_DSI=m
CONFIG_DRM_SUN8I_DW_HDMI=m
CONFIG_DRM_SUN8I_MIXER=m
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_TEGRA_DEBUG is not set
CONFIG_DRM_TEGRA=m
CONFIG_DRM_TEGRA_STAGING=y
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-CONFIG_DRM_TINYDRM=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1679,6 +1702,7 @@ CONFIG_EARLY_PRINTK=y
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
+CONFIG_EDAC_BLUEFIELD=m
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_GHES=y
CONFIG_EDAC_LAYERSCAPE=m
@@ -1701,7 +1725,8 @@ CONFIG_EFI_ARMSTUB_DTB_LOADER=y
# CONFIG_EFI_CAPSULE_LOADER is not set
CONFIG_EFI_PARTITION=y
CONFIG_EFI_PGT_DUMP=y
-# CONFIG_EFI_TEST is not set
+# CONFIG_EFI_RCI2_TABLE is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_EFI_VARS_PSTORE=y
@@ -1726,6 +1751,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1902,6 +1928,7 @@ CONFIG_FSL_DPAA=y
CONFIG_FSL_EDMA=m
CONFIG_FSL_ENETC_HW_TIMESTAMPING=y
CONFIG_FSL_ENETC=m
+# CONFIG_FSL_ENETC_MDIO is not set
CONFIG_FSL_ENETC_PTP_CLOCK=m
CONFIG_FSL_ENETC_VF=m
CONFIG_FSL_ERRATUM_A008585=y
@@ -1915,6 +1942,9 @@ CONFIG_FSL_QDMA=m
# CONFIG_FSL_XGMAC_MDIO is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -2011,6 +2041,7 @@ CONFIG_GPIO_MB86S7X=m
# CONFIG_GPIO_MC33880 is not set
CONFIG_GPIO_MLXBF=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MOXTET=m
CONFIG_GPIO_MPC8XXX=y
CONFIG_GPIO_MVEBU=y
CONFIG_GPIO_PCA953X_IRQ=y
@@ -2033,6 +2064,7 @@ CONFIG_GPIO_TEGRA=y
CONFIG_GPIO_THUNDERX=m
# CONFIG_GPIO_TPIC2810 is not set
CONFIG_GPIO_TPS65086=m
+CONFIG_GPIO_TPS6586X=y
CONFIG_GPIO_TPS68470=y
# CONFIG_GPIO_TS4900 is not set
CONFIG_GPIO_VIPERBOARD=m
@@ -2061,10 +2093,10 @@ CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
-# CONFIG_HDC100X is not set
+CONFIG_HDC100X=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
# CONFIG_HERMES is not set
CONFIG_HERMES_PRISM=y
@@ -2093,6 +2125,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2183,7 +2216,6 @@ CONFIG_HID_ZEROPLUS=m
CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
-CONFIG_HISI_KIRIN_DW_DSI=m
CONFIG_HISILICON_ERRATUM_161010101=y
CONFIG_HISILICON_ERRATUM_161600802=y
CONFIG_HISILICON_IRQ_MBIGEN=y
@@ -2215,7 +2247,7 @@ CONFIG_HT16K33=m
# CONFIG_HTC_I2CPLD is not set
# CONFIG_HTC_PASIC3 is not set
CONFIG_HTS221=m
-# CONFIG_HTU21 is not set
+CONFIG_HTU21=m
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
# CONFIG_HVC_DCC is not set
@@ -2262,7 +2294,6 @@ CONFIG_I2C_ALGOPCF=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CADENCE=m
@@ -2416,11 +2447,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2436,7 +2469,9 @@ CONFIG_IMA=y
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_IMX2_WDT=m
CONFIG_IMX7D_ADC=m
+# CONFIG_IMX7ULP_WDT is not set
# CONFIG_IMX_DMA is not set
+CONFIG_IMX_DSP=y
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
# CONFIG_IMX_IPUV3_CORE is not set
@@ -2574,6 +2609,7 @@ CONFIG_INTEL_STRATIX10_SERVICE=m
# CONFIG_INTEL_TH is not set
CONFIG_INTEL_XWAY_PHY=m
CONFIG_INTERCONNECT=m
+# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
CONFIG_INTERCONNECT_QCOM_SDM845=m
CONFIG_INTERCONNECT_QCOM=y
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -2591,6 +2627,7 @@ CONFIG_IOMMU_DMA=y
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2836,6 +2873,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2876,6 +2914,7 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0
CONFIG_KDB_KEYBOARD=y
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2883,6 +2922,7 @@ CONFIG_KERNEL_MODE_NEON=y
# CONFIG_KERNEL_UNCOMPRESSED is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
CONFIG_KEYBOARD_ADC=m
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2938,9 +2978,6 @@ CONFIG_KPROBE_EVENTS=y
CONFIG_KPROBES=y
CONFIG_KPSS_XCC=m
CONFIG_KRAITCC=m
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
@@ -3016,7 +3053,7 @@ CONFIG_LEDS_NIC78BX=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_PCA963X is not set
+CONFIG_LEDS_PCA963X=m
CONFIG_LEDS_PWM=m
CONFIG_LEDS_REGULATOR=m
# CONFIG_LEDS_SPI_BYTE is not set
@@ -3069,7 +3106,7 @@ CONFIG_LIBNVDIMM=m
# CONFIG_LIQUIDIO is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -3078,7 +3115,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
CONFIG_LOCK_EVENT_COUNTS=y
# CONFIG_LOCK_STAT is not set
@@ -3133,7 +3172,7 @@ CONFIG_MAC_PARTITION=y
CONFIG_MACSEC=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-# CONFIG_MAG3110 is not set
+CONFIG_MAG3110=m
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ=y
@@ -3162,6 +3201,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -3176,8 +3216,8 @@ CONFIG_MB1232=m
# CONFIG_MC3230 is not set
# CONFIG_MCB is not set
# CONFIG_MCORE2 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
CONFIG_MCP3911=m
CONFIG_MCP4018=m
CONFIG_MCP41010=m
@@ -3256,6 +3296,7 @@ CONFIG_MEMSTICK_TIFM_MS=m
# CONFIG_MEN_A21_WDT is not set
CONFIG_MESON_CANVAS=m
# CONFIG_MESON_CLK_MEASURE is not set
+CONFIG_MESON_EE_PM_DOMAINS=y
CONFIG_MESON_EFUSE=m
CONFIG_MESON_GXBB_WATCHDOG=m
CONFIG_MESON_GXL_PHY=m
@@ -3289,8 +3330,8 @@ 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=m
+CONFIG_MFD_CROS_EC_DEV=m
+# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9052_SPI is not set
@@ -3407,6 +3448,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
CONFIG_MLX5_INFINIBAND=m
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXBF_TMFIFO=m
@@ -3466,6 +3509,7 @@ CONFIG_MMC_SDHCI_IPROC=m
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_MSM=m
CONFIG_MMC_SDHCI_OF_ARASAN=m
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
CONFIG_MMC_SDHCI_OF_ESDHC=m
@@ -3490,6 +3534,7 @@ CONFIG_MMC_WBSD=m
CONFIG_MMC=y
CONFIG_MMIOTRACE=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_FORCE_UNLOAD=y
@@ -3524,6 +3569,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+CONFIG_MOXTET=m
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
# CONFIG_MPL3115 is not set
@@ -3600,6 +3646,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3717,12 +3764,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3896,6 +3945,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3949,6 +3999,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
CONFIG_NET_VENDOR_QUALCOMM=y
CONFIG_NET_VENDOR_RDC=y
@@ -4115,10 +4166,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -4178,6 +4229,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
CONFIG_NODES_SHIFT=9
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
@@ -4191,7 +4243,7 @@ CONFIG_NOUVEAU_DEBUG_MMU=y
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
CONFIG_NOZOMI=m
-CONFIG_NR_CPUS=256
+CONFIG_NR_CPUS=4096
CONFIG_NS83820=m
# CONFIG_NTB is not set
# CONFIG_NTFS_FS is not set
@@ -4255,7 +4307,7 @@ CONFIG_OPENVSWITCH_VXLAN=m
CONFIG_OPT3001=m
CONFIG_OPTEE=m
CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -4347,6 +4399,7 @@ CONFIG_PCI_AARDVARK=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
+# CONFIG_PCIE_AL is not set
# CONFIG_PCIE_ALTERA is not set
CONFIG_PCIE_ARMADA_8K=y
# CONFIG_PCIEASPM_DEBUG is not set
@@ -4371,6 +4424,7 @@ CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_QCOM=y
# CONFIG_PCIE_ROCKCHIP_HOST is not set
+CONFIG_PCIE_TEGRA194=m
CONFIG_PCIE_XILINX_NWL=y
CONFIG_PCIE_XILINX=y
# CONFIG_PCI_FTPCI100 is not set
@@ -4471,6 +4525,7 @@ CONFIG_PHY_ROCKCHIP_USB=m
CONFIG_PHY_SUN4I_USB=m
CONFIG_PHY_SUN6I_MIPI_DPHY=m
# CONFIG_PHY_SUN9I_USB is not set
+CONFIG_PHY_TEGRA194_P2U=m
CONFIG_PHY_TEGRA_XUSB=m
# CONFIG_PHY_TUSB1210 is not set
CONFIG_PHY_XGENE=y
@@ -4521,6 +4576,7 @@ CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_QDF2XXX=y
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
CONFIG_PINCTRL_SDM845=y
CONFIG_PINCTRL_SINGLE=y
@@ -4626,7 +4682,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4679,7 +4734,7 @@ CONFIG_PWM_HIBVT=m
CONFIG_PWM_IMX27=m
CONFIG_PWM_IMX_TPM=m
CONFIG_PWM_MESON=m
-# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_PCA9685=m
CONFIG_PWM_ROCKCHIP=m
# CONFIG_PWM_STMPE is not set
CONFIG_PWM_SUN4I=m
@@ -4737,6 +4792,7 @@ CONFIG_QCOM_SMD_RPM=m
CONFIG_QCOM_SMEM=m
CONFIG_QCOM_SMP2P=m
CONFIG_QCOM_SMSM=m
+# CONFIG_QCOM_SOCINFO is not set
CONFIG_QCOM_SPMI_ADC5=m
CONFIG_QCOM_SPMI_IADC=m
CONFIG_QCOM_SPMI_TEMP_ALARM=m
@@ -4794,6 +4850,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
# CONFIG_RANDOM_TRUST_CPU is not set
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4834,13 +4891,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
# CONFIG_RDS is not set
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4896,6 +4954,7 @@ CONFIG_REGULATOR_QCOM_SPMI=m
CONFIG_REGULATOR_RK808=y
# CONFIG_REGULATOR_SLG51000 is not set
CONFIG_REGULATOR_SY8106A=m
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4917,7 +4976,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
CONFIG_RESET_CONTROLLER=y
@@ -4926,6 +4985,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
CONFIG_RESET_QCOM_AOSS=y
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
# CONFIG_RESET_TI_SCI is not set
CONFIG_RESET_TI_SYSCON=m
@@ -5049,6 +5109,7 @@ CONFIG_RTC_DRV_DS3232=m
CONFIG_RTC_DRV_EFI=y
CONFIG_RTC_DRV_EM3027=m
CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_FSL_FTM_ALARM=m
# CONFIG_RTC_DRV_FTRTC010 is not set
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
CONFIG_RTC_DRV_HYM8563=m
@@ -5069,6 +5130,7 @@ CONFIG_RTC_DRV_MAX6902=m
CONFIG_RTC_DRV_MAX6916=m
CONFIG_RTC_DRV_MAX77686=m
CONFIG_RTC_DRV_MCP795=m
+CONFIG_RTC_DRV_MESON_VRTC=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_MV=m
# CONFIG_RTC_DRV_MXC is not set
@@ -5309,6 +5371,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -5337,7 +5401,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -5350,6 +5413,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCMI=m
CONFIG_SENSORS_ARM_SCPI=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -5368,7 +5432,7 @@ CONFIG_SENSORS_G760A=m
CONFIG_SENSORS_G762=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
-# CONFIG_SENSORS_GPIO_FAN is not set
+CONFIG_SENSORS_GPIO_FAN=m
# CONFIG_SENSORS_HIH6130 is not set
# CONFIG_SENSORS_HMC5843_I2C is not set
# CONFIG_SENSORS_HMC5843_SPI is not set
@@ -5380,6 +5444,7 @@ CONFIG_SENSORS_IIO_HWMON=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5512,7 +5577,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_FINTEK is not set
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_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -5533,6 +5597,7 @@ CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
CONFIG_SERIAL_FSL_LPUART=y
# CONFIG_SERIAL_IFX6X60 is not set
@@ -5586,13 +5651,12 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
# CONFIG_SI1145 is not set
# CONFIG_SI7005 is not set
-# CONFIG_SI7020 is not set
+CONFIG_SI7020=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_PM_BUS=y
# CONFIG_SIOX is not set
@@ -5624,6 +5688,7 @@ CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
# CONFIG_SM_FTL is not set
+CONFIG_SM_GCC_8150=y
CONFIG_SMP=y
CONFIG_SMSC911X=m
CONFIG_SMSC9420=m
@@ -5713,7 +5778,8 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
+# CONFIG_SND_HDA_INTEL is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
CONFIG_SND_HDA_PREALLOC_SIZE=4096
@@ -5788,6 +5854,7 @@ CONFIG_SND_SOC_AC97_CODEC=m
# CONFIG_SND_SOC_ADAU1701 is not set
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU1977_I2C=m
CONFIG_SND_SOC_ADAU7002=m
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4118 is not set
@@ -5811,21 +5878,22 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
-# CONFIG_SND_SOC_CS4265 is not set
+CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
+CONFIG_SND_SOC_CS4271_I2C=m
# CONFIG_SND_SOC_CS4271_SPI is not set
CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
+CONFIG_SND_SOC_CS42XX8_I2C=m
CONFIG_SND_SOC_CS43130=m
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES7241 is not set
@@ -5847,6 +5915,7 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
CONFIG_SND_SOC_IMX_AUDMIX=m
# CONFIG_SND_SOC_IMX_AUDMUX is not set
@@ -5882,6 +5951,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m
CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
+CONFIG_SND_SOC_PCM5102A=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_SPI=m
@@ -5911,6 +5981,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -5946,8 +6017,9 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m
# CONFIG_SND_SOC_TEGRA_WM8903 is not set
# CONFIG_SND_SOC_TEGRA_WM9712 is not set
# CONFIG_SND_SOC_TFA9879 is not set
-# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC23_SPI=m
# CONFIG_SND_SOC_TLV320AIC31XX is not set
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
@@ -5956,6 +6028,7 @@ CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
CONFIG_SND_SOC_WCD9335=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
@@ -5963,9 +6036,9 @@ CONFIG_SND_SOC_WM8524=m
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
+CONFIG_SND_SOC_WM8731=m
# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
+CONFIG_SND_SOC_WM8741=m
# CONFIG_SND_SOC_WM8750 is not set
# CONFIG_SND_SOC_WM8753 is not set
# CONFIG_SND_SOC_WM8770 is not set
@@ -6031,7 +6104,6 @@ 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
@@ -6223,6 +6295,7 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
CONFIG_TCG_CRB=y
+CONFIG_TCG_FTPM_TEE=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -6295,6 +6368,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -6365,7 +6439,6 @@ CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
CONFIG_TINYDRM_MI0283QT=m
-CONFIG_TINYDRM_MIPI_DBI=m
CONFIG_TINYDRM_REPAPER=m
CONFIG_TINYDRM_ST7586=m
CONFIG_TINYDRM_ST7735R=m
@@ -6378,7 +6451,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
CONFIG_TMP006=m
@@ -6389,7 +6462,7 @@ CONFIG_TMPFS=y
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
CONFIG_TOUCHSCREEN_ADC=m
-# CONFIG_TOUCHSCREEN_ADS7846 is not set
+CONFIG_TOUCHSCREEN_ADS7846=m
# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
@@ -6410,9 +6483,9 @@ CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
CONFIG_TOUCHSCREEN_ELAN=m
CONFIG_TOUCHSCREEN_ELO=m
-# CONFIG_TOUCHSCREEN_EXC3000 is not set
+CONFIG_TOUCHSCREEN_EXC3000=m
CONFIG_TOUCHSCREEN_FUJITSU=m
-# CONFIG_TOUCHSCREEN_GOODIX is not set
+CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_GUNZE=m
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
@@ -6479,7 +6552,7 @@ CONFIG_TRUSTED_KEYS=m
# CONFIG_TS4800_WATCHDOG is not set
# CONFIG_TSL2583 is not set
CONFIG_TSL2772=m
-# CONFIG_TSL4531 is not set
+CONFIG_TSL4531=m
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
CONFIG_TULIP=m
@@ -6497,6 +6570,7 @@ CONFIG_TUNE_DEFAULT=y
# CONFIG_TUNE_ZEC12 is not set
CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TURRIS_MOX_RWTM=m
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
CONFIG_TYPEC_DP_ALTMODE=m
@@ -6511,6 +6585,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -6571,6 +6646,7 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -6595,6 +6671,7 @@ CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_OBEX=y
# CONFIG_USB_CONFIGFS_RNDIS is not set
CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONN_GPIO=m
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -6793,9 +6870,10 @@ CONFIG_USB_NET_SMSC95XX=m
CONFIG_USB_NET_SR9700=m
# CONFIG_USB_NET_SR9800 is not set
CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_PCI=m
CONFIG_USB_OHCI_HCD_PLATFORM=m
-CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_HCD_SSB is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
@@ -6815,7 +6893,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597 is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -6953,7 +7030,7 @@ CONFIG_VALIDATE_FS_PARSER=y
# CONFIG_VCNL4000 is not set
CONFIG_VCNL4035=m
CONFIG_VDSO=y
-# CONFIG_VEML6070 is not set
+CONFIG_VEML6070=m
CONFIG_VETH=m
CONFIG_VEXPRESS_SYSCFG=y
# CONFIG_VF610_ADC is not set
@@ -7059,6 +7136,7 @@ CONFIG_VIDEO_SAA7164=m
CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+CONFIG_VIDEO_SUN4I_CSI=m
CONFIG_VIDEO_SUN6I_CSI=m
CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
@@ -7083,6 +7161,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -7132,6 +7211,7 @@ CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_GPIO=m
# CONFIG_W1_MASTER_MATROX is not set
# CONFIG_W1_MASTER_MXC is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -7142,6 +7222,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-aarch64-debug-rhel.config b/kernel-aarch64-debug-rhel.config
new file mode 100644
index 000000000..c76e0e471
--- /dev/null
+++ b/kernel-aarch64-debug-rhel.config
@@ -0,0 +1 @@
+# EMPTY
diff --git a/kernel-aarch64.config b/kernel-aarch64-fedora.config
index 90487f75c..0574ba3e3 100644
--- a/kernel-aarch64.config
+++ b/kernel-aarch64-fedora.config
@@ -129,6 +129,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -138,6 +139,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -204,7 +206,7 @@ CONFIG_AMIGA_PARTITION=y
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
CONFIG_APDS9802ALS=m
-# CONFIG_APDS9960 is not set
+CONFIG_APDS9960=m
# CONFIG_APPLE_PROPERTIES is not set
# CONFIG_APPLICOM is not set
CONFIG_APQ_GCC_8084=y
@@ -215,6 +217,7 @@ CONFIG_AR5523=m
# CONFIG_ARCH_ACTIONS is not set
# CONFIG_ARCH_AGILEX is not set
# CONFIG_ARCH_ALPINE is not set
+# CONFIG_ARCH_ASPEED is not set
# CONFIG_ARCH_BCM_21664 is not set
# CONFIG_ARCH_BCM_23550 is not set
# CONFIG_ARCH_BCM_281XX is not set
@@ -238,15 +241,11 @@ CONFIG_ARCH_BCM=y
# CONFIG_ARCH_FOOTBRIDGE is not set
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
CONFIG_ARCH_HISI=y
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_K3 is not set
-# CONFIG_ARCH_KS8695 is not set
CONFIG_ARCH_LAYERSCAPE=y
# CONFIG_ARCH_LG1K is not set
-# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MEDIATEK is not set
CONFIG_ARCH_MESON=y
CONFIG_ARCH_MULTIPLATFORM=y
@@ -276,7 +275,6 @@ CONFIG_ARCH_THUNDER2=y
CONFIG_ARCH_THUNDER=y
# CONFIG_ARCH_UNIPHIER is not set
CONFIG_ARCH_VEXPRESS=y
-# CONFIG_ARCH_W90X900 is not set
CONFIG_ARCH_XGENE=y
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQMP=y
@@ -314,16 +312,19 @@ CONFIG_ARM64_RAS_EXTN=y
# CONFIG_ARM64_RELOC_TEST is not set
CONFIG_ARM64_SVE=y
CONFIG_ARM64_SW_TTBR0_PAN=y
+CONFIG_ARM64_TAGGED_ADDR_ABI=y
CONFIG_ARM64_UAO=y
# CONFIG_ARM64_VA_BITS_39 is not set
CONFIG_ARM64_VA_BITS=48
CONFIG_ARM64_VA_BITS_48=y
+# CONFIG_ARM64_VA_BITS_52 is not set
CONFIG_ARM64_VHE=y
CONFIG_ARM64=y
CONFIG_ARMADA_37XX_RWTM_MBOX=m
CONFIG_ARMADA_37XX_WATCHDOG=m
CONFIG_ARMADA_AP806_SYSCON=y
CONFIG_ARMADA_THERMAL=m
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
CONFIG_ARM_ARCH_TIMER=y
@@ -354,10 +355,12 @@ CONFIG_ARM_MHU=m
CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_FW=y
CONFIG_ARM_PSCI=y
# CONFIG_ARM_PTDUMP_DEBUGFS is not set
CONFIG_ARM_QCOM_CPUFREQ_HW=m
-CONFIG_ARM_QCOM_CPUFREQ_KRYO=m
+CONFIG_ARM_QCOM_CPUFREQ_NVMEM=m
CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SBSA_WATCHDOG=m
@@ -424,6 +427,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -540,9 +544,9 @@ CONFIG_BATTERY_BQ27XXX=m
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+CONFIG_BATTERY_GAUGE_LTC2941=m
# CONFIG_BATTERY_LEGO_EV3 is not set
-# CONFIG_BATTERY_MAX17040 is not set
+CONFIG_BATTERY_MAX17040=m
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1721X is not set
CONFIG_BATTERY_SBS=m
@@ -595,6 +599,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -794,18 +799,23 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
CONFIG_CAN_FLEXCAN=m
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
-# CONFIG_CAN_MCP251X is not set
+CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
@@ -941,6 +951,7 @@ CONFIG_CLK_BCM2835=y
CONFIG_CLKDEV_LOOKUP=y
# CONFIG_CLK_HSDK is not set
CONFIG_CLK_IMX8MM=y
+CONFIG_CLK_IMX8MN=y
CONFIG_CLK_IMX8MQ=y
CONFIG_CLK_IMX8QXP=y
# CONFIG_CLK_QORIQ is not set
@@ -1046,6 +1057,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -1056,7 +1068,6 @@ CONFIG_CPU_THERMAL=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -1071,10 +1082,12 @@ CONFIG_CRC8=m
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
+CONFIG_CROS_EC_CHARDEV=m
# CONFIG_CROS_EC_DEBUGFS is not set
CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
# CONFIG_CROS_EC_LIGHTBAR is not set
+CONFIG_CROS_EC=m
CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_EC_SPI=m
@@ -1086,9 +1099,8 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
+CONFIG_CRYPTO_AEGIS128_SIMD=y
CONFIG_CRYPTO_AES_ARM64_BS=m
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_CRYPTO_AES_ARM64_CE_CCM=y
@@ -1131,6 +1143,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DEV_CAVIUM_ZIP=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCP=y
CONFIG_CRYPTO_DEV_CCREE=m
CONFIG_CRYPTO_DEV_CHELSIO=m
@@ -1151,6 +1164,7 @@ CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
# CONFIG_CRYPTO_DEV_HISI_SEC is not set
+# CONFIG_CRYPTO_DEV_HISI_ZIP is not set
CONFIG_CRYPTO_DEV_MARVELL_CESA=m
# CONFIG_CRYPTO_DEV_MXS_DCP is not set
CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m
@@ -1171,6 +1185,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -1192,8 +1207,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NHPOLY1305_NEON=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
@@ -1222,7 +1235,7 @@ 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_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3_ARM64_CE=m
CONFIG_CRYPTO_SM3=m
@@ -1276,11 +1289,10 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
@@ -1356,6 +1368,7 @@ CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_BCM2835=m
+# CONFIG_DMABUF_SELFTESTS is not set
CONFIG_DMA_CMA=y
# CONFIG_DMADEVICES_DEBUG is not set
CONFIG_DMADEVICES=y
@@ -1371,6 +1384,7 @@ CONFIG_DMA_SUN6I=m
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1398,6 +1412,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1442,6 +1457,7 @@ CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_ETNAVIV_THERMAL=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
# CONFIG_DRM_HISI_HIBMC is not set
@@ -1489,13 +1505,17 @@ CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1507,10 +1527,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
CONFIG_DRM_PANEL_TPO_TPG110=m
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
CONFIG_DRM_PANEL=y
@@ -1535,12 +1559,11 @@ CONFIG_DRM_SUN4I=m
CONFIG_DRM_SUN6I_DSI=m
CONFIG_DRM_SUN8I_DW_HDMI=m
CONFIG_DRM_SUN8I_MIXER=m
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_TEGRA_DEBUG is not set
CONFIG_DRM_TEGRA=m
CONFIG_DRM_TEGRA_STAGING=y
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-CONFIG_DRM_TINYDRM=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1671,6 +1694,7 @@ CONFIG_EARLY_PRINTK=y
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
+CONFIG_EDAC_BLUEFIELD=m
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_GHES=y
CONFIG_EDAC_LAYERSCAPE=m
@@ -1693,7 +1717,8 @@ CONFIG_EFI_ARMSTUB_DTB_LOADER=y
# CONFIG_EFI_CAPSULE_LOADER is not set
CONFIG_EFI_PARTITION=y
# CONFIG_EFI_PGT_DUMP is not set
-# CONFIG_EFI_TEST is not set
+# CONFIG_EFI_RCI2_TABLE is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_EFI_VARS_PSTORE=y
@@ -1718,6 +1743,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1886,6 +1912,7 @@ CONFIG_FSL_DPAA=y
CONFIG_FSL_EDMA=m
CONFIG_FSL_ENETC_HW_TIMESTAMPING=y
CONFIG_FSL_ENETC=m
+# CONFIG_FSL_ENETC_MDIO is not set
CONFIG_FSL_ENETC_PTP_CLOCK=m
CONFIG_FSL_ENETC_VF=m
CONFIG_FSL_ERRATUM_A008585=y
@@ -1899,6 +1926,9 @@ CONFIG_FSL_QDMA=m
# CONFIG_FSL_XGMAC_MDIO is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1995,6 +2025,7 @@ CONFIG_GPIO_MB86S7X=m
# CONFIG_GPIO_MC33880 is not set
CONFIG_GPIO_MLXBF=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MOXTET=m
CONFIG_GPIO_MPC8XXX=y
CONFIG_GPIO_MVEBU=y
CONFIG_GPIO_PCA953X_IRQ=y
@@ -2017,6 +2048,7 @@ CONFIG_GPIO_TEGRA=y
CONFIG_GPIO_THUNDERX=m
# CONFIG_GPIO_TPIC2810 is not set
CONFIG_GPIO_TPS65086=m
+CONFIG_GPIO_TPS6586X=y
CONFIG_GPIO_TPS68470=y
# CONFIG_GPIO_TS4900 is not set
CONFIG_GPIO_VIPERBOARD=m
@@ -2045,10 +2077,10 @@ CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
-# CONFIG_HDC100X is not set
+CONFIG_HDC100X=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
# CONFIG_HERMES is not set
CONFIG_HERMES_PRISM=y
@@ -2077,6 +2109,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2167,7 +2200,6 @@ CONFIG_HID_ZEROPLUS=m
CONFIG_HID_ZYDACRON=m
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_HIPPI is not set
-CONFIG_HISI_KIRIN_DW_DSI=m
CONFIG_HISILICON_ERRATUM_161010101=y
CONFIG_HISILICON_ERRATUM_161600802=y
CONFIG_HISILICON_IRQ_MBIGEN=y
@@ -2199,7 +2231,7 @@ CONFIG_HT16K33=m
# CONFIG_HTC_I2CPLD is not set
# CONFIG_HTC_PASIC3 is not set
CONFIG_HTS221=m
-# CONFIG_HTU21 is not set
+CONFIG_HTU21=m
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
# CONFIG_HVC_DCC is not set
@@ -2246,7 +2278,6 @@ CONFIG_I2C_ALGOPCF=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CADENCE=m
@@ -2400,11 +2431,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2420,7 +2453,9 @@ CONFIG_IMA=y
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_IMX2_WDT=m
CONFIG_IMX7D_ADC=m
+# CONFIG_IMX7ULP_WDT is not set
# CONFIG_IMX_DMA is not set
+CONFIG_IMX_DSP=y
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
# CONFIG_IMX_IPUV3_CORE is not set
@@ -2558,6 +2593,7 @@ CONFIG_INTEL_STRATIX10_SERVICE=m
# CONFIG_INTEL_TH is not set
CONFIG_INTEL_XWAY_PHY=m
CONFIG_INTERCONNECT=m
+# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
CONFIG_INTERCONNECT_QCOM_SDM845=m
CONFIG_INTERCONNECT_QCOM=y
# CONFIG_INTERVAL_TREE_TEST is not set
@@ -2575,6 +2611,7 @@ CONFIG_IOMMU_DMA=y
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2820,6 +2857,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2858,6 +2896,7 @@ CONFIG_KARMA_PARTITION=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2865,6 +2904,7 @@ CONFIG_KERNEL_MODE_NEON=y
# CONFIG_KERNEL_UNCOMPRESSED is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KEXEC_FILE is not set
+CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
CONFIG_KEYBOARD_ADC=m
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2920,9 +2960,6 @@ CONFIG_KPROBE_EVENTS=y
CONFIG_KPROBES=y
CONFIG_KPSS_XCC=m
CONFIG_KRAITCC=m
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
@@ -2998,7 +3035,7 @@ CONFIG_LEDS_NIC78BX=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_PCA963X is not set
+CONFIG_LEDS_PCA963X=m
CONFIG_LEDS_PWM=m
CONFIG_LEDS_REGULATOR=m
# CONFIG_LEDS_SPI_BYTE is not set
@@ -3051,7 +3088,7 @@ CONFIG_LIBNVDIMM=m
# CONFIG_LIQUIDIO is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -3060,7 +3097,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
# CONFIG_LOCK_EVENT_COUNTS is not set
# CONFIG_LOCK_STAT is not set
@@ -3115,7 +3154,7 @@ CONFIG_MAC_PARTITION=y
CONFIG_MACSEC=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-# CONFIG_MAG3110 is not set
+CONFIG_MAG3110=m
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ=y
@@ -3144,6 +3183,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -3157,8 +3197,8 @@ CONFIG_MB1232=m
# CONFIG_MC3230 is not set
# CONFIG_MCB is not set
# CONFIG_MCORE2 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
CONFIG_MCP3911=m
CONFIG_MCP4018=m
CONFIG_MCP41010=m
@@ -3237,6 +3277,7 @@ CONFIG_MEMSTICK_TIFM_MS=m
# CONFIG_MEN_A21_WDT is not set
CONFIG_MESON_CANVAS=m
# CONFIG_MESON_CLK_MEASURE is not set
+CONFIG_MESON_EE_PM_DOMAINS=y
CONFIG_MESON_EFUSE=m
CONFIG_MESON_GXBB_WATCHDOG=m
CONFIG_MESON_GXL_PHY=m
@@ -3270,8 +3311,8 @@ 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=m
+CONFIG_MFD_CROS_EC_DEV=m
+# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9052_SPI is not set
@@ -3388,6 +3429,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
CONFIG_MLX5_INFINIBAND=m
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXBF_TMFIFO=m
@@ -3447,6 +3490,7 @@ CONFIG_MMC_SDHCI_IPROC=m
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_MSM=m
CONFIG_MMC_SDHCI_OF_ARASAN=m
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
CONFIG_MMC_SDHCI_OF_ESDHC=m
@@ -3470,6 +3514,7 @@ CONFIG_MMC_VUB300=m
CONFIG_MMC_WBSD=m
CONFIG_MMC=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -3504,6 +3549,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+CONFIG_MOXTET=m
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
# CONFIG_MPL3115 is not set
@@ -3580,6 +3626,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3697,12 +3744,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3876,6 +3925,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3929,6 +3979,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
CONFIG_NET_VENDOR_QUALCOMM=y
CONFIG_NET_VENDOR_RDC=y
@@ -4095,10 +4146,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -4158,6 +4209,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
CONFIG_NODES_SHIFT=9
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
@@ -4171,7 +4223,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
CONFIG_NOZOMI=m
-CONFIG_NR_CPUS=256
+CONFIG_NR_CPUS=4096
CONFIG_NS83820=m
# CONFIG_NTB is not set
# CONFIG_NTFS_FS is not set
@@ -4235,7 +4287,7 @@ CONFIG_OPENVSWITCH_VXLAN=m
CONFIG_OPT3001=m
CONFIG_OPTEE=m
CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -4327,6 +4379,7 @@ CONFIG_PCI_AARDVARK=y
# CONFIG_PCI_DEBUG is not set
CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
+# CONFIG_PCIE_AL is not set
# CONFIG_PCIE_ALTERA is not set
CONFIG_PCIE_ARMADA_8K=y
# CONFIG_PCIEASPM_DEBUG is not set
@@ -4351,6 +4404,7 @@ CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_QCOM=y
# CONFIG_PCIE_ROCKCHIP_HOST is not set
+CONFIG_PCIE_TEGRA194=m
CONFIG_PCIE_XILINX_NWL=y
CONFIG_PCIE_XILINX=y
# CONFIG_PCI_FTPCI100 is not set
@@ -4451,6 +4505,7 @@ CONFIG_PHY_ROCKCHIP_USB=m
CONFIG_PHY_SUN4I_USB=m
CONFIG_PHY_SUN6I_MIPI_DPHY=m
# CONFIG_PHY_SUN9I_USB is not set
+CONFIG_PHY_TEGRA194_P2U=m
CONFIG_PHY_TEGRA_XUSB=m
# CONFIG_PHY_TUSB1210 is not set
CONFIG_PHY_XGENE=y
@@ -4501,6 +4556,7 @@ CONFIG_PINCTRL_QCOM_SPMI_PMIC=y
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_QDF2XXX=y
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
CONFIG_PINCTRL_SDM845=y
CONFIG_PINCTRL_SINGLE=y
@@ -4606,7 +4662,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4658,7 +4713,7 @@ CONFIG_PWM_HIBVT=m
CONFIG_PWM_IMX27=m
CONFIG_PWM_IMX_TPM=m
CONFIG_PWM_MESON=m
-# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_PCA9685=m
CONFIG_PWM_ROCKCHIP=m
# CONFIG_PWM_STMPE is not set
CONFIG_PWM_SUN4I=m
@@ -4716,6 +4771,7 @@ CONFIG_QCOM_SMD_RPM=m
CONFIG_QCOM_SMEM=m
CONFIG_QCOM_SMP2P=m
CONFIG_QCOM_SMSM=m
+# CONFIG_QCOM_SOCINFO is not set
CONFIG_QCOM_SPMI_ADC5=m
CONFIG_QCOM_SPMI_IADC=m
CONFIG_QCOM_SPMI_TEMP_ALARM=m
@@ -4773,6 +4829,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
CONFIG_RANDOMIZE_MODULE_REGION_FULL=y
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
# CONFIG_RANDOM_TRUST_CPU is not set
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4813,13 +4870,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
# CONFIG_RDS is not set
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4875,6 +4933,7 @@ CONFIG_REGULATOR_QCOM_SPMI=m
CONFIG_REGULATOR_RK808=y
# CONFIG_REGULATOR_SLG51000 is not set
CONFIG_REGULATOR_SY8106A=m
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4896,7 +4955,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
CONFIG_RESET_CONTROLLER=y
@@ -4905,6 +4964,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
CONFIG_RESET_QCOM_AOSS=y
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
# CONFIG_RESET_TI_SCI is not set
CONFIG_RESET_TI_SYSCON=m
@@ -5028,6 +5088,7 @@ CONFIG_RTC_DRV_DS3232=m
CONFIG_RTC_DRV_EFI=y
CONFIG_RTC_DRV_EM3027=m
CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_FSL_FTM_ALARM=m
# CONFIG_RTC_DRV_FTRTC010 is not set
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
CONFIG_RTC_DRV_HYM8563=m
@@ -5048,6 +5109,7 @@ CONFIG_RTC_DRV_MAX6902=m
CONFIG_RTC_DRV_MAX6916=m
CONFIG_RTC_DRV_MAX77686=m
CONFIG_RTC_DRV_MCP795=m
+CONFIG_RTC_DRV_MESON_VRTC=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_MV=m
# CONFIG_RTC_DRV_MXC is not set
@@ -5288,6 +5350,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -5316,7 +5380,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -5329,6 +5392,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCMI=m
CONFIG_SENSORS_ARM_SCPI=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -5347,7 +5411,7 @@ CONFIG_SENSORS_G760A=m
CONFIG_SENSORS_G762=m
CONFIG_SENSORS_GL518SM=m
CONFIG_SENSORS_GL520SM=m
-# CONFIG_SENSORS_GPIO_FAN is not set
+CONFIG_SENSORS_GPIO_FAN=m
# CONFIG_SENSORS_HIH6130 is not set
# CONFIG_SENSORS_HMC5843_I2C is not set
# CONFIG_SENSORS_HMC5843_SPI is not set
@@ -5359,6 +5423,7 @@ CONFIG_SENSORS_IIO_HWMON=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5491,7 +5556,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_FINTEK is not set
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_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -5512,6 +5576,7 @@ CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
CONFIG_SERIAL_FSL_LPUART=y
# CONFIG_SERIAL_IFX6X60 is not set
@@ -5565,13 +5630,12 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
# CONFIG_SI1145 is not set
# CONFIG_SI7005 is not set
-# CONFIG_SI7020 is not set
+CONFIG_SI7020=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SIMPLE_PM_BUS=y
# CONFIG_SIOX is not set
@@ -5603,6 +5667,7 @@ CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
# CONFIG_SM_FTL is not set
+CONFIG_SM_GCC_8150=y
CONFIG_SMP=y
CONFIG_SMSC911X=m
CONFIG_SMSC9420=m
@@ -5692,7 +5757,8 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
+# CONFIG_SND_HDA_INTEL is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
CONFIG_SND_HDA_PREALLOC_SIZE=4096
@@ -5766,6 +5832,7 @@ CONFIG_SND_SOC_AC97_CODEC=m
# CONFIG_SND_SOC_ADAU1701 is not set
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU1977_I2C=m
CONFIG_SND_SOC_ADAU7002=m
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4118 is not set
@@ -5789,21 +5856,22 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
-# CONFIG_SND_SOC_CS4265 is not set
+CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
+CONFIG_SND_SOC_CS4271_I2C=m
# CONFIG_SND_SOC_CS4271_SPI is not set
CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
+CONFIG_SND_SOC_CS42XX8_I2C=m
CONFIG_SND_SOC_CS43130=m
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES7241 is not set
@@ -5825,6 +5893,7 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
CONFIG_SND_SOC_IMX_AUDMIX=m
# CONFIG_SND_SOC_IMX_AUDMUX is not set
@@ -5860,6 +5929,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m
CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
+CONFIG_SND_SOC_PCM5102A=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_SPI=m
@@ -5889,6 +5959,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -5924,8 +5995,9 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m
# CONFIG_SND_SOC_TEGRA_WM8903 is not set
# CONFIG_SND_SOC_TEGRA_WM9712 is not set
# CONFIG_SND_SOC_TFA9879 is not set
-# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC23_SPI=m
# CONFIG_SND_SOC_TLV320AIC31XX is not set
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
@@ -5934,6 +6006,7 @@ CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
CONFIG_SND_SOC_WCD9335=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
@@ -5941,9 +6014,9 @@ CONFIG_SND_SOC_WM8524=m
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
+CONFIG_SND_SOC_WM8731=m
# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
+CONFIG_SND_SOC_WM8741=m
# CONFIG_SND_SOC_WM8750 is not set
# CONFIG_SND_SOC_WM8753 is not set
# CONFIG_SND_SOC_WM8770 is not set
@@ -6009,7 +6082,6 @@ 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
@@ -6201,6 +6273,7 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
CONFIG_TCG_CRB=y
+CONFIG_TCG_FTPM_TEE=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -6273,6 +6346,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -6343,7 +6417,6 @@ CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
CONFIG_TINYDRM_MI0283QT=m
-CONFIG_TINYDRM_MIPI_DBI=m
CONFIG_TINYDRM_REPAPER=m
CONFIG_TINYDRM_ST7586=m
CONFIG_TINYDRM_ST7735R=m
@@ -6356,7 +6429,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
CONFIG_TMP006=m
@@ -6367,7 +6440,7 @@ CONFIG_TMPFS=y
# CONFIG_TOUCHSCREEN_AD7877 is not set
# CONFIG_TOUCHSCREEN_AD7879 is not set
CONFIG_TOUCHSCREEN_ADC=m
-# CONFIG_TOUCHSCREEN_ADS7846 is not set
+CONFIG_TOUCHSCREEN_ADS7846=m
# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set
@@ -6388,9 +6461,9 @@ CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
CONFIG_TOUCHSCREEN_ELAN=m
CONFIG_TOUCHSCREEN_ELO=m
-# CONFIG_TOUCHSCREEN_EXC3000 is not set
+CONFIG_TOUCHSCREEN_EXC3000=m
CONFIG_TOUCHSCREEN_FUJITSU=m
-# CONFIG_TOUCHSCREEN_GOODIX is not set
+CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_GUNZE=m
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
@@ -6457,7 +6530,7 @@ CONFIG_TRUSTED_KEYS=m
# CONFIG_TS4800_WATCHDOG is not set
# CONFIG_TSL2583 is not set
CONFIG_TSL2772=m
-# CONFIG_TSL4531 is not set
+CONFIG_TSL4531=m
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
CONFIG_TULIP=m
@@ -6475,6 +6548,7 @@ CONFIG_TUNE_DEFAULT=y
# CONFIG_TUNE_ZEC12 is not set
CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TURRIS_MOX_RWTM=m
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
CONFIG_TYPEC_DP_ALTMODE=m
@@ -6489,6 +6563,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -6549,6 +6624,7 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -6573,6 +6649,7 @@ CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_OBEX=y
# CONFIG_USB_CONFIGFS_RNDIS is not set
CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONN_GPIO=m
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -6771,9 +6848,10 @@ CONFIG_USB_NET_SMSC95XX=m
CONFIG_USB_NET_SR9700=m
# CONFIG_USB_NET_SR9800 is not set
CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_PCI=m
CONFIG_USB_OHCI_HCD_PLATFORM=m
-CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_HCD_SSB is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
@@ -6793,7 +6871,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597 is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -6931,7 +7008,7 @@ CONFIG_VALIDATE_FS_PARSER=y
# CONFIG_VCNL4000 is not set
CONFIG_VCNL4035=m
CONFIG_VDSO=y
-# CONFIG_VEML6070 is not set
+CONFIG_VEML6070=m
CONFIG_VETH=m
CONFIG_VEXPRESS_SYSCFG=y
# CONFIG_VF610_ADC is not set
@@ -7037,6 +7114,7 @@ CONFIG_VIDEO_SAA7164=m
CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
+CONFIG_VIDEO_SUN4I_CSI=m
CONFIG_VIDEO_SUN6I_CSI=m
CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
@@ -7061,6 +7139,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -7110,6 +7189,7 @@ CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_GPIO=m
# CONFIG_W1_MASTER_MATROX is not set
# CONFIG_W1_MASTER_MXC is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -7120,6 +7200,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-aarch64-rhel.config b/kernel-aarch64-rhel.config
new file mode 100644
index 000000000..c76e0e471
--- /dev/null
+++ b/kernel-aarch64-rhel.config
@@ -0,0 +1 @@
+# EMPTY
diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug-fedora.config
index 1fe8f68d3..ca2ef034c 100644
--- a/kernel-armv7hl-debug.config
+++ b/kernel-armv7hl-debug-fedora.config
@@ -100,6 +100,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -109,6 +110,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -174,13 +176,12 @@ CONFIG_AMD8111_ETH=m
# CONFIG_AMD_IOMMU_DEBUGFS is not set
CONFIG_AMD_PHY=m
# CONFIG_AMD_XGBE_DCB is not set
-# CONFIG_AMD_XGBE is not set
CONFIG_AMIGA_PARTITION=y
CONFIG_AMX3_PM=m
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
CONFIG_APDS9802ALS=m
-# CONFIG_APDS9960 is not set
+CONFIG_APDS9960=m
# CONFIG_APM_EMULATION is not set
# CONFIG_APPLE_PROPERTIES is not set
# CONFIG_APPLICOM is not set
@@ -192,6 +193,7 @@ CONFIG_AR5523=m
# CONFIG_ARCH_ACTIONS is not set
# CONFIG_ARCH_ALPINE is not set
# CONFIG_ARCH_ARTPEC is not set
+# CONFIG_ARCH_ASPEED is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_BCM_21664 is not set
# CONFIG_ARCH_BCM_23550 is not set
@@ -220,13 +222,9 @@ CONFIG_ARCH_EXYNOS=y
CONFIG_ARCH_HAS_TICK_BROADCAST=y
CONFIG_ARCH_HIGHBANK=y
# CONFIG_ARCH_HISI is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_KEYSTONE is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MDM9615 is not set
# CONFIG_ARCH_MEDIATEK is not set
CONFIG_ARCH_MESON=y
@@ -236,6 +234,7 @@ CONFIG_ARCH_MSM8960=y
CONFIG_ARCH_MSM8974=y
CONFIG_ARCH_MSM8X60=y
CONFIG_ARCH_MULTIPLATFORM=y
+# CONFIG_ARCH_MULTI_V5 is not set
# CONFIG_ARCH_MULTI_V6 is not set
CONFIG_ARCH_MULTI_V7=y
CONFIG_ARCH_MVEBU=y
@@ -274,7 +273,6 @@ CONFIG_ARCH_VEXPRESS_SPC=y
CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_VIRT=y
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_WM8850 is not set
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQ=y
@@ -287,6 +285,7 @@ CONFIG_ARM64_PA_BITS_48=y
CONFIG_ARMADA_37XX_RWTM_MBOX=m
# CONFIG_ARMADA_37XX_WATCHDOG is not set
CONFIG_ARMADA_THERMAL=m
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
@@ -348,10 +347,11 @@ CONFIG_ARM_PATCH_IDIV=y
CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_FW=y
CONFIG_ARM_PSCI=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
CONFIG_ARM_QCOM_CPUFREQ_HW=m
-CONFIG_ARM_QCOM_CPUFREQ_KRYO=m
CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SCMI_CPUFREQ=m
@@ -367,6 +367,7 @@ CONFIG_ARM_SPE_PMU=m
CONFIG_ARM_STI_CPUFREQ=m
CONFIG_ARM_TEGRA124_CPUFREQ=y
CONFIG_ARM_TEGRA20_CPUFREQ=m
+CONFIG_ARM_TEGRA20_DEVFREQ=m
CONFIG_ARM_TEGRA_DEVFREQ=m
CONFIG_ARM_THUMBEE=y
CONFIG_ARM_THUMB=y
@@ -422,6 +423,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -545,9 +547,9 @@ CONFIG_BATTERY_DA9052=m
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+CONFIG_BATTERY_GAUGE_LTC2941=m
# CONFIG_BATTERY_LEGO_EV3 is not set
-# CONFIG_BATTERY_MAX17040 is not set
+CONFIG_BATTERY_MAX17040=m
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1721X is not set
CONFIG_BATTERY_OLPC=m
@@ -602,6 +604,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -802,18 +805,23 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
CONFIG_CAN_FLEXCAN=m
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
-# CONFIG_CAN_MCP251X is not set
+CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
@@ -845,7 +853,6 @@ CONFIG_CARL9170_DEBUGFS=y
CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170=m
CONFIG_CASSINI=m
-CONFIG_CAVIUM_TX2_ERRATUM_219=y
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
# CONFIG_CC10001_ADC is not set
@@ -1043,6 +1050,7 @@ CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND=y
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -1054,7 +1062,6 @@ CONFIG_CPU_THERMAL=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -1069,10 +1076,12 @@ CONFIG_CRC8=m
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
+CONFIG_CROS_EC_CHARDEV=m
CONFIG_CROS_EC_DEBUGFS=m
CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
# CONFIG_CROS_EC_LIGHTBAR is not set
+CONFIG_CROS_EC=m
CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_EC_SPI=m
@@ -1083,9 +1092,8 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
+CONFIG_CRYPTO_AEGIS128_SIMD=y
CONFIG_CRYPTO_AES_ARM_BS=y
# CONFIG_CRYPTO_AES_ARM_CE is not set
CONFIG_CRYPTO_AES_ARM=y
@@ -1120,6 +1128,7 @@ CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCREE=m
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
@@ -1151,6 +1160,7 @@ CONFIG_CRYPTO_DEV_QCE=m
CONFIG_CRYPTO_DEV_QCOM_RNG=m
CONFIG_CRYPTO_DEV_ROCKCHIP=m
CONFIG_CRYPTO_DEV_S5P=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
CONFIG_CRYPTO_DEV_SAHARA=m
# CONFIG_CRYPTO_DEV_SP_CCP is not set
CONFIG_CRYPTO_DEV_STM32_CRC=m
@@ -1167,6 +1177,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -1187,8 +1198,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NHPOLY1305_NEON=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
@@ -1215,7 +1224,7 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -1269,17 +1278,16 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
-CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4096
+CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
CONFIG_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KOBJECT is not set
@@ -1362,6 +1370,7 @@ CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_API_DEBUG=y
CONFIG_DMA_BCM2835=m
+# CONFIG_DMABUF_SELFTESTS is not set
CONFIG_DMA_CMA=y
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
@@ -1379,6 +1388,7 @@ CONFIG_DMA_SUN6I=m
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1406,6 +1416,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1466,6 +1477,7 @@ CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FSL_DCU is not set
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
# CONFIG_DRM_HISI_HIBMC is not set
@@ -1515,12 +1527,6 @@ CONFIG_DRM_OMAP_ENCODER_OPA362=m
CONFIG_DRM_OMAP_ENCODER_TPD12S015=m
CONFIG_DRM_OMAP=m
CONFIG_DRM_OMAP_PANEL_DSI_CM=m
-CONFIG_DRM_OMAP_PANEL_LGPHILIPS_LB035Q02=m
-CONFIG_DRM_OMAP_PANEL_NEC_NL8048HL11=m
-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_ARM_VERSATILE=m
CONFIG_DRM_PANEL_BRIDGE=y
CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
@@ -1529,13 +1535,17 @@ CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1547,10 +1557,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
CONFIG_DRM_PANEL_TPO_TPG110=m
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1578,13 +1592,12 @@ CONFIG_DRM_SUN4I=m
CONFIG_DRM_SUN6I_DSI=m
CONFIG_DRM_SUN8I_DW_HDMI=m
CONFIG_DRM_SUN8I_MIXER=m
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_TEGRA_DEBUG is not set
CONFIG_DRM_TEGRA=m
CONFIG_DRM_TEGRA_STAGING=y
# CONFIG_DRM_THINE_THC63LVD1024 is not set
CONFIG_DRM_TILCDC=m
-CONFIG_DRM_TINYDRM=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1718,6 +1731,7 @@ CONFIG_EARLY_PRINTK=y
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
+CONFIG_EDAC_ARMADA_XP=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_GHES=y
CONFIG_EDAC_HIGHBANK_L2=m
@@ -1738,7 +1752,8 @@ CONFIG_EFI_ARMSTUB_DTB_LOADER=y
# CONFIG_EFI_CAPSULE_LOADER is not set
CONFIG_EFI_PARTITION=y
CONFIG_EFI_PGT_DUMP=y
-# CONFIG_EFI_TEST is not set
+# CONFIG_EFI_RCI2_TABLE is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_EFI_VARS_PSTORE=y
@@ -1763,6 +1778,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1935,12 +1951,16 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_IMX8_DDR_PMU is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
# CONFIG_FSL_XGMAC_MDIO is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -2035,6 +2055,7 @@ CONFIG_GPIO_MAX77650=m
# CONFIG_GPIO_MB86S7X is not set
CONFIG_GPIO_MC33880=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MOXTET=m
# CONFIG_GPIO_MPC8XXX is not set
CONFIG_GPIO_MVEBU=y
CONFIG_GPIO_OMAP=y
@@ -2092,11 +2113,11 @@ CONFIG_HAVE_ARM_TWD=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
-# CONFIG_HDC100X is not set
+CONFIG_HDC100X=m
CONFIG_HDQ_MASTER_OMAP=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
# CONFIG_HERMES is not set
CONFIG_HERMES_PRISM=y
@@ -2123,6 +2144,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2242,7 +2264,7 @@ CONFIG_HT16K33=m
# CONFIG_HTC_I2CPLD is not set
# CONFIG_HTC_PASIC3 is not set
CONFIG_HTS221=m
-# CONFIG_HTU21 is not set
+CONFIG_HTU21=m
CONFIG_HUGETLBFS=y
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_HVC_DCC is not set
@@ -2290,7 +2312,6 @@ CONFIG_I2C_ALGOPCF=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CADENCE=m
@@ -2445,11 +2466,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2465,7 +2488,9 @@ CONFIG_IMA=y
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_IMX2_WDT=m
CONFIG_IMX7D_ADC=m
+# CONFIG_IMX7ULP_WDT is not set
# CONFIG_IMX_DMA is not set
+CONFIG_IMX_DSP=y
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
CONFIG_IMX_IPUV3_CORE=m
@@ -2611,6 +2636,7 @@ CONFIG_INTEL_STRATIX10_SERVICE=m
# CONFIG_INTEL_TH is not set
CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INTERCONNECT is not set
+# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
# CONFIG_INTERVAL_TREE_TEST is not set
CONFIG_INV_MPU6050_I2C=m
CONFIG_INV_MPU6050_IIO=m
@@ -2626,6 +2652,7 @@ CONFIG_IOMMU_DMA=y
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2871,6 +2898,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2910,6 +2938,7 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0
CONFIG_KDB_KEYBOARD=y
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2977,9 +3006,6 @@ CONFIG_KPROBE_EVENTS=y
CONFIG_KPROBES=y
CONFIG_KPSS_XCC=m
CONFIG_KRAITCC=m
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
CONFIG_KS8851=m
@@ -3058,7 +3084,7 @@ CONFIG_LEDS_NS2=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_PCA963X is not set
+CONFIG_LEDS_PCA963X=m
CONFIG_LEDS_PM8058=m
CONFIG_LEDS_PWM=m
CONFIG_LEDS_REGULATOR=m
@@ -3111,7 +3137,7 @@ CONFIG_LIBFCOE=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -3120,7 +3146,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
CONFIG_LOCK_EVENT_COUNTS=y
# CONFIG_LOCK_STAT is not set
@@ -3196,7 +3224,7 @@ CONFIG_MAC_PARTITION=y
CONFIG_MACSEC=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-# CONFIG_MAG3110 is not set
+CONFIG_MAG3110=m
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ=y
@@ -3225,6 +3253,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -3237,8 +3266,8 @@ CONFIG_MB1232=m
# CONFIG_MC3230 is not set
# CONFIG_MCB is not set
# CONFIG_MCORE2 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
CONFIG_MCP3911=m
CONFIG_MCP4018=m
CONFIG_MCP41010=m
@@ -3316,6 +3345,7 @@ CONFIG_MEMSTICK_TIFM_MS=m
# CONFIG_MEN_A21_WDT is not set
CONFIG_MESON_CANVAS=m
# CONFIG_MESON_CLK_MEASURE is not set
+CONFIG_MESON_EE_PM_DOMAINS=y
CONFIG_MESON_EFUSE=m
# CONFIG_MESON_GXBB_WATCHDOG is not set
# CONFIG_MESON_GXL_PHY is not set
@@ -3349,8 +3379,8 @@ 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=m
+CONFIG_MFD_CROS_EC_DEV=m
+# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
CONFIG_MFD_DA9052_I2C=y
CONFIG_MFD_DA9052_SPI=y
@@ -3472,6 +3502,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
# CONFIG_MLX5_INFINIBAND is not set
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -3532,6 +3564,7 @@ CONFIG_MMC_SDHCI_IPROC=m
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_MSM=m
CONFIG_MMC_SDHCI_OF_ARASAN=m
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
CONFIG_MMC_SDHCI_OF_ESDHC=m
@@ -3563,6 +3596,7 @@ CONFIG_MMIOTRACE=y
CONFIG_MMP_PDMA=y
CONFIG_MMP_TDMA=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_FORCE_UNLOAD=y
@@ -3597,6 +3631,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+CONFIG_MOXTET=m
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
CONFIG_MPL3115=m
@@ -3677,6 +3712,7 @@ CONFIG_MTD_NAND_GPMI_NAND=m
CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MESON is not set
CONFIG_MTD_NAND_MXC=m
+# CONFIG_MTD_NAND_MXIC is not set
CONFIG_MTD_NAND_NANDSIM=m
CONFIG_MTD_NAND_OMAP2=m
CONFIG_MTD_NAND_OMAP_BCH=y
@@ -3798,12 +3834,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3976,6 +4014,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -4030,6 +4069,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -4195,10 +4235,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -4258,6 +4298,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
@@ -4364,7 +4405,7 @@ CONFIG_OPENVSWITCH_VXLAN=m
CONFIG_OPT3001=m
CONFIG_OPTEE=m
CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -4624,6 +4665,7 @@ CONFIG_PINCTRL_QCOM_SSBI_PMIC=m
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
CONFIG_PINCTRL_SAMSUNG=y
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SDM845 is not set
CONFIG_PINCTRL_SINGLE=y
@@ -4736,7 +4778,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4789,7 +4830,7 @@ CONFIG_PWM_IMX27=m
CONFIG_PWM_IMX_TPM=m
CONFIG_PWM_MESON=m
CONFIG_PWM_OMAP_DMTIMER=m
-# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_PCA9685=m
CONFIG_PWM_ROCKCHIP=m
CONFIG_PWM_SAMSUNG=m
CONFIG_PWM_STI=m
@@ -4820,7 +4861,7 @@ CONFIG_QCOM_CLK_APCS_MSM8916=m
CONFIG_QCOM_CLK_RPM=m
CONFIG_QCOM_CLK_SMD_RPM=m
CONFIG_QCOM_COINCELL=m
-# CONFIG_QCOM_COMMAND_DB is not set
+CONFIG_QCOM_COMMAND_DB=y
# CONFIG_QCOM_EBI2 is not set
# CONFIG_QCOM_EMAC is not set
CONFIG_QCOM_FASTRPC=m
@@ -4842,6 +4883,7 @@ CONFIG_QCOM_SMD_RPM=m
# CONFIG_QCOM_SMEM is not set
CONFIG_QCOM_SMP2P=m
CONFIG_QCOM_SMSM=m
+CONFIG_QCOM_SOCINFO=m
CONFIG_QCOM_SPMI_ADC5=m
CONFIG_QCOM_SPMI_IADC=m
CONFIG_QCOM_SPMI_TEMP_ALARM=m
@@ -4897,6 +4939,7 @@ CONFIG_RADIO_WL1273=m
# CONFIG_RAID6_PQ_BENCHMARK is not set
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
# CONFIG_RANDOM_TRUST_CPU is not set
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4938,13 +4981,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
# CONFIG_RDMA_RXE is not set
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
# CONFIG_RDS is not set
# CONFIG_RDS_RDMA is not set
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -5014,6 +5058,7 @@ CONFIG_REGULATOR_STM32_PWR=y
CONFIG_REGULATOR_STM32_VREFBUF=m
CONFIG_REGULATOR_STPMIC1=m
CONFIG_REGULATOR_SY8106A=m
+# CONFIG_REGULATOR_SY8824X is not set
CONFIG_REGULATOR_TI_ABB=m
CONFIG_REGULATOR_TPS51632=m
CONFIG_REGULATOR_TPS62360=m
@@ -5043,7 +5088,7 @@ CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
CONFIG_RESET_CONTROLLER=y
@@ -5051,6 +5096,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
# CONFIG_RESET_QCOM_AOSS is not set
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
CONFIG_RESET_STM32MP157=y
# CONFIG_RESET_TI_SCI is not set
@@ -5201,6 +5247,7 @@ CONFIG_RTC_DRV_MAX8997=m
CONFIG_RTC_DRV_MC13XXX=m
# CONFIG_RTC_DRV_MCP795 is not set
CONFIG_RTC_DRV_MESON=m
+CONFIG_RTC_DRV_MESON_VRTC=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_MV=m
# CONFIG_RTC_DRV_MXC is not set
@@ -5450,6 +5497,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
# CONFIG_SECURITY_INFINIBAND is not set
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -5477,7 +5526,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -5490,6 +5538,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCMI=m
CONFIG_SENSORS_ARM_SCPI=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -5522,6 +5571,7 @@ CONFIG_SENSORS_IIO_HWMON=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5656,7 +5706,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_FINTEK is not set
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_TTYO_FIXUP=y
CONFIG_SERIAL_8250_OMAP=y
@@ -5682,6 +5731,7 @@ CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
CONFIG_SERIAL_FSL_LPUART=y
# CONFIG_SERIAL_IFX6X60 is not set
@@ -5740,7 +5790,6 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -5776,6 +5825,7 @@ CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
# CONFIG_SM_FTL is not set
+# CONFIG_SM_GCC_8150 is not set
CONFIG_SMP_ON_UP=y
CONFIG_SMP=y
CONFIG_SMSC911X=m
@@ -5868,7 +5918,8 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
+# CONFIG_SND_HDA_INTEL is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
CONFIG_SND_HDA_PREALLOC_SIZE=4096
@@ -5950,6 +6001,7 @@ CONFIG_SND_SOC_AC97_CODEC=m
# CONFIG_SND_SOC_ADAU1701 is not set
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU1977_I2C=m
CONFIG_SND_SOC_ADAU7002=m
CONFIG_SND_SOC_ADI_AXI_I2S=m
CONFIG_SND_SOC_ADI_AXI_SPDIF=m
@@ -5976,9 +6028,9 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
-# CONFIG_SND_SOC_CS4265 is not set
+CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
+CONFIG_SND_SOC_CS4271_I2C=m
# CONFIG_SND_SOC_CS4271_SPI is not set
CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42L51_I2C is not set
@@ -5991,6 +6043,7 @@ CONFIG_SND_SOC_CS43130=m
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
CONFIG_SND_SOC_DAVINCI_MCASP=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_ES7134=m
@@ -6015,6 +6068,7 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
# CONFIG_SND_SOC_IMX_AUDMIX is not set
CONFIG_SND_SOC_IMX_AUDMUX=m
@@ -6032,6 +6086,7 @@ CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
@@ -6065,6 +6120,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m
CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
+CONFIG_SND_SOC_PCM5102A=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_SPI=m
@@ -6094,6 +6150,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -6149,6 +6206,7 @@ CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
CONFIG_SND_SOC_TWL4030=m
CONFIG_SND_SOC_TWL6040=m
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -6157,7 +6215,7 @@ CONFIG_SND_SOC_WM8524=m
# CONFIG_SND_SOC_WM8728 is not set
CONFIG_SND_SOC_WM8731=m
# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
+CONFIG_SND_SOC_WM8741=m
# CONFIG_SND_SOC_WM8750 is not set
CONFIG_SND_SOC_WM8753=m
# CONFIG_SND_SOC_WM8770 is not set
@@ -6250,7 +6308,6 @@ 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_SPARSEMEM_MANUAL=y
@@ -6468,6 +6525,7 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
CONFIG_TCG_CRB=y
+CONFIG_TCG_FTPM_TEE=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -6539,6 +6597,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -6615,7 +6674,6 @@ CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
CONFIG_TINYDRM_MI0283QT=m
-CONFIG_TINYDRM_MIPI_DBI=m
CONFIG_TINYDRM_REPAPER=m
CONFIG_TINYDRM_ST7586=m
CONFIG_TINYDRM_ST7735R=m
@@ -6631,7 +6689,7 @@ CONFIG_TI_SOC_THERMAL=m
CONFIG_TI_THERMAL=y
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
CONFIG_TMP006=m
@@ -6664,9 +6722,9 @@ CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
CONFIG_TOUCHSCREEN_ELAN=m
CONFIG_TOUCHSCREEN_ELO=m
-# CONFIG_TOUCHSCREEN_EXC3000 is not set
+CONFIG_TOUCHSCREEN_EXC3000=m
CONFIG_TOUCHSCREEN_FUJITSU=m
-# CONFIG_TOUCHSCREEN_GOODIX is not set
+CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_GUNZE=m
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
@@ -6734,7 +6792,7 @@ CONFIG_TRUSTED_KEYS=m
# CONFIG_TS4800_WATCHDOG is not set
# CONFIG_TSL2583 is not set
CONFIG_TSL2772=m
-# CONFIG_TSL4531 is not set
+CONFIG_TSL4531=m
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
CONFIG_TULIP=m
@@ -6752,6 +6810,7 @@ CONFIG_TUNE_DEFAULT=y
# CONFIG_TUNE_ZEC12 is not set
CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TURRIS_MOX_RWTM=m
CONFIG_TWL4030_CORE=y
CONFIG_TWL4030_MADC=m
CONFIG_TWL4030_POWER=y
@@ -6773,6 +6832,7 @@ CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
# CONFIG_UACCESS_WITH_MEMCPY is not set
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -6833,6 +6893,7 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -6857,6 +6918,7 @@ CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_OBEX=y
# CONFIG_USB_CONFIGFS_RNDIS is not set
CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONN_GPIO=m
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -7070,11 +7132,12 @@ CONFIG_USB_NET_SR9700=m
# CONFIG_USB_NET_SR9800 is not set
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_EXYNOS=m
+CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_OMAP3=m
CONFIG_USB_OHCI_HCD_PCI=m
CONFIG_USB_OHCI_HCD_PLATFORM=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD_STI=m
-CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
@@ -7094,7 +7157,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597 is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -7234,7 +7296,7 @@ CONFIG_VALIDATE_FS_PARSER=y
# CONFIG_VCNL4000 is not set
CONFIG_VCNL4035=m
# CONFIG_VDSO is not set
-# CONFIG_VEML6070 is not set
+CONFIG_VEML6070=m
CONFIG_VETH=m
CONFIG_VEXPRESS_SYSCFG=y
# CONFIG_VF610_ADC is not set
@@ -7368,6 +7430,7 @@ CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
# CONFIG_VIDEO_STM32_DCMI is not set
CONFIG_VIDEO_STM32_HDMI_CEC=m
+CONFIG_VIDEO_SUN4I_CSI=m
CONFIG_VIDEO_SUN6I_CSI=m
CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
@@ -7392,6 +7455,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -7440,6 +7504,7 @@ CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_GPIO=m
# CONFIG_W1_MASTER_MATROX is not set
CONFIG_W1_MASTER_MXC=m
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -7450,6 +7515,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-armv7hl.config b/kernel-armv7hl-fedora.config
index 1424185f4..f00f13893 100644
--- a/kernel-armv7hl.config
+++ b/kernel-armv7hl-fedora.config
@@ -100,6 +100,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -109,6 +110,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -174,13 +176,12 @@ CONFIG_AMD8111_ETH=m
# CONFIG_AMD_IOMMU_DEBUGFS is not set
CONFIG_AMD_PHY=m
# CONFIG_AMD_XGBE_DCB is not set
-# CONFIG_AMD_XGBE is not set
CONFIG_AMIGA_PARTITION=y
CONFIG_AMX3_PM=m
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
CONFIG_APDS9802ALS=m
-# CONFIG_APDS9960 is not set
+CONFIG_APDS9960=m
# CONFIG_APM_EMULATION is not set
# CONFIG_APPLE_PROPERTIES is not set
# CONFIG_APPLICOM is not set
@@ -192,6 +193,7 @@ CONFIG_AR5523=m
# CONFIG_ARCH_ACTIONS is not set
# CONFIG_ARCH_ALPINE is not set
# CONFIG_ARCH_ARTPEC is not set
+# CONFIG_ARCH_ASPEED is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_BCM_21664 is not set
# CONFIG_ARCH_BCM_23550 is not set
@@ -220,13 +222,9 @@ CONFIG_ARCH_EXYNOS=y
CONFIG_ARCH_HAS_TICK_BROADCAST=y
CONFIG_ARCH_HIGHBANK=y
# CONFIG_ARCH_HISI is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_KEYSTONE is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MDM9615 is not set
# CONFIG_ARCH_MEDIATEK is not set
CONFIG_ARCH_MESON=y
@@ -236,6 +234,7 @@ CONFIG_ARCH_MSM8960=y
CONFIG_ARCH_MSM8974=y
CONFIG_ARCH_MSM8X60=y
CONFIG_ARCH_MULTIPLATFORM=y
+# CONFIG_ARCH_MULTI_V5 is not set
# CONFIG_ARCH_MULTI_V6 is not set
CONFIG_ARCH_MULTI_V7=y
CONFIG_ARCH_MVEBU=y
@@ -274,7 +273,6 @@ CONFIG_ARCH_VEXPRESS_SPC=y
CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_VIRT=y
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_WM8850 is not set
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQ=y
@@ -287,6 +285,7 @@ CONFIG_ARM64_PA_BITS_48=y
CONFIG_ARMADA_37XX_RWTM_MBOX=m
# CONFIG_ARMADA_37XX_WATCHDOG is not set
CONFIG_ARMADA_THERMAL=m
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
@@ -348,10 +347,11 @@ CONFIG_ARM_PATCH_IDIV=y
CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_FW=y
CONFIG_ARM_PSCI=y
# CONFIG_ARM_PTDUMP_DEBUGFS is not set
CONFIG_ARM_QCOM_CPUFREQ_HW=m
-CONFIG_ARM_QCOM_CPUFREQ_KRYO=m
CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SCMI_CPUFREQ=m
@@ -367,6 +367,7 @@ CONFIG_ARM_SPE_PMU=m
CONFIG_ARM_STI_CPUFREQ=m
CONFIG_ARM_TEGRA124_CPUFREQ=y
CONFIG_ARM_TEGRA20_CPUFREQ=m
+CONFIG_ARM_TEGRA20_DEVFREQ=m
CONFIG_ARM_TEGRA_DEVFREQ=m
CONFIG_ARM_THUMBEE=y
CONFIG_ARM_THUMB=y
@@ -422,6 +423,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -545,9 +547,9 @@ CONFIG_BATTERY_DA9052=m
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+CONFIG_BATTERY_GAUGE_LTC2941=m
# CONFIG_BATTERY_LEGO_EV3 is not set
-# CONFIG_BATTERY_MAX17040 is not set
+CONFIG_BATTERY_MAX17040=m
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1721X is not set
CONFIG_BATTERY_OLPC=m
@@ -602,6 +604,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -802,18 +805,23 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
CONFIG_CAN_FLEXCAN=m
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
-# CONFIG_CAN_MCP251X is not set
+CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
@@ -845,7 +853,6 @@ CONFIG_CARDMAN_4040=m
CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170=m
CONFIG_CASSINI=m
-CONFIG_CAVIUM_TX2_ERRATUM_219=y
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
# CONFIG_CC10001_ADC is not set
@@ -1043,6 +1050,7 @@ CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND=y
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -1054,7 +1062,6 @@ CONFIG_CPU_THERMAL=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -1069,10 +1076,12 @@ CONFIG_CRC8=m
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
+CONFIG_CROS_EC_CHARDEV=m
# CONFIG_CROS_EC_DEBUGFS is not set
CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
# CONFIG_CROS_EC_LIGHTBAR is not set
+CONFIG_CROS_EC=m
CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_EC_SPI=m
@@ -1083,9 +1092,8 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
+CONFIG_CRYPTO_AEGIS128_SIMD=y
CONFIG_CRYPTO_AES_ARM_BS=y
# CONFIG_CRYPTO_AES_ARM_CE is not set
CONFIG_CRYPTO_AES_ARM=y
@@ -1120,6 +1128,7 @@ CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCREE=m
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
@@ -1151,6 +1160,7 @@ CONFIG_CRYPTO_DEV_QCE=m
CONFIG_CRYPTO_DEV_QCOM_RNG=m
CONFIG_CRYPTO_DEV_ROCKCHIP=m
CONFIG_CRYPTO_DEV_S5P=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
CONFIG_CRYPTO_DEV_SAHARA=m
# CONFIG_CRYPTO_DEV_SP_CCP is not set
CONFIG_CRYPTO_DEV_STM32_CRC=m
@@ -1167,6 +1177,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -1187,8 +1198,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NHPOLY1305_NEON=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
@@ -1215,7 +1224,7 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -1269,11 +1278,10 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
@@ -1355,6 +1363,7 @@ CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_BCM2835=m
+# CONFIG_DMABUF_SELFTESTS is not set
CONFIG_DMA_CMA=y
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
@@ -1372,6 +1381,7 @@ CONFIG_DMA_SUN6I=m
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1399,6 +1409,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1459,6 +1470,7 @@ CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FSL_DCU is not set
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
# CONFIG_DRM_HISI_HIBMC is not set
@@ -1508,12 +1520,6 @@ CONFIG_DRM_OMAP_ENCODER_OPA362=m
CONFIG_DRM_OMAP_ENCODER_TPD12S015=m
CONFIG_DRM_OMAP=m
CONFIG_DRM_OMAP_PANEL_DSI_CM=m
-CONFIG_DRM_OMAP_PANEL_LGPHILIPS_LB035Q02=m
-CONFIG_DRM_OMAP_PANEL_NEC_NL8048HL11=m
-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_ARM_VERSATILE=m
CONFIG_DRM_PANEL_BRIDGE=y
CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
@@ -1522,13 +1528,17 @@ CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1540,10 +1550,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
CONFIG_DRM_PANEL_TPO_TPG110=m
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1571,13 +1585,12 @@ CONFIG_DRM_SUN4I=m
CONFIG_DRM_SUN6I_DSI=m
CONFIG_DRM_SUN8I_DW_HDMI=m
CONFIG_DRM_SUN8I_MIXER=m
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_TEGRA_DEBUG is not set
CONFIG_DRM_TEGRA=m
CONFIG_DRM_TEGRA_STAGING=y
# CONFIG_DRM_THINE_THC63LVD1024 is not set
CONFIG_DRM_TILCDC=m
-CONFIG_DRM_TINYDRM=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1711,6 +1724,7 @@ CONFIG_EARLY_PRINTK=y
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
+CONFIG_EDAC_ARMADA_XP=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_GHES=y
CONFIG_EDAC_HIGHBANK_L2=m
@@ -1731,7 +1745,8 @@ CONFIG_EFI_ARMSTUB_DTB_LOADER=y
# CONFIG_EFI_CAPSULE_LOADER is not set
CONFIG_EFI_PARTITION=y
# CONFIG_EFI_PGT_DUMP is not set
-# CONFIG_EFI_TEST is not set
+# CONFIG_EFI_RCI2_TABLE is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_EFI_VARS_PSTORE=y
@@ -1756,6 +1771,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1920,12 +1936,16 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_IMX8_DDR_PMU is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
# CONFIG_FSL_XGMAC_MDIO is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -2020,6 +2040,7 @@ CONFIG_GPIO_MAX77650=m
# CONFIG_GPIO_MB86S7X is not set
CONFIG_GPIO_MC33880=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MOXTET=m
# CONFIG_GPIO_MPC8XXX is not set
CONFIG_GPIO_MVEBU=y
CONFIG_GPIO_OMAP=y
@@ -2077,11 +2098,11 @@ CONFIG_HAVE_ARM_TWD=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
-# CONFIG_HDC100X is not set
+CONFIG_HDC100X=m
CONFIG_HDQ_MASTER_OMAP=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
# CONFIG_HERMES is not set
CONFIG_HERMES_PRISM=y
@@ -2108,6 +2129,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2227,7 +2249,7 @@ CONFIG_HT16K33=m
# CONFIG_HTC_I2CPLD is not set
# CONFIG_HTC_PASIC3 is not set
CONFIG_HTS221=m
-# CONFIG_HTU21 is not set
+CONFIG_HTU21=m
CONFIG_HUGETLBFS=y
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_HVC_DCC is not set
@@ -2275,7 +2297,6 @@ CONFIG_I2C_ALGOPCF=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CADENCE=m
@@ -2430,11 +2451,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2450,7 +2473,9 @@ CONFIG_IMA=y
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_IMX2_WDT=m
CONFIG_IMX7D_ADC=m
+# CONFIG_IMX7ULP_WDT is not set
# CONFIG_IMX_DMA is not set
+CONFIG_IMX_DSP=y
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
CONFIG_IMX_IPUV3_CORE=m
@@ -2596,6 +2621,7 @@ CONFIG_INTEL_STRATIX10_SERVICE=m
# CONFIG_INTEL_TH is not set
CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INTERCONNECT is not set
+# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
# CONFIG_INTERVAL_TREE_TEST is not set
CONFIG_INV_MPU6050_I2C=m
CONFIG_INV_MPU6050_IIO=m
@@ -2611,6 +2637,7 @@ CONFIG_IOMMU_DMA=y
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2856,6 +2883,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2893,6 +2921,7 @@ CONFIG_KARMA_PARTITION=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2960,9 +2989,6 @@ CONFIG_KPROBE_EVENTS=y
CONFIG_KPROBES=y
CONFIG_KPSS_XCC=m
CONFIG_KRAITCC=m
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
CONFIG_KS8851=m
@@ -3041,7 +3067,7 @@ CONFIG_LEDS_NS2=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_PCA963X is not set
+CONFIG_LEDS_PCA963X=m
CONFIG_LEDS_PM8058=m
CONFIG_LEDS_PWM=m
CONFIG_LEDS_REGULATOR=m
@@ -3094,7 +3120,7 @@ CONFIG_LIBFCOE=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -3103,7 +3129,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
# CONFIG_LOCK_EVENT_COUNTS is not set
# CONFIG_LOCK_STAT is not set
@@ -3179,7 +3207,7 @@ CONFIG_MAC_PARTITION=y
CONFIG_MACSEC=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-# CONFIG_MAG3110 is not set
+CONFIG_MAG3110=m
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ=y
@@ -3208,6 +3236,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -3219,8 +3248,8 @@ CONFIG_MB1232=m
# CONFIG_MC3230 is not set
# CONFIG_MCB is not set
# CONFIG_MCORE2 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
CONFIG_MCP3911=m
CONFIG_MCP4018=m
CONFIG_MCP41010=m
@@ -3298,6 +3327,7 @@ CONFIG_MEMSTICK_TIFM_MS=m
# CONFIG_MEN_A21_WDT is not set
CONFIG_MESON_CANVAS=m
# CONFIG_MESON_CLK_MEASURE is not set
+CONFIG_MESON_EE_PM_DOMAINS=y
CONFIG_MESON_EFUSE=m
# CONFIG_MESON_GXBB_WATCHDOG is not set
# CONFIG_MESON_GXL_PHY is not set
@@ -3331,8 +3361,8 @@ 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=m
+CONFIG_MFD_CROS_EC_DEV=m
+# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
CONFIG_MFD_DA9052_I2C=y
CONFIG_MFD_DA9052_SPI=y
@@ -3454,6 +3484,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
# CONFIG_MLX5_INFINIBAND is not set
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -3514,6 +3546,7 @@ CONFIG_MMC_SDHCI_IPROC=m
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_MSM=m
CONFIG_MMC_SDHCI_OF_ARASAN=m
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
CONFIG_MMC_SDHCI_OF_ESDHC=m
@@ -3544,6 +3577,7 @@ CONFIG_MMC=y
CONFIG_MMP_PDMA=y
CONFIG_MMP_TDMA=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -3578,6 +3612,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+CONFIG_MOXTET=m
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
CONFIG_MPL3115=m
@@ -3658,6 +3693,7 @@ CONFIG_MTD_NAND_GPMI_NAND=m
CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MESON is not set
CONFIG_MTD_NAND_MXC=m
+# CONFIG_MTD_NAND_MXIC is not set
CONFIG_MTD_NAND_NANDSIM=m
CONFIG_MTD_NAND_OMAP2=m
CONFIG_MTD_NAND_OMAP_BCH=y
@@ -3779,12 +3815,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3957,6 +3995,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -4011,6 +4050,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -4176,10 +4216,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -4239,6 +4279,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
@@ -4345,7 +4386,7 @@ CONFIG_OPENVSWITCH_VXLAN=m
CONFIG_OPT3001=m
CONFIG_OPTEE=m
CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -4605,6 +4646,7 @@ CONFIG_PINCTRL_QCOM_SSBI_PMIC=m
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
CONFIG_PINCTRL_SAMSUNG=y
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SDM845 is not set
CONFIG_PINCTRL_SINGLE=y
@@ -4717,7 +4759,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4769,7 +4810,7 @@ CONFIG_PWM_IMX27=m
CONFIG_PWM_IMX_TPM=m
CONFIG_PWM_MESON=m
CONFIG_PWM_OMAP_DMTIMER=m
-# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_PCA9685=m
CONFIG_PWM_ROCKCHIP=m
CONFIG_PWM_SAMSUNG=m
CONFIG_PWM_STI=m
@@ -4800,7 +4841,7 @@ CONFIG_QCOM_CLK_APCS_MSM8916=m
CONFIG_QCOM_CLK_RPM=m
CONFIG_QCOM_CLK_SMD_RPM=m
CONFIG_QCOM_COINCELL=m
-# CONFIG_QCOM_COMMAND_DB is not set
+CONFIG_QCOM_COMMAND_DB=y
# CONFIG_QCOM_EBI2 is not set
# CONFIG_QCOM_EMAC is not set
CONFIG_QCOM_FASTRPC=m
@@ -4822,6 +4863,7 @@ CONFIG_QCOM_SMD_RPM=m
# CONFIG_QCOM_SMEM is not set
CONFIG_QCOM_SMP2P=m
CONFIG_QCOM_SMSM=m
+CONFIG_QCOM_SOCINFO=m
CONFIG_QCOM_SPMI_ADC5=m
CONFIG_QCOM_SPMI_IADC=m
CONFIG_QCOM_SPMI_TEMP_ALARM=m
@@ -4877,6 +4919,7 @@ CONFIG_RADIO_WL1273=m
# CONFIG_RAID6_PQ_BENCHMARK is not set
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
# CONFIG_RANDOM_TRUST_CPU is not set
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4918,13 +4961,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
# CONFIG_RDMA_RXE is not set
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
# CONFIG_RDS is not set
# CONFIG_RDS_RDMA is not set
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4994,6 +5038,7 @@ CONFIG_REGULATOR_STM32_PWR=y
CONFIG_REGULATOR_STM32_VREFBUF=m
CONFIG_REGULATOR_STPMIC1=m
CONFIG_REGULATOR_SY8106A=m
+# CONFIG_REGULATOR_SY8824X is not set
CONFIG_REGULATOR_TI_ABB=m
CONFIG_REGULATOR_TPS51632=m
CONFIG_REGULATOR_TPS62360=m
@@ -5023,7 +5068,7 @@ CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
CONFIG_RESET_CONTROLLER=y
@@ -5031,6 +5076,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
# CONFIG_RESET_QCOM_AOSS is not set
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
CONFIG_RESET_STM32MP157=y
# CONFIG_RESET_TI_SCI is not set
@@ -5181,6 +5227,7 @@ CONFIG_RTC_DRV_MAX8997=m
CONFIG_RTC_DRV_MC13XXX=m
# CONFIG_RTC_DRV_MCP795 is not set
CONFIG_RTC_DRV_MESON=m
+CONFIG_RTC_DRV_MESON_VRTC=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_MV=m
# CONFIG_RTC_DRV_MXC is not set
@@ -5430,6 +5477,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
# CONFIG_SECURITY_INFINIBAND is not set
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -5457,7 +5506,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -5470,6 +5518,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCMI=m
CONFIG_SENSORS_ARM_SCPI=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -5502,6 +5551,7 @@ CONFIG_SENSORS_IIO_HWMON=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5636,7 +5686,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_FINTEK is not set
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_TTYO_FIXUP=y
CONFIG_SERIAL_8250_OMAP=y
@@ -5662,6 +5711,7 @@ CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
CONFIG_SERIAL_FSL_LPUART=y
# CONFIG_SERIAL_IFX6X60 is not set
@@ -5720,7 +5770,6 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -5756,6 +5805,7 @@ CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
# CONFIG_SM_FTL is not set
+# CONFIG_SM_GCC_8150 is not set
CONFIG_SMP_ON_UP=y
CONFIG_SMP=y
CONFIG_SMSC911X=m
@@ -5848,7 +5898,8 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
+# CONFIG_SND_HDA_INTEL is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
CONFIG_SND_HDA_PREALLOC_SIZE=4096
@@ -5929,6 +5980,7 @@ CONFIG_SND_SOC_AC97_CODEC=m
# CONFIG_SND_SOC_ADAU1701 is not set
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU1977_I2C=m
CONFIG_SND_SOC_ADAU7002=m
CONFIG_SND_SOC_ADI_AXI_I2S=m
CONFIG_SND_SOC_ADI_AXI_SPDIF=m
@@ -5955,9 +6007,9 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
-# CONFIG_SND_SOC_CS4265 is not set
+CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
+CONFIG_SND_SOC_CS4271_I2C=m
# CONFIG_SND_SOC_CS4271_SPI is not set
CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42L51_I2C is not set
@@ -5970,6 +6022,7 @@ CONFIG_SND_SOC_CS43130=m
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
CONFIG_SND_SOC_DAVINCI_MCASP=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_ES7134=m
@@ -5994,6 +6047,7 @@ CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
# CONFIG_SND_SOC_IMX_AUDMIX is not set
CONFIG_SND_SOC_IMX_AUDMUX=m
@@ -6011,6 +6065,7 @@ CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
@@ -6044,6 +6099,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m
CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
+CONFIG_SND_SOC_PCM5102A=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_SPI=m
@@ -6073,6 +6129,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -6128,6 +6185,7 @@ CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
CONFIG_SND_SOC_TWL4030=m
CONFIG_SND_SOC_TWL6040=m
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -6136,7 +6194,7 @@ CONFIG_SND_SOC_WM8524=m
# CONFIG_SND_SOC_WM8728 is not set
CONFIG_SND_SOC_WM8731=m
# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
+CONFIG_SND_SOC_WM8741=m
# CONFIG_SND_SOC_WM8750 is not set
CONFIG_SND_SOC_WM8753=m
# CONFIG_SND_SOC_WM8770 is not set
@@ -6229,7 +6287,6 @@ 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_SPARSEMEM_MANUAL=y
@@ -6447,6 +6504,7 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
CONFIG_TCG_CRB=y
+CONFIG_TCG_FTPM_TEE=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -6518,6 +6576,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -6594,7 +6653,6 @@ CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
CONFIG_TINYDRM_MI0283QT=m
-CONFIG_TINYDRM_MIPI_DBI=m
CONFIG_TINYDRM_REPAPER=m
CONFIG_TINYDRM_ST7586=m
CONFIG_TINYDRM_ST7735R=m
@@ -6610,7 +6668,7 @@ CONFIG_TI_SOC_THERMAL=m
CONFIG_TI_THERMAL=y
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
CONFIG_TMP006=m
@@ -6643,9 +6701,9 @@ CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
CONFIG_TOUCHSCREEN_ELAN=m
CONFIG_TOUCHSCREEN_ELO=m
-# CONFIG_TOUCHSCREEN_EXC3000 is not set
+CONFIG_TOUCHSCREEN_EXC3000=m
CONFIG_TOUCHSCREEN_FUJITSU=m
-# CONFIG_TOUCHSCREEN_GOODIX is not set
+CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_GUNZE=m
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
@@ -6713,7 +6771,7 @@ CONFIG_TRUSTED_KEYS=m
# CONFIG_TS4800_WATCHDOG is not set
# CONFIG_TSL2583 is not set
CONFIG_TSL2772=m
-# CONFIG_TSL4531 is not set
+CONFIG_TSL4531=m
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
CONFIG_TULIP=m
@@ -6731,6 +6789,7 @@ CONFIG_TUNE_DEFAULT=y
# CONFIG_TUNE_ZEC12 is not set
CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TURRIS_MOX_RWTM=m
CONFIG_TWL4030_CORE=y
CONFIG_TWL4030_MADC=m
CONFIG_TWL4030_POWER=y
@@ -6752,6 +6811,7 @@ CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
# CONFIG_UACCESS_WITH_MEMCPY is not set
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -6812,6 +6872,7 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -6836,6 +6897,7 @@ CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_OBEX=y
# CONFIG_USB_CONFIGFS_RNDIS is not set
CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONN_GPIO=m
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -7049,11 +7111,12 @@ CONFIG_USB_NET_SR9700=m
# CONFIG_USB_NET_SR9800 is not set
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_EXYNOS=m
+CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_OMAP3=m
CONFIG_USB_OHCI_HCD_PCI=m
CONFIG_USB_OHCI_HCD_PLATFORM=m
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD_STI=m
-CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
@@ -7073,7 +7136,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597 is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -7213,7 +7275,7 @@ CONFIG_VALIDATE_FS_PARSER=y
# CONFIG_VCNL4000 is not set
CONFIG_VCNL4035=m
# CONFIG_VDSO is not set
-# CONFIG_VEML6070 is not set
+CONFIG_VEML6070=m
CONFIG_VETH=m
CONFIG_VEXPRESS_SYSCFG=y
# CONFIG_VF610_ADC is not set
@@ -7347,6 +7409,7 @@ CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
# CONFIG_VIDEO_STM32_DCMI is not set
CONFIG_VIDEO_STM32_HDMI_CEC=m
+CONFIG_VIDEO_SUN4I_CSI=m
CONFIG_VIDEO_SUN6I_CSI=m
CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
@@ -7371,6 +7434,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -7419,6 +7483,7 @@ CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_GPIO=m
# CONFIG_W1_MASTER_MATROX is not set
CONFIG_W1_MASTER_MXC=m
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -7429,6 +7494,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug-fedora.config
index f2b26d448..59de8d9c7 100644
--- a/kernel-armv7hl-lpae-debug.config
+++ b/kernel-armv7hl-lpae-debug-fedora.config
@@ -100,6 +100,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -109,6 +110,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -172,12 +174,11 @@ CONFIG_AMD8111_ETH=m
# CONFIG_AMD_IOMMU_DEBUGFS is not set
CONFIG_AMD_PHY=m
# CONFIG_AMD_XGBE_DCB is not set
-# CONFIG_AMD_XGBE is not set
CONFIG_AMIGA_PARTITION=y
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
CONFIG_APDS9802ALS=m
-# CONFIG_APDS9960 is not set
+CONFIG_APDS9960=m
# CONFIG_APM_EMULATION is not set
# CONFIG_APPLE_PROPERTIES is not set
# CONFIG_APPLICOM is not set
@@ -187,6 +188,7 @@ CONFIG_AR5523=m
# CONFIG_ARCH_ACTIONS is not set
# CONFIG_ARCH_ALPINE is not set
# CONFIG_ARCH_ARTPEC is not set
+# CONFIG_ARCH_ASPEED is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_AXXIA is not set
# CONFIG_ARCH_BCM_21664 is not set
@@ -216,18 +218,15 @@ CONFIG_ARCH_EXYNOS=y
CONFIG_ARCH_HAS_TICK_BROADCAST=y
CONFIG_ARCH_HIGHBANK=y
# CONFIG_ARCH_HISI is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
CONFIG_ARCH_KEYSTONE=y
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MEDIATEK is not set
CONFIG_ARCH_MESON=y
# CONFIG_ARCH_MILBEAUT is not set
# CONFIG_ARCH_MMP is not set
CONFIG_ARCH_MULTIPLATFORM=y
+# CONFIG_ARCH_MULTI_V5 is not set
# CONFIG_ARCH_MULTI_V6 is not set
CONFIG_ARCH_MULTI_V7=y
CONFIG_ARCH_MVEBU=y
@@ -265,7 +264,6 @@ CONFIG_ARCH_VEXPRESS_SPC=y
CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_VIRT=y
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_WM8850 is not set
# CONFIG_ARCH_ZX is not set
# CONFIG_ARCH_ZYNQ is not set
@@ -278,6 +276,7 @@ CONFIG_ARM64_PA_BITS_48=y
CONFIG_ARMADA_37XX_RWTM_MBOX=m
# CONFIG_ARMADA_37XX_WATCHDOG is not set
CONFIG_ARMADA_THERMAL=m
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
@@ -338,10 +337,11 @@ CONFIG_ARM_PATCH_IDIV=y
CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_FW=y
CONFIG_ARM_PSCI=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
CONFIG_ARM_QCOM_CPUFREQ_HW=m
-CONFIG_ARM_QCOM_CPUFREQ_KRYO=m
CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SCMI_CPUFREQ=m
@@ -409,6 +409,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -525,9 +526,9 @@ CONFIG_BATTERY_AXP20X=m
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+CONFIG_BATTERY_GAUGE_LTC2941=m
# CONFIG_BATTERY_LEGO_EV3 is not set
-# CONFIG_BATTERY_MAX17040 is not set
+CONFIG_BATTERY_MAX17040=m
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1721X is not set
CONFIG_BATTERY_SBS=m
@@ -579,6 +580,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -778,18 +780,23 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
CONFIG_CAN_FLEXCAN=m
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
-# CONFIG_CAN_MCP251X is not set
+CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
@@ -821,7 +828,6 @@ CONFIG_CARL9170_DEBUGFS=y
CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170=m
CONFIG_CASSINI=m
-CONFIG_CAVIUM_TX2_ERRATUM_219=y
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
# CONFIG_CC10001_ADC is not set
@@ -1011,6 +1017,7 @@ CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND=y
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -1022,7 +1029,6 @@ CONFIG_CPU_THERMAL=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -1037,10 +1043,12 @@ CONFIG_CRC8=m
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
+CONFIG_CROS_EC_CHARDEV=m
CONFIG_CROS_EC_DEBUGFS=m
CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
# CONFIG_CROS_EC_LIGHTBAR is not set
+CONFIG_CROS_EC=m
CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_EC_SPI=m
@@ -1051,9 +1059,8 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
+CONFIG_CRYPTO_AEGIS128_SIMD=y
CONFIG_CRYPTO_AES_ARM_BS=y
# CONFIG_CRYPTO_AES_ARM_CE is not set
CONFIG_CRYPTO_AES_ARM=y
@@ -1088,6 +1095,7 @@ CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCREE=m
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
@@ -1114,6 +1122,7 @@ CONFIG_CRYPTO_DEV_MARVELL_CESA=m
CONFIG_CRYPTO_DEV_QCOM_RNG=m
CONFIG_CRYPTO_DEV_ROCKCHIP=m
CONFIG_CRYPTO_DEV_S5P=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_SAHARA is not set
# CONFIG_CRYPTO_DEV_SP_CCP is not set
CONFIG_CRYPTO_DEV_STM32_CRC=m
@@ -1130,6 +1139,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -1150,8 +1160,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NHPOLY1305_NEON=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
@@ -1178,7 +1186,7 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -1230,17 +1238,16 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
-CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4096
+CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
CONFIG_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KOBJECT is not set
@@ -1323,6 +1330,7 @@ CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_API_DEBUG=y
CONFIG_DMA_BCM2835=m
+# CONFIG_DMABUF_SELFTESTS is not set
CONFIG_DMA_CMA=y
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
@@ -1339,6 +1347,7 @@ CONFIG_DMA_SUN6I=m
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1366,6 +1375,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1426,6 +1436,7 @@ CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FSL_DCU is not set
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
# CONFIG_DRM_HISI_HIBMC is not set
@@ -1465,13 +1476,17 @@ CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1483,10 +1498,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
CONFIG_DRM_PANEL_TPO_TPG110=m
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1514,13 +1533,12 @@ CONFIG_DRM_SUN4I=m
CONFIG_DRM_SUN6I_DSI=m
CONFIG_DRM_SUN8I_DW_HDMI=m
CONFIG_DRM_SUN8I_MIXER=m
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_TEGRA_DEBUG is not set
CONFIG_DRM_TEGRA=m
CONFIG_DRM_TEGRA_STAGING=y
# CONFIG_DRM_THINE_THC63LVD1024 is not set
# CONFIG_DRM_TILCDC is not set
-CONFIG_DRM_TINYDRM=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1651,6 +1669,7 @@ CONFIG_EARLY_PRINTK=y
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
+CONFIG_EDAC_ARMADA_XP=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_GHES=y
CONFIG_EDAC_HIGHBANK_L2=m
@@ -1672,7 +1691,8 @@ CONFIG_EFI_ARMSTUB_DTB_LOADER=y
# CONFIG_EFI_CAPSULE_LOADER is not set
CONFIG_EFI_PARTITION=y
CONFIG_EFI_PGT_DUMP=y
-# CONFIG_EFI_TEST is not set
+# CONFIG_EFI_RCI2_TABLE is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_EFI_VARS_PSTORE=y
@@ -1697,6 +1717,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1868,12 +1889,16 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_IMX8_DDR_PMU is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
# CONFIG_FSL_XGMAC_MDIO is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1966,6 +1991,7 @@ CONFIG_GPIO_MAX77650=m
# CONFIG_GPIO_MB86S7X is not set
CONFIG_GPIO_MC33880=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MOXTET=m
# CONFIG_GPIO_MPC8XXX is not set
CONFIG_GPIO_MVEBU=y
CONFIG_GPIO_PCA953X_IRQ=y
@@ -1985,6 +2011,7 @@ CONFIG_GPIO_SYSCON=m
# CONFIG_GPIO_SYSFS is not set
CONFIG_GPIO_TEGRA=y
# CONFIG_GPIO_TPIC2810 is not set
+CONFIG_GPIO_TPS6586X=y
CONFIG_GPIO_TPS65910=y
CONFIG_GPIO_TPS65912=m
CONFIG_GPIO_TPS68470=y
@@ -2016,10 +2043,10 @@ CONFIG_HAVE_ARM_TWD=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
-# CONFIG_HDC100X is not set
+CONFIG_HDC100X=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
# CONFIG_HERMES is not set
CONFIG_HERMES_PRISM=y
@@ -2046,6 +2073,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2165,7 +2193,7 @@ CONFIG_HT16K33=m
# CONFIG_HTC_I2CPLD is not set
# CONFIG_HTC_PASIC3 is not set
CONFIG_HTS221=m
-# CONFIG_HTU21 is not set
+CONFIG_HTU21=m
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
# CONFIG_HVC_DCC is not set
@@ -2210,7 +2238,6 @@ CONFIG_I2C_ALGOPCF=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CADENCE=m
@@ -2363,11 +2390,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2383,7 +2412,9 @@ CONFIG_IMA=y
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_IMX2_WDT=m
CONFIG_IMX7D_ADC=m
+# CONFIG_IMX7ULP_WDT is not set
# CONFIG_IMX_DMA is not set
+CONFIG_IMX_DSP=y
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
# CONFIG_IMX_IPUV3_CORE is not set
@@ -2517,6 +2548,7 @@ CONFIG_INTEL_STRATIX10_SERVICE=m
# CONFIG_INTEL_TH is not set
CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INTERCONNECT is not set
+# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
# CONFIG_INTERVAL_TREE_TEST is not set
CONFIG_INV_MPU6050_I2C=m
CONFIG_INV_MPU6050_IIO=m
@@ -2532,6 +2564,7 @@ CONFIG_IOMMU_DMA=y
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2776,6 +2809,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2815,6 +2849,7 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0
CONFIG_KDB_KEYBOARD=y
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2879,9 +2914,6 @@ CONFIG_KPROBE_EVENTS=y
CONFIG_KPROBES=y
CONFIG_KPSS_XCC=m
CONFIG_KRAITCC=m
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
CONFIG_KS8851=m
@@ -2960,7 +2992,7 @@ CONFIG_LEDS_NS2=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_PCA963X is not set
+CONFIG_LEDS_PCA963X=m
CONFIG_LEDS_PWM=m
CONFIG_LEDS_REGULATOR=m
# CONFIG_LEDS_SPI_BYTE is not set
@@ -3012,7 +3044,7 @@ CONFIG_LIBFCOE=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -3021,7 +3053,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
CONFIG_LOCK_EVENT_COUNTS=y
# CONFIG_LOCK_STAT is not set
@@ -3091,7 +3125,7 @@ CONFIG_MAC_PARTITION=y
CONFIG_MACSEC=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-# CONFIG_MAG3110 is not set
+CONFIG_MAG3110=m
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ=y
@@ -3120,6 +3154,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -3132,8 +3167,8 @@ CONFIG_MB1232=m
# CONFIG_MC3230 is not set
# CONFIG_MCB is not set
# CONFIG_MCORE2 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
CONFIG_MCP3911=m
CONFIG_MCP4018=m
CONFIG_MCP41010=m
@@ -3209,6 +3244,7 @@ CONFIG_MEMSTICK_TIFM_MS=m
# CONFIG_MEN_A21_WDT is not set
CONFIG_MESON_CANVAS=m
# CONFIG_MESON_CLK_MEASURE is not set
+CONFIG_MESON_EE_PM_DOMAINS=y
CONFIG_MESON_EFUSE=m
# CONFIG_MESON_GXBB_WATCHDOG is not set
# CONFIG_MESON_GXL_PHY is not set
@@ -3242,8 +3278,8 @@ 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=m
+CONFIG_MFD_CROS_EC_DEV=m
+# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9052_SPI is not set
@@ -3362,6 +3398,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
# CONFIG_MLX5_INFINIBAND is not set
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -3419,6 +3457,7 @@ CONFIG_MMC_SDHCI_ESDHC_IMX=m
CONFIG_MMC_SDHCI_IPROC=m
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_OF_ARASAN=m
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
CONFIG_MMC_SDHCI_OF_ESDHC=m
@@ -3446,6 +3485,7 @@ CONFIG_MMC_WBSD=m
CONFIG_MMC=y
CONFIG_MMIOTRACE=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_FORCE_UNLOAD=y
@@ -3480,6 +3520,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+CONFIG_MOXTET=m
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
CONFIG_MPL3115=m
@@ -3550,6 +3591,7 @@ CONFIG_MTD_NAND_GPIO=m
CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MESON is not set
CONFIG_MTD_NAND_MXC=m
+# CONFIG_MTD_NAND_MXIC is not set
CONFIG_MTD_NAND_NANDSIM=m
# CONFIG_MTD_NAND_OMAP2 is not set
CONFIG_MTD_NAND_ORION=m
@@ -3670,12 +3712,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3848,6 +3892,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3901,6 +3946,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -4066,10 +4112,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -4129,6 +4175,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
@@ -4202,7 +4249,7 @@ CONFIG_OPENVSWITCH_VXLAN=m
CONFIG_OPT3001=m
CONFIG_OPTEE=m
CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -4443,6 +4490,7 @@ CONFIG_PINCTRL_MVEBU=y
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
CONFIG_PINCTRL_SAMSUNG=y
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SDM845 is not set
CONFIG_PINCTRL_SINGLE=y
@@ -4550,7 +4598,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4602,7 +4649,7 @@ CONFIG_PWM_HIBVT=m
CONFIG_PWM_IMX27=m
CONFIG_PWM_IMX_TPM=m
CONFIG_PWM_MESON=m
-# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_PCA9685=m
CONFIG_PWM_ROCKCHIP=m
CONFIG_PWM_SAMSUNG=m
# CONFIG_PWM_STM32 is not set
@@ -4636,6 +4683,7 @@ CONFIG_QCOM_PDC=y
CONFIG_QCOM_PM8XXX_XOADC=m
CONFIG_QCOM_RMTFS_MEM=m
# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
+CONFIG_QCOM_SOCINFO=m
CONFIG_QCOM_SPMI_ADC5=m
CONFIG_QCS_GCC_404=m
# CONFIG_QCS_TURING_404 is not set
@@ -4683,6 +4731,7 @@ CONFIG_RADIO_WL1273=m
# CONFIG_RAID6_PQ_BENCHMARK is not set
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
# CONFIG_RANDOM_TRUST_CPU is not set
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4723,13 +4772,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
# CONFIG_RDMA_RXE is not set
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
# CONFIG_RDS is not set
# CONFIG_RDS_RDMA is not set
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4786,6 +4836,7 @@ CONFIG_REGULATOR_STM32_PWR=y
CONFIG_REGULATOR_STM32_VREFBUF=m
CONFIG_REGULATOR_STPMIC1=m
CONFIG_REGULATOR_SY8106A=m
+# CONFIG_REGULATOR_SY8824X is not set
CONFIG_REGULATOR_TPS51632=m
CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
@@ -4811,7 +4862,7 @@ CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
CONFIG_RESET_CONTROLLER=y
@@ -4819,6 +4870,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
# CONFIG_RESET_QCOM_AOSS is not set
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
CONFIG_RESET_STM32MP157=y
# CONFIG_RESET_TI_SCI is not set
@@ -4962,6 +5014,7 @@ CONFIG_RTC_DRV_MAX77686=m
CONFIG_RTC_DRV_MAX8997=m
# CONFIG_RTC_DRV_MCP795 is not set
CONFIG_RTC_DRV_MESON=m
+CONFIG_RTC_DRV_MESON_VRTC=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_MV=m
# CONFIG_RTC_DRV_MXC is not set
@@ -5206,6 +5259,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
# CONFIG_SECURITY_INFINIBAND is not set
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -5233,7 +5288,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -5246,6 +5300,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCMI=m
CONFIG_SENSORS_ARM_SCPI=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -5276,6 +5331,7 @@ CONFIG_SENSORS_IIO_HWMON=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5409,7 +5465,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_FINTEK is not set
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_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -5432,6 +5487,7 @@ CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
CONFIG_SERIAL_FSL_LPUART=y
# CONFIG_SERIAL_IFX6X60 is not set
@@ -5482,7 +5538,6 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -5518,6 +5573,7 @@ CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
# CONFIG_SM_FTL is not set
+# CONFIG_SM_GCC_8150 is not set
CONFIG_SMP_ON_UP=y
CONFIG_SMP=y
CONFIG_SMSC911X=m
@@ -5610,7 +5666,8 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
+# CONFIG_SND_HDA_INTEL is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
CONFIG_SND_HDA_PREALLOC_SIZE=4096
@@ -5688,6 +5745,7 @@ CONFIG_SND_SOC_AC97_CODEC=m
# CONFIG_SND_SOC_ADAU1701 is not set
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU1977_I2C=m
CONFIG_SND_SOC_ADAU7002=m
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4118 is not set
@@ -5711,21 +5769,22 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
-# CONFIG_SND_SOC_CS4265 is not set
+CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
+CONFIG_SND_SOC_CS4271_I2C=m
# CONFIG_SND_SOC_CS4271_SPI is not set
CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
+CONFIG_SND_SOC_CS42XX8_I2C=m
CONFIG_SND_SOC_CS43130=m
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
CONFIG_SND_SOC_DAVINCI_MCASP=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_ES7134=m
@@ -5748,6 +5807,7 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
@@ -5757,6 +5817,7 @@ CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
@@ -5782,6 +5843,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m
CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
+CONFIG_SND_SOC_PCM5102A=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_SPI=m
@@ -5810,6 +5872,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -5848,8 +5911,9 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m
# CONFIG_SND_SOC_TEGRA_WM8903 is not set
# CONFIG_SND_SOC_TEGRA_WM9712 is not set
# CONFIG_SND_SOC_TFA9879 is not set
-# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC23_SPI=m
# CONFIG_SND_SOC_TLV320AIC31XX is not set
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
@@ -5858,15 +5922,16 @@ CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
+CONFIG_SND_SOC_WM8731=m
# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
+CONFIG_SND_SOC_WM8741=m
# CONFIG_SND_SOC_WM8750 is not set
# CONFIG_SND_SOC_WM8753 is not set
# CONFIG_SND_SOC_WM8770 is not set
@@ -5940,7 +6005,6 @@ 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_SPARSEMEM_MANUAL=y
@@ -6147,6 +6211,7 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
CONFIG_TCG_CRB=y
+CONFIG_TCG_FTPM_TEE=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -6217,6 +6282,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -6287,7 +6353,6 @@ CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
CONFIG_TINYDRM_MI0283QT=m
-CONFIG_TINYDRM_MIPI_DBI=m
CONFIG_TINYDRM_REPAPER=m
CONFIG_TINYDRM_ST7586=m
CONFIG_TINYDRM_ST7735R=m
@@ -6302,7 +6367,7 @@ CONFIG_TI_SOC_THERMAL=m
CONFIG_TI_THERMAL=y
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
CONFIG_TMP006=m
@@ -6334,9 +6399,9 @@ CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
CONFIG_TOUCHSCREEN_ELAN=m
CONFIG_TOUCHSCREEN_ELO=m
-# CONFIG_TOUCHSCREEN_EXC3000 is not set
+CONFIG_TOUCHSCREEN_EXC3000=m
CONFIG_TOUCHSCREEN_FUJITSU=m
-# CONFIG_TOUCHSCREEN_GOODIX is not set
+CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_GUNZE=m
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
@@ -6404,7 +6469,7 @@ CONFIG_TRUSTED_KEYS=m
# CONFIG_TS4800_WATCHDOG is not set
# CONFIG_TSL2583 is not set
CONFIG_TSL2772=m
-# CONFIG_TSL4531 is not set
+CONFIG_TSL4531=m
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
CONFIG_TULIP=m
@@ -6422,6 +6487,7 @@ CONFIG_TUNE_DEFAULT=y
# CONFIG_TUNE_ZEC12 is not set
CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TURRIS_MOX_RWTM=m
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
CONFIG_TYPEC_DP_ALTMODE=m
@@ -6437,6 +6503,7 @@ CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
# CONFIG_UACCESS_WITH_MEMCPY is not set
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -6497,6 +6564,7 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -6521,6 +6589,7 @@ CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_OBEX=y
# CONFIG_USB_CONFIGFS_RNDIS is not set
CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONN_GPIO=m
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -6719,9 +6788,10 @@ CONFIG_USB_NET_SR9700=m
# CONFIG_USB_NET_SR9800 is not set
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_EXYNOS=m
+CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_PCI=m
CONFIG_USB_OHCI_HCD_PLATFORM=m
-CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_HCD_SSB is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
@@ -6741,7 +6811,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597 is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -6880,7 +6949,7 @@ CONFIG_VALIDATE_FS_PARSER=y
# CONFIG_VCNL4000 is not set
CONFIG_VCNL4035=m
CONFIG_VDSO=y
-# CONFIG_VEML6070 is not set
+CONFIG_VEML6070=m
CONFIG_VETH=m
CONFIG_VEXPRESS_SYSCFG=y
# CONFIG_VF610_ADC is not set
@@ -7000,6 +7069,7 @@ CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
# CONFIG_VIDEO_STM32_DCMI is not set
CONFIG_VIDEO_STM32_HDMI_CEC=m
+CONFIG_VIDEO_SUN4I_CSI=m
CONFIG_VIDEO_SUN6I_CSI=m
CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
@@ -7024,6 +7094,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -7072,6 +7143,7 @@ CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_GPIO=m
# CONFIG_W1_MASTER_MATROX is not set
# CONFIG_W1_MASTER_MXC is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -7082,6 +7154,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae-fedora.config
index ec85503ad..c9454cd33 100644
--- a/kernel-armv7hl-lpae.config
+++ b/kernel-armv7hl-lpae-fedora.config
@@ -100,6 +100,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -109,6 +110,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -172,12 +174,11 @@ CONFIG_AMD8111_ETH=m
# CONFIG_AMD_IOMMU_DEBUGFS is not set
CONFIG_AMD_PHY=m
# CONFIG_AMD_XGBE_DCB is not set
-# CONFIG_AMD_XGBE is not set
CONFIG_AMIGA_PARTITION=y
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
CONFIG_APDS9802ALS=m
-# CONFIG_APDS9960 is not set
+CONFIG_APDS9960=m
# CONFIG_APM_EMULATION is not set
# CONFIG_APPLE_PROPERTIES is not set
# CONFIG_APPLICOM is not set
@@ -187,6 +188,7 @@ CONFIG_AR5523=m
# CONFIG_ARCH_ACTIONS is not set
# CONFIG_ARCH_ALPINE is not set
# CONFIG_ARCH_ARTPEC is not set
+# CONFIG_ARCH_ASPEED is not set
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_AXXIA is not set
# CONFIG_ARCH_BCM_21664 is not set
@@ -216,18 +218,15 @@ CONFIG_ARCH_EXYNOS=y
CONFIG_ARCH_HAS_TICK_BROADCAST=y
CONFIG_ARCH_HIGHBANK=y
# CONFIG_ARCH_HISI is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
CONFIG_ARCH_KEYSTONE=y
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MEDIATEK is not set
CONFIG_ARCH_MESON=y
# CONFIG_ARCH_MILBEAUT is not set
# CONFIG_ARCH_MMP is not set
CONFIG_ARCH_MULTIPLATFORM=y
+# CONFIG_ARCH_MULTI_V5 is not set
# CONFIG_ARCH_MULTI_V6 is not set
CONFIG_ARCH_MULTI_V7=y
CONFIG_ARCH_MVEBU=y
@@ -265,7 +264,6 @@ CONFIG_ARCH_VEXPRESS_SPC=y
CONFIG_ARCH_VEXPRESS_TC2_PM=y
CONFIG_ARCH_VEXPRESS=y
CONFIG_ARCH_VIRT=y
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCH_WM8850 is not set
# CONFIG_ARCH_ZX is not set
# CONFIG_ARCH_ZYNQ is not set
@@ -278,6 +276,7 @@ CONFIG_ARM64_PA_BITS_48=y
CONFIG_ARMADA_37XX_RWTM_MBOX=m
# CONFIG_ARMADA_37XX_WATCHDOG is not set
CONFIG_ARMADA_THERMAL=m
+CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
@@ -338,10 +337,11 @@ CONFIG_ARM_PATCH_IDIV=y
CONFIG_ARM_PL172_MPMC=m
CONFIG_ARM_PMU=y
# CONFIG_ARM_PSCI_CHECKER is not set
+CONFIG_ARM_PSCI_CPUIDLE=y
+CONFIG_ARM_PSCI_FW=y
CONFIG_ARM_PSCI=y
# CONFIG_ARM_PTDUMP_DEBUGFS is not set
CONFIG_ARM_QCOM_CPUFREQ_HW=m
-CONFIG_ARM_QCOM_CPUFREQ_KRYO=m
CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_ARM_SCMI_CPUFREQ=m
@@ -409,6 +409,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -525,9 +526,9 @@ CONFIG_BATTERY_AXP20X=m
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+CONFIG_BATTERY_GAUGE_LTC2941=m
# CONFIG_BATTERY_LEGO_EV3 is not set
-# CONFIG_BATTERY_MAX17040 is not set
+CONFIG_BATTERY_MAX17040=m
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1721X is not set
CONFIG_BATTERY_SBS=m
@@ -579,6 +580,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -778,18 +780,23 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
CONFIG_CAN_FLEXCAN=m
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
-# CONFIG_CAN_MCP251X is not set
+CONFIG_CAN_MCP251X=m
CONFIG_CAN_PEAK_PCIEC=y
CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
@@ -821,7 +828,6 @@ CONFIG_CARDMAN_4040=m
CONFIG_CARL9170_LEDS=y
CONFIG_CARL9170=m
CONFIG_CASSINI=m
-CONFIG_CAVIUM_TX2_ERRATUM_219=y
CONFIG_CB710_CORE=m
# CONFIG_CB710_DEBUG is not set
# CONFIG_CC10001_ADC is not set
@@ -1011,6 +1017,7 @@ CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
# CONFIG_CPU_ICACHE_DISABLE is not set
CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND=y
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -1022,7 +1029,6 @@ CONFIG_CPU_THERMAL=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -1037,10 +1043,12 @@ CONFIG_CRC8=m
CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
+CONFIG_CROS_EC_CHARDEV=m
# CONFIG_CROS_EC_DEBUGFS is not set
CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
# CONFIG_CROS_EC_LIGHTBAR is not set
+CONFIG_CROS_EC=m
CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_EC_SPI=m
@@ -1051,9 +1059,8 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
+CONFIG_CRYPTO_AEGIS128_SIMD=y
CONFIG_CRYPTO_AES_ARM_BS=y
# CONFIG_CRYPTO_AES_ARM_CE is not set
CONFIG_CRYPTO_AES_ARM=y
@@ -1088,6 +1095,7 @@ CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCREE=m
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
@@ -1114,6 +1122,7 @@ CONFIG_CRYPTO_DEV_MARVELL_CESA=m
CONFIG_CRYPTO_DEV_QCOM_RNG=m
CONFIG_CRYPTO_DEV_ROCKCHIP=m
CONFIG_CRYPTO_DEV_S5P=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_SAHARA is not set
# CONFIG_CRYPTO_DEV_SP_CCP is not set
CONFIG_CRYPTO_DEV_STM32_CRC=m
@@ -1130,6 +1139,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -1150,8 +1160,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NHPOLY1305_NEON=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
@@ -1178,7 +1186,7 @@ CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
CONFIG_CRYPTO_SHA512_ARM64=m
CONFIG_CRYPTO_SHA512_ARM=y
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -1230,11 +1238,10 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
@@ -1316,6 +1323,7 @@ CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_BCM2835=m
+# CONFIG_DMABUF_SELFTESTS is not set
CONFIG_DMA_CMA=y
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
@@ -1332,6 +1340,7 @@ CONFIG_DMA_SUN6I=m
CONFIG_DMA_VIRTUAL_CHANNELS=y
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1359,6 +1368,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1419,6 +1429,7 @@ CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FSL_DCU is not set
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
# CONFIG_DRM_HISI_HIBMC is not set
@@ -1458,13 +1469,17 @@ CONFIG_DRM_PANEL_ILITEK_ILI9881C=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
CONFIG_DRM_PANEL_LVDS=m
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO=m
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
CONFIG_DRM_PANEL_RAYDIUM_RM68200=m
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1476,10 +1491,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
CONFIG_DRM_PANEL_TPO_TPG110=m
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1507,13 +1526,12 @@ CONFIG_DRM_SUN4I=m
CONFIG_DRM_SUN6I_DSI=m
CONFIG_DRM_SUN8I_DW_HDMI=m
CONFIG_DRM_SUN8I_MIXER=m
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_TEGRA_DEBUG is not set
CONFIG_DRM_TEGRA=m
CONFIG_DRM_TEGRA_STAGING=y
# CONFIG_DRM_THINE_THC63LVD1024 is not set
# CONFIG_DRM_TILCDC is not set
-CONFIG_DRM_TINYDRM=m
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1644,6 +1662,7 @@ CONFIG_EARLY_PRINTK=y
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
+CONFIG_EDAC_ARMADA_XP=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_GHES=y
CONFIG_EDAC_HIGHBANK_L2=m
@@ -1665,7 +1684,8 @@ CONFIG_EFI_ARMSTUB_DTB_LOADER=y
# CONFIG_EFI_CAPSULE_LOADER is not set
CONFIG_EFI_PARTITION=y
# CONFIG_EFI_PGT_DUMP is not set
-# CONFIG_EFI_TEST is not set
+# CONFIG_EFI_RCI2_TABLE is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_EFI_VARS_PSTORE=y
@@ -1690,6 +1710,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1853,12 +1874,16 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_IMX8_DDR_PMU is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
# CONFIG_FSL_XGMAC_MDIO is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1951,6 +1976,7 @@ CONFIG_GPIO_MAX77650=m
# CONFIG_GPIO_MB86S7X is not set
CONFIG_GPIO_MC33880=m
# CONFIG_GPIO_MOCKUP is not set
+CONFIG_GPIO_MOXTET=m
# CONFIG_GPIO_MPC8XXX is not set
CONFIG_GPIO_MVEBU=y
CONFIG_GPIO_PCA953X_IRQ=y
@@ -1970,6 +1996,7 @@ CONFIG_GPIO_SYSCON=m
# CONFIG_GPIO_SYSFS is not set
CONFIG_GPIO_TEGRA=y
# CONFIG_GPIO_TPIC2810 is not set
+CONFIG_GPIO_TPS6586X=y
CONFIG_GPIO_TPS65910=y
CONFIG_GPIO_TPS65912=m
CONFIG_GPIO_TPS68470=y
@@ -2001,10 +2028,10 @@ CONFIG_HAVE_ARM_TWD=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HD44780=m
-# CONFIG_HDC100X is not set
+CONFIG_HDC100X=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
# CONFIG_HERMES is not set
CONFIG_HERMES_PRISM=y
@@ -2031,6 +2058,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2150,7 +2178,7 @@ CONFIG_HT16K33=m
# CONFIG_HTC_I2CPLD is not set
# CONFIG_HTC_PASIC3 is not set
CONFIG_HTS221=m
-# CONFIG_HTU21 is not set
+CONFIG_HTU21=m
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
# CONFIG_HVC_DCC is not set
@@ -2195,7 +2223,6 @@ CONFIG_I2C_ALGOPCF=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
CONFIG_I2C_ARB_GPIO_CHALLENGE=m
-# CONFIG_I2C_BCM2048 is not set
CONFIG_I2C_BCM2835=m
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CADENCE=m
@@ -2348,11 +2375,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2368,7 +2397,9 @@ CONFIG_IMA=y
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_IMX2_WDT=m
CONFIG_IMX7D_ADC=m
+# CONFIG_IMX7ULP_WDT is not set
# CONFIG_IMX_DMA is not set
+CONFIG_IMX_DSP=y
CONFIG_IMX_GPCV2_PM_DOMAINS=y
CONFIG_IMX_GPCV2=y
# CONFIG_IMX_IPUV3_CORE is not set
@@ -2502,6 +2533,7 @@ CONFIG_INTEL_STRATIX10_SERVICE=m
# CONFIG_INTEL_TH is not set
CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INTERCONNECT is not set
+# CONFIG_INTERCONNECT_QCOM_QCS404 is not set
# CONFIG_INTERVAL_TREE_TEST is not set
CONFIG_INV_MPU6050_I2C=m
CONFIG_INV_MPU6050_IIO=m
@@ -2517,6 +2549,7 @@ CONFIG_IOMMU_DMA=y
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2761,6 +2794,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2798,6 +2832,7 @@ CONFIG_KARMA_PARTITION=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2862,9 +2897,6 @@ CONFIG_KPROBE_EVENTS=y
CONFIG_KPROBES=y
CONFIG_KPSS_XCC=m
CONFIG_KRAITCC=m
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
CONFIG_KS8851=m
@@ -2943,7 +2975,7 @@ CONFIG_LEDS_NS2=m
CONFIG_LEDS_PCA9532_GPIO=y
CONFIG_LEDS_PCA9532=m
# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_PCA963X is not set
+CONFIG_LEDS_PCA963X=m
CONFIG_LEDS_PWM=m
CONFIG_LEDS_REGULATOR=m
# CONFIG_LEDS_SPI_BYTE is not set
@@ -2995,7 +3027,7 @@ CONFIG_LIBFCOE=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -3004,7 +3036,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
# CONFIG_LOCK_EVENT_COUNTS is not set
# CONFIG_LOCK_STAT is not set
@@ -3074,7 +3108,7 @@ CONFIG_MAC_PARTITION=y
CONFIG_MACSEC=m
CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
-# CONFIG_MAG3110 is not set
+CONFIG_MAG3110=m
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
CONFIG_MAGIC_SYSRQ_SERIAL=y
CONFIG_MAGIC_SYSRQ=y
@@ -3103,6 +3137,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -3114,8 +3149,8 @@ CONFIG_MB1232=m
# CONFIG_MC3230 is not set
# CONFIG_MCB is not set
# CONFIG_MCORE2 is not set
-# CONFIG_MCP320X is not set
-# CONFIG_MCP3422 is not set
+CONFIG_MCP320X=m
+CONFIG_MCP3422=m
CONFIG_MCP3911=m
CONFIG_MCP4018=m
CONFIG_MCP41010=m
@@ -3191,6 +3226,7 @@ CONFIG_MEMSTICK_TIFM_MS=m
# CONFIG_MEN_A21_WDT is not set
CONFIG_MESON_CANVAS=m
# CONFIG_MESON_CLK_MEASURE is not set
+CONFIG_MESON_EE_PM_DOMAINS=y
CONFIG_MESON_EFUSE=m
# CONFIG_MESON_GXBB_WATCHDOG is not set
# CONFIG_MESON_GXL_PHY is not set
@@ -3224,8 +3260,8 @@ 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=m
+CONFIG_MFD_CROS_EC_DEV=m
+# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9052_SPI is not set
@@ -3344,6 +3380,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
# CONFIG_MLX5_INFINIBAND is not set
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -3401,6 +3439,7 @@ CONFIG_MMC_SDHCI_ESDHC_IMX=m
CONFIG_MMC_SDHCI_IPROC=m
CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_OF_ARASAN=m
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
CONFIG_MMC_SDHCI_OF_ESDHC=m
@@ -3427,6 +3466,7 @@ CONFIG_MMC_VUB300=m
CONFIG_MMC_WBSD=m
CONFIG_MMC=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -3461,6 +3501,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+CONFIG_MOXTET=m
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
CONFIG_MPL3115=m
@@ -3531,6 +3572,7 @@ CONFIG_MTD_NAND_GPIO=m
CONFIG_MTD_NAND_MARVELL=m
# CONFIG_MTD_NAND_MESON is not set
CONFIG_MTD_NAND_MXC=m
+# CONFIG_MTD_NAND_MXIC is not set
CONFIG_MTD_NAND_NANDSIM=m
# CONFIG_MTD_NAND_OMAP2 is not set
CONFIG_MTD_NAND_ORION=m
@@ -3651,12 +3693,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3829,6 +3873,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3882,6 +3927,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -4047,10 +4093,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -4110,6 +4156,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
@@ -4183,7 +4230,7 @@ CONFIG_OPENVSWITCH_VXLAN=m
CONFIG_OPT3001=m
CONFIG_OPTEE=m
CONFIG_OPTEE_SHM_NUM_PRIV_PAGES=1
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -4424,6 +4471,7 @@ CONFIG_PINCTRL_MVEBU=y
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
CONFIG_PINCTRL_SAMSUNG=y
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SDM845 is not set
CONFIG_PINCTRL_SINGLE=y
@@ -4531,7 +4579,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4582,7 +4629,7 @@ CONFIG_PWM_HIBVT=m
CONFIG_PWM_IMX27=m
CONFIG_PWM_IMX_TPM=m
CONFIG_PWM_MESON=m
-# CONFIG_PWM_PCA9685 is not set
+CONFIG_PWM_PCA9685=m
CONFIG_PWM_ROCKCHIP=m
CONFIG_PWM_SAMSUNG=m
# CONFIG_PWM_STM32 is not set
@@ -4616,6 +4663,7 @@ CONFIG_QCOM_PDC=y
CONFIG_QCOM_PM8XXX_XOADC=m
CONFIG_QCOM_RMTFS_MEM=m
# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set
+CONFIG_QCOM_SOCINFO=m
CONFIG_QCOM_SPMI_ADC5=m
CONFIG_QCS_GCC_404=m
# CONFIG_QCS_TURING_404 is not set
@@ -4663,6 +4711,7 @@ CONFIG_RADIO_WL1273=m
# CONFIG_RAID6_PQ_BENCHMARK is not set
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
# CONFIG_RANDOM_TRUST_CPU is not set
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4703,13 +4752,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
# CONFIG_RDMA_RXE is not set
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
# CONFIG_RDS is not set
# CONFIG_RDS_RDMA is not set
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4766,6 +4816,7 @@ CONFIG_REGULATOR_STM32_PWR=y
CONFIG_REGULATOR_STM32_VREFBUF=m
CONFIG_REGULATOR_STPMIC1=m
CONFIG_REGULATOR_SY8106A=m
+# CONFIG_REGULATOR_SY8824X is not set
CONFIG_REGULATOR_TPS51632=m
CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
@@ -4791,7 +4842,7 @@ CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
CONFIG_RESET_CONTROLLER=y
@@ -4799,6 +4850,7 @@ CONFIG_RESET_IMX7=y
CONFIG_RESET_MESON_AUDIO_ARB=m
# CONFIG_RESET_QCOM_AOSS is not set
CONFIG_RESET_QCOM_PDC=m
+CONFIG_RESET_SCMI=y
CONFIG_RESET_SIMPLE=y
CONFIG_RESET_STM32MP157=y
# CONFIG_RESET_TI_SCI is not set
@@ -4942,6 +4994,7 @@ CONFIG_RTC_DRV_MAX77686=m
CONFIG_RTC_DRV_MAX8997=m
# CONFIG_RTC_DRV_MCP795 is not set
CONFIG_RTC_DRV_MESON=m
+CONFIG_RTC_DRV_MESON_VRTC=m
CONFIG_RTC_DRV_MSM6242=m
CONFIG_RTC_DRV_MV=m
# CONFIG_RTC_DRV_MXC is not set
@@ -5186,6 +5239,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
# CONFIG_SECURITY_INFINIBAND is not set
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -5213,7 +5268,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -5226,6 +5280,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCMI=m
CONFIG_SENSORS_ARM_SCPI=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -5256,6 +5311,7 @@ CONFIG_SENSORS_IIO_HWMON=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5389,7 +5445,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_FINTEK is not set
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_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -5412,6 +5467,7 @@ CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
CONFIG_SERIAL_FSL_LPUART=y
# CONFIG_SERIAL_IFX6X60 is not set
@@ -5462,7 +5518,6 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -5498,6 +5553,7 @@ CONFIG_SMC91X=m
CONFIG_SMC_DIAG=m
CONFIG_SMC=m
# CONFIG_SM_FTL is not set
+# CONFIG_SM_GCC_8150 is not set
CONFIG_SMP_ON_UP=y
CONFIG_SMP=y
CONFIG_SMSC911X=m
@@ -5590,7 +5646,8 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
+# CONFIG_SND_HDA_INTEL is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
CONFIG_SND_HDA_PREALLOC_SIZE=4096
@@ -5667,6 +5724,7 @@ CONFIG_SND_SOC_AC97_CODEC=m
# CONFIG_SND_SOC_ADAU1701 is not set
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
+CONFIG_SND_SOC_ADAU1977_I2C=m
CONFIG_SND_SOC_ADAU7002=m
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4118 is not set
@@ -5690,21 +5748,22 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
-# CONFIG_SND_SOC_CS4265 is not set
+CONFIG_SND_SOC_CS4265=m
# CONFIG_SND_SOC_CS4270 is not set
-# CONFIG_SND_SOC_CS4271_I2C is not set
+CONFIG_SND_SOC_CS4271_I2C=m
# CONFIG_SND_SOC_CS4271_SPI is not set
CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
-# CONFIG_SND_SOC_CS42XX8_I2C is not set
+CONFIG_SND_SOC_CS42XX8_I2C=m
CONFIG_SND_SOC_CS43130=m
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
CONFIG_SND_SOC_CX2072X=m
+CONFIG_SND_SOC_DA7213=m
CONFIG_SND_SOC_DAVINCI_MCASP=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_ES7134=m
@@ -5727,6 +5786,7 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
+CONFIG_SND_SOC_ICS43432=m
# CONFIG_SND_SOC_IMG is not set
# CONFIG_SND_SOC_IMX_AUDMIX is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
@@ -5736,6 +5796,7 @@ CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
CONFIG_SND_SOC_MAX98090=m
+CONFIG_SND_SOC_MAX98357A=m
CONFIG_SND_SOC_MAX98373=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
@@ -5761,6 +5822,7 @@ CONFIG_SND_SOC_PCM3060_I2C=m
CONFIG_SND_SOC_PCM3060_SPI=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
+CONFIG_SND_SOC_PCM5102A=m
CONFIG_SND_SOC_PCM512x_I2C=m
CONFIG_SND_SOC_PCM512x=m
CONFIG_SND_SOC_PCM512x_SPI=m
@@ -5789,6 +5851,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -5827,8 +5890,9 @@ CONFIG_SND_SOC_TEGRA_SGTL5000=m
# CONFIG_SND_SOC_TEGRA_WM8903 is not set
# CONFIG_SND_SOC_TEGRA_WM9712 is not set
# CONFIG_SND_SOC_TFA9879 is not set
-# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
-# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+CONFIG_SND_SOC_TLV320AIC23_I2C=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC23_SPI=m
# CONFIG_SND_SOC_TLV320AIC31XX is not set
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
@@ -5837,15 +5901,16 @@ CONFIG_SND_SOC_TPA6130A2=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
-# CONFIG_SND_SOC_WM8731 is not set
+CONFIG_SND_SOC_WM8731=m
# CONFIG_SND_SOC_WM8737 is not set
-# CONFIG_SND_SOC_WM8741 is not set
+CONFIG_SND_SOC_WM8741=m
# CONFIG_SND_SOC_WM8750 is not set
# CONFIG_SND_SOC_WM8753 is not set
# CONFIG_SND_SOC_WM8770 is not set
@@ -5919,7 +5984,6 @@ 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_SPARSEMEM_MANUAL=y
@@ -6126,6 +6190,7 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
CONFIG_TCG_CRB=y
+CONFIG_TCG_FTPM_TEE=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -6196,6 +6261,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -6266,7 +6332,6 @@ CONFIG_TINYDRM_HX8357D=m
CONFIG_TINYDRM_ILI9225=m
CONFIG_TINYDRM_ILI9341=m
CONFIG_TINYDRM_MI0283QT=m
-CONFIG_TINYDRM_MIPI_DBI=m
CONFIG_TINYDRM_REPAPER=m
CONFIG_TINYDRM_ST7586=m
CONFIG_TINYDRM_ST7735R=m
@@ -6281,7 +6346,7 @@ CONFIG_TI_SOC_THERMAL=m
CONFIG_TI_THERMAL=y
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
CONFIG_TMP006=m
@@ -6313,9 +6378,9 @@ CONFIG_TOUCHSCREEN_EGALAX_SERIAL=m
# CONFIG_TOUCHSCREEN_EKTF2127 is not set
CONFIG_TOUCHSCREEN_ELAN=m
CONFIG_TOUCHSCREEN_ELO=m
-# CONFIG_TOUCHSCREEN_EXC3000 is not set
+CONFIG_TOUCHSCREEN_EXC3000=m
CONFIG_TOUCHSCREEN_FUJITSU=m
-# CONFIG_TOUCHSCREEN_GOODIX is not set
+CONFIG_TOUCHSCREEN_GOODIX=m
CONFIG_TOUCHSCREEN_GUNZE=m
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
# CONFIG_TOUCHSCREEN_HIDEEP is not set
@@ -6383,7 +6448,7 @@ CONFIG_TRUSTED_KEYS=m
# CONFIG_TS4800_WATCHDOG is not set
# CONFIG_TSL2583 is not set
CONFIG_TSL2772=m
-# CONFIG_TSL4531 is not set
+CONFIG_TSL4531=m
# CONFIG_TSYS01 is not set
# CONFIG_TSYS02D is not set
CONFIG_TULIP=m
@@ -6401,6 +6466,7 @@ CONFIG_TUNE_DEFAULT=y
# CONFIG_TUNE_ZEC12 is not set
CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
+CONFIG_TURRIS_MOX_RWTM=m
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
CONFIG_TYPEC_DP_ALTMODE=m
@@ -6416,6 +6482,7 @@ CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
# CONFIG_UACCESS_WITH_MEMCPY is not set
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -6476,6 +6543,7 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_CHIPIDEA=m
@@ -6500,6 +6568,7 @@ CONFIG_USB_CONFIGFS_NCM=y
CONFIG_USB_CONFIGFS_OBEX=y
# CONFIG_USB_CONFIGFS_RNDIS is not set
CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONN_GPIO=m
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -6698,9 +6767,10 @@ CONFIG_USB_NET_SR9700=m
# CONFIG_USB_NET_SR9800 is not set
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_EXYNOS=m
+CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_PCI=m
CONFIG_USB_OHCI_HCD_PLATFORM=m
-CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OHCI_HCD_SSB is not set
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
CONFIG_USB_OTG_FSM=m
# CONFIG_USB_OTG_WHITELIST is not set
@@ -6720,7 +6790,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597 is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -6859,7 +6928,7 @@ CONFIG_VALIDATE_FS_PARSER=y
# CONFIG_VCNL4000 is not set
CONFIG_VCNL4035=m
CONFIG_VDSO=y
-# CONFIG_VEML6070 is not set
+CONFIG_VEML6070=m
CONFIG_VETH=m
CONFIG_VEXPRESS_SYSCFG=y
# CONFIG_VF610_ADC is not set
@@ -6979,6 +7048,7 @@ CONFIG_VIDEO_STK1160_COMMON=m
CONFIG_VIDEO_STK1160=m
# CONFIG_VIDEO_STM32_DCMI is not set
CONFIG_VIDEO_STM32_HDMI_CEC=m
+CONFIG_VIDEO_SUN4I_CSI=m
CONFIG_VIDEO_SUN6I_CSI=m
CONFIG_VIDEO_SUNXI_CEDRUS=m
CONFIG_VIDEO_SUNXI=y
@@ -7003,6 +7073,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -7051,6 +7122,7 @@ CONFIG_W1_MASTER_DS2490=m
CONFIG_W1_MASTER_GPIO=m
# CONFIG_W1_MASTER_MATROX is not set
# CONFIG_W1_MASTER_MXC is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -7061,6 +7133,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-i686-debug.config b/kernel-i686-debug-fedora.config
index 95884ea08..c174b8623 100644
--- a/kernel-i686-debug.config
+++ b/kernel-i686-debug-fedora.config
@@ -135,6 +135,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -144,6 +145,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -236,19 +238,14 @@ CONFIG_AR5523=m
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_OMAP1 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
@@ -298,6 +295,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -452,6 +450,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -646,16 +645,21 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
@@ -849,6 +853,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -859,7 +864,6 @@ CONFIG_CPUSETS=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -876,21 +880,16 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC_PMIC_OPREGION=y
CONFIG_CRC_T10DIF=y
CONFIG_CROS_EC_DEBUGFS=m
-CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
+# CONFIG_CROS_EC is not set
# CONFIG_CROS_EC_LIGHTBAR is not set
-CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
-CONFIG_CROS_EC_SPI=m
CONFIG_CROS_KBD_LED_BACKLIGHT=m
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
-CONFIG_CRYPTO_AES_586=y
CONFIG_CRYPTO_AES_NI_INTEL=y
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_AES=y
@@ -923,6 +922,7 @@ CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCP=y
# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
@@ -941,6 +941,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
CONFIG_CRYPTO_DEV_SP_CCP=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
@@ -951,6 +952,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -970,8 +972,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NHPOLY1305_AVX2=m
CONFIG_CRYPTO_NHPOLY1305_SSE2=m
CONFIG_CRYPTO_NULL=y
@@ -992,7 +992,7 @@ CONFIG_CRYPTO_SERPENT_SSE2_586=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -1047,17 +1047,16 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
-CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4096
+CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
CONFIG_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KOBJECT is not set
@@ -1145,6 +1144,7 @@ CONFIG_DLM=m
CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_API_DEBUG=y
+# CONFIG_DMABUF_SELFTESTS is not set
# CONFIG_DMA_CMA is not set
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
@@ -1157,6 +1157,7 @@ CONFIG_DMARD10=m
# CONFIG_DMATEST is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1183,6 +1184,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1202,6 +1204,7 @@ CONFIG_DRBD_FAULT_INJECTION=y
CONFIG_DRM_AMD_ACP=y
CONFIG_DRM_AMD_DC_DCN1_0=y
CONFIG_DRM_AMD_DC_DCN2_0=y
+CONFIG_DRM_AMD_DC_DCN2_1=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
@@ -1224,6 +1227,7 @@ CONFIG_DRM_DP_CEC=y
# CONFIG_DRM_ETNAVIV is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1262,13 +1266,17 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1280,10 +1288,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1298,9 +1310,8 @@ CONFIG_DRM_RADEON_USERPTR=y
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SII9234=m
# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TINYDRM is not set
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1462,9 +1473,10 @@ CONFIG_EEPROM_MAX6875=m
# CONFIG_EFI_FAKE_MEMMAP is not set
CONFIG_EFI_PARTITION=y
CONFIG_EFI_PGT_DUMP=y
+CONFIG_EFI_RCI2_TABLE=y
CONFIG_EFI_RUNTIME_MAP=y
CONFIG_EFI_STUB=y
-# CONFIG_EFI_TEST is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
# CONFIG_EFI_VARS is not set
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
@@ -1489,6 +1501,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1663,10 +1676,14 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1800,6 +1817,7 @@ CONFIG_GTP=m
# CONFIG_GUP_BENCHMARK is not set
CONFIG_GVE=m
# CONFIG_HABANA_AI is not set
+CONFIG_HALTPOLL_CPUIDLE=y
CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
@@ -1811,8 +1829,8 @@ CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
CONFIG_HERMES=m
CONFIG_HERMES_PRISM=y
@@ -1839,6 +1857,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2020,7 +2039,6 @@ CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_AMD_MP2=m
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-# CONFIG_I2C_BCM2048 is not set
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
@@ -2160,11 +2178,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2351,6 +2371,7 @@ CONFIG_IO_DELAY_0X80=y
CONFIG_IOMMU_DEBUGFS=y
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
# CONFIG_IOSF_MBI_DEBUG is not set
CONFIG_IOSF_MBI=y
@@ -2597,6 +2618,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2636,6 +2658,7 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0
CONFIG_KDB_KEYBOARD=y
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2826,7 +2849,7 @@ CONFIG_LIBFCOE=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -2835,8 +2858,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL_FORCE is not set
-CONFIG_LOCK_DOWN_KERNEL=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
CONFIG_LOCK_EVENT_COUNTS=y
CONFIG_LOCK_STAT=y
@@ -2927,6 +2951,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -3152,6 +3177,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
# CONFIG_MLX5_INFINIBAND is not set
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -3194,6 +3221,7 @@ CONFIG_MMC_SDHCI_CADENCE=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
@@ -3214,6 +3242,7 @@ CONFIG_MMC_WBSD=m
# CONFIG_MMIOTRACE_TEST is not set
CONFIG_MMIOTRACE=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_FORCE_UNLOAD=y
@@ -3250,6 +3279,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MOXTET is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMII is not set
@@ -3314,6 +3344,7 @@ CONFIG_MTD_NAND_CAFE=m
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3421,12 +3452,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3600,6 +3633,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3651,6 +3685,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -3819,10 +3854,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -3883,6 +3918,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
# CONFIG_NOHIGHMEM is not set
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
@@ -3941,7 +3977,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_VXLAN=m
# CONFIG_OPROFILE is not set
CONFIG_OPT3001=m
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -3971,7 +4007,7 @@ CONFIG_PANASONIC_LAPTOP=m
CONFIG_PANIC_TIMEOUT=0
CONFIG_PANTHERLORD_FF=y
# CONFIG_PARAVIRT_DEBUG is not set
-# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_PARAVIRT=y
# CONFIG_PARIDE is not set
@@ -4152,6 +4188,7 @@ CONFIG_PINCTRL_LEWISBURG=m
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SINGLE is not set
# CONFIG_PINCTRL_SM8150 is not set
@@ -4247,7 +4284,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4353,6 +4389,7 @@ CONFIG_RADIO_WL1273=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_RANDOM_TRUST_CPU=y
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4393,13 +4430,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4438,6 +4476,7 @@ CONFIG_REGULATOR_MAX77650=m
# CONFIG_REGULATOR_PWM is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4457,7 +4496,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_RESET_TI_SYSCON is not set
@@ -4804,6 +4843,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -4834,7 +4875,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -4846,6 +4886,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
@@ -4884,6 +4925,7 @@ CONFIG_SENSORS_IBMPEX=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5017,7 +5059,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_LPSS=m
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MID=y
-CONFIG_SERIAL_8250_MOXA=m
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -5034,6 +5075,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_IFX6X60 is not set
CONFIG_SERIAL_JSM=m
@@ -5070,7 +5112,6 @@ CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFI=y
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -5192,6 +5233,7 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
@@ -5334,7 +5376,9 @@ CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP=m
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
# CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH is not set
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
@@ -5347,11 +5391,14 @@ CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5390,12 +5437,28 @@ CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
# CONFIG_SND_SOC_SOF_DEBUG is not set
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SSM2305 is not set
@@ -5422,6 +5485,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5492,7 +5556,6 @@ 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
@@ -5692,6 +5755,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -5760,6 +5824,13 @@ CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
@@ -5768,7 +5839,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
CONFIG_TLAN=m
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
# CONFIG_TMP006 is not set
@@ -5903,6 +5974,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -5961,9 +6033,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONN_GPIO is not set
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -6130,6 +6204,7 @@ CONFIG_USB_NET_SR9700=m
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_HCD_PCI=y
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_OTG is not set
@@ -6147,7 +6222,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597_HCD is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLES_INTEL_XHCI=m
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
@@ -6319,7 +6393,7 @@ CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_CADENCE is not set
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_CROS_EC_CEC=m
+# CONFIG_VIDEO_CROS_EC_CEC is not set
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX231XX_ALSA=m
@@ -6398,6 +6472,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -6450,6 +6525,7 @@ CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_DS2490=m
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_W1_MASTER_MATROX is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -6460,6 +6536,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-i686.config b/kernel-i686-fedora.config
index a89417761..e5c5bb988 100644
--- a/kernel-i686.config
+++ b/kernel-i686-fedora.config
@@ -135,6 +135,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -144,6 +145,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -236,19 +238,14 @@ CONFIG_AR5523=m
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_OMAP1 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
@@ -297,6 +294,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -451,6 +449,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -645,16 +644,21 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
@@ -848,6 +852,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -858,7 +863,6 @@ CONFIG_CPUSETS=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -875,21 +879,16 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC_PMIC_OPREGION=y
CONFIG_CRC_T10DIF=y
# CONFIG_CROS_EC_DEBUGFS is not set
-CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
+# CONFIG_CROS_EC is not set
# CONFIG_CROS_EC_LIGHTBAR is not set
-CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
-CONFIG_CROS_EC_SPI=m
CONFIG_CROS_KBD_LED_BACKLIGHT=m
CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
-CONFIG_CRYPTO_AES_586=y
CONFIG_CRYPTO_AES_NI_INTEL=y
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_AES=y
@@ -922,6 +921,7 @@ CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCP=y
# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
@@ -940,6 +940,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
CONFIG_CRYPTO_DEV_SP_CCP=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
@@ -950,6 +951,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -969,8 +971,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NHPOLY1305_AVX2=m
CONFIG_CRYPTO_NHPOLY1305_SSE2=m
CONFIG_CRYPTO_NULL=y
@@ -991,7 +991,7 @@ CONFIG_CRYPTO_SERPENT_SSE2_586=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -1046,11 +1046,10 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
@@ -1137,6 +1136,7 @@ CONFIG_DLM=m
CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_API_DEBUG_SG is not set
+# CONFIG_DMABUF_SELFTESTS is not set
# CONFIG_DMA_CMA is not set
# CONFIG_DMADEVICES_DEBUG is not set
CONFIG_DMADEVICES=y
@@ -1148,6 +1148,7 @@ CONFIG_DMARD10=m
# CONFIG_DMATEST is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1174,6 +1175,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1193,6 +1195,7 @@ CONFIG_DRAGONRISE_FF=y
CONFIG_DRM_AMD_ACP=y
CONFIG_DRM_AMD_DC_DCN1_0=y
CONFIG_DRM_AMD_DC_DCN2_0=y
+CONFIG_DRM_AMD_DC_DCN2_1=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
@@ -1215,6 +1218,7 @@ CONFIG_DRM_DP_CEC=y
# CONFIG_DRM_ETNAVIV is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1253,13 +1257,17 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1271,10 +1279,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1289,9 +1301,8 @@ CONFIG_DRM_RADEON_USERPTR=y
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SII9234=m
# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TINYDRM is not set
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1453,9 +1464,10 @@ CONFIG_EEPROM_MAX6875=m
# CONFIG_EFI_FAKE_MEMMAP is not set
CONFIG_EFI_PARTITION=y
# CONFIG_EFI_PGT_DUMP is not set
+CONFIG_EFI_RCI2_TABLE=y
CONFIG_EFI_RUNTIME_MAP=y
CONFIG_EFI_STUB=y
-# CONFIG_EFI_TEST is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
# CONFIG_EFI_VARS is not set
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
@@ -1480,6 +1492,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1646,10 +1659,14 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1783,6 +1800,7 @@ CONFIG_GTP=m
# CONFIG_GUP_BENCHMARK is not set
CONFIG_GVE=m
# CONFIG_HABANA_AI is not set
+CONFIG_HALTPOLL_CPUIDLE=y
CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
@@ -1794,8 +1812,8 @@ CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
CONFIG_HERMES=m
CONFIG_HERMES_PRISM=y
@@ -1822,6 +1840,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2003,7 +2022,6 @@ CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_AMD_MP2=m
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-# CONFIG_I2C_BCM2048 is not set
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
@@ -2143,11 +2161,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2334,6 +2354,7 @@ CONFIG_IO_DELAY_0X80=y
# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
# CONFIG_IOSF_MBI_DEBUG is not set
CONFIG_IOSF_MBI=y
@@ -2580,6 +2601,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2617,6 +2639,7 @@ CONFIG_KARMA_PARTITION=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2807,7 +2830,7 @@ CONFIG_LIBFCOE=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -2816,8 +2839,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL_FORCE is not set
-CONFIG_LOCK_DOWN_KERNEL=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
# CONFIG_LOCK_EVENT_COUNTS is not set
# CONFIG_LOCK_STAT is not set
@@ -2908,6 +2932,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -2915,7 +2940,7 @@ CONFIG_MAX44009=m
# CONFIG_MAX9611 is not set
CONFIG_MAXIM_THERMOCOUPLE=m
CONFIG_MAX_RAW_DEVS=8192
-# CONFIG_MAXSMP is not set
+CONFIG_MAXSMP=y
CONFIG_MB1232=m
# CONFIG_MC3230 is not set
# CONFIG_MCB is not set
@@ -3133,6 +3158,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
# CONFIG_MLX5_INFINIBAND is not set
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -3175,6 +3202,7 @@ CONFIG_MMC_SDHCI_CADENCE=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
@@ -3195,6 +3223,7 @@ CONFIG_MMC_WBSD=m
# CONFIG_MMIOTRACE_TEST is not set
CONFIG_MMIOTRACE=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -3231,6 +3260,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MOXTET is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMII is not set
@@ -3295,6 +3325,7 @@ CONFIG_MTD_NAND_CAFE=m
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3402,12 +3433,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3581,6 +3614,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3632,6 +3666,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -3800,10 +3835,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -3864,6 +3899,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
# CONFIG_NOHIGHMEM is not set
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
@@ -3922,7 +3958,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_VXLAN=m
# CONFIG_OPROFILE is not set
CONFIG_OPT3001=m
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -3952,7 +3988,7 @@ CONFIG_PANASONIC_LAPTOP=m
CONFIG_PANIC_TIMEOUT=0
CONFIG_PANTHERLORD_FF=y
# CONFIG_PARAVIRT_DEBUG is not set
-# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_PARAVIRT=y
# CONFIG_PARIDE is not set
@@ -4133,6 +4169,7 @@ CONFIG_PINCTRL_LEWISBURG=m
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SINGLE is not set
# CONFIG_PINCTRL_SM8150 is not set
@@ -4228,7 +4265,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4333,6 +4369,7 @@ CONFIG_RADIO_WL1273=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_RANDOM_TRUST_CPU=y
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4373,13 +4410,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4418,6 +4456,7 @@ CONFIG_REGULATOR_MAX77650=m
# CONFIG_REGULATOR_PWM is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4437,7 +4476,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_RESET_TI_SYSCON is not set
@@ -4784,6 +4823,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -4814,7 +4855,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -4826,6 +4866,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
@@ -4864,6 +4905,7 @@ CONFIG_SENSORS_IBMPEX=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -4997,7 +5039,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_LPSS=m
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MID=y
-CONFIG_SERIAL_8250_MOXA=m
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -5014,6 +5055,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_IFX6X60 is not set
CONFIG_SERIAL_JSM=m
@@ -5050,7 +5092,6 @@ CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFI=y
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -5172,6 +5213,7 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
@@ -5313,7 +5355,9 @@ CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP=m
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
# CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH is not set
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
@@ -5326,11 +5370,14 @@ CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5369,12 +5416,28 @@ CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
# CONFIG_SND_SOC_SOF_DEBUG is not set
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SSM2305 is not set
@@ -5401,6 +5464,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5471,7 +5535,6 @@ 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
@@ -5671,6 +5734,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -5739,6 +5803,13 @@ CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
@@ -5747,7 +5818,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
CONFIG_TLAN=m
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
# CONFIG_TMP006 is not set
@@ -5882,6 +5953,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -5940,9 +6012,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONN_GPIO is not set
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -6109,6 +6183,7 @@ CONFIG_USB_NET_SR9700=m
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_HCD_PCI=y
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_OTG is not set
@@ -6126,7 +6201,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597_HCD is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLES_INTEL_XHCI=m
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
@@ -6298,7 +6372,7 @@ CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_CADENCE is not set
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_CROS_EC_CEC=m
+# CONFIG_VIDEO_CROS_EC_CEC is not set
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX231XX_ALSA=m
@@ -6377,6 +6451,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -6429,6 +6504,7 @@ CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_DS2490=m
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_W1_MASTER_MATROX is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -6439,6 +6515,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug-fedora.config
index 8149447fd..05c53b910 100644
--- a/kernel-ppc64le-debug.config
+++ b/kernel-ppc64le-debug-fedora.config
@@ -99,6 +99,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -108,6 +109,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -165,7 +167,6 @@ CONFIG_AMD8111_ETH=m
# CONFIG_AMD_IOMMU_DEBUGFS is not set
CONFIG_AMD_PHY=m
# CONFIG_AMD_XGBE_DCB is not set
-# CONFIG_AMD_XGBE is not set
CONFIG_AMIGA_PARTITION=y
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
@@ -181,19 +182,14 @@ CONFIG_AR5523=m
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_OMAP1 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
@@ -239,6 +235,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -390,6 +387,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -584,16 +582,21 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MSCAN is not set
@@ -787,6 +790,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -798,7 +802,6 @@ CONFIG_CPUSETS=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -815,6 +818,7 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
# CONFIG_CROS_EC_DEBUGFS is not set
CONFIG_CROS_EC_ISHTP=m
+# CONFIG_CROS_EC is not set
# CONFIG_CROS_EC_LIGHTBAR is not set
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_KBD_LED_BACKLIGHT=m
@@ -822,9 +826,7 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_ANSI_CPRNG=m
@@ -853,6 +855,7 @@ CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
@@ -865,6 +868,7 @@ CONFIG_CRYPTO_DEV_NX_COMPRESS=m
CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m
CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m
CONFIG_CRYPTO_DEV_NX=y
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_SP_CCP is not set
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
@@ -877,6 +881,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -897,8 +902,6 @@ CONFIG_CRYPTO_MD4=m
# CONFIG_CRYPTO_MD5_PPC is not set
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
CONFIG_CRYPTO_PCBC=m
@@ -917,7 +920,7 @@ CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -971,17 +974,16 @@ CONFIG_DEBUGGER=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
-CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4096
+CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
CONFIG_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KOBJECT is not set
@@ -1058,6 +1060,7 @@ CONFIG_DLM=m
CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_API_DEBUG=y
+# CONFIG_DMABUF_SELFTESTS is not set
# CONFIG_DMA_CMA is not set
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
@@ -1070,6 +1073,7 @@ CONFIG_DMARD10=m
# CONFIG_DMATEST is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1094,6 +1098,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1131,6 +1136,7 @@ CONFIG_DRM_DP_CEC=y
# CONFIG_DRM_ETNAVIV is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
# CONFIG_DRM_HISI_HIBMC is not set
# CONFIG_DRM_I2C_ADV7511 is not set
CONFIG_DRM_I2C_ADV7533=y
@@ -1157,13 +1163,17 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1175,10 +1185,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1193,9 +1207,8 @@ CONFIG_DRM_RADEON_USERPTR=y
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SII9234=m
# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TINYDRM is not set
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1330,6 +1343,7 @@ CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EFI_PARTITION=y
CONFIG_EFI_PGT_DUMP=y
+# CONFIG_EFI_RCI2_TABLE is not set
# CONFIG_EFI_TEST is not set
# CONFIG_EFS_FS is not set
# CONFIG_EMBEDDED is not set
@@ -1349,6 +1363,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1511,11 +1526,15 @@ CONFIG_FSI_OCC=m
CONFIG_FSI_SBEFIFO=m
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_LBC is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1645,8 +1664,8 @@ CONFIG_HAVE_BOOTMEM_INFO_NODE=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
CONFIG_HERMES=m
CONFIG_HERMES_PRISM=y
@@ -1673,6 +1692,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -1766,7 +1786,7 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_HIST_TRIGGERS=y
# CONFIG_HMC6352 is not set
# CONFIG_HMC_DRV is not set
-# CONFIG_HMM_MIRROR is not set
+CONFIG_HMM_MIRROR=y
CONFIG_HOLTEK_FF=y
# CONFIG_HOSTAP is not set
CONFIG_HOTPLUG_CPU=y
@@ -1836,7 +1856,6 @@ CONFIG_I2C_ALGOPCF=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-# CONFIG_I2C_BCM2048 is not set
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
@@ -1967,11 +1986,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2116,6 +2137,7 @@ CONFIG_IO_EVENT_IRQ=y
CONFIG_IOMMU_DEBUGFS=y
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2355,6 +2377,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2395,6 +2418,7 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0
CONFIG_KDB_KEYBOARD=y
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2447,9 +2471,6 @@ CONFIG_KGDB=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
@@ -2579,7 +2600,7 @@ CONFIG_LIBNVDIMM=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -2588,7 +2609,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
CONFIG_LOCK_EVENT_COUNTS=y
CONFIG_LOCK_STAT=y
@@ -2675,6 +2698,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -2891,6 +2915,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
CONFIG_MLX5_INFINIBAND=m
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -2932,6 +2958,7 @@ CONFIG_MMC_SDHCI_CADENCE=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
@@ -2952,6 +2979,7 @@ CONFIG_MMC_VUB300=m
CONFIG_MMC_WBSD=m
CONFIG_MMIOTRACE=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_FORCE_UNLOAD=y
@@ -2986,6 +3014,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MOXTET is not set
# CONFIG_MPIC_MSGR is not set
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
@@ -3045,6 +3074,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3145,12 +3175,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3323,6 +3355,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3375,6 +3408,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -3540,10 +3574,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -3603,6 +3637,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
@@ -3614,7 +3649,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOUVEAU_DEBUG_MMU=y
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOZOMI=m
-CONFIG_NR_CPUS=1024
+CONFIG_NR_CPUS=2048
CONFIG_NR_IRQS=512
CONFIG_NS83820=m
# CONFIG_NTB is not set
@@ -3652,6 +3687,7 @@ CONFIG_OF_PMEM=m
# CONFIG_OF_UNITTEST is not set
CONFIG_OF=y
# CONFIG_OMFS_FS is not set
+# CONFIG_OPAL_CORE is not set
CONFIG_OPAL_PRD=m
CONFIG_OPENVSWITCH_GENEVE=m
CONFIG_OPENVSWITCH_GRE=m
@@ -3659,7 +3695,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_VXLAN=m
# CONFIG_OPROFILE is not set
CONFIG_OPT3001=m
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -3832,6 +3868,7 @@ CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SM8150 is not set
# CONFIG_PINCTRL_STMFX is not set
@@ -3928,6 +3965,7 @@ CONFIG_PPC_RADIX_MMU=y
CONFIG_PPC_SMLPAR=y
CONFIG_PPC_SPLPAR=y
CONFIG_PPC_SUBPAGE_PROT=y
+CONFIG_PPC_SVM=y
CONFIG_PPC_TRANSACTIONAL_MEM=y
CONFIG_PPC_VAS=y
CONFIG_PPC=y
@@ -3952,7 +3990,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4052,6 +4089,7 @@ CONFIG_RADIO_WL1273=m
# CONFIG_RAID6_PQ_BENCHMARK is not set
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_RANDOM_TRUST_CPU=y
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4090,13 +4128,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4136,6 +4175,7 @@ CONFIG_REGULATOR_MAX77650=m
# CONFIG_REGULATOR_PWM is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4154,7 +4194,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_RESET_TI_SYSCON is not set
@@ -4500,6 +4540,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -4527,7 +4569,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -4538,6 +4579,7 @@ CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -4569,6 +4611,7 @@ CONFIG_SENSORS_IBMPOWERNV=y
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -4698,7 +4741,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_FINTEK is not set
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_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -4715,6 +4757,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_FSL_LPUART is not set
CONFIG_SERIAL_ICOM=m
# CONFIG_SERIAL_IFX6X60 is not set
@@ -4752,7 +4795,6 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -4874,6 +4916,7 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
@@ -5038,6 +5081,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -5066,6 +5110,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TS3A227E is not set
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5130,7 +5175,6 @@ 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
@@ -5328,6 +5372,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -5389,6 +5434,13 @@ CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
@@ -5397,7 +5449,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
CONFIG_TLAN=m
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
# CONFIG_TMP006 is not set
@@ -5527,6 +5579,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -5585,9 +5638,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONN_GPIO is not set
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -5758,6 +5813,7 @@ CONFIG_USB_OHCI_HCD_PCI=y
CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
CONFIG_USB_OHCI_HCD_PPC_OF=y
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_OTG is not set
@@ -5775,7 +5831,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597_HCD is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -6015,6 +6070,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -6063,6 +6119,7 @@ CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_DS2490=m
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_W1_MASTER_MATROX is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -6073,6 +6130,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-ppc64le-debug-rhel.config b/kernel-ppc64le-debug-rhel.config
new file mode 100644
index 000000000..c76e0e471
--- /dev/null
+++ b/kernel-ppc64le-debug-rhel.config
@@ -0,0 +1 @@
+# EMPTY
diff --git a/kernel-ppc64le.config b/kernel-ppc64le-fedora.config
index caf7a2587..637910909 100644
--- a/kernel-ppc64le.config
+++ b/kernel-ppc64le-fedora.config
@@ -99,6 +99,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -108,6 +109,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -165,7 +167,6 @@ CONFIG_AMD8111_ETH=m
# CONFIG_AMD_IOMMU_DEBUGFS is not set
CONFIG_AMD_PHY=m
# CONFIG_AMD_XGBE_DCB is not set
-# CONFIG_AMD_XGBE is not set
CONFIG_AMIGA_PARTITION=y
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
@@ -181,19 +182,14 @@ CONFIG_AR5523=m
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_OMAP1 is not set
# CONFIG_ARCH_PXA is not set
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
@@ -238,6 +234,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -389,6 +386,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -583,16 +581,21 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MSCAN is not set
@@ -786,6 +789,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -797,7 +801,6 @@ CONFIG_CPUSETS=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -814,6 +817,7 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
# CONFIG_CROS_EC_DEBUGFS is not set
CONFIG_CROS_EC_ISHTP=m
+# CONFIG_CROS_EC is not set
# CONFIG_CROS_EC_LIGHTBAR is not set
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_KBD_LED_BACKLIGHT=m
@@ -821,9 +825,7 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_ANSI_CPRNG=m
@@ -852,6 +854,7 @@ CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
@@ -864,6 +867,7 @@ CONFIG_CRYPTO_DEV_NX_COMPRESS=m
CONFIG_CRYPTO_DEV_NX_COMPRESS_POWERNV=m
CONFIG_CRYPTO_DEV_NX_COMPRESS_PSERIES=m
CONFIG_CRYPTO_DEV_NX=y
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_SP_CCP is not set
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
@@ -876,6 +880,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -896,8 +901,6 @@ CONFIG_CRYPTO_MD4=m
# CONFIG_CRYPTO_MD5_PPC is not set
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
CONFIG_CRYPTO_PCBC=m
@@ -916,7 +919,7 @@ CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -970,11 +973,10 @@ CONFIG_DEBUGGER=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
@@ -1050,6 +1052,7 @@ CONFIG_DLM=m
CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_API_DEBUG_SG is not set
+# CONFIG_DMABUF_SELFTESTS is not set
# CONFIG_DMA_CMA is not set
# CONFIG_DMADEVICES_DEBUG is not set
CONFIG_DMADEVICES=y
@@ -1061,6 +1064,7 @@ CONFIG_DMARD10=m
# CONFIG_DMATEST is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1085,6 +1089,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1122,6 +1127,7 @@ CONFIG_DRM_DP_CEC=y
# CONFIG_DRM_ETNAVIV is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
# CONFIG_DRM_HISI_HIBMC is not set
# CONFIG_DRM_I2C_ADV7511 is not set
CONFIG_DRM_I2C_ADV7533=y
@@ -1148,13 +1154,17 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1166,10 +1176,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1184,9 +1198,8 @@ CONFIG_DRM_RADEON_USERPTR=y
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SII9234=m
# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TINYDRM is not set
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1321,6 +1334,7 @@ CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EFI_PARTITION=y
# CONFIG_EFI_PGT_DUMP is not set
+# CONFIG_EFI_RCI2_TABLE is not set
# CONFIG_EFI_TEST is not set
# CONFIG_EFS_FS is not set
# CONFIG_EMBEDDED is not set
@@ -1340,6 +1354,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1494,11 +1509,15 @@ CONFIG_FSI_OCC=m
CONFIG_FSI_SBEFIFO=m
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_LBC is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1628,8 +1647,8 @@ CONFIG_HAVE_BOOTMEM_INFO_NODE=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
CONFIG_HERMES=m
CONFIG_HERMES_PRISM=y
@@ -1656,6 +1675,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -1749,7 +1769,7 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_HIST_TRIGGERS=y
# CONFIG_HMC6352 is not set
# CONFIG_HMC_DRV is not set
-# CONFIG_HMM_MIRROR is not set
+CONFIG_HMM_MIRROR=y
CONFIG_HOLTEK_FF=y
# CONFIG_HOSTAP is not set
CONFIG_HOTPLUG_CPU=y
@@ -1819,7 +1839,6 @@ CONFIG_I2C_ALGOPCF=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-# CONFIG_I2C_BCM2048 is not set
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
@@ -1950,11 +1969,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2099,6 +2120,7 @@ CONFIG_IO_EVENT_IRQ=y
# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2338,6 +2360,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2376,6 +2399,7 @@ CONFIG_KARMA_PARTITION=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2428,9 +2452,6 @@ CONFIG_KGDB=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
@@ -2560,7 +2581,7 @@ CONFIG_LIBNVDIMM=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -2569,7 +2590,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
# CONFIG_LOCK_EVENT_COUNTS is not set
# CONFIG_LOCK_STAT is not set
@@ -2656,6 +2679,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -2871,6 +2895,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
CONFIG_MLX5_INFINIBAND=m
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -2912,6 +2938,7 @@ CONFIG_MMC_SDHCI_CADENCE=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
@@ -2931,6 +2958,7 @@ CONFIG_MMC_VIA_SDMMC=m
CONFIG_MMC_VUB300=m
CONFIG_MMC_WBSD=m
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -2965,6 +2993,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MOXTET is not set
# CONFIG_MPIC_MSGR is not set
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
@@ -3024,6 +3053,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3124,12 +3154,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3302,6 +3334,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3354,6 +3387,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -3519,10 +3553,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -3582,6 +3616,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
CONFIG_NO_HZ=y
@@ -3593,7 +3628,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOUVEAU_DEBUG_MMU is not set
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOZOMI=m
-CONFIG_NR_CPUS=1024
+CONFIG_NR_CPUS=2048
CONFIG_NR_IRQS=512
CONFIG_NS83820=m
# CONFIG_NTB is not set
@@ -3631,6 +3666,7 @@ CONFIG_OF_PMEM=m
# CONFIG_OF_UNITTEST is not set
CONFIG_OF=y
# CONFIG_OMFS_FS is not set
+# CONFIG_OPAL_CORE is not set
CONFIG_OPAL_PRD=m
CONFIG_OPENVSWITCH_GENEVE=m
CONFIG_OPENVSWITCH_GRE=m
@@ -3638,7 +3674,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_VXLAN=m
# CONFIG_OPROFILE is not set
CONFIG_OPT3001=m
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -3811,6 +3847,7 @@ CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SM8150 is not set
# CONFIG_PINCTRL_STMFX is not set
@@ -3907,6 +3944,7 @@ CONFIG_PPC_RADIX_MMU=y
CONFIG_PPC_SMLPAR=y
CONFIG_PPC_SPLPAR=y
CONFIG_PPC_SUBPAGE_PROT=y
+CONFIG_PPC_SVM=y
CONFIG_PPC_TRANSACTIONAL_MEM=y
CONFIG_PPC_VAS=y
CONFIG_PPC=y
@@ -3931,7 +3969,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4030,6 +4067,7 @@ CONFIG_RADIO_WL1273=m
# CONFIG_RAID6_PQ_BENCHMARK is not set
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_RANDOM_TRUST_CPU=y
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4068,13 +4106,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4114,6 +4153,7 @@ CONFIG_REGULATOR_MAX77650=m
# CONFIG_REGULATOR_PWM is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4132,7 +4172,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_RESET_TI_SYSCON is not set
@@ -4478,6 +4518,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -4505,7 +4547,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -4516,6 +4557,7 @@ CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -4547,6 +4589,7 @@ CONFIG_SENSORS_IBMPOWERNV=y
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -4676,7 +4719,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250_FINTEK is not set
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_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -4693,6 +4735,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_FSL_LPUART is not set
CONFIG_SERIAL_ICOM=m
# CONFIG_SERIAL_IFX6X60 is not set
@@ -4730,7 +4773,6 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
CONFIG_SGI_PARTITION=y
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -4852,6 +4894,7 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
@@ -5015,6 +5058,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -5043,6 +5087,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TS3A227E is not set
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5107,7 +5152,6 @@ 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
@@ -5305,6 +5349,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -5366,6 +5411,13 @@ CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
@@ -5374,7 +5426,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
CONFIG_TLAN=m
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
# CONFIG_TMP006 is not set
@@ -5504,6 +5556,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -5562,9 +5615,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONN_GPIO is not set
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -5735,6 +5790,7 @@ CONFIG_USB_OHCI_HCD_PCI=y
CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
CONFIG_USB_OHCI_HCD_PPC_OF_LE=y
CONFIG_USB_OHCI_HCD_PPC_OF=y
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_OTG is not set
@@ -5752,7 +5808,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597_HCD is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -5992,6 +6047,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -6040,6 +6096,7 @@ CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_DS2490=m
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_W1_MASTER_MATROX is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -6050,6 +6107,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-ppc64le-rhel.config b/kernel-ppc64le-rhel.config
new file mode 100644
index 000000000..c76e0e471
--- /dev/null
+++ b/kernel-ppc64le-rhel.config
@@ -0,0 +1 @@
+# EMPTY
diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug-fedora.config
index eb0cd3526..b0c255ff2 100644
--- a/kernel-s390x-debug.config
+++ b/kernel-s390x-debug-fedora.config
@@ -99,6 +99,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -108,6 +109,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -164,7 +166,6 @@ CONFIG_AMD8111_ETH=m
# CONFIG_AMD_IOMMU_DEBUGFS is not set
CONFIG_AMD_PHY=m
# CONFIG_AMD_XGBE_DCB is not set
-# CONFIG_AMD_XGBE is not set
CONFIG_AMIGA_PARTITION=y
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
@@ -184,12 +185,8 @@ CONFIG_AR5523=m
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_OMAP1 is not set
# CONFIG_ARCH_PXA is not set
@@ -197,7 +194,6 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
@@ -243,6 +239,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -394,6 +391,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -588,6 +586,7 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
@@ -595,9 +594,13 @@ CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
# CONFIG_CAN is not set
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
@@ -794,6 +797,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
# CONFIG_CPU_IDLE is not set
@@ -804,7 +808,6 @@ CONFIG_CPUSETS=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -821,6 +824,7 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
# CONFIG_CROS_EC_DEBUGFS is not set
CONFIG_CROS_EC_ISHTP=m
+# CONFIG_CROS_EC is not set
# CONFIG_CROS_EC_LIGHTBAR is not set
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_KBD_LED_BACKLIGHT=m
@@ -828,9 +832,7 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_AES_S390=m
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_AES=y
@@ -861,6 +863,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DES_S390=m
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
@@ -868,6 +871,7 @@ CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
# CONFIG_CRYPTO_DEV_HISI_SEC is not set
# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_SP_CCP is not set
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
@@ -878,6 +882,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -898,8 +903,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
CONFIG_CRYPTO_PAES_S390=m
@@ -919,9 +922,11 @@ CONFIG_CRYPTO_SHA1_S390=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256_S390=m
CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA3_256_S390=m
+CONFIG_CRYPTO_SHA3_512_S390=m
CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_SHA512_S390=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -979,17 +984,16 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
-CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4096
+CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
CONFIG_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KOBJECT is not set
@@ -1064,6 +1068,7 @@ CONFIG_DLM=m
CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_API_DEBUG=y
+# CONFIG_DMABUF_SELFTESTS is not set
# CONFIG_DMA_CMA is not set
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
@@ -1076,6 +1081,7 @@ CONFIG_DMARD10=m
# CONFIG_DMATEST is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1100,6 +1106,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1137,6 +1144,7 @@ CONFIG_DRM_DP_CEC=y
# CONFIG_DRM_ETNAVIV is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
# CONFIG_DRM_HISI_HIBMC is not set
# CONFIG_DRM_I2C_ADV7511 is not set
CONFIG_DRM_I2C_ADV7533=y
@@ -1163,13 +1171,17 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1181,10 +1193,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1199,9 +1215,8 @@ CONFIG_DRM_RADEON_USERPTR=y
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SII9234=m
# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TINYDRM is not set
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1335,6 +1350,7 @@ CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EFI_PARTITION=y
CONFIG_EFI_PGT_DUMP=y
+# CONFIG_EFI_RCI2_TABLE is not set
# CONFIG_EFI_TEST is not set
# CONFIG_EFS_FS is not set
# CONFIG_EMBEDDED is not set
@@ -1355,6 +1371,7 @@ CONFIG_ETHERNET=y
# CONFIG_ETHOC is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
CONFIG_EXPOLINE_AUTO=y
# CONFIG_EXPOLINE_FULL is not set
@@ -1510,10 +1527,14 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1638,8 +1659,8 @@ CONFIG_HARDENED_USERCOPY=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
CONFIG_HERMES=m
CONFIG_HERMES_PRISM=y
@@ -1666,6 +1687,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -1818,7 +1840,6 @@ CONFIG_I2C_ALGOBIT=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-# CONFIG_I2C_BCM2048 is not set
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
# CONFIG_I2C_CHARDEV is not set
@@ -1945,11 +1966,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2093,6 +2116,7 @@ CONFIG_IO_DELAY_0X80=y
CONFIG_IOMMU_DEBUGFS=y
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2332,6 +2356,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2371,6 +2396,7 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0
CONFIG_KDB_KEYBOARD=y
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2378,7 +2404,7 @@ CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_UNCOMPRESSED is not set
# CONFIG_KERNEL_XZ is not set
CONFIG_KEXEC_FILE=y
-# CONFIG_KEXEC_VERIFY_SIG is not set
+CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2425,9 +2451,6 @@ CONFIG_KGDB=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
@@ -2553,7 +2576,7 @@ CONFIG_LIBFCOE=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -2562,7 +2585,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
CONFIG_LOCK_EVENT_COUNTS=y
CONFIG_LOCK_STAT=y
@@ -2629,6 +2654,7 @@ CONFIG_MANTIS_CORE=m
# CONFIG_MARCH_Z10 is not set
# CONFIG_MARCH_Z13 is not set
# CONFIG_MARCH_Z14 is not set
+# CONFIG_MARCH_Z15 is not set
# CONFIG_MARCH_Z196 is not set
# CONFIG_MARCH_Z900 is not set
# CONFIG_MARCH_Z9_109 is not set
@@ -2647,6 +2673,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -2864,6 +2891,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
CONFIG_MLX5_INFINIBAND=m
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -2905,6 +2934,7 @@ CONFIG_MMC_SDHCI_CADENCE=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
@@ -2924,6 +2954,7 @@ CONFIG_MMC_VUB300=m
CONFIG_MMC_WBSD=m
CONFIG_MMIOTRACE=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_FORCE_UNLOAD=y
@@ -2960,6 +2991,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MOXTET is not set
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
# CONFIG_MPL3115 is not set
@@ -3017,6 +3049,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3115,12 +3148,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3294,6 +3329,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3345,6 +3381,7 @@ CONFIG_NET_VENDOR_NETERION=y
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
# CONFIG_NET_VENDOR_QLOGIC is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_RDC is not set
@@ -3509,10 +3546,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
# CONFIG_N_GSM is not set
CONFIG_N_HDLC=m
@@ -3572,6 +3609,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
CONFIG_NODES_SHIFT=4
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
@@ -3584,7 +3622,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOUVEAU_DEBUG_MMU=y
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
# CONFIG_NOZOMI is not set
-CONFIG_NR_CPUS=64
+CONFIG_NR_CPUS=512
CONFIG_NS83820=m
# CONFIG_NTB is not set
# CONFIG_NTFS_FS is not set
@@ -3624,7 +3662,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_VXLAN=m
# CONFIG_OPROFILE is not set
CONFIG_OPT3001=m
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -3798,6 +3836,7 @@ CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SM8150 is not set
# CONFIG_PINCTRL_STMFX is not set
@@ -3884,7 +3923,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -3987,6 +4025,7 @@ CONFIG_RADIO_WL1273=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_RANDOM_TRUST_CPU=y
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4025,13 +4064,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4071,6 +4111,7 @@ CONFIG_REGULATOR_MAX77650=m
# CONFIG_REGULATOR_PWM is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4089,7 +4130,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_RESET_CONTROLLER is not set
@@ -4445,6 +4486,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -4472,7 +4515,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -4483,6 +4525,7 @@ CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -4513,6 +4556,7 @@ CONFIG_SENSORS_IBMPEX=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -4643,7 +4687,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250 is not set
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_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -4659,6 +4702,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_CORE=m
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_IFX6X60 is not set
CONFIG_SERIAL_JSM=m
@@ -4693,7 +4737,6 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
# CONFIG_SGI_PARTITION is not set
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -4816,7 +4859,8 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
+# CONFIG_SND_HDA_INTEL is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDA_PREALLOC_SIZE=4096
@@ -4979,6 +5023,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -5007,6 +5052,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TS3A227E is not set
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5071,7 +5117,6 @@ 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_SPARSEMEM_MANUAL=y
@@ -5263,6 +5308,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -5324,6 +5370,13 @@ CONFIG_TIFM_7XX1=m
# CONFIG_TIFM_CORE is not set
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
@@ -5332,7 +5385,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
CONFIG_TLAN=m
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
# CONFIG_TMP006 is not set
@@ -5446,6 +5499,7 @@ CONFIG_TUNE_DEFAULT=y
# CONFIG_TUNE_Z10 is not set
# CONFIG_TUNE_Z13 is not set
# CONFIG_TUNE_Z14 is not set
+# CONFIG_TUNE_Z15 is not set
# CONFIG_TUNE_Z196 is not set
# CONFIG_TUNE_Z900 is not set
# CONFIG_TUNE_Z9_109 is not set
@@ -5467,6 +5521,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -5524,9 +5579,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONN_GPIO is not set
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -5693,6 +5750,7 @@ CONFIG_USB_NET_SR9700=m
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_HCD_PCI=y
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_OTG is not set
@@ -5710,7 +5768,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597_HCD is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -5952,6 +6009,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -6003,6 +6061,7 @@ CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_DS2490=m
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_W1_MASTER_MATROX is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -6013,6 +6072,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-s390x-debug-rhel.config b/kernel-s390x-debug-rhel.config
new file mode 100644
index 000000000..c76e0e471
--- /dev/null
+++ b/kernel-s390x-debug-rhel.config
@@ -0,0 +1 @@
+# EMPTY
diff --git a/kernel-s390x.config b/kernel-s390x-fedora.config
index 0d3be1ed5..90b0b5690 100644
--- a/kernel-s390x.config
+++ b/kernel-s390x-fedora.config
@@ -99,6 +99,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -108,6 +109,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -164,7 +166,6 @@ CONFIG_AMD8111_ETH=m
# CONFIG_AMD_IOMMU_DEBUGFS is not set
CONFIG_AMD_PHY=m
# CONFIG_AMD_XGBE_DCB is not set
-# CONFIG_AMD_XGBE is not set
CONFIG_AMIGA_PARTITION=y
# CONFIG_ANDROID is not set
# CONFIG_APDS9300 is not set
@@ -184,12 +185,8 @@ CONFIG_AR5523=m
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_OMAP1 is not set
# CONFIG_ARCH_PXA is not set
@@ -197,7 +194,6 @@ CONFIG_ARCH_RANDOM=y
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
@@ -242,6 +238,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -393,6 +390,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -587,6 +585,7 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
@@ -594,9 +593,13 @@ CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
# CONFIG_CAN is not set
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
@@ -793,6 +796,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
# CONFIG_CPU_IDLE is not set
@@ -803,7 +807,6 @@ CONFIG_CPUSETS=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -820,6 +823,7 @@ CONFIG_CRC_ITU_T=m
CONFIG_CRC_T10DIF=y
# CONFIG_CROS_EC_DEBUGFS is not set
CONFIG_CROS_EC_ISHTP=m
+# CONFIG_CROS_EC is not set
# CONFIG_CROS_EC_LIGHTBAR is not set
CONFIG_CROS_EC_RPMSG=m
CONFIG_CROS_KBD_LED_BACKLIGHT=m
@@ -827,9 +831,7 @@ CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_AES_S390=m
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_AES=y
@@ -860,6 +862,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DES_S390=m
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_CHELSIO_TLS=m
@@ -867,6 +870,7 @@ CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
# CONFIG_CRYPTO_DEV_HISI_SEC is not set
# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_SP_CCP is not set
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DH=y
@@ -877,6 +881,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -897,8 +902,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS640=m
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_OFB=m
CONFIG_CRYPTO_PAES_S390=m
@@ -918,9 +921,11 @@ CONFIG_CRYPTO_SHA1_S390=m
CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256_S390=m
CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA3_256_S390=m
+CONFIG_CRYPTO_SHA3_512_S390=m
CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_SHA512_S390=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -978,11 +983,10 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
@@ -1056,6 +1060,7 @@ CONFIG_DLM=m
CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_API_DEBUG_SG is not set
+# CONFIG_DMABUF_SELFTESTS is not set
# CONFIG_DMA_CMA is not set
# CONFIG_DMADEVICES_DEBUG is not set
CONFIG_DMADEVICES=y
@@ -1067,6 +1072,7 @@ CONFIG_DMARD10=m
# CONFIG_DMATEST is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1091,6 +1097,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1128,6 +1135,7 @@ CONFIG_DRM_DP_CEC=y
# CONFIG_DRM_ETNAVIV is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
# CONFIG_DRM_HISI_HIBMC is not set
# CONFIG_DRM_I2C_ADV7511 is not set
CONFIG_DRM_I2C_ADV7533=y
@@ -1154,13 +1162,17 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1172,10 +1184,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1190,9 +1206,8 @@ CONFIG_DRM_RADEON_USERPTR=y
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SII9234=m
# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TINYDRM is not set
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1326,6 +1341,7 @@ CONFIG_EEPROM_LEGACY=m
CONFIG_EEPROM_MAX6875=m
CONFIG_EFI_PARTITION=y
# CONFIG_EFI_PGT_DUMP is not set
+# CONFIG_EFI_RCI2_TABLE is not set
# CONFIG_EFI_TEST is not set
# CONFIG_EFS_FS is not set
# CONFIG_EMBEDDED is not set
@@ -1346,6 +1362,7 @@ CONFIG_ETHERNET=y
# CONFIG_ETHOC is not set
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
CONFIG_EXPOLINE_AUTO=y
# CONFIG_EXPOLINE_FULL is not set
@@ -1493,10 +1510,14 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1621,8 +1642,8 @@ CONFIG_HARDENED_USERCOPY=y
CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
CONFIG_HERMES=m
CONFIG_HERMES_PRISM=y
@@ -1649,6 +1670,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -1801,7 +1823,6 @@ CONFIG_I2C_ALGOBIT=m
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_AMD_MP2=m
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-# CONFIG_I2C_BCM2048 is not set
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
# CONFIG_I2C_CHARDEV is not set
@@ -1928,11 +1949,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2076,6 +2099,7 @@ CONFIG_IO_DELAY_0X80=y
# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
CONFIG_IO_STRICT_DEVMEM=y
CONFIG_IP6_NF_FILTER=m
@@ -2315,6 +2339,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2352,6 +2377,7 @@ CONFIG_KARMA_PARTITION=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2359,7 +2385,7 @@ CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_UNCOMPRESSED is not set
# CONFIG_KERNEL_XZ is not set
CONFIG_KEXEC_FILE=y
-# CONFIG_KEXEC_VERIFY_SIG is not set
+CONFIG_KEXEC_SIG=y
CONFIG_KEXEC=y
# CONFIG_KEYBOARD_ADC is not set
# CONFIG_KEYBOARD_ADP5588 is not set
@@ -2406,9 +2432,6 @@ CONFIG_KGDB=y
CONFIG_KPROBE_EVENTS=y
# CONFIG_KPROBES_SANITY_TEST is not set
CONFIG_KPROBES=y
-CONFIG_KS0108_DELAY=2
-CONFIG_KS0108=m
-CONFIG_KS0108_PORT=0x378
# CONFIG_KS7010 is not set
# CONFIG_KS8842 is not set
# CONFIG_KS8851 is not set
@@ -2534,7 +2557,7 @@ CONFIG_LIBFCOE=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -2543,7 +2566,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
# CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT is not set
-# CONFIG_LOCK_DOWN_KERNEL is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
# CONFIG_LOCK_EVENT_COUNTS is not set
# CONFIG_LOCK_STAT is not set
@@ -2610,6 +2635,7 @@ CONFIG_MANTIS_CORE=m
# CONFIG_MARCH_Z10 is not set
# CONFIG_MARCH_Z13 is not set
# CONFIG_MARCH_Z14 is not set
+# CONFIG_MARCH_Z15 is not set
# CONFIG_MARCH_Z196 is not set
# CONFIG_MARCH_Z900 is not set
# CONFIG_MARCH_Z9_109 is not set
@@ -2628,6 +2654,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -2844,6 +2871,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
CONFIG_MLX5_INFINIBAND=m
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -2885,6 +2914,7 @@ CONFIG_MMC_SDHCI_CADENCE=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
@@ -2903,6 +2933,7 @@ CONFIG_MMC_VIA_SDMMC=m
CONFIG_MMC_VUB300=m
CONFIG_MMC_WBSD=m
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -2939,6 +2970,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MOXTET is not set
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
# CONFIG_MPL3115 is not set
@@ -2996,6 +3028,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3094,12 +3127,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3273,6 +3308,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3324,6 +3360,7 @@ CONFIG_NET_VENDOR_NETERION=y
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
# CONFIG_NET_VENDOR_QLOGIC is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_RDC is not set
@@ -3488,10 +3525,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
# CONFIG_N_GSM is not set
CONFIG_N_HDLC=m
@@ -3551,6 +3588,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
CONFIG_NODES_SHIFT=4
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ_IDLE=y
@@ -3563,7 +3601,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOUVEAU_DEBUG_MMU is not set
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
# CONFIG_NOZOMI is not set
-CONFIG_NR_CPUS=64
+CONFIG_NR_CPUS=512
CONFIG_NS83820=m
# CONFIG_NTB is not set
# CONFIG_NTFS_FS is not set
@@ -3603,7 +3641,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_VXLAN=m
# CONFIG_OPROFILE is not set
CONFIG_OPT3001=m
-# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_OPTIMIZE_INLINING=y
CONFIG_OPTPROBES=y
CONFIG_ORANGEFS_FS=m
CONFIG_ORINOCO_USB=m
@@ -3777,6 +3815,7 @@ CONFIG_PINCTRL_CEDARFORK=m
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SM8150 is not set
# CONFIG_PINCTRL_STMFX is not set
@@ -3863,7 +3902,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -3965,6 +4003,7 @@ CONFIG_RADIO_WL1273=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_RANDOM_TRUST_CPU=y
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4003,13 +4042,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4049,6 +4089,7 @@ CONFIG_REGULATOR_MAX77650=m
# CONFIG_REGULATOR_PWM is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4067,7 +4108,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_RESET_CONTROLLER is not set
@@ -4423,6 +4464,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -4450,7 +4493,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -4461,6 +4503,7 @@ CONFIG_SENSORS_ADT7470=m
CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
@@ -4491,6 +4534,7 @@ CONFIG_SENSORS_IBMPEX=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -4621,7 +4665,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
# CONFIG_SERIAL_8250 is not set
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_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -4637,6 +4680,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_CORE=m
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_IFX6X60 is not set
CONFIG_SERIAL_JSM=m
@@ -4671,7 +4715,6 @@ CONFIG_SFC_FALCON=m
CONFIG_SFC_FALCON_MTD=y
# CONFIG_SFC is not set
CONFIG_SFP=m
-# CONFIG_SGI_IOC4 is not set
# CONFIG_SGI_PARTITION is not set
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
# CONFIG_SI1133 is not set
@@ -4794,7 +4837,8 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
-CONFIG_SND_HDA_INTEL=m
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
+# CONFIG_SND_HDA_INTEL is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDA_PREALLOC_SIZE=4096
@@ -4956,6 +5000,7 @@ CONFIG_SND_SOC_SOF_ACPI=m
# CONFIG_SND_SOC_SOF_DEBUG is not set
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
CONFIG_SND_SOC_SOF_TOPLEVEL=y
@@ -4984,6 +5029,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
# CONFIG_SND_SOC_TS3A227E is not set
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5048,7 +5094,6 @@ 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_SPARSEMEM_MANUAL=y
@@ -5240,6 +5285,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -5301,6 +5347,13 @@ CONFIG_TIFM_7XX1=m
# CONFIG_TIFM_CORE is not set
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
@@ -5309,7 +5362,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
CONFIG_TLAN=m
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
# CONFIG_TMP006 is not set
@@ -5423,6 +5476,7 @@ CONFIG_TUNE_DEFAULT=y
# CONFIG_TUNE_Z10 is not set
# CONFIG_TUNE_Z13 is not set
# CONFIG_TUNE_Z14 is not set
+# CONFIG_TUNE_Z15 is not set
# CONFIG_TUNE_Z196 is not set
# CONFIG_TUNE_Z900 is not set
# CONFIG_TUNE_Z9_109 is not set
@@ -5444,6 +5498,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -5501,9 +5556,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONN_GPIO is not set
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -5670,6 +5727,7 @@ CONFIG_USB_NET_SR9700=m
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_HCD_PCI=y
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_OTG is not set
@@ -5687,7 +5745,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597_HCD is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
@@ -5929,6 +5986,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -5980,6 +6038,7 @@ CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_DS2490=m
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_W1_MASTER_MATROX is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -5990,6 +6049,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
diff --git a/kernel-s390x-rhel.config b/kernel-s390x-rhel.config
new file mode 100644
index 000000000..c76e0e471
--- /dev/null
+++ b/kernel-s390x-rhel.config
@@ -0,0 +1 @@
+# EMPTY
diff --git a/kernel-s390x-zfcpdump-rhel.config b/kernel-s390x-zfcpdump-rhel.config
new file mode 100644
index 000000000..c76e0e471
--- /dev/null
+++ b/kernel-s390x-zfcpdump-rhel.config
@@ -0,0 +1 @@
+# EMPTY
diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug-fedora.config
index 132d17a99..0cf92751d 100644
--- a/kernel-x86_64-debug.config
+++ b/kernel-x86_64-debug-fedora.config
@@ -139,6 +139,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -148,6 +149,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -238,12 +240,8 @@ CONFIG_AR5523=m
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MEMORY_PROBE is not set
CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_OMAP1 is not set
@@ -251,7 +249,6 @@ CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM_PTDUMP_DEBUGFS=y
@@ -301,6 +298,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -458,6 +456,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -655,16 +654,21 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
@@ -863,6 +867,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -873,7 +878,6 @@ CONFIG_CPUSETS=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -889,14 +893,13 @@ CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC_PMIC_OPREGION=y
CONFIG_CRC_T10DIF=y
+CONFIG_CROS_EC_CHARDEV=m
CONFIG_CROS_EC_DEBUGFS=m
-CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
+# CONFIG_CROS_EC is not set
CONFIG_CROS_EC_LIGHTBAR=m
CONFIG_CROS_EC_LPC=m
-CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
-CONFIG_CROS_EC_SPI=m
CONFIG_CROS_EC_SYSFS=m
CONFIG_CROS_KBD_LED_BACKLIGHT=m
CONFIG_CROSS_MEMORY_ATTACH=y
@@ -904,14 +907,9 @@ CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
-CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256_AESNI_SSE2=m
-CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_AES_NI_INTEL=y
CONFIG_CRYPTO_AES_TI=m
-CONFIG_CRYPTO_AES_X86_64=y
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_ANUBIS=m
@@ -951,6 +949,7 @@ CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCP=y
# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
@@ -968,6 +967,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
CONFIG_CRYPTO_DEV_SP_CCP=y
CONFIG_CRYPTO_DEV_SP_PSP=y
CONFIG_CRYPTO_DEV_VIRTIO=m
@@ -979,6 +979,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -999,11 +1000,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280_AVX2=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS1280_SSE2=m
-CONFIG_CRYPTO_MORUS640=m
-CONFIG_CRYPTO_MORUS640_SSE2=m
CONFIG_CRYPTO_NHPOLY1305_AVX2=m
CONFIG_CRYPTO_NHPOLY1305_SSE2=m
CONFIG_CRYPTO_NULL=y
@@ -1030,8 +1026,8 @@ CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256_SSSE3=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -1086,17 +1082,16 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_KMEMLEAK_AUTO_SCAN is not set
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
-CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=4096
+CONFIG_DEBUG_KMEMLEAK_MEM_POOL_SIZE=16000
# CONFIG_DEBUG_KMEMLEAK_TEST is not set
CONFIG_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KOBJECT is not set
@@ -1187,6 +1182,7 @@ CONFIG_DLM=m
CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG_SG is not set
CONFIG_DMA_API_DEBUG=y
+# CONFIG_DMABUF_SELFTESTS is not set
# CONFIG_DMA_CMA is not set
# CONFIG_DMADEVICES_DEBUG is not set
# CONFIG_DMADEVICES_VDEBUG is not set
@@ -1199,6 +1195,7 @@ CONFIG_DMARD10=m
# CONFIG_DMATEST is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1225,6 +1222,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1244,6 +1242,7 @@ CONFIG_DRBD_FAULT_INJECTION=y
CONFIG_DRM_AMD_ACP=y
CONFIG_DRM_AMD_DC_DCN1_0=y
CONFIG_DRM_AMD_DC_DCN2_0=y
+CONFIG_DRM_AMD_DC_DCN2_1=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
@@ -1266,6 +1265,7 @@ CONFIG_DRM_DP_CEC=y
# CONFIG_DRM_ETNAVIV is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1304,13 +1304,17 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1322,10 +1326,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1340,9 +1348,8 @@ CONFIG_DRM_RADEON_USERPTR=y
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SII9234=m
# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TINYDRM is not set
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1505,9 +1512,10 @@ CONFIG_EEPROM_MAX6875=m
CONFIG_EFI_MIXED=y
CONFIG_EFI_PARTITION=y
CONFIG_EFI_PGT_DUMP=y
+CONFIG_EFI_RCI2_TABLE=y
CONFIG_EFI_RUNTIME_MAP=y
CONFIG_EFI_STUB=y
-# CONFIG_EFI_TEST is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
# CONFIG_EFI_VARS is not set
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
@@ -1532,6 +1540,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1703,10 +1712,14 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1837,6 +1850,7 @@ CONFIG_GTP=m
# CONFIG_GUP_BENCHMARK is not set
CONFIG_GVE=m
# CONFIG_HABANA_AI is not set
+CONFIG_HALTPOLL_CPUIDLE=y
CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
@@ -1849,8 +1863,8 @@ CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
CONFIG_HERMES=m
CONFIG_HERMES_PRISM=y
@@ -1878,6 +1892,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2055,7 +2070,6 @@ CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_AMD_MP2=m
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-# CONFIG_I2C_BCM2048 is not set
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
@@ -2203,11 +2217,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2319,7 +2335,7 @@ CONFIG_INPUT_PM8XXX_VIBRATOR=m
CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
-# CONFIG_INPUT_PWM_BEEPER is not set
+CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_RK805_PWRKEY=m
@@ -2403,6 +2419,7 @@ CONFIG_IO_DELAY_0X80=y
CONFIG_IOMMU_DEBUGFS=y
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
# CONFIG_IOSF_MBI_DEBUG is not set
CONFIG_IOSF_MBI=y
@@ -2651,6 +2668,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2690,6 +2708,7 @@ CONFIG_KDB_DEFAULT_ENABLE=0x0
CONFIG_KDB_KEYBOARD=y
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2882,7 +2901,7 @@ CONFIG_LIBNVDIMM=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -2891,8 +2910,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y
-# CONFIG_LOCK_DOWN_KERNEL_FORCE is not set
-CONFIG_LOCK_DOWN_KERNEL=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
CONFIG_LOCK_EVENT_COUNTS=y
CONFIG_LOCK_STAT=y
@@ -2977,6 +2997,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -3084,8 +3105,8 @@ 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=m
+CONFIG_MFD_CROS_EC_DEV=m
+# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9052_SPI is not set
@@ -3203,6 +3224,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
CONFIG_MLX5_INFINIBAND=m
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -3245,6 +3268,7 @@ CONFIG_MMC_SDHCI_CADENCE=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
@@ -3265,6 +3289,7 @@ CONFIG_MMC_WBSD=m
# CONFIG_MMIOTRACE_TEST is not set
CONFIG_MMIOTRACE=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
CONFIG_MODULE_FORCE_UNLOAD=y
@@ -3300,6 +3325,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MOXTET is not set
CONFIG_MPILIB=y
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
@@ -3361,6 +3387,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3465,12 +3492,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3644,6 +3673,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3695,6 +3725,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -3863,10 +3894,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -3927,6 +3958,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
CONFIG_NODES_SHIFT=10
CONFIG_NO_HZ_FULL=y
# CONFIG_NO_HZ_IDLE is not set
@@ -4022,7 +4054,7 @@ CONFIG_PANASONIC_LAPTOP=m
CONFIG_PANIC_TIMEOUT=0
CONFIG_PANTHERLORD_FF=y
# CONFIG_PARAVIRT_DEBUG is not set
-# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_PARAVIRT=y
# CONFIG_PARIDE is not set
@@ -4198,6 +4230,7 @@ CONFIG_PINCTRL_LEWISBURG=m
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SM8150 is not set
# CONFIG_PINCTRL_STMFX is not set
@@ -4290,7 +4323,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4398,6 +4430,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
CONFIG_RANDOMIZE_MEMORY=y
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_RANDOM_TRUST_CPU=y
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4438,13 +4471,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4484,6 +4518,7 @@ CONFIG_REGULATOR_MAX77650=m
# CONFIG_REGULATOR_PWM is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4503,7 +4538,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_RESET_TI_SYSCON is not set
@@ -4852,6 +4887,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -4882,7 +4919,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -4894,6 +4930,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
@@ -4932,6 +4969,7 @@ CONFIG_SENSORS_IBMPEX=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5065,7 +5103,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_LPSS=m
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MID=y
-CONFIG_SERIAL_8250_MOXA=m
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -5082,6 +5119,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_IFX6X60 is not set
CONFIG_SERIAL_JSM=m
@@ -5123,7 +5161,6 @@ CONFIG_SFI=y
CONFIG_SFP=m
# CONFIG_SGI_GRU_DEBUG is not set
CONFIG_SGI_GRU=m
-CONFIG_SGI_IOC4=m
CONFIG_SGI_PARTITION=y
CONFIG_SGI_XP=m
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
@@ -5246,6 +5283,7 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
@@ -5389,7 +5427,9 @@ CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP=m
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
# CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH is not set
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
@@ -5402,11 +5442,14 @@ CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5445,12 +5488,28 @@ CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
# CONFIG_SND_SOC_SOF_DEBUG is not set
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SSM2305 is not set
@@ -5477,6 +5536,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5547,7 +5607,6 @@ 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
@@ -5750,6 +5809,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
CONFIG_TEST_LIST_SORT=y
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -5818,6 +5878,13 @@ CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
@@ -5826,7 +5893,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
CONFIG_TLAN=m
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
# CONFIG_TMP006 is not set
@@ -5961,6 +6028,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -6020,9 +6088,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONN_GPIO is not set
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -6189,6 +6259,7 @@ CONFIG_USB_NET_SR9700=m
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_HCD_PCI=y
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_OTG is not set
@@ -6206,7 +6277,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597_HCD is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLES_INTEL_XHCI=m
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
@@ -6379,7 +6449,7 @@ CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_CADENCE is not set
# CONFIG_VIDEO_CAFE_CCIC is not set
CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_CROS_EC_CEC=m
+# CONFIG_VIDEO_CROS_EC_CEC is not set
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX231XX_ALSA=m
@@ -6458,6 +6528,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -6512,6 +6583,7 @@ CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_DS2490=m
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_W1_MASTER_MATROX is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -6522,6 +6594,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
@@ -6597,7 +6670,7 @@ CONFIG_WMI_BMOF=m
CONFIG_WQ_WATCHDOG=y
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
-# CONFIG_X86_5LEVEL is not set
+CONFIG_X86_5LEVEL=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_X86_ACPI_CPUFREQ_CPB=y
CONFIG_X86_ACPI_CPUFREQ=m
diff --git a/kernel-x86_64-debug-rhel.config b/kernel-x86_64-debug-rhel.config
new file mode 100644
index 000000000..c76e0e471
--- /dev/null
+++ b/kernel-x86_64-debug-rhel.config
@@ -0,0 +1 @@
+# EMPTY
diff --git a/kernel-x86_64.config b/kernel-x86_64-fedora.config
index 115df0c07..48513f24b 100644
--- a/kernel-x86_64.config
+++ b/kernel-x86_64-fedora.config
@@ -139,6 +139,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADF4350 is not set
# CONFIG_ADF4371 is not set
# CONFIG_ADFS_FS is not set
+CONFIG_ADIN_PHY=m
# CONFIG_ADIS16080 is not set
# CONFIG_ADIS16130 is not set
# CONFIG_ADIS16136 is not set
@@ -148,6 +149,7 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADIS16240 is not set
# CONFIG_ADIS16260 is not set
# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16460 is not set
# CONFIG_ADIS16480 is not set
# CONFIG_ADJD_S311 is not set
# CONFIG_ADT7316 is not set
@@ -238,12 +240,8 @@ CONFIG_AR5523=m
# CONFIG_ARCH_EBSA110 is not set
# CONFIG_ARCH_EP93XX is not set
# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_IOP13XX is not set
# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_MEMORY_PROBE is not set
CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_OMAP1 is not set
@@ -251,7 +249,6 @@ CONFIG_ARCH_MULTIPLATFORM=y
# CONFIG_ARCH_RPC is not set
# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_W90X900 is not set
# CONFIG_ARCNET is not set
CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
@@ -300,6 +297,7 @@ CONFIG_ATH9K_DEBUGFS=y
CONFIG_ATH9K_HTC=m
# CONFIG_ATH9K_HWRNG is not set
CONFIG_ATH9K=m
+CONFIG_ATH9K_PCI_NO_EEPROM=m
CONFIG_ATH9K_PCI=y
# CONFIG_ATH9K_STATION_STATISTICS is not set
# CONFIG_ATH9K_WOW is not set
@@ -457,6 +455,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_FLAT is not set
CONFIG_BINFMT_MISC=m
CONFIG_BINFMT_SCRIPT=y
+CONFIG_BLK_CGROUP_IOCOST=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_BLK_CGROUP=y
# CONFIG_BLK_CMDLINE_PARSER is not set
@@ -654,16 +653,21 @@ CONFIG_CAN_EMS_PCI=m
# CONFIG_CAN_EMS_PCMCIA is not set
CONFIG_CAN_EMS_USB=m
CONFIG_CAN_ESD_USB2=m
+# CONFIG_CAN_F81601 is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
CONFIG_CAN_GS_USB=m
CONFIG_CAN_GW=m
CONFIG_CAN_HI311X=m
CONFIG_CAN_IFI_CANFD=m
+# CONFIG_CAN_J1939 is not set
+# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+# CONFIG_CAN_M_CAN_PLATFORM is not set
+# CONFIG_CAN_M_CAN_TCAN4X5X is not set
CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
@@ -862,6 +866,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ=y
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+CONFIG_CPU_IDLE_GOV_HALTPOLL=y
# CONFIG_CPU_IDLE_GOV_LADDER is not set
# CONFIG_CPU_IDLE_GOV_TEO is not set
CONFIG_CPU_IDLE=y
@@ -872,7 +877,6 @@ CONFIG_CPUSETS=y
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_CRASH_DUMP=y
-CONFIG_CRASH=m
CONFIG_CRC16=y
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC32_SARWATE is not set
@@ -888,14 +892,13 @@ CONFIG_CRC_CCITT=y
CONFIG_CRC_ITU_T=m
CONFIG_CRC_PMIC_OPREGION=y
CONFIG_CRC_T10DIF=y
+CONFIG_CROS_EC_CHARDEV=m
# CONFIG_CROS_EC_DEBUGFS is not set
-CONFIG_CROS_EC_I2C=m
CONFIG_CROS_EC_ISHTP=m
+# CONFIG_CROS_EC is not set
CONFIG_CROS_EC_LIGHTBAR=m
CONFIG_CROS_EC_LPC=m
-CONFIG_CROS_EC_PROTO=y
CONFIG_CROS_EC_RPMSG=m
-CONFIG_CROS_EC_SPI=m
CONFIG_CROS_EC_SYSFS=m
CONFIG_CROS_KBD_LED_BACKLIGHT=m
CONFIG_CROSS_MEMORY_ATTACH=y
@@ -903,14 +906,9 @@ CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CRYPTO_842=y
CONFIG_CRYPTO_ADIANTUM=m
CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
-CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2=m
-CONFIG_CRYPTO_AEGIS128L=m
CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS256_AESNI_SSE2=m
-CONFIG_CRYPTO_AEGIS256=m
CONFIG_CRYPTO_AES_NI_INTEL=y
CONFIG_CRYPTO_AES_TI=m
-CONFIG_CRYPTO_AES_X86_64=y
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_ANSI_CPRNG=m
CONFIG_CRYPTO_ANUBIS=m
@@ -950,6 +948,7 @@ CONFIG_CRYPTO_DES=m
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
+# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set
CONFIG_CRYPTO_DEV_CCP=y
# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
@@ -967,6 +966,7 @@ CONFIG_CRYPTO_DEV_QAT_C62X=m
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
CONFIG_CRYPTO_DEV_SP_CCP=y
CONFIG_CRYPTO_DEV_SP_PSP=y
CONFIG_CRYPTO_DEV_VIRTIO=m
@@ -978,6 +978,7 @@ CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECHAINIV=m
CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_ESSIV=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_FIPS=y
CONFIG_CRYPTO_GCM=y
@@ -998,11 +999,6 @@ CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_MORUS1280_AVX2=m
-CONFIG_CRYPTO_MORUS1280=m
-CONFIG_CRYPTO_MORUS1280_SSE2=m
-CONFIG_CRYPTO_MORUS640=m
-CONFIG_CRYPTO_MORUS640_SSE2=m
CONFIG_CRYPTO_NHPOLY1305_AVX2=m
CONFIG_CRYPTO_NHPOLY1305_SSE2=m
CONFIG_CRYPTO_NULL=y
@@ -1029,8 +1025,8 @@ CONFIG_CRYPTO_SHA1=y
CONFIG_CRYPTO_SHA256_SSSE3=m
CONFIG_CRYPTO_SHA256=y
CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_SHA512=m
CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_SHA512=y
CONFIG_CRYPTO_SIMD=y
CONFIG_CRYPTO_SM3=m
CONFIG_CRYPTO_SM4=m
@@ -1085,11 +1081,10 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_GPIO is not set
CONFIG_DEBUG_HIGHMEM=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
-# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_DEBUG_INFO_BTF=y
# CONFIG_DEBUG_INFO_DWARF4 is not set
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not set
-CONFIG_DEBUG_INFO_VTA=y
CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_KERNEL_DC is not set
CONFIG_DEBUG_KERNEL=y
@@ -1179,6 +1174,7 @@ CONFIG_DLM=m
CONFIG_DM9102=m
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_DMA_API_DEBUG_SG is not set
+# CONFIG_DMABUF_SELFTESTS is not set
# CONFIG_DMA_CMA is not set
# CONFIG_DMADEVICES_DEBUG is not set
CONFIG_DMADEVICES=y
@@ -1190,6 +1186,7 @@ CONFIG_DMARD10=m
# CONFIG_DMATEST is not set
CONFIG_DM_CACHE=m
CONFIG_DM_CACHE_SMQ=m
+# CONFIG_DM_CLONE is not set
CONFIG_DM_CRYPT=m
CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING=y
# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
@@ -1216,6 +1213,7 @@ CONFIG_DM_UEVENT=y
CONFIG_DM_UNSTRIPED=m
CONFIG_DM_VERITY_FEC=y
CONFIG_DM_VERITY=m
+# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set
CONFIG_DM_WRITECACHE=m
CONFIG_DM_ZERO=y
CONFIG_DM_ZONED=m
@@ -1235,6 +1233,7 @@ CONFIG_DRAGONRISE_FF=y
CONFIG_DRM_AMD_ACP=y
CONFIG_DRM_AMD_DC_DCN1_0=y
CONFIG_DRM_AMD_DC_DCN2_0=y
+CONFIG_DRM_AMD_DC_DCN2_1=y
CONFIG_DRM_AMD_DC_DSC_SUPPORT=y
CONFIG_DRM_AMD_DC=y
CONFIG_DRM_AMDGPU_CIK=y
@@ -1257,6 +1256,7 @@ CONFIG_DRM_DP_CEC=y
# CONFIG_DRM_ETNAVIV is not set
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_GM12U320=m
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1295,13 +1295,17 @@ CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
+# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
+# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set
# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set
CONFIG_DRM_PANEL_ORISETECH_OTM8009A=m
# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set
+# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
CONFIG_DRM_PANEL_ROCKTECH_JH057N00900=m
CONFIG_DRM_PANEL_RONBO_RB070D30=m
@@ -1313,10 +1317,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set
+# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set
+# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_DRM_PANEL_TPO_TPG110 is not set
# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set
CONFIG_DRM_PANEL=y
@@ -1331,9 +1339,8 @@ CONFIG_DRM_RADEON_USERPTR=y
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SII9234=m
# CONFIG_DRM_SIL_SII8620 is not set
-# CONFIG_DRM_TDFX=n is not set
+# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_THINE_THC63LVD1024 is not set
-# CONFIG_DRM_TINYDRM is not set
CONFIG_DRM_TI_SN65DSI86=m
CONFIG_DRM_TI_TFP410=m
CONFIG_DRM_TOSHIBA_TC358764=m
@@ -1496,9 +1503,10 @@ CONFIG_EEPROM_MAX6875=m
CONFIG_EFI_MIXED=y
CONFIG_EFI_PARTITION=y
# CONFIG_EFI_PGT_DUMP is not set
+CONFIG_EFI_RCI2_TABLE=y
CONFIG_EFI_RUNTIME_MAP=y
CONFIG_EFI_STUB=y
-# CONFIG_EFI_TEST is not set
+CONFIG_EFI_TEST=m
CONFIG_EFIVAR_FS=y
# CONFIG_EFI_VARS is not set
# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set
@@ -1523,6 +1531,7 @@ CONFIG_ETHERNET=y
CONFIG_ETHOC=m
# CONFIG_EUROTECH_WDT is not set
# CONFIG_EVM is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_EXPERT is not set
# CONFIG_EXPOLINE_AUTO is not set
CONFIG_EXPOLINE_FULL=y
@@ -1686,10 +1695,14 @@ CONFIG_FSI_MASTER_HUB=m
# CONFIG_FSI_SBEFIFO is not set
CONFIG_FSI_SCOM=m
# CONFIG_FSL_EDMA is not set
+# CONFIG_FSL_ENETC_MDIO is not set
# CONFIG_FSL_PQ_MDIO is not set
# CONFIG_FSL_QDMA is not set
CONFIG_FS_MBCACHE=y
CONFIG_FSNOTIFY=y
+# CONFIG_FS_VERITY_BUILTIN_SIGNATURES is not set
+# CONFIG_FS_VERITY_DEBUG is not set
+CONFIG_FS_VERITY=y
# CONFIG_FTL is not set
CONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not set
@@ -1820,6 +1833,7 @@ CONFIG_GTP=m
# CONFIG_GUP_BENCHMARK is not set
CONFIG_GVE=m
# CONFIG_HABANA_AI is not set
+CONFIG_HALTPOLL_CPUIDLE=y
CONFIG_HAMACHI=m
CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
@@ -1832,8 +1846,8 @@ CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
-# CONFIG_HEADERS_INSTALL is not set
-# CONFIG_HEADER_TEST is not set
+CONFIG_HEADERS_INSTALL=y
+CONFIG_HEADER_TEST=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
CONFIG_HERMES=m
CONFIG_HERMES_PRISM=y
@@ -1861,6 +1875,7 @@ CONFIG_HID_CMEDIA=m
CONFIG_HID_CORSAIR=m
CONFIG_HID_COUGAR=m
CONFIG_HID_CP2112=m
+# CONFIG_HID_CREATIVE_SB0540 is not set
CONFIG_HID_CYPRESS=m
CONFIG_HID_DRAGONRISE=m
CONFIG_HID_ELAN=m
@@ -2038,7 +2053,6 @@ CONFIG_I2C_AMD756_S4882=m
CONFIG_I2C_AMD8111=m
CONFIG_I2C_AMD_MP2=m
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
-# CONFIG_I2C_BCM2048 is not set
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
@@ -2186,11 +2200,13 @@ CONFIG_IIO_TRIGGER=y
CONFIG_IKHEADERS=m
CONFIG_IMA_APPRAISE_BOOTPARAM=y
# CONFIG_IMA_APPRAISE_BUILD_POLICY is not set
+CONFIG_IMA_APPRAISE_MODSIG=y
CONFIG_IMA_APPRAISE=y
# CONFIG_IMA_ARCH_POLICY is not set
# CONFIG_IMA_BLACKLIST_KEYRING is not set
# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
CONFIG_IMA_DEFAULT_HASH_SHA256=y
+# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
CONFIG_IMA_KEXEC=y
CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
# CONFIG_IMA_LOAD_X509 is not set
@@ -2302,7 +2318,7 @@ CONFIG_INPUT_PM8XXX_VIBRATOR=m
CONFIG_INPUT_PMIC8XXX_PWRKEY=m
CONFIG_INPUT_POLLDEV=m
CONFIG_INPUT_POWERMATE=m
-# CONFIG_INPUT_PWM_BEEPER is not set
+CONFIG_INPUT_PWM_BEEPER=m
# CONFIG_INPUT_PWM_VIBRA is not set
# CONFIG_INPUT_REGULATOR_HAPTIC is not set
CONFIG_INPUT_RK805_PWRKEY=m
@@ -2386,6 +2402,7 @@ CONFIG_IO_DELAY_0X80=y
# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IONIC=m
CONFIG_IOSCHED_BFQ=y
# CONFIG_IOSF_MBI_DEBUG is not set
CONFIG_IOSF_MBI=y
@@ -2634,6 +2651,7 @@ CONFIG_JOYSTICK_ANALOG=m
# CONFIG_JOYSTICK_AS5011 is not set
CONFIG_JOYSTICK_COBRA=m
CONFIG_JOYSTICK_DB9=m
+# CONFIG_JOYSTICK_FSIA6B is not set
CONFIG_JOYSTICK_GAMECON=m
CONFIG_JOYSTICK_GF2K=m
CONFIG_JOYSTICK_GRIP=m
@@ -2671,6 +2689,7 @@ CONFIG_KARMA_PARTITION=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
# CONFIG_KERNEL_BZIP2 is not set
CONFIG_KERNEL_GZIP=y
+CONFIG_KERNEL_HEADER_TEST=y
# CONFIG_KERNEL_LZ4 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not set
@@ -2863,7 +2882,7 @@ CONFIG_LIBNVDIMM=m
# CONFIG_LIDAR_LITE_V2 is not set
CONFIG_LIQUIDIO_VF=m
CONFIG_LIRC=y
-# CONFIG_LIVEPATCH is not set
+CONFIG_LIVEPATCH=y
# CONFIG_LKDTM is not set
# CONFIG_LLC2 is not set
CONFIG_LLC=m
@@ -2872,8 +2891,9 @@ CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT=y
-# CONFIG_LOCK_DOWN_KERNEL_FORCE is not set
-CONFIG_LOCK_DOWN_KERNEL=y
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY is not set
+# CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY is not set
+CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE=y
CONFIG_LOCKD_V4=y
# CONFIG_LOCK_EVENT_COUNTS is not set
# CONFIG_LOCK_STAT is not set
@@ -2958,6 +2978,7 @@ CONFIG_MAX31856=m
# CONFIG_MAX44000 is not set
CONFIG_MAX44009=m
# CONFIG_MAX517 is not set
+# CONFIG_MAX5432 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
@@ -2965,7 +2986,7 @@ CONFIG_MAX44009=m
# CONFIG_MAX9611 is not set
CONFIG_MAXIM_THERMOCOUPLE=m
CONFIG_MAX_RAW_DEVS=8192
-# CONFIG_MAXSMP is not set
+CONFIG_MAXSMP=y
CONFIG_MB1232=m
# CONFIG_MC3230 is not set
# CONFIG_MCB is not set
@@ -3065,8 +3086,8 @@ 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=m
+CONFIG_MFD_CROS_EC_DEV=m
+# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
# CONFIG_MFD_DA9052_SPI is not set
@@ -3184,6 +3205,8 @@ CONFIG_MLX5_ESWITCH=y
# CONFIG_MLX5_FPGA is not set
CONFIG_MLX5_INFINIBAND=m
CONFIG_MLX5_MPFS=y
+CONFIG_MLX5_SW_STEERING=y
+# CONFIG_MLX5_TLS is not set
CONFIG_MLX90614=m
CONFIG_MLX90632=m
CONFIG_MLXFW=m
@@ -3226,6 +3249,7 @@ CONFIG_MMC_SDHCI_CADENCE=m
# CONFIG_MMC_SDHCI_F_SDH30 is not set
CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
# CONFIG_MMC_SDHCI_OF_AT91 is not set
# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set
# CONFIG_MMC_SDHCI_OF_ESDHC is not set
@@ -3246,6 +3270,7 @@ CONFIG_MMC_WBSD=m
# CONFIG_MMIOTRACE_TEST is not set
CONFIG_MMIOTRACE=y
CONFIG_MMU=y
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
# CONFIG_MODULE_COMPRESS is not set
# CONFIG_MODULE_FORCE_LOAD is not set
# CONFIG_MODULE_FORCE_UNLOAD is not set
@@ -3281,6 +3306,7 @@ CONFIG_MOUSE_SYNAPTICS_USB=m
CONFIG_MOUSE_VSXXXAA=m
# CONFIG_MOXA_INTELLIO is not set
# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MOXTET is not set
CONFIG_MPILIB=y
CONFIG_MPL115_I2C=m
# CONFIG_MPL115_SPI is not set
@@ -3342,6 +3368,7 @@ CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_NAND_HISI504 is not set
# CONFIG_MTD_NAND_MESON is not set
# CONFIG_MTD_NAND_MXC is not set
+# CONFIG_MTD_NAND_MXIC is not set
# CONFIG_MTD_NAND_NANDSIM is not set
# CONFIG_MTD_NAND_OMAP2 is not set
# CONFIG_MTD_NAND_PLATFORM is not set
@@ -3446,12 +3473,14 @@ CONFIG_NETCONSOLE=m
CONFIG_NET_CORE=y
CONFIG_NETDEVICES=y
CONFIG_NET_DEVLINK=y
-# CONFIG_NETDEVSIM is not set
+CONFIG_NETDEVSIM=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
# CONFIG_NET_DSA_LANTIQ_GSWIP is not set
CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set
+# CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C is not set
CONFIG_NET_DSA_MICROCHIP_KSZ9477=m
CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI=m
CONFIG_NET_DSA_MT7530=m
@@ -3625,6 +3654,7 @@ CONFIG_NET_SCH_TAPRIO=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SWITCHDEV=y
+CONFIG_NET_TC_SKB_EXT=y
CONFIG_NET_TEAM=m
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
CONFIG_NET_TEAM_MODE_BROADCAST=m
@@ -3676,6 +3706,7 @@ CONFIG_NET_VENDOR_NETRONOME=y
CONFIG_NET_VENDOR_NVIDIA=y
CONFIG_NET_VENDOR_OKI=y
CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_NET_VENDOR_QUALCOMM is not set
CONFIG_NET_VENDOR_RDC=y
@@ -3844,10 +3875,10 @@ CONFIG_NFT_QUOTA=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_REJECT=m
-# CONFIG_NFT_SOCKET is not set
+CONFIG_NFT_SOCKET=m
CONFIG_NFT_SYNPROXY=m
-# CONFIG_NFT_TPROXY is not set
-# CONFIG_NFT_TUNNEL is not set
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_XFRM=m
CONFIG_N_GSM=m
CONFIG_N_HDLC=m
@@ -3908,6 +3939,7 @@ CONFIG_NLS_MAC_ROMAN=m
CONFIG_NLS_MAC_TURKISH=m
CONFIG_NLS_UTF8=m
CONFIG_NLS=y
+# CONFIG_NOA1305 is not set
CONFIG_NODES_SHIFT=10
CONFIG_NO_HZ_FULL=y
# CONFIG_NO_HZ_IDLE is not set
@@ -3920,7 +3952,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOUVEAU_DEBUG_MMU is not set
# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set
CONFIG_NOZOMI=m
-CONFIG_NR_CPUS=1024
+CONFIG_NR_CPUS=8192
CONFIG_NS83820=m
CONFIG_NTB_AMD=m
CONFIG_NTB_IDT=m
@@ -4003,7 +4035,7 @@ CONFIG_PANASONIC_LAPTOP=m
CONFIG_PANIC_TIMEOUT=0
CONFIG_PANTHERLORD_FF=y
# CONFIG_PARAVIRT_DEBUG is not set
-# CONFIG_PARAVIRT_SPINLOCKS is not set
+CONFIG_PARAVIRT_SPINLOCKS=y
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_PARAVIRT=y
# CONFIG_PARIDE is not set
@@ -4179,6 +4211,7 @@ CONFIG_PINCTRL_LEWISBURG=m
# CONFIG_PINCTRL_OCELOT is not set
# CONFIG_PINCTRL_QCS404 is not set
CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_SC7180 is not set
# CONFIG_PINCTRL_SDM660 is not set
# CONFIG_PINCTRL_SM8150 is not set
# CONFIG_PINCTRL_STMFX is not set
@@ -4271,7 +4304,6 @@ CONFIG_PPTP=m
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
# CONFIG_PREEMPTIRQ_EVENTS is not set
# CONFIG_PREEMPT is not set
-# CONFIG_PREEMPT_LL is not set
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
@@ -4378,6 +4410,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
CONFIG_RANDOMIZE_MEMORY=y
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
CONFIG_RANDOM_TRUST_CPU=y
CONFIG_RAPIDIO_CHMAN=m
CONFIG_RAPIDIO_CPS_GEN2=m
@@ -4418,13 +4451,14 @@ CONFIG_RD_LZ4=y
CONFIG_RD_LZMA=y
CONFIG_RD_LZO=y
CONFIG_RDMA_RXE=m
-# CONFIG_RDMA_SIW is not set
+CONFIG_RDMA_SIW=m
# CONFIG_RDS_DEBUG is not set
CONFIG_RDS=m
CONFIG_RDS_RDMA=m
CONFIG_RDS_TCP=m
CONFIG_RD_XZ=y
# CONFIG_READABLE_ASM is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=y
# CONFIG_REED_SOLOMON_TEST is not set
@@ -4464,6 +4498,7 @@ CONFIG_REGULATOR_MAX77650=m
# CONFIG_REGULATOR_PWM is not set
# CONFIG_REGULATOR_SLG51000 is not set
# CONFIG_REGULATOR_SY8106A is not set
+# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_TPS51632 is not set
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
@@ -4483,7 +4518,7 @@ CONFIG_REISERFS_PROC_INFO=y
CONFIG_RELAY=y
# CONFIG_RELOCATABLE_TEST is not set
CONFIG_RELOCATABLE=y
-CONFIG_REMOTEPROC=m
+CONFIG_REMOTEPROC=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_RESET_ATTACK_MITIGATION is not set
# CONFIG_RESET_TI_SYSCON is not set
@@ -4832,6 +4867,8 @@ CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_INFINIBAND=y
# CONFIG_SECURITY_LOADPIN is not set
+CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
+CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_NETWORK_XFRM=y
CONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_PATH is not set
@@ -4862,7 +4899,6 @@ CONFIG_SENSORS_ADM1029=m
CONFIG_SENSORS_ADM1031=m
CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_ADM9240=m
-# CONFIG_SENSORS_ADS1015 is not set
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_ADT7310=m
@@ -4874,6 +4910,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
+# CONFIG_SENSORS_AS370 is not set
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
CONFIG_SENSORS_ASPEED=m
@@ -4912,6 +4949,7 @@ CONFIG_SENSORS_IBMPEX=m
CONFIG_SENSORS_INA209=m
CONFIG_SENSORS_INA2XX=m
CONFIG_SENSORS_INA3221=m
+# CONFIG_SENSORS_INSPUR_IPSPS is not set
# CONFIG_SENSORS_IR35221 is not set
# CONFIG_SENSORS_IR38064 is not set
# CONFIG_SENSORS_IRPS5401 is not set
@@ -5045,7 +5083,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_LPSS=m
CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_MID=y
-CONFIG_SERIAL_8250_MOXA=m
CONFIG_SERIAL_8250_NR_UARTS=32
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_RSA=y
@@ -5062,6 +5099,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_DEV_BUS=y
CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_IFX6X60 is not set
CONFIG_SERIAL_JSM=m
@@ -5103,7 +5141,6 @@ CONFIG_SFI=y
CONFIG_SFP=m
# CONFIG_SGI_GRU_DEBUG is not set
CONFIG_SGI_GRU=m
-CONFIG_SGI_IOC4=m
CONFIG_SGI_PARTITION=y
CONFIG_SGI_XP=m
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
@@ -5226,6 +5263,7 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
CONFIG_SND_HDA_INPUT_BEEP=y
+# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=1
@@ -5368,7 +5406,9 @@ CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP=m
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
# CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH is not set
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
@@ -5381,11 +5421,14 @@ CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5424,12 +5467,28 @@ CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
# CONFIG_SND_SOC_SOF_DEBUG is not set
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
+# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SSM2305 is not set
@@ -5456,6 +5515,7 @@ CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_TSCS42XX=m
# CONFIG_SND_SOC_TSCS454 is not set
+# CONFIG_SND_SOC_UDA1334 is not set
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
CONFIG_SND_SOC_WM8524=m
@@ -5526,7 +5586,6 @@ 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
@@ -5729,6 +5788,7 @@ CONFIG_TERANETICS_PHY=m
# CONFIG_TEST_KMOD is not set
CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_LIVEPATCH is not set
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_MEMINIT is not set
@@ -5797,6 +5857,13 @@ CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
+# CONFIG_TINYDRM_HX8357D is not set
+# CONFIG_TINYDRM_ILI9225 is not set
+# CONFIG_TINYDRM_ILI9341 is not set
+# CONFIG_TINYDRM_MI0283QT is not set
+# CONFIG_TINYDRM_REPAPER is not set
+# CONFIG_TINYDRM_ST7586 is not set
+# CONFIG_TINYDRM_ST7735R is not set
CONFIG_TIPC_DIAG=m
CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
@@ -5805,7 +5872,7 @@ CONFIG_TI_SCI_PROTOCOL=m
# CONFIG_TI_ST is not set
# CONFIG_TI_TLC4541 is not set
CONFIG_TLAN=m
-# CONFIG_TLS_DEVICE is not set
+CONFIG_TLS_DEVICE=y
CONFIG_TLS=m
# CONFIG_TMD_HERMES is not set
# CONFIG_TMP006 is not set
@@ -5940,6 +6007,7 @@ CONFIG_TYPEC_TPS6598X=m
CONFIG_TYPEC_UCSI=m
CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
+CONFIG_UAPI_HEADER_TEST=y
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_AUTHENTICATION=y
@@ -5999,9 +6067,11 @@ CONFIG_USB_BELKIN=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_CATC=m
# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_CHAOSKEY=m
# CONFIG_USB_CHIPIDEA is not set
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+# CONFIG_USB_CONN_GPIO is not set
CONFIG_USB_CXACRU=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
@@ -6168,6 +6238,7 @@ CONFIG_USB_NET_SR9700=m
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_OHCI_HCD_PCI=y
# CONFIG_USB_OHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OHCI_HCD_SSB is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_FSM is not set
# CONFIG_USB_OTG is not set
@@ -6185,7 +6256,6 @@ CONFIG_USB_PWC=m
# CONFIG_USB_R8A66597_HCD is not set
CONFIG_USB_RAINSHADOW_CEC=m
# CONFIG_USB_RAREMONO is not set
-# CONFIG_USB_RIO500 is not set
CONFIG_USB_ROLES_INTEL_XHCI=m
CONFIG_USB_ROLE_SWITCH=m
CONFIG_USB_RTL8150=m
@@ -6358,7 +6428,7 @@ CONFIG_VIDEO_BT848=m
# CONFIG_VIDEO_CADENCE is not set
# CONFIG_VIDEO_CAFE_CCIC is not set
CONFIG_VIDEO_CPIA2=m
-CONFIG_VIDEO_CROS_EC_CEC=m
+# CONFIG_VIDEO_CROS_EC_CEC is not set
CONFIG_VIDEO_CX18_ALSA=m
CONFIG_VIDEO_CX18=m
CONFIG_VIDEO_CX231XX_ALSA=m
@@ -6437,6 +6507,7 @@ CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_BLK=m
# CONFIG_VIRTIO_BLK_SCSI is not set
CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_FS=m
CONFIG_VIRTIO_INPUT=m
# CONFIG_VIRTIO_IOMMU is not set
CONFIG_VIRTIO_MENU=y
@@ -6491,6 +6562,7 @@ CONFIG_W1_MASTER_DS2482=m
CONFIG_W1_MASTER_DS2490=m
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_W1_MASTER_MATROX is not set
+# CONFIG_W1_MASTER_SGI is not set
CONFIG_W1_SLAVE_DS2405=m
CONFIG_W1_SLAVE_DS2406=m
CONFIG_W1_SLAVE_DS2408=m
@@ -6501,6 +6573,7 @@ CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
CONFIG_W1_SLAVE_DS2438=m
+# CONFIG_W1_SLAVE_DS250X is not set
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
CONFIG_W1_SLAVE_DS2805=m
@@ -6576,7 +6649,7 @@ CONFIG_WMI_BMOF=m
# CONFIG_WQ_WATCHDOG is not set
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
-# CONFIG_X86_5LEVEL is not set
+CONFIG_X86_5LEVEL=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_X86_ACPI_CPUFREQ_CPB=y
CONFIG_X86_ACPI_CPUFREQ=m
diff --git a/kernel-x86_64-rhel.config b/kernel-x86_64-rhel.config
new file mode 100644
index 000000000..c76e0e471
--- /dev/null
+++ b/kernel-x86_64-rhel.config
@@ -0,0 +1 @@
+# EMPTY
diff --git a/kernel.spec b/kernel.spec
index 285b7a732..31664c4de 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -1,33 +1,66 @@
# We have to override the new %%install behavior because, well... the kernel is special.
%global __spec_install_pre %{___build_pre}
+# At the time of this writing (2019-03), RHEL8 packages use w2.xzdio
+# compression for rpms (xz, level 2).
+# Kernel has several large (hundreds of mbytes) rpms, they take ~5 mins
+# to compress by single-threaded xz. Switch to threaded compression,
+# and from level 2 to 3 to keep compressed sizes close to "w2" results.
+#
+# NB: if default compression in /usr/lib/rpm/redhat/macros ever changes,
+# this one might need tweaking (e.g. if default changes to w3.xzdio,
+# change below to w4T.xzdio):
+#
+# This is disabled on i686 as it triggers oom errors
+
+%ifnarch i686
+%define _binary_payload w3T.xzdio
+%endif
+
Summary: The Linux kernel
-# For a stable, released kernel, released_kernel should be 1. For rawhide
-# and/or a kernel built from an rc or git snapshot, released_kernel should
-# be 0.
+# For a kernel released for public testing, released_kernel should be 1.
+# For internal testing builds during development, it should be 0.
+# For rawhide and/or a kernel built from an rc or git snapshot,
+# released_kernel should be 0.
+# For a stable, released kernel, released_kernel should be 1.
%global released_kernel 1
-# Sign modules on x86. Make sure the config files match this setting if more
-# architectures are added.
-%ifarch %{ix86} x86_64
+%if 0%{?fedora}
+%define secure_boot_arch x86_64
+%else
+%define secure_boot_arch x86_64 aarch64 s390x ppc64le
+%endif
+
+# Signing for secure boot authentication
+%ifarch %{secure_boot_arch}
%global signkernel 1
-%global signmodules 1
-%global zipmodules 1
%else
%global signkernel 0
+%endif
+
+# Sign modules on all arches
%global signmodules 1
+
+# Compress modules only for architectures that build modules
+%ifarch noarch
+%global zipmodules 0
+%else
%global zipmodules 1
%endif
%if %{zipmodules}
%global zipsed -e 's/\.ko$/\.ko.xz/'
-# for parallel xz processes, replace with 1 to go back to single process
-%global zcpu `nproc --all`
%endif
# define buildid .local
+%if 0%{?fedora}
+%define primary_target fedora
+%else
+%define primary_target rhel
+%endif
+
# baserelease defines which build revision of this kernel version we're
# building. We used to call this fedora_build, but the magical name
# baserelease is matched by the rpmdev-bumpspec tool, which you should use.
@@ -50,13 +83,13 @@ Summary: The Linux kernel
# 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 3
+%define base_sublevel 4
## If this is a released kernel ##
%if 0%{?released_kernel}
# Do we have a -stable update to apply?
-%define stable_update 18
+%define stable_update 5
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev %{stable_update}
@@ -69,7 +102,7 @@ Summary: The Linux kernel
# The next upstream release sublevel (base_sublevel+1)
%define upstream_sublevel %(echo $((%{base_sublevel} + 1)))
# The rc snapshot level
-%global rcrev 1
+%global rcrev 0
# The git snapshot level
%define gitrev 0
# Set rpm version accordingly
@@ -92,6 +125,8 @@ Summary: The Linux kernel
%define with_pae %{?_without_pae: 0} %{?!_without_pae: 1}
# kernel-debug
%define with_debug %{?_without_debug: 0} %{?!_without_debug: 1}
+# kernel-doc
+%define with_doc %{?_without_doc: 0} %{?!_without_doc: 1}
# kernel-headers
%define with_headers %{?_without_headers: 0} %{?!_without_headers: 1}
%define with_cross_headers %{?_without_cross_headers: 0} %{?!_without_cross_headers: 1}
@@ -99,6 +134,12 @@ Summary: The Linux kernel
%define with_debuginfo %{?_without_debuginfo: 0} %{?!_without_debuginfo: 1}
# Want to build a the vsdo directories installed
%define with_vdso_install %{?_without_vdso_install: 0} %{?!_without_vdso_install: 1}
+# kernel-zfcpdump (s390 specific kernel for zfcpdump)
+%define with_zfcpdump %{?_without_zfcpdump: 0} %{?!_without_zfcpdump: 1}
+# kernel-abi-whitelists
+%define with_kernel_abi_whitelists %{?_without_kernel_abi_whitelists: 0} %{?!_without_kernel_abi_whitelists: 1}
+# internal samples and selftests
+%define with_selftests %{?_without_selftests: 0} %{?!_without_selftests: 1}
#
# Additional options for user-friendly one-off kernel building:
#
@@ -108,6 +149,17 @@ Summary: The Linux kernel
%define with_paeonly %{?_with_paeonly: 1} %{?!_with_paeonly: 0}
# Only build the debug kernel (--with dbgonly):
%define with_dbgonly %{?_with_dbgonly: 1} %{?!_with_dbgonly: 0}
+# Control whether we perform a compat. check against published ABI.
+%define with_kabichk %{?_without_kabichk: 0} %{?!_without_kabichk: 1}
+# Temporarily disable kabi checks until RC.
+%define with_kabichk 0
+# Control whether we perform a compat. check against DUP ABI.
+%define with_kabidupchk %{?_with_kabidupchk: 1} %{?!_with_kabidupchk: 0}
+#
+# Control whether to run an extensive DWARF based kABI check.
+# Note that this option needs to have baseline setup in SOURCE300.
+%define with_kabidwchk %{?_without_kabidwchk: 0} %{?!_without_kabidwchk: 1}
+%define with_kabidw_base %{?_with_kabidw_base: 1} %{?!_with_kabidw_base: 0}
#
# should we do C=1 builds with sparse
%define with_sparse %{?_with_sparse: 1} %{?!_with_sparse: 0}
@@ -121,15 +173,40 @@ Summary: The Linux kernel
# verbose build, i.e. no silent rules and V=1
%define with_verbose %{?_with_verbose: 1} %{?!_with_verbose: 0}
+#
+# check for mismatched config options
+%define with_configchecks %{?_without_configchecks: 0} %{?!_without_configchecks: 1}
+
+#
+# gcov support
+%define with_gcov %{?_with_gcov: 1} %{?!_with_gcov: 0}
+
+#
+# ipa_clone support
+%define with_ipaclones %{?_without_ipaclones: 0} %{?!_without_ipaclones: 1}
+
+# Want to build a vanilla kernel build without any non-upstream patches?
+%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
+
# Set debugbuildsenabled to 1 for production (build separate debug kernels)
# and 0 for rawhide (all kernels are debug kernels).
# See also 'make debug' and 'make release'.
%define debugbuildsenabled 1
-# Kernel headers are being split out into a separate package
%if 0%{?fedora}
+# Kernel headers are being split out into a separate package
%define with_headers 0
%define with_cross_headers 0
+# no selftests for now
+%define with_selftests 0
+# no ipa_clone for now
+%define with_ipaclones 0
+# no whitelist
+%define with_kernel_abi_whitelists 0
+# Fedora builds these separately
+%define with_perf 0
+%define with_tools 0
+%define with_bpftool 0
%endif
%if %{with_verbose}
@@ -138,9 +215,6 @@ Summary: The Linux kernel
%define make_opts -s
%endif
-# Want to build a vanilla kernel build without any non-upstream patches?
-%define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0}
-
# pkg_release is what we'll fill in for the rpm Release: field
%if 0%{?released_kernel}
@@ -166,10 +240,35 @@ Summary: The Linux kernel
# The kernel tarball/base version
%define kversion 5.%{base_sublevel}
+
+# turn off debug kernel and kabichk for gcov builds
+%if %{with_gcov}
+%define with_debug 0
+%define with_kabichk 0
+%define with_kabidupchk 0
+%define with_kabidwchk 0
+%endif
+
+# turn off kABI DWARF-based check if we're generating the base dataset
+%if %{with_kabidw_base}
+%define with_kabidwchk 0
+%endif
+
+# kpatch_kcflags are extra compiler flags applied to base kernel
+# -fdump-ipa-clones is enabled only for base kernels on selected arches
+%if %{with_ipaclones}
+%ifarch x86_64 ppc64le
+%define kpatch_kcflags -fdump-ipa-clones
+%else
+%define with_ipaclones 0
+%endif
+%endif
+
%define make_target bzImage
%define image_install_path boot
%define KVERREL %{version}-%{release}.%{_target_cpu}
+%define KVERREL_RE %(echo %KVERREL | sed 's/+/[+]/g')
%define hdrarch %_target_cpu
%define asmarch %_target_cpu
@@ -223,24 +322,43 @@ Summary: The Linux kernel
%define with_pae 0
%endif
-%define all_x86 i386 i686
+# turn off kABI DUP check and DWARF-based check if kABI check is disabled
+%if !%{with_kabichk}
+%define with_kabidupchk 0
+%define with_kabidwchk 0
+%endif
%if %{with_vdso_install}
%define use_vdso 1
%endif
+
+%ifnarch noarch
+%define with_kernel_abi_whitelists 0
+%endif
+
# Overrides for generic default options
+# only package docs noarch
+%ifnarch noarch
+%define with_doc 0
+%define doc_build_fail true
+%endif
+
+%if 0%{?fedora}
# don't do debug builds on anything but i686 and x86_64
%ifnarch i686 x86_64
%define with_debug 0
%endif
+%endif
# don't build noarch kernels or headers (duh)
%ifarch noarch
%define with_up 0
%define with_headers 0
%define with_cross_headers 0
+%define with_selftests 0
+%define with_debug 0
%define all_arch_configs kernel-%{version}-*.config
%endif
@@ -249,9 +367,19 @@ Summary: The Linux kernel
%define with_sparse 0
%endif
+# zfcpdump mechanism is s390 only
+%ifnarch s390x
+%define with_zfcpdump 0
+%endif
+
+%if 0%{?fedora}
+# This is not for Fedora
+%define with_zfcpdump 0
+%endif
+
# Per-arch tweaks
-%ifarch %{all_x86}
+%ifarch i686
%define asmarch x86
%define hdrarch i386
%define all_arch_configs kernel-%{version}-i?86*.config
@@ -270,9 +398,8 @@ Summary: The Linux kernel
%define make_target vmlinux
%define kernel_image vmlinux
%define kernel_image_elf 1
-%ifarch ppc64le
%define all_arch_configs kernel-%{version}-ppc64le*.config
-%endif
+%define kcflags -O3
%endif
%ifarch s390x
@@ -297,6 +424,8 @@ Summary: The Linux kernel
%define with_headers 0
%define with_cross_headers 0
%endif
+# These currently don't compile on armv7
+%define with_selftests 0
%endif
%ifarch aarch64
@@ -310,11 +439,7 @@ Summary: The Linux kernel
# Should make listnewconfig fail if there's config options
# printed out?
%if %{nopatches}
-%define listnewconfig_fail 0
-%define configmismatch_fail 0
-%else
-%define listnewconfig_fail 1
-%define configmismatch_fail 1
+%define with_configchecks 0
%endif
# To temporarily exclude an architecture from being built, add it to
@@ -324,18 +449,27 @@ Summary: The Linux kernel
# Which is a BadThing(tm).
# We only build kernel-headers on the following...
+%if 0%{?fedora}
%define nobuildarches i386
+%else
+%define nobuildarches i386 i686
+%endif
%ifarch %nobuildarches
%define with_up 0
-%define with_pae 0
-%define with_debuginfo 0
%define with_debug 0
+%define with_debuginfo 0
+%define with_selftests 0
+%define with_pae 0
%define _enable_debug_packages 0
%endif
# Architectures we build tools/cpupower on
+%if 0%{?fedora}
%define cpupowerarchs %{ix86} x86_64 ppc64le %{arm} aarch64
+%else
+%define cpupowerarchs i686 x86_64 ppc64le aarch64
+%endif
%if %{use_vdso}
@@ -349,7 +483,6 @@ Summary: The Linux kernel
%define _use_vdso 0
%endif
-
#
# Packages that need to be installed before the kernel is, because the %%post
# scripts use them.
@@ -365,7 +498,11 @@ Version: %{rpmversion}
Release: %{pkg_release}
# DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD.
# SET %%nobuildarches (ABOVE) INSTEAD
+%if 0%{?fedora}
ExclusiveArch: x86_64 s390x %{arm} aarch64 ppc64le
+%else
+ExclusiveArch: noarch i386 i686 x86_64 s390x %{arm} aarch64 ppc64le
+%endif
ExclusiveOS: Linux
%ifnarch %{nobuildarches}
Requires: kernel-core-uname-r = %{KVERREL}%{?variant}
@@ -379,18 +516,39 @@ Requires: kernel-modules-uname-r = %{KVERREL}%{?variant}
BuildRequires: kmod, patch, bash, tar, git-core
BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk
BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, bison, flex
-BuildRequires: net-tools, hostname, bc, elfutils-devel, gcc-plugin-devel
+BuildRequires: net-tools, hostname, bc, elfutils-devel
%if 0%{?fedora}
+BuildRequires: dwarves
+%endif
# Used to mangle unversioned shebangs to be Python 3
-BuildRequires: /usr/bin/pathfix.py
+BuildRequires: python3-devel
+%if %{with_headers}
+BuildRequires: rsync
+%endif
+%if %{with_doc}
+BuildRequires: xmlto, asciidoc, python3-sphinx
%endif
%if %{with_sparse}
BuildRequires: sparse
%endif
+%if %{with_selftests}
+%if 0%{?fedora}
+BuildRequires: clang llvm
+%else
+BuildRequires: llvm-toolset
+%endif
+%ifnarch %{arm}
+BuildRequires: numactl-devel
+%endif
+BuildRequires: libcap-devel libcap-ng-devel rsync
+%endif
BuildConflicts: rhbuildsys(DiskFree) < 500Mb
%if %{with_debuginfo}
BuildRequires: rpm-build, elfutils
BuildConflicts: rpm < 4.13.0.1-19
+%if 0%{?fedora}
+BuildConflicts: dwarves < 1.13
+%endif
# Most of these should be enabled after more investigation
%undefine _include_minidebuginfo
%undefine _find_debuginfo_dwz_opts
@@ -403,13 +561,19 @@ BuildConflicts: rpm < 4.13.0.1-19
%global _missing_build_ids_terminate_build 1
%global _no_recompute_build_ids 1
%endif
+%if %{with_kabidwchk} || %{with_kabidw_base}
+BuildRequires: kabi-dw
+%endif
%if %{signkernel}%{signmodules}
BuildRequires: openssl openssl-devel
%if %{signkernel}
+%ifarch x86_64 aarch64
+BuildRequires: nss-tools
BuildRequires: pesign >= 0.10-4
%endif
%endif
+%endif
%if %{with_cross}
BuildRequires: binutils-%{_build_arch}-linux-gnu, gcc-%{_build_arch}-linux-gnu
@@ -418,41 +582,123 @@ BuildRequires: binutils-%{_build_arch}-linux-gnu, gcc-%{_build_arch}-linux-gnu
Source0: https://www.kernel.org/pub/linux/kernel/v5.x/linux-%{kversion}.tar.xz
-Source11: x509.genkey
-Source12: remove-binary-diff.pl
-Source15: merge.pl
-Source16: mod-extra.list
+# Name of the packaged file containing signing key
+%ifarch ppc64le
+%define signing_key_filename kernel-signing-ppc.cer
+%endif
+%ifarch s390x
+%define signing_key_filename kernel-signing-s390.cer
+%endif
+
+Source10: x509.genkey.rhel
+Source11: x509.genkey.fedora
+%if %{?released_kernel}
+
+Source12: securebootca.cer
+Source13: secureboot.cer
+
+%define secureboot_ca %{SOURCE12}
+%ifarch x86_64 aarch64
+%define secureboot_key %{SOURCE13}
+%define pesign_name redhatsecureboot301
+%endif
+
+%else # released_kernel
+
+Source12: redhatsecurebootca2.cer
+Source13: redhatsecureboot003.cer
+
+%define secureboot_ca %{SOURCE12}
+%define secureboot_key %{SOURCE13}
+%define pesign_name redhatsecureboot003
+
+%endif # released_kernel
+
+Source15: mod-extra.list.rhel
+Source16: mod-extra.list.fedora
Source17: mod-extra.sh
Source18: mod-sign.sh
-Source90: filter-x86_64.sh
-Source91: filter-armv7hl.sh
-Source92: filter-i686.sh
-Source93: filter-aarch64.sh
-Source94: filter-ppc64le.sh
-Source95: filter-s390x.sh
-Source99: filter-modules.sh
+Source19: mod-extra-blacklist.sh
+Source79: parallel_xz.sh
+
+Source80: filter-x86_64.sh.fedora
+Source81: filter-armv7hl.sh.fedora
+Source82: filter-i686.sh.fedora
+Source83: filter-aarch64.sh.fedora
+Source86: filter-ppc64le.sh.fedora
+Source87: filter-s390x.sh.fedora
+Source89: filter-modules.sh.fedora
+
+Source90: filter-x86_64.sh.rhel
+Source91: filter-armv7hl.sh.rhel
+Source92: filter-i686.sh.rhel
+Source93: filter-aarch64.sh.rhel
+Source96: filter-ppc64le.sh.rhel
+Source97: filter-s390x.sh.rhel
+Source99: filter-modules.sh.rhel
%define modsign_cmd %{SOURCE18}
-Source20: kernel-aarch64.config
-Source21: kernel-aarch64-debug.config
-Source22: kernel-armv7hl.config
-Source23: kernel-armv7hl-debug.config
-Source24: kernel-armv7hl-lpae.config
-Source25: kernel-armv7hl-lpae-debug.config
-Source26: kernel-i686.config
-Source27: kernel-i686-debug.config
-Source30: kernel-ppc64le.config
-Source31: kernel-ppc64le-debug.config
-Source32: kernel-s390x.config
-Source33: kernel-s390x-debug.config
-Source34: kernel-x86_64.config
-Source35: kernel-x86_64-debug.config
-
-Source40: generate_all_configs.sh
-Source41: generate_debug_configs.sh
-
-Source42: process_configs.sh
-Source43: generate_bls_conf.sh
+Source20: kernel-aarch64-rhel.config
+Source21: kernel-aarch64-debug-rhel.config
+Source30: kernel-ppc64le-rhel.config
+Source31: kernel-ppc64le-debug-rhel.config
+Source32: kernel-s390x-rhel.config
+Source33: kernel-s390x-debug-rhel.config
+Source34: kernel-s390x-zfcpdump-rhel.config
+Source35: kernel-x86_64-rhel.config
+Source36: kernel-x86_64-debug-rhel.config
+
+Source37: kernel-aarch64-fedora.config
+Source38: kernel-aarch64-debug-fedora.config
+Source39: kernel-armv7hl-fedora.config
+Source40: kernel-armv7hl-debug-fedora.config
+Source41: kernel-armv7hl-lpae-fedora.config
+Source42: kernel-armv7hl-lpae-debug-fedora.config
+Source43: kernel-i686-fedora.config
+Source44: kernel-i686-debug-fedora.config
+Source45: kernel-ppc64le-fedora.config
+Source46: kernel-ppc64le-debug-fedora.config
+Source47: kernel-s390x-fedora.config
+Source48: kernel-s390x-debug-fedora.config
+Source49: kernel-x86_64-fedora.config
+Source50: kernel-x86_64-debug-fedora.config
+
+
+
+Source51: generate_all_configs.sh
+
+Source52: process_configs.sh
+Source53: generate_bls_conf.sh
+Source56: update_scripts.sh
+
+Source54: mod-internal.list
+Source55: merge.pl
+
+Source200: check-kabi
+
+Source201: Module.kabi_aarch64
+Source202: Module.kabi_ppc64le
+Source203: Module.kabi_s390x
+Source204: Module.kabi_x86_64
+
+Source210: Module.kabi_dup_aarch64
+Source211: Module.kabi_dup_ppc64le
+Source212: Module.kabi_dup_s390x
+Source213: Module.kabi_dup_x86_64
+
+# Source300: kernel-abi-whitelists-%{rpmversion}-%{distro_build}.tar.bz2
+# Source301: kernel-kabi-dw-%{rpmversion}-%{distro_build}.tar.bz2
+
+# Sources for kernel-tools
+Source2000: cpupower.service
+Source2001: cpupower.config
+
+## Patches needed for building this package
+
+# Patch1: patch-%{rpmversion}-redhat.patch
+
+# empty final patch to facilitate testing of kernel patches
+# Patch999999: linux-kernel-test.patch
# This file is intentionally left empty in the stock kernel. Its a nicety
# added for those wanting to do custom rebuilds with altered config opts.
@@ -495,45 +741,16 @@ Source5000: patch-5.%{base_sublevel}-git%{gitrev}.xz
# Standalone patches
# 100 - Generic long running patches
-Patch110: lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
-
-Patch111: input-kill-stupid-messages.patch
-
-Patch112: die-floppy-die.patch
-
-Patch113: no-pcspkr-modalias.patch
-
-Patch115: Kbuild-Add-an-option-to-enable-GCC-VTA.patch
-
-Patch116: crash-driver.patch
-
-Patch117: lis3-improve-handling-of-null-rate.patch
-
-Patch118: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch
-
-Patch119: namespaces-no-expert.patch
-
-Patch120: ath9k-rx-dma-stop-check.patch
-
-Patch122: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch
-
-# This no longer applies, let's see if it needs to be updated
-# Patch123: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch
-
# 200 - x86 / secureboot
-Patch201: efi-lockdown.patch
-
# bz 1497559 - Make kernel MODSIGN code not error on missing variables
-Patch207: 0001-Make-get_cert_list-not-complain-about-cert-lists-tha.patch
-Patch208: 0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
-Patch209: 0003-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch
-
-Patch210: disable-i8042-check-on-apple-mac.patch
+Patch200: 0001-Make-get_cert_list-not-complain-about-cert-lists-tha.patch
+Patch201: 0002-Add-efi_status_to_str-and-rework-efi_status_to_err.patch
+Patch202: 0003-Make-get_cert_list-use-efi_status_to_str-to-print-er.patch
-Patch211: drm-i915-hush-check-crtc-state.patch
+Patch204: efi-secureboot.patch
-Patch212: efi-secureboot.patch
+Patch205: lift-lockdown-sysrq.patch
# 300 - ARM patches
Patch300: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch
@@ -557,19 +774,13 @@ Patch320: arm64-tegra-jetson-tx1-fixes.patch
Patch321: arm64-tegra-Jetson-TX2-Allow-bootloader-to-configure.patch
# https://patchwork.kernel.org/patch/11171225/
Patch322: mfd-max77620-Do-not-allocate-IRQs-upfront.patch
+# https://patchwork.ozlabs.org/patch/1170631/
+Patch323: gpio-max77620-Use-correct-unit-for-debounce-times.patch
# https://www.spinics.net/lists/linux-tegra/msg44216.html
Patch324: arm64-tegra186-enable-USB-on-Jetson-TX2.patch
# https://patchwork.kernel.org/patch/11224177/
Patch325: arm64-usb-host-xhci-tegra-set-MODULE_FIRMWARE-for-tegra186.patch
-# QCom laptop bits
-# https://patchwork.kernel.org/patch/11133293/
-Patch332: arm64-dts-qcom-Add-Lenovo-Yoga-C630.patch
-
-# This is typical rpi, we have a driver but it has problems because ¯\_(ツ)_/¯ but this revert makes pictures work again.
-# https://patchwork.kernel.org/patch/11136979/
-Patch341: Revert-ARM-bcm283x-Switch-V3D-over-to-using-the-PM-driver-instead-of-firmware.patch
-
# 400 - IBM (ppc/s390x) patches
# 500 - Temp fixes/CVEs etc
@@ -583,9 +794,6 @@ Patch502: 0001-Drop-that-for-now.patch
# Submitted upstream at https://lkml.org/lkml/2019/4/23/89
Patch503: KEYS-Make-use-of-platform-keyring-for-module-signature.patch
-# rhbz 1753099
-Patch504: dwc3-fix.patch
-
Patch500: PATCH-v2-selinux-allow-labeling-before-policy-is-loaded.patch
# it seems CONFIG_OPTIMIZE_INLINING has been forced now and is causing issues on ARMv7
@@ -593,15 +801,6 @@ Patch500: PATCH-v2-selinux-allow-labeling-before-policy-is-loaded.patch
# https://lkml.org/lkml/2019/8/29/1772
Patch505: ARM-fix-__get_user_check-in-case-uaccess_-calls-are-not-inlined.patch
-# CVE-2019-19074 rhbz 1774933 1774934
-Patch506: 0001-ath9k-release-allocated-buffer-if-timed-out.patch
-
-# CVE-2019-19073 rhbz 1774937 1774939
-Patch507: 0001-ath9k_htc-release-allocated-buffer-if-timed-out.patch
-
-# CVE-2019-19072 rhbz 1774946 1774947
-Patch508: 0001-tracing-Have-error-path-in-predicate_parse-free-its-.patch
-
# CVE-2019-19070 rhbz 1774957 1774958
Patch510: spi-gpio-prevent-memory-leak-in-spi_gpio_probe.patch
@@ -623,12 +822,6 @@ Patch516: spi-lpspi-fix-memory-leak-in-fsl_lpspi_probe.patch
# CVE-2019-19063 rhbz 1775015 1775016
Patch517: rtlwifi-prevent-memory-leak-in-rtl_usb_probe.patch
-# CVE-2019-19059 rhbz 1775042 1775043
-Patch518: 0001-iwlwifi-pcie-fix-memory-leaks-in-iwl_pcie_ctxt_info_.patch
-
-# CVE-2019-19058 rhbz 1775047 1775048
-Patch519: 0001-iwlwifi-dbg_ini-fix-memory-leak-in-alloc_sgtable.patch
-
# CVE-2019-19057 rhbz 1775050 1775051
Patch520: mwifiex-pcie-Fix-memory-leak-in-mwifiex_pcie_init_evt_ring.patch
@@ -638,15 +831,9 @@ Patch521: rpmsg-char-release-allocated-memory.patch
# CVE-2019-19056 rhbz 1775097 1775115
Patch522: mwifiex-pcie-fix-memory-leak-in-mwifiex_pcie_alloc_cmdrsp_buf.patch
-# CVE-2019-19055 rhbz 1775074 1775116
-Patch523: 0001-nl80211-fix-memory-leak-in-nl80211_get_ftm_responder.patch
-
# CVE-2019-19054 rhbz 1775063 1775117
Patch524: media-rc-prevent-memory-leak-in-cx23888_ir_probe.patch
-# CVE-2019-19077 rhbz 1775724 1775725
-Patch525: 0001-RDMA-Fix-goto-target-to-release-the-allocated-memory.patch
-
# CVE-2019-14895 rhbz 1774870 1776139
Patch526: mwifiex-fix-possible-heap-overflow-in-mwifiex_process_country_ie.patch
@@ -660,21 +847,28 @@ Patch528: mwifiex-Fix-heap-overflow-in-mmwifiex_process_tdls_action_frame.patch
# CVE-2019-19078 rhbz 1776354 1776353
Patch529: ath10k-fix-memory-leak.patch
-# CVE-2019-19082 rhbz 1776832 1776833
-Patch530: 0001-drm-amd-display-prevent-memory-leak.patch
-
# CVE-2019-18808 rhbz 1777418 1777421
Patch531: 0001-crypto-ccp-Release-all-allocated-memory-if-sha-type-.patch
# CVE-2019-18809 rhbz 1777449 1777451
Patch532: 0001-media-usb-fix-memory-leak-in-af9005_identify_state.patch
-# CVE-2019-18812 rhbz 1777458 1777459
-Patch534: 0001-ASoC-SOF-Fix-memory-leak-in-sof_dfsentry_write.patch
-
# CVE-2019-16232 rhbz 1760351 1760352
Patch535: 0001-libertas-fix-a-potential-NULL-pointer-dereference.patch
+# ALSA code from v5.5 (Intel ASoC Sound Open Firmware driver support)
+Patch600: alsa-5.5.patch
+
+# ALSA code from v5.6 (Intel ASoC Sound Open Firmware driver support)
+Patch607: alsa-5.6.patch
+
+# rhbz 1706557, both patches are upstream in v5.5-rc2
+Patch608: 0001-drm-nouveau-Move-the-declaration-of-struct-nouveau_c.patch
+Patch609: 0002-drm-nouveau-Fix-drm-core-using-atomic-code-paths-on-.patch
+
+# rhbz 1784839
+Patch610: 0007-ALSA-hda-Fix-regression-by-strip-mask-fix.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -710,6 +904,19 @@ AutoReq: no\
AutoProv: yes\
%{nil}
+
+%package doc
+Summary: Various documentation bits found in the kernel source
+Group: Documentation
+%description doc
+This package contains documentation files from the kernel
+source. Various bits of information about the Linux kernel and the
+device drivers shipped with it are documented in these files.
+
+You'll want to install this package if you need a reference to the
+options that can be passed to Linux kernel modules at load time.
+
+
%package headers
Summary: Header files for the Linux kernel for use by glibc
Obsoletes: glibc-kernheaders < 3.0-46
@@ -742,10 +949,56 @@ Provides: installonlypkg(kernel)
This package is required by %{name}-debuginfo subpackages.
It provides the kernel source files common to all builds.
+%if %{with_selftests}
+%package selftests-internal
+Summary: Kernel samples and selftests
+License: GPLv2
+Requires: binutils, bpftool, iproute-tc, nmap-ncat
+Requires: kernel-modules-internal = %{version}-%{release}
+%description selftests-internal
+Kernel sample programs and selftests.
+%{nil}
+# Note that this pattern only works right to match the .build-id
+# symlinks because of the trailing nonmatching alternation and
+# the leading .*, because of find-debuginfo.sh's buggy handling
+# of matching the pattern against the symlinks file.
+%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*%%{_libexecdir}/(ksamples|kselftests)/.*|XXX' -o selftests-debuginfo.list}
+%endif
+
+%if %{with_gcov}
+%package gcov
+Summary: gcov graph and source files for coverage data collection.
+%description gcov
+kernel-gcov includes the gcov graph and source files for gcov coverage collection.
+%endif
+
+%package -n kernel-abi-whitelists
+Summary: The Red Hat Enterprise Linux kernel ABI symbol whitelists
+AutoReqProv: no
+%description -n kernel-abi-whitelists
+The kABI package contains information pertaining to the Red Hat Enterprise
+Linux kernel ABI, including lists of kernel symbols that are needed by
+external Linux kernel modules, and a yum plugin to aid enforcement.
+
+%if %{with_kabidw_base}
+%package kabidw-base
+Summary: The baseline dataset for kABI verification using DWARF data
+Group: System Environment/Kernel
+AutoReqProv: no
+%description kabidw-base
+The kabidw-base package contains data describing the current ABI of the Red Hat
+Enterprise Linux kernel, suitable for the kabi-dw tool.
+%endif
+
#
# This macro creates a kernel-<subpackage>-debuginfo package.
# %%kernel_debuginfo_package <subpackage>
#
+# Explanation of the find_debuginfo_opts: We build multiple kernels (debug
+# pae etc.) so the regex filters those kernels appropriately. We also
+# have to package several binaries as part of kernel-devel but getting
+# unique build-ids is tricky for these userspace binaries. We don't really
+# care about debugging those so we just filter those out and remove it.
%define kernel_debuginfo_package() \
%package %{?1:%{1}-}debuginfo\
Summary: Debug information for package %{name}%{?1:-%{1}}\
@@ -756,7 +1009,9 @@ AutoReqProv: no\
%description %{?1:%{1}-}debuginfo\
This package provides debug information for package %{name}%{?1:-%{1}}.\
This is required to use SystemTap with %{name}%{?1:-%{1}}-%{KVERREL}.\
-%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '/.*/%%{KVERREL}%{?1:[+]%{1}}/.*|/.*%%{KVERREL}%{?1:\+%{1}}(\.debug)?' -o debuginfo%{?1}.list}\
+%{expand:%%global _find_debuginfo_opts %{?_find_debuginfo_opts} -p '.*\/usr\/src\/kernels/.*|XXX' -o ignored-debuginfo.list -p '/.*/%%{KVERREL_RE}%{?1:[+]%{1}}/.*|/.*%%{KVERREL_RE}%{?1:\+%{1}}(\.debug)?' -o debuginfo%{?1}.list}\
+
+
%{nil}
#
@@ -780,6 +1035,39 @@ against the %{?2:%{2} }kernel package.\
%{nil}
#
+# kernel-<variant>-ipaclones-internal package
+#
+%define kernel_ipaclones_package() \
+%package %{?1:%{1}-}ipaclones-internal\
+Summary: *.ipa-clones files generated by -fdump-ipa-clones for kernel%{?1:-%{1}}\
+Group: System Environment/Kernel\
+AutoReqProv: no\
+%description %{?1:%{1}-}ipaclones-internal\
+This package provides *.ipa-clones files.\
+%{nil}
+
+#
+# This macro creates a kernel-<subpackage>-modules-internal package.
+# %%kernel_modules_internal_package <subpackage> <pretty-name>
+#
+%define kernel_modules_internal_package() \
+%package %{?1:%{1}-}modules-internal\
+Summary: Extra kernel modules to match the %{?2:%{2} }kernel\
+Group: System Environment/Kernel\
+Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}\
+Provides: kernel%{?1:-%{1}}-modules-internal-%{_target_cpu} = %{version}-%{release}%{?1:+%{1}}\
+Provides: kernel%{?1:-%{1}}-modules-internal = %{version}-%{release}%{?1:+%{1}}\
+Provides: installonlypkg(kernel-module)\
+Provides: kernel%{?1:-%{1}}-modules-internal-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
+Requires: kernel-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
+Requires: kernel%{?1:-%{1}}-modules-uname-r = %{KVERREL}%{?variant}%{?1:+%{1}}\
+AutoReq: no\
+AutoProv: yes\
+%description %{?1:%{1}-}modules-internal\
+This package provides kernel modules for the %{?2:%{2} }kernel package for Red Hat internal usage.\
+%{nil}
+
+#
# This macro creates a kernel-<subpackage>-modules-extra package.
# %%kernel_modules_extra_package <subpackage> <pretty-name>
#
@@ -852,6 +1140,7 @@ Obsoletes: kernel-bootwrapper\
%{expand:%%kernel_devel_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
%{expand:%%kernel_modules_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
%{expand:%%kernel_modules_extra_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
+%{expand:%%kernel_modules_internal_package %{?1:%{1}} %{!?{-n}:%{1}}%{?{-n}:%{-n*}}}\
%{expand:%%kernel_debuginfo_package %{?1:%{1}}}\
%{nil}
@@ -865,6 +1154,14 @@ This package includes a version of the Linux kernel with support for
Cortex-A15 devices with LPAE and HW virtualisation support
%endif
+%if %{with_zfcpdump}
+%define variant_summary The Linux kernel compiled for zfcpdump usage
+%kernel_variant_package zfcpdump
+%description zfcpdump-core
+The kernel package contains the Linux kernel (vmlinuz) for use by the
+zfcpdump infrastructure.
+%endif
+
%define variant_summary The Linux kernel compiled with extra debugging enabled
%kernel_variant_package debug
%description debug-core
@@ -887,6 +1184,9 @@ Linux operating system. The kernel handles the basic functions
of the operating system: memory allocation, process allocation, device
input and output, etc.
+%if %{with_ipaclones}
+%kernel_ipaclones_package
+%endif
%prep
# do a few sanity-checks for --with *only builds
@@ -912,6 +1212,42 @@ if [ "%{patches}" != "%%{patches}" ] ; then
done
fi 2>/dev/null
+patch_command='patch -p1 -F1 -s'
+ApplyPatch()
+{
+ local patch=$1
+ shift
+ if [ ! -f $RPM_SOURCE_DIR/$patch ]; then
+ exit 1
+ fi
+ if ! grep -E "^Patch[0-9]+: $patch\$" %{_specdir}/${RPM_PACKAGE_NAME%%%%%{?variant}}.spec ; then
+ if [ "${patch:0:8}" != "patch-5." ] ; then
+ echo "ERROR: Patch $patch not listed as a source patch in specfile"
+ exit 1
+ fi
+ fi 2>/dev/null
+ case "$patch" in
+ *.bz2) bunzip2 < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
+ *.gz) gunzip < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
+ *.xz) unxz < "$RPM_SOURCE_DIR/$patch" | $patch_command ${1+"$@"} ;;
+ *) $patch_command ${1+"$@"} < "$RPM_SOURCE_DIR/$patch" ;;
+ esac
+}
+
+# don't apply patch if it's empty
+ApplyOptionalPatch()
+{
+ local patch=$1
+ shift
+ if [ ! -f $RPM_SOURCE_DIR/$patch ]; then
+ exit 1
+ fi
+ local C=$(wc -l $RPM_SOURCE_DIR/$patch | awk '{print $1}')
+ if [ "$C" -gt 9 ]; then
+ ApplyPatch $patch ${1+"$@"}
+ fi
+}
+
# First we unpack the kernel tarball.
# If this isn't the first make prep, we use links to the existing clean tarball
# which speeds things up quite a bit.
@@ -1017,14 +1353,14 @@ cp %{SOURCE12} .
# Update vanilla to the latest upstream.
# (non-released_kernel case only)
%if 0%{?rcrev}
- xzcat %{SOURCE5000} | ./remove-binary-diff.pl | patch -p1 -F1 -s
+ xzcat %{SOURCE5000} | patch -p1 -F1 -s
%if 0%{?gitrev}
- xzcat %{SOURCE5001} | ./remove-binary-diff.pl | patch -p1 -F1 -s
+ xzcat %{SOURCE5001} | patch -p1 -F1 -s
%endif
%else
# pre-{base_sublevel+1}-rc1 case
%if 0%{?gitrev}
- xzcat %{SOURCE5000} | ./remove-binary-diff.pl | patch -p1 -F1 -s
+ xzcat %{SOURCE5000} | patch -p1 -F1 -s
%endif
%endif
git init
@@ -1084,6 +1420,31 @@ mv COPYING COPYING-%{version}
# This Prevents scripts/setlocalversion from mucking with our version numbers.
touch .scmversion
+# Mangle /usr/bin/python shebangs to /usr/bin/python3
+# Mangle all Python shebangs to be Python 3 explicitly
+# -p preserves timestamps
+# -n prevents creating ~backup files
+# -i specifies the interpreter for the shebang
+# This fixes errors such as
+# *** ERROR: ambiguous python shebang in /usr/bin/kvm_stat: #!/usr/bin/python. Change it to python3 (or python2) explicitly.
+# We patch all sources below for which we got a report/error.
+pathfix.py -i "%{__python3} %{py3_shbang_opts}" -p -n \
+ tools/kvm/kvm_stat/kvm_stat \
+ scripts/show_delta \
+ scripts/diffconfig \
+ scripts/bloat-o-meter \
+ tools/perf/tests/attr.py \
+ tools/perf/scripts/python/stat-cpi.py \
+ tools/perf/scripts/python/sched-migration.py \
+ Documentation \
+ scripts/gen_compile_commands.py
+
+# only deal with configs if we are going to build for the arch
+%ifnarch %nobuildarches
+
+if [ -L configs ]; then
+ rm -f configs
+fi
# Deal with configs stuff
mkdir configs
cd configs
@@ -1091,23 +1452,10 @@ cd configs
# Drop some necessary files from the source dir into the buildroot
cp $RPM_SOURCE_DIR/kernel-*.config .
cp %{SOURCE1000} .
-cp %{SOURCE15} .
-cp %{SOURCE40} .
-cp %{SOURCE41} .
-cp %{SOURCE43} .
-
-%if !%{debugbuildsenabled}
-# The normal build is a really debug build and the user has explicitly requested
-# a release kernel. Change the config files into non-debug versions.
-%if !%{with_release}
-VERSION=%{version} ./generate_debug_configs.sh
-%else
-VERSION=%{version} ./generate_all_configs.sh
-%endif
+cp %{SOURCE55} .
+cp %{SOURCE51} .
+VERSION=%{version} ./generate_all_configs.sh %{primary_target} %{debugbuildsenabled}
-%else
-VERSION=%{version} ./generate_all_configs.sh
-%endif
# Merge in any user-provided local config option changes
%ifnarch %nobuildarches
@@ -1119,40 +1467,33 @@ do
done
%endif
-# only deal with configs if we are going to build for the arch
-%ifnarch %nobuildarches
-
%if !%{debugbuildsenabled}
rm -f kernel-%{version}-*debug.config
%endif
-%define make make %{?cross_opts}
-
-CheckConfigs() {
- ./check_configs.awk $1 $2 > .mismatches
- if [ -s .mismatches ]
- then
- echo "Error: Mismatches found in configuration files"
- cat .mismatches
- exit 1
- fi
-}
+# enable GCOV kernel config options if gcov is on
+%if %{with_gcov}
+for i in *.config
+do
+ sed -i 's/# CONFIG_GCOV_KERNEL is not set/CONFIG_GCOV_KERNEL=y\nCONFIG_GCOV_PROFILE_ALL=y\n/' $i
+done
+%endif
-cp %{SOURCE42} .
+cp %{SOURCE52} .
OPTS=""
-%if %{listnewconfig_fail}
- OPTS="$OPTS -n"
-%endif
-%if %{configmismatch_fail}
- OPTS="$OPTS -c"
+%if %{with_configchecks}
+ OPTS="$OPTS -w -n -c"
%endif
./process_configs.sh $OPTS kernel %{rpmversion}
+cp %{SOURCE56} .
+RPM_SOURCE_DIR=$RPM_SOURCE_DIR ./update_scripts.sh %{primary_target}
+
# end of kernel config
%endif
cd ..
-# End of Configs stuff
+# # End of Configs stuff
# get rid of unwanted files resulting from patch fuzz
find . \( -name "*.orig" -o -name "*~" \) -delete >/dev/null
@@ -1160,18 +1501,6 @@ find . \( -name "*.orig" -o -name "*~" \) -delete >/dev/null
# remove unnecessary SCM files
find . -name .gitignore -delete >/dev/null
-%if 0%{?fedora}
-# Mangle /usr/bin/python shebangs to /usr/bin/python3
-# Mangle all Python shebangs to be Python 3 explicitly
-# -p preserves timestamps
-# -n prevents creating ~backup files
-# -i specifies the interpreter for the shebang
-pathfix.py -pni "%{__python3} %{py3_shbang_opts}" scripts/
-pathfix.py -pni "%{__python3} %{py3_shbang_opts}" scripts/diffconfig
-pathfix.py -pni "%{__python3} %{py3_shbang_opts}" scripts/bloat-o-meter
-pathfix.py -pni "%{__python3} %{py3_shbang_opts}" scripts/show_delta
-%endif
-
cd ..
###
@@ -1206,9 +1535,11 @@ cp_vmlinux()
# flags cause issues with the host compiler.
%if !%{with_cross}
%define build_hostcflags %{?build_cflags}
-%define build_hostldflags %{?build_ldflags} -Wl,--build-id=uuid
+%define build_hostldflags %{?build_ldflags}
%endif
+%define make make %{?cross_opts} %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}"
+
BuildKernel() {
MakeTarget=$1
KernelImage=$2
@@ -1217,6 +1548,11 @@ BuildKernel() {
Flav=${Flavour:++${Flavour}}
InstallName=${5:-vmlinuz}
+ DoModules=1
+ if [ "$Flavour" = "zfcpdump" ]; then
+ DoModules=0
+ fi
+
# Pick the right config file for the kernel we're building
Config=kernel-%{version}-%{_target_cpu}${Flavour:+-${Flavour}}.config
DevelDir=/usr/src/kernels/%{KVERREL}${Flav}
@@ -1238,9 +1574,7 @@ BuildKernel() {
%endif
# make sure EXTRAVERSION says what we want it to say
- # Trim the release if this is a CI build, since KERNELVERSION is limited to 64 characters
- ShortRel=$(perl -e "print \"%{release}\" =~ s/\.pr\.[0-9A-Fa-f]{32}//r")
- perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -${ShortRel}.%{_target_cpu}${Flav}/" Makefile
+ perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}.%{_target_cpu}${Flav}/" Makefile
# if pre-rc1 devel kernel, must fix up PATCHLEVEL for our versioning scheme
%if !0%{?rcrev}
@@ -1251,22 +1585,31 @@ BuildKernel() {
# and now to start the build process
- make %{?make_opts} mrproper
+ %{make} %{?_smp_mflags} mrproper
cp configs/$Config .config
%if %{signkernel}%{signmodules}
- cp %{SOURCE11} certs/.
+ cp $RPM_SOURCE_DIR/x509.genkey certs/.
%endif
Arch=`head -1 .config | cut -b 3-`
echo USING ARCH=$Arch
- make %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}" ARCH=$Arch olddefconfig
+ KCFLAGS="%{?kcflags}"
+
+ # add kpatch flags for base kernel
+ if [ "$Flavour" == "" ]; then
+ KCFLAGS="$KCFLAGS %{?kpatch_kcflags}"
+ fi
+
+ %{make} ARCH=$Arch olddefconfig >/dev/null
# This ensures build-ids are unique to allow parallel debuginfo
perl -p -i -e "s/^CONFIG_BUILD_SALT.*/CONFIG_BUILD_SALT=\"%{KVERREL}\"/" .config
- %{make} %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}" ARCH=$Arch %{?_smp_mflags} $MakeTarget %{?sparse_mflags} %{?kernel_mflags}
- %{make} %{?make_opts} HOSTCFLAGS="%{?build_hostcflags}" HOSTLDFLAGS="%{?build_hostldflags}" ARCH=$Arch %{?_smp_mflags} modules %{?sparse_mflags} || exit 1
+ %{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" %{?_smp_mflags} $MakeTarget %{?sparse_mflags} %{?kernel_mflags}
+ if [ $DoModules -eq 1 ]; then
+ %{make} ARCH=$Arch KCFLAGS="$KCFLAGS" WITH_GCOV="%{?with_gcov}" %{?_smp_mflags} modules %{?sparse_mflags} || exit 1
+ fi
mkdir -p $RPM_BUILD_ROOT/%{image_install_path}
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer
@@ -1275,7 +1618,8 @@ BuildKernel() {
%endif
%ifarch %{arm} aarch64
- %{make} %{?make_opts} ARCH=$Arch dtbs dtbs_install INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer
+ %{make} ARCH=$Arch dtbs INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer
+ %{make} ARCH=$Arch dtbs_install INSTALL_DTBS_PATH=$RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer
cp -r $RPM_BUILD_ROOT/%{image_install_path}/dtb-$KernelVer $RPM_BUILD_ROOT/lib/modules/$KernelVer/dtb
find arch/$Arch/boot/dts -name '*.dtb' -type f -delete
%endif
@@ -1294,14 +1638,48 @@ BuildKernel() {
cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/%{image_install_path}/zImage.stub-$KernelVer || :
cp arch/$Arch/boot/zImage.stub $RPM_BUILD_ROOT/lib/modules/$KernelVer/zImage.stub-$KernelVer || :
fi
+
%if %{signkernel}
+ if [ "$KernelImage" = vmlinux ]; then
+ # We can't strip and sign $KernelImage in place, because
+ # we need to preserve original vmlinux for debuginfo.
+ # Use a copy for signing.
+ $CopyKernel $KernelImage $KernelImage.tosign
+ KernelImage=$KernelImage.tosign
+ CopyKernel=cp
+ fi
+
# Sign the image if we're using EFI
- %pesign -s -i $KernelImage -o vmlinuz.signed
+ # aarch64 kernels are gziped EFI images
+ KernelExtension=${KernelImage##*.}
+ if [ "$KernelExtension" == "gz" ]; then
+ SignImage=${KernelImage%.*}
+ else
+ SignImage=$KernelImage
+ fi
+
+ %ifarch x86_64 aarch64
+ %pesign -s -i $SignImage -o vmlinuz.signed -a %{secureboot_ca} -c %{secureboot_key} -n %{pesign_name}
+ %endif
+ %ifarch s390x ppc64le
+ if [ -x /usr/bin/rpm-sign ]; then
+ rpm-sign --key "%{pesign_name}" --lkmsign $SignImage --output vmlinuz.signed
+ elif [ $DoModules -eq 1 ]; then
+ chmod +x scripts/sign-file
+ ./scripts/sign-file -p sha256 certs/signing_key.pem certs/signing_key.x509 $SignImage vmlinuz.signed
+ else
+ mv $SignImage vmlinuz.signed
+ fi
+ %endif
+
if [ ! -s vmlinuz.signed ]; then
echo "pesigning failed"
exit 1
fi
- mv vmlinuz.signed $KernelImage
+ mv vmlinuz.signed $SignImage
+ if [ "$KernelExtension" == "gz" ]; then
+ gzip -f9 $SignImage
+ fi
%endif
$CopyKernel $KernelImage \
$RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer
@@ -1314,19 +1692,30 @@ BuildKernel() {
sha512hmac $RPM_BUILD_ROOT/%{image_install_path}/$InstallName-$KernelVer | sed -e "s,$RPM_BUILD_ROOT,," > $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac;
cp $RPM_BUILD_ROOT/%{image_install_path}/.vmlinuz-$KernelVer.hmac $RPM_BUILD_ROOT/lib/modules/$KernelVer/.vmlinuz.hmac
- # Override $(mod-fw) because we don't want it to install any firmware
- # we'll get it from the linux-firmware package and we don't want conflicts
- %{make} %{?make_opts} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer mod-fw=
+ if [ $DoModules -eq 1 ]; then
+ # Override $(mod-fw) because we don't want it to install any firmware
+ # we'll get it from the linux-firmware package and we don't want conflicts
+ %{make} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT %{?_smp_mflags} modules_install KERNELRELEASE=$KernelVer mod-fw=
+ fi
+
+%if %{with_gcov}
+ # install gcov-needed files to $BUILDROOT/$BUILD/...:
+ # gcov_info->filename is absolute path
+ # gcno references to sources can use absolute paths (e.g. in out-of-tree builds)
+ # sysfs symlink targets (set up at compile time) use absolute paths to BUILD dir
+ find . \( -name '*.gcno' -o -name '*.[chS]' \) -exec install -D '{}' "$RPM_BUILD_ROOT/$(pwd)/{}" \;
+%endif
# add an a noop %%defattr statement 'cause rpm doesn't like empty file list files
echo '%%defattr(-,-,-)' > ../kernel${Flavour:+-${Flavour}}-ldsoconf.list
if [ $DoVDSO -ne 0 ]; then
- %{make} %{?make_opts} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
+ %{make} ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
if [ -s ldconfig-kernel.conf ]; then
- install -D -m 444 ldconfig-kernel.conf \
+ install -D -m 444 ldconfig-kernel.conf \
$RPM_BUILD_ROOT/etc/ld.so.conf.d/kernel-$KernelVer.conf
- echo /etc/ld.so.conf.d/kernel-$KernelVer.conf >> ../kernel${Flavour:+-${Flavour}}-ldsoconf.list
+ echo /etc/ld.so.conf.d/kernel-$KernelVer.conf >> ../kernel${Flavour:+-${Flavour}}-ldsoconf.list
fi
+
rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/vdso/.build-id
fi
@@ -1343,7 +1732,11 @@ BuildKernel() {
(cd $RPM_BUILD_ROOT/lib/modules/$KernelVer ; ln -s build source)
# dirs for additional modules per module-init-tools, kbuild/modules.txt
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra
+ mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/internal
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates
+ # CONFIG_KERNEL_HEADER_TEST generates some extra files in the process of
+ # testing so just delete
+ find . -name *.h.s -delete
# first copy everything
cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
@@ -1351,24 +1744,97 @@ BuildKernel() {
if [ -s Module.markers ]; then
cp Module.markers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
fi
+
+ # create the kABI metadata for use in packaging
+ # NOTENOTE: the name symvers is used by the rpm backend
+ # NOTENOTE: to discover and run the /usr/lib/rpm/fileattrs/kabi.attr
+ # NOTENOTE: script which dynamically adds exported kernel symbol
+ # NOTENOTE: checksums to the rpm metadata provides list.
+ # NOTENOTE: if you change the symvers name, update the backend too
+ echo "**** GENERATING kernel ABI metadata ****"
+ gzip -c9 < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz
+ cp $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz $RPM_BUILD_ROOT/lib/modules/$KernelVer/symvers.gz
+%if %{with_kabichk}
+ echo "**** kABI checking is enabled in kernel SPEC file. ****"
+ chmod 0755 $RPM_SOURCE_DIR/check-kabi
+ if [ -e $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour ]; then
+ cp $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour $RPM_BUILD_ROOT/Module.kabi
+ $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1
+ rm $RPM_BUILD_ROOT/Module.kabi # for now, don't keep it around.
+ else
+ echo "**** NOTE: Cannot find reference Module.kabi file. ****"
+ fi
+%endif
+
+%if %{with_kabidupchk}
+ echo "**** kABI DUP checking is enabled in kernel SPEC file. ****"
+ if [ -e $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Flavour ]; then
+ cp $RPM_SOURCE_DIR/Module.kabi_dup_%{_target_cpu}$Flavour $RPM_BUILD_ROOT/Module.kabi
+ $RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1
+ rm $RPM_BUILD_ROOT/Module.kabi # for now, don't keep it around.
+ else
+ echo "**** NOTE: Cannot find DUP reference Module.kabi file. ****"
+ fi
+%endif
+
+%if %{with_kabidw_base}
+ # Don't build kabi base for debug kernels
+ if [ "$Flavour" != "kdump" -a "$Flavour" != "debug" ]; then
+ mkdir -p $RPM_BUILD_ROOT/kabi-dwarf
+ tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf
+
+ mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/whitelists
+ tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/whitelists
+
+ echo "**** GENERATING DWARF-based kABI baseline dataset ****"
+ chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh
+ $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \
+ "$RPM_BUILD_ROOT/kabi-dwarf/whitelists/kabi-current/kabi_whitelist_%{_target_cpu}" \
+ "$(pwd)" \
+ "$RPM_BUILD_ROOT/kabidw-base/%{_target_cpu}${Flavour:+.${Flavour}}" || :
+
+ rm -rf $RPM_BUILD_ROOT/kabi-dwarf
+ fi
+%endif
+
+%if %{with_kabidwchk}
+ if [ "$Flavour" != "kdump" ]; then
+ mkdir -p $RPM_BUILD_ROOT/kabi-dwarf
+ tar xjvf %{SOURCE301} -C $RPM_BUILD_ROOT/kabi-dwarf
+ if [ -d "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}" ]; then
+ mkdir -p $RPM_BUILD_ROOT/kabi-dwarf/whitelists
+ tar xjvf %{SOURCE300} -C $RPM_BUILD_ROOT/kabi-dwarf/whitelists
+
+ echo "**** GENERATING DWARF-based kABI dataset ****"
+ chmod 0755 $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh
+ $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh generate \
+ "$RPM_BUILD_ROOT/kabi-dwarf/whitelists/kabi-current/kabi_whitelist_%{_target_cpu}" \
+ "$(pwd)" \
+ "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}.tmp" || :
+
+ echo "**** kABI DWARF-based comparison report ****"
+ $RPM_BUILD_ROOT/kabi-dwarf/run_kabi-dw.sh compare \
+ "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}" \
+ "$RPM_BUILD_ROOT/kabi-dwarf/base/%{_target_cpu}${Flavour:+.${Flavour}}.tmp" || :
+ echo "**** End of kABI DWARF-based comparison report ****"
+ else
+ echo "**** Baseline dataset for kABI DWARF-BASED comparison report not found ****"
+ fi
+
+ rm -rf $RPM_BUILD_ROOT/kabi-dwarf
+ fi
+%endif
+
# then drop all but the needed Makefiles/Kconfig files
rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/Documentation
rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts
rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
cp .config $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
cp -a scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
+ rm -rf $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/tracing
+ rm -f $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/scripts/spdxcheck.py
if [ -f tools/objtool/objtool ]; then
cp -a tools/objtool/objtool $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/tools/objtool/ || :
- # these are a few files associated with objtool
- cp -a --parents tools/build/Build.include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
- cp -a --parents tools/build/Build $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
- cp -a --parents tools/build/fixdep.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
- cp -a --parents tools/scripts/utilities.mak $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
- # also more than necessary but it's not that many more files
- cp -a --parents tools/objtool/* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
- cp -a --parents tools/lib/str_error_r.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
- cp -a --parents tools/lib/string.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
- cp -a --parents tools/lib/subcmd/* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
fi
if [ -d arch/$Arch/scripts ]; then
cp -a arch/$Arch/scripts $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/arch/%{_arch} || :
@@ -1404,7 +1870,7 @@ BuildKernel() {
%endif
cp -a include $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
-%ifarch %{ix86} x86_64
+%ifarch i686 x86_64
# files for 'make prepare' to succeed with kernel-devel
cp -a --parents arch/x86/entry/syscalls/syscall_32.tbl $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
cp -a --parents arch/x86/entry/syscalls/syscalltbl.sh $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
@@ -1415,9 +1881,7 @@ BuildKernel() {
cp -a --parents arch/x86/tools/relocs.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
cp -a --parents arch/x86/tools/relocs_common.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
cp -a --parents arch/x86/tools/relocs.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
- # Yes this is more includes than we probably need. Feel free to sort out
- # dependencies if you so choose.
- cp -a --parents tools/include/* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
+ cp -a --parents tools/include/tools/le_byteshift.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
cp -a --parents arch/x86/purgatory/purgatory.c $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
cp -a --parents arch/x86/purgatory/stack.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
cp -a --parents arch/x86/purgatory/setup-x86_64.S $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/
@@ -1482,7 +1946,11 @@ BuildKernel() {
popd
# Call the modules-extra script to move things around
- %{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE16}
+ %{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer $RPM_SOURCE_DIR/mod-extra.list
+ # Blacklist net autoloadable modules in modules-extra
+ %{SOURCE19} $RPM_BUILD_ROOT lib/modules/$KernelVer
+ # Call the modules-extra script for internal modules
+ %{SOURCE17} $RPM_BUILD_ROOT/lib/modules/$KernelVer %{SOURCE54} internal
#
# Generate the kernel-core and kernel-modules files lists
@@ -1496,24 +1964,38 @@ BuildKernel() {
cp -r lib/modules/$KernelVer/* restore/.
# don't include anything going into k-m-e in the file lists
- rm -rf lib/modules/$KernelVer/extra
-
- # Find all the module files and filter them out into the core and modules
- # lists. This actually removes anything going into -modules from the dir.
- find lib/modules/$KernelVer/kernel -name *.ko | sort -n > modules.list
- cp $RPM_SOURCE_DIR/filter-*.sh .
- %{SOURCE99} modules.list %{_target_cpu}
- rm filter-*.sh
-
- # Run depmod on the resulting module tree and make sure it isn't broken
- depmod -b . -aeF ./System.map $KernelVer &> depmod.out
- if [ -s depmod.out ]; then
- echo "Depmod failure"
- cat depmod.out
- exit 1
+ rm -rf lib/modules/$KernelVer/{extra,internal}
+
+
+ if [ $DoModules -eq 1 ]; then
+ # Find all the module files and filter them out into the core and
+ # modules lists. This actually removes anything going into -modules
+ # from the dir.
+ find lib/modules/$KernelVer/kernel -name *.ko | sort -n > modules.list
+ cp $RPM_SOURCE_DIR/filter-*.sh .
+ ./filter-modules.sh modules.list %{_target_cpu}
+ rm filter-*.sh
+
+ # Run depmod on the resulting module tree and make sure it isn't broken
+ depmod -b . -aeF ./System.map $KernelVer &> depmod.out
+ if [ -s depmod.out ]; then
+ echo "Depmod failure"
+ cat depmod.out
+ exit 1
+ else
+ rm depmod.out
+ fi
else
- rm depmod.out
+ # Ensure important files/directories exist to let the packaging succeed
+ echo '%%defattr(-,-,-)' > modules.list
+ echo '%%defattr(-,-,-)' > k-d.list
+ mkdir -p lib/modules/$KernelVer/kernel
+ # Add files usually created by make modules, needed to prevent errors
+ # thrown by depmod during package installation
+ touch lib/modules/$KernelVer/modules.order
+ touch lib/modules/$KernelVer/modules.builtin
fi
+
# remove files that will be auto generated by depmod at rpm -i time
pushd $RPM_BUILD_ROOT/lib/modules/$KernelVer/
rm -f modules.{alias*,builtin.bin,dep*,*map,symbols*,devname,softdep}
@@ -1541,9 +2023,11 @@ BuildKernel() {
rm -f $RPM_BUILD_ROOT/module-dirs.list
%if %{signmodules}
- # Save the signing keys so we can sign the modules in __modsign_install_post
- cp certs/signing_key.pem certs/signing_key.pem.sign${Flav}
- cp certs/signing_key.x509 certs/signing_key.x509.sign${Flav}
+ if [ $DoModules -eq 1 ]; then
+ # Save the signing keys so we can sign the modules in __modsign_install_post
+ cp certs/signing_key.pem certs/signing_key.pem.sign${Flav}
+ cp certs/signing_key.x509 certs/signing_key.x509.sign${Flav}
+ fi
%endif
# Move the devel headers out of the root file system
@@ -1560,7 +2044,34 @@ BuildKernel() {
find $RPM_BUILD_ROOT/usr/src/kernels -name ".*.cmd" -delete
# build a BLS config for this kernel
- %{SOURCE43} "$KernelVer" "$RPM_BUILD_ROOT" "%{?variant}"
+ %{SOURCE53} "$KernelVer" "$RPM_BUILD_ROOT" "%{?variant}"
+
+ # Red Hat UEFI Secure Boot CA cert, which can be used to authenticate the kernel
+ mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer
+ install -m 0644 %{secureboot_ca} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
+ %ifarch s390x ppc64le
+ if [ $DoModules -eq 1 ]; then
+ if [ -x /usr/bin/rpm-sign ]; then
+ install -m 0644 %{secureboot_key} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename}
+ else
+ install -m 0644 certs/signing_key.x509.sign${Flav} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
+ openssl x509 -in certs/signing_key.pem.sign${Flav} -outform der -out $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename}
+ chmod 0644 $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/%{signing_key_filename}
+ fi
+ fi
+ %endif
+
+%if %{with_ipaclones}
+ MAXPROCS=$(echo %{?_smp_mflags} | sed -n 's/-j\s*\([0-9]\+\)/\1/p')
+ if [ -z "$MAXPROCS" ]; then
+ MAXPROCS=1
+ fi
+ if [ "$Flavour" == "" ]; then
+ mkdir -p $RPM_BUILD_ROOT/$DevelDir-ipaclones
+ find . -name '*.ipa-clones' | xargs -i{} -r -n 1 -P $MAXPROCS install -m 644 -D "{}" "$RPM_BUILD_ROOT/$DevelDir-ipaclones/{}"
+ fi
+%endif
+
}
###
@@ -1579,6 +2090,10 @@ cd linux-%{KVERREL}
BuildKernel %make_target %kernel_image %{_use_vdso} debug
%endif
+%if %{with_zfcpdump}
+BuildKernel %make_target %kernel_image %{_use_vdso} zfcpdump
+%endif
+
%if %{with_pae}
BuildKernel %make_target %kernel_image %{use_vdso} lpae
%endif
@@ -1587,6 +2102,24 @@ BuildKernel %make_target %kernel_image %{use_vdso} lpae
BuildKernel %make_target %kernel_image %{_use_vdso}
%endif
+%if %{with_selftests}
+%{make} -s ARCH=$Arch V=1 samples/bpf/
+pushd tools/testing/selftests
+# We need to install here because we need to call make with ARCH set which
+# doesn't seem possible to do in the install section.
+%{make} -s ARCH=$Arch V=1 TARGETS="bpf livepatch net" INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests install
+popd
+%endif
+
+%if %{with_doc}
+# Make the HTML pages.
+make htmldocs || %{doc_build_fail}
+
+# sometimes non-world-readable files sneak into the kernel source tree
+chmod -R a=rX Documentation
+find Documentation -type d | xargs chmod u+w
+%endif
+
# In the modsign case, we do 3 things. 1) We check the "flavour" and hard
# code the value in the following invocations. This is somewhat sub-optimal
# but we're doing this inside of an RPM macro and it isn't as easy as it
@@ -1597,11 +2130,13 @@ BuildKernel %make_target %kernel_image %{_use_vdso}
#
# We have to do all of those things _after_ find-debuginfo runs, otherwise
# that will strip the signature off of the modules.
+#
+# Don't sign modules for the zfcpdump flavour as it is monolithic.
%define __modsign_install_post \
if [ "%{signmodules}" -eq "1" ]; then \
if [ "%{with_pae}" -ne "0" ]; then \
- %{modsign_cmd} certs/signing_key.pem.sign+lpae certs/signing_key.x509.sign+lpae $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+lpae/ \
+ %{modsign_cmd} certs/signing_key.pem.sign+lpae certs/signing_key.x509.sign+lpae $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+lpae/ \
fi \
if [ "%{with_debug}" -ne "0" ]; then \
%{modsign_cmd} certs/signing_key.pem.sign+debug certs/signing_key.x509.sign+debug $RPM_BUILD_ROOT/lib/modules/%{KVERREL}+debug/ \
@@ -1611,7 +2146,7 @@ BuildKernel %make_target %kernel_image %{_use_vdso}
fi \
fi \
if [ "%{zipmodules}" -eq "1" ]; then \
- find $RPM_BUILD_ROOT/lib/modules/ -type f -name '*.ko' | xargs -P%{zcpu} xz; \
+ find $RPM_BUILD_ROOT/lib/modules/ -type f -name '*.ko' | %{SOURCE79} %{?_smp_mflags}; \
fi \
%{nil}
@@ -1631,6 +2166,18 @@ BuildKernel %make_target %kernel_image %{_use_vdso}
%endif
+# We don't want to package debuginfo for self-tests and samples but
+# we have to delete them to avoid an error messages about unpackaged
+# files.
+# Delete the debuginfo for for kernel-devel files
+%define __remove_unwanted_dbginfo_install_post \
+ if [ "%{with_selftests}" -ne "0" ]; then \
+ rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/ksamples; \
+ rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/libexec/kselftests; \
+ fi \
+ rm -rf $RPM_BUILD_ROOT/usr/lib/debug/usr/src; \
+%{nil}
+
#
# Disgusting hack alert! We need to ensure we sign modules *after* all
# invocations of strip occur, which is in __debug_install_post if
@@ -1640,6 +2187,7 @@ BuildKernel %make_target %kernel_image %{_use_vdso}
%{?__debug_package:%{__debug_install_post}}\
%{__arch_install_post}\
%{__os_install_post}\
+ %{__remove_unwanted_dbginfo_install_post}\
%{__modsign_install_post}
###
@@ -1650,6 +2198,15 @@ BuildKernel %make_target %kernel_image %{_use_vdso}
cd linux-%{KVERREL}
+%if %{with_doc}
+docdir=$RPM_BUILD_ROOT%{_datadir}/doc/kernel-doc-%{rpmversion}
+
+# copy the source over
+mkdir -p $docdir
+tar -h -f - --exclude=man --exclude='.*' -c Documentation | tar xf - -C $docdir
+
+%endif
+
# We have to do the headers install before the tools install because the
# kernel headers_install will remove any header files in /usr/include that
# it doesn't install itself.
@@ -1665,32 +2222,81 @@ find $RPM_BUILD_ROOT/usr/include \
%endif
%if %{with_cross_headers}
+HDR_ARCH_LIST='arm arm64 powerpc s390 x86'
mkdir -p $RPM_BUILD_ROOT/usr/tmp-headers
-make ARCH=%{hdrarch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr/tmp-headers headers_install_all
-find $RPM_BUILD_ROOT/usr/tmp-headers/include \
+for arch in $HDR_ARCH_LIST; do
+ mkdir $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch}
+ make ARCH=${arch} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch} headers_install
+done
+
+find $RPM_BUILD_ROOT/usr/tmp-headers \
\( -name .install -o -name .check -o \
-name ..install.cmd -o -name ..check.cmd \) -delete
# Copy all the architectures we care about to their respective asm directories
-for arch in arm arm64 powerpc s390 x86 ; do
-mkdir -p $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include
-mv $RPM_BUILD_ROOT/usr/tmp-headers/include/arch-${arch}/asm $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/
-cp -a $RPM_BUILD_ROOT/usr/tmp-headers/include/asm-generic $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/.
-done
-
-# Remove the rest of the architectures
-rm -rf $RPM_BUILD_ROOT/usr/tmp-headers/include/arch*
-rm -rf $RPM_BUILD_ROOT/usr/tmp-headers/include/asm-*
-
-# Copy the rest of the headers over
-for arch in arm arm64 powerpc s390 x86 ; do
-cp -a $RPM_BUILD_ROOT/usr/tmp-headers/include/* $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/.
+for arch in $HDR_ARCH_LIST ; do
+ mkdir -p $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include
+ mv $RPM_BUILD_ROOT/usr/tmp-headers/arch-${arch}/include/* $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/
done
rm -rf $RPM_BUILD_ROOT/usr/tmp-headers
%endif
+%if %{with_kernel_abi_whitelists}
+# kabi directory
+INSTALL_KABI_PATH=$RPM_BUILD_ROOT/lib/modules/
+mkdir -p $INSTALL_KABI_PATH
+# install kabi releases directories
+tar xjvf %{SOURCE300} -C $INSTALL_KABI_PATH
+%endif
+
+%if %{with_selftests}
+pushd samples
+install -d %{buildroot}%{_libexecdir}/ksamples
+# install bpf samples
+pushd bpf
+install -d %{buildroot}%{_libexecdir}/ksamples/bpf
+find -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/bpf \;
+install -m755 *.sh %{buildroot}%{_libexecdir}/ksamples/bpf
+# test_lwt_bpf.sh compiles test_lwt_bpf.c when run; this works only from the
+# kernel tree. Just remove it.
+rm %{buildroot}%{_libexecdir}/ksamples/bpf/test_lwt_bpf.sh
+install -m644 tcp_bpf.readme %{buildroot}%{_libexecdir}/ksamples/bpf
+popd
+# install pktgen samples
+pushd pktgen
+install -d %{buildroot}%{_libexecdir}/ksamples/pktgen
+find . -type f -executable -exec install -m755 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \;
+find . -type f ! -executable -exec install -m644 {} %{buildroot}%{_libexecdir}/ksamples/pktgen/{} \;
+popd
+popd
+# install drivers/net/mlxsw selftests
+pushd tools/testing/selftests/drivers/net/mlxsw
+find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \;
+find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \;
+find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/drivers/net/mlxsw/{} \;
+popd
+# install net/forwarding selftests
+pushd tools/testing/selftests/net/forwarding
+find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \;
+find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \;
+find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/net/forwarding/{} \;
+popd
+# install tc-testing selftests
+pushd tools/testing/selftests/tc-testing
+find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \;
+find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \;
+find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/tc-testing/{} \;
+popd
+# install livepatch selftests
+pushd tools/testing/selftests/livepatch
+find -type d -exec install -d %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \;
+find -type f -executable -exec install -D -m755 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \;
+find -type f ! -executable -exec install -D -m644 {} %{buildroot}%{_libexecdir}/kselftests/livepatch/{} \;
+popd
+%endif
+
###
### clean
###
@@ -1702,6 +2308,9 @@ rm -rf $RPM_BUILD_ROOT/usr/tmp-headers
#
# This macro defines a %%post script for a kernel*-devel package.
# %%kernel_devel_post [<subpackage>]
+# Note we don't run hardlink if ostree is in use, as ostree is
+# a far more sophisticated hardlink implementation.
+# https://github.com/projectatomic/rpm-ostree/commit/58a79056a889be8814aa51f507b2c7a4dccee526
#
%define kernel_devel_post() \
%{expand:%%post %{?1:%{1}-}devel}\
@@ -1709,11 +2318,11 @@ if [ -f /etc/sysconfig/kernel ]\
then\
. /etc/sysconfig/kernel || exit $?\
fi\
-if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink ]\
+if [ "$HARDLINK" != "no" -a -x /usr/sbin/hardlink -a ! -e /run/ostree-booted ] \
then\
(cd /usr/src/kernels/%{KVERREL}%{?1:+%{1}} &&\
/usr/bin/find . -type f | while read f; do\
- hardlink -c /usr/src/kernels/*.fc*.*/$f $f\
+ hardlink -c /usr/src/kernels/*%{?dist}.*/$f $f\
done)\
fi\
%{nil}
@@ -1732,6 +2341,19 @@ fi\
%{nil}
#
+# This macro defines a %%post script for a kernel*-modules-internal package.
+# It also defines a %%postun script that does the same thing.
+# %%kernel_modules_internal_post [<subpackage>]
+#
+%define kernel_modules_internal_post() \
+%{expand:%%post %{?1:%{1}-}modules-internal}\
+/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
+%{nil}\
+%{expand:%%postun %{?1:%{1}-}modules-internal}\
+/sbin/depmod -a %{KVERREL}%{?1:+%{1}}\
+%{nil}
+
+#
# This macro defines a %%post script for a kernel*-modules package.
# It also defines a %%postun script that does the same thing.
# %%kernel_modules_post [<subpackage>]
@@ -1762,6 +2384,7 @@ fi\
%{expand:%%kernel_devel_post %{?-v*}}\
%{expand:%%kernel_modules_post %{?-v*}}\
%{expand:%%kernel_modules_extra_post %{?-v*}}\
+%{expand:%%kernel_modules_internal_post %{?-v*}}\
%{expand:%%kernel_variant_posttrans %{?-v*}}\
%{expand:%%post %{?-v*:%{-v*}-}core}\
%{-r:\
@@ -1791,6 +2414,11 @@ fi}\
%kernel_variant_preun debug
%kernel_variant_post -v debug
+%if %{with_zfcpdump}
+%kernel_variant_preun zfcpdump
+%kernel_variant_post -v zfcpdump
+%endif
+
if [ -x /sbin/ldconfig ]
then
/sbin/ldconfig -X || exit $?
@@ -1810,8 +2438,46 @@ fi
/usr/*-linux-gnu/include/*
%endif
+%if %{with_kernel_abi_whitelists}
+%files -n kernel-abi-whitelists
+/lib/modules/kabi-*
+%endif
+
+%if %{with_kabidw_base}
+%ifarch x86_64 s390x ppc64 ppc64le aarch64
+%files kabidw-base
+%defattr(-,root,root)
+/kabidw-base/%{_target_cpu}/*
+%endif
+%endif
+
+# only some architecture builds need kernel-doc
+%if %{with_doc}
+%files doc
+%defattr(-,root,root)
+%{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation/*
+%dir %{_datadir}/doc/kernel-doc-%{rpmversion}/Documentation
+%dir %{_datadir}/doc/kernel-doc-%{rpmversion}
+%endif
+
+%if %{with_selftests}
+%files selftests-internal
+%{_libexecdir}/ksamples
+%{_libexecdir}/kselftests
+%endif
+
# empty meta-package
+%ifnarch %nobuildarches noarch
%files
+%endif
+
+%if %{with_gcov}
+%ifarch x86_64 s390x ppc64le aarch64
+%files gcov
+%{_builddir}
+%endif
+%endif
+
# 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}}
@@ -1819,7 +2485,7 @@ fi
#
# This macro defines the %%files sections for a kernel package
# and its devel and debuginfo packages.
-# %%kernel_variant_files [-k vmlinux] <condition> <subpackage>
+# %%kernel_variant_files [-k vmlinux] <condition> <subpackage> <without_modules>
#
%define kernel_variant_files(k:) \
%if %{2}\
@@ -1836,7 +2502,9 @@ fi
%endif\
%attr(600,root,root) /lib/modules/%{KVERREL}%{?3:+%{3}}/System.map\
%ghost /boot/System.map-%{KVERREL}%{?3:+%{3}}\
+/lib/modules/%{KVERREL}%{?3:+%{3}}/symvers.gz\
/lib/modules/%{KVERREL}%{?3:+%{3}}/config\
+%ghost /boot/symvers-%{KVERREL}%{?3:+%{3}}.gz\
%ghost /boot/config-%{KVERREL}%{?3:+%{3}}\
%ghost /boot/initramfs-%{KVERREL}%{?3:+%{3}}.img\
%dir /lib/modules\
@@ -1846,6 +2514,12 @@ fi
/lib/modules/%{KVERREL}%{?3:+%{3}}/source\
/lib/modules/%{KVERREL}%{?3:+%{3}}/updates\
/lib/modules/%{KVERREL}%{?3:+%{3}}/bls.conf\
+%{_datadir}/doc/kernel-keys/%{KVERREL}%{?3:+%{3}}/kernel-signing-ca.cer\
+%ifarch s390x ppc64le\
+%if 0%{!?4:1}\
+%{_datadir}/doc/kernel-keys/%{KVERREL}%{?3:+%{3}}/%{signing_key_filename} \
+%endif\
+%endif\
%if %{1}\
/lib/modules/%{KVERREL}%{?3:+%{3}}/vdso\
%endif\
@@ -1855,7 +2529,13 @@ fi
%defverify(not mtime)\
/usr/src/kernels/%{KVERREL}%{?3:+%{3}}\
%{expand:%%files %{?3:%{3}-}modules-extra}\
+%config(noreplace) /etc/modprobe.d/*-blacklist.conf\
/lib/modules/%{KVERREL}%{?3:+%{3}}/extra\
+%%defattr(-,root,root)\
+%defverify(not mtime)\
+/usr/src/kernels/%{KVERREL}%{?3:+%{3}}\
+%{expand:%%files %{?3:%{3}-}modules-internal}\
+/lib/modules/%{KVERREL}%{?3:+%{3}}/internal\
%if %{with_debuginfo}\
%ifnarch noarch\
%{expand:%%files -f debuginfo%{?3}.list %{?3:%{3}-}debuginfo}\
@@ -1870,12 +2550,29 @@ fi
%kernel_variant_files %{_use_vdso} %{with_up}
%kernel_variant_files %{_use_vdso} %{with_debug} debug
%kernel_variant_files %{use_vdso} %{with_pae} lpae
+%kernel_variant_files %{_use_vdso} %{with_zfcpdump} zfcpdump 1
+
+%define kernel_variant_ipaclones(k:) \
+%if %{1}\
+%if %{with_ipaclones}\
+%{expand:%%files %{?2:%{2}-}ipaclones-internal}\
+%defattr(-,root,root)\
+%defverify(not mtime)\
+/usr/src/kernels/%{KVERREL}%{?2:+%{2}}-ipaclones\
+%endif\
+%endif\
+%{nil}
+
+%kernel_variant_ipaclones %{with_up}
# plz don't put in a version string unless you're going to tag
# and build.
#
#
%changelog
+* Thu Dec 19 2019 Justin M. Forbes <jforbes@fedoraproject.org> - 5.4.5-300
+- Linux v5.4.5 rebase
+
* Wed Dec 18 2019 Laura Abbott <labbott@redhat.com> - 5.3.18-300
- Linux v5.3.18
diff --git a/lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch b/lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
deleted file mode 100644
index 5e6d6611e..000000000
--- a/lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From: Josh Boyer <jwboyer@fedoraproject.org>
-Date: Mon, 11 Nov 2013 08:39:16 -0500
-Subject: [PATCH] lib/cpumask: Make CPUMASK_OFFSTACK usable without debug
- dependency
-
-When CPUMASK_OFFSTACK was added in 2008, it was dependent upon
-DEBUG_PER_CPU_MAPS being enabled, or an architecture could select it.
-The debug dependency adds additional overhead that isn't required for
-operation of the feature, and we need CPUMASK_OFFSTACK to increase the
-NR_CPUS value beyond 512 on x86. We drop the current dependency and make
-sure SMP is set.
-
-Bugzilla: N/A
-Upstream-status: Nak'd, supposedly replacement coming to auto-select
-
-Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
----
- lib/Kconfig | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/lib/Kconfig b/lib/Kconfig
-index 3a2ef67db6c7..4af1e7e5a611 100644
---- a/lib/Kconfig
-+++ b/lib/Kconfig
-@@ -396,7 +396,8 @@ config CHECK_SIGNATURE
- bool
-
- config CPUMASK_OFFSTACK
-- bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
-+ bool "Force CPU masks off stack"
-+ depends on SMP
- help
- Use dynamic allocation for cpumask_var_t, instead of putting
- them on the stack. This is a bit more expensive, but avoids
diff --git a/lift-lockdown-sysrq.patch b/lift-lockdown-sysrq.patch
new file mode 100644
index 000000000..b465143fb
--- /dev/null
+++ b/lift-lockdown-sysrq.patch
@@ -0,0 +1,287 @@
+From c2eb371cede78df9a47bf3a125aa9a45dd833da7 Mon Sep 17 00:00:00 2001
+From: Kyle McMartin <kyle@redhat.com>
+Date: Mon, 9 Apr 2018 09:52:45 +0100
+Subject: [PATCH] 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 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>
+cc: x86@kernel.org
+Signed-off-by: Jeremy Cline <jcline@redhat.com>
+---
+ arch/x86/include/asm/setup.h | 2 ++
+ drivers/input/misc/uinput.c | 1 +
+ drivers/tty/sysrq.c | 27 +++++++++++++---------
+ include/linux/input.h | 5 +++++
+ include/linux/sysrq.h | 8 ++++++-
+ kernel/debug/kdb/kdb_main.c | 2 +-
+ security/lockdown/Kconfig | 11 +++++++++
+ security/lockdown/lockdown.c | 43 ++++++++++++++++++++++++++++++++++++
+ 8 files changed, 87 insertions(+), 12 deletions(-)
+
+diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
+index ed8ec011a9fd..8daf633a5347 100644
+--- a/arch/x86/include/asm/setup.h
++++ b/arch/x86/include/asm/setup.h
+@@ -9,6 +9,8 @@
+ #include <linux/linkage.h>
+ #include <asm/page_types.h>
+
++#define LOCKDOWN_LIFT_KEY 'x'
++
+ #ifdef __i386__
+
+ #include <linux/pfn.h>
+diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c
+index 84051f20b18a..583ab2bc1916 100644
+--- a/drivers/input/misc/uinput.c
++++ b/drivers/input/misc/uinput.c
+@@ -353,6 +353,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 573b2055173c..99082faafc44 100644
+--- a/drivers/tty/sysrq.c
++++ b/drivers/tty/sysrq.c
+@@ -480,6 +480,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 */
++ /* x: May be registered on x86_64 for disabling secure boot */
+ NULL, /* x */
+ /* y: May be registered on sparc64 for global register dump */
+ NULL, /* y */
+@@ -523,7 +524,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
+ sysrq_key_table[i] = op_p;
+ }
+
+-void __handle_sysrq(int key, bool check_mask)
++void __handle_sysrq(int key, unsigned int from)
+ {
+ struct sysrq_key_op *op_p;
+ int orig_log_level;
+@@ -546,11 +547,15 @@ void __handle_sysrq(int key, bool check_mask)
+
+ op_p = __sysrq_get_key_op(key);
+ if (op_p) {
+- /*
+- * Should we check for enabled operations (/proc/sysrq-trigger
+- * should not) and is the invoked operation enabled?
+- */
+- if (!check_mask || sysrq_on_mask(op_p->enable_mask)) {
++ /* Ban synthetic events from some sysrq functionality */
++ if ((from == SYSRQ_FROM_PROC || from == SYSRQ_FROM_SYNTHETIC) &&
++ op_p->enable_mask & SYSRQ_DISABLE_USERSPACE) {
++ printk("This sysrq operation is disabled from userspace.\n");
++ } else if (from == SYSRQ_FROM_KERNEL || sysrq_on_mask(op_p->enable_mask)) {
++ /*
++ * Should we check for enabled operations (/proc/sysrq-trigger
++ * should not) and is the invoked operation enabled?
++ */
+ pr_info("%s\n", op_p->action_msg);
+ console_loglevel = orig_log_level;
+ op_p->handler(key);
+@@ -585,7 +590,7 @@ void __handle_sysrq(int key, bool check_mask)
+ void handle_sysrq(int key)
+ {
+ if (sysrq_on())
+- __handle_sysrq(key, true);
++ __handle_sysrq(key, SYSRQ_FROM_KERNEL);
+ }
+ EXPORT_SYMBOL(handle_sysrq);
+
+@@ -665,7 +670,7 @@ static void sysrq_do_reset(struct timer_list *t)
+ static void sysrq_handle_reset_request(struct sysrq_state *state)
+ {
+ if (state->reset_requested)
+- __handle_sysrq(sysrq_xlate[KEY_B], false);
++ __handle_sysrq(sysrq_xlate[KEY_B], SYSRQ_FROM_KERNEL);
+
+ if (sysrq_reset_downtime_ms)
+ mod_timer(&state->keyreset_timer,
+@@ -818,8 +823,10 @@ static bool sysrq_handle_keypress(struct sysrq_state *sysrq,
+
+ default:
+ if (sysrq->active && value && value != 2) {
++ int from = sysrq->handle.dev->flags & INPUTDEV_FLAGS_SYNTHETIC ?
++ SYSRQ_FROM_SYNTHETIC : 0;
+ sysrq->need_reinject = false;
+- __handle_sysrq(sysrq_xlate[code], true);
++ __handle_sysrq(sysrq_xlate[code], from);
+ }
+ break;
+ }
+@@ -1102,7 +1109,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
+
+ if (get_user(c, buf))
+ return -EFAULT;
+- __handle_sysrq(c, false);
++ __handle_sysrq(c, SYSRQ_FROM_PROC);
+ }
+
+ return count;
+diff --git a/include/linux/input.h b/include/linux/input.h
+index 94f277cd806a..8539afa2c001 100644
+--- a/include/linux/input.h
++++ b/include/linux/input.h
+@@ -48,6 +48,7 @@ enum input_clock_type {
+ * @phys: physical path to the device in the system hierarchy
+ * @uniq: unique identification code for the device (if device has it)
+ * @id: id of the device (struct input_id)
++ * @flags: input device flags (SYNTHETIC, etc.)
+ * @propbit: bitmap of device properties and quirks
+ * @evbit: bitmap of types of events supported by the device (EV_KEY,
+ * EV_REL, etc.)
+@@ -134,6 +135,8 @@ struct input_dev {
+ const char *uniq;
+ struct input_id id;
+
++ unsigned int flags;
++
+ unsigned long propbit[BITS_TO_LONGS(INPUT_PROP_CNT)];
+
+ unsigned long evbit[BITS_TO_LONGS(EV_CNT)];
+@@ -204,6 +207,8 @@ struct input_dev {
+ };
+ #define to_input_dev(d) container_of(d, struct input_dev, dev)
+
++#define INPUTDEV_FLAGS_SYNTHETIC 0x000000001
++
+ /*
+ * 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 8c71874e8485..7de1f08b60a9 100644
+--- a/include/linux/sysrq.h
++++ b/include/linux/sysrq.h
+@@ -29,6 +29,8 @@
+ #define SYSRQ_ENABLE_BOOT 0x0080
+ #define SYSRQ_ENABLE_RTNICE 0x0100
+
++#define SYSRQ_DISABLE_USERSPACE 0x00010000
++
+ struct sysrq_key_op {
+ void (*handler)(int);
+ char *help_msg;
+@@ -43,8 +45,12 @@ struct sysrq_key_op {
+ * are available -- else NULL's).
+ */
+
++#define SYSRQ_FROM_KERNEL 0x0001
++#define SYSRQ_FROM_PROC 0x0002
++#define SYSRQ_FROM_SYNTHETIC 0x0004
++
+ void handle_sysrq(int key);
+-void __handle_sysrq(int key, bool check_mask);
++void __handle_sysrq(int key, unsigned int from);
+ int register_sysrq_key(int key, struct sysrq_key_op *op);
+ 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 4567fe998c30..d05142ef44c4 100644
+--- a/kernel/debug/kdb/kdb_main.c
++++ b/kernel/debug/kdb/kdb_main.c
+@@ -1981,7 +1981,7 @@ static int kdb_sr(int argc, const char **argv)
+ return KDB_ARGCOUNT;
+
+ kdb_trap_printk++;
+- __handle_sysrq(*argv[1], check_mask);
++ __handle_sysrq(*argv[1], check_mask ? SYSRQ_FROM_KERNEL : 0);
+ kdb_trap_printk--;
+
+ return 0;
+diff --git a/security/lockdown/Kconfig b/security/lockdown/Kconfig
+index e84ddf484010..20e979178e1c 100644
+--- a/security/lockdown/Kconfig
++++ b/security/lockdown/Kconfig
+@@ -45,3 +45,14 @@ config LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY
+ disabled.
+
+ endchoice
++
++config ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
++ bool "Allow the kernel lockdown to be lifted by SysRq"
++ depends on SECURITY_LOCKDOWN_LSM
++ depends on !LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY
++ depends on !LOCK_DOWN_KERNEL_FORCE_INTEGRITY
++ depends on MAGIC_SYSRQ
++ depends on X86
++ help
++ Allow setting the lockdown mode to "none" by pressing a SysRq key
++ combination on a wired keyboard. On x86, this is SysRq+x
+diff --git a/security/lockdown/lockdown.c b/security/lockdown/lockdown.c
+index 8a10b43daf74..df4662257309 100644
+--- a/security/lockdown/lockdown.c
++++ b/security/lockdown/lockdown.c
+@@ -13,6 +13,8 @@
+ #include <linux/security.h>
+ #include <linux/export.h>
+ #include <linux/lsm_hooks.h>
++#include <linux/sysrq.h>
++#include <asm/setup.h>
+
+ static enum lockdown_reason kernel_locked_down;
+
+@@ -179,6 +181,47 @@ static int __init lockdown_secfs_init(void)
+ return PTR_ERR_OR_ZERO(dentry);
+ }
+
++#ifdef CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ
++
++/*
++ * Take the kernel out of lockdown mode.
++ */
++static void lift_kernel_lockdown(void)
++{
++ pr_notice("Lifting lockdown\n");
++ kernel_locked_down = LOCKDOWN_NONE;
++}
++
++/*
++ * Allow lockdown to be lifted by pressing something like SysRq+x (and not by
++ * echoing the appropriate letter into the sysrq-trigger file).
++ */
++static void sysrq_handle_lockdown_lift(int key)
++{
++ if (kernel_locked_down)
++ lift_kernel_lockdown();
++}
++
++static struct sysrq_key_op lockdown_lift_sysrq_op = {
++ .handler = sysrq_handle_lockdown_lift,
++ .help_msg = "unSB(x)",
++ .action_msg = "Disabling Secure Boot restrictions",
++ .enable_mask = SYSRQ_DISABLE_USERSPACE,
++};
++
++static int __init lockdown_lift_sysrq(void)
++{
++ if (kernel_locked_down) {
++ lockdown_lift_sysrq_op.help_msg[5] = LOCKDOWN_LIFT_KEY;
++ register_sysrq_key(LOCKDOWN_LIFT_KEY, &lockdown_lift_sysrq_op);
++ }
++ return 0;
++}
++
++late_initcall(lockdown_lift_sysrq);
++
++#endif /* CONFIG_ALLOW_LOCKDOWN_LIFT_BY_SYSRQ */
++
+ core_initcall(lockdown_secfs_init);
+
+ #ifdef CONFIG_SECURITY_LOCKDOWN_LSM_EARLY
+--
+2.21.0
+
diff --git a/lis3-improve-handling-of-null-rate.patch b/lis3-improve-handling-of-null-rate.patch
deleted file mode 100644
index 1dd00b645..000000000
--- a/lis3-improve-handling-of-null-rate.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From: =?UTF-8?q?=C3=89ric=20Piel?= <eric.piel@tremplin-utc.net>
-Date: Thu, 3 Nov 2011 16:22:40 +0100
-Subject: [PATCH] lis3: improve handling of null rate
-
-When obtaining a rate of 0, we would disable the device supposely
-because it seems to behave incorectly. It actually only comes from the
-fact that the device is off and on lis3dc it's reflected in the rate.
-So handle this nicely by just waiting a safe time, and then using the
-device as normally.
-
-Bugzilla: 785814
-Upstream-status: ??
-
-Signed-off-by: ??ric Piel <eric.piel@tremplin-utc.net>
----
- drivers/misc/lis3lv02d/lis3lv02d.c | 16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
-index fb8705fc3aca..50c2b93c1273 100644
---- a/drivers/misc/lis3lv02d/lis3lv02d.c
-+++ b/drivers/misc/lis3lv02d/lis3lv02d.c
-@@ -216,7 +216,8 @@ static void lis3lv02d_get_xyz(struct lis3lv02d *lis3, int *x, int *y, int *z)
- /* conversion btw sampling rate and the register values */
- static int lis3_12_rates[4] = {40, 160, 640, 2560};
- static int lis3_8_rates[2] = {100, 400};
--static int lis3_3dc_rates[16] = {0, 1, 10, 25, 50, 100, 200, 400, 1600, 5000};
-+/* LIS3DC: 0 = power off, above 9 = undefined */
-+static int lis3_3dc_rates[16] = {0, 1, 10, 25, 50, 100, 200, 400, 1600, 5000, -1, -1, -1, -1, -1, -1};
- static int lis3_3dlh_rates[4] = {50, 100, 400, 1000};
-
- /* ODR is Output Data Rate */
-@@ -231,12 +232,11 @@ static int lis3lv02d_get_odr(struct lis3lv02d *lis3)
- return lis3->odrs[(ctrl >> shift)];
- }
-
--static int lis3lv02d_get_pwron_wait(struct lis3lv02d *lis3)
-+static int lis3lv02d_wait_pwron(struct lis3lv02d *lis3)
- {
- int div = lis3lv02d_get_odr(lis3);
--
-- if (WARN_ONCE(div == 0, "device returned spurious data"))
-- return -ENXIO;
-+ if (div <= 0)
-+ div = 1; /* maximum delay */
-
- /* LIS3 power on delay is quite long */
- msleep(lis3->pwron_delay / div);
-@@ -303,7 +303,7 @@ static int lis3lv02d_selftest(struct lis3lv02d *lis3, s16 results[3])
-
- lis3->read(lis3, ctlreg, &reg);
- lis3->write(lis3, ctlreg, (reg | selftest));
-- ret = lis3lv02d_get_pwron_wait(lis3);
-+ ret = lis3lv02d_wait_pwron(lis3);
- if (ret)
- goto fail;
-
-@@ -314,7 +314,7 @@ static int lis3lv02d_selftest(struct lis3lv02d *lis3, s16 results[3])
-
- /* back to normal settings */
- lis3->write(lis3, ctlreg, reg);
-- ret = lis3lv02d_get_pwron_wait(lis3);
-+ ret = lis3lv02d_wait_pwron(lis3);
- if (ret)
- goto fail;
-
-@@ -434,7 +434,7 @@ int lis3lv02d_poweron(struct lis3lv02d *lis3)
- }
- }
-
-- err = lis3lv02d_get_pwron_wait(lis3);
-+ err = lis3lv02d_wait_pwron(lis3);
- if (err)
- return err;
-
diff --git a/mod-extra-blacklist.sh b/mod-extra-blacklist.sh
new file mode 100755
index 000000000..9569ef6f2
--- /dev/null
+++ b/mod-extra-blacklist.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+buildroot="$1"
+kernel_base="$2"
+
+blacklist()
+{
+ cat > "$buildroot/etc/modprobe.d/$1-blacklist.conf" <<-__EOF__
+ # This kernel module can be automatically loaded by non-root users. To
+ # enhance system security, the module is blacklisted by default to ensure
+ # system administrators make the module available for use as needed.
+ # See https://access.redhat.com/articles/3760101 for more details.
+ #
+ # Remove the blacklist by adding a comment # at the start of the line.
+ blacklist $1
+__EOF__
+}
+
+check_blacklist()
+{
+ if modinfo "$1" | grep -q '^alias:\s\+net-'; then
+ mod="${1##*/}"
+ mod="${mod%.ko*}"
+ echo "$mod has an alias that allows auto-loading. Blacklisting."
+ blacklist "$mod"
+ fi
+}
+
+foreachp()
+{
+ P=$(nproc)
+ bgcount=0
+ while read mod; do
+ $1 "$mod" &
+
+ bgcount=$((bgcount + 1))
+ if [ $bgcount -eq $P ]; then
+ wait -n
+ bgcount=$((bgcount - 1))
+ fi
+ done
+
+ wait
+}
+
+[ -d "$buildroot/etc/modprobe.d/" ] || mkdir -p "$buildroot/etc/modprobe.d/"
+find "$buildroot/$kernel_base/extra" -name "*.ko*" | \
+ foreachp check_blacklist
diff --git a/mod-extra.list b/mod-extra.list
index d58f80283..8140f5c9e 100644
--- a/mod-extra.list
+++ b/mod-extra.list
@@ -48,6 +48,7 @@ ems_pci.ko
ems_usb.ko
esd_usb2.ko
esi-sir.ko
+floppy.ko
gamecon.ko
gf2k.ko
gfs2.ko
@@ -113,6 +114,7 @@ orinoco_nortel.ko
orinoco_pci.ko
orinoco_plx.ko
orinoco_usb.ko
+pcspkr.ko
plx_pci.ko
pn_pep.ko
pppoatm.ko
diff --git a/mod-extra.list.fedora b/mod-extra.list.fedora
new file mode 100644
index 000000000..8140f5c9e
--- /dev/null
+++ b/mod-extra.list.fedora
@@ -0,0 +1,196 @@
+6pack.ko
+a3d.ko
+act200l-sir.ko
+actisys-sir.ko
+adi.ko
+aer_inject.ko
+af_802154.ko
+affs.ko
+ali-ircc.ko
+analog.ko
+appletalk.ko
+atm.ko
+avma1_cs.ko
+avm_cs.ko
+avmfritz.ko
+ax25.ko
+b1.ko
+bas_gigaset.ko
+batman-adv.ko
+baycom_par.ko
+baycom_ser_fdx.ko
+baycom_ser_hdx.ko
+befs.ko
+bpqether.ko
+br2684.ko
+capi.ko
+c_can.ko
+c_can_platform.ko
+clip.ko
+cobra.ko
+coda.ko
+cuse.ko
+db9.ko
+dccp_diag.ko
+dccp_ipv4.ko
+dccp_ipv6.ko
+dccp.ko
+dccp_probe.ko
+diva_idi.ko
+divas.ko
+dlm.ko
+ds1wm.ko
+ds2482.ko
+ds2490.ko
+dss1_divert.ko
+elsa_cs.ko
+ems_pci.ko
+ems_usb.ko
+esd_usb2.ko
+esi-sir.ko
+floppy.ko
+gamecon.ko
+gf2k.ko
+gfs2.ko
+gigaset.ko
+girbil-sir.ko
+grip.ko
+grip_mp.ko
+guillemot.ko
+hdlcdrv.ko
+hfc4s8s_l1.ko
+hfcmulti.ko
+hfcpci.ko
+hisax.ko
+hwa-rc.ko
+hysdn.ko
+i2400m.ko
+i2400m-sdio.ko
+i2400m-usb.ko
+ieee802154.ko
+iforce.ko
+interact.ko
+ipddp.ko
+ipx.ko
+isdn.ko
+joydump.ko
+kingsun-sir.ko
+ks959-sir.ko
+ksdazzle-sir.ko
+kvaser_pci.ko
+l2tp_core.ko
+l2tp_debugfs.ko
+l2tp_eth.ko
+l2tp_ip.ko
+l2tp_netlink.ko
+l2tp_ppp.ko
+lec.ko
+ma600-sir.ko
+magellan.ko
+mcp2120-sir.ko
+mISDN_core.ko
+mISDN_dsp.ko
+mkiss.ko
+mptbase.ko
+mptctl.ko
+mptfc.ko
+nci.ko
+ncpfs.ko
+netjet.ko
+netrom.ko
+nfc.ko
+nilfs2.ko
+ocfs2_dlmfs.ko
+ocfs2_dlm.ko
+ocfs2.ko
+ocfs2_nodemanager.ko
+ocfs2_stackglue.ko
+ocfs2_stack_o2cb.ko
+ocfs2_stack_user.ko
+old_belkin-sir.ko
+orinoco_cs.ko
+orinoco.ko
+orinoco_nortel.ko
+orinoco_pci.ko
+orinoco_plx.ko
+orinoco_usb.ko
+pcspkr.ko
+plx_pci.ko
+pn_pep.ko
+pppoatm.ko
+rds.ko
+rds_rdma.ko
+rds_tcp.ko
+rose.ko
+sch_atm.ko
+sch_cbq.ko
+sch_choke.ko
+sch_drr.ko
+sch_dsmark.ko
+sch_etf.ko
+sch_gred.ko
+sch_mqprio.ko
+sch_multiq.ko
+sch_netem.ko
+sch_qfq.ko
+sch_red.ko
+sch_sfb.ko
+sch_teql.ko
+sctp.ko
+sctp_probe.ko
+sidewinder.ko
+sja1000.ko
+sja1000_platform.ko
+slcan.ko
+slip.ko
+softing_cs.ko
+softing.ko
+spaceball.ko
+spaceorb.ko
+stinger.ko
+sysv.ko
+tcp_bic.ko
+tcp_highspeed.ko
+tcp_htcp.ko
+tcp_hybla.ko
+tcp_illinois.ko
+tcp_lp.ko
+tcp_scalable.ko
+tcp_vegas.ko
+tcp_veno.ko
+tcp_westwood.ko
+tcp_yeah.ko
+tekram-sir.ko
+tmdc.ko
+toim3232-sir.ko
+trancevibrator.ko
+turbografx.ko
+twidjoy.ko
+ubifs.ko
+ufs.ko
+umc.ko
+usbip-core.ko
+usbip-host.ko
+uwb.ko
+vcan.ko
+vhci-hcd.ko
+w1_bq27000.ko
+w1_ds2408.ko
+w1_ds2423.ko
+w1_ds2431.ko
+w1_ds2433.ko
+w1_ds2760.ko
+w1_ds2780.ko
+w1_ds2781.ko
+w1_ds28e04.ko
+w1_smem.ko
+w1_therm.ko
+w6692.ko
+walkera0701.ko
+wanrouter.ko
+warrior.ko
+whci.ko
+wire.ko
+xpad.ko
+yam.ko
+zhenhua.ko
diff --git a/mod-extra.list.rhel b/mod-extra.list.rhel
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/mod-extra.list.rhel
diff --git a/mod-extra.sh b/mod-extra.sh
index d121bd0b1..7dc075b98 100755
--- a/mod-extra.sh
+++ b/mod-extra.sh
@@ -2,6 +2,10 @@
Dir=$1
List=$2
+Dest="extra"
+
+# Destination was specified on the command line
+test -n "$3" && Dest="$3"
pushd $Dir
rm -rf modnames
@@ -11,43 +15,45 @@ find . -name "*.ko" -type f > modnames
rm -rf dep.list dep2.list
rm -rf req.list req2.list
touch dep.list req.list
-cp $2 .
+cp "$List" .
-for dep in `cat modnames`
-do
- depends=`modinfo $dep | grep depends| cut -f2 -d":" | sed -e 's/^[ \t]*//'`
- [ -z "$depends" ] && continue;
- for mod in `echo $depends | sed -e 's/,/ /g'`
+# This variable needs to be exported because it is used in sub-script
+# executed by xargs
+export ListName=$(basename "$List")
+
+# NB: this loop runs 2000+ iterations. Try to be fast.
+NPROC=`nproc`
+[ -z "$NPROC" ] && NPROC=1
+cat modnames | xargs -r -n1 -P $NPROC sh -c '
+ dep=$1
+ depends=`modinfo $dep | sed -n -e "/^depends/ s/^depends:[ \t]*//p"`
+ [ -z "$depends" ] && exit
+ for mod in ${depends//,/ }
do
- match=`grep "^$mod.ko" mod-extra.list` ||:
- if [ -z "$match" ]
+ match=$(grep "^$mod.ko" "$ListName")
+ [ -z "$match" ] && continue
+ # check if the module we are looking at is in mod-extra too.
+ # if so we do not need to mark the dep as required.
+ mod2=${dep##*/} # same as `basename $dep`, but faster
+ match2=$(grep "^$mod2" "$ListName")
+ if [ -n "$match2" ]
then
+ #echo $mod2 >> notreq.list
continue
- else
- # check if the module we're looking at is in mod-extra too. if so
- # we don't need to mark the dep as required
- mod2=`basename $dep`
- match2=`grep "^$mod2" mod-extra.list` ||:
- if [ -n "$match2" ]
- then
- continue
- #echo $mod2 >> notreq.list
- else
- echo $mod.ko >> req.list
- fi
fi
+ echo $mod.ko >> req.list
done
-done
+' DUMMYARG0 # xargs appends MODNAME, which becomes $dep in the script above
sort -u req.list > req2.list
-sort -u mod-extra.list > mod-extra2.list
-join -v 1 mod-extra2.list req2.list > mod-extra3.list
+sort -u "$ListName" > modules2.list
+join -v 1 modules2.list req2.list > modules3.list
-for mod in `cat mod-extra3.list`
+for mod in $(cat modules3.list)
do
# get the path for the module
- modpath=`grep /$mod modnames` ||:
- [ -z "$modpath" ] && continue;
+ modpath=`grep /$mod modnames`
+ [ -z "$modpath" ] && continue
echo $modpath >> dep.list
done
@@ -56,7 +62,7 @@ sort -u dep.list > dep2.list
# now move the modules into the extra/ directory
for mod in `cat dep2.list`
do
- newpath=`dirname $mod | sed -e 's/kernel\//extra\//'`
+ newpath=`dirname $mod | sed -e "s/kernel\\//$Dest\//"`
mkdir -p $newpath
mv $mod $newpath
done
@@ -76,5 +82,5 @@ done
pushd $Dir
rm modnames dep.list dep2.list req.list req2.list
-rm mod-extra.list mod-extra2.list mod-extra3.list
+rm "$ListName" modules2.list modules3.list
popd
diff --git a/mod-internal.list b/mod-internal.list
new file mode 100644
index 000000000..9270dcc3f
--- /dev/null
+++ b/mod-internal.list
@@ -0,0 +1,4 @@
+mac80211_hwsim
+netdevsim
+pktgen
+rocker
diff --git a/namespaces-no-expert.patch b/namespaces-no-expert.patch
deleted file mode 100644
index d732f9d0a..000000000
--- a/namespaces-no-expert.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 235b02d70a6a9837896c2ff4ca9d03f172cc4281 Mon Sep 17 00:00:00 2001
-From: "kernel-team@fedoraproject.org" <kernel-team@fedoraproject.org>
-Date: Wed, 30 Jan 2013 10:55:31 -0500
-Subject: [PATCH] namespaces: no expert
-
-Bugzilla: N/A
-Upstream-status: Fedora mustard
----
- init/Kconfig | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/init/Kconfig b/init/Kconfig
-index 2934249fba46..19d9ee8c120b 100644
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -871,7 +871,7 @@ config SOCK_CGROUP_DATA
- endif # CGROUPS
-
- menuconfig NAMESPACES
-- bool "Namespaces support" if EXPERT
-+ bool "Namespaces support"
- depends on MULTIUSER
- default !EXPERT
- help
---
-2.14.3
-
diff --git a/no-pcspkr-modalias.patch b/no-pcspkr-modalias.patch
deleted file mode 100644
index 2ccd87202..000000000
--- a/no-pcspkr-modalias.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: "kernel-team@fedoraproject.org" <kernel-team@fedoraproject.org>
-Date: Thu, 29 Jul 2010 16:46:31 -0700
-Subject: [PATCH] no pcspkr modalias
-
-Bugzilla: N/A
-Upstream-status: Fedora mustard
----
- drivers/input/misc/pcspkr.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/input/misc/pcspkr.c b/drivers/input/misc/pcspkr.c
-index 56ddba21de84..23534f420e68 100644
---- a/drivers/input/misc/pcspkr.c
-+++ b/drivers/input/misc/pcspkr.c
-@@ -23,7 +23,6 @@
- MODULE_AUTHOR("Vojtech Pavlik <vojtech@ucw.cz>");
- MODULE_DESCRIPTION("PC Speaker beeper driver");
- MODULE_LICENSE("GPL");
--MODULE_ALIAS("platform:pcspkr");
-
- static int pcspkr_event(struct input_dev *dev, unsigned int type,
- unsigned int code, int value)
diff --git a/parallel_xz.sh b/parallel_xz.sh
new file mode 100755
index 000000000..bc08a548d
--- /dev/null
+++ b/parallel_xz.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+# Reads filenames on stdin, xz-compresses each in place.
+# Not optimal for "compress relatively few, large files" scenario!
+
+# How many xz's to run in parallel:
+procgroup=""
+while test "$#" != 0; do
+ # Get it from -jNUM
+ N="${1#-j}"
+ if test "$N" = "$1"; then
+ # Not -j<something> - warn and ignore
+ echo "parallel_xz: warning: unrecognized argument: '$1'"
+ else
+ procgroup="$N"
+ fi
+ shift
+done
+
+# If told to use only one cpu:
+test "$procgroup" || exec xargs -r xz
+test "$procgroup" = 1 && exec xargs -r xz
+
+# xz has some startup cost. If files are really small,
+# this cost might be significant. To combat this,
+# process several files (in sequence) by each xz process via -n 16:
+exec xargs -r -n 16 -P $procgroup xz
diff --git a/redhatsecureboot003.cer b/redhatsecureboot003.cer
new file mode 100644
index 000000000..439b75bf3
--- /dev/null
+++ b/redhatsecureboot003.cer
Binary files differ
diff --git a/redhatsecurebootca2.cer b/redhatsecurebootca2.cer
new file mode 100644
index 000000000..43502d6bc
--- /dev/null
+++ b/redhatsecurebootca2.cer
Binary files differ
diff --git a/scripts/create_headers_tarball.sh b/scripts/create_headers_tarball.sh
index 5ec563f8e..9a59f03a5 100755
--- a/scripts/create_headers_tarball.sh
+++ b/scripts/create_headers_tarball.sh
@@ -26,13 +26,14 @@ BASE=`grep "%define base_sublevel" kernel.spec| cut -d ' ' -f 3`
STABLE=`grep "%define stable_update" kernel.spec| cut -d ' ' -f 3`
RC=`grep "%global rcrev" kernel.spec| cut -d ' ' -f 3`
GITREV=`grep "%define gitrev" kernel.spec| cut -d ' ' -f 3`
+BUILDID=`grep "^%define buildid" kernel.spec| cut -d ' ' -f 3`
if [ $RELEASED -eq 0 ]; then
cd kernel-$MAJORVER.$BASE.fc??
NEWBASE=$(($BASE+1))
- KVER=$MAJORVER.$NEWBASE.0-0.rc$RC.git$GITREV.$BASERELEASE
- cd linux-$MAJORVER.$NEWBASE.0-0.rc$RC.git$GITREV.$BASERELEASE.fc*/
+ KVER=$MAJORVER.$NEWBASE.0-0.rc$RC.git$GITREV.$BASERELEASE$BUILDID
+ cd linux-$MAJORVER.$NEWBASE.0-0.rc$RC.git$GITREV.$BASERELEASE$BUILDID.fc*/
else
- cd kernel-$MAJORVER.$BASE.fc??/linux-$MAJORVER.$BASE.$STABLE-$BASERELEASE.fc*/
+ cd kernel-$MAJORVER.$BASE.fc??/linux-$MAJORVER.$BASE.$STABLE-$BASERELEASE$BUILDID.fc*/
KVER=$MAJORVER.$BASE.$STABLE-$BASERELEASE
fi
@@ -71,6 +72,7 @@ BASERELEASE=$(($BASERELEASE-1))
BASERELEASE=$BASERELEASE perl -p -i -e 's|%global baserelease.*|%global baserelease $ENV{'BASERELEASE'}|' kernel-headers.spec
if [ $RELEASED -eq 0 ]; then
+ [ -n "$BUILDID" ] && sed -i -e 's/^# define buildid .local/%define buildid '$BUILDID'/' kernel-headers.spec
RC=$RC perl -p -i -e 's|%global rcrev.*|%global rcrev $ENV{'RC'}|' kernel-headers.spec
GITREV=$GITREV perl -p -i -e 's|%define gitrev.*|%define gitrev $ENV{'GITREV'}|' kernel-headers.spec
rpmdev-bumpspec -c "Linux v$MAJORVER.$NEWBASE-rc$RC.git$GITREV" kernel-headers.spec
diff --git a/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch b/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch
deleted file mode 100644
index a19267cc1..000000000
--- a/scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 7afe9a8d7dca86a8f35250f21f5f0a62ea2fedf7 Mon Sep 17 00:00:00 2001
-From: "kernel-team@fedoraproject.org" <kernel-team@fedoraproject.org>
-Date: Fri, 10 Feb 2012 14:56:13 -0500
-Subject: [PATCH] scsi: sd_revalidate_disk prevent NULL ptr deref
-
-Bugzilla: 754518
-Upstream-status: Fedora mustard (might be worth dropping...)
----
- drivers/scsi/sd.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
-index 3d22fc3..07aec76 100644
---- a/drivers/scsi/sd.c
-+++ b/drivers/scsi/sd.c
-@@ -2825,7 +2825,7 @@ static inline u32 logical_to_sectors(struct scsi_device *sdev, u32 blocks)
- static int sd_revalidate_disk(struct gendisk *disk)
- {
- struct scsi_disk *sdkp = scsi_disk(disk);
-- struct scsi_device *sdp = sdkp->device;
-+ struct scsi_device *sdp;
- struct request_queue *q = sdkp->disk->queue;
- sector_t old_capacity = sdkp->capacity;
- unsigned char *buffer;
-@@ -2833,6 +2833,11 @@ static int sd_revalidate_disk(struct gendisk *disk)
- SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp,
- "sd_revalidate_disk\n"));
-
-+ if (WARN_ONCE((!sdkp), "Invalid scsi_disk from %p\n", disk))
-+ goto out;
-+
-+ sdp = sdkp->device;
-+
- /*
- * If the device is offline, don't try and read capacity or any
- * of the other niceties.
---
-2.5.0
-
diff --git a/secureboot.cer b/secureboot.cer
new file mode 100644
index 000000000..20e660479
--- /dev/null
+++ b/secureboot.cer
Binary files differ
diff --git a/securebootca.cer b/securebootca.cer
new file mode 100644
index 000000000..b2354007b
--- /dev/null
+++ b/securebootca.cer
Binary files differ
diff --git a/sources b/sources
index 2955a9a58..a3bc314ed 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
-SHA512 (linux-5.3.tar.xz) = 6b5edef47c319a3fa7f6c20a3e0903a5acd89ec75e32dc5f99adcb60c9fe118ea312722d9c3d27e2e3900afa2455afb86e83a8b6bb131009bc79ddbe6fb0595d
-SHA512 (patch-5.3.18.xz) = bd24cef37b19fc483d844bdfe7fafecae0bab61aa001a28f49d9339de9436aacaf264cc19d0546273ea8d0b2e9eecf3aadf4a207fcd687df24a79d5608446550
+SHA512 (linux-5.4.tar.xz) = 9f60f77e8ab972b9438ac648bed17551c8491d6585a5e85f694b2eaa4c623fbc61eb18419b2656b6795eac5deec0edaa04547fc6723fbda52256bd7f3486898f
+SHA512 (patch-5.4.3.xz) = 7146258dcd169552fdcc6ad02b709310e57d413be84c76061669712c840a6de3e8e104fdba763df284b465e0217a6e74435f1fb2e0faf16feb2d595193bd8a4a
+SHA512 (patch-5.4.5.xz) = 5c33d5db4d6787d7841a82dd8dc5b38dd80c5706bdaf9bd331e82173302a4cf3bc9c5e1d00f489d3d78b54bc1f8f82f34df2fcd47b1ab4ffb0a01dc7bdc06cff
diff --git a/update_scripts.sh b/update_scripts.sh
new file mode 100755
index 000000000..7cacfb6c1
--- /dev/null
+++ b/update_scripts.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+if [ -z $1 ]; then
+ exit 1
+fi
+
+TARGET=$1
+
+for i in $RPM_SOURCE_DIR/*.$TARGET; do
+ NEW=$(echo $i | sed -e "s/\.$TARGET//")
+ cp $i $NEW
+done
diff --git a/x509.genkey.fedora b/x509.genkey.fedora
new file mode 100644
index 000000000..2f90e1bce
--- /dev/null
+++ b/x509.genkey.fedora
@@ -0,0 +1,16 @@
+[ req ]
+default_bits = 4096
+distinguished_name = req_distinguished_name
+prompt = no
+x509_extensions = myexts
+
+[ req_distinguished_name ]
+O = Fedora
+CN = Fedora kernel signing key
+emailAddress = kernel-team@fedoraproject.org
+
+[ myexts ]
+basicConstraints=critical,CA:FALSE
+keyUsage=digitalSignature
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid
diff --git a/x509.genkey.rhel b/x509.genkey.rhel
new file mode 100644
index 000000000..b1bbe387f
--- /dev/null
+++ b/x509.genkey.rhel
@@ -0,0 +1,16 @@
+[ req ]
+default_bits = 3072
+distinguished_name = req_distinguished_name
+prompt = no
+x509_extensions = myexts
+
+[ req_distinguished_name ]
+O = Red Hat
+CN = Red Hat Enterprise Linux kernel signing key
+emailAddress = secalert@redhat.com
+
+[ myexts ]
+basicConstraints=critical,CA:FALSE
+keyUsage=digitalSignature
+subjectKeyIdentifier=hash
+authorityKeyIdentifier=keyid