summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--0001-ACPI-LPSS-Only-call-pwm_add_table-for-the-first-PWM-.patch70
-rw-r--r--0001-SUNRPC-Refactor-svc_set_num_threads.patch156
-rw-r--r--0001-ipv6-avoid-overflow-of-offset-in-ip6_find_1stfragopt.patch54
-rw-r--r--0001-platform-x86-Add-driver-for-ACPI-INT0002-Virtual-GPI.patch339
-rw-r--r--0001-platform-x86-thinkpad_acpi-guard-generic-hotkey-case.patch71
-rw-r--r--0002-NFSv4-Fix-callback-server-shutdown.patch155
-rw-r--r--0002-mfd-Add-Cherry-Trail-Whiskey-Cove-PMIC-driver.patch355
-rw-r--r--0002-platform-x86-thinkpad_acpi-add-mapping-for-new-hotke.patch158
-rw-r--r--0003-power-supply-core-Add-support-for-supplied-from-devi.patch57
-rw-r--r--0004-platform-x86-intel_cht_int33fe-Set-supplied-from-pro.patch48
-rw-r--r--0005-ACPI-PMIC-xpower-Add-support-for-the-GPI1-regulator-.patch80
-rw-r--r--0006-Input-axp20x-pek-Add-wakeup-support.patch67
-rw-r--r--0007-platform-x86-silead_dmi-Add-touchscreen-info-for-GP-.patch56
-rw-r--r--0008-platform-x86-silead_dmi-Add-touchscreen-info-for-PoV.patch59
-rw-r--r--0009-platform-x86-silead_dmi-Add-touchscreen-info-for-Pip.patch57
-rw-r--r--0010-Input-silead-Add-support-for-capactive-home-button-f.patch114
-rw-r--r--0011-Input-goodix-Add-support-for-capacitive-home-button.patch53
-rw-r--r--0012-Input-gpio_keys-Do-not-report-wake-button-presses-as.patch150
-rw-r--r--0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch32
-rw-r--r--0014-mmc-sdhci-acpi-Workaround-conflict-with-PCI-wifi-on-.patch143
-rw-r--r--0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch410
-rw-r--r--0016-Input-silead-Do-not-try-to-directly-access-the-GPIO-.patch54
-rw-r--r--2-2-nvme-Quirk-APST-on-Intel-600P-P3100-devices.patch33
-rw-r--r--Add-EFI-signature-data-types.patch50
-rw-r--r--Add-an-EFI-signature-blob-parser-and-key-loader.patch156
-rw-r--r--AllWinner-h3.patch1080
-rw-r--r--AllWinner-net-emac.patch1323
-rw-r--r--CVE-2017-11473.patch48
-rw-r--r--CVE-2017-7645.patch180
-rw-r--r--HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch74
-rw-r--r--KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch95
-rw-r--r--MODSIGN-Don-t-try-secure-boot-if-EFI-runtime-is-disa.patch32
-rw-r--r--MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch265
-rw-r--r--MODSIGN-Support-not-importing-certs-from-db.patch94
-rw-r--r--README.txt60
-rw-r--r--Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch105
-rw-r--r--arm-hikey-fixWiFi.patch500
-rw-r--r--arm-imx6-hummingboard2.patch10
-rw-r--r--arm-rk3288-tinker.patch573
-rw-r--r--arm-tegra-fix-gpu-iommu.patch95
-rw-r--r--arm-thermal-fixes.patch224
-rw-r--r--arm64-cavium-fixes.patch1789
-rw-r--r--arm64-hikey-fixes.patch77
-rw-r--r--baseconfig/CONFIG_ADXL345_I2C1
-rw-r--r--baseconfig/CONFIG_ADXL345_SPI1
-rw-r--r--baseconfig/CONFIG_ARM64_ERRATUM_8589211
-rw-r--r--baseconfig/CONFIG_BACKLIGHT_ARCXCNN1
-rw-r--r--baseconfig/CONFIG_BATTERY_LEGO_EV31
-rw-r--r--baseconfig/CONFIG_BCM_FLEXRM_MBOX1
-rw-r--r--baseconfig/CONFIG_BFQ_GROUP_IOSCHED1
-rw-r--r--baseconfig/CONFIG_BLK_DEV_HD1
-rw-r--r--baseconfig/CONFIG_BLK_DEV_THROTTLING_LOW1
-rw-r--r--baseconfig/CONFIG_BT_HCIUART_SERDEV1
-rw-r--r--baseconfig/CONFIG_CAN_HI311X1
-rw-r--r--baseconfig/CONFIG_CAN_MCBA_USB1
-rw-r--r--baseconfig/CONFIG_CAN_PEAK_PCIEFD1
-rw-r--r--baseconfig/CONFIG_CAN_VXCAN1
-rw-r--r--baseconfig/CONFIG_CEC_PLATFORM_DRIVERS1
-rw-r--r--baseconfig/CONFIG_COMMON_CLK_SI570 (renamed from baseconfig/arm/CONFIG_COMMON_CLK_SI570)0
-rw-r--r--baseconfig/CONFIG_CRYPTO_DEV_CCREE1
-rw-r--r--baseconfig/CONFIG_CRYPTO_DH2
-rw-r--r--baseconfig/CONFIG_DM_INTEGRITY1
-rw-r--r--baseconfig/CONFIG_DRM_DW_HDMI_AHB_AUDIO1
-rw-r--r--baseconfig/CONFIG_DRM_DW_HDMI_I2S_AUDIO2
-rw-r--r--baseconfig/CONFIG_DRM_FBDEV_OVERALLOC1
-rw-r--r--baseconfig/CONFIG_DRM_LVDS_ENCODER1
-rw-r--r--baseconfig/CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW1
-rw-r--r--baseconfig/CONFIG_DRM_PANEL_LG_LG4573 (renamed from baseconfig/x86/CONFIG_DRM_PANEL_LG_LG4573)0
-rw-r--r--baseconfig/CONFIG_DRM_PANEL_LVDS1
-rw-r--r--baseconfig/CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 (renamed from baseconfig/x86/CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00)0
-rw-r--r--baseconfig/CONFIG_DRM_PANEL_SAMSUNG_LD9040 (renamed from baseconfig/x86/CONFIG_DRM_PANEL_SAMSUNG_LD9040)0
-rw-r--r--baseconfig/CONFIG_DRM_PANEL_SAMSUNG_S6E3HA21
-rw-r--r--baseconfig/CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 (renamed from baseconfig/x86/i686/CONFIG_DRM_PANEL_SHARP_LQ101R1SX01)0
-rw-r--r--baseconfig/CONFIG_DRM_PANEL_SHARP_LS043T1LE01 (renamed from baseconfig/x86/i686/CONFIG_DRM_PANEL_SHARP_LS043T1LE01)0
-rw-r--r--baseconfig/CONFIG_DRM_PANEL_SITRONIX_ST7789V1
-rw-r--r--baseconfig/CONFIG_DRM_RCAR_DW_HDMI1
-rw-r--r--baseconfig/CONFIG_EARLY_PRINTK_USB_XDBC1
-rw-r--r--baseconfig/CONFIG_EDAC_GHES1
-rw-r--r--baseconfig/CONFIG_EDAC_MM_EDAC1
-rw-r--r--baseconfig/CONFIG_GPIO_FTGPIO0101
-rw-r--r--baseconfig/CONFIG_HD447801
-rw-r--r--baseconfig/CONFIG_HID_ACCUTOUCH1
-rw-r--r--baseconfig/CONFIG_HID_NTI1
-rw-r--r--baseconfig/CONFIG_HID_SENSOR_HUMIDITY1
-rw-r--r--baseconfig/CONFIG_HID_SENSOR_TEMP1
-rw-r--r--baseconfig/CONFIG_I2C_MUX_LTC43061
-rw-r--r--baseconfig/CONFIG_IEEE802154_CA82101
-rw-r--r--baseconfig/CONFIG_IEEE802154_CA8210_DEBUGFS1
-rw-r--r--baseconfig/CONFIG_INPUT_MPU30501
-rw-r--r--baseconfig/CONFIG_IOSCHED_BFQ1
-rw-r--r--baseconfig/CONFIG_IR_SIR1
-rw-r--r--baseconfig/CONFIG_JOYSTICK_PSXPAD_SPI1
-rw-r--r--baseconfig/CONFIG_JOYSTICK_PSXPAD_SPI_FF1
-rw-r--r--baseconfig/CONFIG_LEDS_DELL_NETBOOKS1
-rw-r--r--baseconfig/CONFIG_LIRC_SASEM1
-rw-r--r--baseconfig/CONFIG_LOAD_UEFI_KEYS1
-rw-r--r--baseconfig/CONFIG_LTC24971
-rw-r--r--baseconfig/CONFIG_LTC26321
-rw-r--r--baseconfig/CONFIG_MAX11181
-rw-r--r--baseconfig/CONFIG_MAX301021
-rw-r--r--baseconfig/CONFIG_MAX96111
-rw-r--r--baseconfig/CONFIG_MEDIA_CEC_RC1
-rw-r--r--baseconfig/CONFIG_MFD_CPCAP2
-rw-r--r--baseconfig/CONFIG_MFD_EXYNOS_LPASS1
-rw-r--r--baseconfig/CONFIG_MFD_TI_LMU1
-rw-r--r--baseconfig/CONFIG_MLX5_CORE_IPOIB1
-rw-r--r--baseconfig/CONFIG_MMC_SDHCI_XENON1
-rw-r--r--baseconfig/CONFIG_MODULE_SIG_UEFI1
-rw-r--r--baseconfig/CONFIG_MPU3050_I2C2
-rw-r--r--baseconfig/CONFIG_MQ_IOSCHED_KYBER1
-rw-r--r--baseconfig/CONFIG_NET_9P_XEN1
-rw-r--r--baseconfig/CONFIG_NET_DSA_LOOP1
-rw-r--r--baseconfig/CONFIG_NET_DSA_MT75301
-rw-r--r--baseconfig/CONFIG_NET_DSA_SMSC_LAN9303_I2C1
-rw-r--r--baseconfig/CONFIG_NET_DSA_SMSC_LAN9303_MDIO1
-rw-r--r--baseconfig/CONFIG_NET_SCH_DEFAULT1
-rw-r--r--baseconfig/CONFIG_NR_DEV_DAX (renamed from baseconfig/powerpc/CONFIG_NR_DEV_DAX)0
-rw-r--r--baseconfig/CONFIG_PCI_ENDPOINT1
-rw-r--r--baseconfig/CONFIG_PCI_ENDPOINT_TEST1
-rw-r--r--baseconfig/CONFIG_PCI_MSI_IRQ_DOMAIN1
-rw-r--r--baseconfig/CONFIG_PCI_SW_SWITCHTEC1
-rw-r--r--baseconfig/CONFIG_PINCTRL_TI_IODELAY1
-rw-r--r--baseconfig/CONFIG_RAS_CEC1
-rw-r--r--baseconfig/CONFIG_REGULATOR_CPCAP1
-rw-r--r--baseconfig/CONFIG_REGULATOR_TPS651321
-rw-r--r--baseconfig/CONFIG_REGULATOR_VCTRL1
-rw-r--r--baseconfig/CONFIG_RPMSG_CHAR1
-rw-r--r--baseconfig/CONFIG_RTL8723BS1
-rw-r--r--baseconfig/CONFIG_SENSORS_ASPEED1
-rw-r--r--baseconfig/CONFIG_SND_DESIGNWARE_PCM2
-rw-r--r--baseconfig/CONFIG_SND_FIREFACE1
-rw-r--r--baseconfig/CONFIG_SND_FIREWIRE_MOTU1
-rw-r--r--baseconfig/CONFIG_SND_I2S_HI6210_I2S1
-rw-r--r--baseconfig/CONFIG_SND_INTEL8X02
-rw-r--r--baseconfig/CONFIG_SND_INTEL8X0M2
-rw-r--r--baseconfig/CONFIG_SND_SOC_ADAU1761_I2C1
-rw-r--r--baseconfig/CONFIG_SND_SOC_ADAU1761_SPI1
-rw-r--r--baseconfig/CONFIG_SND_SOC_CS35L351
-rw-r--r--baseconfig/CONFIG_SND_SOC_DIO21251
-rw-r--r--baseconfig/CONFIG_SND_SOC_ES71341
-rw-r--r--baseconfig/CONFIG_SND_SOC_MAX989271
-rw-r--r--baseconfig/CONFIG_SND_SOC_NAU88241
-rw-r--r--baseconfig/CONFIG_SND_VIA82XX2
-rw-r--r--baseconfig/CONFIG_SND_VIA82XX_MODEM2
-rw-r--r--baseconfig/CONFIG_SRF041
-rw-r--r--baseconfig/CONFIG_SYSTEM_BLACKLIST_HASH_LIST1
-rw-r--r--baseconfig/CONFIG_TCG_CRB (renamed from baseconfig/x86/CONFIG_TCG_CRB)0
-rw-r--r--baseconfig/CONFIG_TEE1
-rw-r--r--baseconfig/CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS1
-rw-r--r--baseconfig/CONFIG_TIGON3_HWMON1
-rw-r--r--baseconfig/CONFIG_TOUCHSCREEN_TSC2007_IIO1
-rw-r--r--baseconfig/CONFIG_TYPEC_FUSB3021
-rw-r--r--baseconfig/CONFIG_TYPEC_TCPCI1
-rw-r--r--baseconfig/CONFIG_TYPEC_TCPM1
-rw-r--r--baseconfig/CONFIG_TYPEC_WCOVE1
-rw-r--r--baseconfig/CONFIG_UBIFS_FS_SECURITY1
-rw-r--r--baseconfig/CONFIG_USB_PCI1
-rw-r--r--baseconfig/CONFIG_USB_RAINSHADOW_CEC1
-rw-r--r--baseconfig/CONFIG_VL61801
-rw-r--r--baseconfig/CONFIG_VSOCKMON1
-rw-r--r--baseconfig/CONFIG_W1_SLAVE_DS24381
-rw-r--r--baseconfig/CONFIG_X86_MCELOG_LEGACY1
-rw-r--r--baseconfig/CONFIG_ZX_TDM1
-rw-r--r--baseconfig/arm/CONFIG_AK8975 (renamed from baseconfig/arm/armv7/armv7/CONFIG_AK8975)0
-rw-r--r--baseconfig/arm/CONFIG_BCM2835_THERMAL1
-rw-r--r--baseconfig/arm/CONFIG_BCM_VIDEOCORE1
-rw-r--r--baseconfig/arm/CONFIG_DEFAULT_MMAP_MIN_ADDR (renamed from baseconfig/arm/armv7/CONFIG_DEFAULT_MMAP_MIN_ADDR)0
-rw-r--r--baseconfig/arm/CONFIG_DRM_DW_HDMI (renamed from baseconfig/arm/armv7/CONFIG_DRM_DW_HDMI)0
-rw-r--r--baseconfig/arm/CONFIG_DRM_DW_HDMI_AHB_AUDIO (renamed from baseconfig/arm/armv7/CONFIG_DRM_DW_HDMI_AHB_AUDIO)0
-rw-r--r--baseconfig/arm/CONFIG_DRM_DW_HDMI_I2S_AUDIO1
-rw-r--r--baseconfig/arm/CONFIG_DRM_MESON_DW_HDMI1
-rw-r--r--baseconfig/arm/CONFIG_DRM_PANEL_JDI_LT070ME050001
-rw-r--r--baseconfig/arm/CONFIG_DRM_PANEL_LVDS1
-rw-r--r--baseconfig/arm/CONFIG_DRM_PANEL_SAMSUNG_S6E3HA21
-rw-r--r--baseconfig/arm/CONFIG_IIO_CROS_EC_LIGHT_PROX1
-rw-r--r--baseconfig/arm/CONFIG_KXSD9 (renamed from baseconfig/arm/armv7/armv7/CONFIG_KXSD9)0
-rw-r--r--baseconfig/arm/CONFIG_KXSD9_I2C (renamed from baseconfig/arm/armv7/armv7/CONFIG_KXSD9_I2C)0
-rw-r--r--baseconfig/arm/CONFIG_KXSD9_SPI (renamed from baseconfig/arm/armv7/armv7/CONFIG_KXSD9_SPI)0
-rw-r--r--baseconfig/arm/CONFIG_MFD_SPMI_PMIC (renamed from baseconfig/arm/arm64/CONFIG_MFD_SPMI_PMIC)0
-rw-r--r--baseconfig/arm/CONFIG_PCIE_DW_HOST1
-rw-r--r--baseconfig/arm/CONFIG_PCI_FTPCI1001
-rw-r--r--baseconfig/arm/CONFIG_RADIO_WL128X (renamed from baseconfig/arm/armv7/armv7/CONFIG_RADIO_WL128X)0
-rw-r--r--baseconfig/arm/CONFIG_ROCKCHIP_ANALOGIX_DP2
-rw-r--r--baseconfig/arm/CONFIG_ROCKCHIP_CDN_DP2
-rw-r--r--baseconfig/arm/CONFIG_ROCKCHIP_DW_HDMI2
-rw-r--r--baseconfig/arm/CONFIG_ROCKCHIP_DW_MIPI_DSI2
-rw-r--r--baseconfig/arm/CONFIG_ROCKCHIP_INNO_HDMI2
-rw-r--r--baseconfig/arm/CONFIG_SUN50I_A64_CCU1
-rw-r--r--baseconfig/arm/CONFIG_SUN5I_CCU1
-rw-r--r--baseconfig/arm/CONFIG_SUN6I_A31_CCU1
-rw-r--r--baseconfig/arm/CONFIG_SUN8I_A23_CCU1
-rw-r--r--baseconfig/arm/CONFIG_SUN8I_A33_CCU1
-rw-r--r--baseconfig/arm/CONFIG_SUN8I_H3_CCU2
-rw-r--r--baseconfig/arm/CONFIG_SUN8I_R_CCU1
-rw-r--r--baseconfig/arm/CONFIG_SUN9I_A80_CCU1
-rw-r--r--baseconfig/arm/CONFIG_SUNXI_CCU1
-rw-r--r--baseconfig/arm/CONFIG_TI_ST (renamed from baseconfig/arm/armv7/armv7/CONFIG_TI_ST)0
-rw-r--r--baseconfig/arm/CONFIG_USB_EHCI_HCD_ORION (renamed from baseconfig/arm/armv7/CONFIG_USB_EHCI_HCD_ORION)0
-rw-r--r--baseconfig/arm/CONFIG_VIDEO_BCM28351
-rw-r--r--baseconfig/arm/arm64/CONFIG_ACPI_BGRT1
-rw-r--r--baseconfig/arm/arm64/CONFIG_ARM64_RELOC_TEST1
-rw-r--r--baseconfig/arm/arm64/CONFIG_AXP20X_ADC1
-rw-r--r--baseconfig/arm/arm64/CONFIG_BATTERY_AXP20X1
-rw-r--r--baseconfig/arm/arm64/CONFIG_COMMON_CLK_HI655X1
-rw-r--r--baseconfig/arm/arm64/CONFIG_CRYPTO_DEV_CAVIUM_ZIP1
-rw-r--r--baseconfig/arm/arm64/CONFIG_CRYPTO_DEV_SAFEXCEL1
-rw-r--r--baseconfig/arm/arm64/CONFIG_EDAC_THUNDERX1
-rw-r--r--baseconfig/arm/arm64/CONFIG_GPIO_XLP1
-rw-r--r--baseconfig/arm/arm64/CONFIG_I2C_XLP9XX1
-rw-r--r--baseconfig/arm/arm64/CONFIG_K3_DMA2
-rw-r--r--baseconfig/arm/arm64/CONFIG_MMC_CAVIUM_THUNDERX1
-rw-r--r--baseconfig/arm/arm64/CONFIG_NET_XGENE_V21
-rw-r--r--baseconfig/arm/arm64/CONFIG_PHY_QCOM_QMP1
-rw-r--r--baseconfig/arm/arm64/CONFIG_PHY_QCOM_QUSB21
-rw-r--r--baseconfig/arm/arm64/CONFIG_PHY_QCOM_USB_HS (renamed from baseconfig/arm/CONFIG_PHY_QCOM_USB_HS)0
-rw-r--r--baseconfig/arm/arm64/CONFIG_PHY_QCOM_USB_HSIC (renamed from baseconfig/arm/CONFIG_PHY_QCOM_USB_HSIC)0
-rw-r--r--baseconfig/arm/arm64/CONFIG_QCOM_IOMMU1
-rw-r--r--baseconfig/arm/arm64/CONFIG_QCOM_IRQ_COMBINER (renamed from baseconfig/arm/CONFIG_QCOM_IRQ_COMBINER)0
-rw-r--r--baseconfig/arm/arm64/CONFIG_QCOM_L3_PMU1
-rw-r--r--baseconfig/arm/arm64/CONFIG_QCOM_SMD1
-rw-r--r--baseconfig/arm/arm64/CONFIG_SOC_TEGRA_FLOWCTRL1
-rw-r--r--baseconfig/arm/arm64/CONFIG_SPI_XLP1
-rw-r--r--baseconfig/arm/arm64/CONFIG_SUN4I_GPADC1
-rw-r--r--baseconfig/arm/arm64/CONFIG_SUN8I_H3_CCU1
-rw-r--r--baseconfig/arm/armv7/CONFIG_AHCI_DM8161
-rw-r--r--baseconfig/arm/armv7/CONFIG_AXP20X_ADC1
-rw-r--r--baseconfig/arm/armv7/CONFIG_BATTERY_AXP20X1
-rw-r--r--baseconfig/arm/armv7/CONFIG_COMMON_CLK_MAX778021
-rw-r--r--baseconfig/arm/armv7/CONFIG_CRYPTO_DEV_EXYNOS_RNG1
-rw-r--r--baseconfig/arm/armv7/CONFIG_HW_RANDOM_EXYNOS1
-rw-r--r--baseconfig/arm/armv7/CONFIG_MFD_PM8921_CORE1
-rw-r--r--baseconfig/arm/armv7/CONFIG_NVMEM_IMX_IIM1
-rw-r--r--baseconfig/arm/armv7/CONFIG_PCI_DRA7XX1
-rw-r--r--baseconfig/arm/armv7/CONFIG_PCI_DRA7XX_EP1
-rw-r--r--baseconfig/arm/armv7/CONFIG_PCI_DRA7XX_HOST1
-rw-r--r--baseconfig/arm/armv7/CONFIG_PL310_ERRATA_5883692
-rw-r--r--baseconfig/arm/armv7/CONFIG_PL310_ERRATA_7279152
-rw-r--r--baseconfig/arm/armv7/CONFIG_QCOM_PM8XXX_XOADC1
-rw-r--r--baseconfig/arm/armv7/CONFIG_SND_SOC_MAX980901
-rw-r--r--baseconfig/arm/armv7/CONFIG_SND_SOC_ODROID1
-rw-r--r--baseconfig/arm/armv7/CONFIG_SOC_DRA7XX (renamed from baseconfig/arm/armv7/armv7/CONFIG_SOC_DRA7XX)0
-rw-r--r--baseconfig/arm/armv7/CONFIG_SOC_TEGRA_FLOWCTRL1
-rw-r--r--baseconfig/arm/armv7/CONFIG_SUN4I_GPADC1
-rw-r--r--baseconfig/arm/armv7/CONFIG_SUN8I_H3_CCU1
-rw-r--r--baseconfig/arm/armv7/CONFIG_TWL4030_CORE1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_COMMON_CLK_SI5701
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_IMX7_PM_DOMAINS1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_MPU3050_I2C1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_PCI_DRA7XX1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_QMP1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_QUSB21
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_USB_HS1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_USB_HSIC1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_PL310_ERRATA_5883691
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_PL310_ERRATA_7279151
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_QCOM_IOMMU1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_QCOM_SMD1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_SERIAL_UARTLITE_NR_UARTS1
-rw-r--r--baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_MSM8916_WCD_ANALOG2
-rw-r--r--baseconfig/arm/armv7/lpae/CONFIG_SOC_DRA7XX1
-rw-r--r--baseconfig/powerpc/CONFIG_CRYPTO_CRCT10DIF_VPMSUM1
-rw-r--r--baseconfig/powerpc/CONFIG_CRYPTO_VPMSUM_TESTER1
-rw-r--r--baseconfig/powerpc/CONFIG_PCI_MSI_IRQ_DOMAIN1
-rw-r--r--baseconfig/powerpc/CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN1
-rw-r--r--baseconfig/powerpc/CONFIG_PPC_DT_CPU_FTRS1
-rw-r--r--baseconfig/powerpc/CONFIG_SPAPR_TCE_IOMMU2
-rw-r--r--baseconfig/powerpc/CONFIG_TWL4030_CORE1
-rw-r--r--baseconfig/powerpc/CONFIG_USB_OHCI_HCD_PCI1
-rw-r--r--baseconfig/powerpc/CONFIG_VFIO_IOMMU_TYPE11
-rw-r--r--baseconfig/s390x/CONFIG_ARCH_RANDOM1
-rw-r--r--baseconfig/s390x/CONFIG_GENERIC_PHY1
-rw-r--r--baseconfig/s390x/CONFIG_HW_RANDOM_S3901
-rw-r--r--baseconfig/s390x/CONFIG_MAX_PHYSMEM_BITS1
-rw-r--r--baseconfig/s390x/CONFIG_MDIO_DEVICE1
-rw-r--r--baseconfig/s390x/CONFIG_PCI_MSI_IRQ_DOMAIN1
-rw-r--r--baseconfig/s390x/CONFIG_S390_CCW_IOMMU1
-rw-r--r--baseconfig/s390x/CONFIG_VFIO_CCW1
-rw-r--r--baseconfig/x86/CONFIG_DELL_WMI_LED1
-rw-r--r--baseconfig/x86/CONFIG_DRM_I915_DEBUG_VBLANK_EVADE1
-rw-r--r--baseconfig/x86/CONFIG_DRM_PANEL (renamed from baseconfig/x86/i686/CONFIG_DRM_PANEL)0
-rw-r--r--baseconfig/x86/CONFIG_DRM_PANEL_LVDS1
-rw-r--r--baseconfig/x86/CONFIG_EXTCON_INTEL_INT3496 (renamed from baseconfig/CONFIG_EXTCON_INTEL_INT3496)0
-rw-r--r--baseconfig/x86/CONFIG_INTEL_ATOMISP1
-rw-r--r--baseconfig/x86/CONFIG_INTEL_CHT_INT33FE1
-rw-r--r--baseconfig/x86/CONFIG_INTEL_INT0002_VGPIO1
-rw-r--r--baseconfig/x86/CONFIG_INTEL_SOC_PMIC_CHTWC1
-rw-r--r--baseconfig/x86/CONFIG_LOAD_UEFI_KEYS1
-rw-r--r--baseconfig/x86/CONFIG_MODULE_SIG_UEFI1
-rw-r--r--baseconfig/x86/CONFIG_SND_INTEL8X01
-rw-r--r--baseconfig/x86/CONFIG_SND_INTEL8X0M1
-rw-r--r--baseconfig/x86/CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH1
-rw-r--r--baseconfig/x86/CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH1
-rw-r--r--baseconfig/x86/CONFIG_SND_VIA82XX1
-rw-r--r--baseconfig/x86/CONFIG_SND_VIA82XX_MODEM1
-rw-r--r--baseconfig/x86/CONFIG_XEN_DOM01
-rw-r--r--baseconfig/x86/CONFIG_XEN_PV1
-rw-r--r--baseconfig/x86/CONFIG_XEN_PVHVM1
-rw-r--r--baseconfig/x86/i686/CONFIG_COMMON_CLK_SI5701
-rw-r--r--baseconfig/x86/i686/CONFIG_EDAC_AMD76X (renamed from baseconfig/x86/CONFIG_EDAC_AMD76X)0
-rw-r--r--baseconfig/x86/i686/CONFIG_EDAC_E7XXX (renamed from baseconfig/x86/CONFIG_EDAC_E7XXX)0
-rw-r--r--baseconfig/x86/i686/CONFIG_EDAC_I82860 (renamed from baseconfig/x86/CONFIG_EDAC_I82860)0
-rw-r--r--baseconfig/x86/i686/CONFIG_EDAC_I82875P (renamed from baseconfig/x86/CONFIG_EDAC_I82875P)0
-rw-r--r--baseconfig/x86/i686/CONFIG_EDAC_R82600 (renamed from baseconfig/x86/CONFIG_EDAC_R82600)0
-rw-r--r--baseconfig/x86/i686/CONFIG_EDAC_SBRIDGE1
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_COMMON_CLK_SI5701
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_DRM_PANEL1
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_DRM_PANEL_SHARP_LQ101R1SX011
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_DRM_PANEL_SHARP_LS043T1LE011
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_EDAC_AMD76X1
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_EDAC_E7XXX1
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_EDAC_I828601
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_EDAC_I82875P1
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_EDAC_R826001
-rw-r--r--baseconfig/x86/i686PAE/CONFIG_EDAC_SBRIDGE1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_AK89751
-rw-r--r--baseconfig/x86/x86_64/CONFIG_AXP20X_ADC1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_AXP20X_POWER1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_AXP288_ADC1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_AXP288_CHARGER1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_AXP288_FUEL_GAUGE1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_BATTERY_MAX170421
-rw-r--r--baseconfig/x86/x86_64/CONFIG_CHARGER_BQ241901
-rw-r--r--baseconfig/x86/x86_64/CONFIG_CHT_WC_PMIC_OPREGION1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_DRM_PANEL1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_EXTCON1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_EXTCON_AXP2881
-rw-r--r--baseconfig/x86/x86_64/CONFIG_EXTCON_GPIO1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_EXTCON_INTEL_CHT_WC1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_EXTCON_MAX33551
-rw-r--r--baseconfig/x86/x86_64/CONFIG_EXTCON_RT8973A1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_EXTCON_SM55021
-rw-r--r--baseconfig/x86/x86_64/CONFIG_EXTCON_USB_GPIO1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_GPIO_AXP2091
-rw-r--r--baseconfig/x86/x86_64/CONFIG_I2C_CHT_WC1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_CORE1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PCI1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PLATFORM1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_INFINIBAND_OPA_VNIC1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_INPUT_AXP20X_PEK1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_INTEL_INT0002_VGPIO1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_INTEL_SOC_PMIC_CHTWC1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_INV_MPU6050_I2C1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_INV_MPU6050_IIO1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_MFD_AXP20X1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_MFD_AXP20X_I2C1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_NR_DEV_DAX1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_SILEAD_DMI1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_USB_XHCI_PLATFORM1
-rw-r--r--baseconfig/x86/x86_64/CONFIG_XPOWER_PMIC_OPREGION1
-rw-r--r--bcm2835-fix-potential-null-pointer-dereferences.patch70
-rw-r--r--bcm283x-fixes.patch218
-rw-r--r--bcm283x-hdmi-audio.patch836
-rw-r--r--bcm283x-mmc-bcm2835.patch1998
-rw-r--r--bcm283x-vc4-fix-vblank.patch16
-rw-r--r--dell-laptop-Adds-support-for-keyboard-backlight-timeout-AC-settings.patch197
-rw-r--r--efi-Add-SHIM-and-image-security-database-GUID-defini.patch31
-rw-r--r--efi-lockdown.patch253
-rw-r--r--filter-aarch64.sh4
-rw-r--r--filter-armv7hl.sh4
-rw-r--r--filter-i686.sh2
-rw-r--r--genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch55
-rw-r--r--input-rmi4-remove-the-need-for-artifical-IRQ.patch331
-rw-r--r--kernel-aarch64-debug.config183
-rw-r--r--kernel-aarch64.config183
-rw-r--r--kernel-armv7hl-debug.config166
-rw-r--r--kernel-armv7hl-lpae-debug.config174
-rw-r--r--kernel-armv7hl-lpae.config174
-rw-r--r--kernel-armv7hl.config166
-rw-r--r--kernel-i686-PAE.config126
-rw-r--r--kernel-i686-PAEdebug.config126
-rw-r--r--kernel-i686-debug.config126
-rw-r--r--kernel-i686.config126
-rw-r--r--kernel-ppc64-debug.config137
-rw-r--r--kernel-ppc64.config137
-rw-r--r--kernel-ppc64le-debug.config137
-rw-r--r--kernel-ppc64le.config137
-rw-r--r--kernel-ppc64p7-debug.config137
-rw-r--r--kernel-ppc64p7.config137
-rw-r--r--kernel-s390x-debug.config138
-rw-r--r--kernel-s390x.config138
-rw-r--r--kernel-x86_64-debug.config175
-rw-r--r--kernel-x86_64.config175
-rw-r--r--kernel.spec222
-rw-r--r--netfilter-x_tables-deal-with-bogus-nextoffset-values.patch109
-rw-r--r--pinctrl-bcm2835-Avoid-warning-from-__irq_do_set_handler.patch40
-rw-r--r--powerpc-prom-Increase-RMA-size-to-512MB.patch52
-rw-r--r--qcom-display-iommu.patch1960
-rw-r--r--qcom-msm89xx-fixes.patch285
-rw-r--r--qcom-rmsg-spmi-fixes.patch85
-rwxr-xr-xscripts/allarchconfig.sh16
-rwxr-xr-xscripts/bumpspecfile.py76
-rwxr-xr-xscripts/generate-perf-man.sh6
-rwxr-xr-xscripts/rawhide-rc.sh4
-rw-r--r--scripts/rediffall.pl64
-rw-r--r--sources6
-rw-r--r--ti-bluetooth.patch2480
-rw-r--r--vc4-fix-vblank-cursor-update-issue.patch59
-rw-r--r--vc4-tformat-fixes.patch428
399 files changed, 9637 insertions, 13166 deletions
diff --git a/0001-ACPI-LPSS-Only-call-pwm_add_table-for-the-first-PWM-.patch b/0001-ACPI-LPSS-Only-call-pwm_add_table-for-the-first-PWM-.patch
deleted file mode 100644
index ecfc34c6d..000000000
--- a/0001-ACPI-LPSS-Only-call-pwm_add_table-for-the-first-PWM-.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 92fe05e58babf15d7ddadfccd8bc383ea7e46e55 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede@redhat.com>
-Date: Wed, 5 Jul 2017 22:02:59 +0200
-Subject: [PATCH] ACPI / LPSS: Only call pwm_add_table for the first PWM
- controller
-
-At least on the UP board SBC both PWMs are enabled leading to us
-trying to add the same pwm_lookup twice, which leads to the following:
-
-[ 0.902224] list_add double add: new=ffffffffb8efd400,
- prev=ffffffffb8efd400, next=ffffffffb8eeede0.
-[ 0.912466] ------------[ cut here ]------------
-[ 0.917624] kernel BUG at lib/list_debug.c:31!
-[ 0.922588] invalid opcode: 0000 [#1] SMP
-...
-[ 1.027450] Call Trace:
-[ 1.030185] pwm_add_table+0x4c/0x90
-[ 1.034181] bsw_pwm_setup+0x1a/0x20
-[ 1.038175] acpi_lpss_create_device+0xfe/0x420
-...
-
-This commit fixes this by only calling pwm_add_table for the first
-PWM controller (which is the one used for the backlight).
-
-Cc: stable@vger.kernel.org
-BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1458599
-Fixes: bf7696a12071 ("acpi: lpss: call pwm_add_table() for BSW...")
-Fixes: 04434ab5120a ("ACPI / LPSS: Call pwm_add_table() for Bay Trail...")
-[labbott@redhat.com: Rebase to 4.11]
-Signed-off-by: Hans de Goede <hdegoede@redhat.com>
----
- drivers/acpi/acpi_lpss.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
-index 5edfd9c..d973e56 100644
---- a/drivers/acpi/acpi_lpss.c
-+++ b/drivers/acpi/acpi_lpss.c
-@@ -85,6 +85,7 @@ static const struct lpss_device_desc lpss_dma_desc = {
- };
-
- struct lpss_private_data {
-+ struct acpi_device *adev;
- void __iomem *mmio_base;
- resource_size_t mmio_size;
- unsigned int fixed_clk_rate;
-@@ -164,6 +165,12 @@ static struct pwm_lookup bsw_pwm_lookup[] = {
-
- static void bsw_pwm_setup(struct lpss_private_data *pdata)
- {
-+ struct acpi_device *adev = pdata->adev;
-+
-+ /* Only call pwm_add_table for the first PWM controller */
-+ if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
-+ return;
-+
- pwm_add_table(bsw_pwm_lookup, ARRAY_SIZE(bsw_pwm_lookup));
- }
-
-@@ -439,6 +446,7 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
- goto err_out;
- }
-
-+ pdata->adev = adev;
- pdata->dev_desc = dev_desc;
-
- if (dev_desc->setup)
---
-2.7.5
-
diff --git a/0001-SUNRPC-Refactor-svc_set_num_threads.patch b/0001-SUNRPC-Refactor-svc_set_num_threads.patch
deleted file mode 100644
index d29b5fc4d..000000000
--- a/0001-SUNRPC-Refactor-svc_set_num_threads.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-From 9e0d87680d689f1758185851c3da6eafb16e71e1 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <trond.myklebust@primarydata.com>
-Date: Wed, 26 Apr 2017 11:55:26 -0400
-Subject: [PATCH] SUNRPC: Refactor svc_set_num_threads()
-
-Refactor to separate out the functions of starting and stopping threads
-so that they can be used in other helpers.
-
-Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-Tested-and-reviewed-by: Kinglong Mee <kinglongmee@gmail.com>
-Signed-off-by: J. Bruce Fields <bfields@redhat.com>
----
- net/sunrpc/svc.c | 96 ++++++++++++++++++++++++++++++++++----------------------
- 1 file changed, 58 insertions(+), 38 deletions(-)
-
-diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
-index a08aeb5..98dc33a 100644
---- a/net/sunrpc/svc.c
-+++ b/net/sunrpc/svc.c
-@@ -702,59 +702,32 @@ choose_victim(struct svc_serv *serv, struct svc_pool *pool, unsigned int *state)
- return task;
- }
-
--/*
-- * Create or destroy enough new threads to make the number
-- * of threads the given number. If `pool' is non-NULL, applies
-- * only to threads in that pool, otherwise round-robins between
-- * all pools. Caller must ensure that mutual exclusion between this and
-- * server startup or shutdown.
-- *
-- * Destroying threads relies on the service threads filling in
-- * rqstp->rq_task, which only the nfs ones do. Assumes the serv
-- * has been created using svc_create_pooled().
-- *
-- * Based on code that used to be in nfsd_svc() but tweaked
-- * to be pool-aware.
-- */
--int
--svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs)
-+/* create new threads */
-+static int
-+svc_start_kthreads(struct svc_serv *serv, struct svc_pool *pool, int nrservs)
- {
- struct svc_rqst *rqstp;
- struct task_struct *task;
- struct svc_pool *chosen_pool;
-- int error = 0;
- unsigned int state = serv->sv_nrthreads-1;
- int node;
-
-- if (pool == NULL) {
-- /* The -1 assumes caller has done a svc_get() */
-- nrservs -= (serv->sv_nrthreads-1);
-- } else {
-- spin_lock_bh(&pool->sp_lock);
-- nrservs -= pool->sp_nrthreads;
-- spin_unlock_bh(&pool->sp_lock);
-- }
--
-- /* create new threads */
-- while (nrservs > 0) {
-+ do {
- nrservs--;
- chosen_pool = choose_pool(serv, pool, &state);
-
- node = svc_pool_map_get_node(chosen_pool->sp_id);
- rqstp = svc_prepare_thread(serv, chosen_pool, node);
-- if (IS_ERR(rqstp)) {
-- error = PTR_ERR(rqstp);
-- break;
-- }
-+ if (IS_ERR(rqstp))
-+ return PTR_ERR(rqstp);
-
- __module_get(serv->sv_ops->svo_module);
- task = kthread_create_on_node(serv->sv_ops->svo_function, rqstp,
- node, "%s", serv->sv_name);
- if (IS_ERR(task)) {
-- error = PTR_ERR(task);
- module_put(serv->sv_ops->svo_module);
- svc_exit_thread(rqstp);
-- break;
-+ return PTR_ERR(task);
- }
-
- rqstp->rq_task = task;
-@@ -763,15 +736,62 @@ svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs)
-
- svc_sock_update_bufs(serv);
- wake_up_process(task);
-- }
-+ } while (nrservs > 0);
-+
-+ return 0;
-+}
-+
-+
-+/* destroy old threads */
-+static int
-+svc_signal_kthreads(struct svc_serv *serv, struct svc_pool *pool, int nrservs)
-+{
-+ struct task_struct *task;
-+ unsigned int state = serv->sv_nrthreads-1;
-+
- /* destroy old threads */
-- while (nrservs < 0 &&
-- (task = choose_victim(serv, pool, &state)) != NULL) {
-+ do {
-+ task = choose_victim(serv, pool, &state);
-+ if (task == NULL)
-+ break;
- send_sig(SIGINT, task, 1);
- nrservs++;
-+ } while (nrservs < 0);
-+
-+ return 0;
-+}
-+
-+/*
-+ * Create or destroy enough new threads to make the number
-+ * of threads the given number. If `pool' is non-NULL, applies
-+ * only to threads in that pool, otherwise round-robins between
-+ * all pools. Caller must ensure that mutual exclusion between this and
-+ * server startup or shutdown.
-+ *
-+ * Destroying threads relies on the service threads filling in
-+ * rqstp->rq_task, which only the nfs ones do. Assumes the serv
-+ * has been created using svc_create_pooled().
-+ *
-+ * Based on code that used to be in nfsd_svc() but tweaked
-+ * to be pool-aware.
-+ */
-+int
-+svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs)
-+{
-+ if (pool == NULL) {
-+ /* The -1 assumes caller has done a svc_get() */
-+ nrservs -= (serv->sv_nrthreads-1);
-+ } else {
-+ spin_lock_bh(&pool->sp_lock);
-+ nrservs -= pool->sp_nrthreads;
-+ spin_unlock_bh(&pool->sp_lock);
- }
-
-- return error;
-+ if (nrservs > 0)
-+ return svc_start_kthreads(serv, pool, nrservs);
-+ if (nrservs < 0)
-+ return svc_signal_kthreads(serv, pool, nrservs);
-+ return 0;
- }
- EXPORT_SYMBOL_GPL(svc_set_num_threads);
-
---
-2.9.4
-
diff --git a/0001-ipv6-avoid-overflow-of-offset-in-ip6_find_1stfragopt.patch b/0001-ipv6-avoid-overflow-of-offset-in-ip6_find_1stfragopt.patch
new file mode 100644
index 000000000..be8b6c6a0
--- /dev/null
+++ b/0001-ipv6-avoid-overflow-of-offset-in-ip6_find_1stfragopt.patch
@@ -0,0 +1,54 @@
+From 6399f1fae4ec29fab5ec76070435555e256ca3a6 Mon Sep 17 00:00:00 2001
+From: Sabrina Dubroca <sd@queasysnail.net>
+Date: Wed, 19 Jul 2017 22:28:55 +0200
+Subject: [PATCH] ipv6: avoid overflow of offset in ip6_find_1stfragopt
+
+In some cases, offset can overflow and can cause an infinite loop in
+ip6_find_1stfragopt(). Make it unsigned int to prevent the overflow, and
+cap it at IPV6_MAXPLEN, since packets larger than that should be invalid.
+
+This problem has been here since before the beginning of git history.
+
+Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
+Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ net/ipv6/output_core.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/net/ipv6/output_core.c b/net/ipv6/output_core.c
+index e9065b8..abb2c30 100644
+--- a/net/ipv6/output_core.c
++++ b/net/ipv6/output_core.c
+@@ -78,7 +78,7 @@ EXPORT_SYMBOL(ipv6_select_ident);
+
+ int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr)
+ {
+- u16 offset = sizeof(struct ipv6hdr);
++ unsigned int offset = sizeof(struct ipv6hdr);
+ unsigned int packet_len = skb_tail_pointer(skb) -
+ skb_network_header(skb);
+ int found_rhdr = 0;
+@@ -86,6 +86,7 @@ int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr)
+
+ while (offset <= packet_len) {
+ struct ipv6_opt_hdr *exthdr;
++ unsigned int len;
+
+ switch (**nexthdr) {
+
+@@ -111,7 +112,10 @@ int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr)
+
+ exthdr = (struct ipv6_opt_hdr *)(skb_network_header(skb) +
+ offset);
+- offset += ipv6_optlen(exthdr);
++ len = ipv6_optlen(exthdr);
++ if (len + offset >= IPV6_MAXPLEN)
++ return -EINVAL;
++ offset += len;
+ *nexthdr = &exthdr->nexthdr;
+ }
+
+--
+2.9.4
+
diff --git a/0001-platform-x86-Add-driver-for-ACPI-INT0002-Virtual-GPI.patch b/0001-platform-x86-Add-driver-for-ACPI-INT0002-Virtual-GPI.patch
new file mode 100644
index 000000000..a0b6ff03e
--- /dev/null
+++ b/0001-platform-x86-Add-driver-for-ACPI-INT0002-Virtual-GPI.patch
@@ -0,0 +1,339 @@
+From 3bbfe49a1d965b951527cde0da48f5d7677db264 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sun, 21 May 2017 13:15:11 +0200
+Subject: [PATCH 01/16] platform/x86: Add driver for ACPI INT0002 Virtual GPIO
+ device
+
+Some peripherals on Bay Trail and Cherry Trail platforms signal a
+Power Management Event (PME) to the Power Management Controller (PMC)
+to wakeup the system. When this happens software needs to explicitly
+clear the PME bus 0 status bit in the GPE0a_STS register to avoid an
+IRQ storm on IRQ 9.
+
+This is modelled in ACPI through the INT0002 ACPI device, which is
+called a "Virtual GPIO controller" in ACPI because it defines the
+event handler to call when the PME triggers through _AEI and _L02
+methods as would be done for a real GPIO interrupt in ACPI.
+
+This commit adds a driver which registers the Virtual GPIOs expected
+by the DSDT on these devices, letting gpiolib-acpi claim the
+virtual GPIO and install a GPIO-interrupt handler which call the _L02
+handler as it would for a real GPIO controller.
+
+Cc: joeyli <jlee@suse.com>
+Cc: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
+---
+Changes in v2:
+-Remove dev_err after malloc failure
+-Remove unused empty runtime pm callbacks
+-s/GPE0A_PME_/GPE0A_PME_B0_/
+-Fixed some checkpatch warnings (I forgot to run checkpatch on v1)
+
+Changes in v3:
+-Rewrite as gpiochip driver letting gpiolib-acpi deal with claiming the pin
+ 0x0002 and calling the _L02 event handler when the virtual gpio-irq triggers
+-Rebase on 4.12-rc1
+
+Changes in v4:
+-Drop device_init_wakeup() from _probe(), use pm_system_wakeup() instead
+ of pm_wakeup_hard_event(chip->parent)
+-Improve commit message
+
+Changes in v5:
+-Use BIT() macro for FOO_BIT defines
+-Drop unneeded ACPI_PTR macro usage
+
+Changes in v6:
+-Move back to drivers/platform/x86
+-Expand certain acronyms (PME, PMC)
+-Use linux/gpio/driver.h include instead of linux/gpio.h
+-Document why the get / set / direction_output functions are dummys
+-No functional changes
+
+Changes in v7:
+-Some minor cleanups from Andy:
+ -Move asm/ includes below linux/ includes
+ -s/APCI/ACPI/
+ -Use bitmap_clear on chip->irq_valid_mask
+-Add Linus Walleij's Reviewed-by
+---
+ drivers/platform/x86/Kconfig | 19 +++
+ drivers/platform/x86/Makefile | 1 +
+ drivers/platform/x86/intel_int0002_vgpio.c | 219 +++++++++++++++++++++++++++++
+ 3 files changed, 239 insertions(+)
+ create mode 100644 drivers/platform/x86/intel_int0002_vgpio.c
+
+diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
+index 8489020ecf44..a3ccc3c795a5 100644
+--- a/drivers/platform/x86/Kconfig
++++ b/drivers/platform/x86/Kconfig
+@@ -794,6 +794,25 @@ config INTEL_CHT_INT33FE
+ This driver instantiates i2c-clients for these, so that standard
+ i2c drivers for these chips can bind to the them.
+
++config INTEL_INT0002_VGPIO
++ tristate "Intel ACPI INT0002 Virtual GPIO driver"
++ depends on GPIOLIB && ACPI
++ select GPIOLIB_IRQCHIP
++ ---help---
++ Some peripherals on Bay Trail and Cherry Trail platforms signal a
++ Power Management Event (PME) to the Power Management Controller (PMC)
++ to wakeup the system. When this happens software needs to explicitly
++ clear the PME bus 0 status bit in the GPE0a_STS register to avoid an
++ IRQ storm on IRQ 9.
++
++ This is modelled in ACPI through the INT0002 ACPI device, which is
++ called a "Virtual GPIO controller" in ACPI because it defines the
++ event handler to call when the PME triggers through _AEI and _L02
++ methods as would be done for a real GPIO interrupt in ACPI.
++
++ To compile this driver as a module, choose M here: the module will
++ be called intel_int0002_vgpio.
++
+ config INTEL_HID_EVENT
+ tristate "INTEL HID Event"
+ depends on ACPI
+diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
+index 182a3ed6605a..ab22ce77fb66 100644
+--- a/drivers/platform/x86/Makefile
++++ b/drivers/platform/x86/Makefile
+@@ -46,6 +46,7 @@ obj-$(CONFIG_TOSHIBA_BT_RFKILL) += toshiba_bluetooth.o
+ obj-$(CONFIG_TOSHIBA_HAPS) += toshiba_haps.o
+ obj-$(CONFIG_TOSHIBA_WMI) += toshiba-wmi.o
+ obj-$(CONFIG_INTEL_CHT_INT33FE) += intel_cht_int33fe.o
++obj-$(CONFIG_INTEL_INT0002_VGPIO) += intel_int0002_vgpio.o
+ obj-$(CONFIG_INTEL_HID_EVENT) += intel-hid.o
+ obj-$(CONFIG_INTEL_VBTN) += intel-vbtn.o
+ obj-$(CONFIG_INTEL_SCU_IPC) += intel_scu_ipc.o
+diff --git a/drivers/platform/x86/intel_int0002_vgpio.c b/drivers/platform/x86/intel_int0002_vgpio.c
+new file mode 100644
+index 000000000000..92dc230ef5b2
+--- /dev/null
++++ b/drivers/platform/x86/intel_int0002_vgpio.c
+@@ -0,0 +1,219 @@
++/*
++ * Intel INT0002 "Virtual GPIO" driver
++ *
++ * Copyright (C) 2017 Hans de Goede <hdegoede@redhat.com>
++ *
++ * Loosely based on android x86 kernel code which is:
++ *
++ * Copyright (c) 2014, Intel Corporation.
++ *
++ * Author: Dyut Kumar Sil <dyut.k.sil@intel.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * Some peripherals on Bay Trail and Cherry Trail platforms signal a Power
++ * Management Event (PME) to the Power Management Controller (PMC) to wakeup
++ * the system. When this happens software needs to clear the PME bus 0 status
++ * bit in the GPE0a_STS register to avoid an IRQ storm on IRQ 9.
++ *
++ * This is modelled in ACPI through the INT0002 ACPI device, which is
++ * called a "Virtual GPIO controller" in ACPI because it defines the event
++ * handler to call when the PME triggers through _AEI and _L02 / _E02
++ * methods as would be done for a real GPIO interrupt in ACPI. Note this
++ * is a hack to define an AML event handler for the PME while using existing
++ * ACPI mechanisms, this is not a real GPIO at all.
++ *
++ * This driver will bind to the INT0002 device, and register as a GPIO
++ * controller, letting gpiolib-acpi.c call the _L02 handler as it would
++ * for a real GPIO controller.
++ */
++
++#include <linux/acpi.h>
++#include <linux/bitmap.h>
++#include <linux/gpio/driver.h>
++#include <linux/interrupt.h>
++#include <linux/io.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/slab.h>
++#include <linux/suspend.h>
++
++#include <asm/cpu_device_id.h>
++#include <asm/intel-family.h>
++
++#define DRV_NAME "INT0002 Virtual GPIO"
++
++/* For some reason the virtual GPIO pin tied to the GPE is numbered pin 2 */
++#define GPE0A_PME_B0_VIRT_GPIO_PIN 2
++
++#define GPE0A_PME_B0_STS_BIT BIT(13)
++#define GPE0A_PME_B0_EN_BIT BIT(13)
++#define GPE0A_STS_PORT 0x420
++#define GPE0A_EN_PORT 0x428
++
++#define ICPU(model) { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
++
++static const struct x86_cpu_id int0002_cpu_ids[] = {
++/*
++ * Limit ourselves to Cherry Trail for now, until testing shows we
++ * need to handle the INT0002 device on Baytrail too.
++ * ICPU(INTEL_FAM6_ATOM_SILVERMONT1), * Valleyview, Bay Trail *
++ */
++ ICPU(INTEL_FAM6_ATOM_AIRMONT), /* Braswell, Cherry Trail */
++ {}
++};
++
++/*
++ * As this is not a real GPIO at all, but just a hack to model an event in
++ * ACPI the get / set functions are dummy functions.
++ */
++
++static int int0002_gpio_get(struct gpio_chip *chip, unsigned int offset)
++{
++ return 0;
++}
++
++static void int0002_gpio_set(struct gpio_chip *chip, unsigned int offset,
++ int value)
++{
++}
++
++static int int0002_gpio_direction_output(struct gpio_chip *chip,
++ unsigned int offset, int value)
++{
++ return 0;
++}
++
++static void int0002_irq_ack(struct irq_data *data)
++{
++ outl(GPE0A_PME_B0_STS_BIT, GPE0A_STS_PORT);
++}
++
++static void int0002_irq_unmask(struct irq_data *data)
++{
++ u32 gpe_en_reg;
++
++ gpe_en_reg = inl(GPE0A_EN_PORT);
++ gpe_en_reg |= GPE0A_PME_B0_EN_BIT;
++ outl(gpe_en_reg, GPE0A_EN_PORT);
++}
++
++static void int0002_irq_mask(struct irq_data *data)
++{
++ u32 gpe_en_reg;
++
++ gpe_en_reg = inl(GPE0A_EN_PORT);
++ gpe_en_reg &= ~GPE0A_PME_B0_EN_BIT;
++ outl(gpe_en_reg, GPE0A_EN_PORT);
++}
++
++static irqreturn_t int0002_irq(int irq, void *data)
++{
++ struct gpio_chip *chip = data;
++ u32 gpe_sts_reg;
++
++ gpe_sts_reg = inl(GPE0A_STS_PORT);
++ if (!(gpe_sts_reg & GPE0A_PME_B0_STS_BIT))
++ return IRQ_NONE;
++
++ generic_handle_irq(irq_find_mapping(chip->irqdomain,
++ GPE0A_PME_B0_VIRT_GPIO_PIN));
++
++ pm_system_wakeup();
++
++ return IRQ_HANDLED;
++}
++
++static struct irq_chip int0002_irqchip = {
++ .name = DRV_NAME,
++ .irq_ack = int0002_irq_ack,
++ .irq_mask = int0002_irq_mask,
++ .irq_unmask = int0002_irq_unmask,
++};
++
++static int int0002_probe(struct platform_device *pdev)
++{
++ struct device *dev = &pdev->dev;
++ const struct x86_cpu_id *cpu_id;
++ struct gpio_chip *chip;
++ int irq, ret;
++
++ /* Menlow has a different INT0002 device? <sigh> */
++ cpu_id = x86_match_cpu(int0002_cpu_ids);
++ if (!cpu_id)
++ return -ENODEV;
++
++ irq = platform_get_irq(pdev, 0);
++ if (irq < 0) {
++ dev_err(dev, "Error getting IRQ: %d\n", irq);
++ return irq;
++ }
++
++ chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL);
++ if (!chip)
++ return -ENOMEM;
++
++ chip->label = DRV_NAME;
++ chip->parent = dev;
++ chip->owner = THIS_MODULE;
++ chip->get = int0002_gpio_get;
++ chip->set = int0002_gpio_set;
++ chip->direction_input = int0002_gpio_get;
++ chip->direction_output = int0002_gpio_direction_output;
++ chip->base = -1;
++ chip->ngpio = GPE0A_PME_B0_VIRT_GPIO_PIN + 1;
++ chip->irq_need_valid_mask = true;
++
++ ret = devm_gpiochip_add_data(&pdev->dev, chip, NULL);
++ if (ret) {
++ dev_err(dev, "Error adding gpio chip: %d\n", ret);
++ return ret;
++ }
++
++ bitmap_clear(chip->irq_valid_mask, 0, GPE0A_PME_B0_VIRT_GPIO_PIN);
++
++ /*
++ * We manually request the irq here instead of passing a flow-handler
++ * to gpiochip_set_chained_irqchip, because the irq is shared.
++ */
++ ret = devm_request_irq(dev, irq, int0002_irq,
++ IRQF_SHARED | IRQF_NO_THREAD, "INT0002", chip);
++ if (ret) {
++ dev_err(dev, "Error requesting IRQ %d: %d\n", irq, ret);
++ return ret;
++ }
++
++ ret = gpiochip_irqchip_add(chip, &int0002_irqchip, 0, handle_edge_irq,
++ IRQ_TYPE_NONE);
++ if (ret) {
++ dev_err(dev, "Error adding irqchip: %d\n", ret);
++ return ret;
++ }
++
++ gpiochip_set_chained_irqchip(chip, &int0002_irqchip, irq, NULL);
++
++ return 0;
++}
++
++static const struct acpi_device_id int0002_acpi_ids[] = {
++ { "INT0002", 0 },
++ { },
++};
++MODULE_DEVICE_TABLE(acpi, int0002_acpi_ids);
++
++static struct platform_driver int0002_driver = {
++ .driver = {
++ .name = DRV_NAME,
++ .acpi_match_table = int0002_acpi_ids,
++ },
++ .probe = int0002_probe,
++};
++
++module_platform_driver(int0002_driver);
++
++MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>");
++MODULE_DESCRIPTION("Intel INT0002 Virtual GPIO driver");
++MODULE_LICENSE("GPL");
+--
+2.13.0
+
diff --git a/0001-platform-x86-thinkpad_acpi-guard-generic-hotkey-case.patch b/0001-platform-x86-thinkpad_acpi-guard-generic-hotkey-case.patch
deleted file mode 100644
index 847c70ce8..000000000
--- a/0001-platform-x86-thinkpad_acpi-guard-generic-hotkey-case.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 6bb84c0f9da1144e0d443798a76d5769b7d554af Mon Sep 17 00:00:00 2001
-From: Christian Kellner <christian@kellner.me>
-Date: Tue, 28 Feb 2017 17:10:56 +0100
-Subject: [PATCH 1/2] platform/x86: thinkpad_acpi: guard generic hotkey case
-
-Currently when dispatching hotkeys we check if the scancode is in
-the range of 0 and TPACPI_HOTKEY_MAP_LEN, although the bottom 20
-entries in the hotkey keymap are already adaptive keycodes.
-Therefore we introduce a TP_ACPI_HOTKEYSCAN_ADAPTIVE_START and
-ensure that we are in the range 0 and ADAPTIVE_START for the generic
-keycode case.
-
-Signed-off-by: Christian Kellner <ckellner@redhat.com>
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
-Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
----
- drivers/platform/x86/thinkpad_acpi.c | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
-index 1d18b32..e2b962f 100644
---- a/drivers/platform/x86/thinkpad_acpi.c
-+++ b/drivers/platform/x86/thinkpad_acpi.c
-@@ -1922,7 +1922,9 @@ enum { /* hot key scan codes (derived from ACPI DSDT) */
- TP_ACPI_HOTKEYSCAN_UNK7,
- TP_ACPI_HOTKEYSCAN_UNK8,
-
-- TP_ACPI_HOTKEYSCAN_MUTE2,
-+ /* Adaptive keyboard keycodes */
-+ TP_ACPI_HOTKEYSCAN_ADAPTIVE_START,
-+ TP_ACPI_HOTKEYSCAN_MUTE2 = TP_ACPI_HOTKEYSCAN_ADAPTIVE_START,
- TP_ACPI_HOTKEYSCAN_BRIGHTNESS_ZERO,
- TP_ACPI_HOTKEYSCAN_CLIPPING_TOOL,
- TP_ACPI_HOTKEYSCAN_CLOUD,
-@@ -3656,7 +3658,6 @@ static const int adaptive_keyboard_modes[] = {
- #define DFR_CHANGE_ROW 0x101
- #define DFR_SHOW_QUICKVIEW_ROW 0x102
- #define FIRST_ADAPTIVE_KEY 0x103
--#define ADAPTIVE_KEY_OFFSET 0x020
-
- /* press Fn key a while second, it will switch to Function Mode. Then
- * release Fn key, previous mode be restored.
-@@ -3747,12 +3748,13 @@ static bool adaptive_keyboard_hotkey_notify_hotkey(unsigned int scancode)
- default:
- if (scancode < FIRST_ADAPTIVE_KEY ||
- scancode >= FIRST_ADAPTIVE_KEY + TPACPI_HOTKEY_MAP_LEN -
-- ADAPTIVE_KEY_OFFSET) {
-+ TP_ACPI_HOTKEYSCAN_ADAPTIVE_START) {
- pr_info("Unhandled adaptive keyboard key: 0x%x\n",
- scancode);
- return false;
- }
-- keycode = hotkey_keycode_map[scancode - FIRST_ADAPTIVE_KEY + ADAPTIVE_KEY_OFFSET];
-+ keycode = hotkey_keycode_map[scancode - FIRST_ADAPTIVE_KEY +
-+ TP_ACPI_HOTKEYSCAN_ADAPTIVE_START];
- if (keycode != KEY_RESERVED) {
- mutex_lock(&tpacpi_inputdev_send_mutex);
-
-@@ -3778,7 +3780,7 @@ static bool hotkey_notify_hotkey(const u32 hkey,
- *ignore_acpi_ev = false;
-
- /* HKEY event 0x1001 is scancode 0x00 */
-- if (scancode > 0 && scancode <= TPACPI_HOTKEY_MAP_LEN) {
-+ if (scancode > 0 && scancode <= TP_ACPI_HOTKEYSCAN_ADAPTIVE_START) {
- scancode--;
- if (!(hotkey_source_mask & (1 << scancode))) {
- tpacpi_input_send_key_masked(scancode);
---
-2.9.4
-
diff --git a/0002-NFSv4-Fix-callback-server-shutdown.patch b/0002-NFSv4-Fix-callback-server-shutdown.patch
deleted file mode 100644
index e5745bf01..000000000
--- a/0002-NFSv4-Fix-callback-server-shutdown.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From ed6473ddc704a2005b9900ca08e236ebb2d8540a Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <trond.myklebust@primarydata.com>
-Date: Wed, 26 Apr 2017 11:55:27 -0400
-Subject: [PATCH] NFSv4: Fix callback server shutdown
-
-We want to use kthread_stop() in order to ensure the threads are
-shut down before we tear down the nfs_callback_info in nfs_callback_down.
-
-Tested-and-reviewed-by: Kinglong Mee <kinglongmee@gmail.com>
-Reported-by: Kinglong Mee <kinglongmee@gmail.com>
-Fixes: bb6aeba736ba9 ("NFSv4.x: Switch to using svc_set_num_threads()...")
-Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
-Signed-off-by: J. Bruce Fields <bfields@redhat.com>
----
- fs/nfs/callback.c | 24 ++++++++++++++++--------
- include/linux/sunrpc/svc.h | 1 +
- net/sunrpc/svc.c | 38 ++++++++++++++++++++++++++++++++++++++
- 3 files changed, 55 insertions(+), 8 deletions(-)
-
-diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c
-index c5e27eb..73a1f92 100644
---- a/fs/nfs/callback.c
-+++ b/fs/nfs/callback.c
-@@ -76,7 +76,10 @@ nfs4_callback_svc(void *vrqstp)
-
- set_freezable();
-
-- while (!kthread_should_stop()) {
-+ while (!kthread_freezable_should_stop(NULL)) {
-+
-+ if (signal_pending(current))
-+ flush_signals(current);
- /*
- * Listen for a request on the socket
- */
-@@ -85,6 +88,8 @@ nfs4_callback_svc(void *vrqstp)
- continue;
- svc_process(rqstp);
- }
-+ svc_exit_thread(rqstp);
-+ module_put_and_exit(0);
- return 0;
- }
-
-@@ -103,9 +108,10 @@ nfs41_callback_svc(void *vrqstp)
-
- set_freezable();
-
-- while (!kthread_should_stop()) {
-- if (try_to_freeze())
-- continue;
-+ while (!kthread_freezable_should_stop(NULL)) {
-+
-+ if (signal_pending(current))
-+ flush_signals(current);
-
- prepare_to_wait(&serv->sv_cb_waitq, &wq, TASK_INTERRUPTIBLE);
- spin_lock_bh(&serv->sv_cb_lock);
-@@ -121,11 +127,13 @@ nfs41_callback_svc(void *vrqstp)
- error);
- } else {
- spin_unlock_bh(&serv->sv_cb_lock);
-- schedule();
-+ if (!kthread_should_stop())
-+ schedule();
- finish_wait(&serv->sv_cb_waitq, &wq);
- }
-- flush_signals(current);
- }
-+ svc_exit_thread(rqstp);
-+ module_put_and_exit(0);
- return 0;
- }
-
-@@ -221,14 +229,14 @@ static int nfs_callback_up_net(int minorversion, struct svc_serv *serv,
- static struct svc_serv_ops nfs40_cb_sv_ops = {
- .svo_function = nfs4_callback_svc,
- .svo_enqueue_xprt = svc_xprt_do_enqueue,
-- .svo_setup = svc_set_num_threads,
-+ .svo_setup = svc_set_num_threads_sync,
- .svo_module = THIS_MODULE,
- };
- #if defined(CONFIG_NFS_V4_1)
- static struct svc_serv_ops nfs41_cb_sv_ops = {
- .svo_function = nfs41_callback_svc,
- .svo_enqueue_xprt = svc_xprt_do_enqueue,
-- .svo_setup = svc_set_num_threads,
-+ .svo_setup = svc_set_num_threads_sync,
- .svo_module = THIS_MODULE,
- };
-
-diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
-index 6ef19cf..9463102 100644
---- a/include/linux/sunrpc/svc.h
-+++ b/include/linux/sunrpc/svc.h
-@@ -473,6 +473,7 @@ void svc_pool_map_put(void);
- struct svc_serv * svc_create_pooled(struct svc_program *, unsigned int,
- struct svc_serv_ops *);
- int svc_set_num_threads(struct svc_serv *, struct svc_pool *, int);
-+int svc_set_num_threads_sync(struct svc_serv *, struct svc_pool *, int);
- int svc_pool_stats_open(struct svc_serv *serv, struct file *file);
- void svc_destroy(struct svc_serv *);
- void svc_shutdown_net(struct svc_serv *, struct net *);
-diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
-index 98dc33a..bc0f5a0 100644
---- a/net/sunrpc/svc.c
-+++ b/net/sunrpc/svc.c
-@@ -795,6 +795,44 @@ svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs)
- }
- EXPORT_SYMBOL_GPL(svc_set_num_threads);
-
-+/* destroy old threads */
-+static int
-+svc_stop_kthreads(struct svc_serv *serv, struct svc_pool *pool, int nrservs)
-+{
-+ struct task_struct *task;
-+ unsigned int state = serv->sv_nrthreads-1;
-+
-+ /* destroy old threads */
-+ do {
-+ task = choose_victim(serv, pool, &state);
-+ if (task == NULL)
-+ break;
-+ kthread_stop(task);
-+ nrservs++;
-+ } while (nrservs < 0);
-+ return 0;
-+}
-+
-+int
-+svc_set_num_threads_sync(struct svc_serv *serv, struct svc_pool *pool, int nrservs)
-+{
-+ if (pool == NULL) {
-+ /* The -1 assumes caller has done a svc_get() */
-+ nrservs -= (serv->sv_nrthreads-1);
-+ } else {
-+ spin_lock_bh(&pool->sp_lock);
-+ nrservs -= pool->sp_nrthreads;
-+ spin_unlock_bh(&pool->sp_lock);
-+ }
-+
-+ if (nrservs > 0)
-+ return svc_start_kthreads(serv, pool, nrservs);
-+ if (nrservs < 0)
-+ return svc_stop_kthreads(serv, pool, nrservs);
-+ return 0;
-+}
-+EXPORT_SYMBOL_GPL(svc_set_num_threads_sync);
-+
- /*
- * Called from a server thread as it's exiting. Caller must hold the "service
- * mutex" for the service.
---
-2.9.4
-
diff --git a/0002-mfd-Add-Cherry-Trail-Whiskey-Cove-PMIC-driver.patch b/0002-mfd-Add-Cherry-Trail-Whiskey-Cove-PMIC-driver.patch
new file mode 100644
index 000000000..49975811b
--- /dev/null
+++ b/0002-mfd-Add-Cherry-Trail-Whiskey-Cove-PMIC-driver.patch
@@ -0,0 +1,355 @@
+From c0f9254fdd0703ade018b2ff3a8cca433f781a11 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sun, 26 Feb 2017 21:07:29 +0100
+Subject: [PATCH 02/16] mfd: Add Cherry Trail Whiskey Cove PMIC driver
+
+Add mfd driver for Intel CHT Whiskey Cove PMIC, based on various non
+upstreamed CHT Whiskey Cove PMIC patches.
+
+This is a somewhat minimal version which adds irqchip support and cells
+for: ACPI PMIC opregion support, the i2c-controller driving the external
+charger irc and the pwrsrc/extcon block.
+
+Further cells can be added in the future if/when drivers are upstreamed
+for them.
+
+Cc: Bin Gao <bin.gao@intel.com>
+Cc: Felipe Balbi <felipe.balbi@linux.intel.com>
+Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+Changes in v2:
+-Since this uses plain mfd and not the intel_soc_pmic stuff give it
+ its own Kconfig and allow this to be built as a module
+-Add missing #include <acpi/acpi_bus.h>
+
+Changes in v3:
+-Drop #include <acpi/acpi_bus.h> again, not the right fix for the build errors
+-Error out when the upper byte of the register-address passed to the regmap
+ functions is 0 rather then hardcoding an address in that case
+-Various minor style tweaks / cleanups
+-Move defines of regulator register addresses to intel_pmic_chtwc.c,
+ it is the only place where they are used
+-Drop now empty include/linux/mfd/intel_chtwc.h
+-Rename intel_soc_pmic_chtwc.c to intel_cht_wc.c to match Kconfig option name
+-Add irqchip support
+-Add external charger cell
+-Add pwrsrc cell
+
+Changes in v4:
+-Use PLATFORM_DEVID_NONE
+
+Changes in v5:
+-Change Kconfig option from tristate to boolean and add a select for the
+ i2c-bus driver, this is necessary because the chtwc PMIC provides an ACPI
+ OPRegion handler, which must be available before other drivers using it
+ are loaded, which can only be ensured if the mfd, opregion and i2c-bus
+ drivers are built in. This fixes errors like these during boot:
+ mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA
+ ACPI Error: No handler for Region [REGS] (ffff93543b0cc3a8) [UserDefinedRegion] (20170119/evregion-166)
+ ACPI Error: Region UserDefinedRegion (ID=143) has no handler (20170119/exfldio-299)
+ ACPI Error: Method parse/execution failed [\_SB.PCI0.I2C7.PMI5.GET] (Node ffff93543b0cde10), AE_NOT_EXIST (20170119/psparse-543)
+ ACPI Error: Method parse/execution failed [\_SB.PCI0.SHC1._PS0] (Node ffff93543b0b5cd0), AE_NOT_EXIST (20170119/psparse-543)
+ acpi 80860F14:02: Failed to change power state to D0
+-Some minor style and capitalization fixes from review by Lee Jones
+
+Changes in v6:
+-Fix Kconfig depends and selects to fix warning reported by kbuild test robot
+
+Changes in v7:
+-Add explanation why this is a bool and why it selects i2c-designwaree
+ to the help text rather then as comments in the Kconfig
+
+Changes in v8:
+-Remove MODULE macros, etc. now that this driver is a bool in Kconfig
+
+Changes in v9:
+-Some whitespace tweaks
+-Return -EINVAL from probe on invalid irq
+-Use probe_new i2c_driver callback
+---
+ drivers/mfd/Kconfig | 16 +++
+ drivers/mfd/Makefile | 1 +
+ drivers/mfd/intel_soc_pmic_chtwc.c | 230 +++++++++++++++++++++++++++++++++++++
+ 3 files changed, 247 insertions(+)
+ create mode 100644 drivers/mfd/intel_soc_pmic_chtwc.c
+
+diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
+index 3eb5c93595f6..5203a86b8f6c 100644
+--- a/drivers/mfd/Kconfig
++++ b/drivers/mfd/Kconfig
+@@ -470,6 +470,22 @@ config INTEL_SOC_PMIC_BXTWC
+ thermal, charger and related power management functions
+ on these systems.
+
++config INTEL_SOC_PMIC_CHTWC
++ bool "Support for Intel Cherry Trail Whiskey Cove PMIC"
++ depends on ACPI && HAS_IOMEM && I2C=y && COMMON_CLK
++ depends on X86 || COMPILE_TEST
++ select MFD_CORE
++ select REGMAP_I2C
++ select REGMAP_IRQ
++ select I2C_DESIGNWARE_PLATFORM
++ help
++ Select this option to enable support for the Intel Cherry Trail
++ Whiskey Cove PMIC found on some Intel Cherry Trail systems.
++
++ This option is a bool as it provides an ACPI OpRegion which must be
++ available before any devices using it are probed. This option also
++ causes the designware-i2c driver to be builtin for the same reason.
++
+ config MFD_INTEL_LPSS
+ tristate
+ select COMMON_CLK
+diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
+index c16bf1ea0ea9..6f6aed8cfccc 100644
+--- a/drivers/mfd/Makefile
++++ b/drivers/mfd/Makefile
+@@ -214,6 +214,7 @@ obj-$(CONFIG_MFD_SKY81452) += sky81452.o
+ intel-soc-pmic-objs := intel_soc_pmic_core.o intel_soc_pmic_crc.o
+ obj-$(CONFIG_INTEL_SOC_PMIC) += intel-soc-pmic.o
+ obj-$(CONFIG_INTEL_SOC_PMIC_BXTWC) += intel_soc_pmic_bxtwc.o
++obj-$(CONFIG_INTEL_SOC_PMIC_CHTWC) += intel_soc_pmic_chtwc.o
+ obj-$(CONFIG_MFD_MT6397) += mt6397-core.o
+
+ obj-$(CONFIG_MFD_ALTERA_A10SR) += altera-a10sr.o
+diff --git a/drivers/mfd/intel_soc_pmic_chtwc.c b/drivers/mfd/intel_soc_pmic_chtwc.c
+new file mode 100644
+index 000000000000..b35da01d5bcf
+--- /dev/null
++++ b/drivers/mfd/intel_soc_pmic_chtwc.c
+@@ -0,0 +1,230 @@
++/*
++ * MFD core driver for Intel Cherrytrail Whiskey Cove PMIC
++ *
++ * Copyright (C) 2017 Hans de Goede <hdegoede@redhat.com>
++ *
++ * Based on various non upstream patches to support the CHT Whiskey Cove PMIC:
++ * Copyright (C) 2013-2015 Intel Corporation. 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 version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/acpi.h>
++#include <linux/delay.h>
++#include <linux/err.h>
++#include <linux/i2c.h>
++#include <linux/interrupt.h>
++#include <linux/kernel.h>
++#include <linux/mfd/core.h>
++#include <linux/mfd/intel_soc_pmic.h>
++#include <linux/regmap.h>
++
++/* PMIC device registers */
++#define REG_OFFSET_MASK GENMASK(7, 0)
++#define REG_ADDR_MASK GENMASK(15, 8)
++#define REG_ADDR_SHIFT 8
++
++#define CHT_WC_IRQLVL1 0x6e02
++#define CHT_WC_IRQLVL1_MASK 0x6e0e
++
++/* Whiskey Cove PMIC share same ACPI ID between different platforms */
++#define CHT_WC_HRV 3
++
++/* Level 1 IRQs (level 2 IRQs are handled in the child device drivers) */
++enum {
++ CHT_WC_PWRSRC_IRQ = 0,
++ CHT_WC_THRM_IRQ,
++ CHT_WC_BCU_IRQ,
++ CHT_WC_ADC_IRQ,
++ CHT_WC_EXT_CHGR_IRQ,
++ CHT_WC_GPIO_IRQ,
++ /* There is no irq 6 */
++ CHT_WC_CRIT_IRQ = 7,
++};
++
++static struct resource cht_wc_pwrsrc_resources[] = {
++ DEFINE_RES_IRQ(CHT_WC_PWRSRC_IRQ),
++};
++
++static struct resource cht_wc_ext_charger_resources[] = {
++ DEFINE_RES_IRQ(CHT_WC_EXT_CHGR_IRQ),
++};
++
++static struct mfd_cell cht_wc_dev[] = {
++ {
++ .name = "cht_wcove_pwrsrc",
++ .num_resources = ARRAY_SIZE(cht_wc_pwrsrc_resources),
++ .resources = cht_wc_pwrsrc_resources,
++ }, {
++ .name = "cht_wcove_ext_chgr",
++ .num_resources = ARRAY_SIZE(cht_wc_ext_charger_resources),
++ .resources = cht_wc_ext_charger_resources,
++ },
++ { .name = "cht_wcove_region", },
++};
++
++/*
++ * The CHT Whiskey Cove covers multiple I2C addresses, with a 1 Byte
++ * register address space per I2C address, so we use 16 bit register
++ * addresses where the high 8 bits contain the I2C client address.
++ */
++static int cht_wc_byte_reg_read(void *context, unsigned int reg,
++ unsigned int *val)
++{
++ struct i2c_client *client = context;
++ int ret, orig_addr = client->addr;
++
++ if (!(reg & REG_ADDR_MASK)) {
++ dev_err(&client->dev, "Error I2C address not specified\n");
++ return -EINVAL;
++ }
++
++ client->addr = (reg & REG_ADDR_MASK) >> REG_ADDR_SHIFT;
++ ret = i2c_smbus_read_byte_data(client, reg & REG_OFFSET_MASK);
++ client->addr = orig_addr;
++
++ if (ret < 0)
++ return ret;
++
++ *val = ret;
++ return 0;
++}
++
++static int cht_wc_byte_reg_write(void *context, unsigned int reg,
++ unsigned int val)
++{
++ struct i2c_client *client = context;
++ int ret, orig_addr = client->addr;
++
++ if (!(reg & REG_ADDR_MASK)) {
++ dev_err(&client->dev, "Error I2C address not specified\n");
++ return -EINVAL;
++ }
++
++ client->addr = (reg & REG_ADDR_MASK) >> REG_ADDR_SHIFT;
++ ret = i2c_smbus_write_byte_data(client, reg & REG_OFFSET_MASK, val);
++ client->addr = orig_addr;
++
++ return ret;
++}
++
++static const struct regmap_config cht_wc_regmap_cfg = {
++ .reg_bits = 16,
++ .val_bits = 8,
++ .reg_write = cht_wc_byte_reg_write,
++ .reg_read = cht_wc_byte_reg_read,
++};
++
++static const struct regmap_irq cht_wc_regmap_irqs[] = {
++ REGMAP_IRQ_REG(CHT_WC_PWRSRC_IRQ, 0, BIT(CHT_WC_PWRSRC_IRQ)),
++ REGMAP_IRQ_REG(CHT_WC_THRM_IRQ, 0, BIT(CHT_WC_THRM_IRQ)),
++ REGMAP_IRQ_REG(CHT_WC_BCU_IRQ, 0, BIT(CHT_WC_BCU_IRQ)),
++ REGMAP_IRQ_REG(CHT_WC_ADC_IRQ, 0, BIT(CHT_WC_ADC_IRQ)),
++ REGMAP_IRQ_REG(CHT_WC_EXT_CHGR_IRQ, 0, BIT(CHT_WC_EXT_CHGR_IRQ)),
++ REGMAP_IRQ_REG(CHT_WC_GPIO_IRQ, 0, BIT(CHT_WC_GPIO_IRQ)),
++ REGMAP_IRQ_REG(CHT_WC_CRIT_IRQ, 0, BIT(CHT_WC_CRIT_IRQ)),
++};
++
++static const struct regmap_irq_chip cht_wc_regmap_irq_chip = {
++ .name = "cht_wc_irq_chip",
++ .status_base = CHT_WC_IRQLVL1,
++ .mask_base = CHT_WC_IRQLVL1_MASK,
++ .irqs = cht_wc_regmap_irqs,
++ .num_irqs = ARRAY_SIZE(cht_wc_regmap_irqs),
++ .num_regs = 1,
++};
++
++static int cht_wc_probe(struct i2c_client *client)
++{
++ struct device *dev = &client->dev;
++ struct intel_soc_pmic *pmic;
++ acpi_status status;
++ unsigned long long hrv;
++ int ret;
++
++ status = acpi_evaluate_integer(ACPI_HANDLE(dev), "_HRV", NULL, &hrv);
++ if (ACPI_FAILURE(status)) {
++ dev_err(dev, "Failed to get PMIC hardware revision\n");
++ return -ENODEV;
++ }
++ if (hrv != CHT_WC_HRV) {
++ dev_err(dev, "Invalid PMIC hardware revision: %llu\n", hrv);
++ return -ENODEV;
++ }
++ if (client->irq < 0) {
++ dev_err(dev, "Invalid IRQ\n");
++ return -EINVAL;
++ }
++
++ pmic = devm_kzalloc(dev, sizeof(*pmic), GFP_KERNEL);
++ if (!pmic)
++ return -ENOMEM;
++
++ pmic->irq = client->irq;
++ pmic->dev = dev;
++ i2c_set_clientdata(client, pmic);
++
++ pmic->regmap = devm_regmap_init(dev, NULL, client, &cht_wc_regmap_cfg);
++ if (IS_ERR(pmic->regmap))
++ return PTR_ERR(pmic->regmap);
++
++ ret = devm_regmap_add_irq_chip(dev, pmic->regmap, pmic->irq,
++ IRQF_ONESHOT | IRQF_SHARED, 0,
++ &cht_wc_regmap_irq_chip,
++ &pmic->irq_chip_data);
++ if (ret)
++ return ret;
++
++ return devm_mfd_add_devices(dev, PLATFORM_DEVID_NONE,
++ cht_wc_dev, ARRAY_SIZE(cht_wc_dev), NULL, 0,
++ regmap_irq_get_domain(pmic->irq_chip_data));
++}
++
++static void cht_wc_shutdown(struct i2c_client *client)
++{
++ struct intel_soc_pmic *pmic = i2c_get_clientdata(client);
++
++ disable_irq(pmic->irq);
++}
++
++static int __maybe_unused cht_wc_suspend(struct device *dev)
++{
++ struct intel_soc_pmic *pmic = dev_get_drvdata(dev);
++
++ disable_irq(pmic->irq);
++
++ return 0;
++}
++
++static int __maybe_unused cht_wc_resume(struct device *dev)
++{
++ struct intel_soc_pmic *pmic = dev_get_drvdata(dev);
++
++ enable_irq(pmic->irq);
++
++ return 0;
++}
++static SIMPLE_DEV_PM_OPS(cht_wc_pm_ops, cht_wc_suspend, cht_wc_resume);
++
++static const struct i2c_device_id cht_wc_i2c_id[] = {
++ { }
++};
++
++static const struct acpi_device_id cht_wc_acpi_ids[] = {
++ { "INT34D3", },
++ { }
++};
++
++static struct i2c_driver cht_wc_driver = {
++ .driver = {
++ .name = "CHT Whiskey Cove PMIC",
++ .pm = &cht_wc_pm_ops,
++ .acpi_match_table = cht_wc_acpi_ids,
++ },
++ .probe_new = cht_wc_probe,
++ .shutdown = cht_wc_shutdown,
++ .id_table = cht_wc_i2c_id,
++};
++builtin_i2c_driver(cht_wc_driver);
+--
+2.13.0
+
diff --git a/0002-platform-x86-thinkpad_acpi-add-mapping-for-new-hotke.patch b/0002-platform-x86-thinkpad_acpi-add-mapping-for-new-hotke.patch
deleted file mode 100644
index 2c9bcbbeb..000000000
--- a/0002-platform-x86-thinkpad_acpi-add-mapping-for-new-hotke.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-From 82e71b57b1b4347126b1ffd7b2beed2bc8b795bd Mon Sep 17 00:00:00 2001
-From: Christian Kellner <christian@kellner.me>
-Date: Tue, 28 Feb 2017 17:10:57 +0100
-Subject: [PATCH 2/2] platform/x86: thinkpad_acpi: add mapping for new hotkeys
-
-The T470, X270 emits new hkey events in the 0x1311 - 0x1315 range.
-According to the user manual they should launch a user selected
-favorite application (star icon, 0x1311), snipping tool (0x1312,
-currently ignored), enable/disable bluetooth (0x1314) and open they
-keyboard settings (0x1315).
-
-The third nibble (0xf00) is used to differentiate between the original
-hotkeys, the adaptive keyboard codes and the new, additional ones.
-
-Signed-off-by: Christian Kellner <ckellner@redhat.com>
-Reviewed-by: Hans de Goede <hdegoede@redhat.com>
-Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
-Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
----
- drivers/platform/x86/thinkpad_acpi.c | 91 +++++++++++++++++++++++++++++++-----
- 1 file changed, 79 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
-index e2b962f..7b6cb0c 100644
---- a/drivers/platform/x86/thinkpad_acpi.c
-+++ b/drivers/platform/x86/thinkpad_acpi.c
-@@ -1945,6 +1945,15 @@ enum { /* hot key scan codes (derived from ACPI DSDT) */
- TP_ACPI_HOTKEYSCAN_CAMERA_MODE,
- TP_ACPI_HOTKEYSCAN_ROTATE_DISPLAY,
-
-+ /* Lenovo extended keymap, starting at 0x1300 */
-+ TP_ACPI_HOTKEYSCAN_EXTENDED_START,
-+ /* first new observed key (star, favorites) is 0x1311 */
-+ TP_ACPI_HOTKEYSCAN_STAR = 69,
-+ TP_ACPI_HOTKEYSCAN_CLIPPING_TOOL2,
-+ TP_ACPI_HOTKEYSCAN_UNK25,
-+ TP_ACPI_HOTKEYSCAN_BLUETOOTH,
-+ TP_ACPI_HOTKEYSCAN_KEYBOARD,
-+
- /* Hotkey keymap size */
- TPACPI_HOTKEY_MAP_LEN
- };
-@@ -3252,6 +3261,15 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
- KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
- KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
- KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+
-+ /* No assignment, used for newer Lenovo models */
-+ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+ KEY_UNKNOWN, KEY_UNKNOWN
-+
- },
-
- /* Generic keymap for Lenovo ThinkPads */
-@@ -3337,6 +3355,29 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
- KEY_RESERVED, /* Microphone cancellation */
- KEY_RESERVED, /* Camera mode */
- KEY_RESERVED, /* Rotate display, 0x116 */
-+
-+ /*
-+ * These are found in 2017 models (e.g. T470s, X270).
-+ * The lowest known value is 0x311, which according to
-+ * the manual should launch a user defined favorite
-+ * application.
-+ *
-+ * The offset for these is TP_ACPI_HOTKEYSCAN_EXTENDED_START,
-+ * corresponding to 0x34.
-+ */
-+
-+ /* (assignments unknown, please report if found) */
-+ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+ KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
-+ KEY_UNKNOWN,
-+
-+ KEY_FAVORITES, /* Favorite app, 0x311 */
-+ KEY_RESERVED, /* Clipping tool */
-+ KEY_RESERVED,
-+ KEY_BLUETOOTH, /* Bluetooth */
-+ KEY_KEYBOARD /* Keyboard, 0x315 */
- },
- };
-
-@@ -3747,8 +3788,9 @@ static bool adaptive_keyboard_hotkey_notify_hotkey(unsigned int scancode)
-
- default:
- if (scancode < FIRST_ADAPTIVE_KEY ||
-- scancode >= FIRST_ADAPTIVE_KEY + TPACPI_HOTKEY_MAP_LEN -
-- TP_ACPI_HOTKEYSCAN_ADAPTIVE_START) {
-+ scancode >= FIRST_ADAPTIVE_KEY +
-+ TP_ACPI_HOTKEYSCAN_EXTENDED_START -
-+ TP_ACPI_HOTKEYSCAN_ADAPTIVE_START) {
- pr_info("Unhandled adaptive keyboard key: 0x%x\n",
- scancode);
- return false;
-@@ -3779,19 +3821,44 @@ static bool hotkey_notify_hotkey(const u32 hkey,
- *send_acpi_ev = true;
- *ignore_acpi_ev = false;
-
-- /* HKEY event 0x1001 is scancode 0x00 */
-- if (scancode > 0 && scancode <= TP_ACPI_HOTKEYSCAN_ADAPTIVE_START) {
-- scancode--;
-- if (!(hotkey_source_mask & (1 << scancode))) {
-- tpacpi_input_send_key_masked(scancode);
-- *send_acpi_ev = false;
-- } else {
-- *ignore_acpi_ev = true;
-+ /*
-+ * Original events are in the 0x10XX range, the adaptive keyboard
-+ * found in 2014 X1 Carbon emits events are of 0x11XX. In 2017
-+ * models, additional keys are emitted through 0x13XX.
-+ */
-+ switch ((hkey >> 8) & 0xf) {
-+ case 0:
-+ if (scancode > 0 &&
-+ scancode <= TP_ACPI_HOTKEYSCAN_ADAPTIVE_START) {
-+ /* HKEY event 0x1001 is scancode 0x00 */
-+ scancode--;
-+ if (!(hotkey_source_mask & (1 << scancode))) {
-+ tpacpi_input_send_key_masked(scancode);
-+ *send_acpi_ev = false;
-+ } else {
-+ *ignore_acpi_ev = true;
-+ }
-+ return true;
- }
-- return true;
-- } else {
-+ break;
-+
-+ case 1:
- return adaptive_keyboard_hotkey_notify_hotkey(scancode);
-+
-+ case 3:
-+ /* Extended keycodes start at 0x300 and our offset into the map
-+ * TP_ACPI_HOTKEYSCAN_EXTENDED_START. The calculated scancode
-+ * will be positive, but might not be in the correct range.
-+ */
-+ scancode -= (0x300 - TP_ACPI_HOTKEYSCAN_EXTENDED_START);
-+ if (scancode >= TP_ACPI_HOTKEYSCAN_EXTENDED_START &&
-+ scancode < TPACPI_HOTKEY_MAP_LEN) {
-+ tpacpi_input_send_key(scancode);
-+ return true;
-+ }
-+ break;
- }
-+
- return false;
- }
-
---
-2.9.4
-
diff --git a/0003-power-supply-core-Add-support-for-supplied-from-devi.patch b/0003-power-supply-core-Add-support-for-supplied-from-devi.patch
new file mode 100644
index 000000000..ab646e2e5
--- /dev/null
+++ b/0003-power-supply-core-Add-support-for-supplied-from-devi.patch
@@ -0,0 +1,57 @@
+From 69dd0606a0d8680fe0a5e9b959f6662e582e1674 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 2 May 2017 13:43:34 +0200
+Subject: [PATCH 03/16] power: supply: core: Add support for supplied-from
+ device-property
+
+On devicetree using platforms the devicetree can provide info on which
+power-supplies supply another power-supply through phandles.
+
+This commit adds support for providing this info on non devicetree
+platforms through the platform code setting a supplied-from
+device-property on the power-supplies parent device.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/power/supply/power_supply_core.c | 24 +++++++++++++++++++++++-
+ 1 file changed, 23 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c
+index 7ec7c7c202bd..0c09144193a6 100644
+--- a/drivers/power/supply/power_supply_core.c
++++ b/drivers/power/supply/power_supply_core.c
+@@ -274,8 +274,30 @@ static int power_supply_check_supplies(struct power_supply *psy)
+ return power_supply_populate_supplied_from(psy);
+ }
+ #else
+-static inline int power_supply_check_supplies(struct power_supply *psy)
++static int power_supply_check_supplies(struct power_supply *psy)
+ {
++ int nval, ret;
++
++ if (!psy->dev.parent)
++ return 0;
++
++ nval = device_property_read_string_array(psy->dev.parent,
++ "supplied-from", NULL, 0);
++ if (nval <= 0)
++ return 0;
++
++ psy->supplied_from = devm_kmalloc_array(&psy->dev, nval,
++ sizeof(char *), GFP_KERNEL);
++ if (!psy->supplied_from)
++ return -ENOMEM;
++
++ ret = device_property_read_string_array(psy->dev.parent,
++ "supplied-from", (const char **)psy->supplied_from, nval);
++ if (ret < 0)
++ return ret;
++
++ psy->num_supplies = nval;
++
+ return 0;
+ }
+ #endif
+--
+2.13.0
+
diff --git a/0004-platform-x86-intel_cht_int33fe-Set-supplied-from-pro.patch b/0004-platform-x86-intel_cht_int33fe-Set-supplied-from-pro.patch
new file mode 100644
index 000000000..342a48c54
--- /dev/null
+++ b/0004-platform-x86-intel_cht_int33fe-Set-supplied-from-pro.patch
@@ -0,0 +1,48 @@
+From 99c44df299d96db6a170ccce9b8108fc2e7f8bae Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 2 May 2017 13:40:44 +0200
+Subject: [PATCH 04/16] platform/x86: intel_cht_int33fe: Set supplied-from
+ property on max17047 dev
+
+Devices with the intel_cht_int33fe ACPI device use a max17047 fuel-gauge
+combined with a bq24272i charger, in order for the fuel-gauge driver to
+correctly display charging / discharging status it needs to know which
+charger is supplying the battery.
+
+This commit sets the supplied-from device property to the name of the
+bq24272i charger for this.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/platform/x86/intel_cht_int33fe.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/platform/x86/intel_cht_int33fe.c b/drivers/platform/x86/intel_cht_int33fe.c
+index 6a1b2ca5b6fe..da706e2c4232 100644
+--- a/drivers/platform/x86/intel_cht_int33fe.c
++++ b/drivers/platform/x86/intel_cht_int33fe.c
+@@ -34,6 +34,13 @@ struct cht_int33fe_data {
+ struct i2c_client *pi3usb30532;
+ };
+
++static const char * const max17047_suppliers[] = { "bq24190-charger" };
++
++static const struct property_entry max17047_props[] = {
++ PROPERTY_ENTRY_STRING_ARRAY("supplied-from", max17047_suppliers),
++ { }
++};
++
+ static int cht_int33fe_probe(struct i2c_client *client)
+ {
+ struct device *dev = &client->dev;
+@@ -70,6 +77,7 @@ static int cht_int33fe_probe(struct i2c_client *client)
+
+ memset(&board_info, 0, sizeof(board_info));
+ strlcpy(board_info.type, "max17047", I2C_NAME_SIZE);
++ board_info.properties = max17047_props;
+
+ data->max17047 = i2c_acpi_new_device(dev, 1, &board_info);
+ if (!data->max17047)
+--
+2.13.0
+
diff --git a/0005-ACPI-PMIC-xpower-Add-support-for-the-GPI1-regulator-.patch b/0005-ACPI-PMIC-xpower-Add-support-for-the-GPI1-regulator-.patch
new file mode 100644
index 000000000..c6f299c29
--- /dev/null
+++ b/0005-ACPI-PMIC-xpower-Add-support-for-the-GPI1-regulator-.patch
@@ -0,0 +1,80 @@
+From cc2b0e2c164d02ab42efa736f91f53baf8d8bc36 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Thu, 20 Apr 2017 22:41:20 +0200
+Subject: [PATCH 05/16] ACPI / PMIC: xpower: Add support for the GPI1 regulator
+ to the OpRegion handler
+
+Some Bay Trail devices use a GPI1 regulator field (address 0x4c) in
+their 0x8d power OpRegion, add support for this.
+
+This fixes AE_BAD_PARAMETER errors getting thrown on these devices and
+fixes these errors causing these devices to not suspend.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+---
+Changes in v2:
+-Simplify reg == 0x92 handling (suggested by Andy Shevchenko)
+-Add special handling for reg == 0x92 to intel_xpower_pmic_get_power() too
+Changes in v3:
+-Use defines for GPI1 reg and bits, rather then hardcoded hex values
+---
+ drivers/acpi/pmic/intel_pmic_xpower.c | 21 ++++++++++++++++++++-
+ 1 file changed, 20 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/acpi/pmic/intel_pmic_xpower.c b/drivers/acpi/pmic/intel_pmic_xpower.c
+index 1a76c784cd4c..3b7d5be5b7ed 100644
+--- a/drivers/acpi/pmic/intel_pmic_xpower.c
++++ b/drivers/acpi/pmic/intel_pmic_xpower.c
+@@ -21,6 +21,11 @@
+ #include "intel_pmic.h"
+
+ #define XPOWER_GPADC_LOW 0x5b
++#define XPOWER_GPI1_CTRL 0x92
++
++#define GPI1_LDO_MASK GENMASK(2, 0)
++#define GPI1_LDO_ON (3 << 0)
++#define GPI1_LDO_OFF (4 << 0)
+
+ static struct pmic_table power_table[] = {
+ {
+@@ -118,6 +123,10 @@ static struct pmic_table power_table[] = {
+ .reg = 0x10,
+ .bit = 0x00
+ }, /* BUC6 */
++ {
++ .address = 0x4c,
++ .reg = 0x92,
++ }, /* GPI1 */
+ };
+
+ /* TMP0 - TMP5 are the same, all from GPADC */
+@@ -156,7 +165,12 @@ static int intel_xpower_pmic_get_power(struct regmap *regmap, int reg,
+ if (regmap_read(regmap, reg, &data))
+ return -EIO;
+
+- *value = (data & BIT(bit)) ? 1 : 0;
++ /* GPIO1 LDO regulator needs special handling */
++ if (reg == XPOWER_GPI1_CTRL)
++ *value = ((data & GPI1_LDO_MASK) == GPI1_LDO_ON);
++ else
++ *value = (data & BIT(bit)) ? 1 : 0;
++
+ return 0;
+ }
+
+@@ -165,6 +179,11 @@ static int intel_xpower_pmic_update_power(struct regmap *regmap, int reg,
+ {
+ int data;
+
++ /* GPIO1 LDO regulator needs special handling */
++ if (reg == XPOWER_GPI1_CTRL)
++ return regmap_update_bits(regmap, reg, GPI1_LDO_MASK,
++ on ? GPI1_LDO_ON : GPI1_LDO_OFF);
++
+ if (regmap_read(regmap, reg, &data))
+ return -EIO;
+
+--
+2.13.0
+
diff --git a/0006-Input-axp20x-pek-Add-wakeup-support.patch b/0006-Input-axp20x-pek-Add-wakeup-support.patch
new file mode 100644
index 000000000..1ec9659bd
--- /dev/null
+++ b/0006-Input-axp20x-pek-Add-wakeup-support.patch
@@ -0,0 +1,67 @@
+From fbac4c05ec1d7c2d949f50baf1e934cbfbb6a494 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Mon, 17 Apr 2017 22:06:25 +0200
+Subject: [PATCH 06/16] Input: axp20x-pek - Add wakeup support
+
+At least on devices with the AXP288 PMIC the device is expected to
+wakeup from suspend when the power-button gets pressed, add support
+for this.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/input/misc/axp20x-pek.c | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff --git a/drivers/input/misc/axp20x-pek.c b/drivers/input/misc/axp20x-pek.c
+index 400869e61a06..5f16fceaae83 100644
+--- a/drivers/input/misc/axp20x-pek.c
++++ b/drivers/input/misc/axp20x-pek.c
+@@ -253,6 +253,9 @@ static int axp20x_pek_probe_input_device(struct axp20x_pek *axp20x_pek,
+ return error;
+ }
+
++ if (axp20x_pek->axp20x->variant == AXP288_ID)
++ enable_irq_wake(axp20x_pek->irq_dbr);
++
+ return 0;
+ }
+
+@@ -331,10 +334,35 @@ static int axp20x_pek_probe(struct platform_device *pdev)
+ return 0;
+ }
+
++static int __maybe_unused axp20x_pek_resume_noirq(struct device *dev)
++{
++ struct axp20x_pek *axp20x_pek = dev_get_drvdata(dev);
++
++ if (axp20x_pek->axp20x->variant != AXP288_ID)
++ return 0;
++
++ /*
++ * Clear interrupts from button presses during suspend, to avoid
++ * a wakeup power-button press getting reported to userspace.
++ */
++ regmap_write(axp20x_pek->axp20x->regmap,
++ AXP20X_IRQ1_STATE + AXP288_IRQ_POKN / 8,
++ BIT(AXP288_IRQ_POKN % 8));
++
++ return 0;
++}
++
++const struct dev_pm_ops axp20x_pek_pm_ops = {
++#ifdef CONFIG_PM_SLEEP
++ .resume_noirq = axp20x_pek_resume_noirq,
++#endif
++};
++
+ static struct platform_driver axp20x_pek_driver = {
+ .probe = axp20x_pek_probe,
+ .driver = {
+ .name = "axp20x-pek",
++ .pm = &axp20x_pek_pm_ops,
+ },
+ };
+ module_platform_driver(axp20x_pek_driver);
+--
+2.13.0
+
diff --git a/0007-platform-x86-silead_dmi-Add-touchscreen-info-for-GP-.patch b/0007-platform-x86-silead_dmi-Add-touchscreen-info-for-GP-.patch
new file mode 100644
index 000000000..0b7633459
--- /dev/null
+++ b/0007-platform-x86-silead_dmi-Add-touchscreen-info-for-GP-.patch
@@ -0,0 +1,56 @@
+From d95c127c48ef784214671359a41ac505ac30098a Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sun, 7 May 2017 12:32:11 +0200
+Subject: [PATCH 07/16] platform/x86: silead_dmi: Add touchscreen info for
+ GP-electronic T701
+
+Add touchscreen info for the GP-electronic T701 tablet.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/platform/x86/silead_dmi.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/drivers/platform/x86/silead_dmi.c b/drivers/platform/x86/silead_dmi.c
+index a3a57d93cf06..db3a877d2160 100644
+--- a/drivers/platform/x86/silead_dmi.c
++++ b/drivers/platform/x86/silead_dmi.c
+@@ -80,6 +80,19 @@ static const struct silead_ts_dmi_data surftab_wintron70_st70416_6_data = {
+ .properties = surftab_wintron70_st70416_6_props,
+ };
+
++static const struct property_entry gp_electronic_t701_props[] = {
++ PROPERTY_ENTRY_U32("touchscreen-size-x", 960),
++ PROPERTY_ENTRY_U32("touchscreen-size-y", 640),
++ PROPERTY_ENTRY_STRING("firmware-name",
++ "gsl1680-gp-electronic-t701.fw"),
++ { }
++};
++
++static const struct silead_ts_dmi_data gp_electronic_t701_data = {
++ .acpi_name = "MSSL1680:00",
++ .properties = gp_electronic_t701_props,
++};
++
+ static const struct dmi_system_id silead_ts_dmi_table[] = {
+ {
+ /* CUBE iwork8 Air */
+@@ -117,6 +130,15 @@ static const struct dmi_system_id silead_ts_dmi_table[] = {
+ DMI_MATCH(DMI_BIOS_VERSION, "TREK.G.WI71C.JGBMRBA04"),
+ },
+ },
++ {
++ /* GP-electronic T701 */
++ .driver_data = (void *)&gp_electronic_t701_data,
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "T701"),
++ DMI_MATCH(DMI_BIOS_VERSION, "BYT70A.YNCHENG.WIN.007"),
++ },
++ },
+ { },
+ };
+
+--
+2.13.0
+
diff --git a/0008-platform-x86-silead_dmi-Add-touchscreen-info-for-PoV.patch b/0008-platform-x86-silead_dmi-Add-touchscreen-info-for-PoV.patch
new file mode 100644
index 000000000..975deb8f0
--- /dev/null
+++ b/0008-platform-x86-silead_dmi-Add-touchscreen-info-for-PoV.patch
@@ -0,0 +1,59 @@
+From 55b347c61b2850d1e11e159ab02dc71f13b06481 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sun, 11 Jun 2017 17:42:31 +0200
+Subject: [PATCH 08/16] platform/x86: silead_dmi: Add touchscreen info for PoV
+ mobii wintab p800w
+
+Add touchscreen info for the Point of View mobii wintab p800w tablet.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/platform/x86/silead_dmi.c | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+diff --git a/drivers/platform/x86/silead_dmi.c b/drivers/platform/x86/silead_dmi.c
+index db3a877d2160..46c5e1ebfb53 100644
+--- a/drivers/platform/x86/silead_dmi.c
++++ b/drivers/platform/x86/silead_dmi.c
+@@ -93,6 +93,20 @@ static const struct silead_ts_dmi_data gp_electronic_t701_data = {
+ .properties = gp_electronic_t701_props,
+ };
+
++static const struct property_entry pov_mobii_wintab_p800w_props[] = {
++ PROPERTY_ENTRY_U32("touchscreen-size-x", 1800),
++ PROPERTY_ENTRY_U32("touchscreen-size-y", 1150),
++ PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"),
++ PROPERTY_ENTRY_STRING("firmware-name",
++ "gsl3692-pov-mobii-wintab-p800w.fw"),
++ { }
++};
++
++static const struct silead_ts_dmi_data pov_mobii_wintab_p800w_data = {
++ .acpi_name = "MSSL1680:00",
++ .properties = pov_mobii_wintab_p800w_props,
++};
++
+ static const struct dmi_system_id silead_ts_dmi_table[] = {
+ {
+ /* CUBE iwork8 Air */
+@@ -139,6 +153,17 @@ static const struct dmi_system_id silead_ts_dmi_table[] = {
+ DMI_MATCH(DMI_BIOS_VERSION, "BYT70A.YNCHENG.WIN.007"),
+ },
+ },
++ {
++ /* Point of View mobii wintab p800w */
++ .driver_data = (void *)&pov_mobii_wintab_p800w_data,
++ .matches = {
++ DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
++ DMI_MATCH(DMI_BOARD_NAME, "Aptio CRB"),
++ DMI_MATCH(DMI_BIOS_VERSION, "3BAIR1013"),
++ /* Above matches are too generic, add bios-date match */
++ DMI_MATCH(DMI_BIOS_DATE, "08/22/2014"),
++ },
++ },
+ { },
+ };
+
+--
+2.13.0
+
diff --git a/0009-platform-x86-silead_dmi-Add-touchscreen-info-for-Pip.patch b/0009-platform-x86-silead_dmi-Add-touchscreen-info-for-Pip.patch
new file mode 100644
index 000000000..0770395d9
--- /dev/null
+++ b/0009-platform-x86-silead_dmi-Add-touchscreen-info-for-Pip.patch
@@ -0,0 +1,57 @@
+From b239a7a0c2a1435aa5cbab3f233e0c37e82943dd Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 13 Jun 2017 18:17:07 +0200
+Subject: [PATCH 09/16] platform/x86: silead_dmi: Add touchscreen info for Pipo
+ W2S tablet
+
+Add touchscreen info for Pipo W2S tablet.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/platform/x86/silead_dmi.c | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/drivers/platform/x86/silead_dmi.c b/drivers/platform/x86/silead_dmi.c
+index 46c5e1ebfb53..25cbea307a5e 100644
+--- a/drivers/platform/x86/silead_dmi.c
++++ b/drivers/platform/x86/silead_dmi.c
+@@ -107,6 +107,21 @@ static const struct silead_ts_dmi_data pov_mobii_wintab_p800w_data = {
+ .properties = pov_mobii_wintab_p800w_props,
+ };
+
++static const struct property_entry pipo_w2s_props[] = {
++ PROPERTY_ENTRY_U32("touchscreen-size-x", 1660),
++ PROPERTY_ENTRY_U32("touchscreen-size-y", 880),
++ PROPERTY_ENTRY_BOOL("touchscreen-inverted-x"),
++ PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"),
++ PROPERTY_ENTRY_STRING("firmware-name",
++ "gsl1680-pipo-w2s.fw"),
++ { }
++};
++
++static const struct silead_ts_dmi_data pipo_w2s_data = {
++ .acpi_name = "MSSL1680:00",
++ .properties = pipo_w2s_props,
++};
++
+ static const struct dmi_system_id silead_ts_dmi_table[] = {
+ {
+ /* CUBE iwork8 Air */
+@@ -164,6 +179,14 @@ static const struct dmi_system_id silead_ts_dmi_table[] = {
+ DMI_MATCH(DMI_BIOS_DATE, "08/22/2014"),
+ },
+ },
++ {
++ /* Pipo W2S */
++ .driver_data = (void *)&pipo_w2s_data,
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "PIPO"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "W2S"),
++ },
++ },
+ { },
+ };
+
+--
+2.13.0
+
diff --git a/0010-Input-silead-Add-support-for-capactive-home-button-f.patch b/0010-Input-silead-Add-support-for-capactive-home-button-f.patch
new file mode 100644
index 000000000..ce9be3760
--- /dev/null
+++ b/0010-Input-silead-Add-support-for-capactive-home-button-f.patch
@@ -0,0 +1,114 @@
+From 33fc16fd8aa3684e19b1d1f0a712593e2e570ab1 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sun, 11 Jun 2017 21:24:50 +0200
+Subject: [PATCH 10/16] Input: silead: Add support for capactive home button
+ found on some x86 tablets
+
+On some x86 tablets with a silead touchscreen the windows logo on the
+front is a capacitive home button. Touching this button results in a touch
+with bits 12-15 of the Y coordinates set, while normally only the lower 12
+are used.
+
+Detect this and report a KEY_LEFTMETA press when this happens. Note for
+now we only respond to the Y coordinate bits 12-15 containing 0x01, on some
+tablets *without* a capacative button I've noticed these bits containing
+0x04 when crossing the edges of the screen.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/input/touchscreen/silead.c | 45 ++++++++++++++++++++++++++++----------
+ 1 file changed, 34 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/input/touchscreen/silead.c b/drivers/input/touchscreen/silead.c
+index 0dbcf105f7db..c0ba40c09699 100644
+--- a/drivers/input/touchscreen/silead.c
++++ b/drivers/input/touchscreen/silead.c
+@@ -56,7 +56,7 @@
+ #define SILEAD_POINT_Y_MSB_OFF 0x01
+ #define SILEAD_POINT_X_OFF 0x02
+ #define SILEAD_POINT_X_MSB_OFF 0x03
+-#define SILEAD_TOUCH_ID_MASK 0xF0
++#define SILEAD_EXTRA_DATA_MASK 0xF0
+
+ #define SILEAD_CMD_SLEEP_MIN 10000
+ #define SILEAD_CMD_SLEEP_MAX 20000
+@@ -109,6 +109,8 @@ static int silead_ts_request_input_dev(struct silead_ts_data *data)
+ INPUT_MT_DIRECT | INPUT_MT_DROP_UNUSED |
+ INPUT_MT_TRACK);
+
++ input_set_capability(data->input, EV_KEY, KEY_LEFTMETA);
++
+ data->input->name = SILEAD_TS_NAME;
+ data->input->phys = "input/ts";
+ data->input->id.bustype = BUS_I2C;
+@@ -139,7 +141,8 @@ static void silead_ts_read_data(struct i2c_client *client)
+ struct input_dev *input = data->input;
+ struct device *dev = &client->dev;
+ u8 *bufp, buf[SILEAD_TS_DATA_LEN];
+- int touch_nr, error, i;
++ int touch_nr, softbutton, error, i;
++ bool softbutton_pressed = false;
+
+ error = i2c_smbus_read_i2c_block_data(client, SILEAD_REG_DATA,
+ SILEAD_TS_DATA_LEN, buf);
+@@ -148,21 +151,40 @@ static void silead_ts_read_data(struct i2c_client *client)
+ return;
+ }
+
+- touch_nr = buf[0];
+- if (touch_nr > data->max_fingers) {
++ if (buf[0] > data->max_fingers) {
+ dev_warn(dev, "More touches reported then supported %d > %d\n",
+- touch_nr, data->max_fingers);
+- touch_nr = data->max_fingers;
++ buf[0], data->max_fingers);
++ buf[0] = data->max_fingers;
+ }
+
++ touch_nr = 0;
+ bufp = buf + SILEAD_POINT_DATA_LEN;
+- for (i = 0; i < touch_nr; i++, bufp += SILEAD_POINT_DATA_LEN) {
+- /* Bits 4-7 are the touch id */
+- data->id[i] = (bufp[SILEAD_POINT_X_MSB_OFF] &
+- SILEAD_TOUCH_ID_MASK) >> 4;
+- touchscreen_set_mt_pos(&data->pos[i], &data->prop,
++ for (i = 0; i < buf[0]; i++, bufp += SILEAD_POINT_DATA_LEN) {
++ softbutton = (bufp[SILEAD_POINT_Y_MSB_OFF] &
++ SILEAD_EXTRA_DATA_MASK) >> 4;
++
++ if (softbutton) {
++ /*
++ * For now only respond to softbutton == 0x01, some
++ * tablets *without* a capacative button send 0x04
++ * when crossing the edges of the screen.
++ */
++ if (softbutton == 0x01)
++ softbutton_pressed = true;
++
++ continue;
++ }
++
++ /*
++ * Bits 4-7 are the touch id, note not all models have
++ * hardware touch ids so atm we don't use these.
++ */
++ data->id[touch_nr] = (bufp[SILEAD_POINT_X_MSB_OFF] &
++ SILEAD_EXTRA_DATA_MASK) >> 4;
++ touchscreen_set_mt_pos(&data->pos[touch_nr], &data->prop,
+ get_unaligned_le16(&bufp[SILEAD_POINT_X_OFF]) & 0xfff,
+ get_unaligned_le16(&bufp[SILEAD_POINT_Y_OFF]) & 0xfff);
++ touch_nr++;
+ }
+
+ input_mt_assign_slots(input, data->slots, data->pos, touch_nr, 0);
+@@ -178,6 +200,7 @@ static void silead_ts_read_data(struct i2c_client *client)
+ }
+
+ input_mt_sync_frame(input);
++ input_report_key(input, KEY_LEFTMETA, softbutton_pressed);
+ input_sync(input);
+ }
+
+--
+2.13.0
+
diff --git a/0011-Input-goodix-Add-support-for-capacitive-home-button.patch b/0011-Input-goodix-Add-support-for-capacitive-home-button.patch
new file mode 100644
index 000000000..162357c21
--- /dev/null
+++ b/0011-Input-goodix-Add-support-for-capacitive-home-button.patch
@@ -0,0 +1,53 @@
+From 2a99775c336303d2efc43eab4f24b34722a28faa Mon Sep 17 00:00:00 2001
+From: "Sergei A. Trusov" <sergei.a.trusov@ya.ru>
+Date: Tue, 20 Jun 2017 18:08:35 +0200
+Subject: [PATCH 11/16] Input: goodix: Add support for capacitive home button
+
+On some x86 tablets with a Goodix touchscreen, the Windows logo on the
+front is a capacitive home button. Touching this button results in a touch
+with bit 4 of the first byte set, while only the lower 4 bits (0-3) are
+used to indicate the number of touches.
+
+Report a KEY_LEFTMETA press when this happens.
+
+Note that the hardware might support more than one button, in which
+case the "id" byte of coor_data would identify the button in question.
+This is not implemented as we don't have access to hardware with
+multiple buttons.
+
+Signed-off-by: Sergei A. Trusov <sergei.a.trusov@ya.ru>
+Acked-by: Bastien Nocera <hadess@hadess.net>
+---
+ drivers/input/touchscreen/goodix.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
+index 240b16f3ee97..903137d9cf7d 100644
+--- a/drivers/input/touchscreen/goodix.c
++++ b/drivers/input/touchscreen/goodix.c
+@@ -267,6 +267,12 @@ static void goodix_process_events(struct goodix_ts_data *ts)
+ if (touch_num < 0)
+ return;
+
++ /*
++ * Bit 4 of the first byte reports the status of the capacitive
++ * Windows/Home button.
++ */
++ input_report_key(ts->input_dev, KEY_LEFTMETA, !!(point_data[0] & BIT(4)));
++
+ for (i = 0; i < touch_num; i++)
+ goodix_ts_report_touch(ts,
+ &point_data[1 + GOODIX_CONTACT_SIZE * i]);
+@@ -612,6 +618,9 @@ static int goodix_request_input_dev(struct goodix_ts_data *ts)
+ ts->input_dev->id.product = ts->id;
+ ts->input_dev->id.version = ts->version;
+
++ /* Capacitive Windows/Home button on some devices */
++ input_set_capability(ts->input_dev, EV_KEY, KEY_LEFTMETA);
++
+ error = input_register_device(ts->input_dev);
+ if (error) {
+ dev_err(&ts->client->dev,
+--
+2.13.0
+
diff --git a/0012-Input-gpio_keys-Do-not-report-wake-button-presses-as.patch b/0012-Input-gpio_keys-Do-not-report-wake-button-presses-as.patch
new file mode 100644
index 000000000..9b52e3908
--- /dev/null
+++ b/0012-Input-gpio_keys-Do-not-report-wake-button-presses-as.patch
@@ -0,0 +1,150 @@
+From 02b823a4d28ffb5fde5192799abd934d9de95630 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 6 Jan 2017 20:08:11 +0100
+Subject: [PATCH 12/16] Input: gpio_keys - Do not report wake button presses as
+ evdev events
+
+If a button is a wake button, it may still be bouncing from the press
+to wakeup the device by the time the gpio interrupts get enabled again
+and / or the gpio_keys_report_state call from gpio_keys_resume may
+find the button still pressed and report this as a new press.
+
+This is undesirable, esp. since the powerbutton on tablets is typically
+a wakeup source and uses the gpio_keys driver on some tablets, leading
+to userspace immediately re-suspending the tablet after the powerbutton
+is pressed, due to it seeing a powerbutton press.
+
+This commit ignores wakeup button presses for the first 1 second after
+resume (and while resumed, as the workqueue may run before the resume
+function runs), avoiding this problem.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+Note: maybe we should make WAKE_DEBOUNCE part of gpio_keys_button and
+only do this when drivers / platform-data set this to a non-zero value ?
+---
+ drivers/input/keyboard/gpio_keys.c | 49 ++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 47 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
+index da3d362f21b1..e1488b534e7d 100644
+--- a/drivers/input/keyboard/gpio_keys.c
++++ b/drivers/input/keyboard/gpio_keys.c
+@@ -31,6 +31,8 @@
+ #include <linux/of_irq.h>
+ #include <linux/spinlock.h>
+
++#define WAKE_DEBOUNCE msecs_to_jiffies(1000)
++
+ struct gpio_button_data {
+ const struct gpio_keys_button *button;
+ struct input_dev *input;
+@@ -44,10 +46,14 @@ struct gpio_button_data {
+ struct delayed_work work;
+ unsigned int software_debounce; /* in msecs, for GPIO-driven buttons */
+
++ unsigned long resume_time; /* in jiffies, for wakeup buttons */
++
+ unsigned int irq;
+ spinlock_t lock;
+ bool disabled;
+ bool key_pressed;
++ bool suspended;
++ bool resume_time_valid;
+ };
+
+ struct gpio_keys_drvdata {
+@@ -356,6 +362,27 @@ static struct attribute_group gpio_keys_attr_group = {
+ .attrs = gpio_keys_attrs,
+ };
+
++static bool gpio_keys_ignore_wakeup_button_press(struct gpio_button_data *bdata)
++{
++ unsigned long flags;
++ bool ret = false;
++
++ if (!bdata->button->wakeup)
++ return ret;
++
++ spin_lock_irqsave(&bdata->lock, flags);
++
++ if (bdata->suspended)
++ ret = true; /* Our resume method did not run yet */
++ else if (bdata->resume_time_valid &&
++ time_before(jiffies, bdata->resume_time + WAKE_DEBOUNCE))
++ ret = true; /* Assume this is a wakeup press and ignore */
++
++ spin_unlock_irqrestore(&bdata->lock, flags);
++
++ return ret;
++}
++
+ static void gpio_keys_gpio_report_event(struct gpio_button_data *bdata)
+ {
+ const struct gpio_keys_button *button = bdata->button;
+@@ -370,6 +397,9 @@ static void gpio_keys_gpio_report_event(struct gpio_button_data *bdata)
+ return;
+ }
+
++ if (state && gpio_keys_ignore_wakeup_button_press(bdata))
++ return;
++
+ if (type == EV_ABS) {
+ if (state)
+ input_event(input, type, button->code, button->value);
+@@ -429,6 +459,9 @@ static irqreturn_t gpio_keys_irq_isr(int irq, void *dev_id)
+
+ BUG_ON(irq != bdata->irq);
+
++ if (gpio_keys_ignore_wakeup_button_press(bdata))
++ return IRQ_HANDLED;
++
+ spin_lock_irqsave(&bdata->lock, flags);
+
+ if (!bdata->key_pressed) {
+@@ -848,13 +881,18 @@ static int __maybe_unused gpio_keys_suspend(struct device *dev)
+ {
+ struct gpio_keys_drvdata *ddata = dev_get_drvdata(dev);
+ struct input_dev *input = ddata->input;
++ unsigned long flags;
+ int i;
+
+ if (device_may_wakeup(dev)) {
+ for (i = 0; i < ddata->pdata->nbuttons; i++) {
+ struct gpio_button_data *bdata = &ddata->data[i];
+- if (bdata->button->wakeup)
++ if (bdata->button->wakeup) {
++ spin_lock_irqsave(&bdata->lock, flags);
++ bdata->suspended = true;
++ spin_unlock_irqrestore(&bdata->lock, flags);
+ enable_irq_wake(bdata->irq);
++ }
+ }
+ } else {
+ mutex_lock(&input->mutex);
+@@ -870,14 +908,21 @@ static int __maybe_unused gpio_keys_resume(struct device *dev)
+ {
+ struct gpio_keys_drvdata *ddata = dev_get_drvdata(dev);
+ struct input_dev *input = ddata->input;
++ unsigned long flags;
+ int error = 0;
+ int i;
+
+ if (device_may_wakeup(dev)) {
+ for (i = 0; i < ddata->pdata->nbuttons; i++) {
+ struct gpio_button_data *bdata = &ddata->data[i];
+- if (bdata->button->wakeup)
++ if (bdata->button->wakeup) {
+ disable_irq_wake(bdata->irq);
++ spin_lock_irqsave(&bdata->lock, flags);
++ bdata->resume_time = jiffies;
++ bdata->resume_time_valid = true;
++ bdata->suspended = false;
++ spin_unlock_irqrestore(&bdata->lock, flags);
++ }
+ }
+ } else {
+ mutex_lock(&input->mutex);
+--
+2.13.0
+
diff --git a/0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch b/0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch
new file mode 100644
index 000000000..8eb41ee3f
--- /dev/null
+++ b/0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch
@@ -0,0 +1,32 @@
+From bf3e9581e10a19b2ce77a45fe001116d269b4c7f Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sun, 18 Jun 2017 12:47:38 +0200
+Subject: [PATCH 13/16] iio: accel: bmc150: Add support for BOSC0200 ACPI
+ device id
+
+Add support for the BOSC0200 ACPI device id used on some x86 tablets.
+note driver_data is not set to a specific model, driver_data is not
+used anyways (instead detection is done on the chip_id reg) and the
+2 tablets with a BOSC0200 ACPI device id I've have 2 different chips,
+one has a BMA250E, the other a BMA222E.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/iio/accel/bmc150-accel-i2c.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/iio/accel/bmc150-accel-i2c.c b/drivers/iio/accel/bmc150-accel-i2c.c
+index 8ca8041267ef..f85014fbaa12 100644
+--- a/drivers/iio/accel/bmc150-accel-i2c.c
++++ b/drivers/iio/accel/bmc150-accel-i2c.c
+@@ -64,6 +64,7 @@ static const struct acpi_device_id bmc150_accel_acpi_match[] = {
+ {"BMA250E", bma250e},
+ {"BMA222E", bma222e},
+ {"BMA0280", bma280},
++ {"BOSC0200"},
+ { },
+ };
+ MODULE_DEVICE_TABLE(acpi, bmc150_accel_acpi_match);
+--
+2.13.0
+
diff --git a/0014-mmc-sdhci-acpi-Workaround-conflict-with-PCI-wifi-on-.patch b/0014-mmc-sdhci-acpi-Workaround-conflict-with-PCI-wifi-on-.patch
new file mode 100644
index 000000000..b5c717c64
--- /dev/null
+++ b/0014-mmc-sdhci-acpi-Workaround-conflict-with-PCI-wifi-on-.patch
@@ -0,0 +1,143 @@
+From 51eb7454942c68c84b82782e47637de3ba37f113 Mon Sep 17 00:00:00 2001
+From: Adrian Hunter <adrian.hunter@intel.com>
+Date: Wed, 21 Jun 2017 15:08:39 +0300
+Subject: [PATCH 14/16] mmc: sdhci-acpi: Workaround conflict with PCI wifi on
+ GPD Win handheld
+
+GPDwin uses PCI wifi which conflicts with SDIO's use of
+acpi_device_fix_up_power() on child device nodes. Specifically
+acpi_device_fix_up_power() causes the wifi module to get turned off.
+Identifying GPDwin is problematic, but since SDIO is only used for wifi,
+the presence of the PCI wifi card in the expected slot with an ACPI
+companion node, is used to indicate that acpi_device_fix_up_power() should
+be avoided.
+
+Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
+Acked-by: Hans de Goede <hdegoede@redhat.com>
+Tested-by: Hans de Goede <hdegoede@redhat.com>
+Cc: stable@vger.kernel.org
+---
+ drivers/mmc/host/sdhci-acpi.c | 70 +++++++++++++++++++++++++++++++++++++++----
+ 1 file changed, 64 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
+index c6a9a1bfaa22..b3fb155f50e4 100644
+--- a/drivers/mmc/host/sdhci-acpi.c
++++ b/drivers/mmc/host/sdhci-acpi.c
+@@ -45,6 +45,7 @@
+ #include <asm/cpu_device_id.h>
+ #include <asm/intel-family.h>
+ #include <asm/iosf_mbi.h>
++#include <linux/pci.h>
+ #endif
+
+ #include "sdhci.h"
+@@ -134,6 +135,16 @@ static bool sdhci_acpi_byt(void)
+ return x86_match_cpu(byt);
+ }
+
++static bool sdhci_acpi_cht(void)
++{
++ static const struct x86_cpu_id cht[] = {
++ { X86_VENDOR_INTEL, 6, INTEL_FAM6_ATOM_AIRMONT },
++ {}
++ };
++
++ return x86_match_cpu(cht);
++}
++
+ #define BYT_IOSF_SCCEP 0x63
+ #define BYT_IOSF_OCP_NETCTRL0 0x1078
+ #define BYT_IOSF_OCP_TIMEOUT_BASE GENMASK(10, 8)
+@@ -178,6 +189,45 @@ static bool sdhci_acpi_byt_defer(struct device *dev)
+ return false;
+ }
+
++static bool sdhci_acpi_cht_pci_wifi(unsigned int vendor, unsigned int device,
++ unsigned int slot, unsigned int parent_slot)
++{
++ struct pci_dev *dev, *parent, *from = NULL;
++
++ while (1) {
++ dev = pci_get_device(vendor, device, from);
++ pci_dev_put(from);
++ if (!dev)
++ break;
++ parent = pci_upstream_bridge(dev);
++ if (ACPI_COMPANION(&dev->dev) && PCI_SLOT(dev->devfn) == slot &&
++ parent && PCI_SLOT(parent->devfn) == parent_slot &&
++ !pci_upstream_bridge(parent)) {
++ pci_dev_put(dev);
++ return true;
++ }
++ from = dev;
++ }
++
++ return false;
++}
++
++/*
++ * GPDwin uses PCI wifi which conflicts with SDIO's use of
++ * acpi_device_fix_up_power() on child device nodes. Identifying GPDwin is
++ * problematic, but since SDIO is only used for wifi, the presence of the PCI
++ * wifi card in the expected slot with an ACPI companion node, is used to
++ * indicate that acpi_device_fix_up_power() should be avoided.
++ */
++static inline bool sdhci_acpi_no_fixup_child_power(const char *hid,
++ const char *uid)
++{
++ return sdhci_acpi_cht() &&
++ !strcmp(hid, "80860F14") &&
++ !strcmp(uid, "2") &&
++ sdhci_acpi_cht_pci_wifi(0x14e4, 0x43ec, 0, 28);
++}
++
+ #else
+
+ static inline void sdhci_acpi_byt_setting(struct device *dev)
+@@ -189,6 +239,12 @@ static inline bool sdhci_acpi_byt_defer(struct device *dev)
+ return false;
+ }
+
++static inline bool sdhci_acpi_no_fixup_child_power(const char *hid,
++ const char *uid)
++{
++ return false;
++}
++
+ #endif
+
+ static int bxt_get_cd(struct mmc_host *mmc)
+@@ -390,11 +446,16 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
+ if (acpi_bus_get_device(handle, &device))
+ return -ENODEV;
+
++ hid = acpi_device_hid(device);
++ uid = device->pnp.unique_id;
++
+ /* Power on the SDHCI controller and its children */
+ acpi_device_fix_up_power(device);
+- list_for_each_entry(child, &device->children, node)
+- if (child->status.present && child->status.enabled)
+- acpi_device_fix_up_power(child);
++ if (!sdhci_acpi_no_fixup_child_power(hid, uid)) {
++ list_for_each_entry(child, &device->children, node)
++ if (child->status.present && child->status.enabled)
++ acpi_device_fix_up_power(child);
++ }
+
+ if (acpi_bus_get_status(device) || !device->status.present)
+ return -ENODEV;
+@@ -402,9 +463,6 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
+ if (sdhci_acpi_byt_defer(dev))
+ return -EPROBE_DEFER;
+
+- hid = acpi_device_hid(device);
+- uid = device->pnp.unique_id;
+-
+ iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!iomem)
+ return -ENOMEM;
+--
+2.13.0
+
diff --git a/0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch b/0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch
new file mode 100644
index 000000000..5d7497ce1
--- /dev/null
+++ b/0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch
@@ -0,0 +1,410 @@
+From bd0d7169342e47919f68e75d659968f02b62f84b Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 3 Mar 2017 23:48:50 +0100
+Subject: [PATCH 15/16] i2c-cht-wc: Add Intel Cherry Trail Whiskey Cove SMBUS
+ controller driver
+
+The Intel Cherry Trail Whiskey Cove PMIC does not contain a builtin
+battery charger, instead boards with this PMIC use an external TI
+bq24292i charger IC, which is connected to a SMBUS controller built into
+the PMIC.
+
+This commit adds an i2c-bus driver for the PMIC's builtin SMBUS
+controller. The probe function for this i2c-bus will also register an
+i2c-client for the TI bq24292i charger after the i2c-bus has been
+registered.
+
+Note that several device-properties are set on the client-device to
+tell the bq24190 power-supply driver to integrate the Whiskey Cove PMIC
+and e.g. use the PMIC's BC1.2 detection (through extcon) to determine
+the maximum input current.
+
+Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+Changes in v2:
+-Various style (mostly captialization and variable name) fixes
+-Use device-properties instead of platform_data for the i2c_board_info
+---
+ drivers/i2c/busses/Kconfig | 8 +
+ drivers/i2c/busses/Makefile | 1 +
+ drivers/i2c/busses/i2c-cht-wc.c | 336 ++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 345 insertions(+)
+ create mode 100644 drivers/i2c/busses/i2c-cht-wc.c
+
+diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
+index 144cbadc7c72..18c96178b177 100644
+--- a/drivers/i2c/busses/Kconfig
++++ b/drivers/i2c/busses/Kconfig
+@@ -187,6 +187,14 @@ config I2C_PIIX4
+ This driver can also be built as a module. If so, the module
+ will be called i2c-piix4.
+
++config I2C_CHT_WC
++ tristate "Intel Cherry Trail Whiskey Cove PMIC smbus controller"
++ depends on INTEL_SOC_PMIC_CHTWC
++ help
++ If you say yes to this option, support will be included for the
++ SMBus controller found in the Intel Cherry Trail Whiskey Cove PMIC
++ found on some Intel Cherry Trail systems.
++
+ config I2C_NFORCE2
+ tristate "Nvidia nForce2, nForce3 and nForce4"
+ depends on PCI
+diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
+index 30b60855fbcd..f6443fa44f61 100644
+--- a/drivers/i2c/busses/Makefile
++++ b/drivers/i2c/busses/Makefile
+@@ -12,6 +12,7 @@ obj-$(CONFIG_I2C_ALI15X3) += i2c-ali15x3.o
+ obj-$(CONFIG_I2C_AMD756) += i2c-amd756.o
+ obj-$(CONFIG_I2C_AMD756_S4882) += i2c-amd756-s4882.o
+ obj-$(CONFIG_I2C_AMD8111) += i2c-amd8111.o
++obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o
+ obj-$(CONFIG_I2C_I801) += i2c-i801.o
+ obj-$(CONFIG_I2C_ISCH) += i2c-isch.o
+ obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o
+diff --git a/drivers/i2c/busses/i2c-cht-wc.c b/drivers/i2c/busses/i2c-cht-wc.c
+new file mode 100644
+index 000000000000..ccf0785bcb75
+--- /dev/null
++++ b/drivers/i2c/busses/i2c-cht-wc.c
+@@ -0,0 +1,336 @@
++/*
++ * Intel CHT Whiskey Cove PMIC I2C Master driver
++ * Copyright (C) 2017 Hans de Goede <hdegoede@redhat.com>
++ *
++ * Based on various non upstream patches to support the CHT Whiskey Cove PMIC:
++ * Copyright (C) 2011 - 2014 Intel Corporation. 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 version
++ * 2 as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ */
++
++#include <linux/completion.h>
++#include <linux/delay.h>
++#include <linux/i2c.h>
++#include <linux/interrupt.h>
++#include <linux/irq.h>
++#include <linux/irqdomain.h>
++#include <linux/mfd/intel_soc_pmic.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/slab.h>
++
++#define CHT_WC_I2C_CTRL 0x5e24
++#define CHT_WC_I2C_CTRL_WR BIT(0)
++#define CHT_WC_I2C_CTRL_RD BIT(1)
++#define CHT_WC_I2C_CLIENT_ADDR 0x5e25
++#define CHT_WC_I2C_REG_OFFSET 0x5e26
++#define CHT_WC_I2C_WRDATA 0x5e27
++#define CHT_WC_I2C_RDDATA 0x5e28
++
++#define CHT_WC_EXTCHGRIRQ 0x6e0a
++#define CHT_WC_EXTCHGRIRQ_CLIENT_IRQ BIT(0)
++#define CHT_WC_EXTCHGRIRQ_WRITE_IRQ BIT(1)
++#define CHT_WC_EXTCHGRIRQ_READ_IRQ BIT(2)
++#define CHT_WC_EXTCHGRIRQ_NACK_IRQ BIT(3)
++#define CHT_WC_EXTCHGRIRQ_ADAP_IRQMASK ((u8)GENMASK(3, 1))
++#define CHT_WC_EXTCHGRIRQ_MSK 0x6e17
++
++struct cht_wc_i2c_adap {
++ struct i2c_adapter adapter;
++ wait_queue_head_t wait;
++ struct irq_chip irqchip;
++ struct mutex irqchip_lock;
++ struct regmap *regmap;
++ struct irq_domain *irq_domain;
++ struct i2c_client *client;
++ int client_irq;
++ u8 irq_mask;
++ u8 old_irq_mask;
++ bool nack;
++ bool done;
++};
++
++static irqreturn_t cht_wc_i2c_adap_thread_handler(int id, void *data)
++{
++ struct cht_wc_i2c_adap *adap = data;
++ int ret, reg;
++
++ /* Read IRQs */
++ ret = regmap_read(adap->regmap, CHT_WC_EXTCHGRIRQ, &reg);
++ if (ret) {
++ dev_err(&adap->adapter.dev, "Error reading extchgrirq reg\n");
++ return IRQ_NONE;
++ }
++
++ reg &= ~adap->irq_mask;
++
++ /*
++ * Immediately ack IRQs, so that if new IRQs arrives while we're
++ * handling the previous ones our irq will re-trigger when we're done.
++ */
++ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ, reg);
++ if (ret)
++ dev_err(&adap->adapter.dev, "Error writing extchgrirq reg\n");
++
++ /*
++ * Do NOT use handle_nested_irq here, the client irq handler will
++ * likely want to do i2c transfers and the i2c controller uses this
++ * interrupt handler as well, so running the client irq handler from
++ * this thread will cause things to lock up.
++ */
++ if (reg & CHT_WC_EXTCHGRIRQ_CLIENT_IRQ) {
++ /*
++ * generic_handle_irq expects local IRQs to be disabled
++ * as normally it is called from interrupt context.
++ */
++ local_irq_disable();
++ generic_handle_irq(adap->client_irq);
++ local_irq_enable();
++ }
++
++ if (reg & CHT_WC_EXTCHGRIRQ_ADAP_IRQMASK) {
++ adap->nack = !!(reg & CHT_WC_EXTCHGRIRQ_NACK_IRQ);
++ adap->done = true;
++ wake_up(&adap->wait);
++ }
++
++ return IRQ_HANDLED;
++}
++
++static u32 cht_wc_i2c_adap_master_func(struct i2c_adapter *adap)
++{
++ /* This i2c adapter only supports SMBUS byte transfers */
++ return I2C_FUNC_SMBUS_BYTE_DATA;
++}
++
++static int cht_wc_i2c_adap_smbus_xfer(struct i2c_adapter *_adap, u16 addr,
++ unsigned short flags, char read_write,
++ u8 command, int size,
++ union i2c_smbus_data *data)
++{
++ struct cht_wc_i2c_adap *adap = i2c_get_adapdata(_adap);
++ int ret, reg;
++
++ adap->nack = false;
++ adap->done = false;
++
++ ret = regmap_write(adap->regmap, CHT_WC_I2C_CLIENT_ADDR, addr);
++ if (ret)
++ return ret;
++
++ if (read_write == I2C_SMBUS_WRITE) {
++ ret = regmap_write(adap->regmap, CHT_WC_I2C_WRDATA, data->byte);
++ if (ret)
++ return ret;
++ }
++
++ ret = regmap_write(adap->regmap, CHT_WC_I2C_REG_OFFSET, command);
++ if (ret)
++ return ret;
++
++ ret = regmap_write(adap->regmap, CHT_WC_I2C_CTRL,
++ (read_write == I2C_SMBUS_WRITE) ?
++ CHT_WC_I2C_CTRL_WR : CHT_WC_I2C_CTRL_RD);
++ if (ret)
++ return ret;
++
++ /* 3 second timeout, during cable plug the PMIC responds quite slow */
++ ret = wait_event_timeout(adap->wait, adap->done, 3 * HZ);
++ if (ret == 0)
++ return -ETIMEDOUT;
++ if (adap->nack)
++ return -EIO;
++
++ if (read_write == I2C_SMBUS_READ) {
++ ret = regmap_read(adap->regmap, CHT_WC_I2C_RDDATA, &reg);
++ if (ret)
++ return ret;
++
++ data->byte = reg;
++ }
++
++ return 0;
++}
++
++static const struct i2c_algorithm cht_wc_i2c_adap_algo = {
++ .functionality = cht_wc_i2c_adap_master_func,
++ .smbus_xfer = cht_wc_i2c_adap_smbus_xfer,
++};
++
++/**** irqchip for the client connected to the extchgr i2c adapter ****/
++static void cht_wc_i2c_irq_lock(struct irq_data *data)
++{
++ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data);
++
++ mutex_lock(&adap->irqchip_lock);
++}
++
++static void cht_wc_i2c_irq_sync_unlock(struct irq_data *data)
++{
++ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data);
++ int ret;
++
++ if (adap->irq_mask != adap->old_irq_mask) {
++ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ_MSK,
++ adap->irq_mask);
++ if (ret == 0)
++ adap->old_irq_mask = adap->irq_mask;
++ else
++ dev_err(&adap->adapter.dev, "Error writing EXTCHGRIRQ_MSK\n");
++ }
++
++ mutex_unlock(&adap->irqchip_lock);
++}
++
++static void cht_wc_i2c_irq_enable(struct irq_data *data)
++{
++ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data);
++
++ adap->irq_mask &= ~CHT_WC_EXTCHGRIRQ_CLIENT_IRQ;
++}
++
++static void cht_wc_i2c_irq_disable(struct irq_data *data)
++{
++ struct cht_wc_i2c_adap *adap = irq_data_get_irq_chip_data(data);
++
++ adap->irq_mask |= CHT_WC_EXTCHGRIRQ_CLIENT_IRQ;
++}
++
++static const struct irq_chip cht_wc_i2c_irq_chip = {
++ .irq_bus_lock = cht_wc_i2c_irq_lock,
++ .irq_bus_sync_unlock = cht_wc_i2c_irq_sync_unlock,
++ .irq_disable = cht_wc_i2c_irq_disable,
++ .irq_enable = cht_wc_i2c_irq_enable,
++ .name = "cht_wc_ext_chrg_irq_chip",
++};
++
++static const struct property_entry bq24190_props[] = {
++ PROPERTY_ENTRY_STRING("extcon-name", "cht_wcove_pwrsrc"),
++ PROPERTY_ENTRY_BOOL("omit-battery-class"),
++ PROPERTY_ENTRY_BOOL("disable-reset"),
++ { }
++};
++
++static int cht_wc_i2c_adap_i2c_probe(struct platform_device *pdev)
++{
++ struct intel_soc_pmic *pmic = dev_get_drvdata(pdev->dev.parent);
++ struct cht_wc_i2c_adap *adap;
++ struct i2c_board_info board_info = {
++ .type = "bq24190",
++ .addr = 0x6b,
++ .properties = bq24190_props,
++ };
++ int ret, irq;
++
++ irq = platform_get_irq(pdev, 0);
++ if (irq < 0) {
++ dev_err(&pdev->dev, "Error missing irq resource\n");
++ return -EINVAL;
++ }
++
++ adap = devm_kzalloc(&pdev->dev, sizeof(*adap), GFP_KERNEL);
++ if (!adap)
++ return -ENOMEM;
++
++ init_waitqueue_head(&adap->wait);
++ mutex_init(&adap->irqchip_lock);
++ adap->irqchip = cht_wc_i2c_irq_chip;
++ adap->regmap = pmic->regmap;
++ adap->adapter.owner = THIS_MODULE;
++ adap->adapter.class = I2C_CLASS_HWMON;
++ adap->adapter.algo = &cht_wc_i2c_adap_algo;
++ strlcpy(adap->adapter.name, "PMIC I2C Adapter",
++ sizeof(adap->adapter.name));
++ adap->adapter.dev.parent = &pdev->dev;
++
++ /* Clear and activate i2c-adapter interrupts, disable client IRQ */
++ adap->old_irq_mask = adap->irq_mask = ~CHT_WC_EXTCHGRIRQ_ADAP_IRQMASK;
++ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ, ~adap->irq_mask);
++ if (ret)
++ return ret;
++
++ ret = regmap_write(adap->regmap, CHT_WC_EXTCHGRIRQ_MSK, adap->irq_mask);
++ if (ret)
++ return ret;
++
++ /* Alloc and register client IRQ */
++ adap->irq_domain = irq_domain_add_linear(pdev->dev.of_node, 1,
++ &irq_domain_simple_ops, NULL);
++ if (!adap->irq_domain)
++ return -ENOMEM;
++
++ adap->client_irq = irq_create_mapping(adap->irq_domain, 0);
++ if (!adap->client_irq) {
++ ret = -ENOMEM;
++ goto remove_irq_domain;
++ }
++
++ irq_set_chip_data(adap->client_irq, adap);
++ irq_set_chip_and_handler(adap->client_irq, &adap->irqchip,
++ handle_simple_irq);
++
++ ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
++ cht_wc_i2c_adap_thread_handler,
++ IRQF_ONESHOT, "PMIC I2C Adapter", adap);
++ if (ret)
++ goto remove_irq_domain;
++
++ i2c_set_adapdata(&adap->adapter, adap);
++ ret = i2c_add_adapter(&adap->adapter);
++ if (ret)
++ goto remove_irq_domain;
++
++ board_info.irq = adap->client_irq;
++ adap->client = i2c_new_device(&adap->adapter, &board_info);
++ if (!adap->client) {
++ ret = -ENOMEM;
++ goto del_adapter;
++ }
++
++ platform_set_drvdata(pdev, adap);
++ return 0;
++
++del_adapter:
++ i2c_del_adapter(&adap->adapter);
++remove_irq_domain:
++ irq_domain_remove(adap->irq_domain);
++ return ret;
++}
++
++static int cht_wc_i2c_adap_i2c_remove(struct platform_device *pdev)
++{
++ struct cht_wc_i2c_adap *adap = platform_get_drvdata(pdev);
++
++ i2c_unregister_device(adap->client);
++ i2c_del_adapter(&adap->adapter);
++ irq_domain_remove(adap->irq_domain);
++
++ return 0;
++}
++
++static struct platform_device_id cht_wc_i2c_adap_id_table[] = {
++ { .name = "cht_wcove_ext_chgr" },
++ {},
++};
++MODULE_DEVICE_TABLE(platform, cht_wc_i2c_adap_id_table);
++
++struct platform_driver cht_wc_i2c_adap_driver = {
++ .probe = cht_wc_i2c_adap_i2c_probe,
++ .remove = cht_wc_i2c_adap_i2c_remove,
++ .driver = {
++ .name = "cht_wcove_ext_chgr",
++ },
++ .id_table = cht_wc_i2c_adap_id_table,
++};
++module_platform_driver(cht_wc_i2c_adap_driver);
++
++MODULE_DESCRIPTION("Intel CHT Whiskey Cove PMIC I2C Master driver");
++MODULE_AUTHOR("Hans de Goede <hdegoede@redhat.com>");
++MODULE_LICENSE("GPL");
+--
+2.13.0
+
diff --git a/0016-Input-silead-Do-not-try-to-directly-access-the-GPIO-.patch b/0016-Input-silead-Do-not-try-to-directly-access-the-GPIO-.patch
new file mode 100644
index 000000000..14b4c27bf
--- /dev/null
+++ b/0016-Input-silead-Do-not-try-to-directly-access-the-GPIO-.patch
@@ -0,0 +1,54 @@
+From fd4fb1f6633b21042ff084868323e15e708fe1cd Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sun, 1 Jan 2017 22:11:20 +0100
+Subject: [PATCH 16/16] Input: silead: Do not try to directly access the GPIO
+ when using ACPI pm
+
+On some x86 tablets we cannot directly access the GPIOs as they are
+claimed by the ACPI tables, so check it the i2c client is not being
+power-managed by ACPI before trying to get the power pin GPIO.
+
+Note this is a workaround patch to fix this until Andy' gpiolib-ACPI
+patches which make gpiolib more strict land, once those are landed this
+patch is no longer needed.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/input/touchscreen/silead.c | 22 ++++++++++++++++------
+ 1 file changed, 16 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/input/touchscreen/silead.c b/drivers/input/touchscreen/silead.c
+index c0ba40c09699..30fba3cbe277 100644
+--- a/drivers/input/touchscreen/silead.c
++++ b/drivers/input/touchscreen/silead.c
+@@ -517,12 +518,21 @@ static int silead_ts_probe(struct i2c_client *client,
+ if (error)
+ return error;
+
+- /* Power GPIO pin */
+- data->gpio_power = devm_gpiod_get_optional(dev, "power", GPIOD_OUT_LOW);
+- if (IS_ERR(data->gpio_power)) {
+- if (PTR_ERR(data->gpio_power) != -EPROBE_DEFER)
+- dev_err(dev, "Shutdown GPIO request failed\n");
+- return PTR_ERR(data->gpio_power);
++ /*
++ * If device power is not managed by ACPI, get the power_gpio
++ * and manage it ourselves.
++ */
++#ifdef CONFIG_ACPI
++ if (!acpi_bus_power_manageable(ACPI_HANDLE(dev)))
++#endif
++ {
++ data->gpio_power = devm_gpiod_get_optional(dev, "power",
++ GPIOD_OUT_LOW);
++ if (IS_ERR(data->gpio_power)) {
++ if (PTR_ERR(data->gpio_power) != -EPROBE_DEFER)
++ dev_err(dev, "Power GPIO request failed\n");
++ return PTR_ERR(data->gpio_power);
++ }
+ }
+
+ error = silead_ts_setup(client);
+--
+2.13.0
+
diff --git a/2-2-nvme-Quirk-APST-on-Intel-600P-P3100-devices.patch b/2-2-nvme-Quirk-APST-on-Intel-600P-P3100-devices.patch
deleted file mode 100644
index 088d921a7..000000000
--- a/2-2-nvme-Quirk-APST-on-Intel-600P-P3100-devices.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 596bbd8d3752b0a922b7a5a059f47607a36ecc2e Mon Sep 17 00:00:00 2001
-From: Andrew Lutomirski <luto@kernel.org>
-Date: Wed, 24 May 2017 15:06:31 -0700
-Subject: [PATCH] nvme: Quirk APST on Intel 600P/P3100 devices
-
-They have known firmware bugs. A fix is apparently in the works --
-once fixed firmware is available, someone from Intel (Hi, Keith!)
-can adjust the quirk accordingly.
-
-Cc: stable@vger.kernel.org # v4.11
-Cc: Kai-Heng Feng <kai.heng.feng@canonical.com>
-Cc: Mario Limonciello <mario_limonciello@dell.com>
-Signed-off-by: Andy Lutomirski <luto@kernel.org>
----
- drivers/nvme/host/pci.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
-index d8a1707..993d16c 100644
---- a/drivers/nvme/host/pci.c
-+++ b/drivers/nvme/host/pci.c
-@@ -2171,6 +2171,8 @@ static const struct pci_device_id nvme_id_table[] = {
- { PCI_VDEVICE(INTEL, 0x0a54),
- .driver_data = NVME_QUIRK_STRIPE_SIZE |
- NVME_QUIRK_DISCARD_ZEROES, },
-+ { PCI_VDEVICE(INTEL, 0xf1a5), /* Intel 600P/P3100 */
-+ .driver_data = NVME_QUIRK_NO_DEEPEST_PS },
- { PCI_VDEVICE(INTEL, 0x5845), /* Qemu emulated controller */
- .driver_data = NVME_QUIRK_IDENTIFY_CNS, },
- { PCI_DEVICE(0x1c58, 0x0003), /* HGST adapter */
---
-2.7.5
-
diff --git a/Add-EFI-signature-data-types.patch b/Add-EFI-signature-data-types.patch
index 40d14f949..f7f7c36d3 100644
--- a/Add-EFI-signature-data-types.patch
+++ b/Add-EFI-signature-data-types.patch
@@ -1,37 +1,36 @@
-From ba3f737b8521314b62edaa7d4cc4bdc9aeefe394 Mon Sep 17 00:00:00 2001
+From 0451d4e795929a69a0fda6d960aa4b077c5bd179 Mon Sep 17 00:00:00 2001
From: Dave Howells <dhowells@redhat.com>
-Date: Tue, 23 Oct 2012 09:30:54 -0400
-Subject: [PATCH 15/20] Add EFI signature data types
+Date: Fri, 5 May 2017 08:21:58 +0100
+Subject: [PATCH 1/4] efi: Add EFI signature data types
-Add the data types that are used for containing hashes, keys and certificates
-for cryptographic verification.
-
-Bugzilla: N/A
-Upstream-status: Fedora mustard for now
+Add the data types that are used for containing hashes, keys and
+certificates for cryptographic verification along with their corresponding
+type GUIDs.
Signed-off-by: David Howells <dhowells@redhat.com>
---
- include/linux/efi.h | 17 +++++++++++++++++
- 1 file changed, 17 insertions(+)
+ include/linux/efi.h | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 5af91b58afae..190858d62fe3 100644
+index ec36f42..3259ad6 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
-@@ -603,6 +603,9 @@ void efi_native_runtime_setup(void);
- #define LINUX_EFI_LOADER_ENTRY_GUID EFI_GUID(0x4a67b082, 0x0a4c, 0x41cf, 0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f)
- #define LINUX_EFI_RANDOM_SEED_TABLE_GUID EFI_GUID(0x1ce1e5bc, 0x7ceb, 0x42f2, 0x81, 0xe5, 0x8a, 0xad, 0xf1, 0x80, 0xf5, 0x7b)
-
-+#define EFI_CERT_SHA256_GUID EFI_GUID(0xc1c41626, 0x504c, 0x4092, 0xac, 0xa9, 0x41, 0xf9, 0x36, 0x93, 0x43, 0x28)
-+#define EFI_CERT_X509_GUID EFI_GUID(0xa5c059a1, 0x94e4, 0x4aa7, 0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72)
+@@ -614,6 +614,10 @@ void efi_native_runtime_setup(void);
+ #define EFI_IMAGE_SECURITY_DATABASE_GUID EFI_GUID(0xd719b2cb, 0x3d3a, 0x4596, 0xa3, 0xbc, 0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f)
+ #define EFI_SHIM_LOCK_GUID EFI_GUID(0x605dab50, 0xe046, 0x4300, 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23)
+
++#define EFI_CERT_SHA256_GUID EFI_GUID(0xc1c41626, 0x504c, 0x4092, 0xac, 0xa9, 0x41, 0xf9, 0x36, 0x93, 0x43, 0x28)
++#define EFI_CERT_X509_GUID EFI_GUID(0xa5c059a1, 0x94e4, 0x4aa7, 0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72)
++#define EFI_CERT_X509_SHA256_GUID EFI_GUID(0x3bd2a492, 0x96c0, 0x4079, 0xb4, 0x20, 0xfc, 0xf9, 0x8e, 0xf1, 0x03, 0xed)
+
- typedef struct {
- efi_guid_t guid;
- u64 table;
-@@ -853,6 +856,20 @@ typedef struct {
+ /*
+ * This GUID is used to pass to the kernel proper the struct screen_info
+ * structure that was populated by the stub based on the GOP protocol instance
+@@ -873,6 +877,27 @@ typedef struct {
efi_memory_desc_t entry[0];
} efi_memory_attributes_table_t;
-
+
+typedef struct {
+ efi_guid_t signature_owner;
+ u8 signature_data[];
@@ -46,6 +45,13 @@ index 5af91b58afae..190858d62fe3 100644
+ /* efi_signature_data_t signatures[][] */
+} efi_signature_list_t;
+
++typedef u8 efi_sha256_hash_t[32];
++
++typedef struct {
++ efi_sha256_hash_t to_be_signed_hash;
++ efi_time_t time_of_revocation;
++} efi_cert_x509_sha256_t;
++
/*
* All runtime access to EFI goes through this structure:
*/
diff --git a/Add-an-EFI-signature-blob-parser-and-key-loader.patch b/Add-an-EFI-signature-blob-parser-and-key-loader.patch
index f57abc9f2..e3941eeaa 100644
--- a/Add-an-EFI-signature-blob-parser-and-key-loader.patch
+++ b/Add-an-EFI-signature-blob-parser-and-key-loader.patch
@@ -1,29 +1,38 @@
-From 822b4b3eb76ca451a416a51f0a7bfedfa5c5ea39 Mon Sep 17 00:00:00 2001
+From e4c62c12635a371e43bd17e8d33a936668264491 Mon Sep 17 00:00:00 2001
From: Dave Howells <dhowells@redhat.com>
-Date: Tue, 23 Oct 2012 09:36:28 -0400
-Subject: [PATCH 16/20] Add an EFI signature blob parser and key loader.
+Date: Fri, 5 May 2017 08:21:58 +0100
+Subject: [PATCH 2/4] efi: Add an EFI signature blob parser
-X.509 certificates are loaded into the specified keyring as asymmetric type
-keys.
+Add a function to parse an EFI signature blob looking for elements of
+interest. A list is made up of a series of sublists, where all the
+elements in a sublist are of the same type, but sublists can be of
+different types.
+
+For each sublist encountered, the function pointed to by the
+get_handler_for_guid argument is called with the type specifier GUID and
+returns either a pointer to a function to handle elements of that type or
+NULL if the type is not of interest.
+
+If the sublist is of interest, each element is passed to the handler
+function in turn.
-[labbott@fedoraproject.org: Drop KEY_ALLOC_TRUSTED]
Signed-off-by: David Howells <dhowells@redhat.com>
---
- crypto/asymmetric_keys/Kconfig | 8 +++
- crypto/asymmetric_keys/Makefile | 1 +
- crypto/asymmetric_keys/efi_parser.c | 108 ++++++++++++++++++++++++++++++++++++
- include/linux/efi.h | 4 ++
- 4 files changed, 121 insertions(+)
- create mode 100644 crypto/asymmetric_keys/efi_parser.c
+ certs/Kconfig | 8 ++++
+ certs/Makefile | 1 +
+ certs/efi_parser.c | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ include/linux/efi.h | 9 +++++
+ 4 files changed, 130 insertions(+)
+ create mode 100644 certs/efi_parser.c
+
+diff --git a/certs/Kconfig b/certs/Kconfig
+index 6ce51ed..630ae09 100644
+--- a/certs/Kconfig
++++ b/certs/Kconfig
+@@ -82,4 +82,12 @@ config SYSTEM_BLACKLIST_HASH_LIST
+ wrapper to incorporate the list into the kernel. Each <hash> should
+ be a string of hex digits.
-diff --git a/crypto/asymmetric_keys/Kconfig b/crypto/asymmetric_keys/Kconfig
-index 331f6baf2df8..5f9002d3192e 100644
---- a/crypto/asymmetric_keys/Kconfig
-+++ b/crypto/asymmetric_keys/Kconfig
-@@ -61,4 +61,12 @@ config SIGNED_PE_FILE_VERIFICATION
- This option provides support for verifying the signature(s) on a
- signed PE binary.
-
+config EFI_SIGNATURE_LIST_PARSER
+ bool "EFI signature list parser"
+ depends on EFI
@@ -32,28 +41,28 @@ index 331f6baf2df8..5f9002d3192e 100644
+ This option provides support for parsing EFI signature lists for
+ X.509 certificates and turning them into keys.
+
- endif # ASYMMETRIC_KEY_TYPE
-diff --git a/crypto/asymmetric_keys/Makefile b/crypto/asymmetric_keys/Makefile
-index 6516855bec18..c099fe15ed6d 100644
---- a/crypto/asymmetric_keys/Makefile
-+++ b/crypto/asymmetric_keys/Makefile
-@@ -10,6 +10,7 @@ asymmetric_keys-y := \
- signature.o
-
- obj-$(CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE) += public_key.o
+ endmenu
+diff --git a/certs/Makefile b/certs/Makefile
+index 4119bb3..738151a 100644
+--- a/certs/Makefile
++++ b/certs/Makefile
+@@ -9,6 +9,7 @@ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_hashes.o
+ else
+ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_nohashes.o
+ endif
+obj-$(CONFIG_EFI_SIGNATURE_LIST_PARSER) += efi_parser.o
-
- #
- # X.509 Certificate handling
-diff --git a/crypto/asymmetric_keys/efi_parser.c b/crypto/asymmetric_keys/efi_parser.c
+
+ ifeq ($(CONFIG_SYSTEM_TRUSTED_KEYRING),y)
+
+diff --git a/certs/efi_parser.c b/certs/efi_parser.c
new file mode 100644
-index 000000000000..636feb18b733
+index 0000000..4e396f9
--- /dev/null
-+++ b/crypto/asymmetric_keys/efi_parser.c
-@@ -0,0 +1,108 @@
++++ b/certs/efi_parser.c
+@@ -0,0 +1,112 @@
+/* EFI signature/key/certificate list parser
+ *
-+ * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.
++ * Copyright (C) 2012, 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
@@ -67,27 +76,44 @@ index 000000000000..636feb18b733
+#include <linux/printk.h>
+#include <linux/err.h>
+#include <linux/efi.h>
-+#include <keys/asymmetric-type.h>
-+
-+static __initdata efi_guid_t efi_cert_x509_guid = EFI_CERT_X509_GUID;
+
+/**
+ * parse_efi_signature_list - Parse an EFI signature list for certificates
++ * @source: The source of the key
+ * @data: The data blob to parse
+ * @size: The size of the data blob
-+ * @keyring: The keyring to add extracted keys to
++ * @get_handler_for_guid: Get the handler func for the sig type (or NULL)
++ *
++ * Parse an EFI signature list looking for elements of interest. A list is
++ * made up of a series of sublists, where all the elements in a sublist are of
++ * the same type, but sublists can be of different types.
++ *
++ * For each sublist encountered, the @get_handler_for_guid function is called
++ * with the type specifier GUID and returns either a pointer to a function to
++ * handle elements of that type or NULL if the type is not of interest.
++ *
++ * If the sublist is of interest, each element is passed to the handler
++ * function in turn.
++ *
++ * Error EBADMSG is returned if the list doesn't parse correctly and 0 is
++ * returned if the list was parsed correctly. No error can be returned from
++ * the @get_handler_for_guid function or the element handler function it
++ * returns.
+ */
-+int __init parse_efi_signature_list(const void *data, size_t size, struct key *keyring)
++int __init parse_efi_signature_list(
++ const char *source,
++ const void *data, size_t size,
++ efi_element_handler_t (*get_handler_for_guid)(const efi_guid_t *))
+{
++ efi_element_handler_t handler;
+ unsigned offs = 0;
-+ size_t lsize, esize, hsize, elsize;
+
+ pr_devel("-->%s(,%zu)\n", __func__, size);
+
+ while (size > 0) {
-+ efi_signature_list_t list;
+ const efi_signature_data_t *elem;
-+ key_ref_t key;
++ efi_signature_list_t list;
++ size_t lsize, esize, hsize, elsize;
+
+ if (size < sizeof(list))
+ return -EBADMSG;
@@ -108,6 +134,7 @@ index 000000000000..636feb18b733
+ __func__, offs);
+ return -EBADMSG;
+ }
++
+ if (lsize < sizeof(list) ||
+ lsize - sizeof(list) < hsize ||
+ esize < sizeof(*elem) ||
@@ -117,7 +144,8 @@ index 000000000000..636feb18b733
+ return -EBADMSG;
+ }
+
-+ if (efi_guidcmp(list.signature_type, efi_cert_x509_guid) != 0) {
++ handler = get_handler_for_guid(&list.signature_type);
++ if (!handler) {
+ data += lsize;
+ size -= lsize;
+ offs += lsize;
@@ -132,24 +160,9 @@ index 000000000000..636feb18b733
+ elem = data;
+
+ pr_devel("ELEM[%04x]\n", offs);
-+
-+ key = key_create_or_update(
-+ make_key_ref(keyring, 1),
-+ "asymmetric",
-+ NULL,
++ handler(source,
+ &elem->signature_data,
-+ esize - sizeof(*elem),
-+ (KEY_POS_ALL & ~KEY_POS_SETATTR) |
-+ KEY_USR_VIEW,
-+ KEY_ALLOC_NOT_IN_QUOTA);
-+
-+ if (IS_ERR(key))
-+ pr_err("Problem loading in-kernel X.509 certificate (%ld)\n",
-+ PTR_ERR(key));
-+ else
-+ pr_notice("Loaded cert '%s' linked to '%s'\n",
-+ key_ref_to_ptr(key)->description,
-+ keyring->description);
++ esize - sizeof(*elem));
+
+ data += esize;
+ size -= esize;
@@ -160,16 +173,21 @@ index 000000000000..636feb18b733
+ return 0;
+}
diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 190858d62fe3..668aa1244885 100644
+index 3259ad6..08024c6 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
-@@ -1025,6 +1025,10 @@ extern int efi_memattr_apply_permissions(struct mm_struct *mm,
+@@ -1055,6 +1055,15 @@ extern int efi_memattr_apply_permissions(struct mm_struct *mm,
char * __init efi_md_typeattr_format(char *buf, size_t size,
const efi_memory_desc_t *md);
-
-+struct key;
-+extern int __init parse_efi_signature_list(const void *data, size_t size,
-+ struct key *keyring);
+
++
++typedef void (*efi_element_handler_t)(const char *source,
++ const void *element_data,
++ size_t element_size);
++extern int __init parse_efi_signature_list(
++ const char *source,
++ const void *data, size_t size,
++ efi_element_handler_t (*get_handler_for_guid)(const efi_guid_t *));
+
/**
* efi_range_is_wc - check the WC bit on an address range
diff --git a/AllWinner-h3.patch b/AllWinner-h3.patch
deleted file mode 100644
index c75da8aa8..000000000
--- a/AllWinner-h3.patch
+++ /dev/null
@@ -1,1080 +0,0 @@
-From patchwork Mon Mar 6 17:17:45 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v8, 1/6] ARM: dts: sun8i: h3: drop skeleton.dtsi inclusion in H3 DTSI
-From: Icenowy Zheng <icenowy@aosc.xyz>
-X-Patchwork-Id: 9607205
-Message-Id: <20170306171750.7491-2-icenowy@aosc.xyz>
-To: Rob Herring <robh+dt@kernel.org>,
- Maxime Ripard <maxime.ripard@free-electrons.com>,
- Chen-Yu Tsai <wens@csie.org>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
- Icenowy Zheng <icenowy@aosc.xyz>
-Date: Tue, 7 Mar 2017 01:17:45 +0800
-
-The skeleton.dtsi file is now deprecated, and do not exist in ARM64
-environment.
-
-Since we will soon reuse most part of H3 DTSI for H5, which is an ARM64
-chip, drop skeleton.dtsi inclusion now.
-
-Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
----
-Changes in v8:
-- Add h3: in commit message.
-
- arch/arm/boot/dts/sun8i-h3.dtsi | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
-index 27780b97c863..9a3435527fde 100644
---- a/arch/arm/boot/dts/sun8i-h3.dtsi
-+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
-@@ -40,8 +40,6 @@
- * OTHER DEALINGS IN THE SOFTWARE.
- */
-
--#include "skeleton.dtsi"
--
- #include <dt-bindings/clock/sun8i-h3-ccu.h>
- #include <dt-bindings/interrupt-controller/arm-gic.h>
- #include <dt-bindings/pinctrl/sun4i-a10.h>
-From patchwork Mon Mar 6 17:17:46 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v8,
- 2/6] ARM: dts: sun8i: h3: drop pinctrl-a10.h inclusion for H3 DTSI
-From: Icenowy Zheng <icenowy@aosc.xyz>
-X-Patchwork-Id: 9607207
-Message-Id: <20170306171750.7491-3-icenowy@aosc.xyz>
-To: Rob Herring <robh+dt@kernel.org>,
- Maxime Ripard <maxime.ripard@free-electrons.com>,
- Chen-Yu Tsai <wens@csie.org>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
- Icenowy Zheng <icenowy@aosc.xyz>
-Date: Tue, 7 Mar 2017 01:17:46 +0800
-
-After converting to generic pinconf binding, pinctrl-a10.h is now not
-used at all.
-
-Drop its inclusion for H3 DTSI.
-
-Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
----
-Changes in v8:
-- Add h3: in commit message.
-
- arch/arm/boot/dts/sun8i-h3.dtsi | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
-index 9a3435527fde..b250e6d03b57 100644
---- a/arch/arm/boot/dts/sun8i-h3.dtsi
-+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
-@@ -42,7 +42,6 @@
-
- #include <dt-bindings/clock/sun8i-h3-ccu.h>
- #include <dt-bindings/interrupt-controller/arm-gic.h>
--#include <dt-bindings/pinctrl/sun4i-a10.h>
- #include <dt-bindings/reset/sun8i-h3-ccu.h>
-
- / {
-From patchwork Mon Mar 6 17:17:47 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v8,
- 3/6] ARM: dts: sun8i: h3: correct the GIC compatible in H3 to gic-400
-From: Icenowy Zheng <icenowy@aosc.xyz>
-X-Patchwork-Id: 9607209
-Message-Id: <20170306171750.7491-4-icenowy@aosc.xyz>
-To: Rob Herring <robh+dt@kernel.org>,
- Maxime Ripard <maxime.ripard@free-electrons.com>,
- Chen-Yu Tsai <wens@csie.org>
-Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
- linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
- Icenowy Zheng <icenowy@aosc.xyz>
-Date: Tue, 7 Mar 2017 01:17:47 +0800
-
-According to the datasheets provided by Allwinner, both Allwinner H3 and
-H5 use GIC-400 as their interrupt controller.
-
-For better device tree reusing, correct the GIC compatible in H3 DTSI to
-"arm,gic-400", thus this node can be reused in H5.
-
-Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
----
-Changes in v8:
-- Add h3: in commit message.
-
- arch/arm/boot/dts/sun8i-h3.dtsi | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
-index b250e6d03b57..c13fbfb92592 100644
---- a/arch/arm/boot/dts/sun8i-h3.dtsi
-+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
-@@ -586,7 +586,7 @@
- };
-
- gic: interrupt-controller@01c81000 {
-- compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
-+ compatible = "arm,gic-400";
- reg = <0x01c81000 0x1000>,
- <0x01c82000 0x2000>,
- <0x01c84000 0x2000>,
-From patchwork Mon Mar 6 17:17:48 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v8,4/6] arm: dts: sun8i: h3: split Allwinner H3 .dtsi
-From: Icenowy Zheng <icenowy@aosc.xyz>
-X-Patchwork-Id: 9607211
-Message-Id: <20170306171750.7491-5-icenowy@aosc.xyz>
-To: Rob Herring <robh+dt@kernel.org>,
- Maxime Ripard <maxime.ripard@free-electrons.com>,
- Chen-Yu Tsai <wens@csie.org>
-Cc: devicetree@vger.kernel.org, Andre Przywara <andre.przywara@arm.com>,
- linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com,
- Icenowy Zheng <icenowy@aosc.xyz>, linux-arm-kernel@lists.infradead.org
-Date: Tue, 7 Mar 2017 01:17:48 +0800
-
-From: Andre Przywara <andre.przywara@arm.com>
-
-The new Allwinner H5 SoC is pin-compatible to the H3 SoC, but with the
-Cortex-A7 cores replaced by Cortex-A53 cores and the MMC controller
-updated. So we should really share almost the whole .dtsi.
-In preparation for that move the peripheral parts of the existing
-sun8i-h3.dtsi into a new sunxi-h3-h5.dtsi.
-The actual sun8i-h3.dtsi then includes that and defines the H3 specific
-parts on top of it.
-
-Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-[Icenowy: also split out mmc and gic, as well as pio and ccu's
- compatible, and make drop of skeleton into a seperated patch]
-Signed-off-by: Icenowy Zheng <icenowy@aosc.xyz>
----
-Changes in v8:
-- Add h3: in commit message.
-Changes in v7:
-- Extract GIC, skeleton.dtsi and pinctrl-a10.h changes to seperate patches.
-Changes in v6:
-- Extract GIC device node to sunxi-h3-h5.dtsi and correct its compatible
- as "arm,gic-400".
-Changes in v3:
-- Use label-based syntax to reference nodes in H3 DTSI file.
-Changes in v2:
-- Rebase on current linux-next (because of the add of audio codec)
-
- arch/arm/boot/dts/sun8i-h3.dtsi | 771 ++++-----------------
- .../boot/dts/{sun8i-h3.dtsi => sunxi-h3-h5.dtsi} | 73 +-
- 2 files changed, 133 insertions(+), 711 deletions(-)
- rewrite arch/arm/boot/dts/sun8i-h3.dtsi (83%)
- copy arch/arm/boot/dts/{sun8i-h3.dtsi => sunxi-h3-h5.dtsi} (90%)
-
-diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
-dissimilarity index 83%
-index c13fbfb92592..b36f9f423c39 100644
---- a/arch/arm/boot/dts/sun8i-h3.dtsi
-+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
-@@ -1,645 +1,126 @@
--/*
-- * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
-- *
-- * This file is dual-licensed: you can use it either under the terms
-- * of the GPL or the X11 license, at your option. Note that this dual
-- * licensing only applies to this file, and not this project as a
-- * whole.
-- *
-- * a) This file is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of the
-- * License, or (at your option) any later version.
-- *
-- * This file is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * Or, alternatively,
-- *
-- * b) Permission is hereby granted, free of charge, to any person
-- * obtaining a copy of this software and associated documentation
-- * files (the "Software"), to deal in the Software without
-- * restriction, including without limitation the rights to use,
-- * copy, modify, merge, publish, distribute, sublicense, and/or
-- * sell copies of the Software, and to permit persons to whom the
-- * Software is furnished to do so, subject to the following
-- * conditions:
-- *
-- * The above copyright notice and this permission notice shall be
-- * included in all copies or substantial portions of the Software.
-- *
-- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-- * OTHER DEALINGS IN THE SOFTWARE.
-- */
--
--#include <dt-bindings/clock/sun8i-h3-ccu.h>
--#include <dt-bindings/interrupt-controller/arm-gic.h>
--#include <dt-bindings/reset/sun8i-h3-ccu.h>
--
--/ {
-- interrupt-parent = <&gic>;
--
-- cpus {
-- #address-cells = <1>;
-- #size-cells = <0>;
--
-- cpu@0 {
-- compatible = "arm,cortex-a7";
-- device_type = "cpu";
-- reg = <0>;
-- };
--
-- cpu@1 {
-- compatible = "arm,cortex-a7";
-- device_type = "cpu";
-- reg = <1>;
-- };
--
-- cpu@2 {
-- compatible = "arm,cortex-a7";
-- device_type = "cpu";
-- reg = <2>;
-- };
--
-- cpu@3 {
-- compatible = "arm,cortex-a7";
-- device_type = "cpu";
-- reg = <3>;
-- };
-- };
--
-- timer {
-- compatible = "arm,armv7-timer";
-- interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-- };
--
-- clocks {
-- #address-cells = <1>;
-- #size-cells = <1>;
-- ranges;
--
-- osc24M: osc24M_clk {
-- #clock-cells = <0>;
-- compatible = "fixed-clock";
-- clock-frequency = <24000000>;
-- clock-output-names = "osc24M";
-- };
--
-- osc32k: osc32k_clk {
-- #clock-cells = <0>;
-- compatible = "fixed-clock";
-- clock-frequency = <32768>;
-- clock-output-names = "osc32k";
-- };
--
-- apb0: apb0_clk {
-- compatible = "fixed-factor-clock";
-- #clock-cells = <0>;
-- clock-div = <1>;
-- clock-mult = <1>;
-- clocks = <&osc24M>;
-- clock-output-names = "apb0";
-- };
--
-- apb0_gates: clk@01f01428 {
-- compatible = "allwinner,sun8i-h3-apb0-gates-clk",
-- "allwinner,sun4i-a10-gates-clk";
-- reg = <0x01f01428 0x4>;
-- #clock-cells = <1>;
-- clocks = <&apb0>;
-- clock-indices = <0>, <1>;
-- clock-output-names = "apb0_pio", "apb0_ir";
-- };
--
-- ir_clk: ir_clk@01f01454 {
-- compatible = "allwinner,sun4i-a10-mod0-clk";
-- reg = <0x01f01454 0x4>;
-- #clock-cells = <0>;
-- clocks = <&osc32k>, <&osc24M>;
-- clock-output-names = "ir";
-- };
-- };
--
-- soc {
-- compatible = "simple-bus";
-- #address-cells = <1>;
-- #size-cells = <1>;
-- ranges;
--
-- dma: dma-controller@01c02000 {
-- compatible = "allwinner,sun8i-h3-dma";
-- reg = <0x01c02000 0x1000>;
-- interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_DMA>;
-- resets = <&ccu RST_BUS_DMA>;
-- #dma-cells = <1>;
-- };
--
-- mmc0: mmc@01c0f000 {
-- compatible = "allwinner,sun7i-a20-mmc";
-- reg = <0x01c0f000 0x1000>;
-- clocks = <&ccu CLK_BUS_MMC0>,
-- <&ccu CLK_MMC0>,
-- <&ccu CLK_MMC0_OUTPUT>,
-- <&ccu CLK_MMC0_SAMPLE>;
-- clock-names = "ahb",
-- "mmc",
-- "output",
-- "sample";
-- resets = <&ccu RST_BUS_MMC0>;
-- reset-names = "ahb";
-- interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
-- status = "disabled";
-- #address-cells = <1>;
-- #size-cells = <0>;
-- };
--
-- mmc1: mmc@01c10000 {
-- compatible = "allwinner,sun7i-a20-mmc";
-- reg = <0x01c10000 0x1000>;
-- clocks = <&ccu CLK_BUS_MMC1>,
-- <&ccu CLK_MMC1>,
-- <&ccu CLK_MMC1_OUTPUT>,
-- <&ccu CLK_MMC1_SAMPLE>;
-- clock-names = "ahb",
-- "mmc",
-- "output",
-- "sample";
-- resets = <&ccu RST_BUS_MMC1>;
-- reset-names = "ahb";
-- interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
-- status = "disabled";
-- #address-cells = <1>;
-- #size-cells = <0>;
-- };
--
-- mmc2: mmc@01c11000 {
-- compatible = "allwinner,sun7i-a20-mmc";
-- reg = <0x01c11000 0x1000>;
-- clocks = <&ccu CLK_BUS_MMC2>,
-- <&ccu CLK_MMC2>,
-- <&ccu CLK_MMC2_OUTPUT>,
-- <&ccu CLK_MMC2_SAMPLE>;
-- clock-names = "ahb",
-- "mmc",
-- "output",
-- "sample";
-- resets = <&ccu RST_BUS_MMC2>;
-- reset-names = "ahb";
-- interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
-- status = "disabled";
-- #address-cells = <1>;
-- #size-cells = <0>;
-- };
--
-- usbphy: phy@01c19400 {
-- compatible = "allwinner,sun8i-h3-usb-phy";
-- reg = <0x01c19400 0x2c>,
-- <0x01c1a800 0x4>,
-- <0x01c1b800 0x4>,
-- <0x01c1c800 0x4>,
-- <0x01c1d800 0x4>;
-- reg-names = "phy_ctrl",
-- "pmu0",
-- "pmu1",
-- "pmu2",
-- "pmu3";
-- clocks = <&ccu CLK_USB_PHY0>,
-- <&ccu CLK_USB_PHY1>,
-- <&ccu CLK_USB_PHY2>,
-- <&ccu CLK_USB_PHY3>;
-- clock-names = "usb0_phy",
-- "usb1_phy",
-- "usb2_phy",
-- "usb3_phy";
-- resets = <&ccu RST_USB_PHY0>,
-- <&ccu RST_USB_PHY1>,
-- <&ccu RST_USB_PHY2>,
-- <&ccu RST_USB_PHY3>;
-- reset-names = "usb0_reset",
-- "usb1_reset",
-- "usb2_reset",
-- "usb3_reset";
-- status = "disabled";
-- #phy-cells = <1>;
-- };
--
-- ehci1: usb@01c1b000 {
-- compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
-- reg = <0x01c1b000 0x100>;
-- interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>;
-- resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>;
-- phys = <&usbphy 1>;
-- phy-names = "usb";
-- status = "disabled";
-- };
--
-- ohci1: usb@01c1b400 {
-- compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
-- reg = <0x01c1b400 0x100>;
-- interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>,
-- <&ccu CLK_USB_OHCI1>;
-- resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>;
-- phys = <&usbphy 1>;
-- phy-names = "usb";
-- status = "disabled";
-- };
--
-- ehci2: usb@01c1c000 {
-- compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
-- reg = <0x01c1c000 0x100>;
-- interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>;
-- resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>;
-- phys = <&usbphy 2>;
-- phy-names = "usb";
-- status = "disabled";
-- };
--
-- ohci2: usb@01c1c400 {
-- compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
-- reg = <0x01c1c400 0x100>;
-- interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>,
-- <&ccu CLK_USB_OHCI2>;
-- resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>;
-- phys = <&usbphy 2>;
-- phy-names = "usb";
-- status = "disabled";
-- };
--
-- ehci3: usb@01c1d000 {
-- compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
-- reg = <0x01c1d000 0x100>;
-- interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>;
-- resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>;
-- phys = <&usbphy 3>;
-- phy-names = "usb";
-- status = "disabled";
-- };
--
-- ohci3: usb@01c1d400 {
-- compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
-- reg = <0x01c1d400 0x100>;
-- interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>,
-- <&ccu CLK_USB_OHCI3>;
-- resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>;
-- phys = <&usbphy 3>;
-- phy-names = "usb";
-- status = "disabled";
-- };
--
-- ccu: clock@01c20000 {
-- compatible = "allwinner,sun8i-h3-ccu";
-- reg = <0x01c20000 0x400>;
-- clocks = <&osc24M>, <&osc32k>;
-- clock-names = "hosc", "losc";
-- #clock-cells = <1>;
-- #reset-cells = <1>;
-- };
--
-- pio: pinctrl@01c20800 {
-- compatible = "allwinner,sun8i-h3-pinctrl";
-- reg = <0x01c20800 0x400>;
-- interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-- <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
-- clock-names = "apb", "hosc", "losc";
-- gpio-controller;
-- #gpio-cells = <3>;
-- interrupt-controller;
-- #interrupt-cells = <3>;
--
-- i2c0_pins: i2c0 {
-- pins = "PA11", "PA12";
-- function = "i2c0";
-- };
--
-- i2c1_pins: i2c1 {
-- pins = "PA18", "PA19";
-- function = "i2c1";
-- };
--
-- i2c2_pins: i2c2 {
-- pins = "PE12", "PE13";
-- function = "i2c2";
-- };
--
-- mmc0_pins_a: mmc0@0 {
-- pins = "PF0", "PF1", "PF2", "PF3",
-- "PF4", "PF5";
-- function = "mmc0";
-- drive-strength = <30>;
-- bias-pull-up;
-- };
--
-- mmc0_cd_pin: mmc0_cd_pin@0 {
-- pins = "PF6";
-- function = "gpio_in";
-- bias-pull-up;
-- };
--
-- mmc1_pins_a: mmc1@0 {
-- pins = "PG0", "PG1", "PG2", "PG3",
-- "PG4", "PG5";
-- function = "mmc1";
-- drive-strength = <30>;
-- bias-pull-up;
-- };
--
-- mmc2_8bit_pins: mmc2_8bit {
-- pins = "PC5", "PC6", "PC8",
-- "PC9", "PC10", "PC11",
-- "PC12", "PC13", "PC14",
-- "PC15", "PC16";
-- function = "mmc2";
-- drive-strength = <30>;
-- bias-pull-up;
-- };
--
-- spdif_tx_pins_a: spdif@0 {
-- pins = "PA17";
-- function = "spdif";
-- };
--
-- spi0_pins: spi0 {
-- pins = "PC0", "PC1", "PC2", "PC3";
-- function = "spi0";
-- };
--
-- spi1_pins: spi1 {
-- pins = "PA15", "PA16", "PA14", "PA13";
-- function = "spi1";
-- };
--
-- uart0_pins_a: uart0@0 {
-- pins = "PA4", "PA5";
-- function = "uart0";
-- };
--
-- uart1_pins: uart1 {
-- pins = "PG6", "PG7";
-- function = "uart1";
-- };
--
-- uart1_rts_cts_pins: uart1_rts_cts {
-- pins = "PG8", "PG9";
-- function = "uart1";
-- };
--
-- uart2_pins: uart2 {
-- pins = "PA0", "PA1";
-- function = "uart2";
-- };
--
-- uart3_pins: uart3 {
-- pins = "PA13", "PA14";
-- function = "uart3";
-- };
-- };
--
-- timer@01c20c00 {
-- compatible = "allwinner,sun4i-a10-timer";
-- reg = <0x01c20c00 0xa0>;
-- interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
-- <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&osc24M>;
-- };
--
-- spi0: spi@01c68000 {
-- compatible = "allwinner,sun8i-h3-spi";
-- reg = <0x01c68000 0x1000>;
-- interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
-- clock-names = "ahb", "mod";
-- dmas = <&dma 23>, <&dma 23>;
-- dma-names = "rx", "tx";
-- pinctrl-names = "default";
-- pinctrl-0 = <&spi0_pins>;
-- resets = <&ccu RST_BUS_SPI0>;
-- status = "disabled";
-- #address-cells = <1>;
-- #size-cells = <0>;
-- };
--
-- spi1: spi@01c69000 {
-- compatible = "allwinner,sun8i-h3-spi";
-- reg = <0x01c69000 0x1000>;
-- interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
-- clock-names = "ahb", "mod";
-- dmas = <&dma 24>, <&dma 24>;
-- dma-names = "rx", "tx";
-- pinctrl-names = "default";
-- pinctrl-0 = <&spi1_pins>;
-- resets = <&ccu RST_BUS_SPI1>;
-- status = "disabled";
-- #address-cells = <1>;
-- #size-cells = <0>;
-- };
--
-- wdt0: watchdog@01c20ca0 {
-- compatible = "allwinner,sun6i-a31-wdt";
-- reg = <0x01c20ca0 0x20>;
-- interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
-- };
--
-- spdif: spdif@01c21000 {
-- #sound-dai-cells = <0>;
-- compatible = "allwinner,sun8i-h3-spdif";
-- reg = <0x01c21000 0x400>;
-- interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
-- resets = <&ccu RST_BUS_SPDIF>;
-- clock-names = "apb", "spdif";
-- dmas = <&dma 2>;
-- dma-names = "tx";
-- status = "disabled";
-- };
--
-- pwm: pwm@01c21400 {
-- compatible = "allwinner,sun8i-h3-pwm";
-- reg = <0x01c21400 0x8>;
-- clocks = <&osc24M>;
-- #pwm-cells = <3>;
-- status = "disabled";
-- };
--
-- codec: codec@01c22c00 {
-- #sound-dai-cells = <0>;
-- compatible = "allwinner,sun8i-h3-codec";
-- reg = <0x01c22c00 0x400>;
-- interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
-- clock-names = "apb", "codec";
-- resets = <&ccu RST_BUS_CODEC>;
-- dmas = <&dma 15>, <&dma 15>;
-- dma-names = "rx", "tx";
-- allwinner,codec-analog-controls = <&codec_analog>;
-- status = "disabled";
-- };
--
-- uart0: serial@01c28000 {
-- compatible = "snps,dw-apb-uart";
-- reg = <0x01c28000 0x400>;
-- interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
-- reg-shift = <2>;
-- reg-io-width = <4>;
-- clocks = <&ccu CLK_BUS_UART0>;
-- resets = <&ccu RST_BUS_UART0>;
-- dmas = <&dma 6>, <&dma 6>;
-- dma-names = "rx", "tx";
-- status = "disabled";
-- };
--
-- uart1: serial@01c28400 {
-- compatible = "snps,dw-apb-uart";
-- reg = <0x01c28400 0x400>;
-- interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
-- reg-shift = <2>;
-- reg-io-width = <4>;
-- clocks = <&ccu CLK_BUS_UART1>;
-- resets = <&ccu RST_BUS_UART1>;
-- dmas = <&dma 7>, <&dma 7>;
-- dma-names = "rx", "tx";
-- status = "disabled";
-- };
--
-- uart2: serial@01c28800 {
-- compatible = "snps,dw-apb-uart";
-- reg = <0x01c28800 0x400>;
-- interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
-- reg-shift = <2>;
-- reg-io-width = <4>;
-- clocks = <&ccu CLK_BUS_UART2>;
-- resets = <&ccu RST_BUS_UART2>;
-- dmas = <&dma 8>, <&dma 8>;
-- dma-names = "rx", "tx";
-- status = "disabled";
-- };
--
-- uart3: serial@01c28c00 {
-- compatible = "snps,dw-apb-uart";
-- reg = <0x01c28c00 0x400>;
-- interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
-- reg-shift = <2>;
-- reg-io-width = <4>;
-- clocks = <&ccu CLK_BUS_UART3>;
-- resets = <&ccu RST_BUS_UART3>;
-- dmas = <&dma 9>, <&dma 9>;
-- dma-names = "rx", "tx";
-- status = "disabled";
-- };
--
-- i2c0: i2c@01c2ac00 {
-- compatible = "allwinner,sun6i-a31-i2c";
-- reg = <0x01c2ac00 0x400>;
-- interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_I2C0>;
-- resets = <&ccu RST_BUS_I2C0>;
-- pinctrl-names = "default";
-- pinctrl-0 = <&i2c0_pins>;
-- status = "disabled";
-- #address-cells = <1>;
-- #size-cells = <0>;
-- };
--
-- i2c1: i2c@01c2b000 {
-- compatible = "allwinner,sun6i-a31-i2c";
-- reg = <0x01c2b000 0x400>;
-- interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_I2C1>;
-- resets = <&ccu RST_BUS_I2C1>;
-- pinctrl-names = "default";
-- pinctrl-0 = <&i2c1_pins>;
-- status = "disabled";
-- #address-cells = <1>;
-- #size-cells = <0>;
-- };
--
-- i2c2: i2c@01c2b400 {
-- compatible = "allwinner,sun6i-a31-i2c";
-- reg = <0x01c2b000 0x400>;
-- interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&ccu CLK_BUS_I2C2>;
-- resets = <&ccu RST_BUS_I2C2>;
-- pinctrl-names = "default";
-- pinctrl-0 = <&i2c2_pins>;
-- status = "disabled";
-- #address-cells = <1>;
-- #size-cells = <0>;
-- };
--
-- gic: interrupt-controller@01c81000 {
-- compatible = "arm,gic-400";
-- reg = <0x01c81000 0x1000>,
-- <0x01c82000 0x2000>,
-- <0x01c84000 0x2000>,
-- <0x01c86000 0x2000>;
-- interrupt-controller;
-- #interrupt-cells = <3>;
-- interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
-- };
--
-- rtc: rtc@01f00000 {
-- compatible = "allwinner,sun6i-a31-rtc";
-- reg = <0x01f00000 0x54>;
-- interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
-- <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
-- };
--
-- apb0_reset: reset@01f014b0 {
-- reg = <0x01f014b0 0x4>;
-- compatible = "allwinner,sun6i-a31-clock-reset";
-- #reset-cells = <1>;
-- };
--
-- codec_analog: codec-analog@01f015c0 {
-- compatible = "allwinner,sun8i-h3-codec-analog";
-- reg = <0x01f015c0 0x4>;
-- };
--
-- ir: ir@01f02000 {
-- compatible = "allwinner,sun5i-a13-ir";
-- clocks = <&apb0_gates 1>, <&ir_clk>;
-- clock-names = "apb", "ir";
-- resets = <&apb0_reset 1>;
-- interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
-- reg = <0x01f02000 0x40>;
-- status = "disabled";
-- };
--
-- r_pio: pinctrl@01f02c00 {
-- compatible = "allwinner,sun8i-h3-r-pinctrl";
-- reg = <0x01f02c00 0x400>;
-- interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
-- clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>;
-- clock-names = "apb", "hosc", "losc";
-- resets = <&apb0_reset 0>;
-- gpio-controller;
-- #gpio-cells = <3>;
-- interrupt-controller;
-- #interrupt-cells = <3>;
--
-- ir_pins_a: ir@0 {
-- pins = "PL11";
-- function = "s_cir_rx";
-- };
-- };
-- };
--};
-+/*
-+ * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
-+ *
-+ * This file is dual-licensed: you can use it either under the terms
-+ * of the GPL or the X11 license, at your option. Note that this dual
-+ * licensing only applies to this file, and not this project as a
-+ * whole.
-+ *
-+ * a) This file is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This file is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * Or, alternatively,
-+ *
-+ * b) Permission is hereby granted, free of charge, to any person
-+ * obtaining a copy of this software and associated documentation
-+ * files (the "Software"), to deal in the Software without
-+ * restriction, including without limitation the rights to use,
-+ * copy, modify, merge, publish, distribute, sublicense, and/or
-+ * sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following
-+ * conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be
-+ * included in all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-+ * OTHER DEALINGS IN THE SOFTWARE.
-+ */
-+
-+#include "sunxi-h3-h5.dtsi"
-+
-+/ {
-+ cpus {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ cpu@0 {
-+ compatible = "arm,cortex-a7";
-+ device_type = "cpu";
-+ reg = <0>;
-+ };
-+
-+ cpu@1 {
-+ compatible = "arm,cortex-a7";
-+ device_type = "cpu";
-+ reg = <1>;
-+ };
-+
-+ cpu@2 {
-+ compatible = "arm,cortex-a7";
-+ device_type = "cpu";
-+ reg = <2>;
-+ };
-+
-+ cpu@3 {
-+ compatible = "arm,cortex-a7";
-+ device_type = "cpu";
-+ reg = <3>;
-+ };
-+ };
-+
-+ timer {
-+ compatible = "arm,armv7-timer";
-+ interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-+ <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-+ };
-+};
-+
-+&ccu {
-+ compatible = "allwinner,sun8i-h3-ccu";
-+};
-+
-+&mmc0 {
-+ compatible = "allwinner,sun7i-a20-mmc";
-+ clocks = <&ccu CLK_BUS_MMC0>,
-+ <&ccu CLK_MMC0>,
-+ <&ccu CLK_MMC0_OUTPUT>,
-+ <&ccu CLK_MMC0_SAMPLE>;
-+ clock-names = "ahb",
-+ "mmc",
-+ "output",
-+ "sample";
-+};
-+
-+&mmc1 {
-+ compatible = "allwinner,sun7i-a20-mmc";
-+ clocks = <&ccu CLK_BUS_MMC1>,
-+ <&ccu CLK_MMC1>,
-+ <&ccu CLK_MMC1_OUTPUT>,
-+ <&ccu CLK_MMC1_SAMPLE>;
-+ clock-names = "ahb",
-+ "mmc",
-+ "output",
-+ "sample";
-+};
-+
-+&mmc2 {
-+ compatible = "allwinner,sun7i-a20-mmc";
-+ clocks = <&ccu CLK_BUS_MMC2>,
-+ <&ccu CLK_MMC2>,
-+ <&ccu CLK_MMC2_OUTPUT>,
-+ <&ccu CLK_MMC2_SAMPLE>;
-+ clock-names = "ahb",
-+ "mmc",
-+ "output",
-+ "sample";
-+};
-+
-+&pio {
-+ compatible = "allwinner,sun8i-h3-pinctrl";
-+};
-diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
-similarity index 90%
-copy from arch/arm/boot/dts/sun8i-h3.dtsi
-copy to arch/arm/boot/dts/sunxi-h3-h5.dtsi
-index c13fbfb92592..2494ea063cd4 100644
---- a/arch/arm/boot/dts/sun8i-h3.dtsi
-+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
-@@ -46,43 +46,8 @@
-
- / {
- interrupt-parent = <&gic>;
--
-- cpus {
-- #address-cells = <1>;
-- #size-cells = <0>;
--
-- cpu@0 {
-- compatible = "arm,cortex-a7";
-- device_type = "cpu";
-- reg = <0>;
-- };
--
-- cpu@1 {
-- compatible = "arm,cortex-a7";
-- device_type = "cpu";
-- reg = <1>;
-- };
--
-- cpu@2 {
-- compatible = "arm,cortex-a7";
-- device_type = "cpu";
-- reg = <2>;
-- };
--
-- cpu@3 {
-- compatible = "arm,cortex-a7";
-- device_type = "cpu";
-- reg = <3>;
-- };
-- };
--
-- timer {
-- compatible = "arm,armv7-timer";
-- interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-- <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-- };
-+ #address-cells = <1>;
-+ #size-cells = <1>;
-
- clocks {
- #address-cells = <1>;
-@@ -147,16 +112,8 @@
- };
-
- mmc0: mmc@01c0f000 {
-- compatible = "allwinner,sun7i-a20-mmc";
-+ /* compatible and clocks are in per SoC .dtsi file */
- reg = <0x01c0f000 0x1000>;
-- clocks = <&ccu CLK_BUS_MMC0>,
-- <&ccu CLK_MMC0>,
-- <&ccu CLK_MMC0_OUTPUT>,
-- <&ccu CLK_MMC0_SAMPLE>;
-- clock-names = "ahb",
-- "mmc",
-- "output",
-- "sample";
- resets = <&ccu RST_BUS_MMC0>;
- reset-names = "ahb";
- interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
-@@ -166,16 +123,8 @@
- };
-
- mmc1: mmc@01c10000 {
-- compatible = "allwinner,sun7i-a20-mmc";
-+ /* compatible and clocks are in per SoC .dtsi file */
- reg = <0x01c10000 0x1000>;
-- clocks = <&ccu CLK_BUS_MMC1>,
-- <&ccu CLK_MMC1>,
-- <&ccu CLK_MMC1_OUTPUT>,
-- <&ccu CLK_MMC1_SAMPLE>;
-- clock-names = "ahb",
-- "mmc",
-- "output",
-- "sample";
- resets = <&ccu RST_BUS_MMC1>;
- reset-names = "ahb";
- interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
-@@ -185,16 +134,8 @@
- };
-
- mmc2: mmc@01c11000 {
-- compatible = "allwinner,sun7i-a20-mmc";
-+ /* compatible and clocks are in per SoC .dtsi file */
- reg = <0x01c11000 0x1000>;
-- clocks = <&ccu CLK_BUS_MMC2>,
-- <&ccu CLK_MMC2>,
-- <&ccu CLK_MMC2_OUTPUT>,
-- <&ccu CLK_MMC2_SAMPLE>;
-- clock-names = "ahb",
-- "mmc",
-- "output",
-- "sample";
- resets = <&ccu RST_BUS_MMC2>;
- reset-names = "ahb";
- interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
-@@ -305,7 +246,7 @@
- };
-
- ccu: clock@01c20000 {
-- compatible = "allwinner,sun8i-h3-ccu";
-+ /* compatible is in per SoC .dtsi file */
- reg = <0x01c20000 0x400>;
- clocks = <&osc24M>, <&osc32k>;
- clock-names = "hosc", "losc";
-@@ -314,7 +255,7 @@
- };
-
- pio: pinctrl@01c20800 {
-- compatible = "allwinner,sun8i-h3-pinctrl";
-+ /* compatible is in per SoC .dtsi file */
- reg = <0x01c20800 0x400>;
- interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/AllWinner-net-emac.patch b/AllWinner-net-emac.patch
index 9417fb80e..0e0a319d0 100644
--- a/AllWinner-net-emac.patch
+++ b/AllWinner-net-emac.patch
@@ -1,21 +1,20 @@
-From patchwork Tue Mar 14 14:18:37 2017
+From patchwork Mon May 1 12:45:01 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2, 01/20] net-next: stmmac: export
- stmmac_set_mac_addr/stmmac_get_mac_addr
+Subject: [v5,
+ 01/20] net: stmmac: export stmmac_set_mac_addr/stmmac_get_mac_addr
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623505
-Message-Id: <20170314141856.24560-2-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706455
+Message-Id: <20170501124520.3769-2-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:37 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:01 +0200
Thoses symbol will be needed for the dwmac-sun8i ethernet driver.
For letting it to be build as module, they need to be exported.
@@ -26,7 +25,7 @@ Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c b/drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
-index e60bfca..0ab985c8 100644
+index 38f9430..67af0bd 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c
@@ -248,6 +248,7 @@ void stmmac_set_mac_addr(void __iomem *ioaddr, u8 addr[6],
@@ -43,39 +42,39 @@ index e60bfca..0ab985c8 100644
}
-
+EXPORT_SYMBOL_GPL(stmmac_get_mac_addr);
-From patchwork Tue Mar 14 14:18:38 2017
+
+From patchwork Mon May 1 12:45:02 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,02/20] net-next: stmmac: add optional setup function
+Subject: [v5,02/20] net: stmmac: add optional setup function
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623509
-Message-Id: <20170314141856.24560-3-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706501
+Message-Id: <20170501124520.3769-3-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:38 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:02 +0200
-Instead of ading more ifthen logic for adding a new mac_device_info
+Instead of adding more ifthen logic for adding a new mac_device_info
setup function, it is easier to add a function pointer to the function
needed.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +++-
- include/linux/stmmac.h | 3 +++
- 2 files changed, 6 insertions(+), 1 deletion(-)
+ include/linux/stmmac.h | 1 +
+ 2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-index 4498a38..856ac57 100644
+index cd8c601..b82ab64 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -3101,7 +3101,9 @@ static int stmmac_hw_init(struct stmmac_priv *priv)
+@@ -3947,7 +3947,9 @@ static int stmmac_hw_init(struct stmmac_priv *priv)
struct mac_device_info *mac;
/* Identify the MAC HW device */
@@ -87,50 +86,42 @@ index 4498a38..856ac57 100644
mac = dwmac1000_setup(priv->ioaddr,
priv->plat->multicast_filter_bins,
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
-index fc273e9..8f09f18 100644
+index 3921cb9..8bb550b 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
-@@ -109,6 +109,8 @@ struct stmmac_axi {
- bool axi_rb;
- };
-
-+struct stmmac_priv;
-+
- struct plat_stmmacenet_data {
- int bus_id;
- int phy_addr;
-@@ -136,6 +138,7 @@ struct plat_stmmacenet_data {
+@@ -177,6 +177,7 @@ struct plat_stmmacenet_data {
void (*fix_mac_speed)(void *priv, unsigned int speed);
int (*init)(struct platform_device *pdev, void *priv);
void (*exit)(struct platform_device *pdev, void *priv);
-+ struct mac_device_info *(*setup)(struct stmmac_priv *priv);
++ struct mac_device_info *(*setup)(void *priv);
void *bsp_priv;
struct clk *stmmac_clk;
struct clk *pclk;
-From patchwork Tue Mar 14 14:18:39 2017
+
+From patchwork Mon May 1 12:45:03 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,
- 03/20] ARM: sun8i: dt: Add DT bindings documentation for Allwinner
+Subject: [v5,
+ 03/20] dt-bindings: net: Add DT bindings documentation for Allwinner
dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623517
-Message-Id: <20170314141856.24560-4-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706457
+Message-Id: <20170501124520.3769-4-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:39 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:03 +0200
This patch adds documentation for Device-Tree bindings for the
Allwinner dwmac-sun8i driver.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
+Acked-by: Rob Herring <robh@kernel.org>
---
.../devicetree/bindings/net/dwmac-sun8i.txt | 77 ++++++++++++++++++++++
1 file changed, 77 insertions(+)
@@ -138,7 +129,7 @@ Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
diff --git a/Documentation/devicetree/bindings/net/dwmac-sun8i.txt b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt
new file mode 100644
-index 0000000..f01ef17
+index 0000000..05cd067
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/dwmac-sun8i.txt
@@ -0,0 +1,77 @@
@@ -166,13 +157,13 @@ index 0000000..f01ef17
+- syscon: A phandle to the syscon of the SoC with one of the following
+ compatible string:
+ - allwinner,sun8i-h3-system-controller
-+ - allwinner,sun8i-a64-system-controller
++ - allwinner,sun50i-a64-system-controller
+ - allwinner,sun8i-a83t-system-controller
+
+Optional properties:
-+- allwinner,tx-delay: TX clock delay chain value. Range value is 0-0x07. Default is 0)
-+- allwinner,rx-delay: RX clock delay chain value. Range value is 0-0x1F. Default is 0)
-+Both delay properties are in 0.1ns step.
++- allwinner,tx-delay-ps: TX clock delay chain value in ps. Range value is 0-700. Default is 0)
++- allwinner,rx-delay-ps: RX clock delay chain value in ps. Range value is 0-3100. Default is 0)
++Both delay properties need to be a multiple of 100.
+
+Optional properties for "allwinner,sun8i-h3-emac":
+- allwinner,leds-active-low: EPHY LEDs are active low
@@ -219,25 +210,27 @@ index 0000000..f01ef17
+ };
+ };
+};
-From patchwork Tue Mar 14 14:18:40 2017
+
+From patchwork Mon May 1 12:45:04 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,
- 04/20] ARM: sun8i: dt: Add DT bindings documentation for Allwinner
- syscon
+Subject: [v5, 04/20] dt-bindings: syscon: Add DT bindings documentation for
+ Allwinner syscon
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623533
-Message-Id: <20170314141856.24560-5-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706469
+Message-Id: <20170501124520.3769-5-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:40 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:04 +0200
+
+This patch adds documentation for Device-Tree bindings for the
+syscon present in allwinner devices.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
@@ -247,7 +240,7 @@ Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
diff --git a/Documentation/devicetree/bindings/misc/allwinner,syscon.txt b/Documentation/devicetree/bindings/misc/allwinner,syscon.txt
new file mode 100644
-index 0000000..9f5f1f5
+index 0000000..cb57691
--- /dev/null
+++ b/Documentation/devicetree/bindings/misc/allwinner,syscon.txt
@@ -0,0 +1,19 @@
@@ -262,31 +255,31 @@ index 0000000..9f5f1f5
+- reg: address and length of the register for the device.
+- compatible: should be "syscon" and one of the following string:
+ "allwinner,sun8i-h3-system-controller"
-+ "allwinner,sun8i-a64-system-controller"
++ "allwinner,sun50i-a64-system-controller"
+ "allwinner,sun8i-a83t-system-controller"
+
+Example:
-+syscon: syscon@01c00000 {
-+ compatible = "syscon", "allwinner,sun8i-h3-system-controller";
++syscon: syscon@1c00000 {
++ compatible = "allwinner,sun8i-h3-system-controller", "syscon";
+ reg = <0x01c00000 0x1000>;
+};
-From patchwork Tue Mar 14 14:18:41 2017
+
+From patchwork Mon May 1 12:45:05 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,05/20] net-next: stmmac: Add dwmac-sun8i
+Subject: [v5,05/20] net: stmmac: Add dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623523
-Message-Id: <20170314141856.24560-6-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706473
+Message-Id: <20170501124520.3769-6-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:41 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:05 +0200
The dwmac-sun8i is a heavy hacked version of stmmac hardware by
allwinner.
@@ -297,11 +290,11 @@ Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
drivers/net/ethernet/stmicro/stmmac/Kconfig | 11 +
drivers/net/ethernet/stmicro/stmmac/Makefile | 1 +
- drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 938 +++++++++++++++++++++
- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 27 +-
+ drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c | 973 +++++++++++++++++++++
+ drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 29 +
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 9 +-
include/linux/stmmac.h | 1 +
- 6 files changed, 984 insertions(+), 3 deletions(-)
+ 6 files changed, 1022 insertions(+), 2 deletions(-)
create mode 100644 drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
diff --git a/drivers/net/ethernet/stmicro/stmmac/Kconfig b/drivers/net/ethernet/stmicro/stmmac/Kconfig
@@ -340,10 +333,10 @@ index 700c603..fd4937a 100644
stmmac-platform-objs:= stmmac_platform.o
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
new file mode 100644
-index 0000000..52ab67c
+index 0000000..66eb980
--- /dev/null
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
-@@ -0,0 +1,938 @@
+@@ -0,0 +1,973 @@
+/*
+ * dwmac-sun8i.c - Allwinner sun8i DWMAC specific glue layer
+ *
@@ -606,23 +599,24 @@ index 0000000..52ab67c
+ }
+}
+
-+static void sun8i_dwmac_enable_dma_irq(void __iomem *ioaddr)
++static void sun8i_dwmac_enable_dma_irq(void __iomem *ioaddr, u32 chan)
+{
+ writel(EMAC_RX_INT | EMAC_TX_INT, ioaddr + EMAC_INT_EN);
+}
+
-+static void sun8i_dwmac_disable_dma_irq(void __iomem *ioaddr)
++static void sun8i_dwmac_disable_dma_irq(void __iomem *ioaddr, u32 chan)
+{
+ writel(0, ioaddr + EMAC_INT_EN);
+}
+
-+static void sun8i_dwmac_dma_start_tx(void __iomem *ioaddr)
++static void sun8i_dwmac_dma_start_tx(void __iomem *ioaddr, u32 chan)
+{
+ u32 v;
+
-+ v = readl(ioaddr + EMAC_TX_CTL0);
-+ v |= EMAC_TX_TRANSMITTER_EN;
-+ writel(v, ioaddr + EMAC_TX_CTL0);
++ v = readl(ioaddr + EMAC_TX_CTL1);
++ v |= EMAC_TX_DMA_START;
++ v |= EMAC_TX_DMA_EN;
++ writel(v, ioaddr + EMAC_TX_CTL1);
+}
+
+static void sun8i_dwmac_enable_dma_transmission(void __iomem *ioaddr)
@@ -632,47 +626,39 @@ index 0000000..52ab67c
+ v = readl(ioaddr + EMAC_TX_CTL1);
+ v |= EMAC_TX_DMA_START;
+ v |= EMAC_TX_DMA_EN;
-+ writel_relaxed(v, ioaddr + EMAC_TX_CTL1);
++ writel(v, ioaddr + EMAC_TX_CTL1);
+}
+
-+static void sun8i_dwmac_dma_stop_tx(void __iomem *ioaddr)
++static void sun8i_dwmac_dma_stop_tx(void __iomem *ioaddr, u32 chan)
+{
+ u32 v;
+
-+ v = readl(ioaddr + EMAC_TX_CTL0);
-+ v &= ~EMAC_TX_TRANSMITTER_EN;
-+ writel(v, ioaddr + EMAC_TX_CTL0);
++ v = readl(ioaddr + EMAC_TX_CTL1);
++ v &= ~EMAC_TX_DMA_EN;
++ writel(v, ioaddr + EMAC_TX_CTL1);
+}
+
-+static void sun8i_dwmac_dma_start_rx(void __iomem *ioaddr)
++static void sun8i_dwmac_dma_start_rx(void __iomem *ioaddr, u32 chan)
+{
+ u32 v;
+
-+ v = readl(ioaddr + EMAC_RX_CTL0);
-+ v |= EMAC_RX_RECEIVER_EN;
-+ writel(v, ioaddr + EMAC_RX_CTL0);
-+
+ v = readl(ioaddr + EMAC_RX_CTL1);
+ v |= EMAC_RX_DMA_START;
+ v |= EMAC_RX_DMA_EN;
+ writel(v, ioaddr + EMAC_RX_CTL1);
+}
+
-+static void sun8i_dwmac_dma_stop_rx(void __iomem *ioaddr)
++static void sun8i_dwmac_dma_stop_rx(void __iomem *ioaddr, u32 chan)
+{
+ u32 v;
+
-+ v = readl(ioaddr + EMAC_RX_CTL0);
-+ v &= ~EMAC_RX_RECEIVER_EN;
-+ writel(v, ioaddr + EMAC_RX_CTL0);
-+
+ v = readl(ioaddr + EMAC_RX_CTL1);
+ v &= ~EMAC_RX_DMA_EN;
+ writel(v, ioaddr + EMAC_RX_CTL1);
+}
+
+static int sun8i_dwmac_dma_interrupt(void __iomem *ioaddr,
-+ struct stmmac_extra_stats *x)
++ struct stmmac_extra_stats *x, u32 chan)
+{
+ u32 v;
+ int ret = 0;
@@ -825,6 +811,27 @@ index 0000000..52ab67c
+ writel(v, ioaddr + EMAC_BASIC_CTL1);
+}
+
++static void sun8i_dwmac_set_mac(void __iomem *ioaddr, bool enable)
++{
++ u32 t, r;
++
++ t = readl(ioaddr + EMAC_TX_CTL0);
++ r = readl(ioaddr + EMAC_RX_CTL0);
++ if (enable) {
++ t |= EMAC_TX_TRANSMITTER_EN;
++ r |= EMAC_RX_RECEIVER_EN;
++ } else {
++ t &= ~EMAC_TX_TRANSMITTER_EN;
++ r &= ~EMAC_RX_RECEIVER_EN;
++ }
++ writel(t, ioaddr + EMAC_TX_CTL0);
++ writel(r, ioaddr + EMAC_RX_CTL0);
++}
++
++/* Set MAC address at slot reg_n
++ * All slot > 0 need to be enabled with MAC_ADDR_TYPE_DST
++ * If addr is NULL, clear the slot
++ */
+static void sun8i_dwmac_set_umac_addr(struct mac_device_info *hw,
+ unsigned char *addr,
+ unsigned int reg_n)
@@ -832,6 +839,11 @@ index 0000000..52ab67c
+ void __iomem *ioaddr = hw->pcsr;
+ u32 v;
+
++ if (!addr) {
++ writel(0, ioaddr + EMAC_MACADDR_HI(reg_n));
++ return;
++ }
++
+ stmmac_set_mac_addr(ioaddr, addr, EMAC_MACADDR_HI(reg_n),
+ EMAC_MACADDR_LO(reg_n));
+ if (reg_n > 0) {
@@ -869,39 +881,44 @@ index 0000000..52ab67c
+{
+ void __iomem *ioaddr = hw->pcsr;
+ u32 v;
-+ int i = 0;
++ int i = 1;
+ struct netdev_hw_addr *ha;
++ int macaddrs = netdev_uc_count(dev) + netdev_mc_count(dev) + 1;
+
-+ v = readl(ioaddr + EMAC_RX_FRM_FLT);
-+
-+ v |= EMAC_FRM_FLT_CTL;
++ v = EMAC_FRM_FLT_CTL;
+
+ if (dev->flags & IFF_PROMISC) {
+ v = EMAC_FRM_FLT_RXALL;
+ } else if (dev->flags & IFF_ALLMULTI) {
-+ v = EMAC_FRM_FLT_MULTICAST;
-+ } else if (!netdev_mc_empty(dev)) {
-+ netdev_for_each_mc_addr(ha, dev) {
-+ i++;
-+ sun8i_dwmac_set_umac_addr(hw, ha->addr, i);
++ v |= EMAC_FRM_FLT_MULTICAST;
++ } else if (macaddrs <= hw->unicast_filter_entries) {
++ if (!netdev_mc_empty(dev)) {
++ netdev_for_each_mc_addr(ha, dev) {
++ sun8i_dwmac_set_umac_addr(hw, ha->addr, i);
++ i++;
++ }
+ }
-+ }
-+
-+ if (netdev_uc_count(dev) + i > hw->unicast_filter_entries) {
++ if (!netdev_uc_empty(dev)) {
++ netdev_for_each_uc_addr(ha, dev) {
++ sun8i_dwmac_set_umac_addr(hw, ha->addr, i);
++ i++;
++ }
++ }
++ } else {
+ netdev_info(dev, "Too many address, switching to promiscuous\n");
+ v = EMAC_FRM_FLT_RXALL;
-+ } else {
-+ netdev_for_each_uc_addr(ha, dev) {
-+ i++;
-+ sun8i_dwmac_set_umac_addr(hw, ha->addr, i);
-+ }
+ }
++
++ /* Disable unused address filter slots */
++ while (i < hw->unicast_filter_entries)
++ sun8i_dwmac_set_umac_addr(hw, NULL, i++);
++
+ writel(v, ioaddr + EMAC_RX_FRM_FLT);
+}
+
+static void sun8i_dwmac_flow_ctrl(struct mac_device_info *hw,
-+ unsigned int duplex,
-+ unsigned int fc, unsigned int pause_time)
++ unsigned int duplex, unsigned int fc,
++ unsigned int pause_time, u32 tx_cnt)
+{
+ void __iomem *ioaddr = hw->pcsr;
+ u32 v;
@@ -981,7 +998,12 @@ index 0000000..52ab67c
+ }
+ }
+
-+ if (!of_property_read_u32(node, "allwinner,tx-delay", &val)) {
++ if (!of_property_read_u32(node, "allwinner,tx-delay-ps", &val)) {
++ if (val % 100) {
++ dev_err(priv->device, "tx-delay must be a multiple of 100\n");
++ return -EINVAL;
++ }
++ val /= 100;
+ dev_dbg(priv->device, "set tx-delay to %x\n", val);
+ if (val <= SYSCON_ETXDC_MASK) {
+ reg &= ~(SYSCON_ETXDC_MASK << SYSCON_ETXDC_SHIFT);
@@ -993,7 +1015,12 @@ index 0000000..52ab67c
+ }
+ }
+
-+ if (!of_property_read_u32(node, "allwinner,rx-delay", &val)) {
++ if (!of_property_read_u32(node, "allwinner,rx-delay-ps", &val)) {
++ if (val % 100) {
++ dev_err(priv->device, "rx-delay must be a multiple of 100\n");
++ return -EINVAL;
++ }
++ val /= 100;
+ dev_dbg(priv->device, "set rx-delay to %x\n", val);
+ if (val <= SYSCON_ERXDC_MASK) {
+ reg &= ~(SYSCON_ERXDC_MASK << SYSCON_ERXDC_SHIFT);
@@ -1043,21 +1070,20 @@ index 0000000..52ab67c
+ struct sunxi_priv_data *gmac = priv->plat->bsp_priv;
+ int ret;
+
-+ if (gmac->ephy_clk) {
-+ ret = clk_prepare_enable(gmac->ephy_clk);
-+ if (ret) {
-+ dev_err(priv->device, "Cannot enable ephy\n");
-+ return ret;
-+ }
++ if (!gmac->use_internal_phy)
++ return 0;
++
++ ret = clk_prepare_enable(gmac->ephy_clk);
++ if (ret) {
++ dev_err(priv->device, "Cannot enable ephy\n");
++ return ret;
+ }
+
-+ if (gmac->rst_ephy) {
-+ ret = reset_control_deassert(gmac->rst_ephy);
-+ if (ret) {
-+ dev_err(priv->device, "Cannot deassert ephy\n");
-+ clk_disable_unprepare(gmac->ephy_clk);
-+ return ret;
-+ }
++ ret = reset_control_deassert(gmac->rst_ephy);
++ if (ret) {
++ dev_err(priv->device, "Cannot deassert ephy\n");
++ clk_disable_unprepare(gmac->ephy_clk);
++ return ret;
+ }
+
+ return 0;
@@ -1065,10 +1091,11 @@ index 0000000..52ab67c
+
+static int sun8i_dwmac_unpower_internal_phy(struct sunxi_priv_data *gmac)
+{
-+ if (gmac->ephy_clk)
-+ clk_disable_unprepare(gmac->ephy_clk);
-+ if (gmac->rst_ephy)
-+ reset_control_assert(gmac->rst_ephy);
++ if (!gmac->use_internal_phy)
++ return 0;
++
++ clk_disable_unprepare(gmac->ephy_clk);
++ reset_control_assert(gmac->rst_ephy);
+ return 0;
+}
+
@@ -1116,6 +1143,7 @@ index 0000000..52ab67c
+
+static const struct stmmac_ops sun8i_dwmac_ops = {
+ .core_init = sun8i_dwmac_core_init,
++ .set_mac = sun8i_dwmac_set_mac,
+ .dump_regs = sun8i_dwmac_dump_mac_regs,
+ .rx_ipc = sun8i_dwmac_rx_ipc_enable,
+ .set_filter = sun8i_dwmac_set_filter,
@@ -1124,9 +1152,10 @@ index 0000000..52ab67c
+ .get_umac_addr = sun8i_dwmac_get_umac_addr,
+};
+
-+static struct mac_device_info *sun8i_dwmac_setup(struct stmmac_priv *priv)
++static struct mac_device_info *sun8i_dwmac_setup(void *ppriv)
+{
+ struct mac_device_info *mac;
++ struct stmmac_priv *priv = ppriv;
+ int ret;
+
+ mac = devm_kzalloc(priv->device, sizeof(*mac), GFP_KERNEL);
@@ -1182,13 +1211,13 @@ index 0000000..52ab67c
+
+ gmac->variant = of_device_get_match_data(&pdev->dev);
+ if (!gmac->variant) {
-+ dev_err(&pdev->dev, "Missing sun8i-emac variant\n");
++ dev_err(&pdev->dev, "Missing dwmac-sun8i variant\n");
+ return -EINVAL;
+ }
+
+ gmac->tx_clk = devm_clk_get(dev, "stmmaceth");
+ if (IS_ERR(gmac->tx_clk)) {
-+ dev_err(dev, "could not get tx clock\n");
++ dev_err(dev, "Could not get TX clock\n");
+ return PTR_ERR(gmac->tx_clk);
+ }
+
@@ -1197,7 +1226,7 @@ index 0000000..52ab67c
+ if (IS_ERR(gmac->regulator)) {
+ if (PTR_ERR(gmac->regulator) == -EPROBE_DEFER)
+ return -EPROBE_DEFER;
-+ dev_info(dev, "no regulator found\n");
++ dev_info(dev, "No regulator found\n");
+ gmac->regulator = NULL;
+ }
+
@@ -1205,7 +1234,7 @@ index 0000000..52ab67c
+ "syscon");
+ if (IS_ERR(gmac->regmap)) {
+ ret = PTR_ERR(gmac->regmap);
-+ dev_err(&pdev->dev, "unable to map SYSCON:%d\n", ret);
++ dev_err(&pdev->dev, "Unable to map syscon: %d\n", ret);
+ return ret;
+ }
+
@@ -1216,8 +1245,7 @@ index 0000000..52ab67c
+ gmac->ephy_clk = of_clk_get(plat_dat->phy_node, 0);
+ if (IS_ERR(gmac->ephy_clk)) {
+ ret = PTR_ERR(gmac->ephy_clk);
-+ dev_err(&pdev->dev, "Cannot get EPHY clock err=%d\n",
-+ ret);
++ dev_err(&pdev->dev, "Cannot get EPHY clock: %d\n", ret);
+ return -EINVAL;
+ }
+
@@ -1272,7 +1300,7 @@ index 0000000..52ab67c
+ .probe = sun8i_dwmac_probe,
+ .remove = stmmac_pltfr_remove,
+ .driver = {
-+ .name = "sun8i-dwmac",
++ .name = "dwmac-sun8i",
+ .pm = &stmmac_pltfr_pm_ops,
+ .of_match_table = sun8i_dwmac_match,
+ },
@@ -1283,10 +1311,10 @@ index 0000000..52ab67c
+MODULE_DESCRIPTION("Allwinner sun8i DWMAC specific glue layer");
+MODULE_LICENSE("GPL");
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-index 856ac57..05e8018 100644
+index b82ab64..39777a7 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -177,6 +177,17 @@ static void stmmac_clk_csr_set(struct stmmac_priv *priv)
+@@ -235,6 +235,17 @@ static void stmmac_clk_csr_set(struct stmmac_priv *priv)
else if ((clk_rate >= CSR_F_250M) && (clk_rate < CSR_F_300M))
priv->clk_csr = STMMAC_CSR_250_300M;
}
@@ -1304,18 +1332,22 @@ index 856ac57..05e8018 100644
}
static void print_pkt(unsigned char *buf, int len)
-@@ -697,6 +708,10 @@ static void stmmac_adjust_link(struct net_device *dev)
+@@ -784,6 +795,14 @@ static void stmmac_adjust_link(struct net_device *dev)
if (phydev->link) {
u32 ctrl = readl(priv->ioaddr + MAC_CTRL_REG);
-+ /* disable loopback */
-+ if (priv->plat->has_sun8i)
-+ ctrl &= ~BIT(1);
++ /* dwmac-sun8i handle loopback in MAC_CTRL_REG */
++ if (priv->plat->has_sun8i) {
++ if (dev->features & NETIF_F_LOOPBACK)
++ ctrl |= BIT(1);
++ else
++ ctrl &= ~BIT(1);
++ }
+
/* Now we make sure that we can be in full duplex mode.
* If not, we operate in half-duplex mode. */
if (phydev->duplex != priv->oldduplex) {
-@@ -714,6 +729,8 @@ static void stmmac_adjust_link(struct net_device *dev)
+@@ -800,6 +819,8 @@ static void stmmac_adjust_link(struct net_device *dev)
if (phydev->speed != priv->speed) {
new_state = 1;
@@ -1324,7 +1356,7 @@ index 856ac57..05e8018 100644
switch (phydev->speed) {
case 1000:
if (priv->plat->has_gmac ||
-@@ -725,6 +742,8 @@ static void stmmac_adjust_link(struct net_device *dev)
+@@ -811,6 +832,8 @@ static void stmmac_adjust_link(struct net_device *dev)
priv->plat->has_gmac4) {
ctrl |= priv->hw->link.port;
ctrl |= priv->hw->link.speed;
@@ -1333,7 +1365,7 @@ index 856ac57..05e8018 100644
} else {
ctrl &= ~priv->hw->link.port;
}
-@@ -734,6 +753,8 @@ static void stmmac_adjust_link(struct net_device *dev)
+@@ -820,6 +843,8 @@ static void stmmac_adjust_link(struct net_device *dev)
priv->plat->has_gmac4) {
ctrl |= priv->hw->link.port;
ctrl &= ~(priv->hw->link.speed);
@@ -1342,16 +1374,7 @@ index 856ac57..05e8018 100644
} else {
ctrl &= ~priv->hw->link.port;
}
-@@ -1702,7 +1723,7 @@ static int stmmac_hw_setup(struct net_device *dev, bool init_ptp)
- /* Enable the MAC Rx/Tx */
- if (priv->synopsys_id >= DWMAC_CORE_4_00)
- stmmac_dwmac4_set_mac(priv->ioaddr, true);
-- else
-+ else if (!priv->plat->has_sun8i)
- stmmac_set_mac(priv->ioaddr, true);
-
- /* Set the HW DMA mode and the COE */
-@@ -3123,6 +3144,10 @@ static int stmmac_hw_init(struct stmmac_priv *priv)
+@@ -3969,6 +3994,10 @@ static int stmmac_hw_init(struct stmmac_priv *priv)
priv->hw = mac;
@@ -1363,10 +1386,10 @@ index 856ac57..05e8018 100644
if (priv->synopsys_id >= DWMAC_CORE_4_00) {
priv->hw->mode = &dwmac4_ring_mode_ops;
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
-index 0ba1caf..3c21862 100644
+index 7fc3a1e..3840529 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
-@@ -160,6 +160,12 @@ static int stmmac_dt_phy(struct plat_stmmacenet_data *plat,
+@@ -309,6 +309,12 @@ static int stmmac_dt_phy(struct plat_stmmacenet_data *plat,
struct device_node *np, struct device *dev)
{
bool mdio = true;
@@ -1379,7 +1402,7 @@ index 0ba1caf..3c21862 100644
/* If phy-handle property is passed from DT, use it as the PHY */
plat->phy_node = of_parse_phandle(np, "phy-handle", 0);
-@@ -176,8 +182,7 @@ static int stmmac_dt_phy(struct plat_stmmacenet_data *plat,
+@@ -325,8 +331,7 @@ static int stmmac_dt_phy(struct plat_stmmacenet_data *plat,
mdio = false;
}
@@ -1390,10 +1413,10 @@ index 0ba1caf..3c21862 100644
} else {
/**
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
-index 8f09f18..100386c 100644
+index 8bb550b..108739f 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
-@@ -147,6 +147,7 @@ struct plat_stmmacenet_data {
+@@ -186,6 +186,7 @@ struct plat_stmmacenet_data {
struct reset_control *stmmac_rst;
struct stmmac_axi *axi;
int has_gmac4;
@@ -1401,24 +1424,25 @@ index 8f09f18..100386c 100644
bool tso_en;
int mac_port_sel_speed;
bool en_tx_lpi_clockgating;
-From patchwork Tue Mar 14 14:18:42 2017
+
+From patchwork Mon May 1 12:45:06 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2, 06/20] ARM: dts: sunxi-h3-h5: Add dt node for the syscon control
+Subject: [v5,
+ 06/20] arm: sun8i: sunxi-h3-h5: Add dt node for the syscon control
module
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623549
-Message-Id: <20170314141856.24560-7-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706459
+Message-Id: <20170501124520.3769-7-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:42 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:06 +0200
This patch add the dt node for the syscon register present on the
Allwinner H3/H5
@@ -1432,39 +1456,39 @@ Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
1 file changed, 6 insertions(+)
diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
-index 2494ea0..07e4f36 100644
+index 1aeeacb..d9691fc 100644
--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
-@@ -102,6 +102,12 @@
+@@ -83,6 +83,12 @@
#size-cells = <1>;
ranges;
-+ syscon: syscon@01c00000 {
-+ compatible = "syscon",
-+ "allwinner,sun8i-h3-system-controller";
++ syscon: syscon@1c00000 {
++ compatible = "allwinner,sun8i-h3-system-controller",
++ "syscon";
+ reg = <0x01c00000 0x1000>;
+ };
+
dma: dma-controller@01c02000 {
compatible = "allwinner,sun8i-h3-dma";
reg = <0x01c02000 0x1000>;
-From patchwork Tue Mar 14 14:18:43 2017
+
+From patchwork Mon May 1 12:45:07 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,07/20] ARM: dts: sunxi-h3-h5: add dwmac-sun8i ethernet driver
+Subject: [v5,07/20] arm: sun8i: sunxi-h3-h5: add dwmac-sun8i ethernet driver
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623561
-Message-Id: <20170314141856.24560-8-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706465
+Message-Id: <20170501124520.3769-8-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:43 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:07 +0200
The dwmac-sun8i is an ethernet MAC hardware that support 10/100/1000
speed.
@@ -1474,21 +1498,21 @@ SoC H3/H5 have an internal PHY, so optionals syscon and ephy are set.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
- arch/arm/boot/dts/sunxi-h3-h5.dtsi | 33 +++++++++++++++++++++++++++++++++
- 1 file changed, 33 insertions(+)
+ arch/arm/boot/dts/sunxi-h3-h5.dtsi | 34 ++++++++++++++++++++++++++++++++++
+ 1 file changed, 34 insertions(+)
diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
-index 07e4f36..c35af5e 100644
+index d9691fc..45a9a30 100644
--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
-@@ -272,6 +272,14 @@
+@@ -285,6 +285,14 @@
interrupt-controller;
#interrupt-cells = <3>;
-+ emac_rgmii_pins: emac0@0 {
++ emac_rgmii_pins: emac0 {
+ pins = "PD0", "PD1", "PD2", "PD3", "PD4",
-+ "PD5", "PD7", "PD8", "PD9", "PD10",
-+ "PD12", "PD13", "PD15", "PD16", "PD17";
++ "PD5", "PD7", "PD8", "PD9", "PD10",
++ "PD12", "PD13", "PD15", "PD16", "PD17";
+ function = "emac";
+ drive-strength = <40>;
+ };
@@ -1496,7 +1520,7 @@ index 07e4f36..c35af5e 100644
i2c0_pins: i2c0 {
pins = "PA11", "PA12";
function = "i2c0";
-@@ -368,6 +376,31 @@
+@@ -381,6 +389,32 @@
clocks = <&osc24M>;
};
@@ -1518,9 +1542,10 @@ index 07e4f36..c35af5e 100644
+ #address-cells = <1>;
+ #size-cells = <0>;
+ int_mii_phy: ethernet-phy@1 {
-+ reg = <1>;
-+ clocks = <&ccu CLK_BUS_EPHY>;
-+ resets = <&ccu RST_BUS_EPHY>;
++ compatible = "ethernet-phy-ieee802.3-c22";
++ reg = <1>;
++ clocks = <&ccu CLK_BUS_EPHY>;
++ resets = <&ccu RST_BUS_EPHY>;
+ };
+ };
+ };
@@ -1528,107 +1553,23 @@ index 07e4f36..c35af5e 100644
spi0: spi@01c68000 {
compatible = "allwinner,sun8i-h3-spi";
reg = <0x01c68000 0x1000>;
-From patchwork Tue Mar 14 14:18:44 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2,08/20] ARM: dts: sun8i: Enable dwmac-sun8i on the Banana Pi M2+
-From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623539
-Message-Id: <20170314141856.24560-9-clabbe.montjoie@gmail.com>
-To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, LABBE Corentin <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:44 +0100
-
-From: LABBE Corentin <clabbe.montjoie@gmail.com>
-
-The dwmac-sun8i hardware is present on the Banana Pi M2+
-It uses an external PHY rtl8211e via RGMII.
-This patch create the needed regulator, emac and phy nodes.
-
-Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
----
- arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts | 37 +++++++++++++++++++++++++
- 1 file changed, 37 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
-index 52acbe1..30b0a41 100644
---- a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
-+++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
-@@ -90,6 +90,18 @@
- pinctrl-0 = <&wifi_en_bpi_m2p>;
- reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
- };
-+
-+ reg_gmac_3v3: gmac-3v3 {
-+ compatible = "regulator-fixed";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&gmac_power_pin_orangepi>;
-+ regulator-name = "gmac-3v3";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ startup-delay-us = <100000>;
-+ enable-active-high;
-+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
-+ };
- };
-
- &ehci1 {
-@@ -186,3 +198,28 @@
- /* USB VBUS is on as long as VCC-IO is on */
- status = "okay";
- };
-+
-+&pio {
-+ gmac_power_pin_orangepi: gmac_power_pin@0 {
-+ pins = "PD6";
-+ function = "gpio_out";
-+ drive-strength = <10>;
-+ };
-+};
-+
-+&mdio {
-+ ext_rgmii_phy: ethernet-phy@1 {
-+ reg = <0>;
-+ };
-+};
-+
-+&emac {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&emac_rgmii_pins>;
-+ phy-supply = <&reg_gmac_3v3>;
-+ phy-handle = <&ext_rgmii_phy>;
-+ phy-mode = "rgmii";
-+
-+ allwinner,leds-active-low;
-+ status = "okay";
-+};
-From patchwork Tue Mar 14 14:18:45 2017
+From patchwork Mon May 1 12:45:08 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,09/20] ARM: dts: sun8i: Enable dwmac-sun8i on the Orange PI PC
+Subject: [v5,08/20] arm: sun8i: orangepi-pc: Enable dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623555
-Message-Id: <20170314141856.24560-10-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706463
+Message-Id: <20170501124520.3769-9-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, LABBE Corentin <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:45 +0100
-
-From: LABBE Corentin <clabbe.montjoie@gmail.com>
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:08 +0200
The dwmac-sun8i hardware is present on the Orange PI PC.
It uses the internal PHY.
@@ -1641,96 +1582,102 @@ Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
-index f148111..746c25a 100644
+index f148111..52e6575 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
-@@ -53,6 +53,7 @@
+@@ -52,6 +52,7 @@
+ compatible = "xunlong,orangepi-pc", "allwinner,sun8i-h3";
aliases {
- serial0 = &uart0;
+ ethernet0 = &emac;
+ serial0 = &uart0;
};
- chosen {
-@@ -184,3 +185,10 @@
- /* USB VBUS is always on */
+@@ -109,6 +110,13 @@
status = "okay";
};
-+
+
+&emac {
+ phy-handle = <&int_mii_phy>;
+ phy-mode = "mii";
+ allwinner,leds-active-low;
+ status = "okay";
+};
-From patchwork Tue Mar 14 14:18:46 2017
++
+ &ir {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir_pins_a>;
+
+From patchwork Mon May 1 12:45:09 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,10/20] ARM: dts: sun8i: Enable dwmac-sun8i on the Orange Pi 2
+Subject: [v5,09/20] arm: sun8i: orangepi-zero: Enable dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623557
-Message-Id: <20170314141856.24560-11-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706461
+Message-Id: <20170501124520.3769-10-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:46 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:09 +0200
-The dwmac-sun8i hardware is present on the Orange PI 2.
+The dwmac-sun8i hardware is present on the Orange PI Zero.
It uses the internal PHY.
This patch create the needed emac node.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
- arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 8 ++++++++
+ arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 8 ++++++++
1 file changed, 8 insertions(+)
-diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
-index 5b6d145..3f54b12 100644
---- a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
-+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
-@@ -55,6 +55,7 @@
+diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
+index 9e8b082..dd3525a 100644
+--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
++++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
+@@ -57,6 +57,7 @@
+ aliases {
serial0 = &uart0;
/* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
- ethernet1 = &rtl8189;
+ ethernet0 = &emac;
+ ethernet1 = &xr819;
};
- chosen {
-@@ -203,3 +204,10 @@
- usb1_vbus-supply = <&reg_usb1_vbus>;
+@@ -103,6 +104,13 @@
status = "okay";
};
-+
+
+&emac {
+ phy-handle = <&int_mii_phy>;
+ phy-mode = "mii";
+ allwinner,leds-active-low;
+ status = "okay";
+};
-From patchwork Tue Mar 14 14:18:47 2017
++
+ &mmc0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc0_pins_a>;
+
+From patchwork Mon May 1 12:45:10 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,11/20] ARM: dts: sun8i: Enable dwmac-sun8i on the Orange PI One
+Subject: [v5,10/20] arm: sun8i: orangepi-one: Enable dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623541
-Message-Id: <20170314141856.24560-12-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706471
+Message-Id: <20170501124520.3769-11-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:47 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:10 +0200
The dwmac-sun8i hardware is present on the Orange PI One.
It uses the internal PHY.
@@ -1743,18 +1690,18 @@ Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
1 file changed, 8 insertions(+)
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
-index ea8fd13..1f98ddc 100644
+index 5fea430..6880268 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
-@@ -53,6 +53,7 @@
+@@ -52,6 +52,7 @@
+ compatible = "xunlong,orangepi-one", "allwinner,sun8i-h3";
aliases {
- serial0 = &uart0;
+ ethernet0 = &emac;
+ serial0 = &uart0;
};
- chosen {
-@@ -93,6 +94,13 @@
+@@ -97,6 +98,13 @@
status = "okay";
};
@@ -1768,108 +1715,79 @@ index ea8fd13..1f98ddc 100644
&mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
-From patchwork Tue Mar 14 14:18:48 2017
+
+From patchwork Mon May 1 12:45:11 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,12/20] ARM: dts: sun8i: Enable dwmac-sun8i on the Orange Pi plus
+Subject: [v5,11/20] arm: sun8i: orangepi-2: Enable dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623569
-Message-Id: <20170314141856.24560-13-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706467
+Message-Id: <20170501124520.3769-12-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:48 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:11 +0200
-The dwmac-sun8i hardware is present on the Orange PI plus.
-It uses an external PHY rtl8211e via RGMII.
+The dwmac-sun8i hardware is present on the Orange PI 2.
+It uses the internal PHY.
-This patch create the needed regulator, emac and phy nodes.
+This patch create the needed emac node.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
- arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 35 ++++++++++++++++++++++++++++
- 1 file changed, 35 insertions(+)
+ arch/arm/boot/dts/sun8i-h3-orangepi-2.dts | 8 ++++++++
+ 1 file changed, 8 insertions(+)
-diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
-index 8c40ab7..4e075a2 100644
---- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
-+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
-@@ -58,6 +58,18 @@
- enable-active-high;
- gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>;
+diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
+index 5b6d145..cedd326 100644
+--- a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
++++ b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
+@@ -54,6 +54,7 @@
+ aliases {
+ serial0 = &uart0;
+ /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
++ ethernet0 = &emac;
+ ethernet1 = &rtl8189;
};
-+
-+ reg_gmac_3v3: gmac-3v3 {
-+ compatible = "regulator-fixed";
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&gmac_power_pin_orangepi>;
-+ regulator-name = "gmac-3v3";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ startup-delay-us = <100000>;
-+ enable-active-high;
-+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
-+ };
- };
- &ehci3 {
-@@ -86,8 +98,31 @@
- pins = "PG11";
- function = "gpio_out";
- };
-+
-+ gmac_power_pin_orangepi: gmac_power_pin@0 {
-+ pins = "PD6";
-+ function = "gpio_out";
-+ drive-strength = <10>;
-+ };
+@@ -108,6 +109,13 @@
+ status = "okay";
};
- &usbphy {
- usb3_vbus-supply = <&reg_usb3_vbus>;
- };
-+
-+&mdio {
-+ ext_rgmii_phy: ethernet-phy@1 {
-+ reg = <0>;
-+ };
-+};
-+
+&emac {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&emac_rgmii_pins>;
-+ phy-supply = <&reg_gmac_3v3>;
-+ phy-handle = <&ext_rgmii_phy>;
-+ phy-mode = "rgmii";
-+
++ phy-handle = <&int_mii_phy>;
++ phy-mode = "mii";
+ allwinner,leds-active-low;
+ status = "okay";
+};
-From patchwork Tue Mar 14 14:18:49 2017
++
+ &ir {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir_pins_a>;
+
+From patchwork Mon May 1 12:45:12 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,
- 13/20] ARM: dts: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to
- active high
+Subject: [v5,
+ 12/20] arm: sun8i: orangepi-pc-plus: Set EMAC activity LEDs to active
+ high
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623593
-Message-Id: <20170314141856.24560-14-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706481
+Message-Id: <20170501124520.3769-13-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:49 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:12 +0200
On the Orange Pi PC Plus, the polarity of the LEDs on the RJ45 Ethernet
port were changed from active low to active high.
@@ -1881,36 +1799,39 @@ Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
-index 8b93f5c..0380769 100644
+index 8b93f5c..a10281b 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts
-@@ -86,3 +86,8 @@
- /* eMMC is missing pull-ups */
- bias-pull-up;
+@@ -53,6 +53,11 @@
+ };
};
-+
+
+&emac {
+ /* LEDs changed to active high on the plus */
+ /delete-property/ allwinner,leds-active-low;
+};
-From patchwork Tue Mar 14 14:18:50 2017
++
+ &mmc1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc1_pins_a>;
+
+From patchwork Mon May 1 12:45:13 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2, 14/20] ARM64: dts: sun50i-a64: Add dt node for the syscon control
- module
+Subject: [v5, 13/20] arm64: allwinner: sun50i-a64: Add dt node for the syscon
+ control module
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623591
-Message-Id: <20170314141856.24560-15-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706477
+Message-Id: <20170501124520.3769-14-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:50 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:13 +0200
This patch add the dt node for the syscon register present on the
Allwinner A64.
@@ -1924,39 +1845,40 @@ Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-index 1c64ea2..3b09af2 100644
+index c7f669f..d7341ba 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -121,6 +121,12 @@
+@@ -129,6 +129,12 @@
#size-cells = <1>;
ranges;
-+ syscon: syscon@01c00000 {
-+ compatible = "syscon",
-+ "allwinner,sun8i-h3-system-controller";
++ syscon: syscon@1c00000 {
++ compatible = "allwinner,sun50i-a64-system-controller",
++ "syscon";
+ reg = <0x01c00000 0x1000>;
+ };
+
mmc0: mmc@1c0f000 {
compatible = "allwinner,sun50i-a64-mmc";
reg = <0x01c0f000 0x1000>;
-From patchwork Tue Mar 14 14:18:51 2017
+
+From patchwork Mon May 1 12:45:14 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,15/20] ARM64: dts: sun50i-a64: add dwmac-sun8i Ethernet driver
+Subject: [v5,
+ 14/20] arm64: allwinner: sun50i-a64: add dwmac-sun8i Ethernet driver
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623621
-Message-Id: <20170314141856.24560-16-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706485
+Message-Id: <20170501124520.3769-15-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:51 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:14 +0200
The dwmac-sun8i is an Ethernet MAC that supports 10/100/1000 Mbit
connections. It is very similar to the device found in the Allwinner
@@ -1967,30 +1889,28 @@ it disabled at this level.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
- arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 37 +++++++++++++++++++++++++++
- 1 file changed, 37 insertions(+)
+ arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 35 +++++++++++++++++++++++++++
+ 1 file changed, 35 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-index 3b09af2..57d69e5 100644
+index d7341ba..18b3642 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -277,6 +277,23 @@
+@@ -287,6 +287,21 @@
bias-pull-up;
};
+ rmii_pins: rmii_pins {
-+ pins = "PD10", "PD11", "PD13", "PD14",
-+ "PD17", "PD18", "PD19", "PD20",
-+ "PD22", "PD23";
++ pins = "PD10", "PD11", "PD13", "PD14", "PD17",
++ "PD18", "PD19", "PD20", "PD22", "PD23";
+ function = "emac";
+ drive-strength = <40>;
+ };
+
+ rgmii_pins: rgmii_pins {
-+ pins = "PD8", "PD9", "PD10", "PD11",
-+ "PD12", "PD13", "PD15",
-+ "PD16", "PD17", "PD18", "PD19",
-+ "PD20", "PD21", "PD22", "PD23";
++ pins = "PD8", "PD9", "PD10", "PD11", "PD12",
++ "PD13", "PD15", "PD16", "PD17", "PD18",
++ "PD19", "PD20", "PD21", "PD22", "PD23";
+ function = "emac";
+ drive-strength = <40>;
+ };
@@ -1998,7 +1918,7 @@ index 3b09af2..57d69e5 100644
uart0_pins_a: uart0@0 {
pins = "PB8", "PB9";
function = "uart0";
-@@ -381,6 +398,26 @@
+@@ -391,6 +406,26 @@
#size-cells = <0>;
};
@@ -2025,47 +1945,40 @@ index 3b09af2..57d69e5 100644
gic: interrupt-controller@1c81000 {
compatible = "arm,gic-400";
reg = <0x01c81000 0x1000>,
-From patchwork Tue Mar 14 14:18:52 2017
+
+From patchwork Mon May 1 12:45:15 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,16/20] ARM: dts: sun50i-a64: enable dwmac-sun8i on pine64
+Subject: [v5,15/20] arm64: allwinner: pine64: Enable dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623607
-Message-Id: <20170314141856.24560-17-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706489
+Message-Id: <20170501124520.3769-16-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:52 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:15 +0200
The dwmac-sun8i hardware is present on the pine64
It uses an external PHY via RMII.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
- arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 15 +++++++++++++++
- 1 file changed, 15 insertions(+)
+ arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
-index c680ed3..b53994d 100644
+index c680ed3..3b491c0 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
-@@ -109,3 +109,18 @@
- &usbphy {
+@@ -70,6 +70,15 @@
status = "okay";
};
-+
-+&mdio {
-+ ext_rmii_phy1: ethernet-phy@1 {
-+ reg = <1>;
-+ };
-+};
-+
+
+&emac {
+ pinctrl-names = "default";
+ pinctrl-0 = <&rmii_pins>;
@@ -2074,37 +1987,55 @@ index c680ed3..b53994d 100644
+ status = "okay";
+
+};
-From patchwork Tue Mar 14 14:18:53 2017
++
+ &i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+@@ -80,6 +89,13 @@
+ bias-pull-up;
+ };
+
++&mdio {
++ ext_rmii_phy1: ethernet-phy@1 {
++ compatible = "ethernet-phy-ieee802.3-c22";
++ reg = <1>;
++ };
++};
++
+ &mmc0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc0_pins>;
+
+From patchwork Mon May 1 12:45:16 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,17/20] ARM: dts: sun50i-a64: enable dwmac-sun8i on pine64 plus
+Subject: [v5,16/20] arm64: allwinner: pine64-plus: Enable dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623597
-Message-Id: <20170314141856.24560-18-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706511
+Message-Id: <20170501124520.3769-17-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:53 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:16 +0200
The dwmac-sun8i hardware is present on the pine64 plus.
It uses an external PHY rtl8211e via RGMII.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
- arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts | 16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
+ .../arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
-index 790d14d..8e06aed 100644
+index 790d14d..24f1aac 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts
-@@ -46,5 +46,19 @@
+@@ -46,5 +46,20 @@
model = "Pine64+";
compatible = "pine64,pine64-plus", "allwinner,sun50i-a64";
@@ -2112,60 +2043,54 @@ index 790d14d..8e06aed 100644
+ /* TODO: Camera, touchscreen, etc. */
+};
+
-+&mdio {
-+ ext_rgmii_phy: ethernet-phy@1 {
-+ reg = <1>;
-+ };
-+};
-+
+&emac {
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii_pins>;
+ phy-mode = "rgmii";
+ phy-handle = <&ext_rgmii_phy>;
+ status = "okay";
++};
++
++&mdio {
++ ext_rgmii_phy: ethernet-phy@1 {
++ compatible = "ethernet-phy-ieee802.3-c22";
++ reg = <1>;
++ };
};
-From patchwork Tue Mar 14 14:18:54 2017
+
+From patchwork Mon May 1 12:45:17 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v2,
- 18/20] ARM: dts: sun50i-a64: enable dwmac-sun8i on the BananaPi M64
+Subject: [v5,17/20] arm64: allwinner: bananapi-m64: Enable dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9623595
-Message-Id: <20170314141856.24560-19-clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706509
+Message-Id: <20170501124520.3769-18-clabbe.montjoie@gmail.com>
To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com,
- davem@davemloft.net
-Cc: devicetree@vger.kernel.org, f.fainelli@gmail.com, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Tue, 14 Mar 2017 15:18:54 +0100
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:17 +0200
The dwmac-sun8i hardware is present on the BananaPi M64.
It uses an external PHY rtl8211e via RGMII.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
- arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
+ arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
-index 6872135..347c262 100644
+index 6872135..0d1f026 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
-@@ -77,6 +77,20 @@
- bias-pull-up;
+@@ -67,6 +67,14 @@
+ };
};
-+&mdio {
-+ ext_rgmii_phy: ethernet-phy@1 {
-+ reg = <1>;
-+ };
-+};
-+
+&emac {
+ pinctrl-names = "default";
+ pinctrl-0 = <&rgmii_pins>;
@@ -2174,72 +2099,135 @@ index 6872135..347c262 100644
+ status = "okay";
+};
+
+ &i2c1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c1_pins>;
+@@ -77,6 +85,13 @@
+ bias-pull-up;
+ };
+
++&mdio {
++ ext_rgmii_phy: ethernet-phy@1 {
++ compatible = "ethernet-phy-ieee802.3-c22";
++ reg = <1>;
++ };
++};
++
&mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>;
-From patchwork Fri Jun 9 15:34:36 2017
+
+From patchwork Mon May 1 12:45:18 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: ARM: sun8i: h3: Enable EMAC with external PHY on Orange Pi Plus 2E
-From: Chen-Yu Tsai <wens@csie.org>
-X-Patchwork-Id: 9778837
-Message-Id: <20170609153436.18370-1-wens@csie.org>
-To: Maxime Ripard <maxime.ripard@free-electrons.com>
+Subject: [v5,18/20] arm: sunxi: Enable dwmac-sun8i driver on sunxi_defconfig
+From: Corentin LABBE <clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706507
+Message-Id: <20170501124520.3769-19-clabbe.montjoie@gmail.com>
+To: robh+dt@kernel.org, mark.rutland@arm.com,
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
- Chen-Yu Tsai <wens@csie.org>, Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-sunxi@googlegroups.co, linux-arm-kernel@lists.infradead.org
-Date: Fri, 9 Jun 2017 23:34:36 +0800
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:18 +0200
+
+Enable the dwmac-sun8i driver in the sunxi default configuration
-The Orange Pi Plus 2E, unlike the Orange Pi PC and PC Plus which its
-schematics are based on, uses an external Realtek RTL8211E PHY in
-RGMII mode, with a GPIO enabling the regulator for I/O signalling
-power supplies. The PHY's main power supply is enabled by the main
-5V power supply.
+Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
+---
+ arch/arm/configs/sunxi_defconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm/configs/sunxi_defconfig b/arch/arm/configs/sunxi_defconfig
+index 5cd5dd70..504e022 100644
+--- a/arch/arm/configs/sunxi_defconfig
++++ b/arch/arm/configs/sunxi_defconfig
+@@ -40,6 +40,7 @@ CONFIG_ATA=y
+ CONFIG_AHCI_SUNXI=y
+ CONFIG_NETDEVICES=y
+ CONFIG_SUN4I_EMAC=y
++CONFIG_DWMAC_SUN8I=y
+ # CONFIG_NET_VENDOR_ARC is not set
+ # CONFIG_NET_CADENCE is not set
+ # CONFIG_NET_VENDOR_BROADCOM is not set
+
+From patchwork Mon May 1 12:45:19 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v5,
+ 19/20] arm: multi_v7: Enable dwmac-sun8i driver on multi_v7_defconfig
+From: Corentin LABBE <clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706513
+Message-Id: <20170501124520.3769-20-clabbe.montjoie@gmail.com>
+To: robh+dt@kernel.org, mark.rutland@arm.com,
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:19 +0200
-Add the regulator and PHY nodes, and override the PHY phandle under
-the EMAC node, so that the EMAC works properly on this board.
+Enable the dwmac-sun8i driver in the multi_v7 default configuration
-Signed-off-by: Chen-Yu Tsai <wens@csie.org>
+Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
- arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts | 26 ++++++++++++++++++++++++++
- 1 file changed, 26 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
-index 5851a47a3089..80026f3caafc 100644
---- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
-+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts
-@@ -50,4 +50,30 @@
- / {
- model = "Xunlong Orange Pi Plus 2E";
- compatible = "xunlong,orangepi-plus2e", "allwinner,sun8i-h3";
-+
-+ reg_gmac_3v3: gmac-3v3 {
-+ compatible = "regulator-fixed";
-+ regulator-name = "gmac-3v3";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ startup-delay-us = <100000>;
-+ enable-active-high;
-+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; /* PD6 */
-+ };
-+};
-+
-+&emac {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&emac_rgmii_pins>;
-+ phy-supply = <&reg_gmac_3v3>;
-+ phy-handle = <&ext_rgmii_phy>;
-+ phy-mode = "rgmii";
-+ status = "okay";
-+};
-+
-+&mdio {
-+ ext_rgmii_phy: ethernet-phy@1 {
-+ compatible = "ethernet-phy-ieee802.3-c22";
-+ reg = <1>;
-+ };
- };
+ arch/arm/configs/multi_v7_defconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig
+index 2685e03..6da6af8 100644
+--- a/arch/arm/configs/multi_v7_defconfig
++++ b/arch/arm/configs/multi_v7_defconfig
+@@ -257,6 +257,7 @@ CONFIG_SMSC911X=y
+ CONFIG_STMMAC_ETH=y
+ CONFIG_STMMAC_PLATFORM=y
+ CONFIG_DWMAC_DWC_QOS_ETH=y
++CONFIG_DWMAC_SUN8I=y
+ CONFIG_TI_CPSW=y
+ CONFIG_XILINX_EMACLITE=y
+ CONFIG_AT803X_PHY=y
+
+From patchwork Mon May 1 12:45:20 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v5,20/20] arm64: defconfig: Enable dwmac-sun8i driver on defconfig
+From: Corentin LABBE <clabbe.montjoie@gmail.com>
+X-Patchwork-Id: 9706505
+Message-Id: <20170501124520.3769-21-clabbe.montjoie@gmail.com>
+To: robh+dt@kernel.org, mark.rutland@arm.com,
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ linux@armlinux.org.uk, catalin.marinas@arm.com,
+ will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
+Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
+ netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
+ Corentin Labbe <clabbe.montjoie@gmail.com>
+Date: Mon, 1 May 2017 14:45:20 +0200
+
+Enable the dwmac-sun8i ethernet driver as a module in the ARM64 defconfig.
+
+Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
+---
+ arch/arm64/configs/defconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
+index ce07285..4575fbb 100644
+--- a/arch/arm64/configs/defconfig
++++ b/arch/arm64/configs/defconfig
+@@ -193,6 +193,7 @@ CONFIG_RAVB=y
+ CONFIG_SMC91X=y
+ CONFIG_SMSC911X=y
+ CONFIG_STMMAC_ETH=m
++CONFIG_DWMAC_SUN8I=m
+ CONFIG_MDIO_BUS_MUX_MMIOREG=y
+ CONFIG_MESON_GXL_PHY=m
+ CONFIG_MICREL_PHY=y
From patchwork Mon Jun 5 19:21:26 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
@@ -2402,60 +2390,89 @@ index 883072b611fa..d756ff825116 100644
&mmc0 {
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
-From patchwork Wed May 31 07:18:40 2017
+From patchwork Mon Jun 5 19:21:28 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
-Subject: [v6,09/21] arm: sun8i: orangepi-zero: Enable dwmac-sun8i
+Subject: [3/5] ARM: sun50i: orangepi-pc2: Enable dwmac-sun8i
From: Corentin LABBE <clabbe.montjoie@gmail.com>
-X-Patchwork-Id: 9756075
-Message-Id: <20170531071852.12422-10-clabbe.montjoie@gmail.com>
-To: robh+dt@kernel.org, mark.rutland@arm.com,
- maxime.ripard@free-electrons.com,
- wens@csie.org, linux@armlinux.org.uk, catalin.marinas@arm.com,
- will.deacon@arm.com, peppe.cavallaro@st.com, alexandre.torgue@st.com
-Cc: devicetree@vger.kernel.org, netdev@vger.kernel.org,
- linux-kernel@vger.kernel.org, linux-sunxi@googlegroups.com,
+X-Patchwork-Id: 9767347
+Message-Id: <20170605192130.25320-4-clabbe.montjoie@gmail.com>
+To: robh+dt@kernel.org, mark.rutland@arm.com, linux@armlinux.org.uk,
+ maxime.ripard@free-electrons.com, wens@csie.org,
+ catalin.marinas@arm.com, will.deacon@arm.com
+Cc: devicetree@vger.kernel.org, linux-sunxi@googlegroups.com,
Corentin Labbe <clabbe.montjoie@gmail.com>,
- linux-arm-kernel@lists.infradead.org
-Date: Wed, 31 May 2017 09:18:40 +0200
-
-The dwmac-sun8i hardware is present on the Orange PI Zero.
-It uses the internal PHY.
+ linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org
+Date: Mon, 5 Jun 2017 21:21:28 +0200
-This patch create the needed emac node.
+The dwmac-sun8i hardware is present on the Orange PI PC2.
+It uses an external PHY rtl8211e via RGMII.
+This patch create the needed regulator, emac and phy nodes.
Signed-off-by: Corentin Labbe <clabbe.montjoie@gmail.com>
---
- arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
-index 9e8b082c134f..dd3525a0f06a 100644
---- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
-+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
-@@ -57,6 +57,7 @@
+ .../boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts | 27 ++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
+index dfecc17dcc92..a8296feee884 100644
+--- a/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
++++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts
+@@ -59,6 +59,7 @@
+ };
+
aliases {
- serial0 = &uart0;
- /* ethernet0 is the H3 emac, defined in sun8i-h3.dtsi */
+ ethernet0 = &emac;
- ethernet1 = &xr819;
+ serial0 = &uart0;
};
-@@ -103,6 +104,13 @@
+@@ -91,6 +92,16 @@
+ };
+ };
+
++ reg_gmac_3v3: gmac-3v3 {
++ compatible = "regulator-fixed";
++ regulator-name = "gmac-3v3";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ startup-delay-us = <100000>;
++ enable-active-high;
++ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
++ };
++
+ reg_usb0_vbus: usb0-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "usb0-vbus";
+@@ -126,12 +137,28 @@
status = "okay";
};
+&emac {
-+ phy-handle = <&int_mii_phy>;
-+ phy-mode = "mii";
-+ allwinner,leds-active-low;
++ pinctrl-names = "default";
++ pinctrl-0 = <&emac_rgmii_pins>;
++ phy-supply = <&reg_gmac_3v3>;
++ phy-handle = <&ext_rgmii_phy>;
++ phy-mode = "rgmii";
+ status = "okay";
+};
+
+ &ir {
+ pinctrl-names = "default";
+ pinctrl-0 = <&ir_pins_a>;
+ status = "okay";
+ };
+
++&mdio {
++ ext_rgmii_phy: ethernet-phy@1 {
++ compatible = "ethernet-phy-ieee802.3-c22";
++ reg = <1>;
++ };
++};
++
&mmc0 {
pinctrl-names = "default";
- pinctrl-0 = <&mmc0_pins_a>;
+ pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
From patchwork Wed May 31 07:18:44 2017
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
diff --git a/CVE-2017-11473.patch b/CVE-2017-11473.patch
new file mode 100644
index 000000000..e3e0658a4
--- /dev/null
+++ b/CVE-2017-11473.patch
@@ -0,0 +1,48 @@
+From 70ac67826602edf8c0ccb413e5ba7eacf597a60c Mon Sep 17 00:00:00 2001
+From: Seunghun Han <kkamagui@gmail.com>
+Date: Tue, 18 Jul 2017 20:03:51 +0900
+Subject: x86/acpi: Prevent out of bound access caused by broken ACPI tables
+
+The bus_irq argument of mp_override_legacy_irq() is used as the index into
+the isa_irq_to_gsi[] array. The bus_irq argument originates from
+ACPI_MADT_TYPE_IO_APIC and ACPI_MADT_TYPE_INTERRUPT items in the ACPI
+tables, but is nowhere sanity checked.
+
+That allows broken or malicious ACPI tables to overwrite memory, which
+might cause malfunction, panic or arbitrary code execution.
+
+Add a sanity check and emit a warning when that triggers.
+
+[ tglx: Added warning and rewrote changelog ]
+
+Signed-off-by: Seunghun Han <kkamagui@gmail.com>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Cc: security@kernel.org
+Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
+Cc: stable@vger.kernel.org
+---
+ arch/x86/kernel/acpi/boot.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
+index 6bb6806..7491e73 100644
+--- a/arch/x86/kernel/acpi/boot.c
++++ b/arch/x86/kernel/acpi/boot.c
+@@ -347,6 +347,14 @@ static void __init mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger,
+ struct mpc_intsrc mp_irq;
+
+ /*
++ * Check bus_irq boundary.
++ */
++ if (bus_irq >= NR_IRQS_LEGACY) {
++ pr_warn("Invalid bus_irq %u for legacy override\n", bus_irq);
++ return;
++ }
++
++ /*
+ * Convert 'gsi' to 'ioapic.pin'.
+ */
+ ioapic = mp_find_ioapic(gsi);
+--
+cgit v1.1
+
diff --git a/CVE-2017-7645.patch b/CVE-2017-7645.patch
deleted file mode 100644
index 0be019cc3..000000000
--- a/CVE-2017-7645.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From: "J. Bruce Fields" <bfields@redhat.com>
-Date: 2017-04-14 15:04:40
-Subject: [PATCH] nfsd: check for oversized NFSv2/v3 arguments
-
-A client can append random data to the end of an NFSv2 or NFSv3 RPC call
-without our complaining; we'll just stop parsing at the end of the
-expected data and ignore the rest.
-
-Encoded arguments and replies are stored together in an array of pages,
-and if a call is too large it could leave inadequate space for the
-reply. This is normally OK because NFS RPC's typically have either
-short arguments and long replies (like READ) or long arguments and short
-replies (like WRITE). But a client that sends an incorrectly long reply
-can violate those assumptions. This was observed to cause crashes.
-
-So, insist that the argument not be any longer than we expect.
-
-Also, several operations increment rq_next_page in the decode routine
-before checking the argument size, which can leave rq_next_page pointing
-well past the end of the page array, causing trouble later in
-svc_free_pages.
-
-As followup we may also want to rewrite the encoding routines to check
-more carefully that they aren't running off the end of the page array.
-
-Reported-by: Tuomas Haanpää <thaan@synopsys.com>
-Reported-by: Ari Kauppi <ari@synopsys.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: J. Bruce Fields <bfields@redhat.com>
----
- fs/nfsd/nfs3xdr.c | 23 +++++++++++++++++------
- fs/nfsd/nfsxdr.c | 13 ++++++++++---
- include/linux/sunrpc/svc.h | 3 +--
- 3 files changed, 28 insertions(+), 11 deletions(-)
-
-diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c
-index dba2ff8eaa68..be66bcadfaea 100644
---- a/fs/nfsd/nfs3xdr.c
-+++ b/fs/nfsd/nfs3xdr.c
-@@ -334,8 +334,11 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- if (!p)
- return 0;
- p = xdr_decode_hyper(p, &args->offset);
--
- args->count = ntohl(*p++);
-+
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- len = min(args->count, max_blocksize);
-
- /* set up the kvec */
-@@ -349,7 +352,7 @@ nfs3svc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- v++;
- }
- args->vlen = v;
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -536,9 +539,11 @@ nfs3svc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p,
- p = decode_fh(p, &args->fh);
- if (!p)
- return 0;
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -564,10 +569,14 @@ nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p,
- args->verf = p; p += 2;
- args->dircount = ~0;
- args->count = ntohl(*p++);
-+
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- args->count = min_t(u32, args->count, PAGE_SIZE);
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -585,6 +594,9 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p,
- args->dircount = ntohl(*p++);
- args->count = ntohl(*p++);
-
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- len = args->count = min(args->count, max_blocksize);
- while (len > 0) {
- struct page *p = *(rqstp->rq_next_page++);
-@@ -592,8 +604,7 @@ nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, __be32 *p,
- args->buffer = page_address(p);
- len -= PAGE_SIZE;
- }
--
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-diff --git a/fs/nfsd/nfsxdr.c b/fs/nfsd/nfsxdr.c
-index 41b468a6a90f..79268369f7b3 100644
---- a/fs/nfsd/nfsxdr.c
-+++ b/fs/nfsd/nfsxdr.c
-@@ -257,6 +257,9 @@ nfssvc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- len = args->count = ntohl(*p++);
- p++; /* totalcount - unused */
-
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
-+
- len = min_t(unsigned int, len, NFSSVC_MAXBLKSIZE_V2);
-
- /* set up somewhere to store response.
-@@ -272,7 +275,7 @@ nfssvc_decode_readargs(struct svc_rqst *rqstp, __be32 *p,
- v++;
- }
- args->vlen = v;
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -360,9 +363,11 @@ nfssvc_decode_readlinkargs(struct svc_rqst *rqstp, __be32 *p, struct nfsd_readli
- p = decode_fh(p, &args->fh);
- if (!p)
- return 0;
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- int
-@@ -400,9 +405,11 @@ nfssvc_decode_readdirargs(struct svc_rqst *rqstp, __be32 *p,
- args->cookie = ntohl(*p++);
- args->count = ntohl(*p++);
- args->count = min_t(u32, args->count, PAGE_SIZE);
-+ if (!xdr_argsize_check(rqstp, p))
-+ return 0;
- args->buffer = page_address(*(rqstp->rq_next_page++));
-
-- return xdr_argsize_check(rqstp, p);
-+ return 1;
- }
-
- /*
-diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
-index e770abeed32d..6ef19cf658b4 100644
---- a/include/linux/sunrpc/svc.h
-+++ b/include/linux/sunrpc/svc.h
-@@ -336,8 +336,7 @@ xdr_argsize_check(struct svc_rqst *rqstp, __be32 *p)
- {
- char *cp = (char *)p;
- struct kvec *vec = &rqstp->rq_arg.head[0];
-- return cp >= (char*)vec->iov_base
-- && cp <= (char*)vec->iov_base + vec->iov_len;
-+ return cp == (char *)vec->iov_base + vec->iov_len;
- }
-
- static inline int
---
-2.9.3
-
---
-To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
-the body of a message to majordomo@vger.kernel.org
-More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch b/HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch
new file mode 100644
index 000000000..d7d626972
--- /dev/null
+++ b/HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch
@@ -0,0 +1,74 @@
+From patchwork Sun Jul 23 01:15:09 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: HID: rmi: Make sure the HID device is opened on resume
+From: Lyude <lyude@redhat.com>
+X-Patchwork-Id: 9858267
+Message-Id: <20170723011509.23651-1-lyude@redhat.com>
+To: linux-input@vger.kernel.org
+Cc: Lyude <lyude@redhat.com>, Andrew Duggan <aduggan@synaptics.com>,
+ stable@vger.kernel.org, Jiri Kosina <jikos@kernel.org>,
+ Benjamin Tissoires <benjamin.tissoires@redhat.com>,
+ linux-kernel@vger.kernel.org
+Date: Sat, 22 Jul 2017 21:15:09 -0400
+
+So it looks like that suspend/resume has actually always been broken on
+hid-rmi. The fact it worked was a rather silly coincidence that was
+relying on the HID device to already be opened upon resume. This means
+that so long as anything was reading the /dev/input/eventX node for for
+an RMI device, it would suspend and resume correctly. As well, if
+nothing happened to be keeping the HID device away it would shut off,
+then the RMI driver would get confused on resume when it stopped
+responding and explode.
+
+So, call hid_hw_open() in rmi_post_resume() so we make sure that the
+device is alive before we try talking to it.
+
+This fixes RMI device suspend/resume over HID.
+
+Signed-off-by: Lyude <lyude@redhat.com>
+Cc: Andrew Duggan <aduggan@synaptics.com>
+Cc: stable@vger.kernel.org
+---
+ drivers/hid/hid-rmi.c | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
+index 5b40c2614599..e7d124f9a27f 100644
+--- a/drivers/hid/hid-rmi.c
++++ b/drivers/hid/hid-rmi.c
+@@ -431,22 +431,29 @@ static int rmi_post_resume(struct hid_device *hdev)
+ {
+ struct rmi_data *data = hid_get_drvdata(hdev);
+ struct rmi_device *rmi_dev = data->xport.rmi_dev;
+- int ret;
++ int ret = 0;
+
+ if (!(data->device_flags & RMI_DEVICE))
+ return 0;
+
+- ret = rmi_reset_attn_mode(hdev);
++ /* Make sure the HID device is ready to receive events */
++ ret = hid_hw_open(hdev);
+ if (ret)
+ return ret;
+
++ ret = rmi_reset_attn_mode(hdev);
++ if (ret)
++ goto out;
++
+ ret = rmi_driver_resume(rmi_dev, false);
+ if (ret) {
+ hid_warn(hdev, "Failed to resume device: %d\n", ret);
+- return ret;
++ goto out;
+ }
+
+- return 0;
++out:
++ hid_hw_close(hdev);
++ return ret;
+ }
+ #endif /* CONFIG_PM */
+
diff --git a/KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch b/KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch
new file mode 100644
index 000000000..1cc1e5370
--- /dev/null
+++ b/KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch
@@ -0,0 +1,95 @@
+From fb2ac204a70da565de9ef9a9d6d69a40c2d59727 Mon Sep 17 00:00:00 2001
+From: David Howells <dhowells@redhat.com>
+Date: Fri, 5 May 2017 08:21:56 +0100
+Subject: [PATCH] KEYS: Allow unrestricted boot-time addition of keys to
+ secondary keyring
+
+Allow keys to be added to the system secondary certificates keyring during
+kernel initialisation in an unrestricted fashion. Such keys are implicitly
+trusted and don't have their trust chains checked on link.
+
+This allows keys in the UEFI database to be added in secure boot mode for
+the purposes of module signing.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ certs/internal.h | 18 ++++++++++++++++++
+ certs/system_keyring.c | 33 +++++++++++++++++++++++++++++++++
+ 2 files changed, 51 insertions(+)
+ create mode 100644 certs/internal.h
+
+diff --git a/certs/internal.h b/certs/internal.h
+new file mode 100644
+index 0000000..5dcbefb
+--- /dev/null
++++ b/certs/internal.h
+@@ -0,0 +1,18 @@
++/* Internal definitions
++ *
++ * 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.
++ */
++
++/*
++ * system_keyring.c
++ */
++#ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
++extern void __init add_trusted_secondary_key(const char *source,
++ const void *data, size_t len);
++#endif
+diff --git a/certs/system_keyring.c b/certs/system_keyring.c
+index 6251d1b..5ac8ba6 100644
+--- a/certs/system_keyring.c
++++ b/certs/system_keyring.c
+@@ -18,6 +18,7 @@
+ #include <keys/asymmetric-type.h>
+ #include <keys/system_keyring.h>
+ #include <crypto/pkcs7.h>
++#include "internal.h"
+
+ static struct key *builtin_trusted_keys;
+ #ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
+@@ -265,3 +266,35 @@ int verify_pkcs7_signature(const void *data, size_t len,
+ EXPORT_SYMBOL_GPL(verify_pkcs7_signature);
+
+ #endif /* CONFIG_SYSTEM_DATA_VERIFICATION */
++
++#ifdef CONFIG_SECONDARY_TRUSTED_KEYRING
++/**
++ * add_trusted_secondary_key - Add to secondary keyring with no validation
++ * @source: Source of key
++ * @data: The blob holding the key
++ * @len: The length of the data blob
++ *
++ * Add a key to the secondary keyring without checking its trust chain. This
++ * is available only during kernel initialisation.
++ */
++void __init add_trusted_secondary_key(const char *source,
++ const void *data, size_t len)
++{
++ key_ref_t key;
++
++ key = key_create_or_update(make_key_ref(secondary_trusted_keys, 1),
++ "asymmetric",
++ NULL, data, len,
++ (KEY_POS_ALL & ~KEY_POS_SETATTR) |
++ KEY_USR_VIEW,
++ KEY_ALLOC_NOT_IN_QUOTA |
++ KEY_ALLOC_BYPASS_RESTRICTION);
++
++ if (IS_ERR(key))
++ pr_err("Problem loading %s X.509 certificate (%ld)\n",
++ source, PTR_ERR(key));
++ else
++ pr_notice("Loaded %s cert '%s' linked to secondary sys keyring\n",
++ source, key_ref_to_ptr(key)->description);
++}
++#endif /* CONFIG_SECONDARY_TRUSTED_KEYRING */
+--
+2.9.3
+
diff --git a/MODSIGN-Don-t-try-secure-boot-if-EFI-runtime-is-disa.patch b/MODSIGN-Don-t-try-secure-boot-if-EFI-runtime-is-disa.patch
deleted file mode 100644
index 6f5d8b6ab..000000000
--- a/MODSIGN-Don-t-try-secure-boot-if-EFI-runtime-is-disa.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 71db1b222ecdf6cb4356f6f1e2bd45cd2f0e85e1 Mon Sep 17 00:00:00 2001
-From: Laura Abbott <labbott@redhat.com>
-Date: Tue, 18 Oct 2016 13:58:44 -0700
-Subject: [PATCH] MODSIGN: Don't try secure boot if EFI runtime is disabled
-
-Secure boot depends on having EFI runtime variable access. The code
-does not handle a lack of runtime variables gracefully. Add a check
-to just bail out of EFI runtime is disabled.
-
-Signed-off-by: Laura Abbott <labbott@redhat.com>
----
- kernel/modsign_uefi.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/kernel/modsign_uefi.c b/kernel/modsign_uefi.c
-index a41da14..2bdaf76 100644
---- a/kernel/modsign_uefi.c
-+++ b/kernel/modsign_uefi.c
-@@ -71,6 +71,10 @@ static int __init load_uefi_certs(void)
- if (!efi_enabled(EFI_SECURE_BOOT))
- return 0;
-
-+ /* Things blow up if efi runtime is disabled */
-+ if (efi_runtime_disabled())
-+ return 0;
-+
- keyring = get_system_keyring();
- if (!keyring) {
- pr_err("MODSIGN: Couldn't get system keyring\n");
---
-2.7.4
-
diff --git a/MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch b/MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
index 76084d472..08195ff4e 100644
--- a/MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
+++ b/MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
@@ -1,7 +1,7 @@
-From 8a4535bcfe24d317be675e53cdc8c61d22fdc7f3 Mon Sep 17 00:00:00 2001
+From 90dc66270b02981b19a085c6a9184e3452b7b3e8 Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@fedoraproject.org>
-Date: Fri, 26 Oct 2012 12:42:16 -0400
-Subject: [PATCH 18/20] MODSIGN: Import certificates from UEFI Secure Boot
+Date: Fri, 5 May 2017 08:21:59 +0100
+Subject: [PATCH 3/4] MODSIGN: Import certificates from UEFI Secure Boot
Secure Boot stores a list of allowed certificates in the 'db' variable.
This imports those certificates into the system trusted keyring. This
@@ -11,104 +11,68 @@ variable, a user can allow a module signed with that certificate to
load. The shim UEFI bootloader has a similar certificate list stored
in the 'MokListRT' variable. We import those as well.
-In the opposite case, Secure Boot maintains a list of disallowed
-certificates in the 'dbx' variable. We load those certificates into
-the newly introduced system blacklist keyring and forbid any module
-signed with those from loading.
+Secure Boot also maintains a list of disallowed certificates in the 'dbx'
+variable. We load those certificates into the newly introduced system
+blacklist keyring and forbid any module signed with those from loading and
+forbid the use within the kernel of any key with a matching hash.
+
+This facility is enabled by setting CONFIG_LOAD_UEFI_KEYS.
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
+Signed-off-by: David Howells <dhowells@redhat.com>
---
- certs/system_keyring.c | 13 ++++++
- include/keys/system_keyring.h | 1 +
- init/Kconfig | 9 ++++
- kernel/Makefile | 3 ++
- kernel/modsign_uefi.c | 99 +++++++++++++++++++++++++++++++++++++++++++
- 5 files changed, 125 insertions(+)
- create mode 100644 kernel/modsign_uefi.c
+ certs/Kconfig | 16 ++++++
+ certs/Makefile | 4 ++
+ certs/load_uefi.c | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 188 insertions(+)
+ create mode 100644 certs/load_uefi.c
-diff --git a/certs/system_keyring.c b/certs/system_keyring.c
-index 787eeead2f57..4d9123ed5c07 100644
---- a/certs/system_keyring.c
-+++ b/certs/system_keyring.c
-@@ -30,6 +30,19 @@ extern __initconst const u8 system_certificate_list[];
- extern __initconst const unsigned long system_certificate_list_size;
-
- /**
-+ * get_system_keyring - Return a pointer to the system keyring
-+ *
-+ */
-+struct key *get_system_keyring(void)
-+{
-+ struct key *system_keyring = NULL;
-+
-+ system_keyring = builtin_trusted_keys;
-+ return system_keyring;
-+}
-+EXPORT_SYMBOL_GPL(get_system_keyring);
-+
-+/**
- * restrict_link_to_builtin_trusted - Restrict keyring addition by built in CA
- *
- * Restrict the addition of keys into a keyring based on the key-to-be-added
-diff --git a/include/keys/system_keyring.h b/include/keys/system_keyring.h
-index 5bc291a3d261..56ff5715ab67 100644
---- a/include/keys/system_keyring.h
-+++ b/include/keys/system_keyring.h
-@@ -36,6 +36,7 @@ extern int restrict_link_by_builtin_and_secondary_trusted(
- #ifdef CONFIG_SYSTEM_BLACKLIST_KEYRING
- extern struct key *system_blacklist_keyring;
- #endif
-+extern struct key *get_system_keyring(void);
-
- #ifdef CONFIG_IMA_BLACKLIST_KEYRING
- extern struct key *ima_blacklist_keyring;
-diff --git a/init/Kconfig b/init/Kconfig
-index 461ad575a608..93646fd7b1c8 100644
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -2009,6 +2009,15 @@ config MODULE_SIG_ALL
- comment "Do not forget to sign required modules with scripts/sign-file"
- depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL
-
-+config MODULE_SIG_UEFI
-+ bool "Allow modules signed with certs stored in UEFI"
-+ depends on MODULE_SIG && SYSTEM_BLACKLIST_KEYRING && EFI
-+ select EFI_SIGNATURE_LIST_PARSER
+diff --git a/certs/Kconfig b/certs/Kconfig
+index 630ae09..edf9f75 100644
+--- a/certs/Kconfig
++++ b/certs/Kconfig
+@@ -90,4 +90,20 @@ config EFI_SIGNATURE_LIST_PARSER
+ This option provides support for parsing EFI signature lists for
+ X.509 certificates and turning them into keys.
+
++config LOAD_UEFI_KEYS
++ bool "Load certs and blacklist from UEFI db for module checking"
++ depends on SYSTEM_BLACKLIST_KEYRING
++ depends on SECONDARY_TRUSTED_KEYRING
++ depends on EFI
++ depends on EFI_SIGNATURE_LIST_PARSER
+ help
-+ This will import certificates stored in UEFI and allow modules
-+ signed with those to be loaded. It will also disallow loading
-+ of modules stored in the UEFI dbx variable.
-+
- choice
- prompt "Which hash algorithm should modules be signed with?"
- depends on MODULE_SIG
-diff --git a/kernel/Makefile b/kernel/Makefile
-index eb26e12c6c2a..e0c2268cb97e 100644
---- a/kernel/Makefile
-+++ b/kernel/Makefile
-@@ -57,6 +57,7 @@ endif
- obj-$(CONFIG_UID16) += uid16.o
- obj-$(CONFIG_MODULES) += module.o
- obj-$(CONFIG_MODULE_SIG) += module_signing.o
-+obj-$(CONFIG_MODULE_SIG_UEFI) += modsign_uefi.o
- obj-$(CONFIG_KALLSYMS) += kallsyms.o
- obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
- obj-$(CONFIG_KEXEC_CORE) += kexec_core.o
-@@ -113,6 +114,8 @@ obj-$(CONFIG_MEMBARRIER) += membarrier.o
-
- obj-$(CONFIG_HAS_IOMEM) += memremap.o
-
-+$(obj)/modsign_uefi.o: KBUILD_CFLAGS += -fshort-wchar
-+
- $(obj)/configs.o: $(obj)/config_data.h
-
- targets += config_data.gz
-diff --git a/kernel/modsign_uefi.c b/kernel/modsign_uefi.c
++ If the kernel is booted in secure boot mode, this option will cause
++ the kernel to load the certificates from the UEFI db and MokListRT
++ into the secondary trusted keyring. It will also load any X.509
++ SHA256 hashes in the dbx list into the blacklist.
++
++ The effect of this is that, if the kernel is booted in secure boot
++ mode, modules signed with UEFI-stored keys will be permitted to be
++ loaded and keys that match the blacklist will be rejected.
++
+ endmenu
+diff --git a/certs/Makefile b/certs/Makefile
+index 738151a..a5e057a 100644
+--- a/certs/Makefile
++++ b/certs/Makefile
+@@ -11,6 +11,10 @@ obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_nohashes.o
+ endif
+ obj-$(CONFIG_EFI_SIGNATURE_LIST_PARSER) += efi_parser.o
+
++obj-$(CONFIG_LOAD_UEFI_KEYS) += load_uefi.o
++$(obj)/load_uefi.o: KBUILD_CFLAGS += -fshort-wchar
++
++
+ ifeq ($(CONFIG_SYSTEM_TRUSTED_KEYRING),y)
+
+ $(eval $(call config_filename,SYSTEM_TRUSTED_KEYS))
+diff --git a/certs/load_uefi.c b/certs/load_uefi.c
new file mode 100644
-index 000000000000..fe4a6f2bf10a
+index 0000000..b44e464
--- /dev/null
-+++ b/kernel/modsign_uefi.c
-@@ -0,0 +1,99 @@
++++ b/certs/load_uefi.c
+@@ -0,0 +1,168 @@
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/cred.h>
@@ -117,14 +81,22 @@ index 000000000000..fe4a6f2bf10a
+#include <linux/slab.h>
+#include <keys/asymmetric-type.h>
+#include <keys/system_keyring.h>
-+#include "module-internal.h"
++#include "internal.h"
+
-+static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, unsigned long *size)
++static __initdata efi_guid_t efi_cert_x509_guid = EFI_CERT_X509_GUID;
++static __initdata efi_guid_t efi_cert_x509_sha256_guid = EFI_CERT_X509_SHA256_GUID;
++static __initdata efi_guid_t efi_cert_sha256_guid = EFI_CERT_SHA256_GUID;
++
++/*
++ * Get a certificate list blob from the named EFI variable.
++ */
++static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
++ unsigned long *size)
+{
+ efi_status_t status;
+ unsigned long lsize = 4;
+ unsigned long tmpdb[4];
-+ void *db = NULL;
++ void *db;
+
+ status = efi.get_variable(name, guid, NULL, &lsize, &tmpdb);
+ if (status != EFI_BUFFER_TOO_SMALL) {
@@ -135,23 +107,89 @@ index 000000000000..fe4a6f2bf10a
+ db = kmalloc(lsize, GFP_KERNEL);
+ if (!db) {
+ pr_err("Couldn't allocate memory for uefi cert list\n");
-+ goto out;
++ return NULL;
+ }
+
+ status = efi.get_variable(name, guid, NULL, &lsize, db);
+ if (status != EFI_SUCCESS) {
+ kfree(db);
-+ db = NULL;
+ pr_err("Error reading db var: 0x%lx\n", status);
++ return NULL;
+ }
-+out:
++
+ *size = lsize;
+ return db;
+}
+
+/*
-+ * * Load the certs contained in the UEFI databases
-+ * */
++ * Blacklist an X509 TBS hash.
++ */
++static __init void uefi_blacklist_x509_tbs(const char *source,
++ const void *data, size_t len)
++{
++ char *hash, *p;
++
++ hash = kmalloc(4 + len * 2 + 1, GFP_KERNEL);
++ if (!hash)
++ return;
++ p = memcpy(hash, "tbs:", 4);
++ p += 4;
++ bin2hex(p, data, len);
++ p += len * 2;
++ *p = 0;
++
++ mark_hash_blacklisted(hash);
++ kfree(hash);
++}
++
++/*
++ * Blacklist the hash of an executable.
++ */
++static __init void uefi_blacklist_binary(const char *source,
++ const void *data, size_t len)
++{
++ char *hash, *p;
++
++ hash = kmalloc(4 + len * 2 + 1, GFP_KERNEL);
++ if (!hash)
++ return;
++ p = memcpy(hash, "bin:", 4);
++ p += 4;
++ bin2hex(p, data, len);
++ p += len * 2;
++ *p = 0;
++
++ mark_hash_blacklisted(hash);
++ kfree(hash);
++}
++
++/*
++ * Return the appropriate handler for particular signature list types found in
++ * the UEFI db and MokListRT tables.
++ */
++static __init efi_element_handler_t get_handler_for_db(const efi_guid_t *sig_type)
++{
++ if (efi_guidcmp(*sig_type, efi_cert_x509_guid) == 0)
++ return add_trusted_secondary_key;
++ return 0;
++}
++
++/*
++ * Return the appropriate handler for particular signature list types found in
++ * the UEFI dbx and MokListXRT tables.
++ */
++static __init efi_element_handler_t get_handler_for_dbx(const efi_guid_t *sig_type)
++{
++ if (efi_guidcmp(*sig_type, efi_cert_x509_sha256_guid) == 0)
++ return uefi_blacklist_x509_tbs;
++ if (efi_guidcmp(*sig_type, efi_cert_sha256_guid) == 0)
++ return uefi_blacklist_binary;
++ return 0;
++}
++
++/*
++ * Load the certs contained in the UEFI databases
++ */
+static int __init load_uefi_certs(void)
+{
+ efi_guid_t secure_var = EFI_IMAGE_SECURITY_DATABASE_GUID;
@@ -159,17 +197,9 @@ index 000000000000..fe4a6f2bf10a
+ void *db = NULL, *dbx = NULL, *mok = NULL;
+ unsigned long dbsize = 0, dbxsize = 0, moksize = 0;
+ int rc = 0;
-+ struct key *keyring = NULL;
+
-+ /* Check if SB is enabled and just return if not */
-+ if (!efi_enabled(EFI_SECURE_BOOT))
-+ return 0;
-+
-+ keyring = get_system_keyring();
-+ if (!keyring) {
-+ pr_err("MODSIGN: Couldn't get system keyring\n");
-+ return -EINVAL;
-+ }
++ if (!efi.get_variable)
++ return false;
+
+ /* Get db, MokListRT, and dbx. They might not exist, so it isn't
+ * an error if we can't get them.
@@ -178,7 +208,8 @@ index 000000000000..fe4a6f2bf10a
+ if (!db) {
+ pr_err("MODSIGN: Couldn't get UEFI db list\n");
+ } else {
-+ rc = parse_efi_signature_list(db, dbsize, keyring);
++ rc = parse_efi_signature_list("UEFI:db",
++ db, dbsize, get_handler_for_db);
+ if (rc)
+ pr_err("Couldn't parse db signatures: %d\n", rc);
+ kfree(db);
@@ -188,7 +219,8 @@ index 000000000000..fe4a6f2bf10a
+ if (!mok) {
+ pr_info("MODSIGN: Couldn't get UEFI MokListRT\n");
+ } else {
-+ rc = parse_efi_signature_list(mok, moksize, keyring);
++ rc = parse_efi_signature_list("UEFI:MokListRT",
++ mok, moksize, get_handler_for_db);
+ if (rc)
+ pr_err("Couldn't parse MokListRT signatures: %d\n", rc);
+ kfree(mok);
@@ -198,8 +230,9 @@ index 000000000000..fe4a6f2bf10a
+ if (!dbx) {
+ pr_info("MODSIGN: Couldn't get UEFI dbx list\n");
+ } else {
-+ rc = parse_efi_signature_list(dbx, dbxsize,
-+ system_blacklist_keyring);
++ rc = parse_efi_signature_list("UEFI:dbx",
++ dbx, dbxsize,
++ get_handler_for_dbx);
+ if (rc)
+ pr_err("Couldn't parse dbx signatures: %d\n", rc);
+ kfree(dbx);
diff --git a/MODSIGN-Support-not-importing-certs-from-db.patch b/MODSIGN-Support-not-importing-certs-from-db.patch
index d7087b5e7..13fecd2f2 100644
--- a/MODSIGN-Support-not-importing-certs-from-db.patch
+++ b/MODSIGN-Support-not-importing-certs-from-db.patch
@@ -1,62 +1,62 @@
-From 9d2e5c61d5adcf7911f67ed44a1b0ff881f175bb Mon Sep 17 00:00:00 2001
+From 9f1958a0cc911e1f79b2733ee5029dbd819ff328 Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@fedoraproject.org>
-Date: Thu, 3 Oct 2013 10:14:23 -0400
-Subject: [PATCH 19/20] MODSIGN: Support not importing certs from db
+Date: Fri, 5 May 2017 08:21:59 +0100
+Subject: [PATCH 4/4] MODSIGN: Allow the "db" UEFI variable to be suppressed
If a user tells shim to not use the certs/hashes in the UEFI db variable
-for verification purposes, shim will set a UEFI variable called MokIgnoreDB.
-Have the uefi import code look for this and not import things from the db
-variable.
+for verification purposes, shim will set a UEFI variable called
+MokIgnoreDB. Have the uefi import code look for this and ignore the db
+variable if it is found.
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
+Signed-off-by: David Howells <dhowells@redhat.com>
---
- kernel/modsign_uefi.c | 40 +++++++++++++++++++++++++++++++---------
- 1 file changed, 31 insertions(+), 9 deletions(-)
+ certs/load_uefi.c | 44 ++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 34 insertions(+), 10 deletions(-)
-diff --git a/kernel/modsign_uefi.c b/kernel/modsign_uefi.c
-index fe4a6f2bf10a..a41da14b1ffd 100644
---- a/kernel/modsign_uefi.c
-+++ b/kernel/modsign_uefi.c
-@@ -8,6 +8,23 @@
- #include <keys/system_keyring.h>
- #include "module-internal.h"
-
-+static __init int check_ignore_db(void)
+diff --git a/certs/load_uefi.c b/certs/load_uefi.c
+index b44e464..3d88459 100644
+--- a/certs/load_uefi.c
++++ b/certs/load_uefi.c
+@@ -13,6 +13,26 @@ static __initdata efi_guid_t efi_cert_x509_sha256_guid = EFI_CERT_X509_SHA256_GU
+ static __initdata efi_guid_t efi_cert_sha256_guid = EFI_CERT_SHA256_GUID;
+
+ /*
++ * Look to see if a UEFI variable called MokIgnoreDB exists and return true if
++ * it does.
++ *
++ * This UEFI variable is set by the shim if a user tells the shim to not use
++ * the certs/hashes in the UEFI db variable for verification purposes. If it
++ * is set, we should ignore the db variable also and the true return indicates
++ * this.
++ */
++static __init bool uefi_check_ignore_db(void)
+{
+ efi_status_t status;
+ unsigned int db = 0;
+ unsigned long size = sizeof(db);
+ efi_guid_t guid = EFI_SHIM_LOCK_GUID;
+
-+ /* Check and see if the MokIgnoreDB variable exists. If that fails
-+ * then we don't ignore DB. If it succeeds, we do.
-+ */
+ status = efi.get_variable(L"MokIgnoreDB", &guid, NULL, &size, &db);
-+ if (status != EFI_SUCCESS)
-+ return 0;
-+
-+ return 1;
++ return status == EFI_SUCCESS;
+}
+
- static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid, unsigned long *size)
++/*
+ * Get a certificate list blob from the named EFI variable.
+ */
+ static __init void *get_cert_list(efi_char16_t *name, efi_guid_t *guid,
+@@ -113,7 +133,9 @@ static __init efi_element_handler_t get_handler_for_dbx(const efi_guid_t *sig_ty
+ }
+
+ /*
+- * Load the certs contained in the UEFI databases
++ * Load the certs contained in the UEFI databases into the secondary trusted
++ * keyring and the UEFI blacklisted X.509 cert SHA256 hashes into the blacklist
++ * keyring.
+ */
+ static int __init load_uefi_certs(void)
{
- efi_status_t status;
-@@ -47,7 +64,7 @@ static int __init load_uefi_certs(void)
- efi_guid_t mok_var = EFI_SHIM_LOCK_GUID;
- void *db = NULL, *dbx = NULL, *mok = NULL;
- unsigned long dbsize = 0, dbxsize = 0, moksize = 0;
-- int rc = 0;
-+ int ignore_db, rc = 0;
- struct key *keyring = NULL;
-
- /* Check if SB is enabled and just return if not */
-@@ -60,17 +77,22 @@ static int __init load_uefi_certs(void)
- return -EINVAL;
- }
-
-+ /* See if the user has setup Ignore DB mode */
-+ ignore_db = check_ignore_db();
-+
+@@ -129,15 +151,17 @@ static int __init load_uefi_certs(void)
/* Get db, MokListRT, and dbx. They might not exist, so it isn't
* an error if we can't get them.
*/
@@ -64,22 +64,24 @@ index fe4a6f2bf10a..a41da14b1ffd 100644
- if (!db) {
- pr_err("MODSIGN: Couldn't get UEFI db list\n");
- } else {
-- rc = parse_efi_signature_list(db, dbsize, keyring);
+- rc = parse_efi_signature_list("UEFI:db",
+- db, dbsize, get_handler_for_db);
- if (rc)
- pr_err("Couldn't parse db signatures: %d\n", rc);
- kfree(db);
-+ if (!ignore_db) {
++ if (!uefi_check_ignore_db()) {
+ db = get_cert_list(L"db", &secure_var, &dbsize);
+ if (!db) {
+ pr_err("MODSIGN: Couldn't get UEFI db list\n");
+ } else {
-+ rc = parse_efi_signature_list(db, dbsize, keyring);
++ rc = parse_efi_signature_list("UEFI:db",
++ db, dbsize, get_handler_for_db);
+ if (rc)
+ pr_err("Couldn't parse db signatures: %d\n", rc);
+ kfree(db);
+ }
}
-
+
mok = get_cert_list(L"MokListRT", &mok_var, &moksize);
--
2.9.3
diff --git a/README.txt b/README.txt
index 516119838..6195bb56d 100644
--- a/README.txt
+++ b/README.txt
@@ -31,29 +31,30 @@ by make verrel
config heirarchy.
-----------------
Instead of having to maintain a config file for every arch variant we build on,
-the kernel spec uses a nested system of configs. Each option CONFIG_FOO is
-represented by a single file named CONFIG_FOO which contains the state (=y, =m,
-=n). These options are collected in the folder baseconfig. Architecture specifi
-options are set in nested folders. An option set in a nested folder will
-override the same option set in one of the higher levels.
-
-The individual CONFIG_FOO files only exist in the pkg-git repository. The RPM
-contains kernel-foo.config files which are the result of combining all the
-CONFIG_FOO files. The files are combined by running build_configs.sh. This
-script _must_ be run each time one of the options is changed.
-
-Example flow:
-
-# Enable the option CONFIG_ABC123 as a module for all arches
-echo "CONFIG_ABC123=m" > baseconfig/CONFIG_ABC1234
-# enable the option CONFIG_XYZ321 for only x86
-echo "# CONFIG_XYZ321 is not set" > baseconfig/CONFIG_XYZ321
-echo "CONFIG_XYZ321=m" > baseconfig/x86/CONFIG_XYZ321
-# regenerate the combined config files
-./build_configs.sh
-
-The file config_generation gives a listing of what folders go into each
-config file generated.
+the kernel spec uses a nested system of configs. At the top level, is
+config-generic. Add options here that should be present in every possible
+config on all architectures.
+
+Beneath this are per-arch overrides. For example config-x86-generic add
+additional x86 specific options, and also _override_ any options that were
+set in config-generic.
+
+The heirarchy looks like this..
+
+ config-generic
+ |
+ config-x86-generic
+ | |
+ config-x86-32-generic config-x86-64-generic
+
+An option set in a lower level will override the same option set in one
+of the higher levels.
+
+
+There exist two additional overrides, config-debug, and config-nodebug,
+which override -generic, and the per-arch overrides. It is documented
+further below.
+
debug options.
--------------
@@ -68,11 +69,14 @@ typically been run already, which sets up the following..
If we are building for rawhide, 'make debug' has been run, which changes
the status quo to:
- We only build one kernel 'kernel'
-- The debug options are always turned on.
+- The debug options from 'config-debug' are always turned on.
This is done to increase coverage testing, as not many people actually
run kernel-debug.
-The debug options are managed in a separate heierarchy under debugconfig. This
-works in a similar manner to baseconfig. More deeply nested folders, again,
-override options. The file config_generation gives a listing of what folders
-go into each config file generated.
+To add new debug options, add an option to _both_ config-debug and config-nodebug,
+and also new stanzas to the Makefile 'debug' and 'release' targets.
+
+Sometimes debug options get added to config-generic, or per-arch overrides
+instead of config-[no]debug. In this instance, the options should have no
+discernable performance impact, otherwise they belong in the debug files.
+
diff --git a/Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch b/Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch
new file mode 100644
index 000000000..235c39162
--- /dev/null
+++ b/Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch
@@ -0,0 +1,105 @@
+From 7d9e74c53a4376245b4f05006f42184a1540dee8 Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Tue, 18 Jul 2017 23:21:50 +0100
+Subject: [PATCH] Revert "ARM: dts: bcm2835: Add the DSI module nodes and
+ clocks."
+
+This reverts commit 4aba4cf820545ca8ec23785c7bac40bba7e505c5.
+---
+ arch/arm/boot/dts/bcm2835-rpi.dtsi | 8 -------
+ arch/arm/boot/dts/bcm283x.dtsi | 48 +++-----------------------------------
+ 2 files changed, 3 insertions(+), 53 deletions(-)
+
+diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+index a7b5ce133784..e99bb149065f 100644
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -98,11 +98,3 @@
+ power-domains = <&power RPI_POWER_DOMAIN_VEC>;
+ status = "okay";
+ };
+-
+-&dsi0 {
+- power-domains = <&power RPI_POWER_DOMAIN_DSI0>;
+-};
+-
+-&dsi1 {
+- power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
+-};
+diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
+index 9444a9a9ba10..ce14c9ddf574 100644
+--- a/arch/arm/boot/dts/bcm283x.dtsi
++++ b/arch/arm/boot/dts/bcm283x.dtsi
+@@ -98,13 +98,10 @@
+ #clock-cells = <1>;
+ reg = <0x7e101000 0x2000>;
+
+- /* CPRMAN derives almost everything from the
+- * platform's oscillator. However, the DSI
+- * pixel clocks come from the DSI analog PHY.
++ /* CPRMAN derives everything from the platform's
++ * oscillator.
+ */
+- clocks = <&clk_osc>,
+- <&dsi0 0>, <&dsi0 1>, <&dsi0 2>,
+- <&dsi1 0>, <&dsi1 1>, <&dsi1 2>;
++ clocks = <&clk_osc>;
+ };
+
+ rng@7e104000 {
+@@ -412,25 +409,6 @@
+ interrupts = <2 14>; /* pwa1 */
+ };
+
+- dsi0: dsi@7e209000 {
+- compatible = "brcm,bcm2835-dsi0";
+- reg = <0x7e209000 0x78>;
+- interrupts = <2 4>;
+- #address-cells = <1>;
+- #size-cells = <0>;
+- #clock-cells = <1>;
+-
+- clocks = <&clocks BCM2835_PLLA_DSI0>,
+- <&clocks BCM2835_CLOCK_DSI0E>,
+- <&clocks BCM2835_CLOCK_DSI0P>;
+- clock-names = "phy", "escape", "pixel";
+-
+- clock-output-names = "dsi0_byte",
+- "dsi0_ddr2",
+- "dsi0_ddr";
+-
+- };
+-
+ thermal: thermal@7e212000 {
+ compatible = "brcm,bcm2835-thermal";
+ reg = <0x7e212000 0x8>;
+@@ -497,26 +475,6 @@
+ interrupts = <2 1>;
+ };
+
+- dsi1: dsi@7e700000 {
+- compatible = "brcm,bcm2835-dsi1";
+- reg = <0x7e700000 0x8c>;
+- interrupts = <2 12>;
+- #address-cells = <1>;
+- #size-cells = <0>;
+- #clock-cells = <1>;
+-
+- clocks = <&clocks BCM2835_PLLD_DSI1>,
+- <&clocks BCM2835_CLOCK_DSI1E>,
+- <&clocks BCM2835_CLOCK_DSI1P>;
+- clock-names = "phy", "escape", "pixel";
+-
+- clock-output-names = "dsi1_byte",
+- "dsi1_ddr2",
+- "dsi1_ddr";
+-
+- status = "disabled";
+- };
+-
+ i2c1: i2c@7e804000 {
+ compatible = "brcm,bcm2835-i2c";
+ reg = <0x7e804000 0x1000>;
+--
+2.13.3
+
diff --git a/arm-hikey-fixWiFi.patch b/arm-hikey-fixWiFi.patch
deleted file mode 100644
index 19d28314b..000000000
--- a/arm-hikey-fixWiFi.patch
+++ /dev/null
@@ -1,500 +0,0 @@
-From c477ebe21fabe0010a2ed324ce3a1762c757d867 Mon Sep 17 00:00:00 2001
-From: Ulf Hansson <ulf.hansson@linaro.org>
-Date: Sat, 6 May 2017 11:41:30 +0200
-Subject: [PATCH 179/554] mmc: dt: pwrseq-simple: Invent power-off-delay-us
-
-During power off, after the GPIO pin has been asserted, some devices like
-the Wifi chip from TI, Wl18xx, needs a delay before the host continues with
-clock gating and turning off regulators as to follow a graceful shutdown
-sequence.
-
-Therefore invent an optional power-off-delay-us DT binding for
-mmc-pwrseq-simple, to allow us to support this constraint.
-
-Cc: devicetree@vger.kernel.org
-Cc: Rob Herring <robh+dt@kernel.org>
-Cc: linux-mmc@vger.kernel.org
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Acked-by: Arnd Bergmann <arnd@arndb.de>
----
- Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt
-index e25436861867..9029b45b8a22 100644
---- a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt
-+++ b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt
-@@ -18,6 +18,8 @@ Optional properties:
- "ext_clock" (External clock provided to the card).
- - post-power-on-delay-ms : Delay in ms after powering the card and
- de-asserting the reset-gpios (if any)
-+- power-off-delay-us : Delay in us after asserting the reset-gpios (if any)
-+ during power off of the card.
-
- Example:
-
---
-2.13.0
-
-From e9256e142f597edf90c68cec22db4c4aebaa27de Mon Sep 17 00:00:00 2001
-From: Ulf Hansson <ulf.hansson@linaro.org>
-Date: Sat, 6 May 2017 11:43:05 +0200
-Subject: [PATCH 180/554] mmc: pwrseq_simple: Parse DTS for the
- power-off-delay-us property
-
-If the optional power-off-delay-us property is found, insert the
-corresponding delay after asserting the GPIO during power off. This enables
-a graceful shutdown sequence for some devices.
-
-Cc: linux-mmc@vger.kernel.org
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Acked-by: Arnd Bergmann <arnd@arndb.de>
----
- drivers/mmc/core/pwrseq_simple.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/mmc/core/pwrseq_simple.c b/drivers/mmc/core/pwrseq_simple.c
-index 1304160de168..13ef162cf066 100644
---- a/drivers/mmc/core/pwrseq_simple.c
-+++ b/drivers/mmc/core/pwrseq_simple.c
-@@ -27,6 +27,7 @@ struct mmc_pwrseq_simple {
- struct mmc_pwrseq pwrseq;
- bool clk_enabled;
- u32 post_power_on_delay_ms;
-+ u32 power_off_delay_us;
- struct clk *ext_clk;
- struct gpio_descs *reset_gpios;
- };
-@@ -78,6 +79,10 @@ static void mmc_pwrseq_simple_power_off(struct mmc_host *host)
-
- mmc_pwrseq_simple_set_gpios_value(pwrseq, 1);
-
-+ if (pwrseq->power_off_delay_us)
-+ usleep_range(pwrseq->power_off_delay_us,
-+ 2 * pwrseq->power_off_delay_us);
-+
- if (!IS_ERR(pwrseq->ext_clk) && pwrseq->clk_enabled) {
- clk_disable_unprepare(pwrseq->ext_clk);
- pwrseq->clk_enabled = false;
-@@ -119,6 +124,8 @@ static int mmc_pwrseq_simple_probe(struct platform_device *pdev)
-
- device_property_read_u32(dev, "post-power-on-delay-ms",
- &pwrseq->post_power_on_delay_ms);
-+ device_property_read_u32(dev, "power-off-delay-us",
-+ &pwrseq->power_off_delay_us);
-
- pwrseq->pwrseq.dev = dev;
- pwrseq->pwrseq.ops = &mmc_pwrseq_simple_ops;
---
-2.13.0
-
-From f74ac688c981138c914f9afba50b646146e35585 Mon Sep 17 00:00:00 2001
-From: Daniel Lezcano <daniel.lezcano@linaro.org>
-Date: Mon, 24 Apr 2017 22:40:22 +0200
-Subject: [PATCH 181/554] mfd: dts: hi655x: Add clock binding for the pmic
-
-The hi655x PMIC provides the regulators but also a clock. The latter is
-missing in the definition, so extend the documentation to include this as
-well.
-
-Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-Acked-by: Rob Herring <robh@kernel.org>
-Acked-by: Lee Jones <lee.jones@linaro.org>
-[Ulf: Split patch and updated changelog]
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Acked-by: Arnd Bergmann <arnd@arndb.de>
----
- Documentation/devicetree/bindings/mfd/hisilicon,hi655x.txt | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/Documentation/devicetree/bindings/mfd/hisilicon,hi655x.txt b/Documentation/devicetree/bindings/mfd/hisilicon,hi655x.txt
-index 05485699d70e..9630ac0e4b56 100644
---- a/Documentation/devicetree/bindings/mfd/hisilicon,hi655x.txt
-+++ b/Documentation/devicetree/bindings/mfd/hisilicon,hi655x.txt
-@@ -16,6 +16,11 @@ Required properties:
- - reg: Base address of PMIC on Hi6220 SoC.
- - interrupt-controller: Hi655x has internal IRQs (has own IRQ domain).
- - pmic-gpios: The GPIO used by PMIC IRQ.
-+- #clock-cells: From common clock binding; shall be set to 0
-+
-+Optional properties:
-+- clock-output-names: From common clock binding to override the
-+ default output clock name
-
- Example:
- pmic: pmic@f8000000 {
-@@ -24,4 +29,5 @@ Example:
- interrupt-controller;
- #interrupt-cells = <2>;
- pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
-+ #clock-cells = <0>;
- }
---
-2.13.0
-
-From 307ded8968868e55343e063fbe96cff1efd77eb6 Mon Sep 17 00:00:00 2001
-From: Daniel Lezcano <daniel.lezcano@linaro.org>
-Date: Mon, 24 Apr 2017 22:40:22 +0200
-Subject: [PATCH 182/554] arm64: dts: hikey: Add clock for the pmic mfd
-
-The hi655x PMIC provides the regulators but also a clock. The latter is
-missing so let's add it. This clock is used by WiFi/Bluetooth chip, but
-that connection is done in a separate change on top of this one.
-
-Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-Acked-by: Rob Herring <robh@kernel.org>
-Acked-by: Lee Jones <lee.jones@linaro.org>
-[Ulf: Split patch and updated changelog]
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Acked-by: Arnd Bergmann <arnd@arndb.de>
----
- arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-index 75bce2d0b1a8..d22eb3a646c4 100644
---- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-@@ -330,6 +330,7 @@
- pmic: pmic@f8000000 {
- compatible = "hisilicon,hi655x-pmic";
- reg = <0x0 0xf8000000 0x0 0x1000>;
-+ #clock-cells = <0>;
- interrupt-controller;
- #interrupt-cells = <2>;
- pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
---
-2.13.0
-
-From 1b32a5ff98fbb271d2235ddcfe3b58f514f8260a Mon Sep 17 00:00:00 2001
-From: Ulf Hansson <ulf.hansson@linaro.org>
-Date: Wed, 3 May 2017 12:46:55 +0200
-Subject: [PATCH 183/554] arm64: dts: hi6220: Move the fixed_5v_hub regulator
- to the hikey dts
-
-The regulator is a part of the hikey board, therefore let's move it from
-the hi6220 SoC dtsi file into the hikey dts file . Let's also rename the
-regulator according to the datasheet (5V_HUB) to better reflect the HW.
-
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-Acked-by: Arnd Bergmann <arnd@arndb.de>
----
- arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 10 ++++++++++
- arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 12 +-----------
- 2 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-index d22eb3a646c4..0f6cba77fc76 100644
---- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-@@ -81,6 +81,16 @@
- };
- };
-
-+ reg_5v_hub: regulator@0 {
-+ compatible = "regulator-fixed";
-+ regulator-name = "5V_HUB";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ regulator-boot-on;
-+ gpio = <&gpio0 7 0>;
-+ regulator-always-on;
-+ };
-+
- soc {
- spi0: spi@f7106000 {
- status = "ok";
-diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
-index 1e5129b19280..951152d44c02 100644
---- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
-+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
-@@ -725,20 +725,10 @@
- status = "disabled";
- };
-
-- fixed_5v_hub: regulator@0 {
-- compatible = "regulator-fixed";
-- regulator-name = "fixed_5v_hub";
-- regulator-min-microvolt = <5000000>;
-- regulator-max-microvolt = <5000000>;
-- regulator-boot-on;
-- gpio = <&gpio0 7 0>;
-- regulator-always-on;
-- };
--
- usb_phy: usbphy {
- compatible = "hisilicon,hi6220-usb-phy";
- #phy-cells = <0>;
-- phy-supply = <&fixed_5v_hub>;
-+ phy-supply = <&reg_5v_hub>;
- hisilicon,peripheral-syscon = <&sys_ctrl>;
- };
-
---
-2.13.0
-
-From 84f7c60b31f10e3a438153bc7408ad536f585641 Mon Sep 17 00:00:00 2001
-From: Ulf Hansson <ulf.hansson@linaro.org>
-Date: Wed, 3 May 2017 13:51:27 +0200
-Subject: [PATCH 184/554] arm64: dts: hikey: Add the SYS_5V and the VDD_3V3
- regulators
-
-Add these regulators to better describe the HW, but also because those is
-needed in following changes.
-
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-Acked-by: Arnd Bergmann <arnd@arndb.de>
----
- arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 22 +++++++++++++++++++++-
- 1 file changed, 21 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-index 0f6cba77fc76..802f4a4bed30 100644
---- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-@@ -81,7 +81,26 @@
- };
- };
-
-- reg_5v_hub: regulator@0 {
-+ reg_sys_5v: regulator@0 {
-+ compatible = "regulator-fixed";
-+ regulator-name = "SYS_5V";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ regulator-boot-on;
-+ regulator-always-on;
-+ };
-+
-+ reg_vdd_3v3: regulator@1 {
-+ compatible = "regulator-fixed";
-+ regulator-name = "VDD_3V3";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ regulator-boot-on;
-+ regulator-always-on;
-+ vin-supply = <&reg_sys_5v>;
-+ };
-+
-+ reg_5v_hub: regulator@2 {
- compatible = "regulator-fixed";
- regulator-name = "5V_HUB";
- regulator-min-microvolt = <5000000>;
-@@ -89,6 +108,7 @@
- regulator-boot-on;
- gpio = <&gpio0 7 0>;
- regulator-always-on;
-+ vin-supply = <&reg_sys_5v>;
- };
-
- soc {
---
-2.13.0
-
-From 76f1dfb687150e852aa74573962cfc158a9570cc Mon Sep 17 00:00:00 2001
-From: Ulf Hansson <ulf.hansson@linaro.org>
-Date: Wed, 3 May 2017 14:18:26 +0200
-Subject: [PATCH 185/554] arm64: dts: hi6220: Move board data from the dwmmc
- nodes to hikey dts
-
-Move the board specific descriptions for the dwmmc nodes in the hi6220 SoC
-dtsi, into the hikey dts as it's there these belongs.
-
-While changing this, let's take the opportunity to drop the use of the
-"ti,non-removable" binding for one of the dwmmc device nodes, as it's not a
-valid binding and not used. Drop also the unnecessary use of "num-slots =
-<0x1>" for all of the dwmmc nodes, as there is no need to set this since
-when default number of slots is one.
-
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-Acked-by: Arnd Bergmann <arnd@arndb.de>
----
- arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 23 ++++++++++++++++++++++-
- arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 19 -------------------
- 2 files changed, 22 insertions(+), 20 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-index 802f4a4bed30..5132d8ed4664 100644
---- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-@@ -286,8 +286,29 @@
-
- /* GPIO blocks 16 thru 19 do not appear to be routed to pins */
-
-+ dwmmc_0: dwmmc0@f723d000 {
-+ cap-mmc-highspeed;
-+ non-removable;
-+ bus-width = <0x8>;
-+ vmmc-supply = <&ldo19>;
-+ };
-+
-+ dwmmc_1: dwmmc1@f723e000 {
-+ card-detect-delay = <200>;
-+ cap-sd-highspeed;
-+ sd-uhs-sdr12;
-+ sd-uhs-sdr25;
-+ sd-uhs-sdr50;
-+ vqmmc-supply = <&ldo7>;
-+ vmmc-supply = <&ldo10>;
-+ bus-width = <0x4>;
-+ disable-wp;
-+ cd-gpios = <&gpio1 0 1>;
-+ };
-+
- dwmmc_2: dwmmc2@f723f000 {
-- ti,non-removable;
-+ broken-cd;
-+ bus-width = <0x4>;
- non-removable;
- /* WL_EN */
- vmmc-supply = <&wlan_en_reg>;
-diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
-index 951152d44c02..5013e4b2ea71 100644
---- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
-+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
-@@ -756,17 +756,12 @@
-
- dwmmc_0: dwmmc0@f723d000 {
- compatible = "hisilicon,hi6220-dw-mshc";
-- num-slots = <0x1>;
-- cap-mmc-highspeed;
-- non-removable;
- reg = <0x0 0xf723d000 0x0 0x1000>;
- interrupts = <0x0 0x48 0x4>;
- clocks = <&sys_ctrl 2>, <&sys_ctrl 1>;
- clock-names = "ciu", "biu";
- resets = <&sys_ctrl PERIPH_RSTDIS0_MMC0>;
- reset-names = "reset";
-- bus-width = <0x8>;
-- vmmc-supply = <&ldo19>;
- pinctrl-names = "default";
- pinctrl-0 = <&emmc_pmx_func &emmc_clk_cfg_func
- &emmc_cfg_func &emmc_rst_cfg_func>;
-@@ -774,13 +769,7 @@
-
- dwmmc_1: dwmmc1@f723e000 {
- compatible = "hisilicon,hi6220-dw-mshc";
-- num-slots = <0x1>;
-- card-detect-delay = <200>;
- hisilicon,peripheral-syscon = <&ao_ctrl>;
-- cap-sd-highspeed;
-- sd-uhs-sdr12;
-- sd-uhs-sdr25;
-- sd-uhs-sdr50;
- reg = <0x0 0xf723e000 0x0 0x1000>;
- interrupts = <0x0 0x49 0x4>;
- #address-cells = <0x1>;
-@@ -789,11 +778,6 @@
- clock-names = "ciu", "biu";
- resets = <&sys_ctrl PERIPH_RSTDIS0_MMC1>;
- reset-names = "reset";
-- vqmmc-supply = <&ldo7>;
-- vmmc-supply = <&ldo10>;
-- bus-width = <0x4>;
-- disable-wp;
-- cd-gpios = <&gpio1 0 1>;
- pinctrl-names = "default", "idle";
- pinctrl-0 = <&sd_pmx_func &sd_clk_cfg_func &sd_cfg_func>;
- pinctrl-1 = <&sd_pmx_idle &sd_clk_cfg_idle &sd_cfg_idle>;
-@@ -801,15 +785,12 @@
-
- dwmmc_2: dwmmc2@f723f000 {
- compatible = "hisilicon,hi6220-dw-mshc";
-- num-slots = <0x1>;
- reg = <0x0 0xf723f000 0x0 0x1000>;
- interrupts = <0x0 0x4a 0x4>;
- clocks = <&sys_ctrl HI6220_MMC2_CIUCLK>, <&sys_ctrl HI6220_MMC2_CLK>;
- clock-names = "ciu", "biu";
- resets = <&sys_ctrl PERIPH_RSTDIS0_MMC2>;
- reset-names = "reset";
-- bus-width = <0x4>;
-- broken-cd;
- pinctrl-names = "default", "idle";
- pinctrl-0 = <&sdio_pmx_func &sdio_clk_cfg_func &sdio_cfg_func>;
- pinctrl-1 = <&sdio_pmx_idle &sdio_clk_cfg_idle &sdio_cfg_idle>;
---
-2.13.0
-
-From ea452678734eb782126f999bf5c4fb3e71d3b196 Mon Sep 17 00:00:00 2001
-From: Ulf Hansson <ulf.hansson@linaro.org>
-Date: Wed, 3 May 2017 16:11:33 +0200
-Subject: [PATCH 186/554] arm64: dts: hikey: Fix WiFi support
-
-The description of the connection between the dwmmc (SDIO) controller and
-the Wifi chip, which is attached to the SDIO bus is wrong. Currently the
-SDIO card can't be detected and thus the Wifi doesn't work.
-
-Let's fix this by assigning the correct vmmc supply, which is the always on
-regulator VDD_3V3 and remove the WLAN enable regulator altogether. Then to
-properly deal with the power on/off sequence, add a mmc-pwrseq node to
-describe the resources needed to detect the SDIO card.
-
-Except for the WLAN enable GPIO and its corresponding assert/de-assert
-delays, the mmc-pwrseq node also contains a handle to a clock provided by
-the hi655x pmic. This clock is also needed to be able to turn on the WiFi
-chip.
-
-Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-Acked-by: Arnd Bergmann <arnd@arndb.de>
----
- arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 26 +++++++++++---------------
- 1 file changed, 11 insertions(+), 15 deletions(-)
-
-diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-index 5132d8ed4664..49f6a6242cf9 100644
---- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-@@ -111,6 +111,15 @@
- vin-supply = <&reg_sys_5v>;
- };
-
-+ wl1835_pwrseq: wl1835-pwrseq {
-+ compatible = "mmc-pwrseq-simple";
-+ /* WLAN_EN GPIO */
-+ reset-gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
-+ clocks = <&pmic>;
-+ clock-names = "ext_clock";
-+ power-off-delay-us = <10>;
-+ };
-+
- soc {
- spi0: spi@f7106000 {
- status = "ok";
-@@ -307,11 +316,10 @@
- };
-
- dwmmc_2: dwmmc2@f723f000 {
-- broken-cd;
- bus-width = <0x4>;
- non-removable;
-- /* WL_EN */
-- vmmc-supply = <&wlan_en_reg>;
-+ vmmc-supply = <&reg_vdd_3v3>;
-+ mmc-pwrseq = <&wl1835_pwrseq>;
-
- #address-cells = <0x1>;
- #size-cells = <0x0>;
-@@ -323,18 +331,6 @@
- interrupts = <3 IRQ_TYPE_EDGE_RISING>;
- };
- };
--
-- wlan_en_reg: regulator@1 {
-- compatible = "regulator-fixed";
-- regulator-name = "wlan-en-regulator";
-- regulator-min-microvolt = <1800000>;
-- regulator-max-microvolt = <1800000>;
-- /* WLAN_EN GPIO */
-- gpio = <&gpio0 5 0>;
-- /* WLAN card specific delay */
-- startup-delay-us = <70000>;
-- enable-active-high;
-- };
- };
-
- leds {
---
-2.13.0
diff --git a/arm-imx6-hummingboard2.patch b/arm-imx6-hummingboard2.patch
index bcb93214e..9c55a7b81 100644
--- a/arm-imx6-hummingboard2.patch
+++ b/arm-imx6-hummingboard2.patch
@@ -26,21 +26,21 @@ index 011808490fed..ccdff6650541 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -353,6 +353,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
- imx6dl-gw552x.dtb \
- imx6dl-gw553x.dtb \
+ imx6dl-gw5903.dtb \
+ imx6dl-gw5904.dtb \
imx6dl-hummingboard.dtb \
+ imx6dl-hummingboard2.dtb \
imx6dl-icore.dtb \
imx6dl-icore-rqs.dtb \
imx6dl-nit6xlite.dtb \
@@ -397,6 +398,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
- imx6q-gw553x.dtb \
+ imx6q-gw5904.dtb \
imx6q-h100.dtb \
imx6q-hummingboard.dtb \
+ imx6q-hummingboard2.dtb \
imx6q-icore.dtb \
- imx6q-icore-rqs.dtb \
- imx6q-marsboard.dtb \
+ imx6q-icore-ofcap10.dtb \
+ imx6q-icore-ofcap12.dtb \
diff --git a/arch/arm/boot/dts/imx6dl-hummingboard2.dts b/arch/arm/boot/dts/imx6dl-hummingboard2.dts
new file mode 100644
index 000000000000..990b5050de5b
diff --git a/arm-rk3288-tinker.patch b/arm-rk3288-tinker.patch
deleted file mode 100644
index d7a4897b3..000000000
--- a/arm-rk3288-tinker.patch
+++ /dev/null
@@ -1,573 +0,0 @@
-From 223599514133293bb9afe7b82937140c3b275877 Mon Sep 17 00:00:00 2001
-From: Eddie Cai <eddie.cai.linux@gmail.com>
-Date: Tue, 14 Feb 2017 18:07:31 +0800
-Subject: ARM: dts: rockchip: add dts for RK3288-Tinker board
-
-This patch add basic support for RK3288-Tinker board. We can boot in to rootfs
-with this patch.
-
-Signed-off-by: Eddie Cai <eddie.cai.linux@gmail.com>
-Signed-off-by: Heiko Stuebner <heiko@sntech.de>
----
- arch/arm/boot/dts/Makefile | 1 +
- arch/arm/boot/dts/rk3288-tinker.dts | 536 ++++++++++++++++++++++++++++++++++++
- 2 files changed, 537 insertions(+)
- create mode 100644 arch/arm/boot/dts/rk3288-tinker.dts
-
-diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index 0118084..fb46849 100644
---- a/arch/arm/boot/dts/Makefile
-+++ b/arch/arm/boot/dts/Makefile
-@@ -695,6 +695,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
- rk3288-popmetal.dtb \
- rk3288-r89.dtb \
- rk3288-rock2-square.dtb \
-+ rk3288-tinker.dtb \
- rk3288-veyron-brain.dtb \
- rk3288-veyron-jaq.dtb \
- rk3288-veyron-jerry.dtb \
-diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts
-new file mode 100644
-index 0000000..f601c78
---- /dev/null
-+++ b/arch/arm/boot/dts/rk3288-tinker.dts
-@@ -0,0 +1,536 @@
-+/*
-+ * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
-+ *
-+ * This file is dual-licensed: you can use it either under the terms
-+ * of the GPL or the X11 license, at your option. Note that this dual
-+ * licensing only applies to this file, and not this project as a
-+ * whole.
-+ *
-+ * a) This file is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of the
-+ * License, or (at your option) any later version.
-+ *
-+ * This file is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * Or, alternatively,
-+ *
-+ * b) Permission is hereby granted, free of charge, to any person
-+ * obtaining a copy of this software and associated documentation
-+ * files (the "Software"), to deal in the Software without
-+ * restriction, including without limitation the rights to use,
-+ * copy, modify, merge, publish, distribute, sublicense, and/or
-+ * sell copies of the Software, and to permit persons to whom the
-+ * Software is furnished to do so, subject to the following
-+ * conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be
-+ * included in all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-+ * OTHER DEALINGS IN THE SOFTWARE.
-+ */
-+
-+/dts-v1/;
-+
-+#include "rk3288.dtsi"
-+#include <dt-bindings/input/input.h>
-+
-+/ {
-+ model = "Rockchip RK3288 Tinker Board";
-+ compatible = "asus,rk3288-tinker", "rockchip,rk3288";
-+
-+ memory {
-+ reg = <0x0 0x80000000>;
-+ device_type = "memory";
-+ };
-+
-+ ext_gmac: external-gmac-clock {
-+ compatible = "fixed-clock";
-+ #clock-cells = <0>;
-+ clock-frequency = <125000000>;
-+ clock-output-names = "ext_gmac";
-+ };
-+
-+ gpio-keys {
-+ compatible = "gpio-keys";
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ autorepeat;
-+
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pwrbtn>;
-+
-+ button@0 {
-+ gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
-+ linux,code = <KEY_POWER>;
-+ label = "GPIO Key Power";
-+ linux,input-type = <1>;
-+ wakeup-source;
-+ debounce-interval = <100>;
-+ };
-+ };
-+
-+ gpio-leds {
-+ compatible = "gpio-leds";
-+
-+ act-led {
-+ gpios=<&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
-+ linux,default-trigger="mmc0";
-+ };
-+
-+ heartbeat-led {
-+ gpios=<&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
-+ linux,default-trigger="heartbeat";
-+ };
-+
-+ pwr-led {
-+ gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
-+ linux,default-trigger = "default-on";
-+ };
-+ };
-+
-+ sound {
-+ compatible = "simple-audio-card";
-+ simple-audio-card,format = "i2s";
-+ simple-audio-card,name = "rockchip,tinker-codec";
-+ simple-audio-card,mclk-fs = <512>;
-+
-+ simple-audio-card,codec {
-+ sound-dai = <&hdmi>;
-+ };
-+
-+ simple-audio-card,cpu {
-+ sound-dai = <&i2s>;
-+ };
-+ };
-+
-+ vcc_sys: vsys-regulator {
-+ compatible = "regulator-fixed";
-+ regulator-name = "vcc_sys";
-+ regulator-min-microvolt = <5000000>;
-+ regulator-max-microvolt = <5000000>;
-+ regulator-always-on;
-+ regulator-boot-on;
-+ };
-+
-+ vcc_sd: sdmmc-regulator {
-+ compatible = "regulator-fixed";
-+ gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&sdmmc_pwr>;
-+ regulator-name = "vcc_sd";
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ startup-delay-us = <100000>;
-+ vin-supply = <&vcc_io>;
-+ };
-+};
-+
-+&cpu0 {
-+ cpu0-supply = <&vdd_cpu>;
-+};
-+
-+&gmac {
-+ assigned-clocks = <&cru SCLK_MAC>;
-+ assigned-clock-parents = <&ext_gmac>;
-+ clock_in_out = "input";
-+ phy-mode = "rgmii";
-+ phy-supply = <&vcc33_lan>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&rgmii_pins>;
-+ snps,reset-gpio = <&gpio4 7 0>;
-+ snps,reset-active-low;
-+ snps,reset-delays-us = <0 10000 1000000>;
-+ tx_delay = <0x30>;
-+ rx_delay = <0x10>;
-+ status = "ok";
-+};
-+
-+&hdmi {
-+ ddc-i2c-bus = <&i2c5>;
-+ status = "okay";
-+};
-+
-+&i2c0 {
-+ clock-frequency = <400000>;
-+ status = "okay";
-+
-+ rk808: pmic@1b {
-+ compatible = "rockchip,rk808";
-+ reg = <0x1b>;
-+ interrupt-parent = <&gpio0>;
-+ interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
-+ #clock-cells = <1>;
-+ clock-output-names = "xin32k", "rk808-clkout2";
-+ dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
-+ <&gpio0 12 GPIO_ACTIVE_HIGH>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>;
-+ rockchip,system-power-controller;
-+ wakeup-source;
-+
-+ vcc1-supply = <&vcc_sys>;
-+ vcc2-supply = <&vcc_sys>;
-+ vcc3-supply = <&vcc_sys>;
-+ vcc4-supply = <&vcc_sys>;
-+ vcc6-supply = <&vcc_sys>;
-+ vcc7-supply = <&vcc_sys>;
-+ vcc8-supply = <&vcc_io>;
-+ vcc9-supply = <&vcc_io>;
-+ vcc10-supply = <&vcc_io>;
-+ vcc11-supply = <&vcc_sys>;
-+ vcc12-supply = <&vcc_io>;
-+ vddio-supply = <&vcc_io>;
-+
-+ regulators {
-+ vdd_cpu: DCDC_REG1 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <750000>;
-+ regulator-max-microvolt = <1350000>;
-+ regulator-name = "vdd_arm";
-+ regulator-ramp-delay = <6000>;
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vdd_gpu: DCDC_REG2 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <850000>;
-+ regulator-max-microvolt = <1250000>;
-+ regulator-name = "vdd_gpu";
-+ regulator-ramp-delay = <6000>;
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1000000>;
-+ };
-+ };
-+
-+ vcc_ddr: DCDC_REG3 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-name = "vcc_ddr";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ };
-+ };
-+
-+ vcc_io: DCDC_REG4 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ regulator-name = "vcc_io";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <3300000>;
-+ };
-+ };
-+
-+ vcc18_ldo1: LDO_REG1 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ regulator-name = "vcc18_ldo1";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1800000>;
-+ };
-+ };
-+
-+ vcc33_mipi: LDO_REG2 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <3300000>;
-+ regulator-max-microvolt = <3300000>;
-+ regulator-name = "vcc33_mipi";
-+ regulator-state-mem {
-+ regulator-off-in-suspend;
-+ };
-+ };
-+
-+ vdd_10: LDO_REG3 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1000000>;
-+ regulator-max-microvolt = <1000000>;
-+ regulator-name = "vdd_10";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1000000>;
-+ };
-+ };
-+
-+ vcc18_codec: LDO_REG4 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ regulator-name = "vcc18_codec";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1800000>;
-+ };
-+ };
-+
-+ vccio_sd: LDO_REG5 {
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <3300000>;
-+ regulator-name = "vccio_sd";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <3300000>;
-+ };
-+ };
-+
-+ vdd10_lcd: LDO_REG6 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1000000>;
-+ regulator-max-microvolt = <1000000>;
-+ regulator-name = "vdd10_lcd";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1000000>;
-+ };
-+ };
-+
-+ vcc_18: LDO_REG7 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ regulator-name = "vcc_18";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1800000>;
-+ };
-+ };
-+
-+ vcc18_lcd: LDO_REG8 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-min-microvolt = <1800000>;
-+ regulator-max-microvolt = <1800000>;
-+ regulator-name = "vcc18_lcd";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ regulator-suspend-microvolt = <1800000>;
-+ };
-+ };
-+
-+ vcc33_sd: SWITCH_REG1 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-name = "vcc33_sd";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ };
-+ };
-+
-+ vcc33_lan: SWITCH_REG2 {
-+ regulator-always-on;
-+ regulator-boot-on;
-+ regulator-name = "vcc33_lan";
-+ regulator-state-mem {
-+ regulator-on-in-suspend;
-+ };
-+ };
-+ };
-+ };
-+};
-+
-+&i2c2 {
-+ status = "okay";
-+};
-+
-+&i2c5 {
-+ status = "okay";
-+};
-+
-+&i2s {
-+ #sound-dai-cells = <0>;
-+ status = "okay";
-+};
-+
-+&io_domains {
-+ status = "okay";
-+
-+ sdcard-supply = <&vccio_sd>;
-+};
-+
-+&pinctrl {
-+ pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
-+ drive-strength = <8>;
-+ };
-+
-+ pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
-+ bias-pull-up;
-+ drive-strength = <8>;
-+ };
-+
-+ backlight {
-+ bl_en: bl-en {
-+ rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+
-+ buttons {
-+ pwrbtn: pwrbtn {
-+ rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
-+ };
-+ };
-+
-+ eth_phy {
-+ eth_phy_pwr: eth-phy-pwr {
-+ rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+
-+ pmic {
-+ pmic_int: pmic-int {
-+ rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO \
-+ &pcfg_pull_up>;
-+ };
-+
-+ dvs_1: dvs-1 {
-+ rockchip,pins = <RK_GPIO0 11 RK_FUNC_GPIO \
-+ &pcfg_pull_down>;
-+ };
-+
-+ dvs_2: dvs-2 {
-+ rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO \
-+ &pcfg_pull_down>;
-+ };
-+ };
-+
-+ sdmmc {
-+ sdmmc_bus4: sdmmc-bus4 {
-+ rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
-+ <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
-+ <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
-+ <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
-+ };
-+
-+ sdmmc_clk: sdmmc-clk {
-+ rockchip,pins = <6 20 RK_FUNC_1 \
-+ &pcfg_pull_none_drv_8ma>;
-+ };
-+
-+ sdmmc_cmd: sdmmc-cmd {
-+ rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
-+ };
-+
-+ sdmmc_pwr: sdmmc-pwr {
-+ rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+
-+ usb {
-+ host_vbus_drv: host-vbus-drv {
-+ rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+
-+ pwr_3g: pwr-3g {
-+ rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>;
-+ };
-+ };
-+};
-+
-+&pwm0 {
-+ status = "okay";
-+};
-+
-+&saradc {
-+ vref-supply = <&vcc18_ldo1>;
-+ status ="okay";
-+};
-+
-+&sdmmc {
-+ bus-width = <4>;
-+ cap-mmc-highspeed;
-+ cap-sd-highspeed;
-+ card-detect-delay = <200>;
-+ disable-wp; /* wp not hooked up */
-+ num-slots = <1>;
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
-+ status = "okay";
-+ vmmc-supply = <&vcc33_sd>;
-+ vqmmc-supply = <&vccio_sd>;
-+};
-+
-+&tsadc {
-+ rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
-+ rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
-+ status = "okay";
-+};
-+
-+&uart0 {
-+ status = "okay";
-+};
-+
-+&uart1 {
-+ status = "okay";
-+};
-+
-+&uart2 {
-+ status = "okay";
-+};
-+
-+&uart3 {
-+ status = "okay";
-+};
-+
-+&uart4 {
-+ status = "okay";
-+};
-+
-+&usbphy {
-+ status = "okay";
-+};
-+
-+&usb_host0_ehci {
-+ status = "okay";
-+};
-+
-+&usb_host1 {
-+ status = "okay";
-+};
-+
-+&usb_otg {
-+ status= "okay";
-+};
-+
-+&vopb {
-+ status = "okay";
-+};
-+
-+&vopb_mmu {
-+ status = "okay";
-+};
-+
-+&vopl {
-+ status = "okay";
-+};
-+
-+&vopl_mmu {
-+ status = "okay";
-+};
-+
-+&wdt {
-+ status = "okay";
-+};
---
-cgit v1.1
-
diff --git a/arm-tegra-fix-gpu-iommu.patch b/arm-tegra-fix-gpu-iommu.patch
new file mode 100644
index 000000000..8d2809b46
--- /dev/null
+++ b/arm-tegra-fix-gpu-iommu.patch
@@ -0,0 +1,95 @@
+From patchwork Sun Jul 9 16:36:14 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: ARM: tegra: Register host1x node with iommu binding on tegra124
+From: Paul Kocialkowski <contact@paulk.fr>
+X-Patchwork-Id: 9831825
+Message-Id: <20170709163614.6746-1-contact@paulk.fr>
+To: linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org,
+ linux-kernel@vger.kernel.org
+Cc: Thierry Reding <thierry.reding@gmail.com>,
+ Stephen Warren <swarren@wwwdotorg.org>,
+ Mikko Perttunen <mperttunen@nvidia.com>,
+ Paul Kocialkowski <contact@paulk.fr>,
+ Jonathan Hunter <jonathanh@nvidia.com>
+Date: Sun, 9 Jul 2017 19:36:14 +0300
+
+This registers the host1x node with the SMMU (as HC swgroup) to allow
+the host1x code to attach to it. It avoid failing the probe sequence,
+which resulted in the tegra drm driver not probing and thus nothing
+being displayed on-screen.
+
+Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
+---
+ arch/arm/boot/dts/tegra124.dtsi | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
+index 187a36c6d0fc..b3b89befffeb 100644
+--- a/arch/arm/boot/dts/tegra124.dtsi
++++ b/arch/arm/boot/dts/tegra124.dtsi
+@@ -85,6 +85,7 @@
+ clocks = <&tegra_car TEGRA124_CLK_HOST1X>;
+ resets = <&tegra_car 28>;
+ reset-names = "host1x";
++ iommus = <&mc TEGRA_SWGROUP_HC>;
+
+ #address-cells = <2>;
+ #size-cells = <2>;
+From patchwork Mon Jul 10 19:33:05 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: gpu: host1x: Free the IOMMU domain when there is no device to attach
+From: Paul Kocialkowski <contact@paulk.fr>
+X-Patchwork-Id: 9833721
+Message-Id: <20170710193305.5987-1-contact@paulk.fr>
+To: linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org,
+ linux-kernel@vger.kernel.org
+Cc: Thierry Reding <thierry.reding@gmail.com>,
+ Stephen Warren <swarren@wwwdotorg.org>,
+ Mikko Perttunen <mperttunen@nvidia.com>,
+ Paul Kocialkowski <contact@paulk.fr>,
+ Jonathan Hunter <jonathanh@nvidia.com>
+Date: Mon, 10 Jul 2017 21:33:05 +0200
+
+When there is no device to attach to the IOMMU domain, as may be the
+case when the device-tree does not contain the proper iommu node, it is
+best to keep going without IOMMU support rather than failing.
+This allows the driver to probe and function instead of taking down
+all of the tegra drm driver, leading to missing display support.
+
+Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
+Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
+---
+ drivers/gpu/host1x/dev.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c
+index ac65f52850a6..f296738d0de8 100644
+--- a/drivers/gpu/host1x/dev.c
++++ b/drivers/gpu/host1x/dev.c
+@@ -186,8 +186,13 @@ static int host1x_probe(struct platform_device *pdev)
+ return -ENOMEM;
+
+ err = iommu_attach_device(host->domain, &pdev->dev);
+- if (err)
++ if (err == -ENODEV) {
++ iommu_domain_free(host->domain);
++ host->domain = NULL;
++ goto iommu_skip;
++ } else if (err) {
+ goto fail_free_domain;
++ }
+
+ geometry = &host->domain->geometry;
+
+@@ -198,6 +203,7 @@ static int host1x_probe(struct platform_device *pdev)
+ host->iova_end = geometry->aperture_end;
+ }
+
++iommu_skip:
+ err = host1x_channel_list_init(host);
+ if (err) {
+ dev_err(&pdev->dev, "failed to initialize channel list\n");
diff --git a/arm-thermal-fixes.patch b/arm-thermal-fixes.patch
new file mode 100644
index 000000000..547731e79
--- /dev/null
+++ b/arm-thermal-fixes.patch
@@ -0,0 +1,224 @@
+From 0fe4d2181cc4cb3eba303c0e03f878d2558d0f3a Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Fri, 31 Mar 2017 20:03:04 +0000
+Subject: [PATCH] ARM: dts: bcm283x: Add CPU thermal zone with 1
+ trip point
+
+As suggested by Eduardo Valentin this adds the thermal zone for
+the bcm2835 SoC with its single thermal sensor. We start with
+the criticial trip point and leave the cooling devices empty
+since we don't have any at the moment. Since the coefficients
+could vary depending on the SoC we need to define them separate.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Eric Anholt <eric@anholt.net>
+Acked-by: Eduardo Valentin <edubezval@gmail.com>
+---
+ arch/arm/boot/dts/bcm2835.dtsi | 4 ++++
+ arch/arm/boot/dts/bcm2836.dtsi | 4 ++++
+ arch/arm/boot/dts/bcm283x.dtsi | 21 +++++++++++++++++++++
+ 3 files changed, 29 insertions(+)
+
+diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi
+index 0890d97e674d..659b6e9513b1 100644
+--- a/arch/arm/boot/dts/bcm2835.dtsi
++++ b/arch/arm/boot/dts/bcm2835.dtsi
+@@ -24,6 +24,10 @@
+ };
+ };
+
++&cpu_thermal {
++ coefficients = <(-538) 407000>;
++};
++
+ /* enable thermal sensor with the correct compatible property set */
+ &thermal {
+ compatible = "brcm,bcm2835-thermal";
+diff --git a/arch/arm/boot/dts/bcm2836.dtsi b/arch/arm/boot/dts/bcm2836.dtsi
+index 519a44f5d25a..da3deeb42592 100644
+--- a/arch/arm/boot/dts/bcm2836.dtsi
++++ b/arch/arm/boot/dts/bcm2836.dtsi
+@@ -77,6 +77,10 @@
+ interrupts = <8>;
+ };
+
++&cpu_thermal {
++ coefficients = <(-538) 407000>;
++};
++
+ /* enable thermal sensor with the correct compatible property set */
+ &thermal {
+ compatible = "brcm,bcm2836-thermal";
+diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
+index 561f27d8d922..86a5db53da8f 100644
+--- a/arch/arm/boot/dts/bcm283x.dtsi
++++ b/arch/arm/boot/dts/bcm283x.dtsi
+@@ -19,6 +19,26 @@
+ bootargs = "earlyprintk console=ttyAMA0";
+ };
+
++ thermal-zones {
++ cpu_thermal: cpu-thermal {
++ polling-delay-passive = <0>;
++ polling-delay = <1000>;
++
++ thermal-sensors = <&thermal>;
++
++ trips {
++ cpu-crit {
++ temperature = <80000>;
++ hysteresis = <0>;
++ type = "critical";
++ };
++ };
++
++ cooling-maps {
++ };
++ };
++ };
++
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+@@ -430,6 +450,7 @@
+ compatible = "brcm,bcm2835-thermal";
+ reg = <0x7e212000 0x8>;
+ clocks = <&clocks BCM2835_CLOCK_TSENS>;
++ #thermal-sensor-cells = <0>;
+ status = "disabled";
+ };
+
+--
+2.13.3
+
+From 4ae6f954b96c1fea86c6f21ae8fc413f5fc3444e Mon Sep 17 00:00:00 2001
+From: Stefan Wahren <stefan.wahren@i2se.com>
+Date: Fri, 31 Mar 2017 20:03:05 +0000
+Subject: [PATCH] ARM64: dts: bcm2837: Define CPU thermal coefficients
+
+This defines the bcm2837 SoC specific thermal coefficients in
+order to initialize the thermal driver correctly.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Eric Anholt <eric@anholt.net>
+Acked-by: Eduardo Valentin <edubezval@gmail.com>
+---
+ arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
+index 19f2fe620a21..2d5de6f0f78d 100644
+--- a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
++++ b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
+@@ -75,6 +75,10 @@
+ interrupts = <8>;
+ };
+
++&cpu_thermal {
++ coefficients = <(-538) 412000>;
++};
++
+ /* enable thermal sensor with the correct compatible property set */
+ &thermal {
+ compatible = "brcm,bcm2837-thermal";
+--
+2.13.3
+
+From 1fe3854a83b580727c9464b37b62ba77ead1d6f6 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Wed, 14 Jun 2017 12:13:27 +0300
+Subject: [PATCH] thermal: bcm2835: fix an error code in probe()
+
+This causes a static checker because we're passing a valid pointer to
+PTR_ERR(). "err" is already the correct error code, so we can just
+delete this line.
+
+Fixes: bcb7dd9ef206 ("thermal: bcm2835: add thermal driver for bcm2835 SoC")
+Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
+---
+ drivers/thermal/broadcom/bcm2835_thermal.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/drivers/thermal/broadcom/bcm2835_thermal.c b/drivers/thermal/broadcom/bcm2835_thermal.c
+index 0ecf80890c84..e6863c841662 100644
+--- a/drivers/thermal/broadcom/bcm2835_thermal.c
++++ b/drivers/thermal/broadcom/bcm2835_thermal.c
+@@ -245,7 +245,6 @@ static int bcm2835_thermal_probe(struct platform_device *pdev)
+ */
+ err = tz->ops->get_trip_temp(tz, 0, &trip_temp);
+ if (err < 0) {
+- err = PTR_ERR(tz);
+ dev_err(&pdev->dev,
+ "Not able to read trip_temp: %d\n",
+ err);
+--
+2.13.3
+
+From e3bdc8d7623d5875403ad40443e7b049ae200fcd Mon Sep 17 00:00:00 2001
+From: Arvind Yadav <arvind.yadav.cs@gmail.com>
+Date: Tue, 6 Jun 2017 15:12:37 +0530
+Subject: [PATCH] thermal: imx: Handle return value of clk_prepare_enable
+
+clk_prepare_enable() can fail here and we must check its return value.
+
+Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
+Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
+---
+ drivers/thermal/imx_thermal.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
+index f7ec39f46ee4..4798b4b1fd77 100644
+--- a/drivers/thermal/imx_thermal.c
++++ b/drivers/thermal/imx_thermal.c
+@@ -660,8 +660,11 @@ static int imx_thermal_resume(struct device *dev)
+ {
+ struct imx_thermal_data *data = dev_get_drvdata(dev);
+ struct regmap *map = data->tempmon;
++ int ret;
+
+- clk_prepare_enable(data->thermal_clk);
++ ret = clk_prepare_enable(data->thermal_clk);
++ if (ret)
++ return ret;
+ /* Enabled thermal sensor after resume */
+ regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_POWER_DOWN);
+ regmap_write(map, TEMPSENSE0 + REG_SET, TEMPSENSE0_MEASURE_TEMP);
+--
+2.13.3
+
+From 919054fdfc8adf58c5512fe9872eb53ea0f5525d Mon Sep 17 00:00:00 2001
+From: Arvind Yadav <arvind.yadav.cs@gmail.com>
+Date: Tue, 6 Jun 2017 15:04:46 +0530
+Subject: [PATCH] thermal: hisilicon: Handle return value of clk_prepare_enable
+
+clk_prepare_enable() can fail here and we must check its return value.
+
+Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
+Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
+---
+ drivers/thermal/hisi_thermal.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/thermal/hisi_thermal.c b/drivers/thermal/hisi_thermal.c
+index f6429666a1cf..9c3ce341eb97 100644
+--- a/drivers/thermal/hisi_thermal.c
++++ b/drivers/thermal/hisi_thermal.c
+@@ -397,8 +397,11 @@ static int hisi_thermal_suspend(struct device *dev)
+ static int hisi_thermal_resume(struct device *dev)
+ {
+ struct hisi_thermal_data *data = dev_get_drvdata(dev);
++ int ret;
+
+- clk_prepare_enable(data->clk);
++ ret = clk_prepare_enable(data->clk);
++ if (ret)
++ return ret;
+
+ data->irq_enabled = true;
+ hisi_thermal_enable_bind_irq_sensor(data);
+--
+2.13.3
+
diff --git a/arm64-cavium-fixes.patch b/arm64-cavium-fixes.patch
deleted file mode 100644
index 7d4ce66d4..000000000
--- a/arm64-cavium-fixes.patch
+++ /dev/null
@@ -1,1789 +0,0 @@
-From 35412fc5240640825faa81068e5269069f90d86f Mon Sep 17 00:00:00 2001
-From: Jayachandran C <jnair@caviumnetworks.com>
-Date: Thu, 13 Apr 2017 20:30:44 +0000
-Subject: [PATCH 01/41] PCI: Add device flag PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT
-
-Add a new quirk flag PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT to limit the DMA alias
-search to go no further than the bridge where the IOMMU unit is attached.
-
-The flag will be used to indicate a bridge device which forwards the
-address translation requests to the IOMMU, i.e., where the interrupt and
-DMA requests leave the PCIe hierarchy and go into the system blocks.
-
-Usually this happens at the PCI RC, so this flag is not needed. But on
-systems where there are bridges that introduce aliases above the IOMMU,
-this flag prevents pci_for_each_dma_alias() from generating aliases that
-the IOMMU will never see.
-
-The function pci_for_each_dma_alias() is updated to stop when it see a
-bridge with this flag set.
-
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=195447
-Signed-off-by: Jayachandran C <jnair@caviumnetworks.com>
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-Reviewed-by: Robin Murphy <robin.murphy@arm.com>
-Acked-by: David Daney <david.daney@cavium.com>
-(cherry picked from commit ffff885832101543c002cef7abcab0fd27a9aee1)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/pci/search.c | 4 ++++
- include/linux/pci.h | 2 ++
- 2 files changed, 6 insertions(+)
-
-diff --git a/drivers/pci/search.c b/drivers/pci/search.c
-index 33e0f033a48e..4c6044ad7368 100644
---- a/drivers/pci/search.c
-+++ b/drivers/pci/search.c
-@@ -60,6 +60,10 @@ int pci_for_each_dma_alias(struct pci_dev *pdev,
-
- tmp = bus->self;
-
-+ /* stop at bridge where translation unit is associated */
-+ if (tmp->dev_flags & PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT)
-+ return ret;
-+
- /*
- * PCIe-to-PCI/X bridges alias transactions from downstream
- * devices using the subordinate bus number (PCI Express to
-diff --git a/include/linux/pci.h b/include/linux/pci.h
-index eb3da1a04e6c..3f596acc05be 100644
---- a/include/linux/pci.h
-+++ b/include/linux/pci.h
-@@ -178,6 +178,8 @@ enum pci_dev_flags {
- PCI_DEV_FLAGS_NO_PM_RESET = (__force pci_dev_flags_t) (1 << 7),
- /* Get VPD from function 0 VPD */
- PCI_DEV_FLAGS_VPD_REF_F0 = (__force pci_dev_flags_t) (1 << 8),
-+ /* a non-root bridge where translation occurs, stop alias search here */
-+ PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = (__force pci_dev_flags_t) (1 << 9),
- /*
- * Resume before calling the driver's system suspend hooks, disabling
- * the direct_complete optimization.
---
-2.11.0
-
-From 2fe0ffd43a57035207a124421e9164401aabb9d4 Mon Sep 17 00:00:00 2001
-From: Jayachandran C <jnair@caviumnetworks.com>
-Date: Thu, 13 Apr 2017 20:30:45 +0000
-Subject: [PATCH 02/41] PCI: Avoid generating invalid ThunderX2 DMA aliases
-
-On Cavium ThunderX2 arm64 SoCs (formerly known as Broadcom Vulcan), the PCI
-topology is slightly unusual. For a multi-node system, it looks like:
-
- 00:00.0 PCI bridge to [bus 01-1e]
- 01:0a.0 PCI-to-PCIe bridge to [bus 02-04]
- 02:00.0 PCIe Root Port bridge to [bus 03-04] (XLATE_ROOT)
- 03:00.0 PCIe Endpoint
-
-pci_for_each_dma_alias() assumes IOMMU translation is done at the root of
-the PCI hierarchy. It generates 03:00.0, 01:0a.0, and 00:00.0 as DMA
-aliases for 03:00.0 because buses 01 and 00 are non-PCIe buses that don't
-carry the Requester ID.
-
-Because the ThunderX2 IOMMU is at 02:00.0, the Requester IDs 01:0a.0 and
-00:00.0 are never valid for the endpoint. This quirk stops alias
-generation at the XLATE_ROOT bridge so we won't generate 01:0a.0 or
-00:00.0.
-
-The current IOMMU code only maps the last alias (this is a separate bug in
-itself). Prior to this quirk, we only created IOMMU mappings for the
-invalid Requester ID 00:00:0, which never matched any DMA transactions.
-
-With this quirk, we create IOMMU mappings for a valid Requester ID, which
-fixes devices with no aliases but leaves devices with aliases still broken.
-
-The last alias for the endpoint is also used by the ARM GICv3 MSI-X code.
-Without this quirk, the GIC Interrupt Translation Tables are setup with the
-invalid Requester ID, and the MSI-X generated by the device fails to be
-translated and routed.
-
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=195447
-Signed-off-by: Jayachandran C <jnair@caviumnetworks.com>
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-Reviewed-by: Robin Murphy <robin.murphy@arm.com>
-Acked-by: David Daney <david.daney@cavium.com>
-(cherry picked from commit 45a2329367386342d41ea9414c88b023f5a79055)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/pci/quirks.c | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 673683660b5c..96d332978719 100644
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -3958,6 +3958,20 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2260, quirk_mic_x200_dma_alias);
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2264, quirk_mic_x200_dma_alias);
-
- /*
-+ * The IOMMU and interrupt controller on Broadcom Vulcan/Cavium ThunderX2 are
-+ * associated not at the root bus, but at a bridge below. This quirk avoids
-+ * generating invalid DMA aliases.
-+ */
-+static void quirk_bridge_cavm_thrx2_pcie_root(struct pci_dev *pdev)
-+{
-+ pdev->dev_flags |= PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT;
-+}
-+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000,
-+ quirk_bridge_cavm_thrx2_pcie_root);
-+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084,
-+ quirk_bridge_cavm_thrx2_pcie_root);
-+
-+/*
- * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero)
- * class code. Fix it.
- */
---
-2.11.0
-
-From 153c6a5945340315126a7ec31cf52129ad782398 Mon Sep 17 00:00:00 2001
-From: Ashok Kumar Sekar <asekar@redhat.com>
-Date: Fri, 23 Sep 2016 04:16:19 -0700
-Subject: [PATCH 03/41] PCI: Vulcan: AHCI PCI bar fix for Broadcom Vulcan early
- silicon
-
-PCI BAR 5 is not setup correctly for the on-board AHCI
-controller on Broadcom's Vulcan processor. Added a quirk to fix BAR 5
-by using BAR 4's resources which are populated correctly but NOT used
-by the AHCI controller actually.
-
-Signed-off-by: Ashok Kumar Sekar <asekar@redhat.com>
-Signed-off-by: Jayachandran C <jchandra@broadcom.com>
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/pci/quirks.c | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
-diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 96d332978719..0966a22eae13 100644
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -3972,6 +3972,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084,
- quirk_bridge_cavm_thrx2_pcie_root);
-
- /*
-+ * PCI BAR 5 is not setup correctly for the on-board AHCI controller
-+ * on Broadcom's Vulcan processor. Added a quirk to fix BAR 5 by
-+ * using BAR 4's resources which are populated correctly and NOT
-+ * actually used by the AHCI controller.
-+ */
-+static void quirk_fix_vulcan_ahci_bars(struct pci_dev *dev)
-+{
-+ struct resource *r = &dev->resource[4];
-+
-+ if (!(r->flags & IORESOURCE_MEM) || (r->start == 0))
-+ return;
-+
-+ /* Set BAR5 resource to BAR4 */
-+ dev->resource[5] = *r;
-+
-+ /* Update BAR5 in pci config space */
-+ pci_write_config_dword(dev, PCI_BASE_ADDRESS_5, r->start);
-+
-+ /* Clear BAR4's resource */
-+ memset(r, 0, sizeof(*r));
-+}
-+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9027, quirk_fix_vulcan_ahci_bars);
-+
-+/*
- * Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero)
- * class code. Fix it.
- */
---
-2.11.0
-
-From bfe8e2f6bb2922b76650e3d43782132b0c388508 Mon Sep 17 00:00:00 2001
-From: Jayachandran C <jnair@caviumnetworks.com>
-Date: Fri, 10 Mar 2017 10:04:52 +0000
-Subject: [PATCH 04/41] ahci: thunderx2: Fix for errata that affects stop
- engine
-
-Apply workaround for this errata:
- Synopsis: Resetting PxCMD.ST may hang the SATA device
-
- Description: An internal ping-pong buffer state is not reset
- correctly for an PxCMD.ST=0 command for a SATA channel. This
- may cause the SATA interface to hang when a PxCMD.ST=0 command
- is received.
-
- Workaround: A SATA_BIU_CORE_ENABLE.sw_init_bsi must be asserted
- by the driver whenever the PxCMD.ST needs to be de-asserted. This
- will reset both the ports. So, it may not always work in a 2
- channel SATA system.
-
- Resolution: Fix in B0.
-
-Add the code to ahci_stop_engine() to do this. It is not easy to
-stop the other "port" since it is associated with a different AHCI
-interface. Please note that with this fix, SATA reset does not
-hang any more, but it can cause failures on the other interface
-if that is in active use.
-
-Unfortunately, we have nothing other the the CPU ID to check if the
-SATA block has this issue.
-
-Signed-off-by: Jayachandran C <jnair@caviumnetworks.com>
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/ata/libahci.c | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
-index 3159f9e66d8f..5f64275ef387 100644
---- a/drivers/ata/libahci.c
-+++ b/drivers/ata/libahci.c
-@@ -664,6 +664,20 @@ int ahci_stop_engine(struct ata_port *ap)
- tmp &= ~PORT_CMD_START;
- writel(tmp, port_mmio + PORT_CMD);
-
-+#ifdef CONFIG_ARM64
-+ /* Rev Ax of Cavium CN99XX needs a hack for port stop */
-+ if (MIDR_IS_CPU_MODEL_RANGE(read_cpuid_id(),
-+ MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN),
-+ MIDR_CPU_VAR_REV(0, 0),
-+ MIDR_CPU_VAR_REV(0, MIDR_REVISION_MASK))) {
-+ tmp = readl(hpriv->mmio + 0x8000);
-+ writel(tmp | (1 << 26), hpriv->mmio + 0x8000);
-+ udelay(1);
-+ writel(tmp & ~(1 << 26), hpriv->mmio + 0x8000);
-+ dev_warn(ap->host->dev, "CN99XX stop engine fix applied!\n");
-+ }
-+#endif
-+
- /* wait for engine to stop. This could be as long as 500 msec */
- tmp = ata_wait_register(ap, port_mmio + PORT_CMD,
- PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500);
---
-2.11.0
-
-From 4bd9ffa0dc3a064f1191b117cd3b43e2fa310c81 Mon Sep 17 00:00:00 2001
-From: Sunil Goutham <sgoutham@cavium.com>
-Date: Tue, 28 Mar 2017 16:11:12 +0530
-Subject: [PATCH 14/41] iommu/arm-smmu: Fix 16-bit ASID configuration
-
-16-bit ASID should be enabled before initializing TTBR0/1,
-otherwise only LSB 8-bit ASID will be considered. Hence
-moving configuration of TTBCR register ahead of TTBR0/1
-while initializing context bank.
-
-Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
-[will: rewrote comment]
-Signed-off-by: Will Deacon <will.deacon@arm.com>
-
-(cherry picked from commit 125458ab3aefe9cf2f72dcfe7338dc9ad967da0b)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/arm-smmu.c | 42 +++++++++++++++++++++++-------------------
- 1 file changed, 23 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
-index b493c99e17f7..9905f08058b6 100644
---- a/drivers/iommu/arm-smmu.c
-+++ b/drivers/iommu/arm-smmu.c
-@@ -758,6 +758,29 @@ static void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain,
- }
- writel_relaxed(reg, gr1_base + ARM_SMMU_GR1_CBAR(cfg->cbndx));
-
-+ /*
-+ * TTBCR
-+ * We must write this before the TTBRs, since it determines the
-+ * access behaviour of some fields (in particular, ASID[15:8]).
-+ */
-+ if (stage1) {
-+ if (cfg->fmt == ARM_SMMU_CTX_FMT_AARCH32_S) {
-+ reg = pgtbl_cfg->arm_v7s_cfg.tcr;
-+ reg2 = 0;
-+ } else {
-+ reg = pgtbl_cfg->arm_lpae_s1_cfg.tcr;
-+ reg2 = pgtbl_cfg->arm_lpae_s1_cfg.tcr >> 32;
-+ reg2 |= TTBCR2_SEP_UPSTREAM;
-+ if (cfg->fmt == ARM_SMMU_CTX_FMT_AARCH64)
-+ reg2 |= TTBCR2_AS;
-+ }
-+ if (smmu->version > ARM_SMMU_V1)
-+ writel_relaxed(reg2, cb_base + ARM_SMMU_CB_TTBCR2);
-+ } else {
-+ reg = pgtbl_cfg->arm_lpae_s2_cfg.vtcr;
-+ }
-+ writel_relaxed(reg, cb_base + ARM_SMMU_CB_TTBCR);
-+
- /* TTBRs */
- if (stage1) {
- u16 asid = ARM_SMMU_CB_ASID(smmu, cfg);
-@@ -781,25 +804,6 @@ static void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain,
- writeq_relaxed(reg64, cb_base + ARM_SMMU_CB_TTBR0);
- }
-
-- /* TTBCR */
-- if (stage1) {
-- if (cfg->fmt == ARM_SMMU_CTX_FMT_AARCH32_S) {
-- reg = pgtbl_cfg->arm_v7s_cfg.tcr;
-- reg2 = 0;
-- } else {
-- reg = pgtbl_cfg->arm_lpae_s1_cfg.tcr;
-- reg2 = pgtbl_cfg->arm_lpae_s1_cfg.tcr >> 32;
-- reg2 |= TTBCR2_SEP_UPSTREAM;
-- if (cfg->fmt == ARM_SMMU_CTX_FMT_AARCH64)
-- reg2 |= TTBCR2_AS;
-- }
-- if (smmu->version > ARM_SMMU_V1)
-- writel_relaxed(reg2, cb_base + ARM_SMMU_CB_TTBCR2);
-- } else {
-- reg = pgtbl_cfg->arm_lpae_s2_cfg.vtcr;
-- }
-- writel_relaxed(reg, cb_base + ARM_SMMU_CB_TTBCR);
--
- /* MAIRs (stage-1 only) */
- if (stage1) {
- if (cfg->fmt == ARM_SMMU_CTX_FMT_AARCH32_S) {
---
-2.11.0
-
-From a2eca90cb82c389bbe1da93a08355210e7c5c393 Mon Sep 17 00:00:00 2001
-From: Robert Richter <rrichter@cavium.com>
-Date: Mon, 13 Mar 2017 11:39:01 +0100
-Subject: [PATCH 15/41] iommu/arm-smmu: Print message when Cavium erratum 27704
- was detected
-
-Firmware is responsible for properly enabling smmu workarounds. Print
-a message for better diagnostics when Cavium erratum 27704 was
-detected.
-
-Reviewed-by: Robin Murphy <robin.murphy@arm.com>
-Signed-off-by: Robert Richter <rrichter@cavium.com>
-Signed-off-by: Will Deacon <will.deacon@arm.com>
-(cherry picked from commit 53c35dce45713d2a554109c21a8cd617d09eba50)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/arm-smmu.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
-index 9905f08058b6..e021b360e315 100644
---- a/drivers/iommu/arm-smmu.c
-+++ b/drivers/iommu/arm-smmu.c
-@@ -1891,6 +1891,7 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
- atomic_add_return(smmu->num_context_banks,
- &cavium_smmu_context_count);
- smmu->cavium_id_base -= smmu->num_context_banks;
-+ dev_notice(smmu->dev, "\tenabling workaround for Cavium erratum 27704\n");
- }
-
- /* ID2 */
---
-2.11.0
-
-From e319b8d378a4701d36030e140d17fb48aea1ff32 Mon Sep 17 00:00:00 2001
-From: Robert Richter <rrichter@cavium.com>
-Date: Thu, 16 Mar 2017 18:01:59 +0100
-Subject: [PATCH 16/41] iommu/arm-smmu, ACPI: Enable Cavium SMMU-v2
-
-In next IORT spec release there will be a definition of a Cavium
-specific model. Until then, enable the Cavium SMMU using cpu id
-registers. All versions of Cavium's SMMUv2 implementation must be
-enabled.
-
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/arm-smmu.c | 22 +++++++++++++++++++++-
- 1 file changed, 21 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
-index e021b360e315..24a1df09eaac 100644
---- a/drivers/iommu/arm-smmu.c
-+++ b/drivers/iommu/arm-smmu.c
-@@ -53,6 +53,8 @@
-
- #include <linux/amba/bus.h>
-
-+#include <asm/cputype.h>
-+
- #include "io-pgtable.h"
-
- /* Maximum number of context banks per SMMU */
-@@ -1986,6 +1988,24 @@ static const struct of_device_id arm_smmu_of_match[] = {
- MODULE_DEVICE_TABLE(of, arm_smmu_of_match);
-
- #ifdef CONFIG_ACPI
-+
-+static int acpi_smmu_enable_cavium(struct arm_smmu_device *smmu, int ret)
-+{
-+ u32 cpu_model;
-+
-+ if (!IS_ENABLED(CONFIG_ARM64))
-+ return ret;
-+
-+ cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK;
-+ if (cpu_model != MIDR_THUNDERX)
-+ return ret;
-+
-+ smmu->version = ARM_SMMU_V2;
-+ smmu->model = CAVIUM_SMMUV2;
-+
-+ return 0;
-+}
-+
- static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu)
- {
- int ret = 0;
-@@ -2008,7 +2028,7 @@ static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu)
- ret = -ENODEV;
- }
-
-- return ret;
-+ return acpi_smmu_enable_cavium(smmu, ret);
- }
-
- static int arm_smmu_device_acpi_probe(struct platform_device *pdev,
---
-2.11.0
-
-From 7d2abb4fa3e9dcebd3081cb91d84bd7339e29431 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon@arm.com>
-Date: Fri, 6 Jan 2017 16:28:17 +0000
-Subject: [PATCH 21/41] iommu/arm-smmu: Restrict domain attributes to UNMANAGED
- domains
-
-The ARM SMMU drivers provide a DOMAIN_ATTR_NESTING domain attribute,
-which allows callers of the IOMMU API to request that the page table
-for a domain is installed at stage-2, if supported by the hardware.
-
-Since setting this attribute only makes sense for UNMANAGED domains,
-this patch returns -ENODEV if the domain_{get,set}_attr operations are
-called on other domain types.
-
-Signed-off-by: Will Deacon <will.deacon@arm.com>
-(cherry picked from commit 0834cc28fa56c65887c614b6c045be2ba06fdcb0)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/arm-smmu-v3.c | 6 ++++++
- drivers/iommu/arm-smmu.c | 6 ++++++
- 2 files changed, 12 insertions(+)
-
-diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
-index 591bb96047c9..b47a88757c18 100644
---- a/drivers/iommu/arm-smmu-v3.c
-+++ b/drivers/iommu/arm-smmu-v3.c
-@@ -1837,6 +1837,9 @@ static int arm_smmu_domain_get_attr(struct iommu_domain *domain,
- {
- struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
-
-+ if (domain->type != IOMMU_DOMAIN_UNMANAGED)
-+ return -EINVAL;
-+
- switch (attr) {
- case DOMAIN_ATTR_NESTING:
- *(int *)data = (smmu_domain->stage == ARM_SMMU_DOMAIN_NESTED);
-@@ -1852,6 +1855,9 @@ static int arm_smmu_domain_set_attr(struct iommu_domain *domain,
- int ret = 0;
- struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
-
-+ if (domain->type != IOMMU_DOMAIN_UNMANAGED)
-+ return -EINVAL;
-+
- mutex_lock(&smmu_domain->init_mutex);
-
- switch (attr) {
-diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
-index 24a1df09eaac..cdedb0933d48 100644
---- a/drivers/iommu/arm-smmu.c
-+++ b/drivers/iommu/arm-smmu.c
-@@ -1555,6 +1555,9 @@ static int arm_smmu_domain_get_attr(struct iommu_domain *domain,
- {
- struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
-
-+ if (domain->type != IOMMU_DOMAIN_UNMANAGED)
-+ return -EINVAL;
-+
- switch (attr) {
- case DOMAIN_ATTR_NESTING:
- *(int *)data = (smmu_domain->stage == ARM_SMMU_DOMAIN_NESTED);
-@@ -1570,6 +1573,9 @@ static int arm_smmu_domain_set_attr(struct iommu_domain *domain,
- int ret = 0;
- struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
-
-+ if (domain->type != IOMMU_DOMAIN_UNMANAGED)
-+ return -EINVAL;
-+
- mutex_lock(&smmu_domain->init_mutex);
-
- switch (attr) {
---
-2.11.0
-
-From 2142445d92c24592e57646087340dbd425fdfb6b Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon@arm.com>
-Date: Fri, 6 Jan 2017 16:56:03 +0000
-Subject: [PATCH 22/41] iommu/arm-smmu: Install bypass S2CRs for
- IOMMU_DOMAIN_IDENTITY domains
-
-In preparation for allowing the default domain type to be overridden,
-this patch adds support for IOMMU_DOMAIN_IDENTITY domains to the
-ARM SMMU driver.
-
-An identity domain is created by placing the corresponding S2CR
-registers into "bypass" mode, which allows transactions to flow through
-the SMMU without any translation.
-
-Reviewed-by: Robin Murphy <robin.murphy@arm.com>
-Signed-off-by: Will Deacon <will.deacon@arm.com>
-(cherry picked from commit 61bc671179f19060be883068b6d3d82ae0b24bc0)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/arm-smmu.c | 20 +++++++++++++++++---
- 1 file changed, 17 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
-index cdedb0933d48..88e9131b6900 100644
---- a/drivers/iommu/arm-smmu.c
-+++ b/drivers/iommu/arm-smmu.c
-@@ -418,6 +418,7 @@ enum arm_smmu_domain_stage {
- ARM_SMMU_DOMAIN_S1 = 0,
- ARM_SMMU_DOMAIN_S2,
- ARM_SMMU_DOMAIN_NESTED,
-+ ARM_SMMU_DOMAIN_BYPASS,
- };
-
- struct arm_smmu_domain {
-@@ -844,6 +845,12 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
- if (smmu_domain->smmu)
- goto out_unlock;
-
-+ if (domain->type == IOMMU_DOMAIN_IDENTITY) {
-+ smmu_domain->stage = ARM_SMMU_DOMAIN_BYPASS;
-+ smmu_domain->smmu = smmu;
-+ goto out_unlock;
-+ }
-+
- /*
- * Mapping the requested stage onto what we support is surprisingly
- * complicated, mainly because the spec allows S1+S2 SMMUs without
-@@ -1004,7 +1011,7 @@ static void arm_smmu_destroy_domain_context(struct iommu_domain *domain)
- void __iomem *cb_base;
- int irq;
-
-- if (!smmu)
-+ if (!smmu || domain->type == IOMMU_DOMAIN_IDENTITY)
- return;
-
- /*
-@@ -1027,7 +1034,9 @@ static struct iommu_domain *arm_smmu_domain_alloc(unsigned type)
- {
- struct arm_smmu_domain *smmu_domain;
-
-- if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA)
-+ if (type != IOMMU_DOMAIN_UNMANAGED &&
-+ type != IOMMU_DOMAIN_DMA &&
-+ type != IOMMU_DOMAIN_IDENTITY)
- return NULL;
- /*
- * Allocate the domain and initialise some of its data structures.
-@@ -1256,10 +1265,15 @@ static int arm_smmu_domain_add_master(struct arm_smmu_domain *smmu_domain,
- {
- struct arm_smmu_device *smmu = smmu_domain->smmu;
- struct arm_smmu_s2cr *s2cr = smmu->s2crs;
-- enum arm_smmu_s2cr_type type = S2CR_TYPE_TRANS;
- u8 cbndx = smmu_domain->cfg.cbndx;
-+ enum arm_smmu_s2cr_type type;
- int i, idx;
-
-+ if (smmu_domain->stage == ARM_SMMU_DOMAIN_BYPASS)
-+ type = S2CR_TYPE_BYPASS;
-+ else
-+ type = S2CR_TYPE_TRANS;
-+
- for_each_cfg_sme(fwspec, i, idx) {
- if (type == s2cr[idx].type && cbndx == s2cr[idx].cbndx)
- continue;
---
-2.11.0
-
-From 5f43f8eb48ae0c6c6c74b4a299e5ba1d6d1fe0b3 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon@arm.com>
-Date: Wed, 1 Mar 2017 21:11:29 +0000
-Subject: [PATCH 23/41] iommu/arm-smmu-v3: Make arm_smmu_install_ste_for_dev
- return void
-
-arm_smmu_install_ste_for_dev cannot fail and always returns 0, however
-the fact that it returns int means that callers end up implementing
-redundant error handling code which complicates STE tracking and is
-never executed.
-
-This patch changes the return type of arm_smmu_install_ste_for_dev
-to void, to make it explicit that it cannot fail.
-
-Signed-off-by: Will Deacon <will.deacon@arm.com>
-(cherry picked from commit 67560edcd8e5c57eccec4df562abbfc21c17ad75)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/arm-smmu-v3.c | 12 +++---------
- 1 file changed, 3 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
-index b47a88757c18..97be8de3e834 100644
---- a/drivers/iommu/arm-smmu-v3.c
-+++ b/drivers/iommu/arm-smmu-v3.c
-@@ -1579,7 +1579,7 @@ static __le64 *arm_smmu_get_step_for_sid(struct arm_smmu_device *smmu, u32 sid)
- return step;
- }
-
--static int arm_smmu_install_ste_for_dev(struct iommu_fwspec *fwspec)
-+static void arm_smmu_install_ste_for_dev(struct iommu_fwspec *fwspec)
- {
- int i;
- struct arm_smmu_master_data *master = fwspec->iommu_priv;
-@@ -1591,8 +1591,6 @@ static int arm_smmu_install_ste_for_dev(struct iommu_fwspec *fwspec)
-
- arm_smmu_write_strtab_ent(smmu, sid, step, &master->ste);
- }
--
-- return 0;
- }
-
- static void arm_smmu_detach_dev(struct device *dev)
-@@ -1600,8 +1598,7 @@ static void arm_smmu_detach_dev(struct device *dev)
- struct arm_smmu_master_data *master = dev->iommu_fwspec->iommu_priv;
-
- master->ste.bypass = true;
-- if (arm_smmu_install_ste_for_dev(dev->iommu_fwspec) < 0)
-- dev_warn(dev, "failed to install bypass STE\n");
-+ arm_smmu_install_ste_for_dev(dev->iommu_fwspec);
- }
-
- static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
-@@ -1653,10 +1650,7 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
- ste->s2_cfg = &smmu_domain->s2_cfg;
- }
-
-- ret = arm_smmu_install_ste_for_dev(dev->iommu_fwspec);
-- if (ret < 0)
-- ste->valid = false;
--
-+ arm_smmu_install_ste_for_dev(dev->iommu_fwspec);
- out_unlock:
- mutex_unlock(&smmu_domain->init_mutex);
- return ret;
---
-2.11.0
-
-From 2e7b81f22936290d872bc624599f7c25f7513829 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon@arm.com>
-Date: Fri, 6 Jan 2017 16:27:30 +0000
-Subject: [PATCH 24/41] iommu/arm-smmu-v3: Install bypass STEs for
- IOMMU_DOMAIN_IDENTITY domains
-
-In preparation for allowing the default domain type to be overridden,
-this patch adds support for IOMMU_DOMAIN_IDENTITY domains to the
-ARM SMMUv3 driver.
-
-An identity domain is created by placing the corresponding stream table
-entries into "bypass" mode, which allows transactions to flow through
-the SMMU without any translation.
-
-Signed-off-by: Will Deacon <will.deacon@arm.com>
-(cherry picked from commit beb3c6a066bff1ba412f983cb9d1a42f4cd8f76a)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/arm-smmu-v3.c | 58 +++++++++++++++++++++++++++++----------------
- 1 file changed, 37 insertions(+), 21 deletions(-)
-
-diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
-index 97be8de3e834..803352d78d43 100644
---- a/drivers/iommu/arm-smmu-v3.c
-+++ b/drivers/iommu/arm-smmu-v3.c
-@@ -554,9 +554,14 @@ struct arm_smmu_s2_cfg {
- };
-
- struct arm_smmu_strtab_ent {
-- bool valid;
--
-- bool bypass; /* Overrides s1/s2 config */
-+ /*
-+ * An STE is "assigned" if the master emitting the corresponding SID
-+ * is attached to a domain. The behaviour of an unassigned STE is
-+ * determined by the disable_bypass parameter, whereas an assigned
-+ * STE behaves according to s1_cfg/s2_cfg, which themselves are
-+ * configured according to the domain type.
-+ */
-+ bool assigned;
- struct arm_smmu_s1_cfg *s1_cfg;
- struct arm_smmu_s2_cfg *s2_cfg;
- };
-@@ -632,6 +637,7 @@ enum arm_smmu_domain_stage {
- ARM_SMMU_DOMAIN_S1 = 0,
- ARM_SMMU_DOMAIN_S2,
- ARM_SMMU_DOMAIN_NESTED,
-+ ARM_SMMU_DOMAIN_BYPASS,
- };
-
- struct arm_smmu_domain {
-@@ -1005,9 +1011,9 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_device *smmu, u32 sid,
- * This is hideously complicated, but we only really care about
- * three cases at the moment:
- *
-- * 1. Invalid (all zero) -> bypass (init)
-- * 2. Bypass -> translation (attach)
-- * 3. Translation -> bypass (detach)
-+ * 1. Invalid (all zero) -> bypass/fault (init)
-+ * 2. Bypass/fault -> translation/bypass (attach)
-+ * 3. Translation/bypass -> bypass/fault (detach)
- *
- * Given that we can't update the STE atomically and the SMMU
- * doesn't read the thing in a defined order, that leaves us
-@@ -1046,11 +1052,15 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_device *smmu, u32 sid,
- }
-
- /* Nuke the existing STE_0 value, as we're going to rewrite it */
-- val = ste->valid ? STRTAB_STE_0_V : 0;
-+ val = STRTAB_STE_0_V;
-+
-+ /* Bypass/fault */
-+ if (!ste->assigned || !(ste->s1_cfg || ste->s2_cfg)) {
-+ if (!ste->assigned && disable_bypass)
-+ val |= STRTAB_STE_0_CFG_ABORT;
-+ else
-+ val |= STRTAB_STE_0_CFG_BYPASS;
-
-- if (ste->bypass) {
-- val |= disable_bypass ? STRTAB_STE_0_CFG_ABORT
-- : STRTAB_STE_0_CFG_BYPASS;
- dst[0] = cpu_to_le64(val);
- dst[1] = cpu_to_le64(STRTAB_STE_1_SHCFG_INCOMING
- << STRTAB_STE_1_SHCFG_SHIFT);
-@@ -1111,10 +1121,7 @@ static void arm_smmu_write_strtab_ent(struct arm_smmu_device *smmu, u32 sid,
- static void arm_smmu_init_bypass_stes(u64 *strtab, unsigned int nent)
- {
- unsigned int i;
-- struct arm_smmu_strtab_ent ste = {
-- .valid = true,
-- .bypass = true,
-- };
-+ struct arm_smmu_strtab_ent ste = { .assigned = false };
-
- for (i = 0; i < nent; ++i) {
- arm_smmu_write_strtab_ent(NULL, -1, strtab, &ste);
-@@ -1378,7 +1385,9 @@ static struct iommu_domain *arm_smmu_domain_alloc(unsigned type)
- {
- struct arm_smmu_domain *smmu_domain;
-
-- if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA)
-+ if (type != IOMMU_DOMAIN_UNMANAGED &&
-+ type != IOMMU_DOMAIN_DMA &&
-+ type != IOMMU_DOMAIN_IDENTITY)
- return NULL;
-
- /*
-@@ -1509,6 +1518,11 @@ static int arm_smmu_domain_finalise(struct iommu_domain *domain)
- struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
- struct arm_smmu_device *smmu = smmu_domain->smmu;
-
-+ if (domain->type == IOMMU_DOMAIN_IDENTITY) {
-+ smmu_domain->stage = ARM_SMMU_DOMAIN_BYPASS;
-+ return 0;
-+ }
-+
- /* Restrict the stage to what we can actually support */
- if (!(smmu->features & ARM_SMMU_FEAT_TRANS_S1))
- smmu_domain->stage = ARM_SMMU_DOMAIN_S2;
-@@ -1597,7 +1611,7 @@ static void arm_smmu_detach_dev(struct device *dev)
- {
- struct arm_smmu_master_data *master = dev->iommu_fwspec->iommu_priv;
-
-- master->ste.bypass = true;
-+ master->ste.assigned = false;
- arm_smmu_install_ste_for_dev(dev->iommu_fwspec);
- }
-
-@@ -1617,7 +1631,7 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
- ste = &master->ste;
-
- /* Already attached to a different domain? */
-- if (!ste->bypass)
-+ if (ste->assigned)
- arm_smmu_detach_dev(dev);
-
- mutex_lock(&smmu_domain->init_mutex);
-@@ -1638,10 +1652,12 @@ static int arm_smmu_attach_dev(struct iommu_domain *domain, struct device *dev)
- goto out_unlock;
- }
-
-- ste->bypass = false;
-- ste->valid = true;
-+ ste->assigned = true;
-
-- if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) {
-+ if (smmu_domain->stage == ARM_SMMU_DOMAIN_BYPASS) {
-+ ste->s1_cfg = NULL;
-+ ste->s2_cfg = NULL;
-+ } else if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) {
- ste->s1_cfg = &smmu_domain->s1_cfg;
- ste->s2_cfg = NULL;
- arm_smmu_write_ctx_desc(smmu, ste->s1_cfg);
-@@ -1801,7 +1817,7 @@ static void arm_smmu_remove_device(struct device *dev)
-
- master = fwspec->iommu_priv;
- smmu = master->smmu;
-- if (master && master->ste.valid)
-+ if (master && master->ste.assigned)
- arm_smmu_detach_dev(dev);
- iommu_group_remove_device(dev);
- iommu_device_unlink(&smmu->iommu, dev);
---
-2.11.0
-
-From ed65b7b197ed312ee0aa1d347240061dbc8fd4cf Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon@arm.com>
-Date: Thu, 5 Jan 2017 18:38:26 +0000
-Subject: [PATCH 25/41] iommu: Allow default domain type to be set on the
- kernel command line
-
-The IOMMU core currently initialises the default domain for each group
-to IOMMU_DOMAIN_DMA, under the assumption that devices will use
-IOMMU-backed DMA ops by default. However, in some cases it is desirable
-for the DMA ops to bypass the IOMMU for performance reasons, reserving
-use of translation for subsystems such as VFIO that require it for
-enforcing device isolation.
-
-Rather than modify each IOMMU driver to provide different semantics for
-DMA domains, instead we introduce a command line parameter that can be
-used to change the type of the default domain. Passthrough can then be
-specified using "iommu.passthrough=1" on the kernel command line.
-
-Signed-off-by: Will Deacon <will.deacon@arm.com>
-(cherry picked from commit fccb4e3b8ab0957628abec82675691c72f67003e)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- Documentation/admin-guide/kernel-parameters.txt | 6 ++++++
- drivers/iommu/iommu.c | 28 ++++++++++++++++++++++---
- 2 files changed, 31 insertions(+), 3 deletions(-)
-
-diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index facc20a3f962..cb91f26cc8bc 100644
---- a/Documentation/admin-guide/kernel-parameters.txt
-+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -1644,6 +1644,12 @@
- nobypass [PPC/POWERNV]
- Disable IOMMU bypass, using IOMMU for PCI devices.
-
-+ iommu.passthrough=
-+ [ARM64] Configure DMA to bypass the IOMMU by default.
-+ Format: { "0" | "1" }
-+ 0 - Use IOMMU translation for DMA.
-+ 1 - Bypass the IOMMU for DMA.
-+ unset - Use IOMMU translation for DMA.
-
- io7= [HW] IO7 for Marvel based alpha systems
- See comment before marvel_specify_io7 in
-diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
-index 3b67144dead2..770ba7e7ef4d 100644
---- a/drivers/iommu/iommu.c
-+++ b/drivers/iommu/iommu.c
-@@ -36,6 +36,7 @@
-
- static struct kset *iommu_group_kset;
- static DEFINE_IDA(iommu_group_ida);
-+static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_DMA;
-
- struct iommu_callback_data {
- const struct iommu_ops *ops;
-@@ -112,6 +113,18 @@ static int __iommu_attach_group(struct iommu_domain *domain,
- static void __iommu_detach_group(struct iommu_domain *domain,
- struct iommu_group *group);
-
-+static int __init iommu_set_def_domain_type(char *str)
-+{
-+ bool pt;
-+
-+ if (!str || strtobool(str, &pt))
-+ return -EINVAL;
-+
-+ iommu_def_domain_type = pt ? IOMMU_DOMAIN_IDENTITY : IOMMU_DOMAIN_DMA;
-+ return 0;
-+}
-+early_param("iommu.passthrough", iommu_set_def_domain_type);
-+
- static ssize_t iommu_group_attr_show(struct kobject *kobj,
- struct attribute *__attr, char *buf)
- {
-@@ -1015,10 +1028,19 @@ struct iommu_group *iommu_group_get_for_dev(struct device *dev)
- * IOMMU driver.
- */
- if (!group->default_domain) {
-- group->default_domain = __iommu_domain_alloc(dev->bus,
-- IOMMU_DOMAIN_DMA);
-+ struct iommu_domain *dom;
-+
-+ dom = __iommu_domain_alloc(dev->bus, iommu_def_domain_type);
-+ if (!dom && iommu_def_domain_type != IOMMU_DOMAIN_DMA) {
-+ dev_warn(dev,
-+ "failed to allocate default IOMMU domain of type %u; falling back to IOMMU_DOMAIN_DMA",
-+ iommu_def_domain_type);
-+ dom = __iommu_domain_alloc(dev->bus, IOMMU_DOMAIN_DMA);
-+ }
-+
-+ group->default_domain = dom;
- if (!group->domain)
-- group->domain = group->default_domain;
-+ group->domain = dom;
- }
-
- ret = iommu_group_add_device(group, dev);
---
-2.11.0
-
-From 11eb465df795bea2c26cb3877ceb606336406a32 Mon Sep 17 00:00:00 2001
-From: Robert Richter <rrichter@cavium.com>
-Date: Wed, 12 Apr 2017 15:06:03 +0200
-Subject: [PATCH 26/41] iommu: Print a message with the default domain type
- created
-
-There are several ways the bypass mode can be enabled. With commit
-
- fccb4e3b8ab0 iommu: Allow default domain type to be set on the kernel command line
-
-there is the option to switch into bypass mode. And, depending on
-devicetree options, bypass mode can be also enabled. This makes it
-hard to determine if direct mapping is enabled. Print message with the
-default domain type case.
-
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/iommu.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
-index 770ba7e7ef4d..b698732c6f91 100644
---- a/drivers/iommu/iommu.c
-+++ b/drivers/iommu/iommu.c
-@@ -599,7 +599,9 @@ int iommu_group_add_device(struct iommu_group *group, struct device *dev)
-
- trace_add_device_to_group(group->id, dev);
-
-- pr_info("Adding device %s to group %d\n", dev_name(dev), group->id);
-+ pr_info("Adding device %s to group %d, default domain type %d\n",
-+ dev_name(dev), group->id,
-+ group->default_domain ? group->default_domain->type : -1);
-
- return 0;
-
---
-2.11.0
-
-From 8045df4924b41d303cd0599f1ed1ff9b23bed036 Mon Sep 17 00:00:00 2001
-From: Sunil Goutham <sgoutham@cavium.com>
-Date: Tue, 25 Apr 2017 15:27:52 +0530
-Subject: [PATCH 27/41] iommu/arm-smmu: Return IOVA in iova_to_phys when SMMU
- is bypassed
-
-For software initiated address translation, when domain type is
-IOMMU_DOMAIN_IDENTITY i.e SMMU is bypassed, mimic HW behavior
-i.e return the same IOVA as translated address.
-
-This patch is an extension to Will Deacon's patchset
-"Implement SMMU passthrough using the default domain".
-
-Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
-Acked-by: Will Deacon <will.deacon@arm.com>
-Signed-off-by: Joerg Roedel <jroedel@suse.de>
-(cherry picked from commit bdf95923086fb359ccb44c815724c3ace1611c90)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/arm-smmu-v3.c | 3 +++
- drivers/iommu/arm-smmu.c | 3 +++
- 2 files changed, 6 insertions(+)
-
-diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
-index 803352d78d43..6ef9c3ed4344 100644
---- a/drivers/iommu/arm-smmu-v3.c
-+++ b/drivers/iommu/arm-smmu-v3.c
-@@ -1714,6 +1714,9 @@ arm_smmu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
- struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
- struct io_pgtable_ops *ops = smmu_domain->pgtbl_ops;
-
-+ if (domain->type == IOMMU_DOMAIN_IDENTITY)
-+ return iova;
-+
- if (!ops)
- return 0;
-
-diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
-index 88e9131b6900..e731d8ead6cc 100644
---- a/drivers/iommu/arm-smmu.c
-+++ b/drivers/iommu/arm-smmu.c
-@@ -1411,6 +1411,9 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
- struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
- struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
-
-+ if (domain->type == IOMMU_DOMAIN_IDENTITY)
-+ return iova;
-+
- if (!ops)
- return 0;
-
---
-2.11.0
-
-From fecd86ffe12e5c49f22325faf732eaf5cfe8c62b Mon Sep 17 00:00:00 2001
-From: Robert Richter <rrichter@cavium.com>
-Date: Thu, 4 May 2017 17:48:48 +0200
-Subject: [PATCH 28/41] iommu, aarch64: Set bypass mode per default
-
-We see a performance degradation if smmu is enabled in non-bypass mode.
-This is a problem in the kernel's implememntation. Until that is solved,
-enable smmu in bypass mode per default.
-
-We have tested that SMMU passthrough mode doesn't effect VFIO on both
-CN88xx and CN99xx and haven't found any issues.
-
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/iommu/iommu.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
-index b698732c6f91..41125b19832b 100644
---- a/drivers/iommu/iommu.c
-+++ b/drivers/iommu/iommu.c
-@@ -36,7 +36,12 @@
-
- static struct kset *iommu_group_kset;
- static DEFINE_IDA(iommu_group_ida);
-+
-+#ifdef CONFIG_ARM64
-+static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_IDENTITY;
-+#else
- static unsigned int iommu_def_domain_type = IOMMU_DOMAIN_DMA;
-+#endif
-
- struct iommu_callback_data {
- const struct iommu_ops *ops;
---
-2.11.0
-
-From patchwork Mon May 22 15:06:37 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2,1/2] ACPICA: IORT: Update SMMU models for IORT rev. C
-From: Robin Murphy <robin.murphy@arm.com>
-X-Patchwork-Id: 9740941
-Message-Id: <11ef7d28c535c01d42b7b3c8e632934f0e0f1048.1495459319.git.robin.murphy@arm.com>
-To: will.deacon@arm.com,
- joro@8bytes.org
-Cc: lorenzo.pieralisi@arm.com, gabriele.paoloni@huawei.com,
- gakula@caviumnetworks.com, rjw@rjwysocki.net, robert.moore@intel.com,
- shameerali.kolothum.thodi@huawei.com, rrichter@cavium.com,
- linux-acpi@vger.kernel.org, iommu@lists.linux-foundation.org,
- hanjun.guo@linaro.org, linu.cherian@cavium.com, john.garry@huawei.com,
- linux-arm-kernel@lists.infradead.org, lv.zheng@intel.com
-Date: Mon, 22 May 2017 16:06:37 +0100
-
-IORT revision C has been published with a number of new SMMU
-implementation identifiers. Since IORT doesn't have any way of falling
-back to a more generic model code, we really need Linux to know about
-these before vendors start updating their firmware tables to use them.
-
-CC: Rafael J. Wysocki <rjw@rjwysocki.net>
-CC: Robert Moore <robert.moore@intel.com>
-CC: Lv Zheng <lv.zheng@intel.com>
-Acked-by: Robert Richter <rrichter@cavium.com>
-Tested-by: Robert Richter <rrichter@cavium.com>
-Signed-off-by: Robin Murphy <robin.murphy@arm.com>
-Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
----
-
-v2: Update more comments, add Robert's tags.
-
-I'm including this here as a kernel patch just for context - once I've
-figured out how we actually submit patches to ACPICA directly, I'll do
-that per the preferred process.
-
-Robin.
-
- include/acpi/actbl2.h | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
-index faa9f2c0d5de..f469ea41f2fd 100644
---- a/include/acpi/actbl2.h
-+++ b/include/acpi/actbl2.h
-@@ -663,7 +663,7 @@ struct acpi_ibft_target {
- * IORT - IO Remapping Table
- *
- * Conforms to "IO Remapping Table System Software on ARM Platforms",
-- * Document number: ARM DEN 0049B, October 2015
-+ * Document number: ARM DEN 0049C, May 2017
- *
- ******************************************************************************/
-
-@@ -778,6 +778,8 @@ struct acpi_iort_smmu {
- #define ACPI_IORT_SMMU_V2 0x00000001 /* Generic SMMUv2 */
- #define ACPI_IORT_SMMU_CORELINK_MMU400 0x00000002 /* ARM Corelink MMU-400 */
- #define ACPI_IORT_SMMU_CORELINK_MMU500 0x00000003 /* ARM Corelink MMU-500 */
-+#define ACPI_IORT_SMMU_CORELINK_MMU401 0x00000004 /* ARM Corelink MMU-401 */
-+#define ACPI_IORT_SMMU_CAVIUM_SMMUV2 0x00000005 /* Cavium ThunderX SMMUv2 */
-
- /* Masks for Flags field above */
-
-@@ -798,13 +800,19 @@ struct acpi_iort_smmu_v3 {
- u32 flags;
- u32 reserved;
- u64 vatos_address;
-- u32 model; /* O: generic SMMUv3 */
-+ u32 model;
- u32 event_gsiv;
- u32 pri_gsiv;
- u32 gerr_gsiv;
- u32 sync_gsiv;
- };
-
-+/* Values for Model field above */
-+
-+#define ACPI_IORT_SMMU_V3 0x00000000 /* Generic SMMUv3 */
-+#define ACPI_IORT_SMMU_HISILICON_HI161X 0x00000001 /* HiSilicon Hi161x SMMUv3 */
-+#define ACPI_IORT_SMMU_CAVIUM_CN99XX 0x00000002 /* Cavium CN99xx SMMUv3 */
-+
- /* Masks for Flags field above */
-
- #define ACPI_IORT_SMMU_V3_COHACC_OVERRIDE (1)
-From patchwork Mon May 22 15:06:38 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2,2/2] iommu/arm-smmu: Plumb in new ACPI identifiers
-From: Robin Murphy <robin.murphy@arm.com>
-X-Patchwork-Id: 9740939
-Message-Id: <ac4e7adc7ca636fc71e6a10f0d8ab273b3dfd5dc.1495459319.git.robin.murphy@arm.com>
-To: will.deacon@arm.com,
- joro@8bytes.org
-Cc: lorenzo.pieralisi@arm.com, gabriele.paoloni@huawei.com,
- gakula@caviumnetworks.com, shameerali.kolothum.thodi@huawei.com,
- rrichter@cavium.com, linux-acpi@vger.kernel.org,
- iommu@lists.linux-foundation.org, hanjun.guo@linaro.org,
- linu.cherian@cavium.com, stable@vger.kernel.org, john.garry@huawei.com,
- linux-arm-kernel@lists.infradead.org
-Date: Mon, 22 May 2017 16:06:38 +0100
-
-Revision C of IORT now allows us to identify ARM MMU-401 and the Cavium
-ThunderX implementation. Wire them up so that we can probe these models
-once firmware starts using the new codes, and so that the appropriate
-features and quirks get enabled when we do.
-
-For the sake of backports and mitigating sychronisation problems with
-the ACPICA headers, we'll carry a backup copy of the new definitions
-locally for the short term to make life simpler.
-
-CC: stable@vger.kernel.org # 4.10
-Acked-by: Robert Richter <rrichter@cavium.com>
-Tested-by: Robert Richter <rrichter@cavium.com>
-Signed-off-by: Robin Murphy <robin.murphy@arm.com>
----
-
-v2: Add local backup definitions
-
-This is ready to go regardless of patch 1. The stable backport is in likely
-anticipation of machines with updated firmware paired with stable distro
-kernels, which would be unable to recognise and probe the SMMU otherwise.
-
-Robin.
-
- drivers/iommu/arm-smmu.c | 16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
-index 7ec30b08b3bd..79b9bb7d4783 100644
---- a/drivers/iommu/arm-smmu.c
-+++ b/drivers/iommu/arm-smmu.c
-@@ -312,6 +312,14 @@ enum arm_smmu_implementation {
- CAVIUM_SMMUV2,
- };
-
-+/* Until ACPICA headers cover IORT rev. C */
-+#ifndef ACPI_IORT_SMMU_CORELINK_MMU401
-+#define ACPI_IORT_SMMU_CORELINK_MMU401 0x4
-+#endif
-+#ifndef ACPI_IORT_SMMU_CAVIUM_SMMUV2
-+#define ACPI_IORT_SMMU_CAVIUM_SMMUV2 0x5
-+#endif
-+
- struct arm_smmu_s2cr {
- struct iommu_group *group;
- int count;
-@@ -2073,6 +2081,10 @@ static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu)
- smmu->version = ARM_SMMU_V1;
- smmu->model = GENERIC_SMMU;
- break;
-+ case ACPI_IORT_SMMU_CORELINK_MMU401:
-+ smmu->version = ARM_SMMU_V1_64K;
-+ smmu->model = GENERIC_SMMU;
-+ break;
- case ACPI_IORT_SMMU_V2:
- smmu->version = ARM_SMMU_V2;
- smmu->model = GENERIC_SMMU;
-@@ -2081,6 +2093,10 @@ static int acpi_smmu_get_data(u32 model, struct arm_smmu_device *smmu)
- smmu->version = ARM_SMMU_V2;
- smmu->model = ARM_MMU500;
- break;
-+ case ACPI_IORT_SMMU_CAVIUM_SMMUV2:
-+ smmu->version = ARM_SMMU_V2;
-+ smmu->model = CAVIUM_SMMUV2;
-+ break;
- default:
- ret = -ENODEV;
- }
-From 980ec2906ad4e92a89e8f635a79eba90318b22d5 Mon Sep 17 00:00:00 2001
-From: Linu Cherian <linu.cherian@cavium.com>
-Date: Fri, 12 May 2017 18:11:04 +0530
-Subject: [PATCH 31/41] ACPI/IORT: Fixup SMMUv3 resource size for Cavium
- ThunderX2 SMMUv3 model
-
-Cavium ThunderX2 implementation doesn't support second page in SMMU
-register space. Hence, resource size is set as 64k for this model.
-
-Signed-off-by: Linu Cherian <linu.cherian@cavium.com>
-Signed-off-by: Geetha Sowjanya <geethasowjanya.akula@cavium.com>
-Message-Id: <1494592866-14076-2-git-send-email-gakula@caviumnetworks.com>
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/acpi/arm64/iort.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
-index 4a5bb967250b..9fd2f1d31a27 100644
---- a/drivers/acpi/arm64/iort.c
-+++ b/drivers/acpi/arm64/iort.c
-@@ -669,12 +669,20 @@ static void __init arm_smmu_v3_init_resources(struct resource *res,
- {
- struct acpi_iort_smmu_v3 *smmu;
- int num_res = 0;
-+ unsigned long size = SZ_128K;
-
- /* Retrieve SMMUv3 specific data */
- smmu = (struct acpi_iort_smmu_v3 *)node->node_data;
-
-+ /*
-+ * Override the size, for Cavium ThunderX2 implementation
-+ * which doesn't support the page 1 SMMU register space.
-+ */
-+ if (smmu->model == ACPI_IORT_SMMU_CAVIUM_CN99XX)
-+ size = SZ_64K;
-+
- res[num_res].start = smmu->base_address;
-- res[num_res].end = smmu->base_address + SZ_128K - 1;
-+ res[num_res].end = smmu->base_address + size - 1;
- res[num_res].flags = IORESOURCE_MEM;
-
- num_res++;
---
-2.11.0
-
-From d082f66524ad8653793fc753dbff2b369b3cafe8 Mon Sep 17 00:00:00 2001
-From: Linu Cherian <linu.cherian@cavium.com>
-Date: Fri, 12 May 2017 18:11:05 +0530
-Subject: [PATCH 32/41] iommu/arm-smmu-v3: Add workaround for Cavium ThunderX2
- erratum #74
-
-Cavium ThunderX2 SMMU implementation doesn't support page 1 register space
-and PAGE0_REGS_ONLY option is enabled as an errata workaround.
-This option when turned on, replaces all page 1 offsets used for
-EVTQ_PROD/CONS, PRIQ_PROD/CONS register access with page 0 offsets.
-
-SMMU resource size checks are now based on SMMU option PAGE0_REGS_ONLY,
-since resource size can be either 64k/128k.
-For this, arm_smmu_device_dt_probe/acpi_probe has been moved before
-platform_get_resource call, so that SMMU options are set beforehand.
-
-Signed-off-by: Linu Cherian <linu.cherian@cavium.com>
-Signed-off-by: Geetha Sowjanya <geethasowjanya.akula@cavium.com>
-Message-Id: <1494592866-14076-3-git-send-email-gakula@caviumnetworks.com>
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- Documentation/arm64/silicon-errata.txt | 1 +
- .../devicetree/bindings/iommu/arm,smmu-v3.txt | 6 ++
- drivers/iommu/arm-smmu-v3.c | 64 +++++++++++++++++-----
- 3 files changed, 56 insertions(+), 15 deletions(-)
-
-diff --git a/Documentation/arm64/silicon-errata.txt b/Documentation/arm64/silicon-errata.txt
-index 2f66683500b8..629e2ce1f0d2 100644
---- a/Documentation/arm64/silicon-errata.txt
-+++ b/Documentation/arm64/silicon-errata.txt
-@@ -61,6 +61,7 @@ stable kernels.
- | Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |
- | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
- | Cavium | ThunderX SMMUv2 | #27704 | N/A |
-+| Cavium | ThunderX2 SMMUv3| #74 | N/A |
- | | | | |
- | Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
- | | | | |
-diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt
-index be57550e14e4..e6da62b3a3ff 100644
---- a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt
-+++ b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt
-@@ -49,6 +49,12 @@ the PCIe specification.
- - hisilicon,broken-prefetch-cmd
- : Avoid sending CMD_PREFETCH_* commands to the SMMU.
-
-+- cavium-cn99xx,broken-page1-regspace
-+ : Replaces all page 1 offsets used for EVTQ_PROD/CONS,
-+ PRIQ_PROD/CONS register access with page 0 offsets.
-+ Set for Caviun ThunderX2 silicon that doesn't support
-+ SMMU page1 register space.
-+
- ** Example
-
- smmu@2b400000 {
-diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
-index 6ef9c3ed4344..913805429f80 100644
---- a/drivers/iommu/arm-smmu-v3.c
-+++ b/drivers/iommu/arm-smmu-v3.c
-@@ -412,6 +412,9 @@
- #define MSI_IOVA_BASE 0x8000000
- #define MSI_IOVA_LENGTH 0x100000
-
-+#define ARM_SMMU_PAGE0_REGS_ONLY(smmu) \
-+ ((smmu)->options & ARM_SMMU_OPT_PAGE0_REGS_ONLY)
-+
- static bool disable_bypass;
- module_param_named(disable_bypass, disable_bypass, bool, S_IRUGO);
- MODULE_PARM_DESC(disable_bypass,
-@@ -597,6 +600,7 @@ struct arm_smmu_device {
- u32 features;
-
- #define ARM_SMMU_OPT_SKIP_PREFETCH (1 << 0)
-+#define ARM_SMMU_OPT_PAGE0_REGS_ONLY (1 << 1)
- u32 options;
-
- struct arm_smmu_cmdq cmdq;
-@@ -663,9 +667,19 @@ struct arm_smmu_option_prop {
-
- static struct arm_smmu_option_prop arm_smmu_options[] = {
- { ARM_SMMU_OPT_SKIP_PREFETCH, "hisilicon,broken-prefetch-cmd" },
-+ { ARM_SMMU_OPT_PAGE0_REGS_ONLY, "cavium-cn99xx,broken-page1-regspace"},
- { 0, NULL},
- };
-
-+static inline void __iomem *arm_smmu_page1_fixup(unsigned long offset,
-+ struct arm_smmu_device *smmu)
-+{
-+ if (offset > SZ_64K && ARM_SMMU_PAGE0_REGS_ONLY(smmu))
-+ offset -= SZ_64K;
-+
-+ return smmu->base + offset;
-+}
-+
- static struct arm_smmu_domain *to_smmu_domain(struct iommu_domain *dom)
- {
- return container_of(dom, struct arm_smmu_domain, domain);
-@@ -1959,8 +1973,8 @@ static int arm_smmu_init_one_queue(struct arm_smmu_device *smmu,
- return -ENOMEM;
- }
-
-- q->prod_reg = smmu->base + prod_off;
-- q->cons_reg = smmu->base + cons_off;
-+ q->prod_reg = arm_smmu_page1_fixup(prod_off, smmu);
-+ q->cons_reg = arm_smmu_page1_fixup(cons_off, smmu);
- q->ent_dwords = dwords;
-
- q->q_base = Q_BASE_RWA;
-@@ -2361,8 +2375,10 @@ static int arm_smmu_device_reset(struct arm_smmu_device *smmu, bool bypass)
-
- /* Event queue */
- writeq_relaxed(smmu->evtq.q.q_base, smmu->base + ARM_SMMU_EVTQ_BASE);
-- writel_relaxed(smmu->evtq.q.prod, smmu->base + ARM_SMMU_EVTQ_PROD);
-- writel_relaxed(smmu->evtq.q.cons, smmu->base + ARM_SMMU_EVTQ_CONS);
-+ writel_relaxed(smmu->evtq.q.prod,
-+ arm_smmu_page1_fixup(ARM_SMMU_EVTQ_PROD, smmu));
-+ writel_relaxed(smmu->evtq.q.cons,
-+ arm_smmu_page1_fixup(ARM_SMMU_EVTQ_CONS, smmu));
-
- enables |= CR0_EVTQEN;
- ret = arm_smmu_write_reg_sync(smmu, enables, ARM_SMMU_CR0,
-@@ -2377,9 +2393,9 @@ static int arm_smmu_device_reset(struct arm_smmu_device *smmu, bool bypass)
- writeq_relaxed(smmu->priq.q.q_base,
- smmu->base + ARM_SMMU_PRIQ_BASE);
- writel_relaxed(smmu->priq.q.prod,
-- smmu->base + ARM_SMMU_PRIQ_PROD);
-+ arm_smmu_page1_fixup(ARM_SMMU_PRIQ_PROD, smmu));
- writel_relaxed(smmu->priq.q.cons,
-- smmu->base + ARM_SMMU_PRIQ_CONS);
-+ arm_smmu_page1_fixup(ARM_SMMU_PRIQ_CONS, smmu));
-
- enables |= CR0_PRIQEN;
- ret = arm_smmu_write_reg_sync(smmu, enables, ARM_SMMU_CR0,
-@@ -2603,6 +2619,14 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
- }
-
- #ifdef CONFIG_ACPI
-+static void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu)
-+{
-+ if (model == ACPI_IORT_SMMU_CAVIUM_CN99XX)
-+ smmu->options |= ARM_SMMU_OPT_PAGE0_REGS_ONLY;
-+
-+ dev_notice(smmu->dev, "option mask 0x%x\n", smmu->options);
-+}
-+
- static int arm_smmu_device_acpi_probe(struct platform_device *pdev,
- struct arm_smmu_device *smmu)
- {
-@@ -2615,6 +2639,8 @@ static int arm_smmu_device_acpi_probe(struct platform_device *pdev,
- /* Retrieve SMMUv3 specific data */
- iort_smmu = (struct acpi_iort_smmu_v3 *)node->node_data;
-
-+ acpi_smmu_get_options(iort_smmu->model, smmu);
-+
- if (iort_smmu->flags & ACPI_IORT_SMMU_V3_COHACC_OVERRIDE)
- smmu->features |= ARM_SMMU_FEAT_COHERENCY;
-
-@@ -2650,6 +2676,14 @@ static int arm_smmu_device_dt_probe(struct platform_device *pdev,
- return ret;
- }
-
-+static unsigned long arm_smmu_resource_size(struct arm_smmu_device *smmu)
-+{
-+ if (ARM_SMMU_PAGE0_REGS_ONLY(smmu))
-+ return SZ_64K;
-+ else
-+ return SZ_128K;
-+}
-+
- static int arm_smmu_device_probe(struct platform_device *pdev)
- {
- int irq, ret;
-@@ -2666,9 +2700,17 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
- }
- smmu->dev = dev;
-
-+ if (dev->of_node) {
-+ ret = arm_smmu_device_dt_probe(pdev, smmu);
-+ } else {
-+ ret = arm_smmu_device_acpi_probe(pdev, smmu);
-+ if (ret == -ENODEV)
-+ return ret;
-+ }
-+
- /* Base address */
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-- if (resource_size(res) + 1 < SZ_128K) {
-+ if (resource_size(res) + 1 < arm_smmu_resource_size(smmu)) {
- dev_err(dev, "MMIO region too small (%pr)\n", res);
- return -EINVAL;
- }
-@@ -2695,14 +2737,6 @@ static int arm_smmu_device_probe(struct platform_device *pdev)
- if (irq > 0)
- smmu->gerr_irq = irq;
-
-- if (dev->of_node) {
-- ret = arm_smmu_device_dt_probe(pdev, smmu);
-- } else {
-- ret = arm_smmu_device_acpi_probe(pdev, smmu);
-- if (ret == -ENODEV)
-- return ret;
-- }
--
- /* Set bypass mode according to firmware probing result */
- bypass = !!ret;
-
---
-2.11.0
-
-From 8b0e69d0a8d5c11ee433c2a110a7d056ad190e1a Mon Sep 17 00:00:00 2001
-From: Geetha Sowjanya <geethasowjanya.akula@cavium.com>
-Date: Fri, 12 May 2017 18:11:06 +0530
-Subject: [PATCH 33/41] iommu/arm-smmu-v3: Add workaround for Cavium ThunderX2
- erratum #126
-
-Cavium ThunderX2 SMMU doesn't support MSI and also doesn't have unique irq
-lines for gerror, eventq and cmdq-sync.
-
-This patch addresses the issue by checking if any interrupt sources are
-using same irq number, then they are registered as shared irqs.
-
-Signed-off-by: Geetha Sowjanya <geethasowjanya.akula@cavium.com>
-Message-Id: <1494592866-14076-4-git-send-email-gakula@caviumnetworks.com>
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- Documentation/arm64/silicon-errata.txt | 1 +
- drivers/iommu/arm-smmu-v3.c | 29 +++++++++++++++++++++++++----
- 2 files changed, 26 insertions(+), 4 deletions(-)
-
-diff --git a/Documentation/arm64/silicon-errata.txt b/Documentation/arm64/silicon-errata.txt
-index 629e2ce1f0d2..cc15f251ce42 100644
---- a/Documentation/arm64/silicon-errata.txt
-+++ b/Documentation/arm64/silicon-errata.txt
-@@ -62,6 +62,7 @@ stable kernels.
- | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
- | Cavium | ThunderX SMMUv2 | #27704 | N/A |
- | Cavium | ThunderX2 SMMUv3| #74 | N/A |
-+| Cavium | ThunderX2 SMMUv3| #126 | N/A |
- | | | | |
- | Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
- | | | | |
-diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
-index 913805429f80..2fc067f3e199 100644
---- a/drivers/iommu/arm-smmu-v3.c
-+++ b/drivers/iommu/arm-smmu-v3.c
-@@ -2230,6 +2230,25 @@ static void arm_smmu_setup_msis(struct arm_smmu_device *smmu)
- devm_add_action(dev, arm_smmu_free_msis, dev);
- }
-
-+static int get_irq_flags(struct arm_smmu_device *smmu, int irq)
-+{
-+ int match_count = 0;
-+
-+ if (irq == smmu->evtq.q.irq)
-+ match_count++;
-+ if (irq == smmu->cmdq.q.irq)
-+ match_count++;
-+ if (irq == smmu->gerr_irq)
-+ match_count++;
-+ if (irq == smmu->priq.q.irq)
-+ match_count++;
-+
-+ if (match_count > 1)
-+ return IRQF_SHARED | IRQF_ONESHOT;
-+
-+ return IRQF_ONESHOT;
-+}
-+
- static int arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
- {
- int ret, irq;
-@@ -2250,7 +2269,7 @@ static int arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
- if (irq) {
- ret = devm_request_threaded_irq(smmu->dev, irq, NULL,
- arm_smmu_evtq_thread,
-- IRQF_ONESHOT,
-+ get_irq_flags(smmu, irq),
- "arm-smmu-v3-evtq", smmu);
- if (ret < 0)
- dev_warn(smmu->dev, "failed to enable evtq irq\n");
-@@ -2259,7 +2278,8 @@ static int arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
- irq = smmu->cmdq.q.irq;
- if (irq) {
- ret = devm_request_irq(smmu->dev, irq,
-- arm_smmu_cmdq_sync_handler, 0,
-+ arm_smmu_cmdq_sync_handler,
-+ get_irq_flags(smmu, irq),
- "arm-smmu-v3-cmdq-sync", smmu);
- if (ret < 0)
- dev_warn(smmu->dev, "failed to enable cmdq-sync irq\n");
-@@ -2268,7 +2288,8 @@ static int arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
- irq = smmu->gerr_irq;
- if (irq) {
- ret = devm_request_irq(smmu->dev, irq, arm_smmu_gerror_handler,
-- 0, "arm-smmu-v3-gerror", smmu);
-+ get_irq_flags(smmu, irq),
-+ "arm-smmu-v3-gerror", smmu);
- if (ret < 0)
- dev_warn(smmu->dev, "failed to enable gerror irq\n");
- }
-@@ -2278,7 +2299,7 @@ static int arm_smmu_setup_irqs(struct arm_smmu_device *smmu)
- if (irq) {
- ret = devm_request_threaded_irq(smmu->dev, irq, NULL,
- arm_smmu_priq_thread,
-- IRQF_ONESHOT,
-+ get_irq_flags(smmu, irq),
- "arm-smmu-v3-priq",
- smmu);
- if (ret < 0)
---
-2.11.0
-
-From 929f539998cfb83834e890fd7781ddcfc327c109 Mon Sep 17 00:00:00 2001
-From: Robert Richter <rrichter@cavium.com>
-Date: Wed, 12 Apr 2017 10:31:15 +0200
-Subject: [PATCH 34/41] iommu/arm-smmu, ACPI: Enable Cavium SMMU-v3
-
-In next IORT spec release there will be a definition of a Cavium
-specific model. Until then, enable the Cavium SMMU using cpu id
-registers. Early silicon versions (A1) of Cavium's CN99xx SMMUv3
-implementation must be enabled. For later silicon versions (B0) the
-iort change will be in place.
-
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/acpi/arm64/iort.c | 13 ++++++++++++-
- drivers/iommu/arm-smmu-v3.c | 19 +++++++++++++++++++
- 2 files changed, 31 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
-index 9fd2f1d31a27..3f5f892037eb 100644
---- a/drivers/acpi/arm64/iort.c
-+++ b/drivers/acpi/arm64/iort.c
-@@ -26,6 +26,8 @@
- #include <linux/platform_device.h>
- #include <linux/slab.h>
-
-+#include <asm/cputype.h>
-+
- #define IORT_TYPE_MASK(type) (1 << (type))
- #define IORT_MSI_TYPE (1 << ACPI_IORT_NODE_ITS_GROUP)
- #define IORT_IOMMU_TYPE ((1 << ACPI_IORT_NODE_SMMU) | \
-@@ -664,6 +666,14 @@ static int __init arm_smmu_v3_count_resources(struct acpi_iort_node *node)
- return num_res;
- }
-
-+static bool is_cavium_cn99xx_smmu_v3(void)
-+{
-+ u32 cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK;
-+
-+ return cpu_model == MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM,
-+ BRCM_CPU_PART_VULCAN);
-+}
-+
- static void __init arm_smmu_v3_init_resources(struct resource *res,
- struct acpi_iort_node *node)
- {
-@@ -678,7 +688,8 @@ static void __init arm_smmu_v3_init_resources(struct resource *res,
- * Override the size, for Cavium ThunderX2 implementation
- * which doesn't support the page 1 SMMU register space.
- */
-- if (smmu->model == ACPI_IORT_SMMU_CAVIUM_CN99XX)
-+ if (smmu->model == ACPI_IORT_SMMU_CAVIUM_CN99XX ||
-+ is_cavium_cn99xx_smmu_v3())
- size = SZ_64K;
-
- res[num_res].start = smmu->base_address;
-diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
-index 2fc067f3e199..de9774073a00 100644
---- a/drivers/iommu/arm-smmu-v3.c
-+++ b/drivers/iommu/arm-smmu-v3.c
-@@ -39,6 +39,8 @@
-
- #include <linux/amba/bus.h>
-
-+#include <asm/cputype.h>
-+
- #include "io-pgtable.h"
-
- /* MMIO registers */
-@@ -2640,11 +2642,28 @@ static int arm_smmu_device_hw_probe(struct arm_smmu_device *smmu)
- }
-
- #ifdef CONFIG_ACPI
-+
-+static void acpi_smmu_enable_cavium(struct arm_smmu_device *smmu)
-+{
-+ u32 cpu_model;
-+
-+ if (!IS_ENABLED(CONFIG_ARM64))
-+ return;
-+
-+ cpu_model = read_cpuid_id() & MIDR_CPU_MODEL_MASK;
-+ if (cpu_model != MIDR_CPU_MODEL(ARM_CPU_IMP_BRCM, BRCM_CPU_PART_VULCAN))
-+ return;
-+
-+ smmu->options |= ARM_SMMU_OPT_PAGE0_REGS_ONLY;
-+}
-+
- static void acpi_smmu_get_options(u32 model, struct arm_smmu_device *smmu)
- {
- if (model == ACPI_IORT_SMMU_CAVIUM_CN99XX)
- smmu->options |= ARM_SMMU_OPT_PAGE0_REGS_ONLY;
-
-+ acpi_smmu_enable_cavium(smmu);
-+
- dev_notice(smmu->dev, "option mask 0x%x\n", smmu->options);
- }
-
---
-2.11.0
-
-From 8e59a6a91bf2988fb9cbc21d481f5e2b88af8140 Mon Sep 17 00:00:00 2001
-From: Sunil Goutham <sgoutham@cavium.com>
-Date: Fri, 5 May 2017 16:47:46 +0530
-Subject: iommu/arm-smmu-v3: Increase CMDQ drain timeout value
-
-Waiting for a CMD_SYNC to be processed involves waiting for the command
-queue to drain, which can take an awful lot longer than waiting for a
-single entry to become available. Consequently, the common timeout value
-of 100us has been observed to be too short on some platforms when a
-CMD_SYNC is issued into a queued full of TLBI commands.
-
-This patch resolves the issue by using a different (1s) timeout when
-waiting for the CMDQ to drain and using a simple back-off mechanism
-when polling the cons pointer in the absence of WFE support.
-
-Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
-[will: rewrote commit message and cosmetic changes]
-Signed-off-by: Will Deacon <will.deacon@arm.com>
----
- drivers/iommu/arm-smmu-v3.c | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
-index 380969a..6a06be7 100644
---- a/drivers/iommu/arm-smmu-v3.c
-+++ b/drivers/iommu/arm-smmu-v3.c
-@@ -408,6 +408,7 @@
-
- /* High-level queue structures */
- #define ARM_SMMU_POLL_TIMEOUT_US 100
-+#define ARM_SMMU_CMDQ_DRAIN_TIMEOUT_US 1000000 /* 1s! */
-
- #define MSI_IOVA_BASE 0x8000000
- #define MSI_IOVA_LENGTH 0x100000
-@@ -737,7 +738,13 @@ static void queue_inc_prod(struct arm_smmu_queue *q)
- */
- static int queue_poll_cons(struct arm_smmu_queue *q, bool drain, bool wfe)
- {
-- ktime_t timeout = ktime_add_us(ktime_get(), ARM_SMMU_POLL_TIMEOUT_US);
-+ ktime_t timeout;
-+ unsigned int delay = 1;
-+
-+ /* Wait longer if it's queue drain */
-+ timeout = ktime_add_us(ktime_get(), drain ?
-+ ARM_SMMU_CMDQ_DRAIN_TIMEOUT_US :
-+ ARM_SMMU_POLL_TIMEOUT_US);
-
- while (queue_sync_cons(q), (drain ? !queue_empty(q) : queue_full(q))) {
- if (ktime_compare(ktime_get(), timeout) > 0)
-@@ -747,7 +754,8 @@ static int queue_poll_cons(struct arm_smmu_queue *q, bool drain, bool wfe)
- wfe();
- } else {
- cpu_relax();
-- udelay(1);
-+ udelay(delay);
-+ delay *= 2;
- }
- }
-
---
-cgit v1.1
-
-From 2e92581ecd713010e9c65ba9a90f1f7557afbe95 Mon Sep 17 00:00:00 2001
-From: Manish Jaggi <mjaggi@caviumnetworks.com>
-Date: Thu, 30 Mar 2017 18:47:14 -0500
-Subject: [PATCH 36/41] PCI: Apply Cavium ACS quirk only to
- CN81xx/CN83xx/CN88xx devices
-
-Only apply the Cavium ACS quirk to devices with ID in the range
-0xa000-0xa0ff. These are the on-chip PCI devices for CN81xx/CN83xx/CN88xx.
-
-Fixes: b404bcfbf035 ("PCI: Add ACS quirk for all Cavium devices")
-Reported-by: Alex Williamson <alex.williamson@redhat.com>
-Signed-off-by: Manish Jaggi <mjaggi@cavium.com>
-Acked-by: David Daney <david.daney@cavium.com>
-Acked-by: Alex Williamson <alex.williamson@redhat.com>
-(cherry picked from commit b77d537d00d08fcf0bf641cd3491dd7df0ad1475)
-Signed-off-by: Robert Richter <rrichter@cavium.com>
----
- drivers/pci/quirks.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 0966a22eae13..f606916bc685 100644
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -4133,6 +4133,9 @@ static int pci_quirk_cavium_acs(struct pci_dev *dev, u16 acs_flags)
- acs_flags &= ~(PCI_ACS_SV | PCI_ACS_TB | PCI_ACS_RR |
- PCI_ACS_CR | PCI_ACS_UF | PCI_ACS_DT);
-
-+ if (!((dev->device >= 0xa000) && (dev->device <= 0xa0ff)))
-+ return -ENOTTY;
-+
- return acs_flags ? 0 : 1;
- }
-
---
-2.11.0
-
diff --git a/arm64-hikey-fixes.patch b/arm64-hikey-fixes.patch
deleted file mode 100644
index 18bc05b2b..000000000
--- a/arm64-hikey-fixes.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From patchwork Sat Apr 8 07:18:40 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: reset: hi6220: Set module license so that it can be loaded
-From: Jeremy Linton <lintonrjeremy@gmail.com>
-X-Patchwork-Id: 9670985
-Message-Id: <20170408071840.29380-1-lintonrjeremy@gmail.com>
-To: linux-kernel@vger.kernel.org
-Cc: p.zabel@pengutronix.de, saberlily.xia@hisilicon.com,
- puck.chen@hisilicon.com, xinliang.liu@linaro.org,
- Jeremy Linton <lintonrjeremy@gmail.com>
-Date: Sat, 8 Apr 2017 02:18:40 -0500
-
-The hi6220_reset driver can be built as a standalone module
-yet it cannot be loaded because it depends on GPL exported symbols.
-
-Lets set the module license so that the module loads, and things like
-the on-board kirin drm starts working.
-
-Signed-off-by: Jeremy Linton <lintonrjeremy@gmail.com>
-reviewed-by: Xinliang Liu <xinliang.liu@linaro.org>
----
- drivers/reset/hisilicon/hi6220_reset.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/reset/hisilicon/hi6220_reset.c b/drivers/reset/hisilicon/hi6220_reset.c
-index 35ce53e..d5e5229 100644
---- a/drivers/reset/hisilicon/hi6220_reset.c
-+++ b/drivers/reset/hisilicon/hi6220_reset.c
-@@ -155,3 +155,5 @@ static int __init hi6220_reset_init(void)
- }
-
- postcore_initcall(hi6220_reset_init);
-+
-+MODULE_LICENSE("GPL v2");
-From patchwork Mon Apr 3 05:28:42 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2,1/2] regulator: hi655x: Describe consumed platform device
-From: Jeremy Linton <lintonrjeremy@gmail.com>
-X-Patchwork-Id: 9658793
-Message-Id: <20170403052843.12711-2-lintonrjeremy@gmail.com>
-To: linux-kernel@vger.kernel.org
-Cc: broonie@kernel.org, lgirdwood@gmail.com, puck.chen@hisilicon.com,
- lee.jones@linaro.org, Jeremy Linton <lintonrjeremy@gmail.com>
-Date: Mon, 3 Apr 2017 00:28:42 -0500
-
-The hi655x-regulator driver consumes a similarly named platform device.
-Adding that to the module device table, allows modprobe to locate this
-driver once the device is created.
-
-Signed-off-by: Jeremy Linton <lintonrjeremy@gmail.com>
----
- drivers/regulator/hi655x-regulator.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/regulator/hi655x-regulator.c b/drivers/regulator/hi655x-regulator.c
-index 065c100..36ae54b 100644
---- a/drivers/regulator/hi655x-regulator.c
-+++ b/drivers/regulator/hi655x-regulator.c
-@@ -214,7 +214,14 @@ static int hi655x_regulator_probe(struct platform_device *pdev)
- return 0;
- }
-
-+static const struct platform_device_id hi655x_regulator_table[] = {
-+ { .name = "hi655x-regulator" },
-+ {},
-+};
-+MODULE_DEVICE_TABLE(platform, hi655x_regulator_table);
-+
- static struct platform_driver hi655x_regulator_driver = {
-+ .id_table = hi655x_regulator_table,
- .driver = {
- .name = "hi655x-regulator",
- },
diff --git a/baseconfig/CONFIG_ADXL345_I2C b/baseconfig/CONFIG_ADXL345_I2C
new file mode 100644
index 000000000..f6976b836
--- /dev/null
+++ b/baseconfig/CONFIG_ADXL345_I2C
@@ -0,0 +1 @@
+# CONFIG_ADXL345_I2C is not set
diff --git a/baseconfig/CONFIG_ADXL345_SPI b/baseconfig/CONFIG_ADXL345_SPI
new file mode 100644
index 000000000..186ab0d3a
--- /dev/null
+++ b/baseconfig/CONFIG_ADXL345_SPI
@@ -0,0 +1 @@
+# CONFIG_ADXL345_SPI is not set
diff --git a/baseconfig/CONFIG_ARM64_ERRATUM_858921 b/baseconfig/CONFIG_ARM64_ERRATUM_858921
new file mode 100644
index 000000000..055a6880c
--- /dev/null
+++ b/baseconfig/CONFIG_ARM64_ERRATUM_858921
@@ -0,0 +1 @@
+CONFIG_ARM64_ERRATUM_858921=y
diff --git a/baseconfig/CONFIG_BACKLIGHT_ARCXCNN b/baseconfig/CONFIG_BACKLIGHT_ARCXCNN
new file mode 100644
index 000000000..49161963d
--- /dev/null
+++ b/baseconfig/CONFIG_BACKLIGHT_ARCXCNN
@@ -0,0 +1 @@
+CONFIG_BACKLIGHT_ARCXCNN=m
diff --git a/baseconfig/CONFIG_BATTERY_LEGO_EV3 b/baseconfig/CONFIG_BATTERY_LEGO_EV3
new file mode 100644
index 000000000..3305bd311
--- /dev/null
+++ b/baseconfig/CONFIG_BATTERY_LEGO_EV3
@@ -0,0 +1 @@
+# CONFIG_BATTERY_LEGO_EV3 is not set
diff --git a/baseconfig/CONFIG_BCM_FLEXRM_MBOX b/baseconfig/CONFIG_BCM_FLEXRM_MBOX
new file mode 100644
index 000000000..b47d4f392
--- /dev/null
+++ b/baseconfig/CONFIG_BCM_FLEXRM_MBOX
@@ -0,0 +1 @@
+# CONFIG_BCM_FLEXRM_MBOX is not set
diff --git a/baseconfig/CONFIG_BFQ_GROUP_IOSCHED b/baseconfig/CONFIG_BFQ_GROUP_IOSCHED
new file mode 100644
index 000000000..731981ca3
--- /dev/null
+++ b/baseconfig/CONFIG_BFQ_GROUP_IOSCHED
@@ -0,0 +1 @@
+CONFIG_BFQ_GROUP_IOSCHED=y
diff --git a/baseconfig/CONFIG_BLK_DEV_HD b/baseconfig/CONFIG_BLK_DEV_HD
deleted file mode 100644
index 9155aa284..000000000
--- a/baseconfig/CONFIG_BLK_DEV_HD
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_BLK_DEV_HD is not set
diff --git a/baseconfig/CONFIG_BLK_DEV_THROTTLING_LOW b/baseconfig/CONFIG_BLK_DEV_THROTTLING_LOW
new file mode 100644
index 000000000..802bc55b4
--- /dev/null
+++ b/baseconfig/CONFIG_BLK_DEV_THROTTLING_LOW
@@ -0,0 +1 @@
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
diff --git a/baseconfig/CONFIG_BT_HCIUART_SERDEV b/baseconfig/CONFIG_BT_HCIUART_SERDEV
new file mode 100644
index 000000000..0b0ef5abd
--- /dev/null
+++ b/baseconfig/CONFIG_BT_HCIUART_SERDEV
@@ -0,0 +1 @@
+CONFIG_BT_HCIUART_SERDEV=y
diff --git a/baseconfig/CONFIG_CAN_HI311X b/baseconfig/CONFIG_CAN_HI311X
new file mode 100644
index 000000000..a775c67f7
--- /dev/null
+++ b/baseconfig/CONFIG_CAN_HI311X
@@ -0,0 +1 @@
+CONFIG_CAN_HI311X=m
diff --git a/baseconfig/CONFIG_CAN_MCBA_USB b/baseconfig/CONFIG_CAN_MCBA_USB
new file mode 100644
index 000000000..9a21b3bcb
--- /dev/null
+++ b/baseconfig/CONFIG_CAN_MCBA_USB
@@ -0,0 +1 @@
+CONFIG_CAN_MCBA_USB=m
diff --git a/baseconfig/CONFIG_CAN_PEAK_PCIEFD b/baseconfig/CONFIG_CAN_PEAK_PCIEFD
new file mode 100644
index 000000000..3a388b984
--- /dev/null
+++ b/baseconfig/CONFIG_CAN_PEAK_PCIEFD
@@ -0,0 +1 @@
+CONFIG_CAN_PEAK_PCIEFD=m
diff --git a/baseconfig/CONFIG_CAN_VXCAN b/baseconfig/CONFIG_CAN_VXCAN
new file mode 100644
index 000000000..a6e002cff
--- /dev/null
+++ b/baseconfig/CONFIG_CAN_VXCAN
@@ -0,0 +1 @@
+CONFIG_CAN_VXCAN=m
diff --git a/baseconfig/CONFIG_CEC_PLATFORM_DRIVERS b/baseconfig/CONFIG_CEC_PLATFORM_DRIVERS
new file mode 100644
index 000000000..07bd8e955
--- /dev/null
+++ b/baseconfig/CONFIG_CEC_PLATFORM_DRIVERS
@@ -0,0 +1 @@
+CONFIG_CEC_PLATFORM_DRIVERS=y
diff --git a/baseconfig/arm/CONFIG_COMMON_CLK_SI570 b/baseconfig/CONFIG_COMMON_CLK_SI570
index aa746413a..aa746413a 100644
--- a/baseconfig/arm/CONFIG_COMMON_CLK_SI570
+++ b/baseconfig/CONFIG_COMMON_CLK_SI570
diff --git a/baseconfig/CONFIG_CRYPTO_DEV_CCREE b/baseconfig/CONFIG_CRYPTO_DEV_CCREE
new file mode 100644
index 000000000..fe4fcee59
--- /dev/null
+++ b/baseconfig/CONFIG_CRYPTO_DEV_CCREE
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_DEV_CCREE is not set
diff --git a/baseconfig/CONFIG_CRYPTO_DH b/baseconfig/CONFIG_CRYPTO_DH
index ea06ab3c2..c92378433 100644
--- a/baseconfig/CONFIG_CRYPTO_DH
+++ b/baseconfig/CONFIG_CRYPTO_DH
@@ -1 +1 @@
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
diff --git a/baseconfig/CONFIG_DM_INTEGRITY b/baseconfig/CONFIG_DM_INTEGRITY
new file mode 100644
index 000000000..ee953fd2d
--- /dev/null
+++ b/baseconfig/CONFIG_DM_INTEGRITY
@@ -0,0 +1 @@
+CONFIG_DM_INTEGRITY=m
diff --git a/baseconfig/CONFIG_DRM_DW_HDMI_AHB_AUDIO b/baseconfig/CONFIG_DRM_DW_HDMI_AHB_AUDIO
new file mode 100644
index 000000000..5c276f1dc
--- /dev/null
+++ b/baseconfig/CONFIG_DRM_DW_HDMI_AHB_AUDIO
@@ -0,0 +1 @@
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
diff --git a/baseconfig/CONFIG_DRM_DW_HDMI_I2S_AUDIO b/baseconfig/CONFIG_DRM_DW_HDMI_I2S_AUDIO
index 34ecaf242..d1f777db4 100644
--- a/baseconfig/CONFIG_DRM_DW_HDMI_I2S_AUDIO
+++ b/baseconfig/CONFIG_DRM_DW_HDMI_I2S_AUDIO
@@ -1 +1 @@
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
diff --git a/baseconfig/CONFIG_DRM_FBDEV_OVERALLOC b/baseconfig/CONFIG_DRM_FBDEV_OVERALLOC
new file mode 100644
index 000000000..32e5c4520
--- /dev/null
+++ b/baseconfig/CONFIG_DRM_FBDEV_OVERALLOC
@@ -0,0 +1 @@
+CONFIG_DRM_FBDEV_OVERALLOC=100
diff --git a/baseconfig/CONFIG_DRM_LVDS_ENCODER b/baseconfig/CONFIG_DRM_LVDS_ENCODER
new file mode 100644
index 000000000..e2ea277b3
--- /dev/null
+++ b/baseconfig/CONFIG_DRM_LVDS_ENCODER
@@ -0,0 +1 @@
+# CONFIG_DRM_LVDS_ENCODER is not set
diff --git a/baseconfig/CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW b/baseconfig/CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW
new file mode 100644
index 000000000..7aa3826f4
--- /dev/null
+++ b/baseconfig/CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW
@@ -0,0 +1 @@
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
diff --git a/baseconfig/x86/CONFIG_DRM_PANEL_LG_LG4573 b/baseconfig/CONFIG_DRM_PANEL_LG_LG4573
index 35ecd6eba..35ecd6eba 100644
--- a/baseconfig/x86/CONFIG_DRM_PANEL_LG_LG4573
+++ b/baseconfig/CONFIG_DRM_PANEL_LG_LG4573
diff --git a/baseconfig/CONFIG_DRM_PANEL_LVDS b/baseconfig/CONFIG_DRM_PANEL_LVDS
new file mode 100644
index 000000000..af4bf6e01
--- /dev/null
+++ b/baseconfig/CONFIG_DRM_PANEL_LVDS
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_LVDS is not set
diff --git a/baseconfig/x86/CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 b/baseconfig/CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00
index 5b25d7565..5b25d7565 100644
--- a/baseconfig/x86/CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00
+++ b/baseconfig/CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00
diff --git a/baseconfig/x86/CONFIG_DRM_PANEL_SAMSUNG_LD9040 b/baseconfig/CONFIG_DRM_PANEL_SAMSUNG_LD9040
index 8aae09888..8aae09888 100644
--- a/baseconfig/x86/CONFIG_DRM_PANEL_SAMSUNG_LD9040
+++ b/baseconfig/CONFIG_DRM_PANEL_SAMSUNG_LD9040
diff --git a/baseconfig/CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 b/baseconfig/CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2
new file mode 100644
index 000000000..8cb5243d1
--- /dev/null
+++ b/baseconfig/CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
diff --git a/baseconfig/x86/i686/CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 b/baseconfig/CONFIG_DRM_PANEL_SHARP_LQ101R1SX01
index 9d584f6ab..9d584f6ab 100644
--- a/baseconfig/x86/i686/CONFIG_DRM_PANEL_SHARP_LQ101R1SX01
+++ b/baseconfig/CONFIG_DRM_PANEL_SHARP_LQ101R1SX01
diff --git a/baseconfig/x86/i686/CONFIG_DRM_PANEL_SHARP_LS043T1LE01 b/baseconfig/CONFIG_DRM_PANEL_SHARP_LS043T1LE01
index 64dedb057..64dedb057 100644
--- a/baseconfig/x86/i686/CONFIG_DRM_PANEL_SHARP_LS043T1LE01
+++ b/baseconfig/CONFIG_DRM_PANEL_SHARP_LS043T1LE01
diff --git a/baseconfig/CONFIG_DRM_PANEL_SITRONIX_ST7789V b/baseconfig/CONFIG_DRM_PANEL_SITRONIX_ST7789V
new file mode 100644
index 000000000..712cb79a7
--- /dev/null
+++ b/baseconfig/CONFIG_DRM_PANEL_SITRONIX_ST7789V
@@ -0,0 +1 @@
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
diff --git a/baseconfig/CONFIG_DRM_RCAR_DW_HDMI b/baseconfig/CONFIG_DRM_RCAR_DW_HDMI
new file mode 100644
index 000000000..d3dace0e8
--- /dev/null
+++ b/baseconfig/CONFIG_DRM_RCAR_DW_HDMI
@@ -0,0 +1 @@
+# CONFIG_DRM_RCAR_DW_HDMI is not set
diff --git a/baseconfig/CONFIG_EARLY_PRINTK_USB_XDBC b/baseconfig/CONFIG_EARLY_PRINTK_USB_XDBC
new file mode 100644
index 000000000..47e8f4090
--- /dev/null
+++ b/baseconfig/CONFIG_EARLY_PRINTK_USB_XDBC
@@ -0,0 +1 @@
+CONFIG_EARLY_PRINTK_USB_XDBC=y
diff --git a/baseconfig/CONFIG_EDAC_GHES b/baseconfig/CONFIG_EDAC_GHES
new file mode 100644
index 000000000..e68c7c4c2
--- /dev/null
+++ b/baseconfig/CONFIG_EDAC_GHES
@@ -0,0 +1 @@
+CONFIG_EDAC_GHES=y
diff --git a/baseconfig/CONFIG_EDAC_MM_EDAC b/baseconfig/CONFIG_EDAC_MM_EDAC
deleted file mode 100644
index 5f7fa223a..000000000
--- a/baseconfig/CONFIG_EDAC_MM_EDAC
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_EDAC_MM_EDAC=m
diff --git a/baseconfig/CONFIG_GPIO_FTGPIO010 b/baseconfig/CONFIG_GPIO_FTGPIO010
new file mode 100644
index 000000000..3a1fb41ea
--- /dev/null
+++ b/baseconfig/CONFIG_GPIO_FTGPIO010
@@ -0,0 +1 @@
+# CONFIG_GPIO_FTGPIO010 is not set
diff --git a/baseconfig/CONFIG_HD44780 b/baseconfig/CONFIG_HD44780
new file mode 100644
index 000000000..22e6cf3b3
--- /dev/null
+++ b/baseconfig/CONFIG_HD44780
@@ -0,0 +1 @@
+CONFIG_HD44780=m
diff --git a/baseconfig/CONFIG_HID_ACCUTOUCH b/baseconfig/CONFIG_HID_ACCUTOUCH
new file mode 100644
index 000000000..7b8010de1
--- /dev/null
+++ b/baseconfig/CONFIG_HID_ACCUTOUCH
@@ -0,0 +1 @@
+CONFIG_HID_ACCUTOUCH=m
diff --git a/baseconfig/CONFIG_HID_NTI b/baseconfig/CONFIG_HID_NTI
new file mode 100644
index 000000000..c239c7052
--- /dev/null
+++ b/baseconfig/CONFIG_HID_NTI
@@ -0,0 +1 @@
+CONFIG_HID_NTI=m
diff --git a/baseconfig/CONFIG_HID_SENSOR_HUMIDITY b/baseconfig/CONFIG_HID_SENSOR_HUMIDITY
new file mode 100644
index 000000000..d50f5014a
--- /dev/null
+++ b/baseconfig/CONFIG_HID_SENSOR_HUMIDITY
@@ -0,0 +1 @@
+CONFIG_HID_SENSOR_HUMIDITY=m
diff --git a/baseconfig/CONFIG_HID_SENSOR_TEMP b/baseconfig/CONFIG_HID_SENSOR_TEMP
new file mode 100644
index 000000000..6f1a98bc0
--- /dev/null
+++ b/baseconfig/CONFIG_HID_SENSOR_TEMP
@@ -0,0 +1 @@
+CONFIG_HID_SENSOR_TEMP=m
diff --git a/baseconfig/CONFIG_I2C_MUX_LTC4306 b/baseconfig/CONFIG_I2C_MUX_LTC4306
new file mode 100644
index 000000000..f7c16456c
--- /dev/null
+++ b/baseconfig/CONFIG_I2C_MUX_LTC4306
@@ -0,0 +1 @@
+CONFIG_I2C_MUX_LTC4306=m
diff --git a/baseconfig/CONFIG_IEEE802154_CA8210 b/baseconfig/CONFIG_IEEE802154_CA8210
new file mode 100644
index 000000000..d4a2158a3
--- /dev/null
+++ b/baseconfig/CONFIG_IEEE802154_CA8210
@@ -0,0 +1 @@
+CONFIG_IEEE802154_CA8210=m
diff --git a/baseconfig/CONFIG_IEEE802154_CA8210_DEBUGFS b/baseconfig/CONFIG_IEEE802154_CA8210_DEBUGFS
new file mode 100644
index 000000000..e919384b7
--- /dev/null
+++ b/baseconfig/CONFIG_IEEE802154_CA8210_DEBUGFS
@@ -0,0 +1 @@
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
diff --git a/baseconfig/CONFIG_INPUT_MPU3050 b/baseconfig/CONFIG_INPUT_MPU3050
deleted file mode 100644
index 7c1afe068..000000000
--- a/baseconfig/CONFIG_INPUT_MPU3050
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_INPUT_MPU3050=m
diff --git a/baseconfig/CONFIG_IOSCHED_BFQ b/baseconfig/CONFIG_IOSCHED_BFQ
new file mode 100644
index 000000000..3023fb0b5
--- /dev/null
+++ b/baseconfig/CONFIG_IOSCHED_BFQ
@@ -0,0 +1 @@
+CONFIG_IOSCHED_BFQ=m
diff --git a/baseconfig/CONFIG_IR_SIR b/baseconfig/CONFIG_IR_SIR
new file mode 100644
index 000000000..34ff7a809
--- /dev/null
+++ b/baseconfig/CONFIG_IR_SIR
@@ -0,0 +1 @@
+CONFIG_IR_SIR=m
diff --git a/baseconfig/CONFIG_JOYSTICK_PSXPAD_SPI b/baseconfig/CONFIG_JOYSTICK_PSXPAD_SPI
new file mode 100644
index 000000000..d66d2b113
--- /dev/null
+++ b/baseconfig/CONFIG_JOYSTICK_PSXPAD_SPI
@@ -0,0 +1 @@
+CONFIG_JOYSTICK_PSXPAD_SPI=m
diff --git a/baseconfig/CONFIG_JOYSTICK_PSXPAD_SPI_FF b/baseconfig/CONFIG_JOYSTICK_PSXPAD_SPI_FF
new file mode 100644
index 000000000..c534b358b
--- /dev/null
+++ b/baseconfig/CONFIG_JOYSTICK_PSXPAD_SPI_FF
@@ -0,0 +1 @@
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
diff --git a/baseconfig/CONFIG_LEDS_DELL_NETBOOKS b/baseconfig/CONFIG_LEDS_DELL_NETBOOKS
deleted file mode 100644
index 45f9aee48..000000000
--- a/baseconfig/CONFIG_LEDS_DELL_NETBOOKS
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_LEDS_DELL_NETBOOKS=m
diff --git a/baseconfig/CONFIG_LIRC_SASEM b/baseconfig/CONFIG_LIRC_SASEM
deleted file mode 100644
index 4bfc392e8..000000000
--- a/baseconfig/CONFIG_LIRC_SASEM
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_LIRC_SASEM=m
diff --git a/baseconfig/CONFIG_LOAD_UEFI_KEYS b/baseconfig/CONFIG_LOAD_UEFI_KEYS
new file mode 100644
index 000000000..de1de5c25
--- /dev/null
+++ b/baseconfig/CONFIG_LOAD_UEFI_KEYS
@@ -0,0 +1 @@
+# CONFIG_LOAD_UEFI_KEYS is not set
diff --git a/baseconfig/CONFIG_LTC2497 b/baseconfig/CONFIG_LTC2497
new file mode 100644
index 000000000..312f3db17
--- /dev/null
+++ b/baseconfig/CONFIG_LTC2497
@@ -0,0 +1 @@
+# CONFIG_LTC2497 is not set
diff --git a/baseconfig/CONFIG_LTC2632 b/baseconfig/CONFIG_LTC2632
new file mode 100644
index 000000000..8bc2b8bc4
--- /dev/null
+++ b/baseconfig/CONFIG_LTC2632
@@ -0,0 +1 @@
+# CONFIG_LTC2632 is not set
diff --git a/baseconfig/CONFIG_MAX1118 b/baseconfig/CONFIG_MAX1118
new file mode 100644
index 000000000..615bda2e2
--- /dev/null
+++ b/baseconfig/CONFIG_MAX1118
@@ -0,0 +1 @@
+# CONFIG_MAX1118 is not set
diff --git a/baseconfig/CONFIG_MAX30102 b/baseconfig/CONFIG_MAX30102
new file mode 100644
index 000000000..5b4aacf3d
--- /dev/null
+++ b/baseconfig/CONFIG_MAX30102
@@ -0,0 +1 @@
+# CONFIG_MAX30102 is not set
diff --git a/baseconfig/CONFIG_MAX9611 b/baseconfig/CONFIG_MAX9611
new file mode 100644
index 000000000..1cbc674e0
--- /dev/null
+++ b/baseconfig/CONFIG_MAX9611
@@ -0,0 +1 @@
+# CONFIG_MAX9611 is not set
diff --git a/baseconfig/CONFIG_MEDIA_CEC_RC b/baseconfig/CONFIG_MEDIA_CEC_RC
new file mode 100644
index 000000000..1531c4b09
--- /dev/null
+++ b/baseconfig/CONFIG_MEDIA_CEC_RC
@@ -0,0 +1 @@
+CONFIG_MEDIA_CEC_RC=y
diff --git a/baseconfig/CONFIG_MFD_CPCAP b/baseconfig/CONFIG_MFD_CPCAP
index acf5bd3fe..0f0408181 100644
--- a/baseconfig/CONFIG_MFD_CPCAP
+++ b/baseconfig/CONFIG_MFD_CPCAP
@@ -1 +1 @@
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
diff --git a/baseconfig/CONFIG_MFD_EXYNOS_LPASS b/baseconfig/CONFIG_MFD_EXYNOS_LPASS
deleted file mode 100644
index d733b0518..000000000
--- a/baseconfig/CONFIG_MFD_EXYNOS_LPASS
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_MFD_EXYNOS_LPASS is not set
diff --git a/baseconfig/CONFIG_MFD_TI_LMU b/baseconfig/CONFIG_MFD_TI_LMU
new file mode 100644
index 000000000..4a84e3fd0
--- /dev/null
+++ b/baseconfig/CONFIG_MFD_TI_LMU
@@ -0,0 +1 @@
+# CONFIG_MFD_TI_LMU is not set
diff --git a/baseconfig/CONFIG_MLX5_CORE_IPOIB b/baseconfig/CONFIG_MLX5_CORE_IPOIB
new file mode 100644
index 000000000..d78d82d65
--- /dev/null
+++ b/baseconfig/CONFIG_MLX5_CORE_IPOIB
@@ -0,0 +1 @@
+CONFIG_MLX5_CORE_IPOIB=y
diff --git a/baseconfig/CONFIG_MMC_SDHCI_XENON b/baseconfig/CONFIG_MMC_SDHCI_XENON
new file mode 100644
index 000000000..7ced7b045
--- /dev/null
+++ b/baseconfig/CONFIG_MMC_SDHCI_XENON
@@ -0,0 +1 @@
+CONFIG_MMC_SDHCI_XENON=m
diff --git a/baseconfig/CONFIG_MODULE_SIG_UEFI b/baseconfig/CONFIG_MODULE_SIG_UEFI
deleted file mode 100644
index e4fb898f7..000000000
--- a/baseconfig/CONFIG_MODULE_SIG_UEFI
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_MODULE_SIG_UEFI is not set
diff --git a/baseconfig/CONFIG_MPU3050_I2C b/baseconfig/CONFIG_MPU3050_I2C
index 92e6cbf51..2e9c7cc45 100644
--- a/baseconfig/CONFIG_MPU3050_I2C
+++ b/baseconfig/CONFIG_MPU3050_I2C
@@ -1 +1 @@
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
diff --git a/baseconfig/CONFIG_MQ_IOSCHED_KYBER b/baseconfig/CONFIG_MQ_IOSCHED_KYBER
new file mode 100644
index 000000000..939264da2
--- /dev/null
+++ b/baseconfig/CONFIG_MQ_IOSCHED_KYBER
@@ -0,0 +1 @@
+CONFIG_MQ_IOSCHED_KYBER=m
diff --git a/baseconfig/CONFIG_NET_9P_XEN b/baseconfig/CONFIG_NET_9P_XEN
new file mode 100644
index 000000000..d2565ede3
--- /dev/null
+++ b/baseconfig/CONFIG_NET_9P_XEN
@@ -0,0 +1 @@
+CONFIG_NET_9P_XEN=m
diff --git a/baseconfig/CONFIG_NET_DSA_LOOP b/baseconfig/CONFIG_NET_DSA_LOOP
new file mode 100644
index 000000000..08b25de7c
--- /dev/null
+++ b/baseconfig/CONFIG_NET_DSA_LOOP
@@ -0,0 +1 @@
+CONFIG_NET_DSA_LOOP=m
diff --git a/baseconfig/CONFIG_NET_DSA_MT7530 b/baseconfig/CONFIG_NET_DSA_MT7530
new file mode 100644
index 000000000..722095c89
--- /dev/null
+++ b/baseconfig/CONFIG_NET_DSA_MT7530
@@ -0,0 +1 @@
+CONFIG_NET_DSA_MT7530=m
diff --git a/baseconfig/CONFIG_NET_DSA_SMSC_LAN9303_I2C b/baseconfig/CONFIG_NET_DSA_SMSC_LAN9303_I2C
new file mode 100644
index 000000000..7c738fff2
--- /dev/null
+++ b/baseconfig/CONFIG_NET_DSA_SMSC_LAN9303_I2C
@@ -0,0 +1 @@
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
diff --git a/baseconfig/CONFIG_NET_DSA_SMSC_LAN9303_MDIO b/baseconfig/CONFIG_NET_DSA_SMSC_LAN9303_MDIO
new file mode 100644
index 000000000..d7f1987e2
--- /dev/null
+++ b/baseconfig/CONFIG_NET_DSA_SMSC_LAN9303_MDIO
@@ -0,0 +1 @@
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
diff --git a/baseconfig/CONFIG_NET_SCH_DEFAULT b/baseconfig/CONFIG_NET_SCH_DEFAULT
new file mode 100644
index 000000000..a4c53d281
--- /dev/null
+++ b/baseconfig/CONFIG_NET_SCH_DEFAULT
@@ -0,0 +1 @@
+# CONFIG_NET_SCH_DEFAULT is not set
diff --git a/baseconfig/powerpc/CONFIG_NR_DEV_DAX b/baseconfig/CONFIG_NR_DEV_DAX
index 3fd0f86b1..3fd0f86b1 100644
--- a/baseconfig/powerpc/CONFIG_NR_DEV_DAX
+++ b/baseconfig/CONFIG_NR_DEV_DAX
diff --git a/baseconfig/CONFIG_PCI_ENDPOINT b/baseconfig/CONFIG_PCI_ENDPOINT
new file mode 100644
index 000000000..d90e2a4f7
--- /dev/null
+++ b/baseconfig/CONFIG_PCI_ENDPOINT
@@ -0,0 +1 @@
+# CONFIG_PCI_ENDPOINT is not set
diff --git a/baseconfig/CONFIG_PCI_ENDPOINT_TEST b/baseconfig/CONFIG_PCI_ENDPOINT_TEST
new file mode 100644
index 000000000..ac8854da9
--- /dev/null
+++ b/baseconfig/CONFIG_PCI_ENDPOINT_TEST
@@ -0,0 +1 @@
+# CONFIG_PCI_ENDPOINT_TEST is not set
diff --git a/baseconfig/CONFIG_PCI_MSI_IRQ_DOMAIN b/baseconfig/CONFIG_PCI_MSI_IRQ_DOMAIN
new file mode 100644
index 000000000..90bf4c7ca
--- /dev/null
+++ b/baseconfig/CONFIG_PCI_MSI_IRQ_DOMAIN
@@ -0,0 +1 @@
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
diff --git a/baseconfig/CONFIG_PCI_SW_SWITCHTEC b/baseconfig/CONFIG_PCI_SW_SWITCHTEC
new file mode 100644
index 000000000..f197a5ed6
--- /dev/null
+++ b/baseconfig/CONFIG_PCI_SW_SWITCHTEC
@@ -0,0 +1 @@
+CONFIG_PCI_SW_SWITCHTEC=m
diff --git a/baseconfig/CONFIG_PINCTRL_TI_IODELAY b/baseconfig/CONFIG_PINCTRL_TI_IODELAY
deleted file mode 100644
index cc5eb6a6c..000000000
--- a/baseconfig/CONFIG_PINCTRL_TI_IODELAY
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_PINCTRL_TI_IODELAY is not set
diff --git a/baseconfig/CONFIG_RAS_CEC b/baseconfig/CONFIG_RAS_CEC
new file mode 100644
index 000000000..7b0901ca1
--- /dev/null
+++ b/baseconfig/CONFIG_RAS_CEC
@@ -0,0 +1 @@
+CONFIG_RAS_CEC=y
diff --git a/baseconfig/CONFIG_REGULATOR_CPCAP b/baseconfig/CONFIG_REGULATOR_CPCAP
deleted file mode 100644
index 02e701e66..000000000
--- a/baseconfig/CONFIG_REGULATOR_CPCAP
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_REGULATOR_CPCAP=m
diff --git a/baseconfig/CONFIG_REGULATOR_TPS65132 b/baseconfig/CONFIG_REGULATOR_TPS65132
new file mode 100644
index 000000000..b82a99f6c
--- /dev/null
+++ b/baseconfig/CONFIG_REGULATOR_TPS65132
@@ -0,0 +1 @@
+# CONFIG_REGULATOR_TPS65132 is not set
diff --git a/baseconfig/CONFIG_REGULATOR_VCTRL b/baseconfig/CONFIG_REGULATOR_VCTRL
new file mode 100644
index 000000000..478bc6400
--- /dev/null
+++ b/baseconfig/CONFIG_REGULATOR_VCTRL
@@ -0,0 +1 @@
+CONFIG_REGULATOR_VCTRL=m
diff --git a/baseconfig/CONFIG_RPMSG_CHAR b/baseconfig/CONFIG_RPMSG_CHAR
new file mode 100644
index 000000000..3aa998906
--- /dev/null
+++ b/baseconfig/CONFIG_RPMSG_CHAR
@@ -0,0 +1 @@
+# CONFIG_RPMSG_CHAR is not set
diff --git a/baseconfig/CONFIG_RTL8723BS b/baseconfig/CONFIG_RTL8723BS
new file mode 100644
index 000000000..4837f05c7
--- /dev/null
+++ b/baseconfig/CONFIG_RTL8723BS
@@ -0,0 +1 @@
+CONFIG_RTL8723BS=m
diff --git a/baseconfig/CONFIG_SENSORS_ASPEED b/baseconfig/CONFIG_SENSORS_ASPEED
new file mode 100644
index 000000000..7808f12a0
--- /dev/null
+++ b/baseconfig/CONFIG_SENSORS_ASPEED
@@ -0,0 +1 @@
+CONFIG_SENSORS_ASPEED=m
diff --git a/baseconfig/CONFIG_SND_DESIGNWARE_PCM b/baseconfig/CONFIG_SND_DESIGNWARE_PCM
index 4fb3ac59e..8f93f9dce 100644
--- a/baseconfig/CONFIG_SND_DESIGNWARE_PCM
+++ b/baseconfig/CONFIG_SND_DESIGNWARE_PCM
@@ -1 +1 @@
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
diff --git a/baseconfig/CONFIG_SND_FIREFACE b/baseconfig/CONFIG_SND_FIREFACE
new file mode 100644
index 000000000..18782f689
--- /dev/null
+++ b/baseconfig/CONFIG_SND_FIREFACE
@@ -0,0 +1 @@
+CONFIG_SND_FIREFACE=m
diff --git a/baseconfig/CONFIG_SND_FIREWIRE_MOTU b/baseconfig/CONFIG_SND_FIREWIRE_MOTU
new file mode 100644
index 000000000..73299e869
--- /dev/null
+++ b/baseconfig/CONFIG_SND_FIREWIRE_MOTU
@@ -0,0 +1 @@
+CONFIG_SND_FIREWIRE_MOTU=m
diff --git a/baseconfig/CONFIG_SND_I2S_HI6210_I2S b/baseconfig/CONFIG_SND_I2S_HI6210_I2S
new file mode 100644
index 000000000..9ae15dc8a
--- /dev/null
+++ b/baseconfig/CONFIG_SND_I2S_HI6210_I2S
@@ -0,0 +1 @@
+CONFIG_SND_I2S_HI6210_I2S=m
diff --git a/baseconfig/CONFIG_SND_INTEL8X0 b/baseconfig/CONFIG_SND_INTEL8X0
index 6d78f08ea..d97191a98 100644
--- a/baseconfig/CONFIG_SND_INTEL8X0
+++ b/baseconfig/CONFIG_SND_INTEL8X0
@@ -1 +1 @@
-CONFIG_SND_INTEL8X0=m
+# CONFIG_SND_INTEL8X0 is not set
diff --git a/baseconfig/CONFIG_SND_INTEL8X0M b/baseconfig/CONFIG_SND_INTEL8X0M
index 24ac6ada4..4e04bb51c 100644
--- a/baseconfig/CONFIG_SND_INTEL8X0M
+++ b/baseconfig/CONFIG_SND_INTEL8X0M
@@ -1 +1 @@
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0M is not set
diff --git a/baseconfig/CONFIG_SND_SOC_ADAU1761_I2C b/baseconfig/CONFIG_SND_SOC_ADAU1761_I2C
new file mode 100644
index 000000000..54124be46
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_ADAU1761_I2C
@@ -0,0 +1 @@
+CONFIG_SND_SOC_ADAU1761_I2C=m
diff --git a/baseconfig/CONFIG_SND_SOC_ADAU1761_SPI b/baseconfig/CONFIG_SND_SOC_ADAU1761_SPI
new file mode 100644
index 000000000..fce8309a6
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_ADAU1761_SPI
@@ -0,0 +1 @@
+CONFIG_SND_SOC_ADAU1761_SPI=m
diff --git a/baseconfig/CONFIG_SND_SOC_CS35L35 b/baseconfig/CONFIG_SND_SOC_CS35L35
new file mode 100644
index 000000000..3969b2fee
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_CS35L35
@@ -0,0 +1 @@
+CONFIG_SND_SOC_CS35L35=m
diff --git a/baseconfig/CONFIG_SND_SOC_DIO2125 b/baseconfig/CONFIG_SND_SOC_DIO2125
new file mode 100644
index 000000000..d3121e77e
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_DIO2125
@@ -0,0 +1 @@
+CONFIG_SND_SOC_DIO2125=m
diff --git a/baseconfig/CONFIG_SND_SOC_ES7134 b/baseconfig/CONFIG_SND_SOC_ES7134
new file mode 100644
index 000000000..ff087adce
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_ES7134
@@ -0,0 +1 @@
+CONFIG_SND_SOC_ES7134=m
diff --git a/baseconfig/CONFIG_SND_SOC_MAX98927 b/baseconfig/CONFIG_SND_SOC_MAX98927
new file mode 100644
index 000000000..341a74d43
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_MAX98927
@@ -0,0 +1 @@
+CONFIG_SND_SOC_MAX98927=m
diff --git a/baseconfig/CONFIG_SND_SOC_NAU8824 b/baseconfig/CONFIG_SND_SOC_NAU8824
new file mode 100644
index 000000000..3551419c6
--- /dev/null
+++ b/baseconfig/CONFIG_SND_SOC_NAU8824
@@ -0,0 +1 @@
+CONFIG_SND_SOC_NAU8824=m
diff --git a/baseconfig/CONFIG_SND_VIA82XX b/baseconfig/CONFIG_SND_VIA82XX
index 129cf3976..2c2673578 100644
--- a/baseconfig/CONFIG_SND_VIA82XX
+++ b/baseconfig/CONFIG_SND_VIA82XX
@@ -1 +1 @@
-CONFIG_SND_VIA82XX=m
+# CONFIG_SND_VIA82XX is not set
diff --git a/baseconfig/CONFIG_SND_VIA82XX_MODEM b/baseconfig/CONFIG_SND_VIA82XX_MODEM
index 81e80f3a5..53055c694 100644
--- a/baseconfig/CONFIG_SND_VIA82XX_MODEM
+++ b/baseconfig/CONFIG_SND_VIA82XX_MODEM
@@ -1 +1 @@
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX_MODEM is not set
diff --git a/baseconfig/CONFIG_SRF04 b/baseconfig/CONFIG_SRF04
new file mode 100644
index 000000000..7dcc9136e
--- /dev/null
+++ b/baseconfig/CONFIG_SRF04
@@ -0,0 +1 @@
+# CONFIG_SRF04 is not set
diff --git a/baseconfig/CONFIG_SYSTEM_BLACKLIST_HASH_LIST b/baseconfig/CONFIG_SYSTEM_BLACKLIST_HASH_LIST
new file mode 100644
index 000000000..858e87e78
--- /dev/null
+++ b/baseconfig/CONFIG_SYSTEM_BLACKLIST_HASH_LIST
@@ -0,0 +1 @@
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
diff --git a/baseconfig/x86/CONFIG_TCG_CRB b/baseconfig/CONFIG_TCG_CRB
index 07a62cae3..07a62cae3 100644
--- a/baseconfig/x86/CONFIG_TCG_CRB
+++ b/baseconfig/CONFIG_TCG_CRB
diff --git a/baseconfig/CONFIG_TEE b/baseconfig/CONFIG_TEE
new file mode 100644
index 000000000..accc7a854
--- /dev/null
+++ b/baseconfig/CONFIG_TEE
@@ -0,0 +1 @@
+# CONFIG_TEE is not set
diff --git a/baseconfig/CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS b/baseconfig/CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS
new file mode 100644
index 000000000..9288765d6
--- /dev/null
+++ b/baseconfig/CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS
@@ -0,0 +1 @@
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
diff --git a/baseconfig/CONFIG_TIGON3_HWMON b/baseconfig/CONFIG_TIGON3_HWMON
new file mode 100644
index 000000000..31215b555
--- /dev/null
+++ b/baseconfig/CONFIG_TIGON3_HWMON
@@ -0,0 +1 @@
+CONFIG_TIGON3_HWMON=y
diff --git a/baseconfig/CONFIG_TOUCHSCREEN_TSC2007_IIO b/baseconfig/CONFIG_TOUCHSCREEN_TSC2007_IIO
new file mode 100644
index 000000000..b67dd760f
--- /dev/null
+++ b/baseconfig/CONFIG_TOUCHSCREEN_TSC2007_IIO
@@ -0,0 +1 @@
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
diff --git a/baseconfig/CONFIG_TYPEC_FUSB302 b/baseconfig/CONFIG_TYPEC_FUSB302
new file mode 100644
index 000000000..9633e1956
--- /dev/null
+++ b/baseconfig/CONFIG_TYPEC_FUSB302
@@ -0,0 +1 @@
+CONFIG_TYPEC_FUSB302=m
diff --git a/baseconfig/CONFIG_TYPEC_TCPCI b/baseconfig/CONFIG_TYPEC_TCPCI
new file mode 100644
index 000000000..46687f546
--- /dev/null
+++ b/baseconfig/CONFIG_TYPEC_TCPCI
@@ -0,0 +1 @@
+CONFIG_TYPEC_TCPCI=m
diff --git a/baseconfig/CONFIG_TYPEC_TCPM b/baseconfig/CONFIG_TYPEC_TCPM
new file mode 100644
index 000000000..8294bcc60
--- /dev/null
+++ b/baseconfig/CONFIG_TYPEC_TCPM
@@ -0,0 +1 @@
+CONFIG_TYPEC_TCPM=m
diff --git a/baseconfig/CONFIG_TYPEC_WCOVE b/baseconfig/CONFIG_TYPEC_WCOVE
new file mode 100644
index 000000000..8801ecb28
--- /dev/null
+++ b/baseconfig/CONFIG_TYPEC_WCOVE
@@ -0,0 +1 @@
+CONFIG_TYPEC_WCOVE=m
diff --git a/baseconfig/CONFIG_UBIFS_FS_SECURITY b/baseconfig/CONFIG_UBIFS_FS_SECURITY
new file mode 100644
index 000000000..cb238b9c2
--- /dev/null
+++ b/baseconfig/CONFIG_UBIFS_FS_SECURITY
@@ -0,0 +1 @@
+CONFIG_UBIFS_FS_SECURITY=y
diff --git a/baseconfig/CONFIG_USB_PCI b/baseconfig/CONFIG_USB_PCI
new file mode 100644
index 000000000..26c372a3a
--- /dev/null
+++ b/baseconfig/CONFIG_USB_PCI
@@ -0,0 +1 @@
+CONFIG_USB_PCI=y
diff --git a/baseconfig/CONFIG_USB_RAINSHADOW_CEC b/baseconfig/CONFIG_USB_RAINSHADOW_CEC
new file mode 100644
index 000000000..c6605282b
--- /dev/null
+++ b/baseconfig/CONFIG_USB_RAINSHADOW_CEC
@@ -0,0 +1 @@
+CONFIG_USB_RAINSHADOW_CEC=m
diff --git a/baseconfig/CONFIG_VL6180 b/baseconfig/CONFIG_VL6180
new file mode 100644
index 000000000..b178334de
--- /dev/null
+++ b/baseconfig/CONFIG_VL6180
@@ -0,0 +1 @@
+CONFIG_VL6180=m
diff --git a/baseconfig/CONFIG_VSOCKMON b/baseconfig/CONFIG_VSOCKMON
new file mode 100644
index 000000000..82594c488
--- /dev/null
+++ b/baseconfig/CONFIG_VSOCKMON
@@ -0,0 +1 @@
+CONFIG_VSOCKMON=m
diff --git a/baseconfig/CONFIG_W1_SLAVE_DS2438 b/baseconfig/CONFIG_W1_SLAVE_DS2438
new file mode 100644
index 000000000..34301a62e
--- /dev/null
+++ b/baseconfig/CONFIG_W1_SLAVE_DS2438
@@ -0,0 +1 @@
+CONFIG_W1_SLAVE_DS2438=m
diff --git a/baseconfig/CONFIG_X86_MCELOG_LEGACY b/baseconfig/CONFIG_X86_MCELOG_LEGACY
new file mode 100644
index 000000000..2a4755640
--- /dev/null
+++ b/baseconfig/CONFIG_X86_MCELOG_LEGACY
@@ -0,0 +1 @@
+CONFIG_X86_MCELOG_LEGACY=y
diff --git a/baseconfig/CONFIG_ZX_TDM b/baseconfig/CONFIG_ZX_TDM
new file mode 100644
index 000000000..9d2d9bf4c
--- /dev/null
+++ b/baseconfig/CONFIG_ZX_TDM
@@ -0,0 +1 @@
+# CONFIG_ZX_TDM is not set
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_AK8975 b/baseconfig/arm/CONFIG_AK8975
index 547c21a99..547c21a99 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_AK8975
+++ b/baseconfig/arm/CONFIG_AK8975
diff --git a/baseconfig/arm/CONFIG_BCM2835_THERMAL b/baseconfig/arm/CONFIG_BCM2835_THERMAL
new file mode 100644
index 000000000..a6e3c0a6d
--- /dev/null
+++ b/baseconfig/arm/CONFIG_BCM2835_THERMAL
@@ -0,0 +1 @@
+CONFIG_BCM2835_THERMAL=m
diff --git a/baseconfig/arm/CONFIG_BCM_VIDEOCORE b/baseconfig/arm/CONFIG_BCM_VIDEOCORE
new file mode 100644
index 000000000..6897b418e
--- /dev/null
+++ b/baseconfig/arm/CONFIG_BCM_VIDEOCORE
@@ -0,0 +1 @@
+# CONFIG_BCM_VIDEOCORE is not set
diff --git a/baseconfig/arm/armv7/CONFIG_DEFAULT_MMAP_MIN_ADDR b/baseconfig/arm/CONFIG_DEFAULT_MMAP_MIN_ADDR
index 03757767c..03757767c 100644
--- a/baseconfig/arm/armv7/CONFIG_DEFAULT_MMAP_MIN_ADDR
+++ b/baseconfig/arm/CONFIG_DEFAULT_MMAP_MIN_ADDR
diff --git a/baseconfig/arm/armv7/CONFIG_DRM_DW_HDMI b/baseconfig/arm/CONFIG_DRM_DW_HDMI
index 0be71f10f..0be71f10f 100644
--- a/baseconfig/arm/armv7/CONFIG_DRM_DW_HDMI
+++ b/baseconfig/arm/CONFIG_DRM_DW_HDMI
diff --git a/baseconfig/arm/armv7/CONFIG_DRM_DW_HDMI_AHB_AUDIO b/baseconfig/arm/CONFIG_DRM_DW_HDMI_AHB_AUDIO
index 679147e29..679147e29 100644
--- a/baseconfig/arm/armv7/CONFIG_DRM_DW_HDMI_AHB_AUDIO
+++ b/baseconfig/arm/CONFIG_DRM_DW_HDMI_AHB_AUDIO
diff --git a/baseconfig/arm/CONFIG_DRM_DW_HDMI_I2S_AUDIO b/baseconfig/arm/CONFIG_DRM_DW_HDMI_I2S_AUDIO
new file mode 100644
index 000000000..34ecaf242
--- /dev/null
+++ b/baseconfig/arm/CONFIG_DRM_DW_HDMI_I2S_AUDIO
@@ -0,0 +1 @@
+CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
diff --git a/baseconfig/arm/CONFIG_DRM_MESON_DW_HDMI b/baseconfig/arm/CONFIG_DRM_MESON_DW_HDMI
new file mode 100644
index 000000000..2590929f1
--- /dev/null
+++ b/baseconfig/arm/CONFIG_DRM_MESON_DW_HDMI
@@ -0,0 +1 @@
+CONFIG_DRM_MESON_DW_HDMI=m
diff --git a/baseconfig/arm/CONFIG_DRM_PANEL_JDI_LT070ME05000 b/baseconfig/arm/CONFIG_DRM_PANEL_JDI_LT070ME05000
deleted file mode 100644
index 1d6f21566..000000000
--- a/baseconfig/arm/CONFIG_DRM_PANEL_JDI_LT070ME05000
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_PANEL_JDI_LT070ME05000=m
diff --git a/baseconfig/arm/CONFIG_DRM_PANEL_LVDS b/baseconfig/arm/CONFIG_DRM_PANEL_LVDS
new file mode 100644
index 000000000..6d4d3c7c6
--- /dev/null
+++ b/baseconfig/arm/CONFIG_DRM_PANEL_LVDS
@@ -0,0 +1 @@
+CONFIG_DRM_PANEL_LVDS=m
diff --git a/baseconfig/arm/CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 b/baseconfig/arm/CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2
new file mode 100644
index 000000000..8334ac016
--- /dev/null
+++ b/baseconfig/arm/CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2
@@ -0,0 +1 @@
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
diff --git a/baseconfig/arm/CONFIG_IIO_CROS_EC_LIGHT_PROX b/baseconfig/arm/CONFIG_IIO_CROS_EC_LIGHT_PROX
new file mode 100644
index 000000000..deb1a6eb5
--- /dev/null
+++ b/baseconfig/arm/CONFIG_IIO_CROS_EC_LIGHT_PROX
@@ -0,0 +1 @@
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_KXSD9 b/baseconfig/arm/CONFIG_KXSD9
index 090669c9c..090669c9c 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_KXSD9
+++ b/baseconfig/arm/CONFIG_KXSD9
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_I2C b/baseconfig/arm/CONFIG_KXSD9_I2C
index 3d2256700..3d2256700 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_I2C
+++ b/baseconfig/arm/CONFIG_KXSD9_I2C
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_SPI b/baseconfig/arm/CONFIG_KXSD9_SPI
index f4da57bbc..f4da57bbc 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_KXSD9_SPI
+++ b/baseconfig/arm/CONFIG_KXSD9_SPI
diff --git a/baseconfig/arm/arm64/CONFIG_MFD_SPMI_PMIC b/baseconfig/arm/CONFIG_MFD_SPMI_PMIC
index 6360fee39..6360fee39 100644
--- a/baseconfig/arm/arm64/CONFIG_MFD_SPMI_PMIC
+++ b/baseconfig/arm/CONFIG_MFD_SPMI_PMIC
diff --git a/baseconfig/arm/CONFIG_PCIE_DW_HOST b/baseconfig/arm/CONFIG_PCIE_DW_HOST
new file mode 100644
index 000000000..6aecdd9c1
--- /dev/null
+++ b/baseconfig/arm/CONFIG_PCIE_DW_HOST
@@ -0,0 +1 @@
+CONFIG_PCIE_DW_HOST=y
diff --git a/baseconfig/arm/CONFIG_PCI_FTPCI100 b/baseconfig/arm/CONFIG_PCI_FTPCI100
new file mode 100644
index 000000000..f9fe5b6ea
--- /dev/null
+++ b/baseconfig/arm/CONFIG_PCI_FTPCI100
@@ -0,0 +1 @@
+# CONFIG_PCI_FTPCI100 is not set
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_RADIO_WL128X b/baseconfig/arm/CONFIG_RADIO_WL128X
index 88b42f8e6..88b42f8e6 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_RADIO_WL128X
+++ b/baseconfig/arm/CONFIG_RADIO_WL128X
diff --git a/baseconfig/arm/CONFIG_ROCKCHIP_ANALOGIX_DP b/baseconfig/arm/CONFIG_ROCKCHIP_ANALOGIX_DP
index ee89108f9..4f8576d47 100644
--- a/baseconfig/arm/CONFIG_ROCKCHIP_ANALOGIX_DP
+++ b/baseconfig/arm/CONFIG_ROCKCHIP_ANALOGIX_DP
@@ -1 +1 @@
-CONFIG_ROCKCHIP_ANALOGIX_DP=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
diff --git a/baseconfig/arm/CONFIG_ROCKCHIP_CDN_DP b/baseconfig/arm/CONFIG_ROCKCHIP_CDN_DP
index 98a696d76..86d2137bd 100644
--- a/baseconfig/arm/CONFIG_ROCKCHIP_CDN_DP
+++ b/baseconfig/arm/CONFIG_ROCKCHIP_CDN_DP
@@ -1 +1 @@
-# CONFIG_ROCKCHIP_CDN_DP is not set
+CONFIG_ROCKCHIP_CDN_DP=y
diff --git a/baseconfig/arm/CONFIG_ROCKCHIP_DW_HDMI b/baseconfig/arm/CONFIG_ROCKCHIP_DW_HDMI
index 49748e701..80c330104 100644
--- a/baseconfig/arm/CONFIG_ROCKCHIP_DW_HDMI
+++ b/baseconfig/arm/CONFIG_ROCKCHIP_DW_HDMI
@@ -1 +1 @@
-CONFIG_ROCKCHIP_DW_HDMI=m
+CONFIG_ROCKCHIP_DW_HDMI=y
diff --git a/baseconfig/arm/CONFIG_ROCKCHIP_DW_MIPI_DSI b/baseconfig/arm/CONFIG_ROCKCHIP_DW_MIPI_DSI
index 516f3b1c7..6c00423c8 100644
--- a/baseconfig/arm/CONFIG_ROCKCHIP_DW_MIPI_DSI
+++ b/baseconfig/arm/CONFIG_ROCKCHIP_DW_MIPI_DSI
@@ -1 +1 @@
-CONFIG_ROCKCHIP_DW_MIPI_DSI=m
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
diff --git a/baseconfig/arm/CONFIG_ROCKCHIP_INNO_HDMI b/baseconfig/arm/CONFIG_ROCKCHIP_INNO_HDMI
index 34b798abf..50cf998df 100644
--- a/baseconfig/arm/CONFIG_ROCKCHIP_INNO_HDMI
+++ b/baseconfig/arm/CONFIG_ROCKCHIP_INNO_HDMI
@@ -1 +1 @@
-CONFIG_ROCKCHIP_INNO_HDMI=m
+CONFIG_ROCKCHIP_INNO_HDMI=y
diff --git a/baseconfig/arm/CONFIG_SUN50I_A64_CCU b/baseconfig/arm/CONFIG_SUN50I_A64_CCU
deleted file mode 100644
index 9ce6c792a..000000000
--- a/baseconfig/arm/CONFIG_SUN50I_A64_CCU
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SUN50I_A64_CCU is not set
diff --git a/baseconfig/arm/CONFIG_SUN5I_CCU b/baseconfig/arm/CONFIG_SUN5I_CCU
deleted file mode 100644
index 26856d6b2..000000000
--- a/baseconfig/arm/CONFIG_SUN5I_CCU
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SUN5I_CCU is not set
diff --git a/baseconfig/arm/CONFIG_SUN6I_A31_CCU b/baseconfig/arm/CONFIG_SUN6I_A31_CCU
deleted file mode 100644
index 5ce1bb3f7..000000000
--- a/baseconfig/arm/CONFIG_SUN6I_A31_CCU
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SUN6I_A31_CCU is not set
diff --git a/baseconfig/arm/CONFIG_SUN8I_A23_CCU b/baseconfig/arm/CONFIG_SUN8I_A23_CCU
deleted file mode 100644
index 26ae1100c..000000000
--- a/baseconfig/arm/CONFIG_SUN8I_A23_CCU
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SUN8I_A23_CCU is not set
diff --git a/baseconfig/arm/CONFIG_SUN8I_A33_CCU b/baseconfig/arm/CONFIG_SUN8I_A33_CCU
deleted file mode 100644
index e1a357ee8..000000000
--- a/baseconfig/arm/CONFIG_SUN8I_A33_CCU
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SUN8I_A33_CCU is not set
diff --git a/baseconfig/arm/CONFIG_SUN8I_H3_CCU b/baseconfig/arm/CONFIG_SUN8I_H3_CCU
index 02cfb2c97..542d6fc7d 100644
--- a/baseconfig/arm/CONFIG_SUN8I_H3_CCU
+++ b/baseconfig/arm/CONFIG_SUN8I_H3_CCU
@@ -1 +1 @@
-# CONFIG_SUN8I_H3_CCU is not set
+CONFIG_SUN8I_H3_CCU=y
diff --git a/baseconfig/arm/CONFIG_SUN8I_R_CCU b/baseconfig/arm/CONFIG_SUN8I_R_CCU
new file mode 100644
index 000000000..0b88df0dc
--- /dev/null
+++ b/baseconfig/arm/CONFIG_SUN8I_R_CCU
@@ -0,0 +1 @@
+CONFIG_SUN8I_R_CCU=y
diff --git a/baseconfig/arm/CONFIG_SUN9I_A80_CCU b/baseconfig/arm/CONFIG_SUN9I_A80_CCU
deleted file mode 100644
index 82686b27e..000000000
--- a/baseconfig/arm/CONFIG_SUN9I_A80_CCU
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SUN9I_A80_CCU is not set
diff --git a/baseconfig/arm/CONFIG_SUNXI_CCU b/baseconfig/arm/CONFIG_SUNXI_CCU
deleted file mode 100644
index a383113ef..000000000
--- a/baseconfig/arm/CONFIG_SUNXI_CCU
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SUNXI_CCU is not set
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_TI_ST b/baseconfig/arm/CONFIG_TI_ST
index e6d0d4428..e6d0d4428 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_TI_ST
+++ b/baseconfig/arm/CONFIG_TI_ST
diff --git a/baseconfig/arm/armv7/CONFIG_USB_EHCI_HCD_ORION b/baseconfig/arm/CONFIG_USB_EHCI_HCD_ORION
index eee05e763..eee05e763 100644
--- a/baseconfig/arm/armv7/CONFIG_USB_EHCI_HCD_ORION
+++ b/baseconfig/arm/CONFIG_USB_EHCI_HCD_ORION
diff --git a/baseconfig/arm/CONFIG_VIDEO_BCM2835 b/baseconfig/arm/CONFIG_VIDEO_BCM2835
new file mode 100644
index 000000000..192fdf645
--- /dev/null
+++ b/baseconfig/arm/CONFIG_VIDEO_BCM2835
@@ -0,0 +1 @@
+# CONFIG_VIDEO_BCM2835 is not set
diff --git a/baseconfig/arm/arm64/CONFIG_ACPI_BGRT b/baseconfig/arm/arm64/CONFIG_ACPI_BGRT
new file mode 100644
index 000000000..13035dd82
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_ACPI_BGRT
@@ -0,0 +1 @@
+CONFIG_ACPI_BGRT=y
diff --git a/baseconfig/arm/arm64/CONFIG_ARM64_RELOC_TEST b/baseconfig/arm/arm64/CONFIG_ARM64_RELOC_TEST
new file mode 100644
index 000000000..864fc6a6b
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_ARM64_RELOC_TEST
@@ -0,0 +1 @@
+# CONFIG_ARM64_RELOC_TEST is not set
diff --git a/baseconfig/arm/arm64/CONFIG_AXP20X_ADC b/baseconfig/arm/arm64/CONFIG_AXP20X_ADC
new file mode 100644
index 000000000..025239f25
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_AXP20X_ADC
@@ -0,0 +1 @@
+CONFIG_AXP20X_ADC=m
diff --git a/baseconfig/arm/arm64/CONFIG_BATTERY_AXP20X b/baseconfig/arm/arm64/CONFIG_BATTERY_AXP20X
new file mode 100644
index 000000000..75591a277
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_BATTERY_AXP20X
@@ -0,0 +1 @@
+CONFIG_BATTERY_AXP20X=m
diff --git a/baseconfig/arm/arm64/CONFIG_COMMON_CLK_HI655X b/baseconfig/arm/arm64/CONFIG_COMMON_CLK_HI655X
new file mode 100644
index 000000000..18ddc0770
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_COMMON_CLK_HI655X
@@ -0,0 +1 @@
+CONFIG_COMMON_CLK_HI655X=m
diff --git a/baseconfig/arm/arm64/CONFIG_CRYPTO_DEV_CAVIUM_ZIP b/baseconfig/arm/arm64/CONFIG_CRYPTO_DEV_CAVIUM_ZIP
new file mode 100644
index 000000000..d5226e157
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_CRYPTO_DEV_CAVIUM_ZIP
@@ -0,0 +1 @@
+CONFIG_CRYPTO_DEV_CAVIUM_ZIP=m
diff --git a/baseconfig/arm/arm64/CONFIG_CRYPTO_DEV_SAFEXCEL b/baseconfig/arm/arm64/CONFIG_CRYPTO_DEV_SAFEXCEL
new file mode 100644
index 000000000..61cb97435
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_CRYPTO_DEV_SAFEXCEL
@@ -0,0 +1 @@
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
diff --git a/baseconfig/arm/arm64/CONFIG_EDAC_THUNDERX b/baseconfig/arm/arm64/CONFIG_EDAC_THUNDERX
new file mode 100644
index 000000000..dae44bb02
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_EDAC_THUNDERX
@@ -0,0 +1 @@
+CONFIG_EDAC_THUNDERX=m
diff --git a/baseconfig/arm/arm64/CONFIG_GPIO_XLP b/baseconfig/arm/arm64/CONFIG_GPIO_XLP
new file mode 100644
index 000000000..f99cd41f3
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_GPIO_XLP
@@ -0,0 +1 @@
+CONFIG_GPIO_XLP=m
diff --git a/baseconfig/arm/arm64/CONFIG_I2C_XLP9XX b/baseconfig/arm/arm64/CONFIG_I2C_XLP9XX
new file mode 100644
index 000000000..bcc41c376
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_I2C_XLP9XX
@@ -0,0 +1 @@
+CONFIG_I2C_XLP9XX=m
diff --git a/baseconfig/arm/arm64/CONFIG_K3_DMA b/baseconfig/arm/arm64/CONFIG_K3_DMA
index b698e7e5e..c64ec401c 100644
--- a/baseconfig/arm/arm64/CONFIG_K3_DMA
+++ b/baseconfig/arm/arm64/CONFIG_K3_DMA
@@ -1 +1 @@
-# CONFIG_K3_DMA is not set
+CONFIG_K3_DMA=m
diff --git a/baseconfig/arm/arm64/CONFIG_MMC_CAVIUM_THUNDERX b/baseconfig/arm/arm64/CONFIG_MMC_CAVIUM_THUNDERX
new file mode 100644
index 000000000..8c4640a79
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_MMC_CAVIUM_THUNDERX
@@ -0,0 +1 @@
+CONFIG_MMC_CAVIUM_THUNDERX=m
diff --git a/baseconfig/arm/arm64/CONFIG_NET_XGENE_V2 b/baseconfig/arm/arm64/CONFIG_NET_XGENE_V2
new file mode 100644
index 000000000..7d5cbcdbf
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_NET_XGENE_V2
@@ -0,0 +1 @@
+CONFIG_NET_XGENE_V2=m
diff --git a/baseconfig/arm/arm64/CONFIG_PHY_QCOM_QMP b/baseconfig/arm/arm64/CONFIG_PHY_QCOM_QMP
new file mode 100644
index 000000000..cba57faf8
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_PHY_QCOM_QMP
@@ -0,0 +1 @@
+CONFIG_PHY_QCOM_QMP=m
diff --git a/baseconfig/arm/arm64/CONFIG_PHY_QCOM_QUSB2 b/baseconfig/arm/arm64/CONFIG_PHY_QCOM_QUSB2
new file mode 100644
index 000000000..6512e59d2
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_PHY_QCOM_QUSB2
@@ -0,0 +1 @@
+CONFIG_PHY_QCOM_QUSB2=m
diff --git a/baseconfig/arm/CONFIG_PHY_QCOM_USB_HS b/baseconfig/arm/arm64/CONFIG_PHY_QCOM_USB_HS
index 61e98f856..61e98f856 100644
--- a/baseconfig/arm/CONFIG_PHY_QCOM_USB_HS
+++ b/baseconfig/arm/arm64/CONFIG_PHY_QCOM_USB_HS
diff --git a/baseconfig/arm/CONFIG_PHY_QCOM_USB_HSIC b/baseconfig/arm/arm64/CONFIG_PHY_QCOM_USB_HSIC
index 0b25aa233..0b25aa233 100644
--- a/baseconfig/arm/CONFIG_PHY_QCOM_USB_HSIC
+++ b/baseconfig/arm/arm64/CONFIG_PHY_QCOM_USB_HSIC
diff --git a/baseconfig/arm/arm64/CONFIG_QCOM_IOMMU b/baseconfig/arm/arm64/CONFIG_QCOM_IOMMU
new file mode 100644
index 000000000..b7e99b882
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_QCOM_IOMMU
@@ -0,0 +1 @@
+CONFIG_QCOM_IOMMU=y
diff --git a/baseconfig/arm/CONFIG_QCOM_IRQ_COMBINER b/baseconfig/arm/arm64/CONFIG_QCOM_IRQ_COMBINER
index 6c23d15f7..6c23d15f7 100644
--- a/baseconfig/arm/CONFIG_QCOM_IRQ_COMBINER
+++ b/baseconfig/arm/arm64/CONFIG_QCOM_IRQ_COMBINER
diff --git a/baseconfig/arm/arm64/CONFIG_QCOM_L3_PMU b/baseconfig/arm/arm64/CONFIG_QCOM_L3_PMU
new file mode 100644
index 000000000..ed899d66b
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_QCOM_L3_PMU
@@ -0,0 +1 @@
+CONFIG_QCOM_L3_PMU=y
diff --git a/baseconfig/arm/arm64/CONFIG_QCOM_SMD b/baseconfig/arm/arm64/CONFIG_QCOM_SMD
deleted file mode 100644
index d43fecfdb..000000000
--- a/baseconfig/arm/arm64/CONFIG_QCOM_SMD
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_QCOM_SMD=m
diff --git a/baseconfig/arm/arm64/CONFIG_SOC_TEGRA_FLOWCTRL b/baseconfig/arm/arm64/CONFIG_SOC_TEGRA_FLOWCTRL
new file mode 100644
index 000000000..00413d459
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_SOC_TEGRA_FLOWCTRL
@@ -0,0 +1 @@
+CONFIG_SOC_TEGRA_FLOWCTRL=y
diff --git a/baseconfig/arm/arm64/CONFIG_SPI_XLP b/baseconfig/arm/arm64/CONFIG_SPI_XLP
new file mode 100644
index 000000000..6026d5f51
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_SPI_XLP
@@ -0,0 +1 @@
+CONFIG_SPI_XLP=m
diff --git a/baseconfig/arm/arm64/CONFIG_SUN4I_GPADC b/baseconfig/arm/arm64/CONFIG_SUN4I_GPADC
new file mode 100644
index 000000000..97139c216
--- /dev/null
+++ b/baseconfig/arm/arm64/CONFIG_SUN4I_GPADC
@@ -0,0 +1 @@
+CONFIG_SUN4I_GPADC=m
diff --git a/baseconfig/arm/arm64/CONFIG_SUN8I_H3_CCU b/baseconfig/arm/arm64/CONFIG_SUN8I_H3_CCU
deleted file mode 100644
index 02cfb2c97..000000000
--- a/baseconfig/arm/arm64/CONFIG_SUN8I_H3_CCU
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SUN8I_H3_CCU is not set
diff --git a/baseconfig/arm/armv7/CONFIG_AHCI_DM816 b/baseconfig/arm/armv7/CONFIG_AHCI_DM816
new file mode 100644
index 000000000..ba4b51891
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_AHCI_DM816
@@ -0,0 +1 @@
+CONFIG_AHCI_DM816=m
diff --git a/baseconfig/arm/armv7/CONFIG_AXP20X_ADC b/baseconfig/arm/armv7/CONFIG_AXP20X_ADC
new file mode 100644
index 000000000..025239f25
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_AXP20X_ADC
@@ -0,0 +1 @@
+CONFIG_AXP20X_ADC=m
diff --git a/baseconfig/arm/armv7/CONFIG_BATTERY_AXP20X b/baseconfig/arm/armv7/CONFIG_BATTERY_AXP20X
new file mode 100644
index 000000000..75591a277
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_BATTERY_AXP20X
@@ -0,0 +1 @@
+CONFIG_BATTERY_AXP20X=m
diff --git a/baseconfig/arm/armv7/CONFIG_COMMON_CLK_MAX77802 b/baseconfig/arm/armv7/CONFIG_COMMON_CLK_MAX77802
deleted file mode 100644
index c6e1136d0..000000000
--- a/baseconfig/arm/armv7/CONFIG_COMMON_CLK_MAX77802
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_COMMON_CLK_MAX77802=m
diff --git a/baseconfig/arm/armv7/CONFIG_CRYPTO_DEV_EXYNOS_RNG b/baseconfig/arm/armv7/CONFIG_CRYPTO_DEV_EXYNOS_RNG
new file mode 100644
index 000000000..f60ff08ee
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_CRYPTO_DEV_EXYNOS_RNG
@@ -0,0 +1 @@
+CONFIG_CRYPTO_DEV_EXYNOS_RNG=m
diff --git a/baseconfig/arm/armv7/CONFIG_HW_RANDOM_EXYNOS b/baseconfig/arm/armv7/CONFIG_HW_RANDOM_EXYNOS
deleted file mode 100644
index 87c25300c..000000000
--- a/baseconfig/arm/armv7/CONFIG_HW_RANDOM_EXYNOS
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_HW_RANDOM_EXYNOS=m
diff --git a/baseconfig/arm/armv7/CONFIG_MFD_PM8921_CORE b/baseconfig/arm/armv7/CONFIG_MFD_PM8921_CORE
deleted file mode 100644
index 226d75be9..000000000
--- a/baseconfig/arm/armv7/CONFIG_MFD_PM8921_CORE
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_MFD_PM8921_CORE is not set
diff --git a/baseconfig/arm/armv7/CONFIG_NVMEM_IMX_IIM b/baseconfig/arm/armv7/CONFIG_NVMEM_IMX_IIM
new file mode 100644
index 000000000..9407e7a4b
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_NVMEM_IMX_IIM
@@ -0,0 +1 @@
+CONFIG_NVMEM_IMX_IIM=m
diff --git a/baseconfig/arm/armv7/CONFIG_PCI_DRA7XX b/baseconfig/arm/armv7/CONFIG_PCI_DRA7XX
new file mode 100644
index 000000000..b401f79fb
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_PCI_DRA7XX
@@ -0,0 +1 @@
+# CONFIG_PCI_DRA7XX is not set
diff --git a/baseconfig/arm/armv7/CONFIG_PCI_DRA7XX_EP b/baseconfig/arm/armv7/CONFIG_PCI_DRA7XX_EP
new file mode 100644
index 000000000..8a6a68062
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_PCI_DRA7XX_EP
@@ -0,0 +1 @@
+# CONFIG_PCI_DRA7XX_EP is not set
diff --git a/baseconfig/arm/armv7/CONFIG_PCI_DRA7XX_HOST b/baseconfig/arm/armv7/CONFIG_PCI_DRA7XX_HOST
new file mode 100644
index 000000000..7bbb2fd97
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_PCI_DRA7XX_HOST
@@ -0,0 +1 @@
+# CONFIG_PCI_DRA7XX_HOST is not set
diff --git a/baseconfig/arm/armv7/CONFIG_PL310_ERRATA_588369 b/baseconfig/arm/armv7/CONFIG_PL310_ERRATA_588369
index af3842f84..a821768d1 100644
--- a/baseconfig/arm/armv7/CONFIG_PL310_ERRATA_588369
+++ b/baseconfig/arm/armv7/CONFIG_PL310_ERRATA_588369
@@ -1 +1 @@
-# CONFIG_PL310_ERRATA_588369 is not set
+CONFIG_PL310_ERRATA_588369=y
diff --git a/baseconfig/arm/armv7/CONFIG_PL310_ERRATA_727915 b/baseconfig/arm/armv7/CONFIG_PL310_ERRATA_727915
index 99df60574..4e4e5453f 100644
--- a/baseconfig/arm/armv7/CONFIG_PL310_ERRATA_727915
+++ b/baseconfig/arm/armv7/CONFIG_PL310_ERRATA_727915
@@ -1 +1 @@
-# CONFIG_PL310_ERRATA_727915 is not set
+CONFIG_PL310_ERRATA_727915=y
diff --git a/baseconfig/arm/armv7/CONFIG_QCOM_PM8XXX_XOADC b/baseconfig/arm/armv7/CONFIG_QCOM_PM8XXX_XOADC
new file mode 100644
index 000000000..1060913dd
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_QCOM_PM8XXX_XOADC
@@ -0,0 +1 @@
+CONFIG_QCOM_PM8XXX_XOADC=m
diff --git a/baseconfig/arm/armv7/CONFIG_SND_SOC_MAX98090 b/baseconfig/arm/armv7/CONFIG_SND_SOC_MAX98090
new file mode 100644
index 000000000..c22ad4a46
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_SND_SOC_MAX98090
@@ -0,0 +1 @@
+CONFIG_SND_SOC_MAX98090=m
diff --git a/baseconfig/arm/armv7/CONFIG_SND_SOC_ODROID b/baseconfig/arm/armv7/CONFIG_SND_SOC_ODROID
new file mode 100644
index 000000000..ece6cf56f
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_SND_SOC_ODROID
@@ -0,0 +1 @@
+CONFIG_SND_SOC_ODROID=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SOC_DRA7XX b/baseconfig/arm/armv7/CONFIG_SOC_DRA7XX
index a11bb6971..a11bb6971 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_SOC_DRA7XX
+++ b/baseconfig/arm/armv7/CONFIG_SOC_DRA7XX
diff --git a/baseconfig/arm/armv7/CONFIG_SOC_TEGRA_FLOWCTRL b/baseconfig/arm/armv7/CONFIG_SOC_TEGRA_FLOWCTRL
new file mode 100644
index 000000000..00413d459
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_SOC_TEGRA_FLOWCTRL
@@ -0,0 +1 @@
+CONFIG_SOC_TEGRA_FLOWCTRL=y
diff --git a/baseconfig/arm/armv7/CONFIG_SUN4I_GPADC b/baseconfig/arm/armv7/CONFIG_SUN4I_GPADC
new file mode 100644
index 000000000..97139c216
--- /dev/null
+++ b/baseconfig/arm/armv7/CONFIG_SUN4I_GPADC
@@ -0,0 +1 @@
+CONFIG_SUN4I_GPADC=m
diff --git a/baseconfig/arm/armv7/CONFIG_SUN8I_H3_CCU b/baseconfig/arm/armv7/CONFIG_SUN8I_H3_CCU
deleted file mode 100644
index 542d6fc7d..000000000
--- a/baseconfig/arm/armv7/CONFIG_SUN8I_H3_CCU
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_SUN8I_H3_CCU=y
diff --git a/baseconfig/arm/armv7/CONFIG_TWL4030_CORE b/baseconfig/arm/armv7/CONFIG_TWL4030_CORE
deleted file mode 100644
index 1f5b92782..000000000
--- a/baseconfig/arm/armv7/CONFIG_TWL4030_CORE
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_TWL4030_CORE is not set
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_COMMON_CLK_SI570 b/baseconfig/arm/armv7/armv7/CONFIG_COMMON_CLK_SI570
deleted file mode 100644
index df6668885..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_COMMON_CLK_SI570
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_COMMON_CLK_SI570=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_IMX7_PM_DOMAINS b/baseconfig/arm/armv7/armv7/CONFIG_IMX7_PM_DOMAINS
new file mode 100644
index 000000000..33e5c6a93
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_IMX7_PM_DOMAINS
@@ -0,0 +1 @@
+CONFIG_IMX7_PM_DOMAINS=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC b/baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC
deleted file mode 100644
index 6360fee39..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_MFD_SPMI_PMIC
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MFD_SPMI_PMIC=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_MPU3050_I2C b/baseconfig/arm/armv7/armv7/CONFIG_MPU3050_I2C
deleted file mode 100644
index 2e9c7cc45..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_MPU3050_I2C
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MPU3050_I2C=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_PCI_DRA7XX b/baseconfig/arm/armv7/armv7/CONFIG_PCI_DRA7XX
deleted file mode 100644
index 7f8a147e3..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_PCI_DRA7XX
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_PCI_DRA7XX=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_QMP b/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_QMP
new file mode 100644
index 000000000..cba57faf8
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_QMP
@@ -0,0 +1 @@
+CONFIG_PHY_QCOM_QMP=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_QUSB2 b/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_QUSB2
new file mode 100644
index 000000000..6512e59d2
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_QUSB2
@@ -0,0 +1 @@
+CONFIG_PHY_QCOM_QUSB2=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_USB_HS b/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_USB_HS
new file mode 100644
index 000000000..61e98f856
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_USB_HS
@@ -0,0 +1 @@
+CONFIG_PHY_QCOM_USB_HS=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_USB_HSIC b/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_USB_HSIC
new file mode 100644
index 000000000..0b25aa233
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_PHY_QCOM_USB_HSIC
@@ -0,0 +1 @@
+CONFIG_PHY_QCOM_USB_HSIC=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_PL310_ERRATA_588369 b/baseconfig/arm/armv7/armv7/CONFIG_PL310_ERRATA_588369
deleted file mode 100644
index a821768d1..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_PL310_ERRATA_588369
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_PL310_ERRATA_588369=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_PL310_ERRATA_727915 b/baseconfig/arm/armv7/armv7/CONFIG_PL310_ERRATA_727915
deleted file mode 100644
index 4e4e5453f..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_PL310_ERRATA_727915
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_PL310_ERRATA_727915=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_QCOM_IOMMU b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_IOMMU
new file mode 100644
index 000000000..b7e99b882
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_IOMMU
@@ -0,0 +1 @@
+CONFIG_QCOM_IOMMU=y
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_QCOM_SMD b/baseconfig/arm/armv7/armv7/CONFIG_QCOM_SMD
deleted file mode 100644
index d43fecfdb..000000000
--- a/baseconfig/arm/armv7/armv7/CONFIG_QCOM_SMD
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_QCOM_SMD=m
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_UARTLITE_NR_UARTS b/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_UARTLITE_NR_UARTS
new file mode 100644
index 000000000..37161086e
--- /dev/null
+++ b/baseconfig/arm/armv7/armv7/CONFIG_SERIAL_UARTLITE_NR_UARTS
@@ -0,0 +1 @@
+CONFIG_SERIAL_UARTLITE_NR_UARTS=1
diff --git a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_MSM8916_WCD_ANALOG b/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_MSM8916_WCD_ANALOG
index 207a5e523..f862f05a7 100644
--- a/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_MSM8916_WCD_ANALOG
+++ b/baseconfig/arm/armv7/armv7/CONFIG_SND_SOC_MSM8916_WCD_ANALOG
@@ -1 +1 @@
-CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
+CONFIG_SND_SOC_MSM8916_WCD_ANALOg=m
diff --git a/baseconfig/arm/armv7/lpae/CONFIG_SOC_DRA7XX b/baseconfig/arm/armv7/lpae/CONFIG_SOC_DRA7XX
deleted file mode 100644
index a11bb6971..000000000
--- a/baseconfig/arm/armv7/lpae/CONFIG_SOC_DRA7XX
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_SOC_DRA7XX is not set
diff --git a/baseconfig/powerpc/CONFIG_CRYPTO_CRCT10DIF_VPMSUM b/baseconfig/powerpc/CONFIG_CRYPTO_CRCT10DIF_VPMSUM
new file mode 100644
index 000000000..eb0464d08
--- /dev/null
+++ b/baseconfig/powerpc/CONFIG_CRYPTO_CRCT10DIF_VPMSUM
@@ -0,0 +1 @@
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
diff --git a/baseconfig/powerpc/CONFIG_CRYPTO_VPMSUM_TESTER b/baseconfig/powerpc/CONFIG_CRYPTO_VPMSUM_TESTER
new file mode 100644
index 000000000..a3acefe62
--- /dev/null
+++ b/baseconfig/powerpc/CONFIG_CRYPTO_VPMSUM_TESTER
@@ -0,0 +1 @@
+# CONFIG_CRYPTO_VPMSUM_TESTER is not set
diff --git a/baseconfig/powerpc/CONFIG_PCI_MSI_IRQ_DOMAIN b/baseconfig/powerpc/CONFIG_PCI_MSI_IRQ_DOMAIN
new file mode 100644
index 000000000..2d1ad5bb1
--- /dev/null
+++ b/baseconfig/powerpc/CONFIG_PCI_MSI_IRQ_DOMAIN
@@ -0,0 +1 @@
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
diff --git a/baseconfig/powerpc/CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN b/baseconfig/powerpc/CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN
new file mode 100644
index 000000000..46354e6a9
--- /dev/null
+++ b/baseconfig/powerpc/CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN
@@ -0,0 +1 @@
+CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN=y
diff --git a/baseconfig/powerpc/CONFIG_PPC_DT_CPU_FTRS b/baseconfig/powerpc/CONFIG_PPC_DT_CPU_FTRS
new file mode 100644
index 000000000..aa61b1ff3
--- /dev/null
+++ b/baseconfig/powerpc/CONFIG_PPC_DT_CPU_FTRS
@@ -0,0 +1 @@
+CONFIG_PPC_DT_CPU_FTRS=y
diff --git a/baseconfig/powerpc/CONFIG_SPAPR_TCE_IOMMU b/baseconfig/powerpc/CONFIG_SPAPR_TCE_IOMMU
index da6fd2882..ffe83031d 100644
--- a/baseconfig/powerpc/CONFIG_SPAPR_TCE_IOMMU
+++ b/baseconfig/powerpc/CONFIG_SPAPR_TCE_IOMMU
@@ -1 +1 @@
-# CONFIG_SPAPR_TCE_IOMMU is not set
+CONFIG_SPAPR_TCE_IOMMU=y
diff --git a/baseconfig/powerpc/CONFIG_TWL4030_CORE b/baseconfig/powerpc/CONFIG_TWL4030_CORE
deleted file mode 100644
index 1f5b92782..000000000
--- a/baseconfig/powerpc/CONFIG_TWL4030_CORE
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_TWL4030_CORE is not set
diff --git a/baseconfig/powerpc/CONFIG_USB_OHCI_HCD_PCI b/baseconfig/powerpc/CONFIG_USB_OHCI_HCD_PCI
deleted file mode 100644
index a78b62cb5..000000000
--- a/baseconfig/powerpc/CONFIG_USB_OHCI_HCD_PCI
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_USB_OHCI_HCD_PCI=y
diff --git a/baseconfig/powerpc/CONFIG_VFIO_IOMMU_TYPE1 b/baseconfig/powerpc/CONFIG_VFIO_IOMMU_TYPE1
new file mode 100644
index 000000000..9f1df8c24
--- /dev/null
+++ b/baseconfig/powerpc/CONFIG_VFIO_IOMMU_TYPE1
@@ -0,0 +1 @@
+# CONFIG_VFIO_IOMMU_TYPE1 is not set
diff --git a/baseconfig/s390x/CONFIG_ARCH_RANDOM b/baseconfig/s390x/CONFIG_ARCH_RANDOM
new file mode 100644
index 000000000..51658fe1c
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_ARCH_RANDOM
@@ -0,0 +1 @@
+CONFIG_ARCH_RANDOM=y
diff --git a/baseconfig/s390x/CONFIG_GENERIC_PHY b/baseconfig/s390x/CONFIG_GENERIC_PHY
new file mode 100644
index 000000000..40cd1a4f5
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_GENERIC_PHY
@@ -0,0 +1 @@
+CONFIG_GENERIC_PHY=y
diff --git a/baseconfig/s390x/CONFIG_HW_RANDOM_S390 b/baseconfig/s390x/CONFIG_HW_RANDOM_S390
new file mode 100644
index 000000000..7108db8ff
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_HW_RANDOM_S390
@@ -0,0 +1 @@
+CONFIG_HW_RANDOM_S390=m
diff --git a/baseconfig/s390x/CONFIG_MAX_PHYSMEM_BITS b/baseconfig/s390x/CONFIG_MAX_PHYSMEM_BITS
new file mode 100644
index 000000000..6ace7a163
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_MAX_PHYSMEM_BITS
@@ -0,0 +1 @@
+CONFIG_MAX_PHYSMEM_BITS=46
diff --git a/baseconfig/s390x/CONFIG_MDIO_DEVICE b/baseconfig/s390x/CONFIG_MDIO_DEVICE
new file mode 100644
index 000000000..67ac6bad8
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_MDIO_DEVICE
@@ -0,0 +1 @@
+CONFIG_MDIO_DEVICE=m
diff --git a/baseconfig/s390x/CONFIG_PCI_MSI_IRQ_DOMAIN b/baseconfig/s390x/CONFIG_PCI_MSI_IRQ_DOMAIN
new file mode 100644
index 000000000..2d1ad5bb1
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_PCI_MSI_IRQ_DOMAIN
@@ -0,0 +1 @@
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
diff --git a/baseconfig/s390x/CONFIG_S390_CCW_IOMMU b/baseconfig/s390x/CONFIG_S390_CCW_IOMMU
new file mode 100644
index 000000000..7dd58dfa7
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_S390_CCW_IOMMU
@@ -0,0 +1 @@
+CONFIG_S390_CCW_IOMMU=y
diff --git a/baseconfig/s390x/CONFIG_VFIO_CCW b/baseconfig/s390x/CONFIG_VFIO_CCW
new file mode 100644
index 000000000..15f7493a4
--- /dev/null
+++ b/baseconfig/s390x/CONFIG_VFIO_CCW
@@ -0,0 +1 @@
+CONFIG_VFIO_CCW=m
diff --git a/baseconfig/x86/CONFIG_DELL_WMI_LED b/baseconfig/x86/CONFIG_DELL_WMI_LED
new file mode 100644
index 000000000..23d945e59
--- /dev/null
+++ b/baseconfig/x86/CONFIG_DELL_WMI_LED
@@ -0,0 +1 @@
+CONFIG_DELL_WMI_LED=m
diff --git a/baseconfig/x86/CONFIG_DRM_I915_DEBUG_VBLANK_EVADE b/baseconfig/x86/CONFIG_DRM_I915_DEBUG_VBLANK_EVADE
new file mode 100644
index 000000000..d48518abd
--- /dev/null
+++ b/baseconfig/x86/CONFIG_DRM_I915_DEBUG_VBLANK_EVADE
@@ -0,0 +1 @@
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
diff --git a/baseconfig/x86/i686/CONFIG_DRM_PANEL b/baseconfig/x86/CONFIG_DRM_PANEL
index de8a9c247..de8a9c247 100644
--- a/baseconfig/x86/i686/CONFIG_DRM_PANEL
+++ b/baseconfig/x86/CONFIG_DRM_PANEL
diff --git a/baseconfig/x86/CONFIG_DRM_PANEL_LVDS b/baseconfig/x86/CONFIG_DRM_PANEL_LVDS
new file mode 100644
index 000000000..6d4d3c7c6
--- /dev/null
+++ b/baseconfig/x86/CONFIG_DRM_PANEL_LVDS
@@ -0,0 +1 @@
+CONFIG_DRM_PANEL_LVDS=m
diff --git a/baseconfig/CONFIG_EXTCON_INTEL_INT3496 b/baseconfig/x86/CONFIG_EXTCON_INTEL_INT3496
index 3f6c5d6f5..3f6c5d6f5 100644
--- a/baseconfig/CONFIG_EXTCON_INTEL_INT3496
+++ b/baseconfig/x86/CONFIG_EXTCON_INTEL_INT3496
diff --git a/baseconfig/x86/CONFIG_INTEL_ATOMISP b/baseconfig/x86/CONFIG_INTEL_ATOMISP
new file mode 100644
index 000000000..fde06c533
--- /dev/null
+++ b/baseconfig/x86/CONFIG_INTEL_ATOMISP
@@ -0,0 +1 @@
+# CONFIG_INTEL_ATOMISP is not set
diff --git a/baseconfig/x86/CONFIG_INTEL_CHT_INT33FE b/baseconfig/x86/CONFIG_INTEL_CHT_INT33FE
new file mode 100644
index 000000000..7657a9a07
--- /dev/null
+++ b/baseconfig/x86/CONFIG_INTEL_CHT_INT33FE
@@ -0,0 +1 @@
+CONFIG_INTEL_CHT_INT33FE=m
diff --git a/baseconfig/x86/CONFIG_INTEL_INT0002_VGPIO b/baseconfig/x86/CONFIG_INTEL_INT0002_VGPIO
new file mode 100644
index 000000000..f416f2ddc
--- /dev/null
+++ b/baseconfig/x86/CONFIG_INTEL_INT0002_VGPIO
@@ -0,0 +1 @@
+# CONFIG_INTEL_INT0002_VGPIO is not set
diff --git a/baseconfig/x86/CONFIG_INTEL_SOC_PMIC_CHTWC b/baseconfig/x86/CONFIG_INTEL_SOC_PMIC_CHTWC
new file mode 100644
index 000000000..2d14c0346
--- /dev/null
+++ b/baseconfig/x86/CONFIG_INTEL_SOC_PMIC_CHTWC
@@ -0,0 +1 @@
+# CONFIG_INTEL_SOC_PMIC_CHTWC is not set
diff --git a/baseconfig/x86/CONFIG_LOAD_UEFI_KEYS b/baseconfig/x86/CONFIG_LOAD_UEFI_KEYS
new file mode 100644
index 000000000..22502e981
--- /dev/null
+++ b/baseconfig/x86/CONFIG_LOAD_UEFI_KEYS
@@ -0,0 +1 @@
+CONFIG_LOAD_UEFI_KEYS=y
diff --git a/baseconfig/x86/CONFIG_MODULE_SIG_UEFI b/baseconfig/x86/CONFIG_MODULE_SIG_UEFI
deleted file mode 100644
index c2bb7cecf..000000000
--- a/baseconfig/x86/CONFIG_MODULE_SIG_UEFI
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_MODULE_SIG_UEFI=y
diff --git a/baseconfig/x86/CONFIG_SND_INTEL8X0 b/baseconfig/x86/CONFIG_SND_INTEL8X0
new file mode 100644
index 000000000..6d78f08ea
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SND_INTEL8X0
@@ -0,0 +1 @@
+CONFIG_SND_INTEL8X0=m
diff --git a/baseconfig/x86/CONFIG_SND_INTEL8X0M b/baseconfig/x86/CONFIG_SND_INTEL8X0M
new file mode 100644
index 000000000..24ac6ada4
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SND_INTEL8X0M
@@ -0,0 +1 @@
+CONFIG_SND_INTEL8X0M=m
diff --git a/baseconfig/x86/CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH b/baseconfig/x86/CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH
new file mode 100644
index 000000000..0697694f9
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
diff --git a/baseconfig/x86/CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH b/baseconfig/x86/CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH
new file mode 100644
index 000000000..db07e5fb0
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
diff --git a/baseconfig/x86/CONFIG_SND_VIA82XX b/baseconfig/x86/CONFIG_SND_VIA82XX
new file mode 100644
index 000000000..129cf3976
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SND_VIA82XX
@@ -0,0 +1 @@
+CONFIG_SND_VIA82XX=m
diff --git a/baseconfig/x86/CONFIG_SND_VIA82XX_MODEM b/baseconfig/x86/CONFIG_SND_VIA82XX_MODEM
new file mode 100644
index 000000000..81e80f3a5
--- /dev/null
+++ b/baseconfig/x86/CONFIG_SND_VIA82XX_MODEM
@@ -0,0 +1 @@
+CONFIG_SND_VIA82XX_MODEM=m
diff --git a/baseconfig/x86/CONFIG_XEN_DOM0 b/baseconfig/x86/CONFIG_XEN_DOM0
new file mode 100644
index 000000000..c5cb5d24a
--- /dev/null
+++ b/baseconfig/x86/CONFIG_XEN_DOM0
@@ -0,0 +1 @@
+CONFIG_XEN_DOM0=y
diff --git a/baseconfig/x86/CONFIG_XEN_PV b/baseconfig/x86/CONFIG_XEN_PV
new file mode 100644
index 000000000..89203e84e
--- /dev/null
+++ b/baseconfig/x86/CONFIG_XEN_PV
@@ -0,0 +1 @@
+CONFIG_XEN_PV=y
diff --git a/baseconfig/x86/CONFIG_XEN_PVHVM b/baseconfig/x86/CONFIG_XEN_PVHVM
new file mode 100644
index 000000000..be722d220
--- /dev/null
+++ b/baseconfig/x86/CONFIG_XEN_PVHVM
@@ -0,0 +1 @@
+CONFIG_XEN_PVHVM=y
diff --git a/baseconfig/x86/i686/CONFIG_COMMON_CLK_SI570 b/baseconfig/x86/i686/CONFIG_COMMON_CLK_SI570
deleted file mode 100644
index aa746413a..000000000
--- a/baseconfig/x86/i686/CONFIG_COMMON_CLK_SI570
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_COMMON_CLK_SI570 is not set
diff --git a/baseconfig/x86/CONFIG_EDAC_AMD76X b/baseconfig/x86/i686/CONFIG_EDAC_AMD76X
index fe5952e70..fe5952e70 100644
--- a/baseconfig/x86/CONFIG_EDAC_AMD76X
+++ b/baseconfig/x86/i686/CONFIG_EDAC_AMD76X
diff --git a/baseconfig/x86/CONFIG_EDAC_E7XXX b/baseconfig/x86/i686/CONFIG_EDAC_E7XXX
index 0322ddb69..0322ddb69 100644
--- a/baseconfig/x86/CONFIG_EDAC_E7XXX
+++ b/baseconfig/x86/i686/CONFIG_EDAC_E7XXX
diff --git a/baseconfig/x86/CONFIG_EDAC_I82860 b/baseconfig/x86/i686/CONFIG_EDAC_I82860
index 5e132db1a..5e132db1a 100644
--- a/baseconfig/x86/CONFIG_EDAC_I82860
+++ b/baseconfig/x86/i686/CONFIG_EDAC_I82860
diff --git a/baseconfig/x86/CONFIG_EDAC_I82875P b/baseconfig/x86/i686/CONFIG_EDAC_I82875P
index dbe32d406..dbe32d406 100644
--- a/baseconfig/x86/CONFIG_EDAC_I82875P
+++ b/baseconfig/x86/i686/CONFIG_EDAC_I82875P
diff --git a/baseconfig/x86/CONFIG_EDAC_R82600 b/baseconfig/x86/i686/CONFIG_EDAC_R82600
index 93a01e506..93a01e506 100644
--- a/baseconfig/x86/CONFIG_EDAC_R82600
+++ b/baseconfig/x86/i686/CONFIG_EDAC_R82600
diff --git a/baseconfig/x86/i686/CONFIG_EDAC_SBRIDGE b/baseconfig/x86/i686/CONFIG_EDAC_SBRIDGE
deleted file mode 100644
index 8ffe20d85..000000000
--- a/baseconfig/x86/i686/CONFIG_EDAC_SBRIDGE
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_EDAC_SBRIDGE is not set
diff --git a/baseconfig/x86/i686PAE/CONFIG_COMMON_CLK_SI570 b/baseconfig/x86/i686PAE/CONFIG_COMMON_CLK_SI570
deleted file mode 100644
index aa746413a..000000000
--- a/baseconfig/x86/i686PAE/CONFIG_COMMON_CLK_SI570
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_COMMON_CLK_SI570 is not set
diff --git a/baseconfig/x86/i686PAE/CONFIG_DRM_PANEL b/baseconfig/x86/i686PAE/CONFIG_DRM_PANEL
deleted file mode 100644
index de8a9c247..000000000
--- a/baseconfig/x86/i686PAE/CONFIG_DRM_PANEL
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_PANEL=y
diff --git a/baseconfig/x86/i686PAE/CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 b/baseconfig/x86/i686PAE/CONFIG_DRM_PANEL_SHARP_LQ101R1SX01
deleted file mode 100644
index 9d584f6ab..000000000
--- a/baseconfig/x86/i686PAE/CONFIG_DRM_PANEL_SHARP_LQ101R1SX01
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
diff --git a/baseconfig/x86/i686PAE/CONFIG_DRM_PANEL_SHARP_LS043T1LE01 b/baseconfig/x86/i686PAE/CONFIG_DRM_PANEL_SHARP_LS043T1LE01
deleted file mode 100644
index 64dedb057..000000000
--- a/baseconfig/x86/i686PAE/CONFIG_DRM_PANEL_SHARP_LS043T1LE01
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
diff --git a/baseconfig/x86/i686PAE/CONFIG_EDAC_AMD76X b/baseconfig/x86/i686PAE/CONFIG_EDAC_AMD76X
new file mode 100644
index 000000000..fe5952e70
--- /dev/null
+++ b/baseconfig/x86/i686PAE/CONFIG_EDAC_AMD76X
@@ -0,0 +1 @@
+CONFIG_EDAC_AMD76X=m
diff --git a/baseconfig/x86/i686PAE/CONFIG_EDAC_E7XXX b/baseconfig/x86/i686PAE/CONFIG_EDAC_E7XXX
new file mode 100644
index 000000000..0322ddb69
--- /dev/null
+++ b/baseconfig/x86/i686PAE/CONFIG_EDAC_E7XXX
@@ -0,0 +1 @@
+CONFIG_EDAC_E7XXX=m
diff --git a/baseconfig/x86/i686PAE/CONFIG_EDAC_I82860 b/baseconfig/x86/i686PAE/CONFIG_EDAC_I82860
new file mode 100644
index 000000000..5e132db1a
--- /dev/null
+++ b/baseconfig/x86/i686PAE/CONFIG_EDAC_I82860
@@ -0,0 +1 @@
+CONFIG_EDAC_I82860=m
diff --git a/baseconfig/x86/i686PAE/CONFIG_EDAC_I82875P b/baseconfig/x86/i686PAE/CONFIG_EDAC_I82875P
new file mode 100644
index 000000000..dbe32d406
--- /dev/null
+++ b/baseconfig/x86/i686PAE/CONFIG_EDAC_I82875P
@@ -0,0 +1 @@
+CONFIG_EDAC_I82875P=m
diff --git a/baseconfig/x86/i686PAE/CONFIG_EDAC_R82600 b/baseconfig/x86/i686PAE/CONFIG_EDAC_R82600
new file mode 100644
index 000000000..93a01e506
--- /dev/null
+++ b/baseconfig/x86/i686PAE/CONFIG_EDAC_R82600
@@ -0,0 +1 @@
+CONFIG_EDAC_R82600=m
diff --git a/baseconfig/x86/i686PAE/CONFIG_EDAC_SBRIDGE b/baseconfig/x86/i686PAE/CONFIG_EDAC_SBRIDGE
deleted file mode 100644
index 8ffe20d85..000000000
--- a/baseconfig/x86/i686PAE/CONFIG_EDAC_SBRIDGE
+++ /dev/null
@@ -1 +0,0 @@
-# CONFIG_EDAC_SBRIDGE is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_AK8975 b/baseconfig/x86/x86_64/CONFIG_AK8975
new file mode 100644
index 000000000..547c21a99
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_AK8975
@@ -0,0 +1 @@
+CONFIG_AK8975=m
diff --git a/baseconfig/x86/x86_64/CONFIG_AXP20X_ADC b/baseconfig/x86/x86_64/CONFIG_AXP20X_ADC
new file mode 100644
index 000000000..0960ee661
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_AXP20X_ADC
@@ -0,0 +1 @@
+# CONFIG_AXP20X_ADC is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_AXP20X_POWER b/baseconfig/x86/x86_64/CONFIG_AXP20X_POWER
new file mode 100644
index 000000000..e02cee707
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_AXP20X_POWER
@@ -0,0 +1 @@
+# CONFIG_AXP20X_POWER is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_AXP288_ADC b/baseconfig/x86/x86_64/CONFIG_AXP288_ADC
new file mode 100644
index 000000000..e138f36af
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_AXP288_ADC
@@ -0,0 +1 @@
+CONFIG_AXP288_ADC=m
diff --git a/baseconfig/x86/x86_64/CONFIG_AXP288_CHARGER b/baseconfig/x86/x86_64/CONFIG_AXP288_CHARGER
new file mode 100644
index 000000000..0418f962c
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_AXP288_CHARGER
@@ -0,0 +1 @@
+CONFIG_AXP288_CHARGER=m
diff --git a/baseconfig/x86/x86_64/CONFIG_AXP288_FUEL_GAUGE b/baseconfig/x86/x86_64/CONFIG_AXP288_FUEL_GAUGE
new file mode 100644
index 000000000..e171b954b
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_AXP288_FUEL_GAUGE
@@ -0,0 +1 @@
+CONFIG_AXP288_FUEL_GAUGE=m
diff --git a/baseconfig/x86/x86_64/CONFIG_BATTERY_MAX17042 b/baseconfig/x86/x86_64/CONFIG_BATTERY_MAX17042
new file mode 100644
index 000000000..669e6ac2e
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_BATTERY_MAX17042
@@ -0,0 +1 @@
+CONFIG_BATTERY_MAX17042=m
diff --git a/baseconfig/x86/x86_64/CONFIG_CHARGER_BQ24190 b/baseconfig/x86/x86_64/CONFIG_CHARGER_BQ24190
new file mode 100644
index 000000000..3128bb676
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_CHARGER_BQ24190
@@ -0,0 +1 @@
+CONFIG_CHARGER_BQ24190=m
diff --git a/baseconfig/x86/x86_64/CONFIG_CHT_WC_PMIC_OPREGION b/baseconfig/x86/x86_64/CONFIG_CHT_WC_PMIC_OPREGION
new file mode 100644
index 000000000..3aa5a5f70
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_CHT_WC_PMIC_OPREGION
@@ -0,0 +1 @@
+CONFIG_CHT_WC_PMIC_OPREGION=y
diff --git a/baseconfig/x86/x86_64/CONFIG_DRM_PANEL b/baseconfig/x86/x86_64/CONFIG_DRM_PANEL
deleted file mode 100644
index de8a9c247..000000000
--- a/baseconfig/x86/x86_64/CONFIG_DRM_PANEL
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_DRM_PANEL=y
diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON b/baseconfig/x86/x86_64/CONFIG_EXTCON
new file mode 100644
index 000000000..0a7190c08
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON
@@ -0,0 +1 @@
+CONFIG_EXTCON=m
diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_AXP288 b/baseconfig/x86/x86_64/CONFIG_EXTCON_AXP288
new file mode 100644
index 000000000..7fadeb58d
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_AXP288
@@ -0,0 +1 @@
+CONFIG_EXTCON_AXP288=m
diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_GPIO b/baseconfig/x86/x86_64/CONFIG_EXTCON_GPIO
new file mode 100644
index 000000000..87ca2bd05
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_GPIO
@@ -0,0 +1 @@
+# CONFIG_EXTCON_GPIO is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_INTEL_CHT_WC b/baseconfig/x86/x86_64/CONFIG_EXTCON_INTEL_CHT_WC
new file mode 100644
index 000000000..06e0472e8
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_INTEL_CHT_WC
@@ -0,0 +1 @@
+CONFIG_EXTCON_INTEL_CHT_WC=m
diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_MAX3355 b/baseconfig/x86/x86_64/CONFIG_EXTCON_MAX3355
new file mode 100644
index 000000000..680b5a774
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_MAX3355
@@ -0,0 +1 @@
+# CONFIG_EXTCON_MAX3355 is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_RT8973A b/baseconfig/x86/x86_64/CONFIG_EXTCON_RT8973A
new file mode 100644
index 000000000..e5f7236c9
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_RT8973A
@@ -0,0 +1 @@
+# CONFIG_EXTCON_RT8973A is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_SM5502 b/baseconfig/x86/x86_64/CONFIG_EXTCON_SM5502
new file mode 100644
index 000000000..916994aa9
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_SM5502
@@ -0,0 +1 @@
+# CONFIG_EXTCON_SM5502 is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_EXTCON_USB_GPIO b/baseconfig/x86/x86_64/CONFIG_EXTCON_USB_GPIO
new file mode 100644
index 000000000..7a0c9af30
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_EXTCON_USB_GPIO
@@ -0,0 +1 @@
+# CONFIG_EXTCON_USB_GPIO is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_GPIO_AXP209 b/baseconfig/x86/x86_64/CONFIG_GPIO_AXP209
new file mode 100644
index 000000000..c71682292
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_GPIO_AXP209
@@ -0,0 +1 @@
+# CONFIG_GPIO_AXP209 is not set
diff --git a/baseconfig/x86/x86_64/CONFIG_I2C_CHT_WC b/baseconfig/x86/x86_64/CONFIG_I2C_CHT_WC
new file mode 100644
index 000000000..f656e03fc
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_I2C_CHT_WC
@@ -0,0 +1 @@
+CONFIG_I2C_CHT_WC=m
diff --git a/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_CORE b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_CORE
new file mode 100644
index 000000000..f9cdc633b
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_CORE
@@ -0,0 +1 @@
+CONFIG_I2C_DESIGNWARE_CORE=y
diff --git a/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PCI b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PCI
new file mode 100644
index 000000000..6103f947e
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PCI
@@ -0,0 +1 @@
+CONFIG_I2C_DESIGNWARE_PCI=y
diff --git a/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PLATFORM b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PLATFORM
new file mode 100644
index 000000000..3d50a3e8a
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_I2C_DESIGNWARE_PLATFORM
@@ -0,0 +1 @@
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
diff --git a/baseconfig/x86/x86_64/CONFIG_INFINIBAND_OPA_VNIC b/baseconfig/x86/x86_64/CONFIG_INFINIBAND_OPA_VNIC
new file mode 100644
index 000000000..d79565e48
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_INFINIBAND_OPA_VNIC
@@ -0,0 +1 @@
+CONFIG_INFINIBAND_OPA_VNIC=m
diff --git a/baseconfig/x86/x86_64/CONFIG_INPUT_AXP20X_PEK b/baseconfig/x86/x86_64/CONFIG_INPUT_AXP20X_PEK
new file mode 100644
index 000000000..e2fbdf907
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_INPUT_AXP20X_PEK
@@ -0,0 +1 @@
+CONFIG_INPUT_AXP20X_PEK=m
diff --git a/baseconfig/x86/x86_64/CONFIG_INTEL_INT0002_VGPIO b/baseconfig/x86/x86_64/CONFIG_INTEL_INT0002_VGPIO
new file mode 100644
index 000000000..7ab08bb0e
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_INTEL_INT0002_VGPIO
@@ -0,0 +1 @@
+CONFIG_INTEL_INT0002_VGPIO=m
diff --git a/baseconfig/x86/x86_64/CONFIG_INTEL_SOC_PMIC_CHTWC b/baseconfig/x86/x86_64/CONFIG_INTEL_SOC_PMIC_CHTWC
new file mode 100644
index 000000000..2f8920510
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_INTEL_SOC_PMIC_CHTWC
@@ -0,0 +1 @@
+CONFIG_INTEL_SOC_PMIC_CHTWC=y
diff --git a/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_I2C b/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_I2C
new file mode 100644
index 000000000..8ec049b05
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_I2C
@@ -0,0 +1 @@
+CONFIG_INV_MPU6050_I2C=m
diff --git a/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_IIO b/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_IIO
new file mode 100644
index 000000000..ae4889d92
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_INV_MPU6050_IIO
@@ -0,0 +1 @@
+CONFIG_INV_MPU6050_IIO=m
diff --git a/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X b/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X
new file mode 100644
index 000000000..ada79c0d1
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X
@@ -0,0 +1 @@
+CONFIG_MFD_AXP20X=y
diff --git a/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X_I2C b/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X_I2C
new file mode 100644
index 000000000..22c60295b
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_MFD_AXP20X_I2C
@@ -0,0 +1 @@
+CONFIG_MFD_AXP20X_I2C=y
diff --git a/baseconfig/x86/x86_64/CONFIG_NR_DEV_DAX b/baseconfig/x86/x86_64/CONFIG_NR_DEV_DAX
deleted file mode 100644
index 3fd0f86b1..000000000
--- a/baseconfig/x86/x86_64/CONFIG_NR_DEV_DAX
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_NR_DEV_DAX=32768
diff --git a/baseconfig/x86/x86_64/CONFIG_SILEAD_DMI b/baseconfig/x86/x86_64/CONFIG_SILEAD_DMI
new file mode 100644
index 000000000..25b017354
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_SILEAD_DMI
@@ -0,0 +1 @@
+CONFIG_SILEAD_DMI=y
diff --git a/baseconfig/x86/x86_64/CONFIG_USB_XHCI_PLATFORM b/baseconfig/x86/x86_64/CONFIG_USB_XHCI_PLATFORM
new file mode 100644
index 000000000..060ebfc94
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_USB_XHCI_PLATFORM
@@ -0,0 +1 @@
+CONFIG_USB_XHCI_PLATFORM=m
diff --git a/baseconfig/x86/x86_64/CONFIG_XPOWER_PMIC_OPREGION b/baseconfig/x86/x86_64/CONFIG_XPOWER_PMIC_OPREGION
new file mode 100644
index 000000000..8c98df142
--- /dev/null
+++ b/baseconfig/x86/x86_64/CONFIG_XPOWER_PMIC_OPREGION
@@ -0,0 +1 @@
+CONFIG_XPOWER_PMIC_OPREGION=y
diff --git a/bcm2835-fix-potential-null-pointer-dereferences.patch b/bcm2835-fix-potential-null-pointer-dereferences.patch
new file mode 100644
index 000000000..862e77fe8
--- /dev/null
+++ b/bcm2835-fix-potential-null-pointer-dereferences.patch
@@ -0,0 +1,70 @@
+From patchwork Thu May 25 17:04:55 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [v2] mmc: bcm2835: fix potential null pointer dereferences
+From: "Gustavo A. R. Silva" <garsilva@embeddedor.com>
+X-Patchwork-Id: 9748761
+Message-Id: <20170525170455.GA6904@embeddedgus>
+To: Stefan Wahren <stefan.wahren@i2se.com>,
+ Ulf Hansson <ulf.hansson@linaro.org>,
+ Florian Fainelli <f.fainelli@gmail.com>,
+ Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
+ bcm-kernel-feedback-list@broadcom.com, Eric Anholt <eric@anholt.net>
+Cc: "Gustavo A. R. Silva" <garsilva@embeddedor.com>,
+ linux-mmc@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
+ linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org
+Date: Thu, 25 May 2017 12:04:55 -0500
+
+Null check at line 1165: if (mrq->cmd), implies that mrq->cmd might
+be NULL.
+Add null checks before dereferencing pointer mrq->cmd in order to avoid
+any potential NULL pointer dereference.
+
+Addresses-Coverity-ID: 1408740
+Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
+Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
+---
+Changes in v2:
+ Change subject to make it clear the patch is bcm2835 related.
+
+ drivers/mmc/host/bcm2835.c | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
+index 1f343a4..abba9a2 100644
+--- a/drivers/mmc/host/bcm2835.c
++++ b/drivers/mmc/host/bcm2835.c
+@@ -1172,7 +1172,10 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
+ if (mrq->data && !is_power_of_2(mrq->data->blksz)) {
+ dev_err(dev, "unsupported block size (%d bytes)\n",
+ mrq->data->blksz);
+- mrq->cmd->error = -EINVAL;
++
++ if (mrq->cmd)
++ mrq->cmd->error = -EINVAL;
++
+ mmc_request_done(mmc, mrq);
+ return;
+ }
+@@ -1194,7 +1197,10 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
+ readl(host->ioaddr + SDCMD) & SDCMD_CMD_MASK,
+ edm);
+ bcm2835_dumpregs(host);
+- mrq->cmd->error = -EILSEQ;
++
++ if (mrq->cmd)
++ mrq->cmd->error = -EILSEQ;
++
+ bcm2835_finish_request(host);
+ mutex_unlock(&host->mutex);
+ return;
+@@ -1207,7 +1213,7 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
+ if (!host->use_busy)
+ bcm2835_finish_command(host);
+ }
+- } else if (bcm2835_send_command(host, mrq->cmd)) {
++ } else if (mrq->cmd && bcm2835_send_command(host, mrq->cmd)) {
+ if (host->data && host->dma_desc) {
+ /* DMA transfer starts now, PIO starts after irq */
+ bcm2835_start_dma(host);
diff --git a/bcm283x-fixes.patch b/bcm283x-fixes.patch
deleted file mode 100644
index fcddac501..000000000
--- a/bcm283x-fixes.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-From patchwork Sun Jan 29 18:40:59 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2] ARM: bcm2835: dts: fix uart0 pinctrl node names
-From: Baruch Siach <baruch@tkos.co.il>
-X-Patchwork-Id: 9544261
-Message-Id: <f37d02c769d0e2b6db2529cafb86b5fdd1e09a94.1485715259.git.baruch@tkos.co.il>
-To: Stephen Warren <swarren@wwwdotorg.org>, Lee Jones <lee@kernel.org>,
- Eric Anholt <eric@anholt.net>
-Cc: Baruch Siach <baruch@tkos.co.il>, linux-rpi-kernel@lists.infradead.org,
- linux-arm-kernel@lists.infradead.org
-Date: Sun, 29 Jan 2017 20:40:59 +0200
-
-Downstream kernel uses pins 32, 33 as UART0 (PL011) Rx/Tx to communicate with
-the Bluetooth chip. So ALT3 of these pins is most likely not CTS/RTS. Change
-the node name to reflect that. This matches section 6.2 "Alternative Function
-Assignments" in the BCM2835 ARM Peripherals document.
-
-With this change in place, adding
-
- &uart0 {
- pinctrl-names = "default";
- pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
- status = "okay";
- };
-
-to bcm2837-rpi-3-b.dts does the right thing on my Raspberry Pi 3.
-
-Pins 30, 31 are CTS/RTS of UART0 in alternate function 3. Rename uart0_gpio30
-as well.
-
-While at it, fix a little typo in a nearby comment.
-
-Fixes: 21ff843931b ("ARM: dts: bcm283x: Define standard pinctrl groups in the gpio node.")
-Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
-Reviewed-by: Eric Anholt <eric@anholt.net>
----
-v2:
- * Reference the ARM Peripherals document
- * Fix subject typo (Stefan)
- * Rename also uart0_gpio30 (Stefan)
- * Add comment typo fix (Stefan)
- * Add Stefan's ack
----
- arch/arm/boot/dts/bcm283x.dtsi | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
-index 9a44da190897..bc8ad417c8a3 100644
---- a/arch/arm/boot/dts/bcm283x.dtsi
-+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -292,17 +292,17 @@
- /* Separate from the uart0_gpio14 group
- * because it conflicts with spi1_gpio16, and
- * people often run uart0 on the two pins
-- * without flow contrl.
-+ * without flow control.
- */
- uart0_ctsrts_gpio16: uart0_ctsrts_gpio16 {
- brcm,pins = <16 17>;
- brcm,function = <BCM2835_FSEL_ALT3>;
- };
-- uart0_gpio30: uart0_gpio30 {
-+ uart0_ctsrts_gpio30: uart0_ctsrts_gpio30 {
- brcm,pins = <30 31>;
- brcm,function = <BCM2835_FSEL_ALT3>;
- };
-- uart0_ctsrts_gpio32: uart0_ctsrts_gpio32 {
-+ uart0_gpio32: uart0_gpio32 {
- brcm,pins = <32 33>;
- brcm,function = <BCM2835_FSEL_ALT3>;
- };
-From patchwork Sun Jan 29 19:53:10 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [1/2] ARM: bcm2835: dts: fix i2c0 pins
-From: Baruch Siach <baruch@tkos.co.il>
-X-Patchwork-Id: 9544275
-Message-Id: <9290fa9eed6b5ff1c5c96b9dac41eca286b7eef9.1485719591.git.baruch@tkos.co.il>
-To: Stephen Warren <swarren@wwwdotorg.org>, Lee Jones <lee@kernel.org>,
- Eric Anholt <eric@anholt.net>
-Cc: Baruch Siach <baruch@tkos.co.il>, linux-rpi-kernel@lists.infradead.org,
- linux-arm-kernel@lists.infradead.org
-Date: Sun, 29 Jan 2017 21:53:10 +0200
-
-According to the BCM2835 ARM Peripherals document i2c0 doesn't map to pins 32,
-34 but to 28, 29.
-
-Fixes: 21ff843931b ("ARM: dts: bcm283x: Define standard pinctrl groups in the gpio node.")
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
- arch/arm/boot/dts/bcm283x.dtsi | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
-index bc8ad417c8a3..2ae842921250 100644
---- a/arch/arm/boot/dts/bcm283x.dtsi
-+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -195,8 +195,8 @@
- brcm,pins = <0 1>;
- brcm,function = <BCM2835_FSEL_ALT0>;
- };
-- i2c0_gpio32: i2c0_gpio32 {
-- brcm,pins = <32 34>;
-+ i2c0_gpio28: i2c0_gpio28 {
-+ brcm,pins = <28 29>;
- brcm,function = <BCM2835_FSEL_ALT0>;
- };
- i2c0_gpio44: i2c0_gpio44 {
-From patchwork Sun Jan 29 19:53:11 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [2/2] ARM: bcm2835: dts: fix uart0/uart1 pins
-From: Baruch Siach <baruch@tkos.co.il>
-X-Patchwork-Id: 9544277
-Message-Id: <e0f527a24b0048daba88ef36d5324245e003111c.1485719591.git.baruch@tkos.co.il>
-To: Stephen Warren <swarren@wwwdotorg.org>, Lee Jones <lee@kernel.org>,
- Eric Anholt <eric@anholt.net>
-Cc: Baruch Siach <baruch@tkos.co.il>, linux-rpi-kernel@lists.infradead.org,
- linux-arm-kernel@lists.infradead.org
-Date: Sun, 29 Jan 2017 21:53:11 +0200
-
-According to the BCM2835 ARM Peripherals document uart1 doesn't map to pins
-36-39, but uart0 does.
-
-Also, split into separate Rx/Tx and CST/RTS groups to match other uart nodes.
-
-Fixes: 21ff843931b ("ARM: dts: bcm283x: Define standard pinctrl groups in the gpio node.")
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
- arch/arm/boot/dts/bcm283x.dtsi | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
-index 2ae842921250..9ee8346b8b19 100644
---- a/arch/arm/boot/dts/bcm283x.dtsi
-+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -306,6 +306,14 @@
- brcm,pins = <32 33>;
- brcm,function = <BCM2835_FSEL_ALT3>;
- };
-+ uart0_gpio36: uart0_gpio36 {
-+ brcm,pins = <36 37>;
-+ brcm,function = <BCM2835_FSEL_ALT2>;
-+ };
-+ uart0_ctsrts_gpio38: uart0_ctsrts_gpio38 {
-+ brcm,pins = <38 39>;
-+ brcm,function = <BCM2835_FSEL_ALT2>;
-+ };
-
- uart1_gpio14: uart1_gpio14 {
- brcm,pins = <14 15>;
-@@ -323,10 +331,6 @@
- brcm,pins = <30 31>;
- brcm,function = <BCM2835_FSEL_ALT5>;
- };
-- uart1_gpio36: uart1_gpio36 {
-- brcm,pins = <36 37 38 39>;
-- brcm,function = <BCM2835_FSEL_ALT2>;
-- };
- uart1_gpio40: uart1_gpio40 {
- brcm,pins = <40 41>;
- brcm,function = <BCM2835_FSEL_ALT5>;
-From patchwork Mon Jan 30 18:44:39 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: ARM: bcm2835: dt: add index to the ethernet alias
-From: Baruch Siach <baruch@tkos.co.il>
-X-Patchwork-Id: 9545945
-Message-Id: <5942321c5d0bfea54eac64ace2b217e8e0b6220d.1485801879.git.baruch@tkos.co.il>
-To: Stephen Warren <swarren@wwwdotorg.org>, Lee Jones <lee@kernel.org>,
- Eric Anholt <eric@anholt.net>
-Cc: Lubomir Rintel <lkundrak@v3.sk>, Baruch Siach <baruch@tkos.co.il>,
- linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org
-Date: Mon, 30 Jan 2017 20:44:39 +0200
-
-An alias name should have an index number even when it is the only of its type.
-This allows U-Boot to add the local-mac-address property. Otherwise U-Boot
-skips the alias.
-
-Cc: Lubomir Rintel <lkundrak@v3.sk>
-Fixes: 6a93792774 ("ARM: bcm2835: dt: Add the ethernet to the device trees")
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
-Acked-by: Lubomir Rintel <lkundrak@v3.sk>
----
- arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi | 2 +-
- arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi b/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi
-index 12c981e51134..9a0599f711ff 100644
---- a/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi
-+++ b/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi
-@@ -1,6 +1,6 @@
- / {
- aliases {
-- ethernet = &ethernet;
-+ ethernet0 = &ethernet;
- };
- };
-
-diff --git a/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi b/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
-index 3f0a56ebcf1f..dc7ae776db5f 100644
---- a/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
-+++ b/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
-@@ -1,6 +1,6 @@
- / {
- aliases {
-- ethernet = &ethernet;
-+ ethernet0 = &ethernet;
- };
- };
-
diff --git a/bcm283x-hdmi-audio.patch b/bcm283x-hdmi-audio.patch
deleted file mode 100644
index 3ed3d2d34..000000000
--- a/bcm283x-hdmi-audio.patch
+++ /dev/null
@@ -1,836 +0,0 @@
-From bbcb8aacb871edf0360e808180162591b11c6a35 Mon Sep 17 00:00:00 2001
-From: Boris Brezillon <boris.brezillon@free-electrons.com>
-Date: Mon, 27 Feb 2017 12:28:01 -0800
-Subject: [PATCH 1/3] dt-bindings: Document the dmas and dma-names properties
- for VC4 HDMI
-
-These are optional, but necessary for HDMI audio support.
-
-Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
-Signed-off-by: Eric Anholt <eric@anholt.net>
-Acked-by: Rob Herring <robh@kernel.org>
-Link: http://patchwork.freedesktop.org/patch/msgid/20170227202803.12855-1-eric@anholt.net
----
- Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt b/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
-index 34c7fddcea39..ca02d3e4db91 100644
---- a/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
-+++ b/Documentation/devicetree/bindings/display/brcm,bcm-vc4.txt
-@@ -34,6 +34,9 @@ Optional properties for HDMI:
- - hpd-gpios: The GPIO pin for HDMI hotplug detect (if it doesn't appear
- as an interrupt/status bit in the HDMI controller
- itself). See bindings/pinctrl/brcm,bcm2835-gpio.txt
-+- dmas: Should contain one entry pointing to the DMA channel used to
-+ transfer audio data
-+- dma-names: Should contain "audio-rx"
-
- Required properties for DPI:
- - compatible: Should be "brcm,bcm2835-dpi"
---
-2.12.0
-
-From 8e13e0d8ecf2202c707225a612d10c9534d849f7 Mon Sep 17 00:00:00 2001
-From: Eric Anholt <eric@anholt.net>
-Date: Mon, 27 Feb 2017 12:28:02 -0800
-Subject: [PATCH 2/3] drm/vc4: Add HDMI audio support
-
-The HDMI encoder IP embeds all needed blocks to output audio, with a
-custom DAI called MAI moving audio between the two parts of the HDMI
-core. This driver now exposes a sound card to let users stream audio
-to their display.
-
-Using the hdmi-codec driver has been considered here, but MAI meant
-having to significantly rework hdmi-codec, and it would have left
-little shared code with the I2S mode anyway.
-
-The encoder requires that the audio be SPDIF-formatted frames only,
-which alsalib will format-convert for us.
-
-This patch is the combined work of Eric Anholt (initial register setup
-with a separate dmaengine driver and using simple-audio-card) and
-Boris Brezillon (moving it all into HDMI, massive debug to get it
-actually working), and which Eric has the permission to release.
-
-v2: Drop "-audio" from sound card name, since that's already implied
- (suggestion by Boris)
-
-Signed-off-by: Eric Anholt <eric@anholt.net>
-Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>
-Link: http://patchwork.freedesktop.org/patch/msgid/20170227202803.12855-2-eric@anholt.net
----
- drivers/gpu/drm/vc4/Kconfig | 4 +
- drivers/gpu/drm/vc4/vc4_hdmi.c | 494 ++++++++++++++++++++++++++++++++++++++++-
- drivers/gpu/drm/vc4/vc4_regs.h | 107 ++++++++-
- 3 files changed, 603 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/vc4/Kconfig b/drivers/gpu/drm/vc4/Kconfig
-index e1517d07cb7d..973b4203c0b2 100644
---- a/drivers/gpu/drm/vc4/Kconfig
-+++ b/drivers/gpu/drm/vc4/Kconfig
-@@ -2,11 +2,15 @@ config DRM_VC4
- tristate "Broadcom VC4 Graphics"
- depends on ARCH_BCM2835 || COMPILE_TEST
- depends on DRM
-+ depends on SND && SND_SOC
- depends on COMMON_CLK
- select DRM_KMS_HELPER
- select DRM_KMS_CMA_HELPER
- select DRM_GEM_CMA_HELPER
- select DRM_PANEL
-+ select SND_PCM
-+ select SND_PCM_ELD
-+ select SND_SOC_GENERIC_DMAENGINE_PCM
- select DRM_MIPI_DSI
- help
- Choose this option if you have a system that has a Broadcom
-diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
-index 93d5994f3a04..e4abf4bfc464 100644
---- a/drivers/gpu/drm/vc4/vc4_hdmi.c
-+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
-@@ -31,11 +31,27 @@
- #include "linux/clk.h"
- #include "linux/component.h"
- #include "linux/i2c.h"
-+#include "linux/of_address.h"
- #include "linux/of_gpio.h"
- #include "linux/of_platform.h"
-+#include "linux/rational.h"
-+#include "sound/dmaengine_pcm.h"
-+#include "sound/pcm_drm_eld.h"
-+#include "sound/pcm_params.h"
-+#include "sound/soc.h"
- #include "vc4_drv.h"
- #include "vc4_regs.h"
-
-+/* HDMI audio information */
-+struct vc4_hdmi_audio {
-+ struct snd_soc_card card;
-+ struct snd_soc_dai_link link;
-+ int samplerate;
-+ int channels;
-+ struct snd_dmaengine_dai_dma_data dma_data;
-+ struct snd_pcm_substream *substream;
-+};
-+
- /* General HDMI hardware state. */
- struct vc4_hdmi {
- struct platform_device *pdev;
-@@ -43,6 +59,8 @@ struct vc4_hdmi {
- struct drm_encoder *encoder;
- struct drm_connector *connector;
-
-+ struct vc4_hdmi_audio audio;
-+
- struct i2c_adapter *ddc;
- void __iomem *hdmicore_regs;
- void __iomem *hd_regs;
-@@ -98,6 +116,10 @@ static const struct {
- HDMI_REG(VC4_HDMI_SW_RESET_CONTROL),
- HDMI_REG(VC4_HDMI_HOTPLUG_INT),
- HDMI_REG(VC4_HDMI_HOTPLUG),
-+ HDMI_REG(VC4_HDMI_MAI_CHANNEL_MAP),
-+ HDMI_REG(VC4_HDMI_MAI_CONFIG),
-+ HDMI_REG(VC4_HDMI_MAI_FORMAT),
-+ HDMI_REG(VC4_HDMI_AUDIO_PACKET_CONFIG),
- HDMI_REG(VC4_HDMI_RAM_PACKET_CONFIG),
- HDMI_REG(VC4_HDMI_HORZA),
- HDMI_REG(VC4_HDMI_HORZB),
-@@ -108,6 +130,7 @@ static const struct {
- HDMI_REG(VC4_HDMI_VERTB0),
- HDMI_REG(VC4_HDMI_VERTB1),
- HDMI_REG(VC4_HDMI_TX_PHY_RESET_CTL),
-+ HDMI_REG(VC4_HDMI_TX_PHY_CTL0),
- };
-
- static const struct {
-@@ -116,6 +139,9 @@ static const struct {
- } hd_regs[] = {
- HDMI_REG(VC4_HD_M_CTL),
- HDMI_REG(VC4_HD_MAI_CTL),
-+ HDMI_REG(VC4_HD_MAI_THR),
-+ HDMI_REG(VC4_HD_MAI_FMT),
-+ HDMI_REG(VC4_HD_MAI_SMP),
- HDMI_REG(VC4_HD_VID_CTL),
- HDMI_REG(VC4_HD_CSC_CTL),
- HDMI_REG(VC4_HD_FRAME_COUNT),
-@@ -215,6 +241,7 @@ static int vc4_hdmi_connector_get_modes(struct drm_connector *connector)
-
- drm_mode_connector_update_edid_property(connector, edid);
- ret = drm_add_edid_modes(connector, edid);
-+ drm_edid_to_eld(connector, edid);
-
- return ret;
- }
-@@ -300,7 +327,7 @@ static void vc4_hdmi_write_infoframe(struct drm_encoder *encoder,
- struct drm_device *dev = encoder->dev;
- struct vc4_dev *vc4 = to_vc4_dev(dev);
- u32 packet_id = frame->any.type - 0x80;
-- u32 packet_reg = VC4_HDMI_GCP_0 + VC4_HDMI_PACKET_STRIDE * packet_id;
-+ u32 packet_reg = VC4_HDMI_RAM_PACKET(packet_id);
- uint8_t buffer[VC4_HDMI_PACKET_STRIDE];
- ssize_t len, i;
- int ret;
-@@ -381,6 +408,24 @@ static void vc4_hdmi_set_spd_infoframe(struct drm_encoder *encoder)
- vc4_hdmi_write_infoframe(encoder, &frame);
- }
-
-+static void vc4_hdmi_set_audio_infoframe(struct drm_encoder *encoder)
-+{
-+ struct drm_device *drm = encoder->dev;
-+ struct vc4_dev *vc4 = drm->dev_private;
-+ struct vc4_hdmi *hdmi = vc4->hdmi;
-+ union hdmi_infoframe frame;
-+ int ret;
-+
-+ ret = hdmi_audio_infoframe_init(&frame.audio);
-+
-+ frame.audio.coding_type = HDMI_AUDIO_CODING_TYPE_STREAM;
-+ frame.audio.sample_frequency = HDMI_AUDIO_SAMPLE_FREQUENCY_STREAM;
-+ frame.audio.sample_size = HDMI_AUDIO_SAMPLE_SIZE_STREAM;
-+ frame.audio.channels = hdmi->audio.channels;
-+
-+ vc4_hdmi_write_infoframe(encoder, &frame);
-+}
-+
- static void vc4_hdmi_set_infoframes(struct drm_encoder *encoder)
- {
- vc4_hdmi_set_avi_infoframe(encoder);
-@@ -589,6 +634,447 @@ static const struct drm_encoder_helper_funcs vc4_hdmi_encoder_helper_funcs = {
- .enable = vc4_hdmi_encoder_enable,
- };
-
-+/* HDMI audio codec callbacks */
-+static void vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *hdmi)
-+{
-+ struct drm_device *drm = hdmi->encoder->dev;
-+ struct vc4_dev *vc4 = to_vc4_dev(drm);
-+ u32 hsm_clock = clk_get_rate(hdmi->hsm_clock);
-+ unsigned long n, m;
-+
-+ rational_best_approximation(hsm_clock, hdmi->audio.samplerate,
-+ VC4_HD_MAI_SMP_N_MASK >>
-+ VC4_HD_MAI_SMP_N_SHIFT,
-+ (VC4_HD_MAI_SMP_M_MASK >>
-+ VC4_HD_MAI_SMP_M_SHIFT) + 1,
-+ &n, &m);
-+
-+ HD_WRITE(VC4_HD_MAI_SMP,
-+ VC4_SET_FIELD(n, VC4_HD_MAI_SMP_N) |
-+ VC4_SET_FIELD(m - 1, VC4_HD_MAI_SMP_M));
-+}
-+
-+static void vc4_hdmi_set_n_cts(struct vc4_hdmi *hdmi)
-+{
-+ struct drm_encoder *encoder = hdmi->encoder;
-+ struct drm_crtc *crtc = encoder->crtc;
-+ struct drm_device *drm = encoder->dev;
-+ struct vc4_dev *vc4 = to_vc4_dev(drm);
-+ const struct drm_display_mode *mode = &crtc->state->adjusted_mode;
-+ u32 samplerate = hdmi->audio.samplerate;
-+ u32 n, cts;
-+ u64 tmp;
-+
-+ n = 128 * samplerate / 1000;
-+ tmp = (u64)(mode->clock * 1000) * n;
-+ do_div(tmp, 128 * samplerate);
-+ cts = tmp;
-+
-+ HDMI_WRITE(VC4_HDMI_CRP_CFG,
-+ VC4_HDMI_CRP_CFG_EXTERNAL_CTS_EN |
-+ VC4_SET_FIELD(n, VC4_HDMI_CRP_CFG_N));
-+
-+ /*
-+ * We could get slightly more accurate clocks in some cases by
-+ * providing a CTS_1 value. The two CTS values are alternated
-+ * between based on the period fields
-+ */
-+ HDMI_WRITE(VC4_HDMI_CTS_0, cts);
-+ HDMI_WRITE(VC4_HDMI_CTS_1, cts);
-+}
-+
-+static inline struct vc4_hdmi *dai_to_hdmi(struct snd_soc_dai *dai)
-+{
-+ struct snd_soc_card *card = snd_soc_dai_get_drvdata(dai);
-+
-+ return snd_soc_card_get_drvdata(card);
-+}
-+
-+static int vc4_hdmi_audio_startup(struct snd_pcm_substream *substream,
-+ struct snd_soc_dai *dai)
-+{
-+ struct vc4_hdmi *hdmi = dai_to_hdmi(dai);
-+ struct drm_encoder *encoder = hdmi->encoder;
-+ struct vc4_dev *vc4 = to_vc4_dev(encoder->dev);
-+ int ret;
-+
-+ if (hdmi->audio.substream && hdmi->audio.substream != substream)
-+ return -EINVAL;
-+
-+ hdmi->audio.substream = substream;
-+
-+ /*
-+ * If the HDMI encoder hasn't probed, or the encoder is
-+ * currently in DVI mode, treat the codec dai as missing.
-+ */
-+ if (!encoder->crtc || !(HDMI_READ(VC4_HDMI_RAM_PACKET_CONFIG) &
-+ VC4_HDMI_RAM_PACKET_ENABLE))
-+ return -ENODEV;
-+
-+ ret = snd_pcm_hw_constraint_eld(substream->runtime,
-+ hdmi->connector->eld);
-+ if (ret)
-+ return ret;
-+
-+ return 0;
-+}
-+
-+static int vc4_hdmi_audio_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
-+{
-+ return 0;
-+}
-+
-+static void vc4_hdmi_audio_reset(struct vc4_hdmi *hdmi)
-+{
-+ struct drm_encoder *encoder = hdmi->encoder;
-+ struct drm_device *drm = encoder->dev;
-+ struct device *dev = &hdmi->pdev->dev;
-+ struct vc4_dev *vc4 = to_vc4_dev(drm);
-+ int ret;
-+
-+ ret = vc4_hdmi_stop_packet(encoder, HDMI_INFOFRAME_TYPE_AUDIO);
-+ if (ret)
-+ dev_err(dev, "Failed to stop audio infoframe: %d\n", ret);
-+
-+ HD_WRITE(VC4_HD_MAI_CTL, VC4_HD_MAI_CTL_RESET);
-+ HD_WRITE(VC4_HD_MAI_CTL, VC4_HD_MAI_CTL_ERRORF);
-+ HD_WRITE(VC4_HD_MAI_CTL, VC4_HD_MAI_CTL_FLUSH);
-+}
-+
-+static void vc4_hdmi_audio_shutdown(struct snd_pcm_substream *substream,
-+ struct snd_soc_dai *dai)
-+{
-+ struct vc4_hdmi *hdmi = dai_to_hdmi(dai);
-+
-+ if (substream != hdmi->audio.substream)
-+ return;
-+
-+ vc4_hdmi_audio_reset(hdmi);
-+
-+ hdmi->audio.substream = NULL;
-+}
-+
-+/* HDMI audio codec callbacks */
-+static int vc4_hdmi_audio_hw_params(struct snd_pcm_substream *substream,
-+ struct snd_pcm_hw_params *params,
-+ struct snd_soc_dai *dai)
-+{
-+ struct vc4_hdmi *hdmi = dai_to_hdmi(dai);
-+ struct drm_encoder *encoder = hdmi->encoder;
-+ struct drm_device *drm = encoder->dev;
-+ struct device *dev = &hdmi->pdev->dev;
-+ struct vc4_dev *vc4 = to_vc4_dev(drm);
-+ u32 audio_packet_config, channel_mask;
-+ u32 channel_map, i;
-+
-+ if (substream != hdmi->audio.substream)
-+ return -EINVAL;
-+
-+ dev_dbg(dev, "%s: %u Hz, %d bit, %d channels\n", __func__,
-+ params_rate(params), params_width(params),
-+ params_channels(params));
-+
-+ hdmi->audio.channels = params_channels(params);
-+ hdmi->audio.samplerate = params_rate(params);
-+
-+ HD_WRITE(VC4_HD_MAI_CTL,
-+ VC4_HD_MAI_CTL_RESET |
-+ VC4_HD_MAI_CTL_FLUSH |
-+ VC4_HD_MAI_CTL_DLATE |
-+ VC4_HD_MAI_CTL_ERRORE |
-+ VC4_HD_MAI_CTL_ERRORF);
-+
-+ vc4_hdmi_audio_set_mai_clock(hdmi);
-+
-+ audio_packet_config =
-+ VC4_HDMI_AUDIO_PACKET_ZERO_DATA_ON_SAMPLE_FLAT |
-+ VC4_HDMI_AUDIO_PACKET_ZERO_DATA_ON_INACTIVE_CHANNELS |
-+ VC4_SET_FIELD(0xf, VC4_HDMI_AUDIO_PACKET_B_FRAME_IDENTIFIER);
-+
-+ channel_mask = GENMASK(hdmi->audio.channels - 1, 0);
-+ audio_packet_config |= VC4_SET_FIELD(channel_mask,
-+ VC4_HDMI_AUDIO_PACKET_CEA_MASK);
-+
-+ /* Set the MAI threshold. This logic mimics the firmware's. */
-+ if (hdmi->audio.samplerate > 96000) {
-+ HD_WRITE(VC4_HD_MAI_THR,
-+ VC4_SET_FIELD(0x12, VC4_HD_MAI_THR_DREQHIGH) |
-+ VC4_SET_FIELD(0x12, VC4_HD_MAI_THR_DREQLOW));
-+ } else if (hdmi->audio.samplerate > 48000) {
-+ HD_WRITE(VC4_HD_MAI_THR,
-+ VC4_SET_FIELD(0x14, VC4_HD_MAI_THR_DREQHIGH) |
-+ VC4_SET_FIELD(0x12, VC4_HD_MAI_THR_DREQLOW));
-+ } else {
-+ HD_WRITE(VC4_HD_MAI_THR,
-+ VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_PANICHIGH) |
-+ VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_PANICLOW) |
-+ VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_DREQHIGH) |
-+ VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_DREQLOW));
-+ }
-+
-+ HDMI_WRITE(VC4_HDMI_MAI_CONFIG,
-+ VC4_HDMI_MAI_CONFIG_BIT_REVERSE |
-+ VC4_SET_FIELD(channel_mask, VC4_HDMI_MAI_CHANNEL_MASK));
-+
-+ channel_map = 0;
-+ for (i = 0; i < 8; i++) {
-+ if (channel_mask & BIT(i))
-+ channel_map |= i << (3 * i);
-+ }
-+
-+ HDMI_WRITE(VC4_HDMI_MAI_CHANNEL_MAP, channel_map);
-+ HDMI_WRITE(VC4_HDMI_AUDIO_PACKET_CONFIG, audio_packet_config);
-+ vc4_hdmi_set_n_cts(hdmi);
-+
-+ return 0;
-+}
-+
-+static int vc4_hdmi_audio_trigger(struct snd_pcm_substream *substream, int cmd,
-+ struct snd_soc_dai *dai)
-+{
-+ struct vc4_hdmi *hdmi = dai_to_hdmi(dai);
-+ struct drm_encoder *encoder = hdmi->encoder;
-+ struct drm_device *drm = encoder->dev;
-+ struct vc4_dev *vc4 = to_vc4_dev(drm);
-+
-+ switch (cmd) {
-+ case SNDRV_PCM_TRIGGER_START:
-+ vc4_hdmi_set_audio_infoframe(encoder);
-+ HDMI_WRITE(VC4_HDMI_TX_PHY_CTL0,
-+ HDMI_READ(VC4_HDMI_TX_PHY_CTL0) &
-+ ~VC4_HDMI_TX_PHY_RNG_PWRDN);
-+ HD_WRITE(VC4_HD_MAI_CTL,
-+ VC4_SET_FIELD(hdmi->audio.channels,
-+ VC4_HD_MAI_CTL_CHNUM) |
-+ VC4_HD_MAI_CTL_ENABLE);
-+ break;
-+ case SNDRV_PCM_TRIGGER_STOP:
-+ HD_WRITE(VC4_HD_MAI_CTL,
-+ VC4_HD_MAI_CTL_DLATE |
-+ VC4_HD_MAI_CTL_ERRORE |
-+ VC4_HD_MAI_CTL_ERRORF);
-+ HDMI_WRITE(VC4_HDMI_TX_PHY_CTL0,
-+ HDMI_READ(VC4_HDMI_TX_PHY_CTL0) |
-+ VC4_HDMI_TX_PHY_RNG_PWRDN);
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ return 0;
-+}
-+
-+static inline struct vc4_hdmi *
-+snd_component_to_hdmi(struct snd_soc_component *component)
-+{
-+ struct snd_soc_card *card = snd_soc_component_get_drvdata(component);
-+
-+ return snd_soc_card_get_drvdata(card);
-+}
-+
-+static int vc4_hdmi_audio_eld_ctl_info(struct snd_kcontrol *kcontrol,
-+ struct snd_ctl_elem_info *uinfo)
-+{
-+ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
-+ struct vc4_hdmi *hdmi = snd_component_to_hdmi(component);
-+
-+ uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
-+ uinfo->count = sizeof(hdmi->connector->eld);
-+
-+ return 0;
-+}
-+
-+static int vc4_hdmi_audio_eld_ctl_get(struct snd_kcontrol *kcontrol,
-+ struct snd_ctl_elem_value *ucontrol)
-+{
-+ struct snd_soc_component *component = snd_kcontrol_chip(kcontrol);
-+ struct vc4_hdmi *hdmi = snd_component_to_hdmi(component);
-+
-+ memcpy(ucontrol->value.bytes.data, hdmi->connector->eld,
-+ sizeof(hdmi->connector->eld));
-+
-+ return 0;
-+}
-+
-+static const struct snd_kcontrol_new vc4_hdmi_audio_controls[] = {
-+ {
-+ .access = SNDRV_CTL_ELEM_ACCESS_READ |
-+ SNDRV_CTL_ELEM_ACCESS_VOLATILE,
-+ .iface = SNDRV_CTL_ELEM_IFACE_PCM,
-+ .name = "ELD",
-+ .info = vc4_hdmi_audio_eld_ctl_info,
-+ .get = vc4_hdmi_audio_eld_ctl_get,
-+ },
-+};
-+
-+static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
-+ SND_SOC_DAPM_OUTPUT("TX"),
-+};
-+
-+static const struct snd_soc_dapm_route vc4_hdmi_audio_routes[] = {
-+ { "TX", NULL, "Playback" },
-+};
-+
-+static const struct snd_soc_codec_driver vc4_hdmi_audio_codec_drv = {
-+ .component_driver = {
-+ .controls = vc4_hdmi_audio_controls,
-+ .num_controls = ARRAY_SIZE(vc4_hdmi_audio_controls),
-+ .dapm_widgets = vc4_hdmi_audio_widgets,
-+ .num_dapm_widgets = ARRAY_SIZE(vc4_hdmi_audio_widgets),
-+ .dapm_routes = vc4_hdmi_audio_routes,
-+ .num_dapm_routes = ARRAY_SIZE(vc4_hdmi_audio_routes),
-+ },
-+};
-+
-+static const struct snd_soc_dai_ops vc4_hdmi_audio_dai_ops = {
-+ .startup = vc4_hdmi_audio_startup,
-+ .shutdown = vc4_hdmi_audio_shutdown,
-+ .hw_params = vc4_hdmi_audio_hw_params,
-+ .set_fmt = vc4_hdmi_audio_set_fmt,
-+ .trigger = vc4_hdmi_audio_trigger,
-+};
-+
-+static struct snd_soc_dai_driver vc4_hdmi_audio_codec_dai_drv = {
-+ .name = "vc4-hdmi-hifi",
-+ .playback = {
-+ .stream_name = "Playback",
-+ .channels_min = 2,
-+ .channels_max = 8,
-+ .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,
-+ .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE,
-+ },
-+};
-+
-+static const struct snd_soc_component_driver vc4_hdmi_audio_cpu_dai_comp = {
-+ .name = "vc4-hdmi-cpu-dai-component",
-+};
-+
-+static int vc4_hdmi_audio_cpu_dai_probe(struct snd_soc_dai *dai)
-+{
-+ struct vc4_hdmi *hdmi = dai_to_hdmi(dai);
-+
-+ snd_soc_dai_init_dma_data(dai, &hdmi->audio.dma_data, NULL);
-+
-+ return 0;
-+}
-+
-+static struct snd_soc_dai_driver vc4_hdmi_audio_cpu_dai_drv = {
-+ .name = "vc4-hdmi-cpu-dai",
-+ .probe = vc4_hdmi_audio_cpu_dai_probe,
-+ .playback = {
-+ .stream_name = "Playback",
-+ .channels_min = 1,
-+ .channels_max = 8,
-+ .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,
-+ .formats = SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE,
-+ },
-+ .ops = &vc4_hdmi_audio_dai_ops,
-+};
-+
-+static const struct snd_dmaengine_pcm_config pcm_conf = {
-+ .chan_names[SNDRV_PCM_STREAM_PLAYBACK] = "audio-rx",
-+ .prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config,
-+};
-+
-+static int vc4_hdmi_audio_init(struct vc4_hdmi *hdmi)
-+{
-+ struct snd_soc_dai_link *dai_link = &hdmi->audio.link;
-+ struct snd_soc_card *card = &hdmi->audio.card;
-+ struct device *dev = &hdmi->pdev->dev;
-+ const __be32 *addr;
-+ int ret;
-+
-+ if (!of_find_property(dev->of_node, "dmas", NULL)) {
-+ dev_warn(dev,
-+ "'dmas' DT property is missing, no HDMI audio\n");
-+ return 0;
-+ }
-+
-+ /*
-+ * Get the physical address of VC4_HD_MAI_DATA. We need to retrieve
-+ * the bus address specified in the DT, because the physical address
-+ * (the one returned by platform_get_resource()) is not appropriate
-+ * for DMA transfers.
-+ * This VC/MMU should probably be exposed to avoid this kind of hacks.
-+ */
-+ addr = of_get_address(dev->of_node, 1, NULL, NULL);
-+ hdmi->audio.dma_data.addr = be32_to_cpup(addr) + VC4_HD_MAI_DATA;
-+ hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
-+ hdmi->audio.dma_data.maxburst = 2;
-+
-+ ret = devm_snd_dmaengine_pcm_register(dev, &pcm_conf, 0);
-+ if (ret) {
-+ dev_err(dev, "Could not register PCM component: %d\n", ret);
-+ return ret;
-+ }
-+
-+ ret = devm_snd_soc_register_component(dev, &vc4_hdmi_audio_cpu_dai_comp,
-+ &vc4_hdmi_audio_cpu_dai_drv, 1);
-+ if (ret) {
-+ dev_err(dev, "Could not register CPU DAI: %d\n", ret);
-+ return ret;
-+ }
-+
-+ /* register codec and codec dai */
-+ ret = snd_soc_register_codec(dev, &vc4_hdmi_audio_codec_drv,
-+ &vc4_hdmi_audio_codec_dai_drv, 1);
-+ if (ret) {
-+ dev_err(dev, "Could not register codec: %d\n", ret);
-+ return ret;
-+ }
-+
-+ dai_link->name = "MAI";
-+ dai_link->stream_name = "MAI PCM";
-+ dai_link->codec_dai_name = vc4_hdmi_audio_codec_dai_drv.name;
-+ dai_link->cpu_dai_name = dev_name(dev);
-+ dai_link->codec_name = dev_name(dev);
-+ dai_link->platform_name = dev_name(dev);
-+
-+ card->dai_link = dai_link;
-+ card->num_links = 1;
-+ card->name = "vc4-hdmi";
-+ card->dev = dev;
-+
-+ /*
-+ * Be careful, snd_soc_register_card() calls dev_set_drvdata() and
-+ * stores a pointer to the snd card object in dev->driver_data. This
-+ * means we cannot use it for something else. The hdmi back-pointer is
-+ * now stored in card->drvdata and should be retrieved with
-+ * snd_soc_card_get_drvdata() if needed.
-+ */
-+ snd_soc_card_set_drvdata(card, hdmi);
-+ ret = devm_snd_soc_register_card(dev, card);
-+ if (ret) {
-+ dev_err(dev, "Could not register sound card: %d\n", ret);
-+ goto unregister_codec;
-+ }
-+
-+ return 0;
-+
-+unregister_codec:
-+ snd_soc_unregister_codec(dev);
-+
-+ return ret;
-+}
-+
-+static void vc4_hdmi_audio_cleanup(struct vc4_hdmi *hdmi)
-+{
-+ struct device *dev = &hdmi->pdev->dev;
-+
-+ /*
-+ * If drvdata is not set this means the audio card was not
-+ * registered, just skip codec unregistration in this case.
-+ */
-+ if (dev_get_drvdata(dev))
-+ snd_soc_unregister_codec(dev);
-+}
-+
- static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
- {
- struct platform_device *pdev = to_platform_device(dev);
-@@ -720,6 +1206,10 @@ static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data)
- goto err_destroy_encoder;
- }
-
-+ ret = vc4_hdmi_audio_init(hdmi);
-+ if (ret)
-+ goto err_destroy_encoder;
-+
- return 0;
-
- err_destroy_encoder:
-@@ -741,6 +1231,8 @@ static void vc4_hdmi_unbind(struct device *dev, struct device *master,
- struct vc4_dev *vc4 = drm->dev_private;
- struct vc4_hdmi *hdmi = vc4->hdmi;
-
-+ vc4_hdmi_audio_cleanup(hdmi);
-+
- vc4_hdmi_connector_destroy(hdmi->connector);
- vc4_hdmi_encoder_destroy(hdmi->encoder);
-
-diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h
-index 385405a2df05..932093936178 100644
---- a/drivers/gpu/drm/vc4/vc4_regs.h
-+++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -446,11 +446,62 @@
- #define VC4_HDMI_HOTPLUG 0x00c
- # define VC4_HDMI_HOTPLUG_CONNECTED BIT(0)
-
-+/* 3 bits per field, where each field maps from that corresponding MAI
-+ * bus channel to the given HDMI channel.
-+ */
-+#define VC4_HDMI_MAI_CHANNEL_MAP 0x090
-+
-+#define VC4_HDMI_MAI_CONFIG 0x094
-+# define VC4_HDMI_MAI_CONFIG_FORMAT_REVERSE BIT(27)
-+# define VC4_HDMI_MAI_CONFIG_BIT_REVERSE BIT(26)
-+# define VC4_HDMI_MAI_CHANNEL_MASK_MASK VC4_MASK(15, 0)
-+# define VC4_HDMI_MAI_CHANNEL_MASK_SHIFT 0
-+
-+/* Last received format word on the MAI bus. */
-+#define VC4_HDMI_MAI_FORMAT 0x098
-+
-+#define VC4_HDMI_AUDIO_PACKET_CONFIG 0x09c
-+# define VC4_HDMI_AUDIO_PACKET_ZERO_DATA_ON_SAMPLE_FLAT BIT(29)
-+# define VC4_HDMI_AUDIO_PACKET_ZERO_DATA_ON_INACTIVE_CHANNELS BIT(24)
-+# define VC4_HDMI_AUDIO_PACKET_FORCE_SAMPLE_PRESENT BIT(19)
-+# define VC4_HDMI_AUDIO_PACKET_FORCE_B_FRAME BIT(18)
-+# define VC4_HDMI_AUDIO_PACKET_B_FRAME_IDENTIFIER_MASK VC4_MASK(13, 10)
-+# define VC4_HDMI_AUDIO_PACKET_B_FRAME_IDENTIFIER_SHIFT 10
-+/* If set, then multichannel, otherwise 2 channel. */
-+# define VC4_HDMI_AUDIO_PACKET_AUDIO_LAYOUT BIT(9)
-+/* If set, then AUDIO_LAYOUT overrides audio_cea_mask */
-+# define VC4_HDMI_AUDIO_PACKET_FORCE_AUDIO_LAYOUT BIT(8)
-+# define VC4_HDMI_AUDIO_PACKET_CEA_MASK_MASK VC4_MASK(7, 0)
-+# define VC4_HDMI_AUDIO_PACKET_CEA_MASK_SHIFT 0
-+
- #define VC4_HDMI_RAM_PACKET_CONFIG 0x0a0
- # define VC4_HDMI_RAM_PACKET_ENABLE BIT(16)
-
- #define VC4_HDMI_RAM_PACKET_STATUS 0x0a4
-
-+#define VC4_HDMI_CRP_CFG 0x0a8
-+/* When set, the CTS_PERIOD counts based on MAI bus sync pulse instead
-+ * of pixel clock.
-+ */
-+# define VC4_HDMI_CRP_USE_MAI_BUS_SYNC_FOR_CTS BIT(26)
-+/* When set, no CRP packets will be sent. */
-+# define VC4_HDMI_CRP_CFG_DISABLE BIT(25)
-+/* If set, generates CTS values based on N, audio clock, and video
-+ * clock. N must be divisible by 128.
-+ */
-+# define VC4_HDMI_CRP_CFG_EXTERNAL_CTS_EN BIT(24)
-+# define VC4_HDMI_CRP_CFG_N_MASK VC4_MASK(19, 0)
-+# define VC4_HDMI_CRP_CFG_N_SHIFT 0
-+
-+/* 20-bit fields containing CTS values to be transmitted if !EXTERNAL_CTS_EN */
-+#define VC4_HDMI_CTS_0 0x0ac
-+#define VC4_HDMI_CTS_1 0x0b0
-+/* 20-bit fields containing number of clocks to send CTS0/1 before
-+ * switching to the other one.
-+ */
-+#define VC4_HDMI_CTS_PERIOD_0 0x0b4
-+#define VC4_HDMI_CTS_PERIOD_1 0x0b8
-+
- #define VC4_HDMI_HORZA 0x0c4
- # define VC4_HDMI_HORZA_VPOS BIT(14)
- # define VC4_HDMI_HORZA_HPOS BIT(13)
-@@ -512,7 +563,11 @@
-
- #define VC4_HDMI_TX_PHY_RESET_CTL 0x2c0
-
--#define VC4_HDMI_GCP_0 0x400
-+#define VC4_HDMI_TX_PHY_CTL0 0x2c4
-+# define VC4_HDMI_TX_PHY_RNG_PWRDN BIT(25)
-+
-+#define VC4_HDMI_GCP(x) (0x400 + ((x) * 0x4))
-+#define VC4_HDMI_RAM_PACKET(x) (0x400 + ((x) * 0x24))
- #define VC4_HDMI_PACKET_STRIDE 0x24
-
- #define VC4_HD_M_CTL 0x00c
-@@ -522,6 +577,56 @@
- # define VC4_HD_M_ENABLE BIT(0)
-
- #define VC4_HD_MAI_CTL 0x014
-+/* Set when audio stream is received at a slower rate than the
-+ * sampling period, so MAI fifo goes empty. Write 1 to clear.
-+ */
-+# define VC4_HD_MAI_CTL_DLATE BIT(15)
-+# define VC4_HD_MAI_CTL_BUSY BIT(14)
-+# define VC4_HD_MAI_CTL_CHALIGN BIT(13)
-+# define VC4_HD_MAI_CTL_WHOLSMP BIT(12)
-+# define VC4_HD_MAI_CTL_FULL BIT(11)
-+# define VC4_HD_MAI_CTL_EMPTY BIT(10)
-+# define VC4_HD_MAI_CTL_FLUSH BIT(9)
-+/* If set, MAI bus generates SPDIF (bit 31) parity instead of passing
-+ * through.
-+ */
-+# define VC4_HD_MAI_CTL_PAREN BIT(8)
-+# define VC4_HD_MAI_CTL_CHNUM_MASK VC4_MASK(7, 4)
-+# define VC4_HD_MAI_CTL_CHNUM_SHIFT 4
-+# define VC4_HD_MAI_CTL_ENABLE BIT(3)
-+/* Underflow error status bit, write 1 to clear. */
-+# define VC4_HD_MAI_CTL_ERRORE BIT(2)
-+/* Overflow error status bit, write 1 to clear. */
-+# define VC4_HD_MAI_CTL_ERRORF BIT(1)
-+/* Single-shot reset bit. Read value is undefined. */
-+# define VC4_HD_MAI_CTL_RESET BIT(0)
-+
-+#define VC4_HD_MAI_THR 0x018
-+# define VC4_HD_MAI_THR_PANICHIGH_MASK VC4_MASK(29, 24)
-+# define VC4_HD_MAI_THR_PANICHIGH_SHIFT 24
-+# define VC4_HD_MAI_THR_PANICLOW_MASK VC4_MASK(21, 16)
-+# define VC4_HD_MAI_THR_PANICLOW_SHIFT 16
-+# define VC4_HD_MAI_THR_DREQHIGH_MASK VC4_MASK(13, 8)
-+# define VC4_HD_MAI_THR_DREQHIGH_SHIFT 8
-+# define VC4_HD_MAI_THR_DREQLOW_MASK VC4_MASK(5, 0)
-+# define VC4_HD_MAI_THR_DREQLOW_SHIFT 0
-+
-+/* Format header to be placed on the MAI data. Unused. */
-+#define VC4_HD_MAI_FMT 0x01c
-+
-+/* Register for DMAing in audio data to be transported over the MAI
-+ * bus to the Falcon core.
-+ */
-+#define VC4_HD_MAI_DATA 0x020
-+
-+/* Divider from HDMI HSM clock to MAI serial clock. Sampling period
-+ * converges to N / (M + 1) cycles.
-+ */
-+#define VC4_HD_MAI_SMP 0x02c
-+# define VC4_HD_MAI_SMP_N_MASK VC4_MASK(31, 8)
-+# define VC4_HD_MAI_SMP_N_SHIFT 8
-+# define VC4_HD_MAI_SMP_M_MASK VC4_MASK(7, 0)
-+# define VC4_HD_MAI_SMP_M_SHIFT 0
-
- #define VC4_HD_VID_CTL 0x038
- # define VC4_HD_VID_CTL_ENABLE BIT(31)
---
-2.12.0
-
-From 25ea82d7f7c869ff81ff8e64d24c5c4a896239fe Mon Sep 17 00:00:00 2001
-From: Boris Brezillon <boris.brezillon@free-electrons.com>
-Date: Mon, 27 Feb 2017 12:28:03 -0800
-Subject: [PATCH 3/3] ARM: dts: bcm283x: Add HDMI audio related properties
-
-Add the dmas and dma-names properties to support HDMI audio.
-
-Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
-Signed-off-by: Eric Anholt <eric@anholt.net>
----
- arch/arm/boot/dts/bcm283x.dtsi | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
-index a3106aa446c6..a31b0b303ddc 100644
---- a/arch/arm/boot/dts/bcm283x.dtsi
-+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -499,6 +499,8 @@
- clocks = <&clocks BCM2835_PLLH_PIX>,
- <&clocks BCM2835_CLOCK_HSM>;
- clock-names = "pixel", "hdmi";
-+ dmas = <&dma 17>;
-+ dma-names = "audio-rx";
- status = "disabled";
- };
-
---
-2.12.0
-
diff --git a/bcm283x-mmc-bcm2835.patch b/bcm283x-mmc-bcm2835.patch
deleted file mode 100644
index ba9ae3648..000000000
--- a/bcm283x-mmc-bcm2835.patch
+++ /dev/null
@@ -1,1998 +0,0 @@
-From patchwork Wed Mar 8 09:19:01 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v4,1/7] dt-bindings: Add binding for brcm,bcm2835-sdhost.
-From: Gerd Hoffmann <kraxel@redhat.com>
-X-Patchwork-Id: 9610673
-Message-Id: <1488964751-22763-2-git-send-email-kraxel@redhat.com>
-To: linux-rpi-kernel@lists.infradead.org
-Cc: mark.rutland@arm.com, stefan.wahren@i2se.com, ulf.hansson@linaro.org,
- f.fainelli@gmail.com, sbranden@broadcom.com, devicetree@vger.kernel.org,
- rjui@broadcom.com, lee@kernel.org, will.deacon@arm.com,
- linux@armlinux.org.uk,
- linux-kernel@vger.kernel.org, eric@anholt.net, robh+dt@kernel.org,
- bcm-kernel-feedback-list@broadcom.com, Gerd Hoffmann <kraxel@redhat.com>,
- catalin.marinas@arm.com, linux-mmc@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Date: Wed, 8 Mar 2017 10:19:01 +0100
-
-From: Eric Anholt <eric@anholt.net>
-
-This is the other SD controller on the platform, which can be swapped
-to the role of SD card host using pin muxing.
-
-Signed-off-by: Eric Anholt <eric@anholt.net>
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-Acked-by: Rob Herring <robh@kernel.org>
----
- .../bindings/mmc/brcm,bcm2835-sdhost.txt | 23 ++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
- create mode 100644 Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhost.txt
-
-diff --git a/Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhost.txt b/Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhost.txt
-new file mode 100644
-index 0000000..d876580
---- /dev/null
-+++ b/Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhost.txt
-@@ -0,0 +1,23 @@
-+Broadcom BCM2835 SDHOST controller
-+
-+This file documents differences between the core properties described
-+by mmc.txt and the properties that represent the BCM2835 controller.
-+
-+Required properties:
-+- compatible: Should be "brcm,bcm2835-sdhost".
-+- clocks: The clock feeding the SDHOST controller.
-+
-+Optional properties:
-+- dmas: DMA channel for read and write.
-+ See Documentation/devicetree/bindings/dma/dma.txt for details
-+
-+Example:
-+
-+sdhost: mmc@7e202000 {
-+ compatible = "brcm,bcm2835-sdhost";
-+ reg = <0x7e202000 0x100>;
-+ interrupts = <2 24>;
-+ clocks = <&clocks BCM2835_CLOCK_VPU>;
-+ dmas = <&dma 13>;
-+ dma-names = "rx-tx";
-+};
-From patchwork Wed Mar 8 09:19:03 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v4,2/7] mmc: bcm2835: Add new driver for the sdhost controller.
-From: Gerd Hoffmann <kraxel@redhat.com>
-X-Patchwork-Id: 9610701
-Message-Id: <1488964751-22763-4-git-send-email-kraxel@redhat.com>
-To: linux-rpi-kernel@lists.infradead.org
-Cc: mark.rutland@arm.com, stefan.wahren@i2se.com, ulf.hansson@linaro.org,
- f.fainelli@gmail.com, sbranden@broadcom.com, devicetree@vger.kernel.org,
- rjui@broadcom.com, lee@kernel.org, will.deacon@arm.com,
- linux@armlinux.org.uk,
- linux-kernel@vger.kernel.org, eric@anholt.net, robh+dt@kernel.org,
- bcm-kernel-feedback-list@broadcom.com, Gerd Hoffmann <kraxel@redhat.com>,
- catalin.marinas@arm.com, linux-mmc@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Date: Wed, 8 Mar 2017 10:19:03 +0100
-
-From: Eric Anholt <eric@anholt.net>
-
-The 2835 has two SD controllers: The Arasan sdhci controller (supported
-by the iproc driver) and a custom sdhost controller. This patch adds a
-driver for the latter.
-
-The sdhci controller supports both sdcard and sdio. The sdhost
-controller supports the sdcard only, but has better performance. Also
-note that the rpi3 has sdio wifi, so driving the sdcard with the sdhost
-controller allows to use the sdhci controller for wifi support.
-
-The configuration is done by devicetree via pin muxing. Both SD
-controller are available on the same pins (2 pin groups = pin 22 to 27 +
-pin 48 to 53). So it's possible to use both SD controllers at the same
-time with different pin groups.
-
-The code was originally written by Phil Elwell in the downstream
-Rasbperry Pi tree. In preparation for the upstream merge it was
-cleaned up and the code base was moderized by Eric Anholt, Stefan
-Wahren and Gerd Hoffmann.
-
-Signed-off-by: Eric Anholt <eric@anholt.net>
-Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
----
- drivers/mmc/host/Kconfig | 14 +
- drivers/mmc/host/Makefile | 1 +
- drivers/mmc/host/bcm2835.c | 1465 ++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 1480 insertions(+)
- create mode 100644 drivers/mmc/host/bcm2835.c
-
-diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
-index f08691a..a638cd0 100644
---- a/drivers/mmc/host/Kconfig
-+++ b/drivers/mmc/host/Kconfig
-@@ -799,6 +799,20 @@ config MMC_TOSHIBA_PCI
- depends on PCI
- help
-
-+config MMC_BCM2835
-+ tristate "Broadcom BCM2835 SDHOST MMC Controller support"
-+ depends on ARCH_BCM2835 || COMPILE_TEST
-+ depends on HAS_DMA
-+ help
-+ This selects the BCM2835 SDHOST MMC controller. If you have
-+ a BCM2835 platform with SD or MMC devices, say Y or M here.
-+
-+ Note that the BCM2835 has two SD controllers: The Arasan
-+ sdhci controller (supported by MMC_SDHCI_IPROC) and a custom
-+ sdhost controller (supported by this driver).
-+
-+ If unsure, say N.
-+
- config MMC_MTK
- tristate "MediaTek SD/MMC Card Interface support"
- depends on HAS_DMA
-diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
-index 6d548c4..bc2c2e2 100644
---- a/drivers/mmc/host/Makefile
-+++ b/drivers/mmc/host/Makefile
-@@ -59,6 +59,7 @@ obj-$(CONFIG_MMC_MOXART) += moxart-mmc.o
- obj-$(CONFIG_MMC_SUNXI) += sunxi-mmc.o
- obj-$(CONFIG_MMC_USDHI6ROL0) += usdhi6rol0.o
- obj-$(CONFIG_MMC_TOSHIBA_PCI) += toshsd.o
-+obj-$(CONFIG_MMC_BCM2835) += bcm2835.o
-
- obj-$(CONFIG_MMC_REALTEK_PCI) += rtsx_pci_sdmmc.o
- obj-$(CONFIG_MMC_REALTEK_USB) += rtsx_usb_sdmmc.o
-diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
-new file mode 100644
-index 0000000..7d1b0db7
---- /dev/null
-+++ b/drivers/mmc/host/bcm2835.c
-@@ -0,0 +1,1465 @@
-+/*
-+ * bcm2835 sdhost driver.
-+ *
-+ * The 2835 has two SD controllers: The Arasan sdhci controller
-+ * (supported by the iproc driver) and a custom sdhost controller
-+ * (supported by this driver).
-+ *
-+ * The sdhci controller supports both sdcard and sdio. The sdhost
-+ * controller supports the sdcard only, but has better performance.
-+ * Also note that the rpi3 has sdio wifi, so driving the sdcard with
-+ * the sdhost controller allows to use the sdhci controller for wifi
-+ * support.
-+ *
-+ * The configuration is done by devicetree via pin muxing. Both
-+ * SD controller are available on the same pins (2 pin groups = pin 22
-+ * to 27 + pin 48 to 53). So it's possible to use both SD controllers
-+ * at the same time with different pin groups.
-+ *
-+ * Author: Phil Elwell <phil@raspberrypi.org>
-+ * Copyright (C) 2015-2016 Raspberry Pi (Trading) Ltd.
-+ *
-+ * Based on
-+ * mmc-bcm2835.c by Gellert Weisz
-+ * which is, in turn, based on
-+ * sdhci-bcm2708.c by Broadcom
-+ * sdhci-bcm2835.c by Stephen Warren and Oleksandr Tymoshenko
-+ * sdhci.c and sdhci-pci.c by Pierre Ossman
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms and conditions of the GNU General Public License,
-+ * version 2, as published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope 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, see <http://www.gnu.org/licenses/>.
-+ */
-+#include <linux/clk.h>
-+#include <linux/delay.h>
-+#include <linux/device.h>
-+#include <linux/dmaengine.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/err.h>
-+#include <linux/highmem.h>
-+#include <linux/interrupt.h>
-+#include <linux/io.h>
-+#include <linux/iopoll.h>
-+#include <linux/module.h>
-+#include <linux/of_address.h>
-+#include <linux/of_irq.h>
-+#include <linux/platform_device.h>
-+#include <linux/scatterlist.h>
-+#include <linux/time.h>
-+#include <linux/workqueue.h>
-+
-+#include <linux/mmc/host.h>
-+#include <linux/mmc/mmc.h>
-+#include <linux/mmc/sd.h>
-+
-+#define SDCMD 0x00 /* Command to SD card - 16 R/W */
-+#define SDARG 0x04 /* Argument to SD card - 32 R/W */
-+#define SDTOUT 0x08 /* Start value for timeout counter - 32 R/W */
-+#define SDCDIV 0x0c /* Start value for clock divider - 11 R/W */
-+#define SDRSP0 0x10 /* SD card response (31:0) - 32 R */
-+#define SDRSP1 0x14 /* SD card response (63:32) - 32 R */
-+#define SDRSP2 0x18 /* SD card response (95:64) - 32 R */
-+#define SDRSP3 0x1c /* SD card response (127:96) - 32 R */
-+#define SDHSTS 0x20 /* SD host status - 11 R/W */
-+#define SDVDD 0x30 /* SD card power control - 1 R/W */
-+#define SDEDM 0x34 /* Emergency Debug Mode - 13 R/W */
-+#define SDHCFG 0x38 /* Host configuration - 2 R/W */
-+#define SDHBCT 0x3c /* Host byte count (debug) - 32 R/W */
-+#define SDDATA 0x40 /* Data to/from SD card - 32 R/W */
-+#define SDHBLC 0x50 /* Host block count (SDIO/SDHC) - 9 R/W */
-+
-+#define SDCMD_NEW_FLAG 0x8000
-+#define SDCMD_FAIL_FLAG 0x4000
-+#define SDCMD_BUSYWAIT 0x800
-+#define SDCMD_NO_RESPONSE 0x400
-+#define SDCMD_LONG_RESPONSE 0x200
-+#define SDCMD_WRITE_CMD 0x80
-+#define SDCMD_READ_CMD 0x40
-+#define SDCMD_CMD_MASK 0x3f
-+
-+#define SDCDIV_MAX_CDIV 0x7ff
-+
-+#define SDHSTS_BUSY_IRPT 0x400
-+#define SDHSTS_BLOCK_IRPT 0x200
-+#define SDHSTS_SDIO_IRPT 0x100
-+#define SDHSTS_REW_TIME_OUT 0x80
-+#define SDHSTS_CMD_TIME_OUT 0x40
-+#define SDHSTS_CRC16_ERROR 0x20
-+#define SDHSTS_CRC7_ERROR 0x10
-+#define SDHSTS_FIFO_ERROR 0x08
-+/* Reserved */
-+/* Reserved */
-+#define SDHSTS_DATA_FLAG 0x01
-+
-+#define SDHSTS_TRANSFER_ERROR_MASK (SDHSTS_CRC7_ERROR | \
-+ SDHSTS_CRC16_ERROR | \
-+ SDHSTS_REW_TIME_OUT | \
-+ SDHSTS_FIFO_ERROR)
-+
-+#define SDHSTS_ERROR_MASK (SDHSTS_CMD_TIME_OUT | \
-+ SDHSTS_TRANSFER_ERROR_MASK)
-+
-+#define SDHCFG_BUSY_IRPT_EN BIT(10)
-+#define SDHCFG_BLOCK_IRPT_EN BIT(8)
-+#define SDHCFG_SDIO_IRPT_EN BIT(5)
-+#define SDHCFG_DATA_IRPT_EN BIT(4)
-+#define SDHCFG_SLOW_CARD BIT(3)
-+#define SDHCFG_WIDE_EXT_BUS BIT(2)
-+#define SDHCFG_WIDE_INT_BUS BIT(1)
-+#define SDHCFG_REL_CMD_LINE BIT(0)
-+
-+#define SDVDD_POWER_OFF 0
-+#define SDVDD_POWER_ON 1
-+
-+#define SDEDM_FORCE_DATA_MODE BIT(19)
-+#define SDEDM_CLOCK_PULSE BIT(20)
-+#define SDEDM_BYPASS BIT(21)
-+
-+#define SDEDM_WRITE_THRESHOLD_SHIFT 9
-+#define SDEDM_READ_THRESHOLD_SHIFT 14
-+#define SDEDM_THRESHOLD_MASK 0x1f
-+
-+#define SDEDM_FSM_MASK 0xf
-+#define SDEDM_FSM_IDENTMODE 0x0
-+#define SDEDM_FSM_DATAMODE 0x1
-+#define SDEDM_FSM_READDATA 0x2
-+#define SDEDM_FSM_WRITEDATA 0x3
-+#define SDEDM_FSM_READWAIT 0x4
-+#define SDEDM_FSM_READCRC 0x5
-+#define SDEDM_FSM_WRITECRC 0x6
-+#define SDEDM_FSM_WRITEWAIT1 0x7
-+#define SDEDM_FSM_POWERDOWN 0x8
-+#define SDEDM_FSM_POWERUP 0x9
-+#define SDEDM_FSM_WRITESTART1 0xa
-+#define SDEDM_FSM_WRITESTART2 0xb
-+#define SDEDM_FSM_GENPULSES 0xc
-+#define SDEDM_FSM_WRITEWAIT2 0xd
-+#define SDEDM_FSM_STARTPOWDOWN 0xf
-+
-+#define SDDATA_FIFO_WORDS 16
-+
-+#define FIFO_READ_THRESHOLD 4
-+#define FIFO_WRITE_THRESHOLD 4
-+#define SDDATA_FIFO_PIO_BURST 8
-+
-+#define PIO_THRESHOLD 1 /* Maximum block count for PIO (0 = always DMA) */
-+
-+struct bcm2835_host {
-+ spinlock_t lock;
-+ struct mutex mutex;
-+
-+ void __iomem *ioaddr;
-+ u32 phys_addr;
-+
-+ struct mmc_host *mmc;
-+ struct platform_device *pdev;
-+
-+ int clock; /* Current clock speed */
-+ unsigned int max_clk; /* Max possible freq */
-+ struct work_struct dma_work;
-+ struct delayed_work timeout_work; /* Timer for timeouts */
-+ struct sg_mapping_iter sg_miter; /* SG state for PIO */
-+ unsigned int blocks; /* remaining PIO blocks */
-+ int irq; /* Device IRQ */
-+
-+ u32 ns_per_fifo_word;
-+
-+ /* cached registers */
-+ u32 hcfg;
-+ u32 cdiv;
-+
-+ struct mmc_request *mrq; /* Current request */
-+ struct mmc_command *cmd; /* Current command */
-+ struct mmc_data *data; /* Current data request */
-+ bool data_complete:1;/* Data finished before cmd */
-+ bool use_busy:1; /* Wait for busy interrupt */
-+ bool use_sbc:1; /* Send CMD23 */
-+
-+ /* for threaded irq handler */
-+ bool irq_block;
-+ bool irq_busy;
-+ bool irq_data;
-+
-+ /* DMA part */
-+ struct dma_chan *dma_chan_rxtx;
-+ struct dma_chan *dma_chan;
-+ struct dma_slave_config dma_cfg_rx;
-+ struct dma_slave_config dma_cfg_tx;
-+ struct dma_async_tx_descriptor *dma_desc;
-+ u32 dma_dir;
-+ u32 drain_words;
-+ struct page *drain_page;
-+ u32 drain_offset;
-+ bool use_dma;
-+};
-+
-+static void bcm2835_dumpcmd(struct bcm2835_host *host, struct mmc_command *cmd,
-+ const char *label)
-+{
-+ struct device *dev = &host->pdev->dev;
-+
-+ if (!cmd)
-+ return;
-+
-+ dev_dbg(dev, "%c%s op %d arg 0x%x flags 0x%x - resp %08x %08x %08x %08x, err %d\n",
-+ (cmd == host->cmd) ? '>' : ' ',
-+ label, cmd->opcode, cmd->arg, cmd->flags,
-+ cmd->resp[0], cmd->resp[1], cmd->resp[2], cmd->resp[3],
-+ cmd->error);
-+}
-+
-+static void bcm2835_dumpregs(struct bcm2835_host *host)
-+{
-+ struct mmc_request *mrq = host->mrq;
-+ struct device *dev = &host->pdev->dev;
-+
-+ if (mrq) {
-+ bcm2835_dumpcmd(host, mrq->sbc, "sbc");
-+ bcm2835_dumpcmd(host, mrq->cmd, "cmd");
-+ if (mrq->data) {
-+ dev_dbg(dev, "data blocks %x blksz %x - err %d\n",
-+ mrq->data->blocks,
-+ mrq->data->blksz,
-+ mrq->data->error);
-+ }
-+ bcm2835_dumpcmd(host, mrq->stop, "stop");
-+ }
-+
-+ dev_dbg(dev, "=========== REGISTER DUMP ===========\n");
-+ dev_dbg(dev, "SDCMD 0x%08x\n", readl(host->ioaddr + SDCMD));
-+ dev_dbg(dev, "SDARG 0x%08x\n", readl(host->ioaddr + SDARG));
-+ dev_dbg(dev, "SDTOUT 0x%08x\n", readl(host->ioaddr + SDTOUT));
-+ dev_dbg(dev, "SDCDIV 0x%08x\n", readl(host->ioaddr + SDCDIV));
-+ dev_dbg(dev, "SDRSP0 0x%08x\n", readl(host->ioaddr + SDRSP0));
-+ dev_dbg(dev, "SDRSP1 0x%08x\n", readl(host->ioaddr + SDRSP1));
-+ dev_dbg(dev, "SDRSP2 0x%08x\n", readl(host->ioaddr + SDRSP2));
-+ dev_dbg(dev, "SDRSP3 0x%08x\n", readl(host->ioaddr + SDRSP3));
-+ dev_dbg(dev, "SDHSTS 0x%08x\n", readl(host->ioaddr + SDHSTS));
-+ dev_dbg(dev, "SDVDD 0x%08x\n", readl(host->ioaddr + SDVDD));
-+ dev_dbg(dev, "SDEDM 0x%08x\n", readl(host->ioaddr + SDEDM));
-+ dev_dbg(dev, "SDHCFG 0x%08x\n", readl(host->ioaddr + SDHCFG));
-+ dev_dbg(dev, "SDHBCT 0x%08x\n", readl(host->ioaddr + SDHBCT));
-+ dev_dbg(dev, "SDHBLC 0x%08x\n", readl(host->ioaddr + SDHBLC));
-+ dev_dbg(dev, "===========================================\n");
-+}
-+
-+static void bcm2835_reset_internal(struct bcm2835_host *host)
-+{
-+ u32 temp;
-+
-+ writel(SDVDD_POWER_OFF, host->ioaddr + SDVDD);
-+ writel(0, host->ioaddr + SDCMD);
-+ writel(0, host->ioaddr + SDARG);
-+ writel(0xf00000, host->ioaddr + SDTOUT);
-+ writel(0, host->ioaddr + SDCDIV);
-+ writel(0x7f8, host->ioaddr + SDHSTS); /* Write 1s to clear */
-+ writel(0, host->ioaddr + SDHCFG);
-+ writel(0, host->ioaddr + SDHBCT);
-+ writel(0, host->ioaddr + SDHBLC);
-+
-+ /* Limit fifo usage due to silicon bug */
-+ temp = readl(host->ioaddr + SDEDM);
-+ temp &= ~((SDEDM_THRESHOLD_MASK << SDEDM_READ_THRESHOLD_SHIFT) |
-+ (SDEDM_THRESHOLD_MASK << SDEDM_WRITE_THRESHOLD_SHIFT));
-+ temp |= (FIFO_READ_THRESHOLD << SDEDM_READ_THRESHOLD_SHIFT) |
-+ (FIFO_WRITE_THRESHOLD << SDEDM_WRITE_THRESHOLD_SHIFT);
-+ writel(temp, host->ioaddr + SDEDM);
-+ msleep(20);
-+ writel(SDVDD_POWER_ON, host->ioaddr + SDVDD);
-+ msleep(20);
-+ host->clock = 0;
-+ writel(host->hcfg, host->ioaddr + SDHCFG);
-+ writel(host->cdiv, host->ioaddr + SDCDIV);
-+}
-+
-+static void bcm2835_reset(struct mmc_host *mmc)
-+{
-+ struct bcm2835_host *host = mmc_priv(mmc);
-+
-+ if (host->dma_chan)
-+ dmaengine_terminate_sync(host->dma_chan);
-+ bcm2835_reset_internal(host);
-+}
-+
-+static void bcm2835_finish_command(struct bcm2835_host *host);
-+
-+static void bcm2835_wait_transfer_complete(struct bcm2835_host *host)
-+{
-+ int timediff;
-+ u32 alternate_idle;
-+
-+ alternate_idle = (host->mrq->data->flags & MMC_DATA_READ) ?
-+ SDEDM_FSM_READWAIT : SDEDM_FSM_WRITESTART1;
-+
-+ timediff = 0;
-+
-+ while (1) {
-+ u32 edm, fsm;
-+
-+ edm = readl(host->ioaddr + SDEDM);
-+ fsm = edm & SDEDM_FSM_MASK;
-+
-+ if ((fsm == SDEDM_FSM_IDENTMODE) ||
-+ (fsm == SDEDM_FSM_DATAMODE))
-+ break;
-+ if (fsm == alternate_idle) {
-+ writel(edm | SDEDM_FORCE_DATA_MODE,
-+ host->ioaddr + SDEDM);
-+ break;
-+ }
-+
-+ timediff++;
-+ if (timediff == 100000) {
-+ dev_err(&host->pdev->dev,
-+ "wait_transfer_complete - still waiting after %d retries\n",
-+ timediff);
-+ bcm2835_dumpregs(host);
-+ host->mrq->data->error = -ETIMEDOUT;
-+ return;
-+ }
-+ cpu_relax();
-+ }
-+}
-+
-+static void bcm2835_dma_complete(void *param)
-+{
-+ struct bcm2835_host *host = param;
-+
-+ schedule_work(&host->dma_work);
-+}
-+
-+static void bcm2835_transfer_block_pio(struct bcm2835_host *host, bool is_read)
-+{
-+ unsigned long flags;
-+ size_t blksize;
-+ unsigned long wait_max;
-+
-+ blksize = host->data->blksz;
-+
-+ wait_max = jiffies + msecs_to_jiffies(500);
-+
-+ local_irq_save(flags);
-+
-+ while (blksize) {
-+ int copy_words;
-+ u32 hsts = 0;
-+ size_t len;
-+ u32 *buf;
-+
-+ if (!sg_miter_next(&host->sg_miter)) {
-+ host->data->error = -EINVAL;
-+ break;
-+ }
-+
-+ len = min(host->sg_miter.length, blksize);
-+ if (len % 4) {
-+ host->data->error = -EINVAL;
-+ break;
-+ }
-+
-+ blksize -= len;
-+ host->sg_miter.consumed = len;
-+
-+ buf = (u32 *)host->sg_miter.addr;
-+
-+ copy_words = len / 4;
-+
-+ while (copy_words) {
-+ int burst_words, words;
-+ u32 edm;
-+
-+ burst_words = min(SDDATA_FIFO_PIO_BURST, copy_words);
-+ edm = readl(host->ioaddr + SDEDM);
-+ if (is_read)
-+ words = ((edm >> 4) & 0x1f);
-+ else
-+ words = SDDATA_FIFO_WORDS - ((edm >> 4) & 0x1f);
-+
-+ if (words < burst_words) {
-+ int fsm_state = (edm & SDEDM_FSM_MASK);
-+ struct device *dev = &host->pdev->dev;
-+
-+ if ((is_read &&
-+ (fsm_state != SDEDM_FSM_READDATA &&
-+ fsm_state != SDEDM_FSM_READWAIT &&
-+ fsm_state != SDEDM_FSM_READCRC)) ||
-+ (!is_read &&
-+ (fsm_state != SDEDM_FSM_WRITEDATA &&
-+ fsm_state != SDEDM_FSM_WRITESTART1 &&
-+ fsm_state != SDEDM_FSM_WRITESTART2))) {
-+ hsts = readl(host->ioaddr + SDHSTS);
-+ dev_err(dev, "fsm %x, hsts %08x\n",
-+ fsm_state, hsts);
-+ if (hsts & SDHSTS_ERROR_MASK)
-+ break;
-+ }
-+
-+ if (time_after(jiffies, wait_max)) {
-+ dev_err(dev, "PIO %s timeout - EDM %08x\n",
-+ is_read ? "read" : "write",
-+ edm);
-+ hsts = SDHSTS_REW_TIME_OUT;
-+ break;
-+ }
-+ ndelay((burst_words - words) *
-+ host->ns_per_fifo_word);
-+ continue;
-+ } else if (words > copy_words) {
-+ words = copy_words;
-+ }
-+
-+ copy_words -= words;
-+
-+ while (words) {
-+ if (is_read)
-+ *(buf++) = readl(host->ioaddr + SDDATA);
-+ else
-+ writel(*(buf++), host->ioaddr + SDDATA);
-+ words--;
-+ }
-+ }
-+
-+ if (hsts & SDHSTS_ERROR_MASK)
-+ break;
-+ }
-+
-+ sg_miter_stop(&host->sg_miter);
-+
-+ local_irq_restore(flags);
-+}
-+
-+static void bcm2835_transfer_pio(struct bcm2835_host *host)
-+{
-+ struct device *dev = &host->pdev->dev;
-+ u32 sdhsts;
-+ bool is_read;
-+
-+ is_read = (host->data->flags & MMC_DATA_READ) != 0;
-+ bcm2835_transfer_block_pio(host, is_read);
-+
-+ sdhsts = readl(host->ioaddr + SDHSTS);
-+ if (sdhsts & (SDHSTS_CRC16_ERROR |
-+ SDHSTS_CRC7_ERROR |
-+ SDHSTS_FIFO_ERROR)) {
-+ dev_err(dev, "%s transfer error - HSTS %08x\n",
-+ is_read ? "read" : "write", sdhsts);
-+ host->data->error = -EILSEQ;
-+ } else if ((sdhsts & (SDHSTS_CMD_TIME_OUT |
-+ SDHSTS_REW_TIME_OUT))) {
-+ dev_err(dev, "%s timeout error - HSTS %08x\n",
-+ is_read ? "read" : "write", sdhsts);
-+ host->data->error = -ETIMEDOUT;
-+ }
-+}
-+
-+static
-+void bcm2835_prepare_dma(struct bcm2835_host *host, struct mmc_data *data)
-+{
-+ int len, dir_data, dir_slave;
-+ struct dma_async_tx_descriptor *desc = NULL;
-+ struct dma_chan *dma_chan;
-+
-+ dma_chan = host->dma_chan_rxtx;
-+ if (data->flags & MMC_DATA_READ) {
-+ dir_data = DMA_FROM_DEVICE;
-+ dir_slave = DMA_DEV_TO_MEM;
-+ } else {
-+ dir_data = DMA_TO_DEVICE;
-+ dir_slave = DMA_MEM_TO_DEV;
-+ }
-+
-+ /* The block doesn't manage the FIFO DREQs properly for
-+ * multi-block transfers, so don't attempt to DMA the final
-+ * few words. Unfortunately this requires the final sg entry
-+ * to be trimmed. N.B. This code demands that the overspill
-+ * is contained in a single sg entry.
-+ */
-+
-+ host->drain_words = 0;
-+ if ((data->blocks > 1) && (dir_data == DMA_FROM_DEVICE)) {
-+ struct scatterlist *sg;
-+ u32 len;
-+ int i;
-+
-+ len = min((u32)(FIFO_READ_THRESHOLD - 1) * 4,
-+ (u32)data->blocks * data->blksz);
-+
-+ for_each_sg(data->sg, sg, data->sg_len, i) {
-+ if (sg_is_last(sg)) {
-+ WARN_ON(sg->length < len);
-+ sg->length -= len;
-+ host->drain_page = sg_page(sg);
-+ host->drain_offset = sg->offset + sg->length;
-+ }
-+ }
-+ host->drain_words = len / 4;
-+ }
-+
-+ /* The parameters have already been validated, so this will not fail */
-+ (void)dmaengine_slave_config(dma_chan,
-+ (dir_data == DMA_FROM_DEVICE) ?
-+ &host->dma_cfg_rx :
-+ &host->dma_cfg_tx);
-+
-+ len = dma_map_sg(dma_chan->device->dev, data->sg, data->sg_len,
-+ dir_data);
-+
-+ if (len > 0) {
-+ desc = dmaengine_prep_slave_sg(dma_chan, data->sg,
-+ len, dir_slave,
-+ DMA_PREP_INTERRUPT |
-+ DMA_CTRL_ACK);
-+ }
-+
-+ if (desc) {
-+ desc->callback = bcm2835_dma_complete;
-+ desc->callback_param = host;
-+ host->dma_desc = desc;
-+ host->dma_chan = dma_chan;
-+ host->dma_dir = dir_data;
-+ }
-+}
-+
-+static void bcm2835_start_dma(struct bcm2835_host *host)
-+{
-+ dmaengine_submit(host->dma_desc);
-+ dma_async_issue_pending(host->dma_chan);
-+}
-+
-+static void bcm2835_set_transfer_irqs(struct bcm2835_host *host)
-+{
-+ u32 all_irqs = SDHCFG_DATA_IRPT_EN | SDHCFG_BLOCK_IRPT_EN |
-+ SDHCFG_BUSY_IRPT_EN;
-+
-+ if (host->dma_desc) {
-+ host->hcfg = (host->hcfg & ~all_irqs) |
-+ SDHCFG_BUSY_IRPT_EN;
-+ } else {
-+ host->hcfg = (host->hcfg & ~all_irqs) |
-+ SDHCFG_DATA_IRPT_EN |
-+ SDHCFG_BUSY_IRPT_EN;
-+ }
-+
-+ writel(host->hcfg, host->ioaddr + SDHCFG);
-+}
-+
-+static
-+void bcm2835_prepare_data(struct bcm2835_host *host, struct mmc_command *cmd)
-+{
-+ struct mmc_data *data = cmd->data;
-+
-+ WARN_ON(host->data);
-+
-+ host->data = data;
-+ if (!data)
-+ return;
-+
-+ host->data_complete = false;
-+ host->data->bytes_xfered = 0;
-+
-+ if (!host->dma_desc) {
-+ /* Use PIO */
-+ int flags = SG_MITER_ATOMIC;
-+
-+ if (data->flags & MMC_DATA_READ)
-+ flags |= SG_MITER_TO_SG;
-+ else
-+ flags |= SG_MITER_FROM_SG;
-+ sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags);
-+ host->blocks = data->blocks;
-+ }
-+
-+ bcm2835_set_transfer_irqs(host);
-+
-+ writel(data->blksz, host->ioaddr + SDHBCT);
-+ writel(data->blocks, host->ioaddr + SDHBLC);
-+}
-+
-+static u32 bcm2835_read_wait_sdcmd(struct bcm2835_host *host, u32 max_ms)
-+{
-+ struct device *dev = &host->pdev->dev;
-+ u32 value;
-+ int ret;
-+
-+ ret = readl_poll_timeout(host->ioaddr + SDCMD, value,
-+ !(value & SDCMD_NEW_FLAG), 1, 10);
-+ if (ret == -ETIMEDOUT)
-+ /* if it takes a while make poll interval bigger */
-+ ret = readl_poll_timeout(host->ioaddr + SDCMD, value,
-+ !(value & SDCMD_NEW_FLAG),
-+ 10, max_ms * 1000);
-+ if (ret == -ETIMEDOUT)
-+ dev_err(dev, "%s: timeout (%d ms)\n", __func__, max_ms);
-+
-+ return value;
-+}
-+
-+static void bcm2835_finish_request(struct bcm2835_host *host)
-+{
-+ struct dma_chan *terminate_chan = NULL;
-+ struct mmc_request *mrq;
-+
-+ cancel_delayed_work(&host->timeout_work);
-+
-+ mrq = host->mrq;
-+
-+ host->mrq = NULL;
-+ host->cmd = NULL;
-+ host->data = NULL;
-+
-+ host->dma_desc = NULL;
-+ terminate_chan = host->dma_chan;
-+ host->dma_chan = NULL;
-+
-+ if (terminate_chan) {
-+ int err = dmaengine_terminate_all(terminate_chan);
-+
-+ if (err)
-+ dev_err(&host->pdev->dev,
-+ "failed to terminate DMA (%d)\n", err);
-+ }
-+
-+ mmc_request_done(host->mmc, mrq);
-+}
-+
-+static
-+bool bcm2835_send_command(struct bcm2835_host *host, struct mmc_command *cmd)
-+{
-+ struct device *dev = &host->pdev->dev;
-+ u32 sdcmd, sdhsts;
-+ unsigned long timeout;
-+
-+ WARN_ON(host->cmd);
-+
-+ sdcmd = bcm2835_read_wait_sdcmd(host, 100);
-+ if (sdcmd & SDCMD_NEW_FLAG) {
-+ dev_err(dev, "previous command never completed.\n");
-+ bcm2835_dumpregs(host);
-+ cmd->error = -EILSEQ;
-+ bcm2835_finish_request(host);
-+ return false;
-+ }
-+
-+ if (!cmd->data && cmd->busy_timeout > 9000)
-+ timeout = DIV_ROUND_UP(cmd->busy_timeout, 1000) * HZ + HZ;
-+ else
-+ timeout = 10 * HZ;
-+ schedule_delayed_work(&host->timeout_work, timeout);
-+
-+ host->cmd = cmd;
-+
-+ /* Clear any error flags */
-+ sdhsts = readl(host->ioaddr + SDHSTS);
-+ if (sdhsts & SDHSTS_ERROR_MASK)
-+ writel(sdhsts, host->ioaddr + SDHSTS);
-+
-+ if ((cmd->flags & MMC_RSP_136) && (cmd->flags & MMC_RSP_BUSY)) {
-+ dev_err(dev, "unsupported response type!\n");
-+ cmd->error = -EINVAL;
-+ bcm2835_finish_request(host);
-+ return false;
-+ }
-+
-+ bcm2835_prepare_data(host, cmd);
-+
-+ writel(cmd->arg, host->ioaddr + SDARG);
-+
-+ sdcmd = cmd->opcode & SDCMD_CMD_MASK;
-+
-+ host->use_busy = false;
-+ if (!(cmd->flags & MMC_RSP_PRESENT)) {
-+ sdcmd |= SDCMD_NO_RESPONSE;
-+ } else {
-+ if (cmd->flags & MMC_RSP_136)
-+ sdcmd |= SDCMD_LONG_RESPONSE;
-+ if (cmd->flags & MMC_RSP_BUSY) {
-+ sdcmd |= SDCMD_BUSYWAIT;
-+ host->use_busy = true;
-+ }
-+ }
-+
-+ if (cmd->data) {
-+ if (cmd->data->flags & MMC_DATA_WRITE)
-+ sdcmd |= SDCMD_WRITE_CMD;
-+ if (cmd->data->flags & MMC_DATA_READ)
-+ sdcmd |= SDCMD_READ_CMD;
-+ }
-+
-+ writel(sdcmd | SDCMD_NEW_FLAG, host->ioaddr + SDCMD);
-+
-+ return true;
-+}
-+
-+static void bcm2835_transfer_complete(struct bcm2835_host *host)
-+{
-+ struct mmc_data *data;
-+
-+ WARN_ON(!host->data_complete);
-+
-+ data = host->data;
-+ host->data = NULL;
-+
-+ /* Need to send CMD12 if -
-+ * a) open-ended multiblock transfer (no CMD23)
-+ * b) error in multiblock transfer
-+ */
-+ if (host->mrq->stop && (data->error || !host->use_sbc)) {
-+ if (bcm2835_send_command(host, host->mrq->stop)) {
-+ /* No busy, so poll for completion */
-+ if (!host->use_busy)
-+ bcm2835_finish_command(host);
-+ }
-+ } else {
-+ bcm2835_wait_transfer_complete(host);
-+ bcm2835_finish_request(host);
-+ }
-+}
-+
-+static void bcm2835_finish_data(struct bcm2835_host *host)
-+{
-+ struct device *dev = &host->pdev->dev;
-+ struct mmc_data *data;
-+
-+ data = host->data;
-+
-+ host->hcfg &= ~(SDHCFG_DATA_IRPT_EN | SDHCFG_BLOCK_IRPT_EN);
-+ writel(host->hcfg, host->ioaddr + SDHCFG);
-+
-+ data->bytes_xfered = data->error ? 0 : (data->blksz * data->blocks);
-+
-+ host->data_complete = true;
-+
-+ if (host->cmd) {
-+ /* Data managed to finish before the
-+ * command completed. Make sure we do
-+ * things in the proper order.
-+ */
-+ dev_dbg(dev, "Finished early - HSTS %08x\n",
-+ readl(host->ioaddr + SDHSTS));
-+ } else {
-+ bcm2835_transfer_complete(host);
-+ }
-+}
-+
-+static void bcm2835_finish_command(struct bcm2835_host *host)
-+{
-+ struct device *dev = &host->pdev->dev;
-+ struct mmc_command *cmd = host->cmd;
-+ u32 sdcmd;
-+
-+ sdcmd = bcm2835_read_wait_sdcmd(host, 100);
-+
-+ /* Check for errors */
-+ if (sdcmd & SDCMD_NEW_FLAG) {
-+ dev_err(dev, "command never completed.\n");
-+ bcm2835_dumpregs(host);
-+ host->cmd->error = -EIO;
-+ bcm2835_finish_request(host);
-+ return;
-+ } else if (sdcmd & SDCMD_FAIL_FLAG) {
-+ u32 sdhsts = readl(host->ioaddr + SDHSTS);
-+
-+ /* Clear the errors */
-+ writel(SDHSTS_ERROR_MASK, host->ioaddr + SDHSTS);
-+
-+ if (!(sdhsts & SDHSTS_CRC7_ERROR) ||
-+ (host->cmd->opcode != MMC_SEND_OP_COND)) {
-+ if (sdhsts & SDHSTS_CMD_TIME_OUT) {
-+ host->cmd->error = -ETIMEDOUT;
-+ } else {
-+ dev_err(dev, "unexpected command %d error\n",
-+ host->cmd->opcode);
-+ bcm2835_dumpregs(host);
-+ host->cmd->error = -EILSEQ;
-+ }
-+ bcm2835_finish_request(host);
-+ return;
-+ }
-+ }
-+
-+ if (cmd->flags & MMC_RSP_PRESENT) {
-+ if (cmd->flags & MMC_RSP_136) {
-+ int i;
-+
-+ for (i = 0; i < 4; i++) {
-+ cmd->resp[3 - i] =
-+ readl(host->ioaddr + SDRSP0 + i * 4);
-+ }
-+ } else {
-+ cmd->resp[0] = readl(host->ioaddr + SDRSP0);
-+ }
-+ }
-+
-+ if (cmd == host->mrq->sbc) {
-+ /* Finished CMD23, now send actual command. */
-+ host->cmd = NULL;
-+ if (bcm2835_send_command(host, host->mrq->cmd)) {
-+ if (host->data && host->dma_desc)
-+ /* DMA transfer starts now, PIO starts
-+ * after irq
-+ */
-+ bcm2835_start_dma(host);
-+
-+ if (!host->use_busy)
-+ bcm2835_finish_command(host);
-+ }
-+ } else if (cmd == host->mrq->stop) {
-+ /* Finished CMD12 */
-+ bcm2835_finish_request(host);
-+ } else {
-+ /* Processed actual command. */
-+ host->cmd = NULL;
-+ if (!host->data)
-+ bcm2835_finish_request(host);
-+ else if (host->data_complete)
-+ bcm2835_transfer_complete(host);
-+ }
-+}
-+
-+static void bcm2835_timeout(struct work_struct *work)
-+{
-+ struct delayed_work *d = to_delayed_work(work);
-+ struct bcm2835_host *host =
-+ container_of(d, struct bcm2835_host, timeout_work);
-+ struct device *dev = &host->pdev->dev;
-+
-+ mutex_lock(&host->mutex);
-+
-+ if (host->mrq) {
-+ dev_err(dev, "timeout waiting for hardware interrupt.\n");
-+ bcm2835_dumpregs(host);
-+
-+ if (host->data) {
-+ host->data->error = -ETIMEDOUT;
-+ bcm2835_finish_data(host);
-+ } else {
-+ if (host->cmd)
-+ host->cmd->error = -ETIMEDOUT;
-+ else
-+ host->mrq->cmd->error = -ETIMEDOUT;
-+
-+ bcm2835_finish_request(host);
-+ }
-+ }
-+
-+ mutex_unlock(&host->mutex);
-+}
-+
-+static bool bcm2835_check_cmd_error(struct bcm2835_host *host, u32 intmask)
-+{
-+ struct device *dev = &host->pdev->dev;
-+
-+ if (!(intmask & SDHSTS_ERROR_MASK))
-+ return false;
-+
-+ if (!host->cmd)
-+ return true;
-+
-+ dev_err(dev, "sdhost_busy_irq: intmask %08x\n", intmask);
-+ if (intmask & SDHSTS_CRC7_ERROR) {
-+ host->cmd->error = -EILSEQ;
-+ } else if (intmask & (SDHSTS_CRC16_ERROR |
-+ SDHSTS_FIFO_ERROR)) {
-+ if (host->mrq->data)
-+ host->mrq->data->error = -EILSEQ;
-+ else
-+ host->cmd->error = -EILSEQ;
-+ } else if (intmask & SDHSTS_REW_TIME_OUT) {
-+ if (host->mrq->data)
-+ host->mrq->data->error = -ETIMEDOUT;
-+ else
-+ host->cmd->error = -ETIMEDOUT;
-+ } else if (intmask & SDHSTS_CMD_TIME_OUT) {
-+ host->cmd->error = -ETIMEDOUT;
-+ }
-+ bcm2835_dumpregs(host);
-+ return true;
-+}
-+
-+static void bcm2835_check_data_error(struct bcm2835_host *host, u32 intmask)
-+{
-+ if (!host->data)
-+ return;
-+ if (intmask & (SDHSTS_CRC16_ERROR | SDHSTS_FIFO_ERROR))
-+ host->data->error = -EILSEQ;
-+ if (intmask & SDHSTS_REW_TIME_OUT)
-+ host->data->error = -ETIMEDOUT;
-+}
-+
-+static void bcm2835_busy_irq(struct bcm2835_host *host)
-+{
-+ if (WARN_ON(!host->cmd)) {
-+ bcm2835_dumpregs(host);
-+ return;
-+ }
-+
-+ if (WARN_ON(!host->use_busy)) {
-+ bcm2835_dumpregs(host);
-+ return;
-+ }
-+ host->use_busy = false;
-+
-+ bcm2835_finish_command(host);
-+}
-+
-+static void bcm2835_data_irq(struct bcm2835_host *host, u32 intmask)
-+{
-+ /* There are no dedicated data/space available interrupt
-+ * status bits, so it is necessary to use the single shared
-+ * data/space available FIFO status bits. It is therefore not
-+ * an error to get here when there is no data transfer in
-+ * progress.
-+ */
-+ if (!host->data)
-+ return;
-+
-+ bcm2835_check_data_error(host, intmask);
-+ if (host->data->error)
-+ goto finished;
-+
-+ if (host->data->flags & MMC_DATA_WRITE) {
-+ /* Use the block interrupt for writes after the first block */
-+ host->hcfg &= ~(SDHCFG_DATA_IRPT_EN);
-+ host->hcfg |= SDHCFG_BLOCK_IRPT_EN;
-+ writel(host->hcfg, host->ioaddr + SDHCFG);
-+ bcm2835_transfer_pio(host);
-+ } else {
-+ bcm2835_transfer_pio(host);
-+ host->blocks--;
-+ if ((host->blocks == 0) || host->data->error)
-+ goto finished;
-+ }
-+ return;
-+
-+finished:
-+ host->hcfg &= ~(SDHCFG_DATA_IRPT_EN | SDHCFG_BLOCK_IRPT_EN);
-+ writel(host->hcfg, host->ioaddr + SDHCFG);
-+}
-+
-+static void bcm2835_data_threaded_irq(struct bcm2835_host *host)
-+{
-+ if (!host->data)
-+ return;
-+ if ((host->blocks == 0) || host->data->error)
-+ bcm2835_finish_data(host);
-+}
-+
-+static void bcm2835_block_irq(struct bcm2835_host *host)
-+{
-+ if (WARN_ON(!host->data)) {
-+ bcm2835_dumpregs(host);
-+ return;
-+ }
-+
-+ if (!host->dma_desc) {
-+ WARN_ON(!host->blocks);
-+ if (host->data->error || (--host->blocks == 0))
-+ bcm2835_finish_data(host);
-+ else
-+ bcm2835_transfer_pio(host);
-+ } else if (host->data->flags & MMC_DATA_WRITE) {
-+ bcm2835_finish_data(host);
-+ }
-+}
-+
-+static irqreturn_t bcm2835_irq(int irq, void *dev_id)
-+{
-+ irqreturn_t result = IRQ_NONE;
-+ struct bcm2835_host *host = dev_id;
-+ u32 intmask;
-+
-+ spin_lock(&host->lock);
-+
-+ intmask = readl(host->ioaddr + SDHSTS);
-+
-+ writel(SDHSTS_BUSY_IRPT |
-+ SDHSTS_BLOCK_IRPT |
-+ SDHSTS_SDIO_IRPT |
-+ SDHSTS_DATA_FLAG,
-+ host->ioaddr + SDHSTS);
-+
-+ if (intmask & SDHSTS_BLOCK_IRPT) {
-+ bcm2835_check_data_error(host, intmask);
-+ host->irq_block = true;
-+ result = IRQ_WAKE_THREAD;
-+ }
-+
-+ if (intmask & SDHSTS_BUSY_IRPT) {
-+ if (!bcm2835_check_cmd_error(host, intmask)) {
-+ host->irq_busy = true;
-+ result = IRQ_WAKE_THREAD;
-+ } else {
-+ result = IRQ_HANDLED;
-+ }
-+ }
-+
-+ /* There is no true data interrupt status bit, so it is
-+ * necessary to qualify the data flag with the interrupt
-+ * enable bit.
-+ */
-+ if ((intmask & SDHSTS_DATA_FLAG) &&
-+ (host->hcfg & SDHCFG_DATA_IRPT_EN)) {
-+ bcm2835_data_irq(host, intmask);
-+ host->irq_data = true;
-+ result = IRQ_WAKE_THREAD;
-+ }
-+
-+ spin_unlock(&host->lock);
-+
-+ return result;
-+}
-+
-+static irqreturn_t bcm2835_threaded_irq(int irq, void *dev_id)
-+{
-+ struct bcm2835_host *host = dev_id;
-+ unsigned long flags;
-+ bool block, busy, data;
-+
-+ spin_lock_irqsave(&host->lock, flags);
-+
-+ block = host->irq_block;
-+ busy = host->irq_busy;
-+ data = host->irq_data;
-+ host->irq_block = false;
-+ host->irq_busy = false;
-+ host->irq_data = false;
-+
-+ spin_unlock_irqrestore(&host->lock, flags);
-+
-+ mutex_lock(&host->mutex);
-+
-+ if (block)
-+ bcm2835_block_irq(host);
-+ if (busy)
-+ bcm2835_busy_irq(host);
-+ if (data)
-+ bcm2835_data_threaded_irq(host);
-+
-+ mutex_unlock(&host->mutex);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static void bcm2835_dma_complete_work(struct work_struct *work)
-+{
-+ struct bcm2835_host *host =
-+ container_of(work, struct bcm2835_host, dma_work);
-+ struct mmc_data *data = host->data;
-+
-+ mutex_lock(&host->mutex);
-+
-+ if (host->dma_chan) {
-+ dma_unmap_sg(host->dma_chan->device->dev,
-+ data->sg, data->sg_len,
-+ host->dma_dir);
-+
-+ host->dma_chan = NULL;
-+ }
-+
-+ if (host->drain_words) {
-+ unsigned long flags;
-+ void *page;
-+ u32 *buf;
-+
-+ if (host->drain_offset & PAGE_MASK) {
-+ host->drain_page += host->drain_offset >> PAGE_SHIFT;
-+ host->drain_offset &= ~PAGE_MASK;
-+ }
-+ local_irq_save(flags);
-+ page = kmap_atomic(host->drain_page);
-+ buf = page + host->drain_offset;
-+
-+ while (host->drain_words) {
-+ u32 edm = readl(host->ioaddr + SDEDM);
-+
-+ if ((edm >> 4) & 0x1f)
-+ *(buf++) = readl(host->ioaddr + SDDATA);
-+ host->drain_words--;
-+ }
-+
-+ kunmap_atomic(page);
-+ local_irq_restore(flags);
-+ }
-+
-+ bcm2835_finish_data(host);
-+
-+ mutex_unlock(&host->mutex);
-+}
-+
-+static void bcm2835_set_clock(struct bcm2835_host *host, unsigned int clock)
-+{
-+ int div;
-+
-+ /* The SDCDIV register has 11 bits, and holds (div - 2). But
-+ * in data mode the max is 50MHz wihout a minimum, and only
-+ * the bottom 3 bits are used. Since the switch over is
-+ * automatic (unless we have marked the card as slow...),
-+ * chosen values have to make sense in both modes. Ident mode
-+ * must be 100-400KHz, so can range check the requested
-+ * clock. CMD15 must be used to return to data mode, so this
-+ * can be monitored.
-+ *
-+ * clock 250MHz -> 0->125MHz, 1->83.3MHz, 2->62.5MHz, 3->50.0MHz
-+ * 4->41.7MHz, 5->35.7MHz, 6->31.3MHz, 7->27.8MHz
-+ *
-+ * 623->400KHz/27.8MHz
-+ * reset value (507)->491159/50MHz
-+ *
-+ * BUT, the 3-bit clock divisor in data mode is too small if
-+ * the core clock is higher than 250MHz, so instead use the
-+ * SLOW_CARD configuration bit to force the use of the ident
-+ * clock divisor at all times.
-+ */
-+
-+ if (clock < 100000) {
-+ /* Can't stop the clock, but make it as slow as possible
-+ * to show willing
-+ */
-+ host->cdiv = SDCDIV_MAX_CDIV;
-+ writel(host->cdiv, host->ioaddr + SDCDIV);
-+ return;
-+ }
-+
-+ div = host->max_clk / clock;
-+ if (div < 2)
-+ div = 2;
-+ if ((host->max_clk / div) > clock)
-+ div++;
-+ div -= 2;
-+
-+ if (div > SDCDIV_MAX_CDIV)
-+ div = SDCDIV_MAX_CDIV;
-+
-+ clock = host->max_clk / (div + 2);
-+ host->mmc->actual_clock = clock;
-+
-+ /* Calibrate some delays */
-+
-+ host->ns_per_fifo_word = (1000000000 / clock) *
-+ ((host->mmc->caps & MMC_CAP_4_BIT_DATA) ? 8 : 32);
-+
-+ host->cdiv = div;
-+ writel(host->cdiv, host->ioaddr + SDCDIV);
-+
-+ /* Set the timeout to 500ms */
-+ writel(host->mmc->actual_clock / 2, host->ioaddr + SDTOUT);
-+}
-+
-+static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
-+{
-+ struct bcm2835_host *host = mmc_priv(mmc);
-+ struct device *dev = &host->pdev->dev;
-+ u32 edm, fsm;
-+
-+ /* Reset the error statuses in case this is a retry */
-+ if (mrq->sbc)
-+ mrq->sbc->error = 0;
-+ if (mrq->cmd)
-+ mrq->cmd->error = 0;
-+ if (mrq->data)
-+ mrq->data->error = 0;
-+ if (mrq->stop)
-+ mrq->stop->error = 0;
-+
-+ if (mrq->data && !is_power_of_2(mrq->data->blksz)) {
-+ dev_err(dev, "unsupported block size (%d bytes)\n",
-+ mrq->data->blksz);
-+ mrq->cmd->error = -EINVAL;
-+ mmc_request_done(mmc, mrq);
-+ return;
-+ }
-+
-+ if (host->use_dma && mrq->data && (mrq->data->blocks > PIO_THRESHOLD))
-+ bcm2835_prepare_dma(host, mrq->data);
-+
-+ mutex_lock(&host->mutex);
-+
-+ WARN_ON(host->mrq);
-+ host->mrq = mrq;
-+
-+ edm = readl(host->ioaddr + SDEDM);
-+ fsm = edm & SDEDM_FSM_MASK;
-+
-+ if ((fsm != SDEDM_FSM_IDENTMODE) &&
-+ (fsm != SDEDM_FSM_DATAMODE)) {
-+ dev_err(dev, "previous command (%d) not complete (EDM %08x)\n",
-+ readl(host->ioaddr + SDCMD) & SDCMD_CMD_MASK,
-+ edm);
-+ bcm2835_dumpregs(host);
-+ mrq->cmd->error = -EILSEQ;
-+ bcm2835_finish_request(host);
-+ mutex_unlock(&host->mutex);
-+ return;
-+ }
-+
-+ host->use_sbc = !!mrq->sbc && (host->mrq->data->flags & MMC_DATA_READ);
-+ if (host->use_sbc) {
-+ if (bcm2835_send_command(host, mrq->sbc)) {
-+ if (!host->use_busy)
-+ bcm2835_finish_command(host);
-+ }
-+ } else if (bcm2835_send_command(host, mrq->cmd)) {
-+ if (host->data && host->dma_desc) {
-+ /* DMA transfer starts now, PIO starts after irq */
-+ bcm2835_start_dma(host);
-+ }
-+
-+ if (!host->use_busy)
-+ bcm2835_finish_command(host);
-+ }
-+
-+ mutex_unlock(&host->mutex);
-+}
-+
-+static void bcm2835_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
-+{
-+ struct bcm2835_host *host = mmc_priv(mmc);
-+
-+ mutex_lock(&host->mutex);
-+
-+ if (!ios->clock || ios->clock != host->clock) {
-+ bcm2835_set_clock(host, ios->clock);
-+ host->clock = ios->clock;
-+ }
-+
-+ /* set bus width */
-+ host->hcfg &= ~SDHCFG_WIDE_EXT_BUS;
-+ if (ios->bus_width == MMC_BUS_WIDTH_4)
-+ host->hcfg |= SDHCFG_WIDE_EXT_BUS;
-+
-+ host->hcfg |= SDHCFG_WIDE_INT_BUS;
-+
-+ /* Disable clever clock switching, to cope with fast core clocks */
-+ host->hcfg |= SDHCFG_SLOW_CARD;
-+
-+ writel(host->hcfg, host->ioaddr + SDHCFG);
-+
-+ mutex_unlock(&host->mutex);
-+}
-+
-+static struct mmc_host_ops bcm2835_ops = {
-+ .request = bcm2835_request,
-+ .set_ios = bcm2835_set_ios,
-+ .hw_reset = bcm2835_reset,
-+};
-+
-+static int bcm2835_add_host(struct bcm2835_host *host)
-+{
-+ struct mmc_host *mmc = host->mmc;
-+ struct device *dev = &host->pdev->dev;
-+ char pio_limit_string[20];
-+ int ret;
-+
-+ mmc->f_max = host->max_clk;
-+ mmc->f_min = host->max_clk / SDCDIV_MAX_CDIV;
-+
-+ mmc->max_busy_timeout = ~0 / (mmc->f_max / 1000);
-+
-+ dev_dbg(dev, "f_max %d, f_min %d, max_busy_timeout %d\n",
-+ mmc->f_max, mmc->f_min, mmc->max_busy_timeout);
-+
-+ /* host controller capabilities */
-+ mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED |
-+ MMC_CAP_NEEDS_POLL | MMC_CAP_HW_RESET | MMC_CAP_ERASE |
-+ MMC_CAP_CMD23;
-+
-+ spin_lock_init(&host->lock);
-+ mutex_init(&host->mutex);
-+
-+ if (IS_ERR_OR_NULL(host->dma_chan_rxtx)) {
-+ dev_warn(dev, "unable to initialise DMA channel. Falling back to PIO\n");
-+ host->use_dma = false;
-+ } else {
-+ host->use_dma = true;
-+
-+ host->dma_cfg_tx.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
-+ host->dma_cfg_tx.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
-+ host->dma_cfg_tx.slave_id = 13; /* DREQ channel */
-+ host->dma_cfg_tx.direction = DMA_MEM_TO_DEV;
-+ host->dma_cfg_tx.src_addr = 0;
-+ host->dma_cfg_tx.dst_addr = host->phys_addr + SDDATA;
-+
-+ host->dma_cfg_rx.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
-+ host->dma_cfg_rx.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
-+ host->dma_cfg_rx.slave_id = 13; /* DREQ channel */
-+ host->dma_cfg_rx.direction = DMA_DEV_TO_MEM;
-+ host->dma_cfg_rx.src_addr = host->phys_addr + SDDATA;
-+ host->dma_cfg_rx.dst_addr = 0;
-+
-+ if (dmaengine_slave_config(host->dma_chan_rxtx,
-+ &host->dma_cfg_tx) != 0 ||
-+ dmaengine_slave_config(host->dma_chan_rxtx,
-+ &host->dma_cfg_rx) != 0)
-+ host->use_dma = false;
-+ }
-+
-+ mmc->max_segs = 128;
-+ mmc->max_req_size = 524288;
-+ mmc->max_seg_size = mmc->max_req_size;
-+ mmc->max_blk_size = 1024;
-+ mmc->max_blk_count = 65535;
-+
-+ /* report supported voltage ranges */
-+ mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
-+
-+ INIT_WORK(&host->dma_work, bcm2835_dma_complete_work);
-+ INIT_DELAYED_WORK(&host->timeout_work, bcm2835_timeout);
-+
-+ /* Set interrupt enables */
-+ host->hcfg = SDHCFG_BUSY_IRPT_EN;
-+
-+ bcm2835_reset_internal(host);
-+
-+ ret = request_threaded_irq(host->irq, bcm2835_irq,
-+ bcm2835_threaded_irq,
-+ 0, mmc_hostname(mmc), host);
-+ if (ret) {
-+ dev_err(dev, "failed to request IRQ %d: %d\n", host->irq, ret);
-+ return ret;
-+ }
-+
-+ ret = mmc_add_host(mmc);
-+ if (ret) {
-+ free_irq(host->irq, host);
-+ return ret;
-+ }
-+
-+ pio_limit_string[0] = '\0';
-+ if (host->use_dma && (PIO_THRESHOLD > 0))
-+ sprintf(pio_limit_string, " (>%d)", PIO_THRESHOLD);
-+ dev_info(dev, "loaded - DMA %s%s\n",
-+ host->use_dma ? "enabled" : "disabled", pio_limit_string);
-+
-+ return 0;
-+}
-+
-+static int bcm2835_probe(struct platform_device *pdev)
-+{
-+ struct device *dev = &pdev->dev;
-+ struct clk *clk;
-+ struct resource *iomem;
-+ struct bcm2835_host *host;
-+ struct mmc_host *mmc;
-+ const __be32 *regaddr_p;
-+ int ret;
-+
-+ dev_dbg(dev, "%s\n", __func__);
-+ mmc = mmc_alloc_host(sizeof(*host), dev);
-+ if (!mmc)
-+ return -ENOMEM;
-+
-+ mmc->ops = &bcm2835_ops;
-+ host = mmc_priv(mmc);
-+ host->mmc = mmc;
-+ host->pdev = pdev;
-+ spin_lock_init(&host->lock);
-+
-+ iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+ host->ioaddr = devm_ioremap_resource(dev, iomem);
-+ if (IS_ERR(host->ioaddr)) {
-+ ret = PTR_ERR(host->ioaddr);
-+ goto err;
-+ }
-+
-+ /* Parse OF address directly to get the physical address for
-+ * DMA to our registers.
-+ */
-+ regaddr_p = of_get_address(pdev->dev.of_node, 0, NULL, NULL);
-+ if (!regaddr_p) {
-+ dev_err(dev, "Can't get phys address\n");
-+ ret = -EINVAL;
-+ goto err;
-+ }
-+
-+ host->phys_addr = be32_to_cpup(regaddr_p);
-+
-+ host->dma_chan = NULL;
-+ host->dma_desc = NULL;
-+
-+ host->dma_chan_rxtx = dma_request_slave_channel(dev, "rx-tx");
-+
-+ clk = devm_clk_get(dev, NULL);
-+ if (IS_ERR(clk)) {
-+ ret = PTR_ERR(clk);
-+ if (ret != -EPROBE_DEFER)
-+ dev_err(dev, "could not get clk: %d\n", ret);
-+ goto err;
-+ }
-+
-+ host->max_clk = clk_get_rate(clk);
-+
-+ host->irq = platform_get_irq(pdev, 0);
-+ if (host->irq <= 0) {
-+ dev_err(dev, "get IRQ failed\n");
-+ ret = -EINVAL;
-+ goto err;
-+ }
-+
-+ ret = mmc_of_parse(mmc);
-+ if (ret)
-+ goto err;
-+
-+ ret = bcm2835_add_host(host);
-+ if (ret)
-+ goto err;
-+
-+ platform_set_drvdata(pdev, host);
-+
-+ dev_dbg(dev, "%s -> OK\n", __func__);
-+
-+ return 0;
-+
-+err:
-+ dev_dbg(dev, "%s -> err %d\n", __func__, ret);
-+ mmc_free_host(mmc);
-+
-+ return ret;
-+}
-+
-+static int bcm2835_remove(struct platform_device *pdev)
-+{
-+ struct bcm2835_host *host = platform_get_drvdata(pdev);
-+
-+ mmc_remove_host(host->mmc);
-+
-+ writel(SDVDD_POWER_OFF, host->ioaddr + SDVDD);
-+
-+ free_irq(host->irq, host);
-+
-+ cancel_work_sync(&host->dma_work);
-+ cancel_delayed_work_sync(&host->timeout_work);
-+
-+ mmc_free_host(host->mmc);
-+ platform_set_drvdata(pdev, NULL);
-+
-+ return 0;
-+}
-+
-+static const struct of_device_id bcm2835_match[] = {
-+ { .compatible = "brcm,bcm2835-sdhost" },
-+ { }
-+};
-+MODULE_DEVICE_TABLE(of, bcm2835_match);
-+
-+static struct platform_driver bcm2835_driver = {
-+ .probe = bcm2835_probe,
-+ .remove = bcm2835_remove,
-+ .driver = {
-+ .name = "sdhost-bcm2835",
-+ .of_match_table = bcm2835_match,
-+ },
-+};
-+module_platform_driver(bcm2835_driver);
-+
-+MODULE_ALIAS("platform:sdhost-bcm2835");
-+MODULE_DESCRIPTION("BCM2835 SDHost driver");
-+MODULE_LICENSE("GPL v2");
-+MODULE_AUTHOR("Phil Elwell");
-From patchwork Wed Mar 8 09:19:05 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v4,3/7] mmc: bcm2835: add sdhost controller to devicetree
-From: Gerd Hoffmann <kraxel@redhat.com>
-X-Patchwork-Id: 9610693
-Message-Id: <1488964751-22763-6-git-send-email-kraxel@redhat.com>
-To: linux-rpi-kernel@lists.infradead.org
-Cc: mark.rutland@arm.com, stefan.wahren@i2se.com, ulf.hansson@linaro.org,
- f.fainelli@gmail.com, sbranden@broadcom.com, devicetree@vger.kernel.org,
- rjui@broadcom.com, lee@kernel.org, will.deacon@arm.com,
- linux@armlinux.org.uk,
- linux-kernel@vger.kernel.org, eric@anholt.net, robh+dt@kernel.org,
- bcm-kernel-feedback-list@broadcom.com, Gerd Hoffmann <kraxel@redhat.com>,
- catalin.marinas@arm.com, linux-mmc@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Date: Wed, 8 Mar 2017 10:19:05 +0100
-
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-Acked-by: Eric Anholt <eric@anholt.net>
-Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
----
- arch/arm/boot/dts/bcm2835-rpi.dtsi | 6 ++++++
- arch/arm/boot/dts/bcm283x.dtsi | 10 ++++++++++
- 2 files changed, 16 insertions(+)
-
-diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
-index 1e00a28..8b95832 100644
---- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
-+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
-@@ -69,6 +69,12 @@
- bus-width = <4>;
- };
-
-+&sdhost {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&sdhost_gpio48>;
-+ bus-width = <4>;
-+};
-+
- &pwm {
- pinctrl-names = "default";
- pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
-diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
-index 9798bc9..19099a5 100644
---- a/arch/arm/boot/dts/bcm283x.dtsi
-+++ b/arch/arm/boot/dts/bcm283x.dtsi
-@@ -350,6 +350,16 @@
- arm,primecell-periphid = <0x00241011>;
- };
-
-+ sdhost: mmc@7e202000 {
-+ compatible = "brcm,bcm2835-sdhost";
-+ reg = <0x7e202000 0x100>;
-+ interrupts = <2 24>;
-+ clocks = <&clocks BCM2835_CLOCK_VPU>;
-+ dmas = <&dma 13>;
-+ dma-names = "rx-tx";
-+ status = "disabled";
-+ };
-+
- i2s: i2s@7e203000 {
- compatible = "brcm,bcm2835-i2s";
- reg = <0x7e203000 0x20>,
-From patchwork Wed Mar 8 09:19:07 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v4, 4/7] arm: set CONFIG_MMC_BCM2835=y in bcm2835_defconfig and
- multi_v7_defconfig
-From: Gerd Hoffmann <kraxel@redhat.com>
-X-Patchwork-Id: 9610689
-Message-Id: <1488964751-22763-8-git-send-email-kraxel@redhat.com>
-To: linux-rpi-kernel@lists.infradead.org
-Cc: mark.rutland@arm.com, stefan.wahren@i2se.com, ulf.hansson@linaro.org,
- f.fainelli@gmail.com, sbranden@broadcom.com, devicetree@vger.kernel.org,
- rjui@broadcom.com, lee@kernel.org, will.deacon@arm.com,
- linux@armlinux.org.uk,
- linux-kernel@vger.kernel.org, eric@anholt.net, robh+dt@kernel.org,
- bcm-kernel-feedback-list@broadcom.com, Gerd Hoffmann <kraxel@redhat.com>,
- catalin.marinas@arm.com, linux-mmc@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Date: Wed, 8 Mar 2017 10:19:07 +0100
-
-We need to enable this controller so that we can switch the SD card's
-pinmux over to it by default, which will improve storage performance.
-
-Read access (dd with 64k blocks on rpi2):
- CONFIG_MMC_SDHCI_IPROC: 11-12 MB/s
- CONFIG_MMC_BCM2835: 19-20 MB/s
-
-Differences on write access are pretty much in the noise.
-
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
----
- arch/arm/configs/bcm2835_defconfig | 1 +
- arch/arm/configs/multi_v7_defconfig | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/arch/arm/configs/bcm2835_defconfig b/arch/arm/configs/bcm2835_defconfig
-index 4b89f4e..3767c24 100644
---- a/arch/arm/configs/bcm2835_defconfig
-+++ b/arch/arm/configs/bcm2835_defconfig
-@@ -92,6 +92,7 @@ CONFIG_MMC=y
- CONFIG_MMC_SDHCI=y
- CONFIG_MMC_SDHCI_PLTFM=y
- CONFIG_MMC_SDHCI_IPROC=y
-+CONFIG_MMC_BCM2835=y
- CONFIG_NEW_LEDS=y
- CONFIG_LEDS_CLASS=y
- CONFIG_LEDS_GPIO=y
-diff --git a/arch/arm/configs/multi_v7_defconfig b/arch/arm/configs/multi_v7_defconfig
-index a94126f..63b94d0 100644
---- a/arch/arm/configs/multi_v7_defconfig
-+++ b/arch/arm/configs/multi_v7_defconfig
-@@ -730,6 +730,7 @@ CONFIG_MMC_DW_EXYNOS=y
- CONFIG_MMC_DW_ROCKCHIP=y
- CONFIG_MMC_SH_MMCIF=y
- CONFIG_MMC_SUNXI=y
-+CONFIG_MMC_BCM2835=y
- CONFIG_NEW_LEDS=y
- CONFIG_LEDS_CLASS=y
- CONFIG_LEDS_CLASS_FLASH=m
-From patchwork Wed Mar 8 09:19:09 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v4,5/7] arm64: set CONFIG_MMC_BCM2835=y in defconfig
-From: Gerd Hoffmann <kraxel@redhat.com>
-X-Patchwork-Id: 9610647
-Message-Id: <1488964751-22763-10-git-send-email-kraxel@redhat.com>
-To: linux-rpi-kernel@lists.infradead.org
-Cc: mark.rutland@arm.com, stefan.wahren@i2se.com, ulf.hansson@linaro.org,
- f.fainelli@gmail.com, sbranden@broadcom.com, devicetree@vger.kernel.org,
- rjui@broadcom.com, lee@kernel.org, will.deacon@arm.com,
- linux@armlinux.org.uk,
- linux-kernel@vger.kernel.org, eric@anholt.net, robh+dt@kernel.org,
- bcm-kernel-feedback-list@broadcom.com, Gerd Hoffmann <kraxel@redhat.com>,
- catalin.marinas@arm.com, linux-mmc@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Date: Wed, 8 Mar 2017 10:19:09 +0100
-
-We need to enable this controller so that we can switch the SD card's
-pinmux over to it by default, which will improve storage performance.
-
-Read access (dd with 64k blocks on rpi2):
- CONFIG_MMC_SDHCI_IPROC: 11-12 MB/s
- CONFIG_MMC_BCM2835: 19-20 MB/s
-
-Differences on write access are pretty much in the noise.
-
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
----
- arch/arm64/configs/defconfig | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
-index 7c48028..519a55c 100644
---- a/arch/arm64/configs/defconfig
-+++ b/arch/arm64/configs/defconfig
-@@ -398,6 +398,7 @@ CONFIG_MMC_DW_EXYNOS=y
- CONFIG_MMC_DW_K3=y
- CONFIG_MMC_DW_ROCKCHIP=y
- CONFIG_MMC_SUNXI=y
-+CONFIG_MMC_BCM2835=y
- CONFIG_NEW_LEDS=y
- CONFIG_LEDS_CLASS=y
- CONFIG_LEDS_GPIO=y
-From patchwork Wed Mar 8 09:19:10 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v4,6/7] arm: dts: bcm283x: switch from &sdhci to &sdhost
-From: Gerd Hoffmann <kraxel@redhat.com>
-X-Patchwork-Id: 9610687
-Message-Id: <1488964751-22763-11-git-send-email-kraxel@redhat.com>
-To: linux-rpi-kernel@lists.infradead.org
-Cc: mark.rutland@arm.com, stefan.wahren@i2se.com, ulf.hansson@linaro.org,
- f.fainelli@gmail.com, sbranden@broadcom.com, devicetree@vger.kernel.org,
- rjui@broadcom.com, lee@kernel.org, will.deacon@arm.com,
- linux@armlinux.org.uk,
- linux-kernel@vger.kernel.org, eric@anholt.net, robh+dt@kernel.org,
- bcm-kernel-feedback-list@broadcom.com, Gerd Hoffmann <kraxel@redhat.com>,
- catalin.marinas@arm.com, linux-mmc@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Date: Wed, 8 Mar 2017 10:19:10 +0100
-
-sdcard access with the sdhost controller is faster.
-
-Read access (dd with 64k blocks on rpi2):
- CONFIG_MMC_SDHCI_IPROC: 11-12 MB/s
- CONFIG_MMC_BCM2835: 19-20 MB/s
-
-Differences on write access are pretty much in the noise.
-
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-Acked-by: Eric Anholt <eric@anholt.net>
----
- arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
-index 8b95832..e36c392 100644
---- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
-+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
-@@ -65,13 +65,13 @@
- &sdhci {
- pinctrl-names = "default";
- pinctrl-0 = <&emmc_gpio48>;
-- status = "okay";
- bus-width = <4>;
- };
-
- &sdhost {
- pinctrl-names = "default";
- pinctrl-0 = <&sdhost_gpio48>;
-+ status = "okay";
- bus-width = <4>;
- };
-
-From patchwork Wed Mar 8 09:19:11 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v4,7/7] arm64: dts: bcm2837: add &sdhci and &sdhost
-From: Gerd Hoffmann <kraxel@redhat.com>
-X-Patchwork-Id: 9610637
-Message-Id: <1488964751-22763-12-git-send-email-kraxel@redhat.com>
-To: linux-rpi-kernel@lists.infradead.org
-Cc: mark.rutland@arm.com, stefan.wahren@i2se.com, ulf.hansson@linaro.org,
- f.fainelli@gmail.com, sbranden@broadcom.com, devicetree@vger.kernel.org,
- rjui@broadcom.com, lee@kernel.org, will.deacon@arm.com,
- linux@armlinux.org.uk,
- linux-kernel@vger.kernel.org, eric@anholt.net, robh+dt@kernel.org,
- bcm-kernel-feedback-list@broadcom.com, Gerd Hoffmann <kraxel@redhat.com>,
- catalin.marinas@arm.com, linux-mmc@vger.kernel.org,
- linux-arm-kernel@lists.infradead.org
-Date: Wed, 8 Mar 2017 10:19:11 +0100
-
-For the raspberry pi 3 we'll need both sdhci (handles sdio wifi) and
-sdhost (handles sdcard).
-
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-Acked-by: Eric Anholt <eric@anholt.net>
----
- arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts | 17 +++++++++++++++++
- 1 file changed, 17 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
-index c309633..972f14d 100644
---- a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
-+++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
-@@ -22,3 +22,20 @@
- &uart1 {
- status = "okay";
- };
-+
-+/* SDHCI is used to control the SDIO for wireless */
-+&sdhci {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&emmc_gpio34>;
-+ status = "okay";
-+ bus-width = <4>;
-+ non-removable;
-+};
-+
-+/* SDHOST is used to drive the SD card */
-+&sdhost {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&sdhost_gpio48>;
-+ status = "okay";
-+ bus-width = <4>;
-+};
-From patchwork Sat Mar 25 13:17:00 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: mmc: bcm2835: Fix possible NULL ptr dereference in bcm2835_request
-From: Stefan Wahren <stefan.wahren@i2se.com>
-X-Patchwork-Id: 9644591
-Message-Id: <1490447820-751-1-git-send-email-stefan.wahren@i2se.com>
-To: Ulf Hansson <ulf.hansson@linaro.org>, Eric Anholt <eric@anholt.net>,
- Gerd Hoffmann <kraxel@redhat.com>
-Cc: Jaehoon Chung <jh80.chung@samsung.com>,
- Dan Carpenter <dan.carpenter@oracle.com>,
- linux-rpi-kernel@lists.infradead.org, linux-mmc@vger.kernel.org,
- Stefan Wahren <stefan.wahren@i2se.com>
-Date: Sat, 25 Mar 2017 13:17:00 +0000
-
-This fixes a NULL pointer dereference in case of a MMC request with a
-set block count command and no data.
-
-Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
-Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
----
- drivers/mmc/host/bcm2835.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
-index 7d1b0db..1f343a4 100644
---- a/drivers/mmc/host/bcm2835.c
-+++ b/drivers/mmc/host/bcm2835.c
-@@ -1200,7 +1200,8 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
- return;
- }
-
-- host->use_sbc = !!mrq->sbc && (host->mrq->data->flags & MMC_DATA_READ);
-+ host->use_sbc = !!mrq->sbc && host->mrq->data &&
-+ (host->mrq->data->flags & MMC_DATA_READ);
- if (host->use_sbc) {
- if (bcm2835_send_command(host, mrq->sbc)) {
- if (!host->use_busy)
-From patchwork Tue May 23 23:42:27 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: mmc: host: fix potential null pointer dereference
-From: "Gustavo A. R. Silva" <garsilva@embeddedor.com>
-X-Patchwork-Id: 9744419
-Message-Id: <20170523234227.GA13018@embeddedgus>
-To: Ulf Hansson <ulf.hansson@linaro.org>,
- Florian Fainelli <f.fainelli@gmail.com>,
- Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>,
- bcm-kernel-feedback-list@broadcom.com, Eric Anholt <eric@anholt.net>,
- Stefan Wahren <stefan.wahren@i2se.com>
-Cc: "Gustavo A. R. Silva" <garsilva@embeddedor.com>,
- linux-mmc@vger.kernel.org, linux-rpi-kernel@lists.infradead.org,
- linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org
-Date: Tue, 23 May 2017 18:42:27 -0500
-
-Null check at line 1165: if (mrq->cmd), implies that mrq->cmd might
-be NULL.
-Add null checks before dereferencing pointer mrq->cmd in order to avoid
-any potential NULL pointer dereference.
-
-Addresses-Coverity-ID: 1408740
-Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
----
- drivers/mmc/host/bcm2835.c | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
-index 1f343a4..abba9a2 100644
---- a/drivers/mmc/host/bcm2835.c
-+++ b/drivers/mmc/host/bcm2835.c
-@@ -1172,7 +1172,10 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
- if (mrq->data && !is_power_of_2(mrq->data->blksz)) {
- dev_err(dev, "unsupported block size (%d bytes)\n",
- mrq->data->blksz);
-- mrq->cmd->error = -EINVAL;
-+
-+ if (mrq->cmd)
-+ mrq->cmd->error = -EINVAL;
-+
- mmc_request_done(mmc, mrq);
- return;
- }
-@@ -1194,7 +1197,10 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
- readl(host->ioaddr + SDCMD) & SDCMD_CMD_MASK,
- edm);
- bcm2835_dumpregs(host);
-- mrq->cmd->error = -EILSEQ;
-+
-+ if (mrq->cmd)
-+ mrq->cmd->error = -EILSEQ;
-+
- bcm2835_finish_request(host);
- mutex_unlock(&host->mutex);
- return;
-@@ -1207,7 +1213,7 @@ static void bcm2835_request(struct mmc_host *mmc, struct mmc_request *mrq)
- if (!host->use_busy)
- bcm2835_finish_command(host);
- }
-- } else if (bcm2835_send_command(host, mrq->cmd)) {
-+ } else if (mrq->cmd && bcm2835_send_command(host, mrq->cmd)) {
- if (host->data && host->dma_desc) {
- /* DMA transfer starts now, PIO starts after irq */
- bcm2835_start_dma(host);
diff --git a/bcm283x-vc4-fix-vblank.patch b/bcm283x-vc4-fix-vblank.patch
index ea7153d21..ce4f8b16f 100644
--- a/bcm283x-vc4-fix-vblank.patch
+++ b/bcm283x-vc4-fix-vblank.patch
@@ -1,6 +1,6 @@
-From 5db729b12376b0b6507503eee1dcbe5f3b089686 Mon Sep 17 00:00:00 2001
+From d40a5938a10a3ba73bce6395729fefd8b8bb1c07 Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
-Date: Wed, 28 Jun 2017 10:49:18 +0100
+Date: Thu, 29 Jun 2017 10:05:05 +0100
Subject: [PATCH] drm/vc4: Fix VBLANK handling in crtc->enable() path
When we are enabling a CRTC, drm_crtc_vblank_get() is called before
@@ -14,10 +14,10 @@ Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
1 file changed, 43 insertions(+), 23 deletions(-)
diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c
-index 9fcf05ca492b..138c406f4f77 100644
+index d86c8cce3182..316bd6210d69 100644
--- a/drivers/gpu/drm/vc4/vc4_crtc.c
+++ b/drivers/gpu/drm/vc4/vc4_crtc.c
-@@ -528,6 +528,34 @@ static void vc4_crtc_disable(struct drm_crtc *crtc)
+@@ -530,6 +530,34 @@ static void vc4_crtc_disable(struct drm_crtc *crtc)
SCALER_DISPSTATX_EMPTY);
}
@@ -52,7 +52,7 @@ index 9fcf05ca492b..138c406f4f77 100644
static void vc4_crtc_enable(struct drm_crtc *crtc)
{
struct drm_device *dev = crtc->dev;
-@@ -538,6 +566,12 @@ static void vc4_crtc_enable(struct drm_crtc *crtc)
+@@ -540,6 +568,12 @@ static void vc4_crtc_enable(struct drm_crtc *crtc)
require_hvs_enabled(dev);
@@ -65,7 +65,7 @@ index 9fcf05ca492b..138c406f4f77 100644
/* Turn on the scaler, which will wait for vstart to start
* compositing.
*/
-@@ -549,9 +583,6 @@ static void vc4_crtc_enable(struct drm_crtc *crtc)
+@@ -551,9 +585,6 @@ static void vc4_crtc_enable(struct drm_crtc *crtc)
/* Turn on the pixel valve, which will emit the vstart signal. */
CRTC_WRITE(PV_V_CONTROL,
CRTC_READ(PV_V_CONTROL) | PV_VCONTROL_VIDEN);
@@ -75,7 +75,7 @@ index 9fcf05ca492b..138c406f4f77 100644
}
static bool vc4_crtc_mode_fixup(struct drm_crtc *crtc,
-@@ -606,7 +637,6 @@ static void vc4_crtc_atomic_flush(struct drm_crtc *crtc,
+@@ -608,7 +639,6 @@ static void vc4_crtc_atomic_flush(struct drm_crtc *crtc,
{
struct drm_device *dev = crtc->dev;
struct vc4_dev *vc4 = to_vc4_dev(dev);
@@ -83,7 +83,7 @@ index 9fcf05ca492b..138c406f4f77 100644
struct vc4_crtc_state *vc4_state = to_vc4_crtc_state(crtc->state);
struct drm_plane *plane;
bool debug_dump_regs = false;
-@@ -628,25 +658,15 @@ static void vc4_crtc_atomic_flush(struct drm_crtc *crtc,
+@@ -630,25 +660,15 @@ static void vc4_crtc_atomic_flush(struct drm_crtc *crtc,
WARN_ON_ONCE(dlist_next - dlist_start != vc4_state->mm.size);
diff --git a/dell-laptop-Adds-support-for-keyboard-backlight-timeout-AC-settings.patch b/dell-laptop-Adds-support-for-keyboard-backlight-timeout-AC-settings.patch
deleted file mode 100644
index bf370c6e4..000000000
--- a/dell-laptop-Adds-support-for-keyboard-backlight-timeout-AC-settings.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-From patchwork Sun Apr 23 19:40:47 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 8bit
-Subject: dell-laptop: Adds support for keyboard backlight timeout AC settings
-From: =?utf-8?q?Pali_Roh=C3=A1r?= <pali.rohar@gmail.com>
-X-Patchwork-Id: 9695273
-Message-Id: <1492976447-10339-1-git-send-email-pali.rohar@gmail.com>
-To: Matthew Garrett <mjg59@srcf.ucam.org>,
- Darren Hart <dvhart@infradead.org>, Andy Shevchenko <andy@infradead.org>,
- Arcadiy Ivanov <arcadiy@ivanov.biz>,
- Mario Limonciello <mario.limonciello@dell.com>
-Cc: platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org,
- =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>
-Date: Sun, 23 Apr 2017 21:40:47 +0200
-
-When changing keyboard backlight state on new Dell laptops, firmware
-expects a new timeout AC value filled in Set New State SMBIOS call.
-
-Without it any change of keyboard backlight state on new Dell laptops
-fails. And user can see following error message in dmesg:
-
- dell_laptop: Setting old previous keyboard state failed
- leds dell::kbd_backlight: Setting an LED's brightness failed (-6)
-
-This patch adds support for retrieving current timeout AC values and also
-updating them. Current timeout value in sysfs is displayed based on current
-AC status, like current display brightness value.
-
-Detection if Dell laptop supports or not new timeout AC settings is done by
-checking existence of Keyboard Backlight with AC SMBIOS token (0x0451).
-
-Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
-Acked-by: Mario Limonciello <mario.limonciello@dell.com>
----
-I have not tested this patch yet as I do not have affected machine. I would
-appreciate some testing of this patch on more new Dell laptops. Without
-this patch changing keyboard backlight is not possible on affected machines.
----
- drivers/platform/x86/dell-laptop.c | 59 ++++++++++++++++++++++++++++++++----
- 1 file changed, 53 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
-index f57dd28..cddf3c2 100644
---- a/drivers/platform/x86/dell-laptop.c
-+++ b/drivers/platform/x86/dell-laptop.c
-@@ -42,6 +42,7 @@
- #define KBD_LED_AUTO_50_TOKEN 0x02EB
- #define KBD_LED_AUTO_75_TOKEN 0x02EC
- #define KBD_LED_AUTO_100_TOKEN 0x02F6
-+#define KBD_LED_AC_TOKEN 0x0451
-
- struct quirk_entry {
- u8 touchpad_led;
-@@ -1024,7 +1025,7 @@ static void touchpad_led_exit(void)
- * bit 2 Pointing stick
- * bit 3 Any mouse
- * bits 4-7 Reserved for future use
-- * cbRES2, byte3 Current Timeout
-+ * cbRES2, byte3 Current Timeout on battery
- * bits 7:6 Timeout units indicator:
- * 00b Seconds
- * 01b Minutes
-@@ -1036,6 +1037,15 @@ static void touchpad_led_exit(void)
- * cbRES3, byte0 Current setting of ALS value that turns the light on or off.
- * cbRES3, byte1 Current ALS reading
- * cbRES3, byte2 Current keyboard light level.
-+ * cbRES3, byte3 Current timeout on AC Power
-+ * bits 7:6 Timeout units indicator:
-+ * 00b Seconds
-+ * 01b Minutes
-+ * 10b Hours
-+ * 11b Days
-+ * Bits 5:0 Timeout value (0-63) in sec/min/hr/day
-+ * NOTE: A value of 0 means always on (no timeout) if any bits of RES3 byte2
-+ * are set upon return from the upon return from the [Get Feature information] call.
- *
- * cbArg1 0x2 = Set New State
- * cbRES1 Standard return codes (0, -1, -2)
-@@ -1058,7 +1068,7 @@ static void touchpad_led_exit(void)
- * bit 2 Pointing stick
- * bit 3 Any mouse
- * bits 4-7 Reserved for future use
-- * cbArg2, byte3 Desired Timeout
-+ * cbArg2, byte3 Desired Timeout on battery
- * bits 7:6 Timeout units indicator:
- * 00b Seconds
- * 01b Minutes
-@@ -1067,6 +1077,13 @@ static void touchpad_led_exit(void)
- * bits 5:0 Timeout value (0-63) in sec/min/hr/day
- * cbArg3, byte0 Desired setting of ALS value that turns the light on or off.
- * cbArg3, byte2 Desired keyboard light level.
-+ * cbArg3, byte3 Desired Timeout on AC power
-+ * bits 7:6 Timeout units indicator:
-+ * 00b Seconds
-+ * 01b Minutes
-+ * 10b Hours
-+ * 11b Days
-+ * bits 5:0 Timeout value (0-63) in sec/min/hr/day
- */
-
-
-@@ -1112,6 +1129,8 @@ struct kbd_state {
- u8 triggers;
- u8 timeout_value;
- u8 timeout_unit;
-+ u8 timeout_value_ac;
-+ u8 timeout_unit_ac;
- u8 als_setting;
- u8 als_value;
- u8 level;
-@@ -1131,6 +1150,7 @@ struct kbd_state {
- static struct kbd_info kbd_info;
- static bool kbd_als_supported;
- static bool kbd_triggers_supported;
-+static bool kbd_timeout_ac_supported;
-
- static u8 kbd_mode_levels[16];
- static int kbd_mode_levels_count;
-@@ -1269,6 +1289,8 @@ static int kbd_get_state(struct kbd_state *state)
- state->als_setting = buffer->output[2] & 0xFF;
- state->als_value = (buffer->output[2] >> 8) & 0xFF;
- state->level = (buffer->output[2] >> 16) & 0xFF;
-+ state->timeout_value_ac = (buffer->output[2] >> 24) & 0x3F;
-+ state->timeout_unit_ac = (buffer->output[2] >> 30) & 0x3;
-
- out:
- dell_smbios_release_buffer();
-@@ -1288,6 +1310,8 @@ static int kbd_set_state(struct kbd_state *state)
- buffer->input[1] |= (state->timeout_unit & 0x3) << 30;
- buffer->input[2] = state->als_setting & 0xFF;
- buffer->input[2] |= (state->level & 0xFF) << 16;
-+ buffer->input[2] |= (state->timeout_value_ac & 0x3F) << 24;
-+ buffer->input[2] |= (state->timeout_unit_ac & 0x3) << 30;
- dell_smbios_send_request(4, 11);
- ret = buffer->output[0];
- dell_smbios_release_buffer();
-@@ -1394,6 +1418,13 @@ static inline int kbd_init_info(void)
- if (ret)
- return ret;
-
-+ /* NOTE: Old models without KBD_LED_AC_TOKEN token supports only one
-+ * timeout value which is shared for both battery and AC power
-+ * settings. So do not try to set AC values on old models.
-+ */
-+ if (dell_smbios_find_token(KBD_LED_AC_TOKEN))
-+ kbd_timeout_ac_supported = true;
-+
- kbd_get_state(&state);
-
- /* NOTE: timeout value is stored in 6 bits so max value is 63 */
-@@ -1573,8 +1604,14 @@ static ssize_t kbd_led_timeout_store(struct device *dev,
- return ret;
-
- new_state = state;
-- new_state.timeout_value = value;
-- new_state.timeout_unit = unit;
-+
-+ if (kbd_timeout_ac_supported && power_supply_is_system_supplied() > 0) {
-+ new_state.timeout_value_ac = value;
-+ new_state.timeout_unit_ac = unit;
-+ } else {
-+ new_state.timeout_value = value;
-+ new_state.timeout_unit = unit;
-+ }
-
- ret = kbd_set_state_safe(&new_state, &state);
- if (ret)
-@@ -1587,16 +1624,26 @@ static ssize_t kbd_led_timeout_show(struct device *dev,
- struct device_attribute *attr, char *buf)
- {
- struct kbd_state state;
-+ int value;
- int ret;
- int len;
-+ u8 unit;
-
- ret = kbd_get_state(&state);
- if (ret)
- return ret;
-
-- len = sprintf(buf, "%d", state.timeout_value);
-+ if (kbd_timeout_ac_supported && power_supply_is_system_supplied() > 0) {
-+ value = state.timeout_value_ac;
-+ unit = state.timeout_unit_ac;
-+ } else {
-+ value = state.timeout_value;
-+ unit = state.timeout_unit;
-+ }
-+
-+ len = sprintf(buf, "%d", value);
-
-- switch (state.timeout_unit) {
-+ switch (unit) {
- case KBD_TIMEOUT_SECONDS:
- return len + sprintf(buf+len, "s\n");
- case KBD_TIMEOUT_MINUTES:
diff --git a/efi-Add-SHIM-and-image-security-database-GUID-defini.patch b/efi-Add-SHIM-and-image-security-database-GUID-defini.patch
deleted file mode 100644
index 4d380ea76..000000000
--- a/efi-Add-SHIM-and-image-security-database-GUID-defini.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 3a9fe1504e08824d894bb3a804c6a313f5d1be8a Mon Sep 17 00:00:00 2001
-From: Josh Boyer <jwboyer@fedoraproject.org>
-Date: Tue, 25 Oct 2016 12:54:11 -0400
-Subject: [PATCH 11/20] efi: Add SHIM and image security database GUID
- definitions
-
-Add the definitions for shim and image security database, both of which
-are used widely in various Linux distros.
-
-Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
----
- include/linux/efi.h | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 2d089487d2da..ce943d5accfd 100644
---- a/include/linux/efi.h
-+++ b/include/linux/efi.h
-@@ -592,6 +592,9 @@ void efi_native_runtime_setup(void);
- #define EFI_MEMORY_ATTRIBUTES_TABLE_GUID EFI_GUID(0xdcfa911d, 0x26eb, 0x469f, 0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20)
- #define EFI_CONSOLE_OUT_DEVICE_GUID EFI_GUID(0xd3b36f2c, 0xd551, 0x11d4, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d)
-
-+#define EFI_IMAGE_SECURITY_DATABASE_GUID EFI_GUID(0xd719b2cb, 0x3d3a, 0x4596, 0xa3, 0xbc, 0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f)
-+#define EFI_SHIM_LOCK_GUID EFI_GUID(0x605dab50, 0xe046, 0x4300, 0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23)
-+
- /*
- * This GUID is used to pass to the kernel proper the struct screen_info
- * structure that was populated by the stub based on the GOP protocol instance
---
-2.9.3
-
diff --git a/efi-lockdown.patch b/efi-lockdown.patch
index 7803d6dff..e04878458 100644
--- a/efi-lockdown.patch
+++ b/efi-lockdown.patch
@@ -1,4 +1,4 @@
-From 85255f3885abdd1d2e5dc9f6e51f2fc9db075843 Mon Sep 17 00:00:00 2001
+From df7d76ae50f18d4465e59fdf7f19d3df44906cb5 Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@fedoraproject.org>
Date: Mon, 21 Nov 2016 23:55:55 +0000
Subject: [PATCH 07/32] efi: Add EFI_SECURE_BOOT bit
@@ -18,10 +18,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
2 files changed, 2 insertions(+)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 4bf0c89..396285b 100644
+index 69780ed..447905e 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
-@@ -1184,6 +1184,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1182,6 +1182,7 @@ void __init setup_arch(char **cmdline_p)
pr_info("Secure boot disabled\n");
break;
case efi_secureboot_mode_enabled:
@@ -42,13 +42,13 @@ index 94d34e0..6049600 100644
#ifdef CONFIG_EFI
/*
--
-2.7.5
+2.7.4
-From 341507e80b888b5b587bdb60f0d95275dbbcad89 Mon Sep 17 00:00:00 2001
+From f05a90c19a9613d8d50597319ed91f691e25b689 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Mon, 21 Nov 2016 23:36:17 +0000
-Subject: [PATCH 09/32] Add the ability to lock down access to the running kernel
- image
+Subject: [PATCH 09/32] 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
@@ -67,10 +67,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
create mode 100644 security/lock_down.c
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
-index 4c26dc3..b820a80 100644
+index cb09238..3cd3be9 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
-@@ -275,6 +275,15 @@ extern int oops_may_print(void);
+@@ -273,6 +273,15 @@ extern int oops_may_print(void);
void do_exit(long error_code) __noreturn;
void complete_and_exit(struct completion *, long) __noreturn;
@@ -87,10 +87,10 @@ index 4c26dc3..b820a80 100644
int __must_check _kstrtoul(const char *s, unsigned int base, unsigned long *res);
int __must_check _kstrtol(const char *s, unsigned int base, long *res);
diff --git a/include/linux/security.h b/include/linux/security.h
-index 96899fa..5808570 100644
+index d3868f2..187b74b 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
-@@ -1678,5 +1678,16 @@ static inline void free_secdata(void *secdata)
+@@ -1679,5 +1679,16 @@ static inline void free_secdata(void *secdata)
{ }
#endif /* CONFIG_SECURITY */
@@ -191,9 +191,9 @@ index 0000000..5788c60
+}
+EXPORT_SYMBOL(kernel_is_locked_down);
--
-2.7.5
+2.7.4
-From dfabd5c5acc95a2de69d44f794e6f1ce894fd3ff Mon Sep 17 00:00:00 2001
+From fb6feb38e297260d050fc477c72683ac51d07ae3 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Mon, 21 Nov 2016 23:55:55 +0000
Subject: [PATCH 10/32] efi: Lock down the kernel if booted in secure boot mode
@@ -211,10 +211,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index cc98d5a..21f3985 100644
+index 874c123..a315974 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
-@@ -1817,6 +1817,18 @@ config EFI_MIXED
+@@ -1816,6 +1816,18 @@ config EFI_MIXED
If unsure, say N.
@@ -234,7 +234,7 @@ index cc98d5a..21f3985 100644
def_bool y
prompt "Enable seccomp to safely compute untrusted bytecode"
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 396285b..85dfa74 100644
+index 447905e..d44e60e 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -69,6 +69,7 @@
@@ -243,9 +243,9 @@ index 396285b..85dfa74 100644
#include <linux/jiffies.h>
+#include <linux/security.h>
+ #include <linux/usb/xhci-dbgp.h>
#include <video/edid.h>
-
-@@ -1185,7 +1186,12 @@ void __init setup_arch(char **cmdline_p)
+@@ -1183,7 +1184,12 @@ void __init setup_arch(char **cmdline_p)
break;
case efi_secureboot_mode_enabled:
set_bit(EFI_SECURE_BOOT, &efi.flags);
@@ -260,9 +260,9 @@ index 396285b..85dfa74 100644
default:
pr_info("Secure boot could not be determined\n");
--
-2.7.5
+2.7.4
-From 0329e34894da0599619b03fa6cb16d575bfc68d4 Mon Sep 17 00:00:00 2001
+From 7182f2f5b254d6dc6d3105d2f99219a76adf9de0 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Wed, 23 Nov 2016 13:22:22 +0000
Subject: [PATCH 11/32] Enforce module signatures if the kernel is locked down
@@ -289,13 +289,13 @@ index 7eba6de..3331f2e 100644
return err;
--
-2.7.5
+2.7.4
-From 236e7dcbf5eb7b27416a819d6cb69d3006481cef Mon Sep 17 00:00:00 2001
+From 7e97c58bcd0b4c082b889fb093a2779147532b9f Mon Sep 17 00:00:00 2001
From: Matthew Garrett <matthew.garrett@nebula.com>
Date: Tue, 22 Nov 2016 08:46:16 +0000
-Subject: [PATCH 12/32] Restrict /dev/mem and /dev/kmem when the kernel is locked
- down
+Subject: [PATCH 12/32] Restrict /dev/mem and /dev/kmem when the kernel is
+ locked down
Allowing users to write to address space makes it possible for the kernel to
be subverted, avoiding module loading restrictions. Prevent this when the
@@ -308,10 +308,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
1 file changed, 6 insertions(+)
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
-index 6e0cbe0..a97b22f 100644
+index 6d9cc2d..f814404 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
-@@ -179,6 +179,9 @@ static ssize_t write_mem(struct file *file, const char __user *buf,
+@@ -163,6 +163,9 @@ static ssize_t write_mem(struct file *file, const char __user *buf,
if (p != *ppos)
return -EFBIG;
@@ -321,7 +321,7 @@ index 6e0cbe0..a97b22f 100644
if (!valid_phys_addr_range(p, count))
return -EFAULT;
-@@ -540,6 +543,9 @@ static ssize_t write_kmem(struct file *file, const char __user *buf,
+@@ -513,6 +516,9 @@ static ssize_t write_kmem(struct file *file, const char __user *buf,
char *kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */
int err = 0;
@@ -332,9 +332,9 @@ index 6e0cbe0..a97b22f 100644
unsigned long to_write = min_t(unsigned long, count,
(unsigned long)high_memory - p);
--
-2.7.5
+2.7.4
-From 58a5ca7a67b9091800f61c1c411b3f411fcd857b Mon Sep 17 00:00:00 2001
+From b83b68a9a13120664eaabf21a7b3ff0b065bd5b2 Mon Sep 17 00:00:00 2001
From: Kyle McMartin <kyle@redhat.com>
Date: Mon, 21 Nov 2016 23:55:56 +0000
Subject: [PATCH 13/32] Add a sysrq option to exit secure boot mode
@@ -354,10 +354,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
7 files changed, 68 insertions(+), 8 deletions(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
-index 21f3985..457c049 100644
+index a315974..6931e68 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
-@@ -1829,6 +1829,16 @@ config EFI_SECURE_BOOT_LOCK_DOWN
+@@ -1828,6 +1828,16 @@ config EFI_SECURE_BOOT_LOCK_DOWN
image. Say Y here to automatically lock down the kernel when a
system boots with UEFI Secure Boot enabled.
@@ -375,7 +375,7 @@ index 21f3985..457c049 100644
def_bool y
prompt "Enable seccomp to safely compute untrusted bytecode"
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 85dfa74..a415a48 100644
+index d44e60e..f7635d0 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -71,6 +71,11 @@
@@ -387,10 +387,10 @@ index 85dfa74..a415a48 100644
+#include <linux/sysrq.h>
+#include <linux/init_task.h>
+
+ #include <linux/usb/xhci-dbgp.h>
#include <video/edid.h>
- #include <asm/mtrr.h>
-@@ -1330,6 +1335,32 @@ void __init i386_reserve_resources(void)
+@@ -1328,6 +1333,32 @@ void __init i386_reserve_resources(void)
#endif /* CONFIG_X86_32 */
@@ -436,10 +436,10 @@ index 022be0e..4a054a5 100644
input_set_drvdata(udev->dev, udev);
diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
-index c6fc714..0c96cf6 100644
+index 7113674..e1addc3 100644
--- a/drivers/tty/sysrq.c
+++ b/drivers/tty/sysrq.c
-@@ -481,6 +481,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
+@@ -479,6 +479,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 */
@@ -447,7 +447,7 @@ index c6fc714..0c96cf6 100644
NULL, /* x */
/* y: May be registered on sparc64 for global register dump */
NULL, /* y */
-@@ -524,7 +525,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
+@@ -522,7 +523,7 @@ static void __sysrq_put_key_op(int key, struct sysrq_key_op *op_p)
sysrq_key_table[i] = op_p;
}
@@ -456,7 +456,7 @@ index c6fc714..0c96cf6 100644
{
struct sysrq_key_op *op_p;
int orig_log_level;
-@@ -544,11 +545,15 @@ void __handle_sysrq(int key, bool check_mask)
+@@ -542,11 +543,15 @@ void __handle_sysrq(int key, bool check_mask)
op_p = __sysrq_get_key_op(key);
if (op_p) {
@@ -473,7 +473,7 @@ index c6fc714..0c96cf6 100644
pr_cont("%s\n", op_p->action_msg);
console_loglevel = orig_log_level;
op_p->handler(key);
-@@ -580,7 +585,7 @@ void __handle_sysrq(int key, bool check_mask)
+@@ -578,7 +583,7 @@ void __handle_sysrq(int key, bool check_mask)
void handle_sysrq(int key)
{
if (sysrq_on())
@@ -482,7 +482,7 @@ index c6fc714..0c96cf6 100644
}
EXPORT_SYMBOL(handle_sysrq);
-@@ -661,7 +666,7 @@ static void sysrq_do_reset(unsigned long _state)
+@@ -659,7 +664,7 @@ static void sysrq_do_reset(unsigned long _state)
static void sysrq_handle_reset_request(struct sysrq_state *state)
{
if (state->reset_requested)
@@ -491,7 +491,7 @@ index c6fc714..0c96cf6 100644
if (sysrq_reset_downtime_ms)
mod_timer(&state->keyreset_timer,
-@@ -812,8 +817,10 @@ static bool sysrq_handle_keypress(struct sysrq_state *sysrq,
+@@ -810,8 +815,10 @@ static bool sysrq_handle_keypress(struct sysrq_state *sysrq,
default:
if (sysrq->active && value && value != 2) {
@@ -503,7 +503,7 @@ index c6fc714..0c96cf6 100644
}
break;
}
-@@ -1097,7 +1104,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
+@@ -1095,7 +1102,7 @@ static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
if (get_user(c, buf))
return -EFAULT;
@@ -570,10 +570,10 @@ index 387fa7d..f7c52a9 100644
int unregister_sysrq_key(int key, struct sysrq_key_op *op);
struct sysrq_key_op *__sysrq_get_key_op(int key);
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
-index c8146d5..b480cad 100644
+index ca18391..c4524b8 100644
--- a/kernel/debug/kdb/kdb_main.c
+++ b/kernel/debug/kdb/kdb_main.c
-@@ -1970,7 +1970,7 @@ static int kdb_sr(int argc, const char **argv)
+@@ -1967,7 +1967,7 @@ static int kdb_sr(int argc, const char **argv)
return KDB_ARGCOUNT;
kdb_trap_printk++;
@@ -583,9 +583,9 @@ index c8146d5..b480cad 100644
return 0;
--
-2.7.5
+2.7.4
-From 1b5f90719268c27616172f00cde6e1078eb413c5 Mon Sep 17 00:00:00 2001
+From 8884bd44932e595323fcddfb09c2a2a586134cdf Mon Sep 17 00:00:00 2001
From: Matthew Garrett <matthew.garrett@nebula.com>
Date: Tue, 22 Nov 2016 08:46:15 +0000
Subject: [PATCH 14/32] kexec: Disable at runtime if the kernel is locked down
@@ -622,12 +622,13 @@ index 980936a..46de8e6 100644
* This leaves us room for future extensions.
*/
--
-2.7.5
+2.7.4
-From 85eaf32ad6cb1ce6ab88601daac8e601386929bb Mon Sep 17 00:00:00 2001
+From cace563d1743c3d2faf1e46bd4df8e63e2310207 Mon Sep 17 00:00:00 2001
From: Dave Young <dyoung@redhat.com>
Date: Tue, 22 Nov 2016 08:46:15 +0000
-Subject: [PATCH] Copy secure_boot flag in boot params across kexec reboot
+Subject: [PATCH 15/32] 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
@@ -659,12 +660,13 @@ index d0a814a..3551bca 100644
ei->efi_systab = current_ei->efi_systab;
ei->efi_systab_hi = current_ei->efi_systab_hi;
--
-2.7.5
+2.7.4
-From 421f4933387c7663b99d63624bdc23d4037e9c26 Mon Sep 17 00:00:00 2001
+From 08a3467acbc28bb469d1eebd0f5fd40b944d984a Mon Sep 17 00:00:00 2001
From: "Lee, Chun-Yi" <joeyli.kernel@gmail.com>
Date: Wed, 23 Nov 2016 13:49:19 +0000
-Subject: [PATCH 16/32] kexec_file: Disable at runtime if securelevel has been set
+Subject: [PATCH 16/32] kexec_file: Disable at runtime if securelevel has been
+ set
When KEXEC_VERIFY_SIG is not enabled, kernel should not loads image
through kexec_file systemcall if securelevel has been set.
@@ -680,7 +682,7 @@ Signed-off-by: David Howells <dhowells@redhat.com>
1 file changed, 6 insertions(+)
diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c
-index b118735..f6937ee 100644
+index b56a558..003cade 100644
--- a/kernel/kexec_file.c
+++ b/kernel/kexec_file.c
@@ -268,6 +268,12 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd,
@@ -697,9 +699,9 @@ index b118735..f6937ee 100644
if (flags != (flags & KEXEC_FILE_FLAGS))
return -EINVAL;
--
-2.7.5
+2.7.4
-From 0376070dd24c4226e047cf5ab8d68c8341b8d521 Mon Sep 17 00:00:00 2001
+From 925fd10d7a99a6f999dde76daf2b1ef1238b251a Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@fedoraproject.org>
Date: Tue, 22 Nov 2016 08:46:15 +0000
Subject: [PATCH 17/32] hibernate: Disable when the kernel is locked down
@@ -716,10 +718,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
-index a8b978c..50cca5d 100644
+index 86385af..1629798 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
-@@ -70,7 +70,7 @@ static const struct platform_hibernation_ops *hibernation_ops;
+@@ -67,7 +67,7 @@ static const struct platform_hibernation_ops *hibernation_ops;
bool hibernation_available(void)
{
@@ -729,12 +731,12 @@ index a8b978c..50cca5d 100644
/**
--
-2.7.5
+2.7.4
-From fff7953fd653f695d0a43872726086637cad224b Mon Sep 17 00:00:00 2001
+From b14fb5fcd60c84a09a15bd7ec974b6fbce68335c Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg59@srcf.ucam.org>
Date: Wed, 23 Nov 2016 13:28:17 +0000
-Subject: [PATCH] uswsusp: Disable when the kernel is locked down
+Subject: [PATCH 18/32] 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
@@ -761,12 +763,13 @@ index 22df9f7..e4b926d 100644
if (!atomic_add_unless(&snapshot_device_available, -1, 0)) {
--
-2.7.5
+2.7.4
-From a4cb6a7d28d27aa8166b7e0d5f75fe16f2f18ac8 Mon Sep 17 00:00:00 2001
+From d8167273e7562e5aa866d2b65e25bb1962de972c Mon Sep 17 00:00:00 2001
From: Matthew Garrett <matthew.garrett@nebula.com>
Date: Tue, 22 Nov 2016 08:46:15 +0000
-Subject: [PATCH 19/32] PCI: Lock down BAR access when the kernel is locked down
+Subject: [PATCH 19/32] 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,
@@ -783,10 +786,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
3 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
-index 7ac258f..7d29b03 100644
+index 0666287..b10992c 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
-@@ -727,6 +727,9 @@ static ssize_t pci_write_config(struct file *filp, struct kobject *kobj,
+@@ -718,6 +718,9 @@ static ssize_t pci_write_config(struct file *filp, struct kobject *kobj,
loff_t init_off = off;
u8 *data = (u8 *) buf;
@@ -796,17 +799,17 @@ index 7ac258f..7d29b03 100644
if (off > dev->cfg_size)
return 0;
if (off + count > dev->cfg_size) {
-@@ -1022,6 +1025,9 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
- resource_size_t start, end;
- int i;
+@@ -1009,6 +1012,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())
+ return -EPERM;
+
- for (i = 0; i < PCI_ROM_RESOURCE; i++)
- if (res == &pdev->resource[i])
- break;
-@@ -1121,6 +1127,9 @@ static ssize_t pci_write_resource_io(struct file *filp, struct kobject *kobj,
+ if (res->flags & IORESOURCE_MEM && iomem_is_exclusive(res->start))
+ return -EINVAL;
+
+@@ -1108,6 +1114,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)
{
@@ -817,7 +820,7 @@ index 7ac258f..7d29b03 100644
}
diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
-index dc8912e..e2c5eff 100644
+index f82710a..139d6f0 100644
--- a/drivers/pci/proc.c
+++ b/drivers/pci/proc.c
@@ -116,6 +116,9 @@ static ssize_t proc_bus_pci_write(struct file *file, const char __user *buf,
@@ -842,13 +845,13 @@ index dc8912e..e2c5eff 100644
ret = pci_domain_nr(dev->bus);
@@ -233,7 +239,7 @@ 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;
+ int i, ret, write_combine = 0, res_bit = IORESOURCE_MEM;
- if (!capable(CAP_SYS_RAWIO))
+ if (!capable(CAP_SYS_RAWIO) || kernel_is_locked_down())
return -EPERM;
- if (fpriv->mmap_state == pci_mmap_io)
+ if (fpriv->mmap_state == pci_mmap_io) {
diff --git a/drivers/pci/syscall.c b/drivers/pci/syscall.c
index 9bf993e..c095247 100644
--- a/drivers/pci/syscall.c
@@ -863,12 +866,13 @@ index 9bf993e..c095247 100644
dev = pci_get_bus_and_slot(bus, dfn);
--
-2.7.5
+2.7.4
-From 4f9b39483a30ae4bd6e9c90caaf3a0466161d024 Mon Sep 17 00:00:00 2001
+From 169d13e0c5240ac6aad13aace5ecbdb3de2cfada Mon Sep 17 00:00:00 2001
From: Matthew Garrett <matthew.garrett@nebula.com>
Date: Tue, 22 Nov 2016 08:46:16 +0000
-Subject: [PATCH 20/32] x86: Lock down IO port access when the kernel is locked down
+Subject: [PATCH 20/32] 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
@@ -886,10 +890,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
-index 9c3cf09..4a613fe 100644
+index b01bc8517..4ccaace 100644
--- a/arch/x86/kernel/ioport.c
+++ b/arch/x86/kernel/ioport.c
-@@ -30,7 +30,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
+@@ -29,7 +29,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
if ((from + num <= from) || (from + num > IO_BITMAP_BITS))
return -EINVAL;
@@ -898,7 +902,7 @@ index 9c3cf09..4a613fe 100644
return -EPERM;
/*
-@@ -120,7 +120,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
+@@ -113,7 +113,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
return -EINVAL;
/* Trying to gain more privileges? */
if (level > old) {
@@ -908,10 +912,10 @@ index 9c3cf09..4a613fe 100644
}
regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) |
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
-index a97b22f..8705f8f 100644
+index f814404..9afebb6 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
-@@ -768,6 +768,8 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig)
+@@ -741,6 +741,8 @@ static loff_t memory_lseek(struct file *file, loff_t offset, int orig)
static int open_port(struct inode *inode, struct file *filp)
{
@@ -921,9 +925,9 @@ index a97b22f..8705f8f 100644
}
--
-2.7.5
+2.7.4
-From b746ba587c937240794cd7006c15a0fb3b2f8128 Mon Sep 17 00:00:00 2001
+From efd24f7e9af624b62f39efce4f60b31f0ca643d8 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <matthew.garrett@nebula.com>
Date: Tue, 22 Nov 2016 08:46:17 +0000
Subject: [PATCH 21/32] x86: Restrict MSR access when the kernel is locked down
@@ -965,9 +969,9 @@ index ef68880..fbcce02 100644
err = -EFAULT;
break;
--
-2.7.5
+2.7.4
-From 5aff4c16ee0a6441b1abbf6e80a5da9cf2007469 Mon Sep 17 00:00:00 2001
+From 62ebdffbcb0726b98562e9f1173a6d5967755764 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <matthew.garrett@nebula.com>
Date: Tue, 22 Nov 2016 08:46:16 +0000
Subject: [PATCH 22/32] asus-wmi: Restrict debugfs interface when the kernel is
@@ -986,10 +990,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
1 file changed, 9 insertions(+)
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
-index 8fe5890..feef250 100644
+index 43cb680..9be3e08 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
-@@ -1900,6 +1900,9 @@ static int show_dsts(struct seq_file *m, void *data)
+@@ -1898,6 +1898,9 @@ static int show_dsts(struct seq_file *m, void *data)
int err;
u32 retval = -1;
@@ -999,7 +1003,7 @@ index 8fe5890..feef250 100644
err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval);
if (err < 0)
-@@ -1916,6 +1919,9 @@ static int show_devs(struct seq_file *m, void *data)
+@@ -1914,6 +1917,9 @@ static int show_devs(struct seq_file *m, void *data)
int err;
u32 retval = -1;
@@ -1009,7 +1013,7 @@ index 8fe5890..feef250 100644
err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param,
&retval);
-@@ -1940,6 +1946,9 @@ static int show_call(struct seq_file *m, void *data)
+@@ -1938,6 +1944,9 @@ static int show_call(struct seq_file *m, void *data)
union acpi_object *obj;
acpi_status status;
@@ -1020,13 +1024,13 @@ index 8fe5890..feef250 100644
1, asus->debug.method_id,
&input, &output);
--
-2.7.5
+2.7.4
-From f0b27fdb42b57c2044ea3cf49371f786acc7b58e Mon Sep 17 00:00:00 2001
+From 31f493d03dde1854fa9e540f87a751fbeeb41cb9 Mon Sep 17 00:00:00 2001
From: Matthew Garrett <matthew.garrett@nebula.com>
Date: Tue, 22 Nov 2016 08:46:16 +0000
-Subject: [PATCH 23/32] ACPI: Limit access to custom_method when the kernel is locked
- down
+Subject: [PATCH 23/32] 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.
@@ -1053,13 +1057,13 @@ index c68e724..e4d721c 100644
/* parse the table header to get the table length */
if (count <= sizeof(struct acpi_table_header))
--
-2.7.5
+2.7.4
-From d67f882220ae3d969b496ad93fcbbcd3b09288cd Mon Sep 17 00:00:00 2001
+From 1dec5dc62c78f78b9efe44aac3d6119d97b67017 Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@redhat.com>
Date: Tue, 22 Nov 2016 08:46:16 +0000
-Subject: [PATCH 24/32] acpi: Ignore acpi_rsdp kernel param when the kernel has been
- locked down
+Subject: [PATCH 24/32] 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 circumvent any restrictions imposed on
@@ -1085,13 +1089,13 @@ index db78d35..d4d4ba3 100644
#endif
--
-2.7.5
+2.7.4
-From 15b10045321ac2af988918726a461178237d2d24 Mon Sep 17 00:00:00 2001
+From 96eaf04100d7365d93f898013175351c7d2702a6 Mon Sep 17 00:00:00 2001
From: Linn Crosetto <linn@hpe.com>
Date: Wed, 23 Nov 2016 13:32:27 +0000
-Subject: [PATCH 25/32] acpi: Disable ACPI table override if the kernel is locked
- down
+Subject: [PATCH 25/32] acpi: Disable ACPI table override if the kernel is
+ locked down
From the kernel documentation (initrd_table_override.txt):
@@ -1126,13 +1130,13 @@ index 2604189..601096d 100644
memblock_find_in_range(0, ACPI_TABLE_UPGRADE_MAX_PHYS,
all_tables_size, PAGE_SIZE);
--
-2.7.5
+2.7.4
-From dec3a108f63021d82b132847a02e8496f613ac6f Mon Sep 17 00:00:00 2001
+From 521979b819b853f7578ba8edef8b33bc2077026d Mon Sep 17 00:00:00 2001
From: Linn Crosetto <linn@hpe.com>
Date: Wed, 23 Nov 2016 13:39:41 +0000
-Subject: [PATCH 26/32] acpi: Disable APEI error injection if the kernel is locked
- down
+Subject: [PATCH 26/32] 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
@@ -1170,9 +1174,9 @@ index ec50c32..e082718 100644
if (flags && (flags &
~(SETWA_FLAGS_APICID|SETWA_FLAGS_MEM|SETWA_FLAGS_PCIE_SBDF)))
--
-2.7.5
+2.7.4
-From dcc51d5b69c23c3f955b332d959f13cb61b4500c Mon Sep 17 00:00:00 2001
+From fe597dad1cba83345d62c4079c0d8861c426698c Mon Sep 17 00:00:00 2001
From: Matthew Garrett <mjg59@coreos.com>
Date: Wed, 23 Nov 2016 13:41:23 +0000
Subject: [PATCH 27/32] Enable cold boot attack mitigation
@@ -1228,13 +1232,13 @@ index 801c7a1..ef9409b 100644
* If the boot loader gave us a value for secure_boot then we use that,
* otherwise we ask the BIOS.
--
-2.7.5
+2.7.4
-From 6cff44c809671affbf65ac2e0d0c2b0a0f705756 Mon Sep 17 00:00:00 2001
+From 04fac895731801bc6cb26a6061f1c353c80a866c Mon Sep 17 00:00:00 2001
From: "Lee, Chun-Yi" <jlee@suse.com>
Date: Wed, 23 Nov 2016 13:52:16 +0000
-Subject: [PATCH 28/32] bpf: Restrict kernel image access functions when the kernel
- is locked down
+Subject: [PATCH 28/32] 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
@@ -1285,9 +1289,9 @@ index cee9802..7fde851 100644
for (i = 0; i < fmt_size; i++) {
if ((!isprint(fmt[i]) && !isspace(fmt[i])) || !isascii(fmt[i]))
--
-2.7.5
+2.7.4
-From 9c7dd48309e4d8e18a9979f6c0cbf9c7b8bf4ea1 Mon Sep 17 00:00:00 2001
+From 707d0e14c2c0d6c3139ff4bcb16ee22c462b4304 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Tue, 22 Nov 2016 10:10:34 +0000
Subject: [PATCH 29/32] scsi: Lock down the eata driver
@@ -1313,7 +1317,7 @@ cc: linux-scsi@vger.kernel.org
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c
-index 227dd2c..5c036d1 100644
+index 227dd2c..5c036d10 100644
--- a/drivers/scsi/eata.c
+++ b/drivers/scsi/eata.c
@@ -1552,8 +1552,13 @@ static int eata2x_detect(struct scsi_host_template *tpnt)
@@ -1332,12 +1336,13 @@ index 227dd2c..5c036d1 100644
#if defined(MODULE)
/* io_port could have been modified when loading as a module */
--
-2.7.5
+2.7.4
-From 5e2b99e099ba52131c7a87695b294961a0bf54f1 Mon Sep 17 00:00:00 2001
+From 07e05e0b7d806a05eba55092630bb75a92311344 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Fri, 25 Nov 2016 14:37:45 +0000
-Subject: [PATCH 30/32] Prohibit PCMCIA CIS storage when the kernel is locked down
+Subject: [PATCH 30/32] Prohibit PCMCIA CIS storage when the kernel is locked
+ down
Prohibit replacement of the PCMCIA Card Information Structure when the
kernel is locked down.
@@ -1364,9 +1369,9 @@ index 55ef7d1..193e4f7 100644
if (off)
--
-2.7.5
+2.7.4
-From 6d6e052a6c2df0a7a492439efe1ac6d62498e0d4 Mon Sep 17 00:00:00 2001
+From cf1e877adbe35c5f72a9d85570b494aa3f35be6a Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Wed, 7 Dec 2016 10:28:39 +0000
Subject: [PATCH 31/32] Lock down TIOCSSERIAL
@@ -1383,10 +1388,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
1 file changed, 6 insertions(+)
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
-index 3fe5689..4181b00 100644
+index 9939c3d..7c040e2 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
-@@ -821,6 +821,12 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port,
+@@ -820,6 +820,12 @@ static int uart_set_info(struct tty_struct *tty, struct tty_port *port,
new_flags = new_info->flags;
old_custom_divisor = uport->custom_divisor;
@@ -1400,5 +1405,5 @@ index 3fe5689..4181b00 100644
retval = -EPERM;
if (change_irq || change_port ||
--
-2.7.5
+2.7.4
diff --git a/filter-aarch64.sh b/filter-aarch64.sh
index 70d6338b0..e94f282a2 100644
--- a/filter-aarch64.sh
+++ b/filter-aarch64.sh
@@ -13,4 +13,6 @@ driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds medi
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"
-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 vc4"
+drmdrvs="amd arm bridge ast exynos hisilicon i2c imx mgag200 meson msm nouveau panel radeon rockchip tegra tinydrm vc4"
+
+singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr"
diff --git a/filter-armv7hl.sh b/filter-armv7hl.sh
index 2141dfef4..db80ef62f 100644
--- a/filter-armv7hl.sh
+++ b/filter-armv7hl.sh
@@ -13,6 +13,6 @@ driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn media mem
ethdrvs="3com adaptec alteon altera amd atheros broadcom cadence chelsio cisco dec dlink emulex icplus mellanox micrel myricom natsemi neterion nvidia oki-semi packetengines qlogic rdc renesas sfc silan sis sun tehuti via wiznet xircom"
-drmdrvs="amd armada bridge ast exynos i2c imx mgag200 msm omapdrm panel nouveau radeon rockchip tegra tilcdc via"
+drmdrvs="amd armada bridge ast exynos etnaviv hisilicon i2c imx meson mgag200 msm omapdrm panel nouveau radeon rockchip sti tegra tilcdc tinydrm via vc4"
-singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr vc4"
+singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs megaraid pmcraid qedi qla1280 9pnet_rdma rpcrdma nvmet-rdma nvme-rdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr"
diff --git a/filter-i686.sh b/filter-i686.sh
index d4770e669..46db4d88c 100644
--- a/filter-i686.sh
+++ b/filter-i686.sh
@@ -11,4 +11,4 @@
driverdirs="atm auxdisplay bcma bluetooth firewire fmc infiniband isdn leds media memstick mfd mmc mtd mwave 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 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 target_core_user sbp_target cxgbit iw_cxgb3 iw_cxgb4 cxgb3i cxgb3i cxgb3i_ddp cxgb4i chcr parport_serial"
+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 parport_serial"
diff --git a/genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch b/genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch
deleted file mode 100644
index ab048d1c9..000000000
--- a/genetlink-fix-counting-regression-on-ctrl_dumpfamily.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From: Stanislaw Gruszka <sgruszka@redhat.com>
-Date: 2017-03-22 15:08:33
-Subject: [PATCH 4.11] genetlink: fix counting regression on ctrl_dumpfamily()
-
-Commit 2ae0f17df1cd ("genetlink: use idr to track families") replaced
-
- if (++n < fams_to_skip)
- continue;
-into:
-
- if (n++ < fams_to_skip)
- continue;
-
-This subtle change cause that on retry ctrl_dumpfamily() call we omit
-one family that failed to do ctrl_fill_info() on previous call, because
-cb->args[0] = n number counts also family that failed to do
-ctrl_fill_info().
-
-Patch fixes the problem and avoid confusion in the future just decrease
-n counter when ctrl_fill_info() fail.
-
-User visible problem caused by this bug is failure to get access to
-some genetlink family i.e. nl80211. However problem is reproducible
-only if number of registered genetlink families is big enough to
-cause second call of ctrl_dumpfamily().
-
-Cc: Xose Vazquez Perez <xose.vazquez@gmail.com>
-Cc: Larry Finger <Larry.Finger@lwfinger.net>
-Cc: Johannes Berg <johannes@sipsolutions.net>
-Fixes: 2ae0f17df1cd ("genetlink: use idr to track families")
-Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
----
-Dave, please also target this for 4.10+ -stable.
-
- net/netlink/genetlink.c | 4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
-index fb6e10f..92e0981 100644
---- a/net/netlink/genetlink.c
-+++ b/net/netlink/genetlink.c
-@@ -783,8 +783,10 @@ static int ctrl_dumpfamily(struct sk_buff *skb, struct netlink_callback *cb)
-
- if (ctrl_fill_info(rt, NETLINK_CB(cb->skb).portid,
- cb->nlh->nlmsg_seq, NLM_F_MULTI,
-- skb, CTRL_CMD_NEWFAMILY) < 0)
-+ skb, CTRL_CMD_NEWFAMILY) < 0) {
-+ n--;
- break;
-+ }
- }
-
- cb->args[0] = n;
---
-1.7.1
diff --git a/input-rmi4-remove-the-need-for-artifical-IRQ.patch b/input-rmi4-remove-the-need-for-artifical-IRQ.patch
new file mode 100644
index 000000000..01b1a4660
--- /dev/null
+++ b/input-rmi4-remove-the-need-for-artifical-IRQ.patch
@@ -0,0 +1,331 @@
+From 47c84357d95eccd77c1320b4bca74bbec649ef3c Mon Sep 17 00:00:00 2001
+From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
+Date: Mon, 3 Apr 2017 18:18:21 +0200
+Subject: [PATCH] Input: rmi4 - remove the need for artificial IRQ in case of
+ HID
+
+The IRQ from rmi4 may interfere with the one we currently use on i2c-hid.
+Given that there is already a need for an external API from rmi4 to
+forward the attention data, we can, in this particular case rely on a
+separate workqueue to prevent cursor jumps.
+
+Reported-by: Cameron Gutman <aicommander@gmail.com>
+Reported-by: Thorsten Leemhuis <linux@leemhuis.info>
+Reported-by: Jason Ekstrand <jason@jlekstrand.net>
+Tested-by: Andrew Duggan <aduggan@synaptics.com>
+Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
+Signed-off-by: Lyude <lyude@redhat.com>
+---
+ drivers/hid/hid-rmi.c | 64 ---------------------
+ drivers/input/rmi4/rmi_driver.c | 122 ++++++++++++++++++++++++----------------
+ include/linux/rmi.h | 1 +
+ 3 files changed, 75 insertions(+), 112 deletions(-)
+
+diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
+index 5b40c26..4aa882c 100644
+--- a/drivers/hid/hid-rmi.c
++++ b/drivers/hid/hid-rmi.c
+@@ -316,19 +316,12 @@ static int rmi_input_event(struct hid_device *hdev, u8 *data, int size)
+ {
+ struct rmi_data *hdata = hid_get_drvdata(hdev);
+ struct rmi_device *rmi_dev = hdata->xport.rmi_dev;
+- unsigned long flags;
+
+ if (!(test_bit(RMI_STARTED, &hdata->flags)))
+ return 0;
+
+- local_irq_save(flags);
+-
+ rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2);
+
+- generic_handle_irq(hdata->rmi_irq);
+-
+- local_irq_restore(flags);
+-
+ return 1;
+ }
+
+@@ -556,56 +549,6 @@ static const struct rmi_transport_ops hid_rmi_ops = {
+ .reset = rmi_hid_reset,
+ };
+
+-static void rmi_irq_teardown(void *data)
+-{
+- struct rmi_data *hdata = data;
+- struct irq_domain *domain = hdata->domain;
+-
+- if (!domain)
+- return;
+-
+- irq_dispose_mapping(irq_find_mapping(domain, 0));
+-
+- irq_domain_remove(domain);
+- hdata->domain = NULL;
+- hdata->rmi_irq = 0;
+-}
+-
+-static int rmi_irq_map(struct irq_domain *h, unsigned int virq,
+- irq_hw_number_t hw_irq_num)
+-{
+- irq_set_chip_and_handler(virq, &dummy_irq_chip, handle_simple_irq);
+-
+- return 0;
+-}
+-
+-static const struct irq_domain_ops rmi_irq_ops = {
+- .map = rmi_irq_map,
+-};
+-
+-static int rmi_setup_irq_domain(struct hid_device *hdev)
+-{
+- struct rmi_data *hdata = hid_get_drvdata(hdev);
+- int ret;
+-
+- hdata->domain = irq_domain_create_linear(hdev->dev.fwnode, 1,
+- &rmi_irq_ops, hdata);
+- if (!hdata->domain)
+- return -ENOMEM;
+-
+- ret = devm_add_action_or_reset(&hdev->dev, &rmi_irq_teardown, hdata);
+- if (ret)
+- return ret;
+-
+- hdata->rmi_irq = irq_create_mapping(hdata->domain, 0);
+- if (hdata->rmi_irq <= 0) {
+- hid_err(hdev, "Can't allocate an IRQ\n");
+- return hdata->rmi_irq < 0 ? hdata->rmi_irq : -ENXIO;
+- }
+-
+- return 0;
+-}
+-
+ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id)
+ {
+ struct rmi_data *data = NULL;
+@@ -677,18 +620,11 @@ static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id)
+
+ mutex_init(&data->page_mutex);
+
+- ret = rmi_setup_irq_domain(hdev);
+- if (ret) {
+- hid_err(hdev, "failed to allocate IRQ domain\n");
+- return ret;
+- }
+-
+ if (data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS)
+ rmi_hid_pdata.f30_data.disable = true;
+
+ data->xport.dev = hdev->dev.parent;
+ data->xport.pdata = rmi_hid_pdata;
+- data->xport.pdata.irq = data->rmi_irq;
+ data->xport.proto_name = "hid";
+ data->xport.ops = &hid_rmi_ops;
+
+diff --git a/drivers/input/rmi4/rmi_driver.c b/drivers/input/rmi4/rmi_driver.c
+index 4f2bb59..6d7da84 100644
+--- a/drivers/input/rmi4/rmi_driver.c
++++ b/drivers/input/rmi4/rmi_driver.c
+@@ -209,32 +209,46 @@ void rmi_set_attn_data(struct rmi_device *rmi_dev, unsigned long irq_status,
+ attn_data.data = fifo_data;
+
+ kfifo_put(&drvdata->attn_fifo, attn_data);
++
++ schedule_work(&drvdata->attn_work);
+ }
+ EXPORT_SYMBOL_GPL(rmi_set_attn_data);
+
+-static irqreturn_t rmi_irq_fn(int irq, void *dev_id)
++static void attn_callback(struct work_struct *work)
+ {
+- struct rmi_device *rmi_dev = dev_id;
+- struct rmi_driver_data *drvdata = dev_get_drvdata(&rmi_dev->dev);
++ struct rmi_driver_data *drvdata = container_of(work,
++ struct rmi_driver_data,
++ attn_work);
+ struct rmi4_attn_data attn_data = {0};
+ int ret, count;
+
+ count = kfifo_get(&drvdata->attn_fifo, &attn_data);
+- if (count) {
+- *(drvdata->irq_status) = attn_data.irq_status;
+- drvdata->attn_data = attn_data;
+- }
++ if (!count)
++ return;
+
+- ret = rmi_process_interrupt_requests(rmi_dev);
++ *(drvdata->irq_status) = attn_data.irq_status;
++ drvdata->attn_data = attn_data;
++
++ ret = rmi_process_interrupt_requests(drvdata->rmi_dev);
+ if (ret)
+- rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev,
++ rmi_dbg(RMI_DEBUG_CORE, &drvdata->rmi_dev->dev,
+ "Failed to process interrupt request: %d\n", ret);
+
+- if (count)
+- kfree(attn_data.data);
++ kfree(attn_data.data);
+
+ if (!kfifo_is_empty(&drvdata->attn_fifo))
+- return rmi_irq_fn(irq, dev_id);
++ schedule_work(&drvdata->attn_work);
++}
++
++static irqreturn_t rmi_irq_fn(int irq, void *dev_id)
++{
++ struct rmi_device *rmi_dev = dev_id;
++ int ret;
++
++ ret = rmi_process_interrupt_requests(rmi_dev);
++ if (ret)
++ rmi_dbg(RMI_DEBUG_CORE, &rmi_dev->dev,
++ "Failed to process interrupt request: %d\n", ret);
+
+ return IRQ_HANDLED;
+ }
+@@ -242,7 +256,6 @@ static irqreturn_t rmi_irq_fn(int irq, void *dev_id)
+ static int rmi_irq_init(struct rmi_device *rmi_dev)
+ {
+ struct rmi_device_platform_data *pdata = rmi_get_platform_data(rmi_dev);
+- struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
+ int irq_flags = irq_get_trigger_type(pdata->irq);
+ int ret;
+
+@@ -260,8 +273,6 @@ static int rmi_irq_init(struct rmi_device *rmi_dev)
+ return ret;
+ }
+
+- data->enabled = true;
+-
+ return 0;
+ }
+
+@@ -910,23 +921,27 @@ void rmi_enable_irq(struct rmi_device *rmi_dev, bool clear_wake)
+ if (data->enabled)
+ goto out;
+
+- enable_irq(irq);
+- data->enabled = true;
+- if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) {
+- retval = disable_irq_wake(irq);
+- if (retval)
+- dev_warn(&rmi_dev->dev,
+- "Failed to disable irq for wake: %d\n",
+- retval);
+- }
++ if (irq) {
++ enable_irq(irq);
++ data->enabled = true;
++ if (clear_wake && device_may_wakeup(rmi_dev->xport->dev)) {
++ retval = disable_irq_wake(irq);
++ if (retval)
++ dev_warn(&rmi_dev->dev,
++ "Failed to disable irq for wake: %d\n",
++ retval);
++ }
+
+- /*
+- * Call rmi_process_interrupt_requests() after enabling irq,
+- * otherwise we may lose interrupt on edge-triggered systems.
+- */
+- irq_flags = irq_get_trigger_type(pdata->irq);
+- if (irq_flags & IRQ_TYPE_EDGE_BOTH)
+- rmi_process_interrupt_requests(rmi_dev);
++ /*
++ * Call rmi_process_interrupt_requests() after enabling irq,
++ * otherwise we may lose interrupt on edge-triggered systems.
++ */
++ irq_flags = irq_get_trigger_type(pdata->irq);
++ if (irq_flags & IRQ_TYPE_EDGE_BOTH)
++ rmi_process_interrupt_requests(rmi_dev);
++ } else {
++ data->enabled = true;
++ }
+
+ out:
+ mutex_unlock(&data->enabled_mutex);
+@@ -946,20 +961,22 @@ void rmi_disable_irq(struct rmi_device *rmi_dev, bool enable_wake)
+ goto out;
+
+ data->enabled = false;
+- disable_irq(irq);
+- if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) {
+- retval = enable_irq_wake(irq);
+- if (retval)
+- dev_warn(&rmi_dev->dev,
+- "Failed to enable irq for wake: %d\n",
+- retval);
+- }
+-
+- /* make sure the fifo is clean */
+- while (!kfifo_is_empty(&data->attn_fifo)) {
+- count = kfifo_get(&data->attn_fifo, &attn_data);
+- if (count)
+- kfree(attn_data.data);
++ if (irq) {
++ disable_irq(irq);
++ if (enable_wake && device_may_wakeup(rmi_dev->xport->dev)) {
++ retval = enable_irq_wake(irq);
++ if (retval)
++ dev_warn(&rmi_dev->dev,
++ "Failed to enable irq for wake: %d\n",
++ retval);
++ }
++ } else {
++ /* make sure the fifo is clean */
++ while (!kfifo_is_empty(&data->attn_fifo)) {
++ count = kfifo_get(&data->attn_fifo, &attn_data);
++ if (count)
++ kfree(attn_data.data);
++ }
+ }
+
+ out:
+@@ -998,9 +1015,12 @@ EXPORT_SYMBOL_GPL(rmi_driver_resume);
+ static int rmi_driver_remove(struct device *dev)
+ {
+ struct rmi_device *rmi_dev = to_rmi_device(dev);
++ struct rmi_driver_data *data = dev_get_drvdata(&rmi_dev->dev);
+
+ rmi_disable_irq(rmi_dev, false);
+
++ cancel_work_sync(&data->attn_work);
++
+ rmi_f34_remove_sysfs(rmi_dev);
+ rmi_free_function_list(rmi_dev);
+
+@@ -1230,9 +1250,15 @@ static int rmi_driver_probe(struct device *dev)
+ }
+ }
+
+- retval = rmi_irq_init(rmi_dev);
+- if (retval < 0)
+- goto err_destroy_functions;
++ if (pdata->irq) {
++ retval = rmi_irq_init(rmi_dev);
++ if (retval < 0)
++ goto err_destroy_functions;
++ }
++
++ data->enabled = true;
++
++ INIT_WORK(&data->attn_work, attn_callback);
+
+ if (data->f01_container->dev.driver) {
+ /* Driver already bound, so enable ATTN now. */
+diff --git a/include/linux/rmi.h b/include/linux/rmi.h
+index 64125443..dc90178 100644
+--- a/include/linux/rmi.h
++++ b/include/linux/rmi.h
+@@ -364,6 +364,7 @@ struct rmi_driver_data {
+
+ struct rmi4_attn_data attn_data;
+ DECLARE_KFIFO(attn_fifo, struct rmi4_attn_data, 16);
++ struct work_struct attn_work;
+ };
+
+ int rmi_register_transport_device(struct rmi_transport_dev *xport);
+--
+2.9.4
+
diff --git a/kernel-aarch64-debug.config b/kernel-aarch64-debug.config
index 537b132c8..e57d02943 100644
--- a/kernel-aarch64-debug.config
+++ b/kernel-aarch64-debug.config
@@ -45,6 +45,7 @@ CONFIG_ACPI_ALS=m
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI=y
+CONFIG_ACPI_BGRT=y
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_CONFIGFS=m
CONFIG_ACPI_CONTAINER=y
@@ -138,6 +139,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -168,7 +171,7 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000
CONFIG_AIX_PARTITION=y
# CONFIG_AK09911 is not set
# CONFIG_AK8974 is not set
-# CONFIG_AK8975 is not set
+CONFIG_AK8975=m
# CONFIG_AL3320A is not set
CONFIG_ALI_FIR=m
CONFIG_ALIM1535_WDT=m
@@ -247,12 +250,14 @@ CONFIG_ARM64_ERRATUM_827319=y
CONFIG_ARM64_ERRATUM_832075=y
CONFIG_ARM64_ERRATUM_834220=y
CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_HW_AFDBM=y
CONFIG_ARM64_LSE_ATOMICS=y
CONFIG_ARM64_PAN=y
CONFIG_ARM64_PTDUMP_DEBUGFS=y
CONFIG_ARM64_PTDUMP=y
# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
+# CONFIG_ARM64_RELOC_TEST is not set
CONFIG_ARM64_SW_TTBR0_PAN=y
CONFIG_ARM64_UAO=y
CONFIG_ARM64_VA_BITS=48
@@ -395,6 +400,7 @@ CONFIG_AUXDISPLAY=y
# CONFIG_AVERAGE is not set
CONFIG_AX25_DAMA_SLAVE=y
CONFIG_AX25=m
+CONFIG_AXP20X_ADC=m
CONFIG_AXP20X_POWER=m
CONFIG_AXP288_ADC=m
CONFIG_AXP288_CHARGER=m
@@ -424,6 +430,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
@@ -448,12 +455,14 @@ CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_MCAST=y
CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATTERY_AXP20X=m
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_DS2760 is not set
# 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_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -465,6 +474,7 @@ CONFIG_BAYCOM_SER_HDX=m
# CONFIG_BCACHE_DEBUG is not set
CONFIG_BCACHE=m
CONFIG_BCM2835_MBOX=y
+CONFIG_BCM2835_THERMAL=m
# CONFIG_BCM2835_VCHIQ is not set
CONFIG_BCM2835_WDT=m
CONFIG_BCM63XX_PHY=m
@@ -480,14 +490,17 @@ CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
CONFIG_BCMA_POSSIBLE=y
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_BCM_PDC_MBOX is not set
+# CONFIG_BCM_VIDEOCORE is not set
CONFIG_BE2ISCSI=m
# CONFIG_BE2NET_HWMON is not set
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BEFS_FS is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -510,7 +523,6 @@ CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -535,6 +547,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -640,6 +653,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -691,14 +705,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -713,6 +730,7 @@ CONFIG_CAN_SOFTING=m
CONFIG_CAN_SUN4I=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
# CONFIG_CAPI_EICON is not set
@@ -739,6 +757,7 @@ CONFIG_CC_STACKPROTECTOR_NONE=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -853,6 +872,7 @@ CONFIG_COMMON_CLK_HI3519=m
CONFIG_COMMON_CLK_HI3660=y
# CONFIG_COMMON_CLK_HI3798CV200 is not set
CONFIG_COMMON_CLK_HI6220=y
+CONFIG_COMMON_CLK_HI655X=m
CONFIG_COMMON_CLK_MAX77686=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_QCOM=y
@@ -956,9 +976,11 @@ CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
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=y
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
@@ -966,8 +988,9 @@ CONFIG_CRYPTO_DEV_MARVELL_CESA=m
CONFIG_CRYPTO_DEV_MV_CESA=m
CONFIG_CRYPTO_DEV_QCE=m
CONFIG_CRYPTO_DEV_ROCKCHIP=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1122,7 +1145,7 @@ CONFIG_DEBUG_WX=y
CONFIG_DEFAULT_CFQ=y
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
# CONFIG_DEFXX is not set
CONFIG_DETECT_HUNG_TASK=y
@@ -1172,6 +1195,7 @@ CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
CONFIG_DMIID=y
+CONFIG_DM_INTEGRITY=m
CONFIG_DMI_SYSFS=y
CONFIG_DMI=y
CONFIG_DM_LOG_USERSPACE=m
@@ -1217,8 +1241,11 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
CONFIG_DRM_DUMB_VGA_DAC=m
+CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+CONFIG_DRM_DW_HDMI=m
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
CONFIG_DRM_HISI_HIBMC=m
@@ -1234,6 +1261,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_LVDS_ENCODER=m
CONFIG_DRM=m
CONFIG_DRM_MALI_DISPLAY=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
@@ -1250,20 +1279,24 @@ CONFIG_DRM_MSM=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NXP_PTN3460=m
-CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
+CONFIG_DRM_PANEL_LVDS=m
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
CONFIG_DRM_PARADE_PS8622=m
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
CONFIG_DRM_ROCKCHIP=m
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
@@ -1387,15 +1420,17 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_MV64X60=m
+CONFIG_EDAC_THUNDERX=m
CONFIG_EDAC_XGENE=m
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1453,7 +1488,6 @@ CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXTCON_ADC_JACK=m
CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
-CONFIG_EXTCON_INTEL_INT3496=m
CONFIG_EXTCON=m
# CONFIG_EXTCON_MAX3355 is not set
CONFIG_EXTCON_QCOM_SPMI_MISC=m
@@ -1669,6 +1703,7 @@ CONFIG_GPIO_AXP209=m
CONFIG_GPIO_DEVRES=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_GRGPIO is not set
@@ -1705,6 +1740,7 @@ CONFIG_GPIO_WATCHDOG=m
CONFIG_GPIO_XGENE_SB=m
CONFIG_GPIO_XGENE=y
# CONFIG_GPIO_XILINX is not set
+CONFIG_GPIO_XLP=m
CONFIG_GREENASIA_FF=y
# CONFIG_GREYBUS is not set
# CONFIG_GS_FPGABOOT is not set
@@ -1716,6 +1752,7 @@ CONFIG_HAPPYMEAL=m
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_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1728,6 +1765,7 @@ CONFIG_HI6220_MBOX=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1771,6 +1809,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1792,12 +1831,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1952,6 +1993,7 @@ CONFIG_I2C_HID=m
CONFIG_I2C_MESON=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
CONFIG_I2C_MUX_PCA9541=m
@@ -1993,6 +2035,7 @@ CONFIG_I2C_VERSATILE=m
CONFIG_I2C_VIPERBOARD=m
CONFIG_I2C_XGENE_SLIMPRO=m
# CONFIG_I2C_XILINX is not set
+CONFIG_I2C_XLP9XX=m
CONFIG_I2C=y
# CONFIG_I2O is not set
# CONFIG_I40E_DCB is not set
@@ -2012,6 +2055,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2029,6 +2074,7 @@ CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
# CONFIG_IIO_HRTIMER_TRIGGER is not set
@@ -2155,7 +2201,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2189,6 +2234,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2371,6 +2417,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2471,6 +2518,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2486,7 +2535,7 @@ CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_ZHENHUA=m
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
-# CONFIG_K3_DMA is not set
+CONFIG_K3_DMA=m
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS=y
CONFIG_KARMA_PARTITION=y
@@ -2561,7 +2610,9 @@ CONFIG_KSZ884X_PCI=m
CONFIG_KUSER_HELPERS=y
CONFIG_KVM=y
CONFIG_KXCJK1013=m
-# CONFIG_KXSD9 is not set
+CONFIG_KXSD9_I2C=m
+CONFIG_KXSD9=m
+CONFIG_KXSD9_SPI=m
CONFIG_L2TP_DEBUGFS=m
CONFIG_L2TP_ETH=m
CONFIG_L2TP_IP=m
@@ -2596,7 +2647,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_GPIO_REGISTER=y
# CONFIG_LEDS_IS31FL319X is not set
@@ -2671,7 +2721,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2684,6 +2733,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2712,6 +2762,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2750,8 +2802,10 @@ CONFIG_MANTIS_CORE=m
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
@@ -2760,6 +2814,7 @@ CONFIG_MAX30100=m
# CONFIG_MAX63XX_WATCHDOG is not set
CONFIG_MAX77620_THERMAL=m
CONFIG_MAX77620_WATCHDOG=m
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2802,6 +2857,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2860,7 +2916,7 @@ CONFIG_MFD_AXP20X_RSB=m
CONFIG_MFD_AXP20X=y
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -2872,7 +2928,6 @@ CONFIG_MFD_CROS_EC_SPI=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
CONFIG_MFD_HI655X_PMIC=m
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -2920,6 +2975,7 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2970,6 +3026,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2996,6 +3053,7 @@ CONFIG_MMC_BCM2835=m
CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_CAVIUM_THUNDERX=m
CONFIG_MMC_CB710=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_DW_EXYNOS is not set
@@ -3026,6 +3084,7 @@ CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_SDHCI_PXAV3=m
CONFIG_MMC_SDHCI_TEGRA=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_SPI=m
CONFIG_MMC_SUNXI=m
@@ -3047,7 +3106,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3079,8 +3137,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3208,6 +3267,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3251,11 +3311,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3378,6 +3442,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3473,6 +3538,7 @@ CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETXEN_NIC=m
CONFIG_NET_XGENE=m
+CONFIG_NET_XGENE_V2=m
CONFIG_NET=y
CONFIG_NEW_LEDS=y
CONFIG_NFC_DIGITAL=m
@@ -3689,6 +3755,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=256
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
# CONFIG_NTB is not set
@@ -3838,19 +3905,24 @@ CONFIG_PCIE_ARMADA_8K=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW_HOST=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_QCOM=y
CONFIG_PCIE_ROCKCHIP=y
+# CONFIG_PCI_FTPCI100 is not set
CONFIG_PCI_HERMES=m
CONFIG_PCI_HISI=y
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCI_HOST_THUNDER_ECAM=y
CONFIG_PCI_HOST_THUNDER_PEM=y
CONFIG_PCI_IOV=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MVEBU=y
CONFIG_PCI_PASID=y
@@ -3858,6 +3930,7 @@ CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI_TEGRA=y
CONFIG_PCI_XGENE_MSI=y
CONFIG_PCI_XGENE=y
@@ -3897,6 +3970,8 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_PHY_QCOM_APQ8064_SATA is not set
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
+CONFIG_PHY_QCOM_QMP=m
+CONFIG_PHY_QCOM_QUSB2=m
# CONFIG_PHY_QCOM_UFS is not set
CONFIG_PHY_QCOM_USB_HSIC=m
CONFIG_PHY_QCOM_USB_HS=m
@@ -3942,7 +4017,6 @@ CONFIG_PINCTRL_QDF2XXX=y
CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SUNRISEPOINT is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PKCS7_MESSAGE_PARSER=y
@@ -4067,12 +4141,13 @@ CONFIG_QCOM_FALKOR_ERRATUM_1009=y
CONFIG_QCOM_GSBI=y
CONFIG_QCOM_HIDMA=m
CONFIG_QCOM_HIDMA_MGMT=m
+CONFIG_QCOM_IOMMU=y
CONFIG_QCOM_IRQ_COMBINER=y
CONFIG_QCOM_L2_PMU=y
+CONFIG_QCOM_L3_PMU=y
CONFIG_QCOM_Q6V5_PIL=m
CONFIG_QCOM_QDF2400_ERRATUM_0065=y
CONFIG_QCOM_QFPROM=m
-CONFIG_QCOM_SMD=m
CONFIG_QCOM_SMD_RPM=m
CONFIG_QCOM_SMEM=m
CONFIG_QCOM_SMP2P=m
@@ -4134,10 +4209,12 @@ CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RAW_DRIVER=y
@@ -4185,7 +4262,6 @@ CONFIG_REGULATOR_ACT8865=m
# CONFIG_REGULATOR_AD5398 is not set
# CONFIG_REGULATOR_ANATOP is not set
CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DA9210 is not set
# CONFIG_REGULATOR_DA9211 is not set
# CONFIG_REGULATOR_DEBUG is not set
@@ -4223,8 +4299,10 @@ CONFIG_REGULATOR_RK808=m
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65132 is not set
# CONFIG_REGULATOR_TPS6524X is not set
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VCTRL=m
CONFIG_REGULATOR_VEXPRESS=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR=y
@@ -4259,12 +4337,12 @@ CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
CONFIG_RMI4_SMB=m
CONFIG_RMI4_SPI=m
-CONFIG_ROCKCHIP_ANALOGIX_DP=m
-# CONFIG_ROCKCHIP_CDN_DP is not set
-CONFIG_ROCKCHIP_DW_HDMI=m
-CONFIG_ROCKCHIP_DW_MIPI_DSI=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_ROCKCHIP_EFUSE=m
-CONFIG_ROCKCHIP_INNO_HDMI=m
+CONFIG_ROCKCHIP_INNO_HDMI=y
CONFIG_ROCKCHIP_IODOMAIN=m
CONFIG_ROCKCHIP_IOMMU=y
CONFIG_ROCKCHIP_MBOX=y
@@ -4276,6 +4354,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPMSG=m
CONFIG_RPMSG_QCOM_SMD=m
CONFIG_RPR0521=m
@@ -4416,6 +4495,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4623,6 +4703,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCPI=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4910,7 +4991,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4926,7 +5007,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4961,6 +5044,7 @@ CONFIG_SND_HDA_TEGRA=m
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4968,8 +5052,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
# CONFIG_SND_KIRKWOOD_SOC is not set
@@ -5015,6 +5099,8 @@ CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -5030,6 +5116,7 @@ CONFIG_SND_SOC_APQ8016_SBC=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5043,7 +5130,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -5064,10 +5153,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -5164,13 +5255,14 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
# CONFIG_SOC_CAMERA is not set
+CONFIG_SOC_TEGRA_FLOWCTRL=y
# CONFIG_SOC_TI is not set
# CONFIG_SOC_ZTE is not set
CONFIG_SOFT_WATCHDOG=m
@@ -5224,6 +5316,7 @@ CONFIG_SPI_THUNDERX=m
# CONFIG_SPI_TOPCLIFF_PCH is not set
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
+CONFIG_SPI_XLP=m
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
CONFIG_SPMI=m
@@ -5237,6 +5330,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SRAM=y
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5272,14 +5366,11 @@ CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
CONFIG_STUB_CLK_HI6220=y
# CONFIG_SUN4I_EMAC is not set
+CONFIG_SUN4I_GPADC=m
CONFIG_SUN50I_A64_CCU=y
-# CONFIG_SUN5I_CCU is not set
-# CONFIG_SUN6I_A31_CCU is not set
-# CONFIG_SUN8I_A23_CCU is not set
-# CONFIG_SUN8I_A33_CCU is not set
-# CONFIG_SUN8I_H3_CCU is not set
+CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_R_CCU=y
# CONFIG_SUN8I_V3S_CCU is not set
-# CONFIG_SUN9I_A80_CCU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5310,6 +5401,7 @@ CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5333,6 +5425,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -5373,6 +5466,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
CONFIG_TCS3472=m
+# CONFIG_TEE is not set
CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
CONFIG_TEGRA210_ADMA=y
@@ -5413,6 +5507,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5441,6 +5536,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5450,7 +5546,7 @@ CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_SCI_PROTOCOL=m
-# CONFIG_TI_ST is not set
+CONFIG_TI_ST=m
# CONFIG_TI_SYSCON_RESET is not set
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set
@@ -5516,6 +5612,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5558,11 +5655,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5654,6 +5756,7 @@ CONFIG_USB_DWC3_PCI=m
CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_EG20T is not set
+CONFIG_USB_EHCI_HCD_ORION=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MSM=m
@@ -5820,6 +5923,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5832,6 +5936,7 @@ CONFIG_USB_PWC=m
CONFIG_USB_QCOM_8X16_PHY=m
# CONFIG_USB_R8A66597_HCD is not set
# 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_RTL8150=m
@@ -6014,6 +6119,7 @@ CONFIG_VIA_VELOCITY=m
CONFIG_VIDEO_AU0828=m
# CONFIG_VIDEO_AU0828_RC is not set
CONFIG_VIDEO_AU0828_V4L2=y
+# CONFIG_VIDEO_BCM2835 is not set
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_CPIA2=m
@@ -6117,6 +6223,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -6125,6 +6232,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -6152,6 +6260,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -6219,6 +6328,7 @@ CONFIG_WQ_WATCHDOG=y
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_PTDUMP=y
# CONFIG_XEN is not set
CONFIG_XFRM_MIGRATE=y
@@ -6267,3 +6377,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-aarch64.config b/kernel-aarch64.config
index 2ea836952..b5715c027 100644
--- a/kernel-aarch64.config
+++ b/kernel-aarch64.config
@@ -45,6 +45,7 @@ CONFIG_ACPI_ALS=m
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
CONFIG_ACPI_APEI=y
+CONFIG_ACPI_BGRT=y
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_CONFIGFS=m
CONFIG_ACPI_CONTAINER=y
@@ -138,6 +139,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -168,7 +171,7 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000
CONFIG_AIX_PARTITION=y
# CONFIG_AK09911 is not set
# CONFIG_AK8974 is not set
-# CONFIG_AK8975 is not set
+CONFIG_AK8975=m
# CONFIG_AL3320A is not set
CONFIG_ALI_FIR=m
CONFIG_ALIM1535_WDT=m
@@ -247,12 +250,14 @@ CONFIG_ARM64_ERRATUM_827319=y
CONFIG_ARM64_ERRATUM_832075=y
CONFIG_ARM64_ERRATUM_834220=y
CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_HW_AFDBM=y
CONFIG_ARM64_LSE_ATOMICS=y
CONFIG_ARM64_PAN=y
CONFIG_ARM64_PTDUMP_DEBUGFS=y
# CONFIG_ARM64_PTDUMP is not set
# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
+# CONFIG_ARM64_RELOC_TEST is not set
CONFIG_ARM64_SW_TTBR0_PAN=y
CONFIG_ARM64_UAO=y
CONFIG_ARM64_VA_BITS=48
@@ -395,6 +400,7 @@ CONFIG_AUXDISPLAY=y
# CONFIG_AVERAGE is not set
CONFIG_AX25_DAMA_SLAVE=y
CONFIG_AX25=m
+CONFIG_AXP20X_ADC=m
CONFIG_AXP20X_POWER=m
CONFIG_AXP288_ADC=m
CONFIG_AXP288_CHARGER=m
@@ -424,6 +430,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
@@ -448,12 +455,14 @@ CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_MCAST=y
CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATTERY_AXP20X=m
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_DS2760 is not set
# 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_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -465,6 +474,7 @@ CONFIG_BAYCOM_SER_HDX=m
# CONFIG_BCACHE_DEBUG is not set
CONFIG_BCACHE=m
CONFIG_BCM2835_MBOX=y
+CONFIG_BCM2835_THERMAL=m
# CONFIG_BCM2835_VCHIQ is not set
CONFIG_BCM2835_WDT=m
CONFIG_BCM63XX_PHY=m
@@ -480,14 +490,17 @@ CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
CONFIG_BCMA_POSSIBLE=y
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_BCM_PDC_MBOX is not set
+# CONFIG_BCM_VIDEOCORE is not set
CONFIG_BE2ISCSI=m
# CONFIG_BE2NET_HWMON is not set
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BEFS_FS is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -510,7 +523,6 @@ CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -535,6 +547,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -640,6 +653,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -691,14 +705,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -713,6 +730,7 @@ CONFIG_CAN_SOFTING=m
CONFIG_CAN_SUN4I=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
# CONFIG_CAPI_EICON is not set
@@ -739,6 +757,7 @@ CONFIG_CC_STACKPROTECTOR_NONE=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -853,6 +872,7 @@ CONFIG_COMMON_CLK_HI3519=m
CONFIG_COMMON_CLK_HI3660=y
# CONFIG_COMMON_CLK_HI3798CV200 is not set
CONFIG_COMMON_CLK_HI6220=y
+CONFIG_COMMON_CLK_HI655X=m
CONFIG_COMMON_CLK_MAX77686=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_QCOM=y
@@ -955,9 +975,11 @@ CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
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=y
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
@@ -965,8 +987,9 @@ CONFIG_CRYPTO_DEV_MARVELL_CESA=m
CONFIG_CRYPTO_DEV_MV_CESA=m
CONFIG_CRYPTO_DEV_QCE=m
CONFIG_CRYPTO_DEV_ROCKCHIP=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1113,7 +1136,7 @@ CONFIG_DEBUG_WX=y
CONFIG_DEFAULT_CFQ=y
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
# CONFIG_DEFXX is not set
# CONFIG_DETECT_HUNG_TASK is not set
@@ -1162,6 +1185,7 @@ CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
CONFIG_DMIID=y
+CONFIG_DM_INTEGRITY=m
CONFIG_DMI_SYSFS=y
CONFIG_DMI=y
CONFIG_DM_LOG_USERSPACE=m
@@ -1207,8 +1231,11 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
CONFIG_DRM_DUMB_VGA_DAC=m
+CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+CONFIG_DRM_DW_HDMI=m
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
CONFIG_DRM_HISI_HIBMC=m
@@ -1224,6 +1251,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_LVDS_ENCODER=m
CONFIG_DRM=m
CONFIG_DRM_MALI_DISPLAY=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
@@ -1240,20 +1269,24 @@ CONFIG_DRM_MSM=m
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NXP_PTN3460=m
-CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
+CONFIG_DRM_PANEL_LVDS=m
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
CONFIG_DRM_PARADE_PS8622=m
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
CONFIG_DRM_ROCKCHIP=m
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
@@ -1377,15 +1410,17 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_MV64X60=m
+CONFIG_EDAC_THUNDERX=m
CONFIG_EDAC_XGENE=m
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1443,7 +1478,6 @@ CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXTCON_ADC_JACK=m
CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
-CONFIG_EXTCON_INTEL_INT3496=m
CONFIG_EXTCON=m
# CONFIG_EXTCON_MAX3355 is not set
CONFIG_EXTCON_QCOM_SPMI_MISC=m
@@ -1652,6 +1686,7 @@ CONFIG_GPIO_AXP209=m
CONFIG_GPIO_DEVRES=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_GRGPIO is not set
@@ -1688,6 +1723,7 @@ CONFIG_GPIO_WATCHDOG=m
CONFIG_GPIO_XGENE_SB=m
CONFIG_GPIO_XGENE=y
# CONFIG_GPIO_XILINX is not set
+CONFIG_GPIO_XLP=m
CONFIG_GREENASIA_FF=y
# CONFIG_GREYBUS is not set
# CONFIG_GS_FPGABOOT is not set
@@ -1699,6 +1735,7 @@ CONFIG_HAPPYMEAL=m
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_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1711,6 +1748,7 @@ CONFIG_HI6220_MBOX=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1754,6 +1792,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1775,12 +1814,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1935,6 +1976,7 @@ CONFIG_I2C_HID=m
CONFIG_I2C_MESON=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
CONFIG_I2C_MUX_PCA9541=m
@@ -1976,6 +2018,7 @@ CONFIG_I2C_VERSATILE=m
CONFIG_I2C_VIPERBOARD=m
CONFIG_I2C_XGENE_SLIMPRO=m
# CONFIG_I2C_XILINX is not set
+CONFIG_I2C_XLP9XX=m
CONFIG_I2C=y
# CONFIG_I2O is not set
# CONFIG_I40E_DCB is not set
@@ -1995,6 +2038,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2012,6 +2057,7 @@ CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
# CONFIG_IIO_HRTIMER_TRIGGER is not set
@@ -2138,7 +2184,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2172,6 +2217,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2354,6 +2400,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2454,6 +2501,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2469,7 +2518,7 @@ CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_ZHENHUA=m
# CONFIG_JSA1212 is not set
CONFIG_JUMP_LABEL=y
-# CONFIG_K3_DMA is not set
+CONFIG_K3_DMA=m
CONFIG_KALLSYMS_ALL=y
CONFIG_KALLSYMS=y
CONFIG_KARMA_PARTITION=y
@@ -2542,7 +2591,9 @@ CONFIG_KSZ884X_PCI=m
CONFIG_KUSER_HELPERS=y
CONFIG_KVM=y
CONFIG_KXCJK1013=m
-# CONFIG_KXSD9 is not set
+CONFIG_KXSD9_I2C=m
+CONFIG_KXSD9=m
+CONFIG_KXSD9_SPI=m
CONFIG_L2TP_DEBUGFS=m
CONFIG_L2TP_ETH=m
CONFIG_L2TP_IP=m
@@ -2577,7 +2628,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_GPIO_REGISTER=y
# CONFIG_LEDS_IS31FL319X is not set
@@ -2652,7 +2702,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2665,6 +2714,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2693,6 +2743,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2731,8 +2783,10 @@ CONFIG_MANTIS_CORE=m
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
@@ -2741,6 +2795,7 @@ CONFIG_MAX30100=m
# CONFIG_MAX63XX_WATCHDOG is not set
CONFIG_MAX77620_THERMAL=m
CONFIG_MAX77620_WATCHDOG=m
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
# CONFIG_MC3230 is not set
@@ -2782,6 +2837,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2840,7 +2896,7 @@ CONFIG_MFD_AXP20X_RSB=m
CONFIG_MFD_AXP20X=y
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -2852,7 +2908,6 @@ CONFIG_MFD_CROS_EC_SPI=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
CONFIG_MFD_HI655X_PMIC=m
# CONFIG_MFD_JANZ_CMODIO is not set
@@ -2900,6 +2955,7 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2950,6 +3006,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2976,6 +3033,7 @@ CONFIG_MMC_BCM2835=m
CONFIG_MMC_BLOCK_BOUNCE=y
CONFIG_MMC_BLOCK=m
CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_CAVIUM_THUNDERX=m
CONFIG_MMC_CB710=m
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_DW_EXYNOS is not set
@@ -3006,6 +3064,7 @@ CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_SDHCI_PXAV3=m
CONFIG_MMC_SDHCI_TEGRA=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_SPI=m
CONFIG_MMC_SUNXI=m
@@ -3026,7 +3085,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3058,8 +3116,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3187,6 +3246,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3230,11 +3290,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3357,6 +3421,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3452,6 +3517,7 @@ CONFIG_NETWORK_FILESYSTEMS=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETXEN_NIC=m
CONFIG_NET_XGENE=m
+CONFIG_NET_XGENE_V2=m
CONFIG_NET=y
CONFIG_NEW_LEDS=y
CONFIG_NFC_DIGITAL=m
@@ -3668,6 +3734,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=256
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
# CONFIG_NTB is not set
@@ -3817,19 +3884,24 @@ CONFIG_PCIE_ARMADA_8K=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW_HOST=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_QCOM=y
CONFIG_PCIE_ROCKCHIP=y
+# CONFIG_PCI_FTPCI100 is not set
CONFIG_PCI_HERMES=m
CONFIG_PCI_HISI=y
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCI_HOST_THUNDER_ECAM=y
CONFIG_PCI_HOST_THUNDER_PEM=y
CONFIG_PCI_IOV=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MVEBU=y
CONFIG_PCI_PASID=y
@@ -3837,6 +3909,7 @@ CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI_TEGRA=y
CONFIG_PCI_XGENE_MSI=y
CONFIG_PCI_XGENE=y
@@ -3876,6 +3949,8 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_PHY_QCOM_APQ8064_SATA is not set
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
+CONFIG_PHY_QCOM_QMP=m
+CONFIG_PHY_QCOM_QUSB2=m
# CONFIG_PHY_QCOM_UFS is not set
CONFIG_PHY_QCOM_USB_HSIC=m
CONFIG_PHY_QCOM_USB_HS=m
@@ -3921,7 +3996,6 @@ CONFIG_PINCTRL_QDF2XXX=y
CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SUNRISEPOINT is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PKCS7_MESSAGE_PARSER=y
@@ -4045,12 +4119,13 @@ CONFIG_QCOM_FALKOR_ERRATUM_1009=y
CONFIG_QCOM_GSBI=y
CONFIG_QCOM_HIDMA=m
CONFIG_QCOM_HIDMA_MGMT=m
+CONFIG_QCOM_IOMMU=y
CONFIG_QCOM_IRQ_COMBINER=y
CONFIG_QCOM_L2_PMU=y
+CONFIG_QCOM_L3_PMU=y
CONFIG_QCOM_Q6V5_PIL=m
CONFIG_QCOM_QDF2400_ERRATUM_0065=y
CONFIG_QCOM_QFPROM=m
-CONFIG_QCOM_SMD=m
CONFIG_QCOM_SMD_RPM=m
CONFIG_QCOM_SMEM=m
CONFIG_QCOM_SMP2P=m
@@ -4112,10 +4187,12 @@ CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RANDOMIZE_BASE is not set
+CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RAW_DRIVER=y
@@ -4163,7 +4240,6 @@ CONFIG_REGULATOR_ACT8865=m
# CONFIG_REGULATOR_AD5398 is not set
# CONFIG_REGULATOR_ANATOP is not set
CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DA9210 is not set
# CONFIG_REGULATOR_DA9211 is not set
# CONFIG_REGULATOR_DEBUG is not set
@@ -4201,8 +4277,10 @@ CONFIG_REGULATOR_RK808=m
# CONFIG_REGULATOR_TPS62360 is not set
# CONFIG_REGULATOR_TPS65023 is not set
# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65132 is not set
# CONFIG_REGULATOR_TPS6524X is not set
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VCTRL=m
CONFIG_REGULATOR_VEXPRESS=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR=y
@@ -4237,12 +4315,12 @@ CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
CONFIG_RMI4_SMB=m
CONFIG_RMI4_SPI=m
-CONFIG_ROCKCHIP_ANALOGIX_DP=m
-# CONFIG_ROCKCHIP_CDN_DP is not set
-CONFIG_ROCKCHIP_DW_HDMI=m
-CONFIG_ROCKCHIP_DW_MIPI_DSI=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_ROCKCHIP_EFUSE=m
-CONFIG_ROCKCHIP_INNO_HDMI=m
+CONFIG_ROCKCHIP_INNO_HDMI=y
CONFIG_ROCKCHIP_IODOMAIN=m
CONFIG_ROCKCHIP_IOMMU=y
CONFIG_ROCKCHIP_MBOX=y
@@ -4254,6 +4332,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPMSG=m
CONFIG_RPMSG_QCOM_SMD=m
CONFIG_RPR0521=m
@@ -4394,6 +4473,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4601,6 +4681,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCPI=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4888,7 +4969,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4904,7 +4985,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4939,6 +5022,7 @@ CONFIG_SND_HDA_TEGRA=m
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4946,8 +5030,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
# CONFIG_SND_KIRKWOOD_SOC is not set
@@ -4992,6 +5076,8 @@ CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -5007,6 +5093,7 @@ CONFIG_SND_SOC_APQ8016_SBC=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5020,7 +5107,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -5041,10 +5130,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -5141,13 +5232,14 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
# CONFIG_SOC_CAMERA is not set
+CONFIG_SOC_TEGRA_FLOWCTRL=y
# CONFIG_SOC_TI is not set
# CONFIG_SOC_ZTE is not set
CONFIG_SOFT_WATCHDOG=m
@@ -5201,6 +5293,7 @@ CONFIG_SPI_THUNDERX=m
# CONFIG_SPI_TOPCLIFF_PCH is not set
# CONFIG_SPI_XCOMM is not set
# CONFIG_SPI_XILINX is not set
+CONFIG_SPI_XLP=m
CONFIG_SPI=y
# CONFIG_SPI_ZYNQMP_GQSPI is not set
CONFIG_SPMI=m
@@ -5214,6 +5307,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SRAM=y
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5249,14 +5343,11 @@ CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
CONFIG_STUB_CLK_HI6220=y
# CONFIG_SUN4I_EMAC is not set
+CONFIG_SUN4I_GPADC=m
CONFIG_SUN50I_A64_CCU=y
-# CONFIG_SUN5I_CCU is not set
-# CONFIG_SUN6I_A31_CCU is not set
-# CONFIG_SUN8I_A23_CCU is not set
-# CONFIG_SUN8I_A33_CCU is not set
-# CONFIG_SUN8I_H3_CCU is not set
+CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_R_CCU=y
# CONFIG_SUN8I_V3S_CCU is not set
-# CONFIG_SUN9I_A80_CCU is not set
CONFIG_SUNDANCE=m
# CONFIG_SUNDANCE_MMIO is not set
CONFIG_SUNGEM=m
@@ -5287,6 +5378,7 @@ CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5310,6 +5402,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -5350,6 +5443,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
CONFIG_TCS3472=m
+# CONFIG_TEE is not set
CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
CONFIG_TEGRA210_ADMA=y
@@ -5390,6 +5484,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5418,6 +5513,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5427,7 +5523,7 @@ CONFIG_TIPC=m
# CONFIG_TIPC_MEDIA_IB is not set
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_SCI_PROTOCOL=m
-# CONFIG_TI_ST is not set
+CONFIG_TI_ST=m
# CONFIG_TI_SYSCON_RESET is not set
# CONFIG_TI_TLC4541 is not set
# CONFIG_TLAN is not set
@@ -5493,6 +5589,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5535,11 +5632,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5631,6 +5733,7 @@ CONFIG_USB_DWC3_PCI=m
CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_EG20T is not set
+CONFIG_USB_EHCI_HCD_ORION=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MSM=m
@@ -5797,6 +5900,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5809,6 +5913,7 @@ CONFIG_USB_PWC=m
CONFIG_USB_QCOM_8X16_PHY=m
# CONFIG_USB_R8A66597_HCD is not set
# 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_RTL8150=m
@@ -5991,6 +6096,7 @@ CONFIG_VIA_VELOCITY=m
CONFIG_VIDEO_AU0828=m
# CONFIG_VIDEO_AU0828_RC is not set
CONFIG_VIDEO_AU0828_V4L2=y
+# CONFIG_VIDEO_BCM2835 is not set
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_CPIA2=m
@@ -6094,6 +6200,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -6102,6 +6209,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -6129,6 +6237,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -6196,6 +6305,7 @@ CONFIG_WM8350_WATCHDOG=m
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
+CONFIG_X86_MCELOG_LEGACY=y
# CONFIG_X86_PTDUMP is not set
# CONFIG_XEN is not set
CONFIG_XFRM_MIGRATE=y
@@ -6244,3 +6354,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-armv7hl-debug.config b/kernel-armv7hl-debug.config
index f7236b04c..23fd756bd 100644
--- a/kernel-armv7hl-debug.config
+++ b/kernel-armv7hl-debug.config
@@ -116,6 +116,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
CONFIG_AEABI=y
# CONFIG_AFE4403 is not set
@@ -125,6 +127,7 @@ CONFIG_AEABI=y
# CONFIG_AF_RXRPC is not set
# CONFIG_AFS_FS is not set
# CONFIG_AHCI_CEVA is not set
+CONFIG_AHCI_DM816=m
CONFIG_AHCI_IMX=m
CONFIG_AHCI_MVEBU=m
# CONFIG_AHCI_QORIQ is not set
@@ -245,6 +248,7 @@ CONFIG_ARCH_VIRT=y
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQ=y
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_PTDUMP=y
CONFIG_ARMADA_THERMAL=m
CONFIG_ARM_AMBA=y
@@ -434,6 +438,7 @@ CONFIG_AX25=m
CONFIG_AX88796_93CX6=y
CONFIG_AX88796=m
CONFIG_AXI_DMAC=m
+CONFIG_AXP20X_ADC=m
CONFIG_AXP20X_POWER=m
CONFIG_AXP288_ADC=m
CONFIG_AXP288_CHARGER=m
@@ -463,6 +468,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_DA9052=m
@@ -490,6 +496,7 @@ CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_MCAST=y
CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATTERY_AXP20X=m
CONFIG_BATTERY_BQ27XXX_I2C=m
CONFIG_BATTERY_BQ27XXX=m
CONFIG_BATTERY_DA9052=m
@@ -498,6 +505,7 @@ CONFIG_BATTERY_DA9052=m
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
CONFIG_BATTERY_RX51=m
@@ -511,6 +519,7 @@ CONFIG_BAYCOM_SER_HDX=m
# CONFIG_BCACHE_DEBUG is not set
CONFIG_BCACHE=m
CONFIG_BCM2835_MBOX=y
+CONFIG_BCM2835_THERMAL=m
# CONFIG_BCM2835_VCHIQ is not set
CONFIG_BCM2835_WDT=m
CONFIG_BCM63XX_PHY=m
@@ -525,13 +534,16 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_BCM_VIDEOCORE is not set
CONFIG_BE2ISCSI=m
# CONFIG_BE2NET_HWMON is not set
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BEFS_FS is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -554,7 +566,6 @@ CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -579,6 +590,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -685,6 +697,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -739,14 +752,17 @@ 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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -764,6 +780,7 @@ CONFIG_CAN_SUN4I=m
# CONFIG_CAN_TI_HECC is not set
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
# CONFIG_CAPI_EICON is not set
@@ -785,6 +802,7 @@ CONFIG_CC_STACKPROTECTOR_NONE=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -900,7 +918,6 @@ CONFIG_COMMON_CLK_AXI_CLKGEN=m
# CONFIG_COMMON_CLK_CDCE925 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
CONFIG_COMMON_CLK_MAX77686=m
-CONFIG_COMMON_CLK_MAX77802=m
CONFIG_COMMON_CLK_PALMAS=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_QCOM=y
@@ -909,7 +926,7 @@ CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_COMMON_CLK_SCPI=m
# CONFIG_COMMON_CLK_SI514 is not set
CONFIG_COMMON_CLK_SI5351=m
-CONFIG_COMMON_CLK_SI570=m
+# CONFIG_COMMON_CLK_SI570 is not set
CONFIG_COMMON_CLK_TI_ADPLL=m
# CONFIG_COMMON_CLK_VC5 is not set
CONFIG_COMMON_CLK_VERSATILE=y
@@ -1000,7 +1017,9 @@ CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_CRYPTO_DEV_EXYNOS_RNG=m
CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=m
CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=m
# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
@@ -1028,7 +1047,7 @@ CONFIG_CRYPTO_DEV_S5P=m
CONFIG_CRYPTO_DEV_SAHARA=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1242,6 +1261,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1309,6 +1329,7 @@ CONFIG_DRM_EXYNOS_MIXER=y
CONFIG_DRM_EXYNOS_ROTATOR=y
CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FSL_DCU is not set
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
@@ -1330,6 +1351,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_LVDS_ENCODER=m
CONFIG_DRM=m
CONFIG_DRM_MALI_DISPLAY=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
@@ -1362,20 +1385,24 @@ 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_JDI_LT070ME05000=m
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
+CONFIG_DRM_PANEL_LVDS=m
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
CONFIG_DRM_PARADE_PS8622=m
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
CONFIG_DRM_ROCKCHIP=m
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
@@ -1504,16 +1531,17 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_HIGHBANK_L2=m
CONFIG_EDAC_HIGHBANK_MC=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_MV64X60=m
CONFIG_EDAC_SYNOPSYS=m
CONFIG_EDAC=y
@@ -1572,7 +1600,6 @@ CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXTCON_ADC_JACK=m
CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON_MAX3355 is not set
CONFIG_EXTCON_MAX8997=m
CONFIG_EXTCON_PALMAS=m
@@ -1802,6 +1829,7 @@ CONFIG_GPIO_DA9055=m
CONFIG_GPIO_DEVRES=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_GRGPIO is not set
@@ -1861,6 +1889,7 @@ CONFIG_HAVE_ARM_ARCH_TIMER=y
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_HDQ_MASTER_OMAP=m
CONFIG_HEADERS_CHECK=y
@@ -1873,6 +1902,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1916,6 +1946,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1937,12 +1968,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -2039,7 +2072,6 @@ CONFIG_HWMON=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_BCM2835=m
-CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_MSM=m
CONFIG_HW_RANDOM_MXC_RNGA=m
@@ -2097,6 +2129,7 @@ CONFIG_I2C_IMX=m
CONFIG_I2C_MESON=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
CONFIG_I2C_MUX_PCA9541=m
@@ -2158,6 +2191,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2175,6 +2210,7 @@ CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
# CONFIG_IIO_HRTIMER_TRIGGER is not set
@@ -2207,6 +2243,7 @@ CONFIG_IMA_MEASURE_PCR_IDX=10
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_IMX2_WDT=m
CONFIG_IMX7D_ADC=m
+CONFIG_IMX7_PM_DOMAINS=y
CONFIG_IMX_DMA=m
CONFIG_IMX_GPCV2=y
CONFIG_IMX_IPUV3_CORE=m
@@ -2313,7 +2350,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PALMAS_PWRBUTTON=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
@@ -2352,6 +2388,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2536,6 +2573,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2648,6 +2686,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2782,7 +2822,6 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_DA9052=m
CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_GPIO_REGISTER=y
# CONFIG_LEDS_IS31FL319X is not set
@@ -2860,7 +2899,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2873,6 +2911,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2901,6 +2940,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=32768
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2961,14 +3002,17 @@ CONFIG_MANTIS_CORE=m
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -3011,6 +3055,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -3069,7 +3114,7 @@ CONFIG_MFD_AXP20X_RSB=m
CONFIG_MFD_AXP20X=y
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -3105,7 +3150,6 @@ CONFIG_MFD_NVEC=y
CONFIG_MFD_OMAP_USB_HOST=y
CONFIG_MFD_PALMAS=y
# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_PM8921_CORE is not set
CONFIG_MFD_PM8XXX=m
CONFIG_MFD_QCOM_RPM=m
# CONFIG_MFD_RC5T583 is not set
@@ -3131,6 +3175,7 @@ CONFIG_MFD_T7L66XB=y
CONFIG_MFD_TC6387XB=y
# CONFIG_MFD_TC6393XB is not set
CONFIG_MFD_TI_AM335X_TSCADC=m
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -3182,6 +3227,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -3247,6 +3293,7 @@ CONFIG_MMC_SDHCI_S3C_DMA=y
CONFIG_MMC_SDHCI_S3C=m
CONFIG_MMC_SDHCI_ST=m
CONFIG_MMC_SDHCI_TEGRA=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_SPI=m
CONFIG_MMC_SUNXI=m
@@ -3271,7 +3318,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3305,6 +3351,7 @@ CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3464,6 +3511,7 @@ CONFIG_NEON=y
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3507,11 +3555,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3633,6 +3685,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3946,6 +3999,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=32
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
# CONFIG_NTB is not set
@@ -3954,6 +4008,7 @@ CONFIG_NTP_PPS=y
CONFIG_NVEC_PAZ00=y
CONFIG_NVEC_POWER=y
CONFIG_NVME_FC=m
+CONFIG_NVMEM_IMX_IIM=m
CONFIG_NVMEM_IMX_OCOTP=m
CONFIG_NVMEM=m
CONFIG_NVMEM_SUNXI_SID=m
@@ -4129,7 +4184,9 @@ CONFIG_PCF50633_GPIO=m
# CONFIG_PCH_GBE is not set
CONFIG_PCI_AARDVARK=y
# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_DRA7XX=y
+# CONFIG_PCI_DRA7XX_EP is not set
+# CONFIG_PCI_DRA7XX_HOST is not set
+# CONFIG_PCI_DRA7XX is not set
CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIE_ALTERA is not set
@@ -4137,20 +4194,25 @@ CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW_HOST=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_QCOM=y
CONFIG_PCIE_ROCKCHIP=y
CONFIG_PCIE_XILINX=y
CONFIG_PCI_EXYNOS=y
+# CONFIG_PCI_FTPCI100 is not set
CONFIG_PCI_HERMES=m
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCI_IMX6=y
CONFIG_PCI_IOV=y
# CONFIG_PCI_LAYERSCAPE is not set
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MVEBU=y
CONFIG_PCI_PASID=y
@@ -4158,6 +4220,7 @@ CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI_TEGRA=y
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
@@ -4202,6 +4265,8 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_PXA_28NM_USB2 is not set
CONFIG_PHY_QCOM_APQ8064_SATA=m
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
+CONFIG_PHY_QCOM_QMP=m
+CONFIG_PHY_QCOM_QUSB2=m
CONFIG_PHY_QCOM_UFS=m
CONFIG_PHY_QCOM_USB_HSIC=m
CONFIG_PHY_QCOM_USB_HS=m
@@ -4254,7 +4319,6 @@ CONFIG_PINCTRL_SAMSUNG=y
CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SUNRISEPOINT is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINCTRL_ZYNQ=y
CONFIG_PINMUX=y
@@ -4398,11 +4462,11 @@ CONFIG_QCOM_COINCELL=m
CONFIG_QCOM_GSBI=m
# CONFIG_QCOM_HIDMA is not set
# CONFIG_QCOM_HIDMA_MGMT is not set
-CONFIG_QCOM_IRQ_COMBINER=y
+CONFIG_QCOM_IOMMU=y
+CONFIG_QCOM_PM8XXX_XOADC=m
CONFIG_QCOM_PM=y
CONFIG_QCOM_Q6V5_PIL=m
CONFIG_QCOM_QFPROM=m
-CONFIG_QCOM_SMD=m
CONFIG_QCOM_SMD_RPM=m
CONFIG_QCOM_SMEM=m
CONFIG_QCOM_SMP2P=m
@@ -4468,6 +4532,7 @@ CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RAW_DRIVER=y
@@ -4521,7 +4586,6 @@ CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_ANATOP=m
CONFIG_REGULATOR_AS3722=m
CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_CPCAP=m
CONFIG_REGULATOR_DA9052=m
CONFIG_REGULATOR_DA9055=m
CONFIG_REGULATOR_DA9210=m
@@ -4570,6 +4634,7 @@ CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6507X=m
CONFIG_REGULATOR_TPS65090=m
+# CONFIG_REGULATOR_TPS65132 is not set
CONFIG_REGULATOR_TPS65217=m
CONFIG_REGULATOR_TPS65218=m
CONFIG_REGULATOR_TPS6524X=m
@@ -4579,6 +4644,7 @@ CONFIG_REGULATOR_TPS65912=m
CONFIG_REGULATOR_TPS80031=m
CONFIG_REGULATOR_TWL4030=y
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VCTRL=m
CONFIG_REGULATOR_VEXPRESS=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_WM8994=m
@@ -4612,12 +4678,12 @@ CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
CONFIG_RMI4_SMB=m
CONFIG_RMI4_SPI=m
-CONFIG_ROCKCHIP_ANALOGIX_DP=m
-# CONFIG_ROCKCHIP_CDN_DP is not set
-CONFIG_ROCKCHIP_DW_HDMI=m
-CONFIG_ROCKCHIP_DW_MIPI_DSI=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_ROCKCHIP_EFUSE=m
-CONFIG_ROCKCHIP_INNO_HDMI=m
+CONFIG_ROCKCHIP_INNO_HDMI=y
CONFIG_ROCKCHIP_IODOMAIN=m
CONFIG_ROCKCHIP_IOMMU=y
CONFIG_ROCKCHIP_MBOX=y
@@ -4788,6 +4854,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4996,6 +5063,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCPI=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DA9052_ADC=m
@@ -5205,6 +5273,7 @@ CONFIG_SERIAL_ST_ASC=y
CONFIG_SERIAL_TEGRA=y
# CONFIG_SERIAL_TIMBERDALE is not set
CONFIG_SERIAL_UARTLITE_CONSOLE=y
+CONFIG_SERIAL_UARTLITE_NR_UARTS=1
CONFIG_SERIAL_UARTLITE=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
CONFIG_SERIAL_XILINX_PS_UART=y
@@ -5314,7 +5383,7 @@ CONFIG_SND_DAVINCI_SOC_VCIF=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -5330,7 +5399,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -5365,6 +5436,7 @@ CONFIG_SND_HDA_TEGRA=m
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_IMX_SOC=m
@@ -5373,8 +5445,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB=m
@@ -5436,6 +5508,8 @@ CONFIG_SND_SIS7019=m
CONFIG_SND_SOC_AC97_BUS=y
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_ADAU7002 is not set
CONFIG_SND_SOC_ADI_AXI_I2S=m
CONFIG_SND_SOC_ADI_AXI_SPDIF=m
@@ -5454,6 +5528,7 @@ CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5467,7 +5542,9 @@ CONFIG_SND_SOC_CS42L42=m
CONFIG_SND_SOC_CS42XX8_I2C=m
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -5498,12 +5575,17 @@ CONFIG_SND_SOC_IMX_WM8962=m
CONFIG_SND_SOC_LPASS_CPU=m
CONFIG_SND_SOC_LPASS_PLATFORM=m
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98090=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
-CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
+CONFIG_SND_SOC_MAX98927=m
+# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
+CONFIG_SND_SOC_MSM8916_WCD_ANALOg=m
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
+CONFIG_SND_SOC_ODROID=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -5614,8 +5696,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -5651,6 +5733,7 @@ CONFIG_SOC_OMAP5=y
CONFIG_SOC_STIH407=y
# CONFIG_SOC_STIH415 is not set
# CONFIG_SOC_STIH416 is not set
+CONFIG_SOC_TEGRA_FLOWCTRL=y
CONFIG_SOC_TI81XX=y
# CONFIG_SOC_TI is not set
# CONFIG_SOC_VF610 is not set
@@ -5725,6 +5808,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SRAM=y
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5770,12 +5854,13 @@ CONFIG_ST_THERMAL=m
CONFIG_ST_THERMAL_MEMMAP=m
# CONFIG_ST_THERMAL_SYSCFG is not set
CONFIG_SUN4I_EMAC=m
-# CONFIG_SUN50I_A64_CCU is not set
+CONFIG_SUN4I_GPADC=m
CONFIG_SUN5I_CCU=y
CONFIG_SUN6I_A31_CCU=y
CONFIG_SUN8I_A23_CCU=y
CONFIG_SUN8I_A33_CCU=y
CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_R_CCU=y
CONFIG_SUN8I_V3S_CCU=y
CONFIG_SUN9I_A80_CCU=y
CONFIG_SUNDANCE=m
@@ -5809,6 +5894,7 @@ CONFIG_SYSCON_REBOOT_MODE=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5832,6 +5918,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -5872,6 +5959,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
CONFIG_TCS3472=m
+# CONFIG_TEE is not set
CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
CONFIG_TEGRA20_MC=y
@@ -5912,6 +6000,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5948,6 +6037,7 @@ CONFIG_TI_EDMA=y
CONFIG_TI_EMIF=m
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -6029,6 +6119,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -6077,12 +6168,17 @@ CONFIG_TWL4030_WATCHDOG=m
CONFIG_TWL6030_GPADC=m
CONFIG_TWL6030_USB=m
CONFIG_TWL6040_CORE=y
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
# CONFIG_UACCESS_WITH_MEMCPY is not set
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -6358,6 +6454,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -6370,6 +6467,7 @@ CONFIG_USB_PWC=m
CONFIG_USB_QCOM_8X16_PHY=m
# CONFIG_USB_R8A66597_HCD is not set
# 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_RTL8150=m
@@ -6558,6 +6656,7 @@ CONFIG_VIDEO_AM437X_VPFE=m
CONFIG_VIDEO_AU0828=m
# CONFIG_VIDEO_AU0828_RC is not set
CONFIG_VIDEO_AU0828_V4L2=y
+# CONFIG_VIDEO_BCM2835 is not set
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_CODA=m
@@ -6688,6 +6787,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -6696,6 +6796,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -6724,6 +6825,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -6793,6 +6895,7 @@ CONFIG_WQ_WATCHDOG=y
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_PTDUMP=y
# CONFIG_XEN is not set
CONFIG_XFRM_MIGRATE=y
@@ -6843,3 +6946,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-armv7hl-lpae-debug.config b/kernel-armv7hl-lpae-debug.config
index 1182ca991..f10288623 100644
--- a/kernel-armv7hl-lpae-debug.config
+++ b/kernel-armv7hl-lpae-debug.config
@@ -116,6 +116,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
CONFIG_AEABI=y
# CONFIG_AFE4403 is not set
@@ -125,6 +127,7 @@ CONFIG_AEABI=y
# CONFIG_AF_RXRPC is not set
# CONFIG_AFS_FS is not set
# CONFIG_AHCI_CEVA is not set
+CONFIG_AHCI_DM816=m
CONFIG_AHCI_MVEBU=m
# CONFIG_AHCI_QORIQ is not set
CONFIG_AHCI_SUNXI=m
@@ -146,7 +149,7 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000
CONFIG_AIX_PARTITION=y
# CONFIG_AK09911 is not set
# CONFIG_AK8974 is not set
-# CONFIG_AK8975 is not set
+CONFIG_AK8975=m
# CONFIG_AL3320A is not set
CONFIG_ALI_FIR=m
CONFIG_ALIM1535_WDT=m
@@ -236,6 +239,7 @@ CONFIG_ARCH_VIRT=y
# CONFIG_ARCH_ZX is not set
# CONFIG_ARCH_ZYNQ is not set
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_PTDUMP=y
CONFIG_ARMADA_THERMAL=m
CONFIG_ARM_AMBA=y
@@ -419,6 +423,7 @@ CONFIG_AX25_DAMA_SLAVE=y
CONFIG_AX25=m
CONFIG_AX88796_93CX6=y
CONFIG_AX88796=m
+CONFIG_AXP20X_ADC=m
CONFIG_AXP20X_POWER=m
CONFIG_AXP288_ADC=m
CONFIG_AXP288_CHARGER=m
@@ -448,6 +453,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
@@ -472,12 +478,14 @@ CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_MCAST=y
CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATTERY_AXP20X=m
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_DS2760 is not set
# 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_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
CONFIG_BATTERY_SBS=m
@@ -489,6 +497,7 @@ CONFIG_BAYCOM_SER_HDX=m
# CONFIG_BCACHE_DEBUG is not set
CONFIG_BCACHE=m
CONFIG_BCM2835_MBOX=y
+CONFIG_BCM2835_THERMAL=m
# CONFIG_BCM2835_VCHIQ is not set
CONFIG_BCM2835_WDT=m
CONFIG_BCM63XX_PHY=m
@@ -503,13 +512,16 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_BCM_VIDEOCORE is not set
CONFIG_BE2ISCSI=m
# CONFIG_BE2NET_HWMON is not set
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BEFS_FS is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -532,7 +544,6 @@ CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -557,6 +568,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -663,6 +675,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -716,14 +729,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -741,6 +757,7 @@ CONFIG_CAN_SUN4I=m
# CONFIG_CAN_TI_HECC is not set
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
# CONFIG_CAPI_EICON is not set
@@ -762,6 +779,7 @@ CONFIG_CC_STACKPROTECTOR_NONE=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -873,7 +891,6 @@ CONFIG_CNIC=m
# CONFIG_COMMON_CLK_CDCE925 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
CONFIG_COMMON_CLK_MAX77686=m
-CONFIG_COMMON_CLK_MAX77802=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_RK808=m
CONFIG_COMMON_CLK_S2MPS11=m
@@ -970,7 +987,9 @@ CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_CRYPTO_DEV_EXYNOS_RNG=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
CONFIG_CRYPTO_DEV_MARVELL_CESA=m
@@ -979,7 +998,7 @@ CONFIG_CRYPTO_DEV_ROCKCHIP=m
CONFIG_CRYPTO_DEV_S5P=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1191,6 +1210,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1256,6 +1276,7 @@ CONFIG_DRM_EXYNOS_MIXER=y
CONFIG_DRM_EXYNOS_ROTATOR=y
CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FSL_DCU is not set
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
@@ -1272,6 +1293,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_LVDS_ENCODER=m
CONFIG_DRM=m
CONFIG_DRM_MALI_DISPLAY=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
@@ -1280,20 +1303,24 @@ CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NXP_PTN3460=m
# CONFIG_DRM_OMAP is not set
-CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
+CONFIG_DRM_PANEL_LVDS=m
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
CONFIG_DRM_PARADE_PS8622=m
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
CONFIG_DRM_ROCKCHIP=m
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
@@ -1419,16 +1446,17 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_HIGHBANK_L2=m
CONFIG_EDAC_HIGHBANK_MC=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_MV64X60=m
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1486,7 +1514,6 @@ CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXTCON_ADC_JACK=m
CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON_MAX3355 is not set
CONFIG_EXTCON_MAX8997=m
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
@@ -1709,6 +1736,7 @@ CONFIG_GPIO_DAVINCI=y
CONFIG_GPIO_DEVRES=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_GRGPIO is not set
@@ -1760,6 +1788,7 @@ CONFIG_HAVE_ARM_ARCH_TIMER=y
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_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1771,6 +1800,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1814,6 +1844,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1835,12 +1866,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1939,7 +1972,6 @@ CONFIG_HWMON=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_BCM2835=m
-CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_OMAP=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
@@ -1990,6 +2022,7 @@ CONFIG_I2C_HID=m
CONFIG_I2C_MESON=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
CONFIG_I2C_MUX_PCA9541=m
@@ -2048,6 +2081,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2065,6 +2100,7 @@ CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
# CONFIG_IIO_HRTIMER_TRIGGER is not set
@@ -2193,7 +2229,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2227,6 +2262,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2410,6 +2446,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2522,6 +2559,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2614,7 +2653,9 @@ CONFIG_KUSER_HELPERS=y
CONFIG_KVM_ARM_HOST=y
CONFIG_KVM=y
CONFIG_KXCJK1013=m
-# CONFIG_KXSD9 is not set
+CONFIG_KXSD9_I2C=m
+CONFIG_KXSD9=m
+CONFIG_KXSD9_SPI=m
CONFIG_L2TP_DEBUGFS=m
CONFIG_L2TP_ETH=m
CONFIG_L2TP_IP=m
@@ -2650,7 +2691,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_GPIO_REGISTER=y
# CONFIG_LEDS_IS31FL319X is not set
@@ -2726,7 +2766,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2739,6 +2778,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2767,6 +2807,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=32768
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2820,14 +2862,17 @@ CONFIG_MANTIS_CORE=m
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2868,6 +2913,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2926,7 +2972,7 @@ CONFIG_MFD_AXP20X_RSB=m
CONFIG_MFD_AXP20X=y
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -2961,7 +3007,6 @@ CONFIG_MFD_MAX8997=y
# CONFIG_MFD_NVEC is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_PM8921_CORE is not set
# CONFIG_MFD_PM8XXX is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_RDC321X is not set
@@ -2977,6 +3022,7 @@ CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
+CONFIG_MFD_SPMI_PMIC=m
# CONFIG_MFD_STMPE is not set
CONFIG_MFD_SUN4I_GPADC=m
CONFIG_MFD_SYSCON=y
@@ -2985,6 +3031,7 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_TC6387XB is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -3036,6 +3083,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -3095,6 +3143,7 @@ CONFIG_MMC_SDHCI_PXAV3=m
CONFIG_MMC_SDHCI_S3C_DMA=y
CONFIG_MMC_SDHCI_S3C=m
CONFIG_MMC_SDHCI_TEGRA=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_SPI=m
CONFIG_MMC_SUNXI=m
@@ -3117,7 +3166,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3149,8 +3197,9 @@ CONFIG_MPL115=m
CONFIG_MPL3115=m
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3293,6 +3342,7 @@ CONFIG_NEON=y
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3336,11 +3386,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3462,6 +3516,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3772,12 +3827,14 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=32
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
# CONFIG_NTB is not set
# CONFIG_NTFS_FS is not set
CONFIG_NTP_PPS=y
CONFIG_NVME_FC=m
+CONFIG_NVMEM_IMX_IIM=m
CONFIG_NVMEM=m
CONFIG_NVMEM_SUNXI_SID=m
CONFIG_NVME_RDMA=m
@@ -3916,6 +3973,9 @@ CONFIG_PCF50633_GPIO=m
# CONFIG_PCH_GBE is not set
CONFIG_PCI_AARDVARK=y
# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_DRA7XX_EP is not set
+# CONFIG_PCI_DRA7XX_HOST is not set
+# CONFIG_PCI_DRA7XX is not set
CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIE_ALTERA is not set
@@ -3923,18 +3983,23 @@ CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW_HOST=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_ROCKCHIP=y
CONFIG_PCI_EXYNOS=y
+# CONFIG_PCI_FTPCI100 is not set
CONFIG_PCI_HERMES=m
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCI_IOV=y
CONFIG_PCI_KEYSTONE=y
# CONFIG_PCI_LAYERSCAPE is not set
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MVEBU=y
CONFIG_PCI_PASID=y
@@ -3942,6 +4007,7 @@ CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI_TEGRA=y
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
@@ -3982,8 +4048,8 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
-CONFIG_PHY_QCOM_USB_HSIC=m
-CONFIG_PHY_QCOM_USB_HS=m
+# CONFIG_PHY_QCOM_USB_HSIC is not set
+# CONFIG_PHY_QCOM_USB_HS is not set
CONFIG_PHY_ROCKCHIP_DP=m
CONFIG_PHY_ROCKCHIP_EMMC=m
CONFIG_PHY_ROCKCHIP_INNO_USB2=m
@@ -4021,14 +4087,13 @@ CONFIG_PINCTRL_SAMSUNG=y
CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SUNRISEPOINT is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PJ4B_ERRATA_4742=y
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
-# CONFIG_PL310_ERRATA_588369 is not set
-# CONFIG_PL310_ERRATA_727915 is not set
+CONFIG_PL310_ERRATA_588369=y
+CONFIG_PL310_ERRATA_727915=y
CONFIG_PL310_ERRATA_753970=y
CONFIG_PL310_ERRATA_769419=y
CONFIG_PL320_MBOX=y
@@ -4144,7 +4209,7 @@ CONFIG_PWRSEQ_SIMPLE=m
# CONFIG_QCOM_EMAC is not set
# CONFIG_QCOM_HIDMA is not set
# CONFIG_QCOM_HIDMA_MGMT is not set
-CONFIG_QCOM_IRQ_COMBINER=y
+CONFIG_QCOM_PM8XXX_XOADC=m
CONFIG_QEDE=m
CONFIG_QEDF=m
CONFIG_QEDI=m
@@ -4195,9 +4260,11 @@ CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RAW_DRIVER=y
@@ -4248,7 +4315,6 @@ CONFIG_REGULATOR_AD5398=m
# CONFIG_REGULATOR_ANATOP is not set
CONFIG_REGULATOR_AS3722=m
CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_CPCAP=m
CONFIG_REGULATOR_DA9210=m
CONFIG_REGULATOR_DA9211=m
# CONFIG_REGULATOR_DEBUG is not set
@@ -4286,6 +4352,7 @@ CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6507X=m
CONFIG_REGULATOR_TPS65090=m
+# CONFIG_REGULATOR_TPS65132 is not set
CONFIG_REGULATOR_TPS65217=y
CONFIG_REGULATOR_TPS6524X=m
CONFIG_REGULATOR_TPS6586X=m
@@ -4293,6 +4360,7 @@ CONFIG_REGULATOR_TPS65910=m
CONFIG_REGULATOR_TPS65912=m
CONFIG_REGULATOR_TPS80031=m
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VCTRL=m
CONFIG_REGULATOR_VEXPRESS=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_WM8994=m
@@ -4326,12 +4394,12 @@ CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
CONFIG_RMI4_SMB=m
CONFIG_RMI4_SPI=m
-CONFIG_ROCKCHIP_ANALOGIX_DP=m
-# CONFIG_ROCKCHIP_CDN_DP is not set
-CONFIG_ROCKCHIP_DW_HDMI=m
-CONFIG_ROCKCHIP_DW_MIPI_DSI=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_ROCKCHIP_EFUSE=m
-CONFIG_ROCKCHIP_INNO_HDMI=m
+CONFIG_ROCKCHIP_INNO_HDMI=y
CONFIG_ROCKCHIP_IODOMAIN=m
CONFIG_ROCKCHIP_IOMMU=y
CONFIG_ROCKCHIP_MBOX=y
@@ -4488,6 +4556,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4696,6 +4765,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCPI=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4992,7 +5062,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -5008,7 +5078,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -5043,6 +5115,7 @@ CONFIG_SND_HDA_TEGRA=m
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -5050,8 +5123,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB=m
@@ -5101,6 +5174,8 @@ CONFIG_SND_SIS7019=m
CONFIG_SND_SOC_AC97_BUS=y
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -5116,6 +5191,7 @@ CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5129,7 +5205,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -5148,12 +5226,16 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98090=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
+CONFIG_SND_SOC_ODROID=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -5258,8 +5340,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -5277,6 +5359,7 @@ CONFIG_SOC_EXYNOS5420=y
CONFIG_SOC_EXYNOS5440=y
CONFIG_SOC_EXYNOS5800=y
# CONFIG_SOC_OMAP5 is not set
+CONFIG_SOC_TEGRA_FLOWCTRL=y
# CONFIG_SOC_TI is not set
# CONFIG_SOC_ZTE is not set
CONFIG_SOFT_WATCHDOG=m
@@ -5341,6 +5424,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SRAM=y
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5377,12 +5461,13 @@ CONFIG_STRICT_MODULE_RWX=y
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
CONFIG_SUN4I_EMAC=m
-# CONFIG_SUN50I_A64_CCU is not set
+CONFIG_SUN4I_GPADC=m
CONFIG_SUN5I_CCU=y
CONFIG_SUN6I_A31_CCU=y
CONFIG_SUN8I_A23_CCU=y
CONFIG_SUN8I_A33_CCU=y
CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_R_CCU=y
CONFIG_SUN8I_V3S_CCU=y
CONFIG_SUN9I_A80_CCU=y
CONFIG_SUNDANCE=m
@@ -5417,6 +5502,7 @@ CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5440,6 +5526,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -5480,6 +5567,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
CONFIG_TCS3472=m
+# CONFIG_TEE is not set
CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
# CONFIG_TEGRA20_MC is not set
@@ -5520,6 +5608,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5548,6 +5637,7 @@ CONFIG_TI_DAVINCI_MDIO=m
CONFIG_TI_EDMA=y
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5559,7 +5649,7 @@ CONFIG_TIPC=m
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_SCI_PROTOCOL=m
CONFIG_TI_SOC_THERMAL=m
-# CONFIG_TI_ST is not set
+CONFIG_TI_ST=m
CONFIG_TI_SYSCON_RESET=m
CONFIG_TI_THERMAL=y
# CONFIG_TI_TLC4541 is not set
@@ -5627,6 +5717,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5669,12 +5760,17 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
# CONFIG_UACCESS_WITH_MEMCPY is not set
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5933,6 +6029,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5944,6 +6041,7 @@ CONFIG_USB_PWC=m
# CONFIG_USB_PXA27X is not set
# CONFIG_USB_R8A66597_HCD is not set
# 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_RTL8150=m
@@ -6129,6 +6227,7 @@ CONFIG_VIA_VELOCITY=m
CONFIG_VIDEO_AU0828=m
# CONFIG_VIDEO_AU0828_RC is not set
CONFIG_VIDEO_AU0828_V4L2=y
+# CONFIG_VIDEO_BCM2835 is not set
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_CPIA2=m
@@ -6244,6 +6343,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -6252,6 +6352,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -6279,6 +6380,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -6346,6 +6448,7 @@ CONFIG_WQ_WATCHDOG=y
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_PTDUMP=y
CONFIG_XEN_BACKEND=y
# CONFIG_XEN_BALLOON is not set
@@ -6408,3 +6511,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-armv7hl-lpae.config b/kernel-armv7hl-lpae.config
index e515dbcca..b9666f82a 100644
--- a/kernel-armv7hl-lpae.config
+++ b/kernel-armv7hl-lpae.config
@@ -116,6 +116,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
CONFIG_AEABI=y
# CONFIG_AFE4403 is not set
@@ -125,6 +127,7 @@ CONFIG_AEABI=y
# CONFIG_AF_RXRPC is not set
# CONFIG_AFS_FS is not set
# CONFIG_AHCI_CEVA is not set
+CONFIG_AHCI_DM816=m
CONFIG_AHCI_MVEBU=m
# CONFIG_AHCI_QORIQ is not set
CONFIG_AHCI_SUNXI=m
@@ -146,7 +149,7 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000
CONFIG_AIX_PARTITION=y
# CONFIG_AK09911 is not set
# CONFIG_AK8974 is not set
-# CONFIG_AK8975 is not set
+CONFIG_AK8975=m
# CONFIG_AL3320A is not set
CONFIG_ALI_FIR=m
CONFIG_ALIM1535_WDT=m
@@ -236,6 +239,7 @@ CONFIG_ARCH_VIRT=y
# CONFIG_ARCH_ZX is not set
# CONFIG_ARCH_ZYNQ is not set
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARMADA_THERMAL=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
@@ -418,6 +422,7 @@ CONFIG_AX25_DAMA_SLAVE=y
CONFIG_AX25=m
CONFIG_AX88796_93CX6=y
CONFIG_AX88796=m
+CONFIG_AXP20X_ADC=m
CONFIG_AXP20X_POWER=m
CONFIG_AXP288_ADC=m
CONFIG_AXP288_CHARGER=m
@@ -447,6 +452,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=m
@@ -471,12 +477,14 @@ CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_MCAST=y
CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATTERY_AXP20X=m
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_DS2760 is not set
# 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_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
CONFIG_BATTERY_SBS=m
@@ -488,6 +496,7 @@ CONFIG_BAYCOM_SER_HDX=m
# CONFIG_BCACHE_DEBUG is not set
CONFIG_BCACHE=m
CONFIG_BCM2835_MBOX=y
+CONFIG_BCM2835_THERMAL=m
# CONFIG_BCM2835_VCHIQ is not set
CONFIG_BCM2835_WDT=m
CONFIG_BCM63XX_PHY=m
@@ -502,13 +511,16 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_BCM_VIDEOCORE is not set
CONFIG_BE2ISCSI=m
# CONFIG_BE2NET_HWMON is not set
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BEFS_FS is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -531,7 +543,6 @@ CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -556,6 +567,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -662,6 +674,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -715,14 +728,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -740,6 +756,7 @@ CONFIG_CAN_SUN4I=m
# CONFIG_CAN_TI_HECC is not set
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
# CONFIG_CAPI_EICON is not set
@@ -761,6 +778,7 @@ CONFIG_CC_STACKPROTECTOR_NONE=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -872,7 +890,6 @@ CONFIG_CNIC=m
# CONFIG_COMMON_CLK_CDCE925 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
CONFIG_COMMON_CLK_MAX77686=m
-CONFIG_COMMON_CLK_MAX77802=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_RK808=m
CONFIG_COMMON_CLK_S2MPS11=m
@@ -968,7 +985,9 @@ CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_CRYPTO_DEV_EXYNOS_RNG=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
CONFIG_CRYPTO_DEV_MARVELL_CESA=m
@@ -977,7 +996,7 @@ CONFIG_CRYPTO_DEV_ROCKCHIP=m
CONFIG_CRYPTO_DEV_S5P=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1181,6 +1200,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1246,6 +1266,7 @@ CONFIG_DRM_EXYNOS_MIXER=y
CONFIG_DRM_EXYNOS_ROTATOR=y
CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FSL_DCU is not set
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
@@ -1262,6 +1283,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_LVDS_ENCODER=m
CONFIG_DRM=m
CONFIG_DRM_MALI_DISPLAY=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
@@ -1270,20 +1293,24 @@ CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_NXP_PTN3460=m
# CONFIG_DRM_OMAP is not set
-CONFIG_DRM_PANEL_JDI_LT070ME05000=m
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
+CONFIG_DRM_PANEL_LVDS=m
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
CONFIG_DRM_PARADE_PS8622=m
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
CONFIG_DRM_ROCKCHIP=m
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
@@ -1409,16 +1436,17 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_HIGHBANK_L2=m
CONFIG_EDAC_HIGHBANK_MC=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_MV64X60=m
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1476,7 +1504,6 @@ CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXTCON_ADC_JACK=m
CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON_MAX3355 is not set
CONFIG_EXTCON_MAX8997=m
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
@@ -1692,6 +1719,7 @@ CONFIG_GPIO_DAVINCI=y
CONFIG_GPIO_DEVRES=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_GRGPIO is not set
@@ -1743,6 +1771,7 @@ CONFIG_HAVE_ARM_ARCH_TIMER=y
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_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1754,6 +1783,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1797,6 +1827,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1818,12 +1849,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1922,7 +1955,6 @@ CONFIG_HWMON=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_BCM2835=m
-CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_OMAP=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
@@ -1973,6 +2005,7 @@ CONFIG_I2C_HID=m
CONFIG_I2C_MESON=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
CONFIG_I2C_MUX_PCA9541=m
@@ -2031,6 +2064,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2048,6 +2083,7 @@ CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
# CONFIG_IIO_HRTIMER_TRIGGER is not set
@@ -2176,7 +2212,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2210,6 +2245,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2393,6 +2429,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2505,6 +2542,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2595,7 +2634,9 @@ CONFIG_KUSER_HELPERS=y
CONFIG_KVM_ARM_HOST=y
CONFIG_KVM=y
CONFIG_KXCJK1013=m
-# CONFIG_KXSD9 is not set
+CONFIG_KXSD9_I2C=m
+CONFIG_KXSD9=m
+CONFIG_KXSD9_SPI=m
CONFIG_L2TP_DEBUGFS=m
CONFIG_L2TP_ETH=m
CONFIG_L2TP_IP=m
@@ -2631,7 +2672,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_GPIO_REGISTER=y
# CONFIG_LEDS_IS31FL319X is not set
@@ -2707,7 +2747,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2720,6 +2759,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2748,6 +2788,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=32768
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2801,14 +2843,17 @@ CONFIG_MANTIS_CORE=m
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
# CONFIG_MC3230 is not set
@@ -2848,6 +2893,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2906,7 +2952,7 @@ CONFIG_MFD_AXP20X_RSB=m
CONFIG_MFD_AXP20X=y
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -2941,7 +2987,6 @@ CONFIG_MFD_MAX8997=y
# CONFIG_MFD_NVEC is not set
# CONFIG_MFD_PALMAS is not set
# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_PM8921_CORE is not set
# CONFIG_MFD_PM8XXX is not set
# CONFIG_MFD_RC5T583 is not set
# CONFIG_MFD_RDC321X is not set
@@ -2957,6 +3002,7 @@ CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_SM501_GPIO=y
CONFIG_MFD_SM501=m
# CONFIG_MFD_SMSC is not set
+CONFIG_MFD_SPMI_PMIC=m
# CONFIG_MFD_STMPE is not set
CONFIG_MFD_SUN4I_GPADC=m
CONFIG_MFD_SYSCON=y
@@ -2965,6 +3011,7 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_TC6387XB is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -3016,6 +3063,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -3075,6 +3123,7 @@ CONFIG_MMC_SDHCI_PXAV3=m
CONFIG_MMC_SDHCI_S3C_DMA=y
CONFIG_MMC_SDHCI_S3C=m
CONFIG_MMC_SDHCI_TEGRA=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_SPI=m
CONFIG_MMC_SUNXI=m
@@ -3096,7 +3145,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3128,8 +3176,9 @@ CONFIG_MPL115=m
CONFIG_MPL3115=m
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3272,6 +3321,7 @@ CONFIG_NEON=y
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3315,11 +3365,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3441,6 +3495,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3751,12 +3806,14 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=32
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
# CONFIG_NTB is not set
# CONFIG_NTFS_FS is not set
CONFIG_NTP_PPS=y
CONFIG_NVME_FC=m
+CONFIG_NVMEM_IMX_IIM=m
CONFIG_NVMEM=m
CONFIG_NVMEM_SUNXI_SID=m
CONFIG_NVME_RDMA=m
@@ -3895,6 +3952,9 @@ CONFIG_PCF50633_GPIO=m
# CONFIG_PCH_GBE is not set
CONFIG_PCI_AARDVARK=y
# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_DRA7XX_EP is not set
+# CONFIG_PCI_DRA7XX_HOST is not set
+# CONFIG_PCI_DRA7XX is not set
CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIE_ALTERA is not set
@@ -3902,18 +3962,23 @@ CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW_HOST=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_ROCKCHIP=y
CONFIG_PCI_EXYNOS=y
+# CONFIG_PCI_FTPCI100 is not set
CONFIG_PCI_HERMES=m
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCI_IOV=y
CONFIG_PCI_KEYSTONE=y
# CONFIG_PCI_LAYERSCAPE is not set
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MVEBU=y
CONFIG_PCI_PASID=y
@@ -3921,6 +3986,7 @@ CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI_TEGRA=y
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
@@ -3961,8 +4027,8 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
-CONFIG_PHY_QCOM_USB_HSIC=m
-CONFIG_PHY_QCOM_USB_HS=m
+# CONFIG_PHY_QCOM_USB_HSIC is not set
+# CONFIG_PHY_QCOM_USB_HS is not set
CONFIG_PHY_ROCKCHIP_DP=m
CONFIG_PHY_ROCKCHIP_EMMC=m
CONFIG_PHY_ROCKCHIP_INNO_USB2=m
@@ -4000,14 +4066,13 @@ CONFIG_PINCTRL_SAMSUNG=y
CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SUNRISEPOINT is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PJ4B_ERRATA_4742=y
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
-# CONFIG_PL310_ERRATA_588369 is not set
-# CONFIG_PL310_ERRATA_727915 is not set
+CONFIG_PL310_ERRATA_588369=y
+CONFIG_PL310_ERRATA_727915=y
CONFIG_PL310_ERRATA_753970=y
CONFIG_PL310_ERRATA_769419=y
CONFIG_PL320_MBOX=y
@@ -4122,7 +4187,7 @@ CONFIG_PWRSEQ_SIMPLE=m
# CONFIG_QCOM_EMAC is not set
# CONFIG_QCOM_HIDMA is not set
# CONFIG_QCOM_HIDMA_MGMT is not set
-CONFIG_QCOM_IRQ_COMBINER=y
+CONFIG_QCOM_PM8XXX_XOADC=m
CONFIG_QEDE=m
CONFIG_QEDF=m
CONFIG_QEDI=m
@@ -4173,9 +4238,11 @@ CONFIG_RADIO_TERRATEC=m
CONFIG_RADIO_TRUST=m
CONFIG_RADIO_TYPHOON=m
CONFIG_RADIO_WL1273=m
+CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RAW_DRIVER=y
@@ -4226,7 +4293,6 @@ CONFIG_REGULATOR_AD5398=m
# CONFIG_REGULATOR_ANATOP is not set
CONFIG_REGULATOR_AS3722=m
CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_CPCAP=m
CONFIG_REGULATOR_DA9210=m
CONFIG_REGULATOR_DA9211=m
# CONFIG_REGULATOR_DEBUG is not set
@@ -4264,6 +4330,7 @@ CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6507X=m
CONFIG_REGULATOR_TPS65090=m
+# CONFIG_REGULATOR_TPS65132 is not set
CONFIG_REGULATOR_TPS65217=y
CONFIG_REGULATOR_TPS6524X=m
CONFIG_REGULATOR_TPS6586X=m
@@ -4271,6 +4338,7 @@ CONFIG_REGULATOR_TPS65910=m
CONFIG_REGULATOR_TPS65912=m
CONFIG_REGULATOR_TPS80031=m
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VCTRL=m
CONFIG_REGULATOR_VEXPRESS=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_WM8994=m
@@ -4304,12 +4372,12 @@ CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
CONFIG_RMI4_SMB=m
CONFIG_RMI4_SPI=m
-CONFIG_ROCKCHIP_ANALOGIX_DP=m
-# CONFIG_ROCKCHIP_CDN_DP is not set
-CONFIG_ROCKCHIP_DW_HDMI=m
-CONFIG_ROCKCHIP_DW_MIPI_DSI=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_ROCKCHIP_EFUSE=m
-CONFIG_ROCKCHIP_INNO_HDMI=m
+CONFIG_ROCKCHIP_INNO_HDMI=y
CONFIG_ROCKCHIP_IODOMAIN=m
CONFIG_ROCKCHIP_IOMMU=y
CONFIG_ROCKCHIP_MBOX=y
@@ -4466,6 +4534,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4674,6 +4743,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCPI=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4970,7 +5040,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4986,7 +5056,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -5021,6 +5093,7 @@ CONFIG_SND_HDA_TEGRA=m
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -5028,8 +5101,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB=m
@@ -5078,6 +5151,8 @@ CONFIG_SND_SIS7019=m
CONFIG_SND_SOC_AC97_BUS=y
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -5093,6 +5168,7 @@ CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5106,7 +5182,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -5125,12 +5203,16 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_IMX_ES8328 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98090=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
+CONFIG_SND_SOC_ODROID=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -5235,8 +5317,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -5254,6 +5336,7 @@ CONFIG_SOC_EXYNOS5420=y
CONFIG_SOC_EXYNOS5440=y
CONFIG_SOC_EXYNOS5800=y
# CONFIG_SOC_OMAP5 is not set
+CONFIG_SOC_TEGRA_FLOWCTRL=y
# CONFIG_SOC_TI is not set
# CONFIG_SOC_ZTE is not set
CONFIG_SOFT_WATCHDOG=m
@@ -5318,6 +5401,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SRAM=y
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5354,12 +5438,13 @@ CONFIG_STRICT_MODULE_RWX=y
CONFIG_STRIP_ASM_SYMS=y
# CONFIG_STRIP is not set
CONFIG_SUN4I_EMAC=m
-# CONFIG_SUN50I_A64_CCU is not set
+CONFIG_SUN4I_GPADC=m
CONFIG_SUN5I_CCU=y
CONFIG_SUN6I_A31_CCU=y
CONFIG_SUN8I_A23_CCU=y
CONFIG_SUN8I_A33_CCU=y
CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_R_CCU=y
CONFIG_SUN8I_V3S_CCU=y
CONFIG_SUN9I_A80_CCU=y
CONFIG_SUNDANCE=m
@@ -5394,6 +5479,7 @@ CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5417,6 +5503,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -5457,6 +5544,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
CONFIG_TCS3472=m
+# CONFIG_TEE is not set
CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
# CONFIG_TEGRA20_MC is not set
@@ -5497,6 +5585,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5525,6 +5614,7 @@ CONFIG_TI_DAVINCI_MDIO=m
CONFIG_TI_EDMA=y
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5536,7 +5626,7 @@ CONFIG_TIPC=m
CONFIG_TIPC_MEDIA_UDP=y
CONFIG_TI_SCI_PROTOCOL=m
CONFIG_TI_SOC_THERMAL=m
-# CONFIG_TI_ST is not set
+CONFIG_TI_ST=m
CONFIG_TI_SYSCON_RESET=m
CONFIG_TI_THERMAL=y
# CONFIG_TI_TLC4541 is not set
@@ -5604,6 +5694,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5646,12 +5737,17 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
# CONFIG_UACCESS_WITH_MEMCPY is not set
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5910,6 +6006,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5921,6 +6018,7 @@ CONFIG_USB_PWC=m
# CONFIG_USB_PXA27X is not set
# CONFIG_USB_R8A66597_HCD is not set
# 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_RTL8150=m
@@ -6106,6 +6204,7 @@ CONFIG_VIA_VELOCITY=m
CONFIG_VIDEO_AU0828=m
# CONFIG_VIDEO_AU0828_RC is not set
CONFIG_VIDEO_AU0828_V4L2=y
+# CONFIG_VIDEO_BCM2835 is not set
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_CPIA2=m
@@ -6221,6 +6320,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -6229,6 +6329,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -6256,6 +6357,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -6323,6 +6425,7 @@ CONFIG_WM8350_WATCHDOG=m
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
+CONFIG_X86_MCELOG_LEGACY=y
# CONFIG_X86_PTDUMP is not set
CONFIG_XEN_BACKEND=y
# CONFIG_XEN_BALLOON is not set
@@ -6385,3 +6488,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-armv7hl.config b/kernel-armv7hl.config
index cbe6d8aa3..19187df50 100644
--- a/kernel-armv7hl.config
+++ b/kernel-armv7hl.config
@@ -116,6 +116,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
CONFIG_AEABI=y
# CONFIG_AFE4403 is not set
@@ -125,6 +127,7 @@ CONFIG_AEABI=y
# CONFIG_AF_RXRPC is not set
# CONFIG_AFS_FS is not set
# CONFIG_AHCI_CEVA is not set
+CONFIG_AHCI_DM816=m
CONFIG_AHCI_IMX=m
CONFIG_AHCI_MVEBU=m
# CONFIG_AHCI_QORIQ is not set
@@ -245,6 +248,7 @@ CONFIG_ARCH_VIRT=y
# CONFIG_ARCH_ZX is not set
CONFIG_ARCH_ZYNQ=y
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARMADA_THERMAL=m
CONFIG_ARM_AMBA=y
CONFIG_ARM_APPENDED_DTB=y
@@ -433,6 +437,7 @@ CONFIG_AX25=m
CONFIG_AX88796_93CX6=y
CONFIG_AX88796=m
CONFIG_AXI_DMAC=m
+CONFIG_AXP20X_ADC=m
CONFIG_AXP20X_POWER=m
CONFIG_AXP288_ADC=m
CONFIG_AXP288_CHARGER=m
@@ -462,6 +467,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_DA9052=m
@@ -489,6 +495,7 @@ CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV=m
CONFIG_BATMAN_ADV_MCAST=y
CONFIG_BATMAN_ADV_NC=y
+CONFIG_BATTERY_AXP20X=m
CONFIG_BATTERY_BQ27XXX_I2C=m
CONFIG_BATTERY_BQ27XXX=m
CONFIG_BATTERY_DA9052=m
@@ -497,6 +504,7 @@ CONFIG_BATTERY_DA9052=m
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
CONFIG_BATTERY_RX51=m
@@ -510,6 +518,7 @@ CONFIG_BAYCOM_SER_HDX=m
# CONFIG_BCACHE_DEBUG is not set
CONFIG_BCACHE=m
CONFIG_BCM2835_MBOX=y
+CONFIG_BCM2835_THERMAL=m
# CONFIG_BCM2835_VCHIQ is not set
CONFIG_BCM2835_WDT=m
CONFIG_BCM63XX_PHY=m
@@ -524,13 +533,16 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_BCM_VIDEOCORE is not set
CONFIG_BE2ISCSI=m
# CONFIG_BE2NET_HWMON is not set
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BEFS_FS is not set
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -553,7 +565,6 @@ CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -578,6 +589,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -684,6 +696,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -738,14 +751,17 @@ 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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -763,6 +779,7 @@ CONFIG_CAN_SUN4I=m
# CONFIG_CAN_TI_HECC is not set
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
# CONFIG_CAPI_EICON is not set
@@ -784,6 +801,7 @@ CONFIG_CC_STACKPROTECTOR_NONE=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -899,7 +917,6 @@ CONFIG_COMMON_CLK_AXI_CLKGEN=m
# CONFIG_COMMON_CLK_CDCE925 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
CONFIG_COMMON_CLK_MAX77686=m
-CONFIG_COMMON_CLK_MAX77802=m
CONFIG_COMMON_CLK_PALMAS=m
CONFIG_COMMON_CLK_PWM=m
CONFIG_COMMON_CLK_QCOM=y
@@ -908,7 +925,7 @@ CONFIG_COMMON_CLK_S2MPS11=m
CONFIG_COMMON_CLK_SCPI=m
# CONFIG_COMMON_CLK_SI514 is not set
CONFIG_COMMON_CLK_SI5351=m
-CONFIG_COMMON_CLK_SI570=m
+# CONFIG_COMMON_CLK_SI570 is not set
CONFIG_COMMON_CLK_TI_ADPLL=m
# CONFIG_COMMON_CLK_VC5 is not set
CONFIG_COMMON_CLK_VERSATILE=y
@@ -998,7 +1015,9 @@ CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
+CONFIG_CRYPTO_DEV_EXYNOS_RNG=m
CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=m
CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=m
# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
@@ -1026,7 +1045,7 @@ CONFIG_CRYPTO_DEV_S5P=m
CONFIG_CRYPTO_DEV_SAHARA=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1232,6 +1251,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1299,6 +1319,7 @@ CONFIG_DRM_EXYNOS_MIXER=y
CONFIG_DRM_EXYNOS_ROTATOR=y
CONFIG_DRM_EXYNOS_VIDI=y
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_FSL_DCU is not set
CONFIG_DRM_HDLCD=m
# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set
@@ -1320,6 +1341,8 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_LVDS_ENCODER=m
CONFIG_DRM=m
CONFIG_DRM_MALI_DISPLAY=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+CONFIG_DRM_MESON_DW_HDMI=m
CONFIG_DRM_MESON=m
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
@@ -1352,20 +1375,24 @@ 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_JDI_LT070ME05000=m
+# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
CONFIG_DRM_PANEL_LG_LG4573=m
+CONFIG_DRM_PANEL_LVDS=m
CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00=m
CONFIG_DRM_PANEL_SAMSUNG_LD9040=m
+CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m
CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
CONFIG_DRM_PANEL_SHARP_LQ101R1SX01=m
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_PANEL_SIMPLE=m
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
CONFIG_DRM_PARADE_PS8622=m
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
CONFIG_DRM_ROCKCHIP=m
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
@@ -1494,16 +1521,17 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_HIGHBANK_L2=m
CONFIG_EDAC_HIGHBANK_MC=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_MV64X60=m
CONFIG_EDAC_SYNOPSYS=m
CONFIG_EDAC=y
@@ -1562,7 +1590,6 @@ CONFIG_EXT4_USE_FOR_EXT2=y
CONFIG_EXTCON_ADC_JACK=m
CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON_MAX3355 is not set
CONFIG_EXTCON_MAX8997=m
CONFIG_EXTCON_PALMAS=m
@@ -1785,6 +1812,7 @@ CONFIG_GPIO_DA9055=m
CONFIG_GPIO_DEVRES=y
CONFIG_GPIO_DWAPB=m
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
CONFIG_GPIO_GENERIC_PLATFORM=y
CONFIG_GPIO_GENERIC=y
# CONFIG_GPIO_GRGPIO is not set
@@ -1844,6 +1872,7 @@ CONFIG_HAVE_ARM_ARCH_TIMER=y
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_HDQ_MASTER_OMAP=m
CONFIG_HEADERS_CHECK=y
@@ -1856,6 +1885,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1899,6 +1929,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1920,12 +1951,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -2022,7 +2055,6 @@ CONFIG_HWMON=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_BCM2835=m
-CONFIG_HW_RANDOM_EXYNOS=m
CONFIG_HW_RANDOM_MESON=m
CONFIG_HW_RANDOM_MSM=m
CONFIG_HW_RANDOM_MXC_RNGA=m
@@ -2080,6 +2112,7 @@ CONFIG_I2C_IMX=m
CONFIG_I2C_MESON=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
CONFIG_I2C_MUX_PCA9541=m
@@ -2141,6 +2174,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2158,6 +2193,7 @@ CONFIG_IIO_BUFFER=y
CONFIG_IIO_CONFIGFS=m
CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
CONFIG_IIO_CROS_EC_BARO=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_IIO_CROS_EC_SENSORS_CORE=m
CONFIG_IIO_CROS_EC_SENSORS=m
# CONFIG_IIO_HRTIMER_TRIGGER is not set
@@ -2190,6 +2226,7 @@ CONFIG_IMA_MEASURE_PCR_IDX=10
# CONFIG_IMG_ASCII_LCD is not set
CONFIG_IMX2_WDT=m
CONFIG_IMX7D_ADC=m
+CONFIG_IMX7_PM_DOMAINS=y
CONFIG_IMX_DMA=m
CONFIG_IMX_GPCV2=y
CONFIG_IMX_IPUV3_CORE=m
@@ -2296,7 +2333,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PALMAS_PWRBUTTON=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
@@ -2335,6 +2371,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set
CONFIG_IOMMU_IO_PGTABLE_LPAE=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2519,6 +2556,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2631,6 +2669,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2763,7 +2803,6 @@ CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_DA9052=m
CONFIG_LEDS_DAC124S085=m
-CONFIG_LEDS_DELL_NETBOOKS=m
CONFIG_LEDS_GPIO=m
CONFIG_LEDS_GPIO_REGISTER=y
# CONFIG_LEDS_IS31FL319X is not set
@@ -2841,7 +2880,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2854,6 +2892,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2882,6 +2921,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=32768
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2942,14 +2983,17 @@ CONFIG_MANTIS_CORE=m
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
# CONFIG_MC3230 is not set
@@ -2991,6 +3035,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -3049,7 +3094,7 @@ CONFIG_MFD_AXP20X_RSB=m
CONFIG_MFD_AXP20X=y
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_CROS_EC=m
CONFIG_MFD_CROS_EC_SPI=m
@@ -3085,7 +3130,6 @@ CONFIG_MFD_NVEC=y
CONFIG_MFD_OMAP_USB_HOST=y
CONFIG_MFD_PALMAS=y
# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_PM8921_CORE is not set
CONFIG_MFD_PM8XXX=m
CONFIG_MFD_QCOM_RPM=m
# CONFIG_MFD_RC5T583 is not set
@@ -3111,6 +3155,7 @@ CONFIG_MFD_T7L66XB=y
CONFIG_MFD_TC6387XB=y
# CONFIG_MFD_TC6393XB is not set
CONFIG_MFD_TI_AM335X_TSCADC=m
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -3162,6 +3207,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -3227,6 +3273,7 @@ CONFIG_MMC_SDHCI_S3C_DMA=y
CONFIG_MMC_SDHCI_S3C=m
CONFIG_MMC_SDHCI_ST=m
CONFIG_MMC_SDHCI_TEGRA=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
CONFIG_MMC_SPI=m
CONFIG_MMC_SUNXI=m
@@ -3250,7 +3297,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3284,6 +3330,7 @@ CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3443,6 +3490,7 @@ CONFIG_NEON=y
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3486,11 +3534,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3612,6 +3664,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3925,6 +3978,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOUVEAU_PLATFORM_DRIVER=y
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=32
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
# CONFIG_NTB is not set
@@ -3933,6 +3987,7 @@ CONFIG_NTP_PPS=y
CONFIG_NVEC_PAZ00=y
CONFIG_NVEC_POWER=y
CONFIG_NVME_FC=m
+CONFIG_NVMEM_IMX_IIM=m
CONFIG_NVMEM_IMX_OCOTP=m
CONFIG_NVMEM=m
CONFIG_NVMEM_SUNXI_SID=m
@@ -4108,7 +4163,9 @@ CONFIG_PCF50633_GPIO=m
# CONFIG_PCH_GBE is not set
CONFIG_PCI_AARDVARK=y
# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_DRA7XX=y
+# CONFIG_PCI_DRA7XX_EP is not set
+# CONFIG_PCI_DRA7XX_HOST is not set
+# CONFIG_PCI_DRA7XX is not set
CONFIG_PCIEAER_INJECT=m
CONFIG_PCIEAER=y
# CONFIG_PCIE_ALTERA is not set
@@ -4116,20 +4173,25 @@ CONFIG_PCIEAER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
+CONFIG_PCIE_DW_HOST=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_DW=y
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCIE_QCOM=y
CONFIG_PCIE_ROCKCHIP=y
CONFIG_PCIE_XILINX=y
CONFIG_PCI_EXYNOS=y
+# CONFIG_PCI_FTPCI100 is not set
CONFIG_PCI_HERMES=m
CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCI_IMX6=y
CONFIG_PCI_IOV=y
# CONFIG_PCI_LAYERSCAPE is not set
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_MVEBU=y
CONFIG_PCI_PASID=y
@@ -4137,6 +4199,7 @@ CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI_TEGRA=y
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
@@ -4181,6 +4244,8 @@ CONFIG_PHY_MVEBU_SATA=y
# CONFIG_PHY_PXA_28NM_USB2 is not set
CONFIG_PHY_QCOM_APQ8064_SATA=m
# CONFIG_PHY_QCOM_IPQ806X_SATA is not set
+CONFIG_PHY_QCOM_QMP=m
+CONFIG_PHY_QCOM_QUSB2=m
CONFIG_PHY_QCOM_UFS=m
CONFIG_PHY_QCOM_USB_HSIC=m
CONFIG_PHY_QCOM_USB_HS=m
@@ -4233,7 +4298,6 @@ CONFIG_PINCTRL_SAMSUNG=y
CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_SUNRISEPOINT is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINCTRL_ZYNQ=y
CONFIG_PINMUX=y
@@ -4376,11 +4440,11 @@ CONFIG_QCOM_COINCELL=m
CONFIG_QCOM_GSBI=m
# CONFIG_QCOM_HIDMA is not set
# CONFIG_QCOM_HIDMA_MGMT is not set
-CONFIG_QCOM_IRQ_COMBINER=y
+CONFIG_QCOM_IOMMU=y
+CONFIG_QCOM_PM8XXX_XOADC=m
CONFIG_QCOM_PM=y
CONFIG_QCOM_Q6V5_PIL=m
CONFIG_QCOM_QFPROM=m
-CONFIG_QCOM_SMD=m
CONFIG_QCOM_SMD_RPM=m
CONFIG_QCOM_SMEM=m
CONFIG_QCOM_SMP2P=m
@@ -4446,6 +4510,7 @@ CONFIG_RADIO_WL128X=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RAS_CEC=y
CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_RAW_DRIVER=y
@@ -4499,7 +4564,6 @@ CONFIG_REGULATOR_AD5398=m
CONFIG_REGULATOR_ANATOP=m
CONFIG_REGULATOR_AS3722=m
CONFIG_REGULATOR_AXP20X=m
-CONFIG_REGULATOR_CPCAP=m
CONFIG_REGULATOR_DA9052=m
CONFIG_REGULATOR_DA9055=m
CONFIG_REGULATOR_DA9210=m
@@ -4548,6 +4612,7 @@ CONFIG_REGULATOR_TPS62360=m
CONFIG_REGULATOR_TPS65023=m
CONFIG_REGULATOR_TPS6507X=m
CONFIG_REGULATOR_TPS65090=m
+# CONFIG_REGULATOR_TPS65132 is not set
CONFIG_REGULATOR_TPS65217=m
CONFIG_REGULATOR_TPS65218=m
CONFIG_REGULATOR_TPS6524X=m
@@ -4557,6 +4622,7 @@ CONFIG_REGULATOR_TPS65912=m
CONFIG_REGULATOR_TPS80031=m
CONFIG_REGULATOR_TWL4030=y
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VCTRL=m
CONFIG_REGULATOR_VEXPRESS=m
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
CONFIG_REGULATOR_WM8994=m
@@ -4590,12 +4656,12 @@ CONFIG_RMI4_F55=y
CONFIG_RMI4_I2C=m
CONFIG_RMI4_SMB=m
CONFIG_RMI4_SPI=m
-CONFIG_ROCKCHIP_ANALOGIX_DP=m
-# CONFIG_ROCKCHIP_CDN_DP is not set
-CONFIG_ROCKCHIP_DW_HDMI=m
-CONFIG_ROCKCHIP_DW_MIPI_DSI=m
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
CONFIG_ROCKCHIP_EFUSE=m
-CONFIG_ROCKCHIP_INNO_HDMI=m
+CONFIG_ROCKCHIP_INNO_HDMI=y
CONFIG_ROCKCHIP_IODOMAIN=m
CONFIG_ROCKCHIP_IOMMU=y
CONFIG_ROCKCHIP_MBOX=y
@@ -4766,6 +4832,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4974,6 +5041,7 @@ CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ARM_SCPI=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DA9052_ADC=m
@@ -5183,6 +5251,7 @@ CONFIG_SERIAL_ST_ASC=y
CONFIG_SERIAL_TEGRA=y
# CONFIG_SERIAL_TIMBERDALE is not set
CONFIG_SERIAL_UARTLITE_CONSOLE=y
+CONFIG_SERIAL_UARTLITE_NR_UARTS=1
CONFIG_SERIAL_UARTLITE=y
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
CONFIG_SERIAL_XILINX_PS_UART=y
@@ -5292,7 +5361,7 @@ CONFIG_SND_DAVINCI_SOC_VCIF=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -5308,7 +5377,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -5343,6 +5414,7 @@ CONFIG_SND_HDA_TEGRA=m
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_IMX_SOC=m
@@ -5351,8 +5423,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB=m
@@ -5413,6 +5485,8 @@ CONFIG_SND_SIS7019=m
CONFIG_SND_SOC_AC97_BUS=y
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_ADAU7002 is not set
CONFIG_SND_SOC_ADI_AXI_I2S=m
CONFIG_SND_SOC_ADI_AXI_SPDIF=m
@@ -5431,6 +5505,7 @@ CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -5444,7 +5519,9 @@ CONFIG_SND_SOC_CS42L42=m
CONFIG_SND_SOC_CS42XX8_I2C=m
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -5475,12 +5552,17 @@ CONFIG_SND_SOC_IMX_WM8962=m
CONFIG_SND_SOC_LPASS_CPU=m
CONFIG_SND_SOC_LPASS_PLATFORM=m
CONFIG_SND_SOC=m
+CONFIG_SND_SOC_MAX98090=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
-CONFIG_SND_SOC_MSM8916_WCD_ANALOG=m
+CONFIG_SND_SOC_MAX98927=m
+# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
+CONFIG_SND_SOC_MSM8916_WCD_ANALOg=m
CONFIG_SND_SOC_MSM8916_WCD_DIGITAL=m
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
+CONFIG_SND_SOC_ODROID=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -5591,8 +5673,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -5628,6 +5710,7 @@ CONFIG_SOC_OMAP5=y
CONFIG_SOC_STIH407=y
# CONFIG_SOC_STIH415 is not set
# CONFIG_SOC_STIH416 is not set
+CONFIG_SOC_TEGRA_FLOWCTRL=y
CONFIG_SOC_TI81XX=y
# CONFIG_SOC_TI is not set
# CONFIG_SOC_VF610 is not set
@@ -5702,6 +5785,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SRAM=y
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5747,12 +5831,13 @@ CONFIG_ST_THERMAL=m
CONFIG_ST_THERMAL_MEMMAP=m
# CONFIG_ST_THERMAL_SYSCFG is not set
CONFIG_SUN4I_EMAC=m
-# CONFIG_SUN50I_A64_CCU is not set
+CONFIG_SUN4I_GPADC=m
CONFIG_SUN5I_CCU=y
CONFIG_SUN6I_A31_CCU=y
CONFIG_SUN8I_A23_CCU=y
CONFIG_SUN8I_A33_CCU=y
CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_R_CCU=y
CONFIG_SUN8I_V3S_CCU=y
CONFIG_SUN9I_A80_CCU=y
CONFIG_SUNDANCE=m
@@ -5786,6 +5871,7 @@ CONFIG_SYSCON_REBOOT_MODE=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5809,6 +5895,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
CONFIG_TCG_TIS_I2C_ATMEL=m
@@ -5849,6 +5936,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
CONFIG_TCS3472=m
+# CONFIG_TEE is not set
CONFIG_TEGRA124_EMC=y
CONFIG_TEGRA20_APB_DMA=y
CONFIG_TEGRA20_MC=y
@@ -5889,6 +5977,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5925,6 +6014,7 @@ CONFIG_TI_EDMA=y
CONFIG_TI_EMIF=m
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -6006,6 +6096,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
CONFIG_TOUCHSCREEN_TSC2005=m
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -6054,12 +6145,17 @@ CONFIG_TWL4030_WATCHDOG=m
CONFIG_TWL6030_GPADC=m
CONFIG_TWL6030_USB=m
CONFIG_TWL6040_CORE=y
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
# CONFIG_UACCESS_WITH_MEMCPY is not set
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -6335,6 +6431,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG_WHITELIST is not set
CONFIG_USB_OTG=y
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -6347,6 +6444,7 @@ CONFIG_USB_PWC=m
CONFIG_USB_QCOM_8X16_PHY=m
# CONFIG_USB_R8A66597_HCD is not set
# 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_RTL8150=m
@@ -6535,6 +6633,7 @@ CONFIG_VIDEO_AM437X_VPFE=m
CONFIG_VIDEO_AU0828=m
# CONFIG_VIDEO_AU0828_RC is not set
CONFIG_VIDEO_AU0828_V4L2=y
+# CONFIG_VIDEO_BCM2835 is not set
CONFIG_VIDEO_BT848=m
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_VIDEO_CODA=m
@@ -6665,6 +6764,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -6673,6 +6773,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -6701,6 +6802,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -6770,6 +6872,7 @@ CONFIG_WM8350_WATCHDOG=m
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
+CONFIG_X86_MCELOG_LEGACY=y
# CONFIG_X86_PTDUMP is not set
# CONFIG_XEN is not set
CONFIG_XFRM_MIGRATE=y
@@ -6820,3 +6923,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-i686-PAE.config b/kernel-i686-PAE.config
index 295b2e607..bf5c983c9 100644
--- a/kernel-i686-PAE.config
+++ b/kernel-i686-PAE.config
@@ -151,6 +151,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -223,6 +225,7 @@ CONFIG_APPLE_PROPERTIES=y
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_NB_WMI=m
@@ -349,6 +352,7 @@ CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -380,6 +384,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
CONFIG_BATTERY_OLPC=y
@@ -404,6 +409,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -411,6 +417,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -433,7 +440,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -458,6 +464,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -561,6 +568,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -609,14 +617,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -630,6 +641,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -651,6 +663,7 @@ CONFIG_CC_STACKPROTECTOR=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -829,6 +842,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
CONFIG_CRYPTO_DEV_CCP=y
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_GEODE=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -843,7 +857,7 @@ CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -997,6 +1011,7 @@ CONFIG_DELL_RBTN=m
CONFIG_DELL_SMBIOS=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_LED=m
CONFIG_DELL_WMI=m
# CONFIG_DETECT_HUNG_TASK is not set
CONFIG_DEV_APPLETALK=m
@@ -1038,6 +1053,7 @@ CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
CONFIG_DMIID=y
+CONFIG_DM_INTEGRITY=m
CONFIG_DMI_SYSFS=y
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
@@ -1081,8 +1097,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1097,13 +1115,16 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915=m
CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1112,18 +1133,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
+CONFIG_DRM_PANEL_LVDS=m
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1238,6 +1263,7 @@ CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_EARLY_PRINTK_EFI=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
@@ -1250,6 +1276,7 @@ CONFIG_EDAC_AMD8131=m
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_E752X=m
CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_I3000=m
CONFIG_EDAC_I3200=m
CONFIG_EDAC_I5000=m
@@ -1262,9 +1289,7 @@ CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_IE31200=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_R82600=m
-# CONFIG_EDAC_SBRIDGE is not set
CONFIG_EDAC_X38=m
CONFIG_EDAC=y
CONFIG_EDD=m
@@ -1553,6 +1578,7 @@ CONFIG_GPIO_CRYSTAL_COVE=y
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
CONFIG_GPIO_ICH=m
@@ -1598,6 +1624,7 @@ CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
@@ -1610,6 +1637,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1654,6 +1682,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1675,12 +1704,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1844,6 +1875,7 @@ CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1903,6 +1935,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2038,7 +2072,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2061,10 +2094,13 @@ CONFIG_INPUT_YEALINK=m
CONFIG_INT3406_THERMAL=m
CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
+# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
CONFIG_INTEL_IDMA64=m
+# CONFIG_INTEL_INT0002_VGPIO is not set
CONFIG_INTEL_IOATDMA=m
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
@@ -2088,6 +2124,7 @@ CONFIG_INTEL_RST=m
# CONFIG_INTEL_SCU_IPC is not set
CONFIG_INTEL_SMARTCONNECT=y
CONFIG_INTEL_SOC_DTS_THERMAL=m
+# CONFIG_INTEL_SOC_PMIC_CHTWC is not set
CONFIG_INTEL_SOC_PMIC=y
# CONFIG_INTEL_TH is not set
# CONFIG_INTEL_TXT is not set
@@ -2099,6 +2136,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2284,6 +2322,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2384,6 +2423,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2510,7 +2551,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
CONFIG_LEDS_INTEL_SS4200=m
# CONFIG_LEDS_IS31FL319X is not set
@@ -2586,7 +2626,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2599,6 +2638,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+CONFIG_LOAD_UEFI_KEYS=y
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2627,6 +2667,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2672,14 +2714,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2720,6 +2765,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2770,7 +2816,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
CONFIG_MFD_CS5535=m
# CONFIG_MFD_DA9052_I2C is not set
@@ -2780,7 +2826,6 @@ CONFIG_MFD_CS5535=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
@@ -2824,6 +2869,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2879,6 +2925,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
# CONFIG_MLX5_INFINIBAND is not set
# CONFIG_MLX90614 is not set
@@ -2920,6 +2967,7 @@ CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF is not set
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2941,7 +2989,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-CONFIG_MODULE_SIG_UEFI=y
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2980,8 +3027,9 @@ CONFIG_MPILIB=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3091,6 +3139,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3134,11 +3183,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3261,6 +3314,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3573,6 +3627,7 @@ CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=32
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
CONFIG_NSC_GPIO=m
@@ -3720,6 +3775,8 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_GOANY=y
@@ -3730,12 +3787,14 @@ CONFIG_PCI_HERMES=m
CONFIG_PCI_HYPERV=m
CONFIG_PCI_IOV=y
CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3790,7 +3849,6 @@ CONFIG_PINCTRL_CHERRYVIEW=y
# CONFIG_PINCTRL_SINGLE is not set
CONFIG_PINCTRL_SUNRISEPOINT=m
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PKCS7_MESSAGE_PARSER=y
@@ -3951,6 +4009,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3991,9 +4050,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4027,6 +4087,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -4154,6 +4215,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4368,6 +4430,7 @@ CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATK0110=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
@@ -4650,7 +4713,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4666,7 +4729,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4700,6 +4765,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4752,6 +4818,8 @@ CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4766,6 +4834,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4779,7 +4848,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -4802,6 +4873,8 @@ CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
@@ -4818,10 +4891,12 @@ CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
CONFIG_SND_SOC_NAU8540=m
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4951,6 +5026,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5011,6 +5087,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5076,6 +5153,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -5101,6 +5179,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5131,6 +5210,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5209,6 +5289,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5250,11 +5331,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5459,6 +5545,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5468,6 +5555,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5746,6 +5834,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5759,6 +5848,7 @@ CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VMXNET3=m
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -5786,6 +5876,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5882,6 +5973,7 @@ CONFIG_X86_LONGRUN=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_INJECT=m
CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_MCE=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_MSR=y
@@ -5917,6 +6009,7 @@ CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_DEBUG_FS=y
# CONFIG_XEN_DEBUG is not set
CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_DOM0=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XENFS=m
CONFIG_XEN_GNTDEV=m
@@ -5925,7 +6018,9 @@ CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PVHVM=y
CONFIG_XEN_PVH=y
+CONFIG_XEN_PV=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_SCSI_BACKEND=m
@@ -5979,3 +6074,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-i686-PAEdebug.config b/kernel-i686-PAEdebug.config
index 1b000858e..5eb9308f1 100644
--- a/kernel-i686-PAEdebug.config
+++ b/kernel-i686-PAEdebug.config
@@ -151,6 +151,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -223,6 +225,7 @@ CONFIG_APPLE_PROPERTIES=y
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_PTDUMP=y
# CONFIG_AS3935 is not set
CONFIG_ASUS_LAPTOP=m
@@ -350,6 +353,7 @@ CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -381,6 +385,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
CONFIG_BATTERY_OLPC=y
@@ -405,6 +410,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -412,6 +418,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -434,7 +441,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -459,6 +465,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -562,6 +569,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -610,14 +618,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -631,6 +642,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -652,6 +664,7 @@ CONFIG_CC_STACKPROTECTOR=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -831,6 +844,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
CONFIG_CRYPTO_DEV_CCP=y
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_GEODE=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -845,7 +859,7 @@ CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1007,6 +1021,7 @@ CONFIG_DELL_RBTN=m
CONFIG_DELL_SMBIOS=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_LED=m
CONFIG_DELL_WMI=m
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEV_APPLETALK=m
@@ -1049,6 +1064,7 @@ CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
CONFIG_DMIID=y
+CONFIG_DM_INTEGRITY=m
CONFIG_DMI_SYSFS=y
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
@@ -1092,8 +1108,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1108,13 +1126,16 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915=m
CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1123,18 +1144,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
+CONFIG_DRM_PANEL_LVDS=m
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1249,6 +1274,7 @@ CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_EARLY_PRINTK_EFI=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
@@ -1261,6 +1287,7 @@ CONFIG_EDAC_AMD8131=m
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_E752X=m
CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_I3000=m
CONFIG_EDAC_I3200=m
CONFIG_EDAC_I5000=m
@@ -1273,9 +1300,7 @@ CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_IE31200=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_R82600=m
-# CONFIG_EDAC_SBRIDGE is not set
CONFIG_EDAC_X38=m
CONFIG_EDAC=y
CONFIG_EDD=m
@@ -1571,6 +1596,7 @@ CONFIG_GPIO_CRYSTAL_COVE=y
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
CONFIG_GPIO_ICH=m
@@ -1616,6 +1642,7 @@ CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
@@ -1628,6 +1655,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1672,6 +1700,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1693,12 +1722,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1862,6 +1893,7 @@ CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1921,6 +1953,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2056,7 +2090,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2079,10 +2112,13 @@ CONFIG_INPUT_YEALINK=m
CONFIG_INT3406_THERMAL=m
CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
+# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
CONFIG_INTEL_IDMA64=m
+# CONFIG_INTEL_INT0002_VGPIO is not set
CONFIG_INTEL_IOATDMA=m
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
@@ -2106,6 +2142,7 @@ CONFIG_INTEL_RST=m
# CONFIG_INTEL_SCU_IPC is not set
CONFIG_INTEL_SMARTCONNECT=y
CONFIG_INTEL_SOC_DTS_THERMAL=m
+# CONFIG_INTEL_SOC_PMIC_CHTWC is not set
CONFIG_INTEL_SOC_PMIC=y
# CONFIG_INTEL_TH is not set
# CONFIG_INTEL_TXT is not set
@@ -2117,6 +2154,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2302,6 +2340,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2402,6 +2441,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2530,7 +2571,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
CONFIG_LEDS_INTEL_SS4200=m
# CONFIG_LEDS_IS31FL319X is not set
@@ -2606,7 +2646,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2619,6 +2658,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+CONFIG_LOAD_UEFI_KEYS=y
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2647,6 +2687,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2692,14 +2734,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2740,6 +2785,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2790,7 +2836,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
CONFIG_MFD_CS5535=m
# CONFIG_MFD_DA9052_I2C is not set
@@ -2800,7 +2846,6 @@ CONFIG_MFD_CS5535=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
@@ -2844,6 +2889,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2899,6 +2945,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
# CONFIG_MLX5_INFINIBAND is not set
# CONFIG_MLX90614 is not set
@@ -2940,6 +2987,7 @@ CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF is not set
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2961,7 +3009,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-CONFIG_MODULE_SIG_UEFI=y
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3000,8 +3047,9 @@ CONFIG_MPILIB=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3111,6 +3159,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3154,11 +3203,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3281,6 +3334,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3593,6 +3647,7 @@ CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=32
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
CONFIG_NSC_GPIO=m
@@ -3740,6 +3795,8 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_GOANY=y
@@ -3750,12 +3807,14 @@ CONFIG_PCI_HERMES=m
CONFIG_PCI_HYPERV=m
CONFIG_PCI_IOV=y
CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3810,7 +3869,6 @@ CONFIG_PINCTRL_CHERRYVIEW=y
# CONFIG_PINCTRL_SINGLE is not set
CONFIG_PINCTRL_SUNRISEPOINT=m
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PKCS7_MESSAGE_PARSER=y
@@ -3972,6 +4030,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4012,9 +4071,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4048,6 +4108,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -4175,6 +4236,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4389,6 +4451,7 @@ CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATK0110=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
@@ -4671,7 +4734,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4687,7 +4750,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4721,6 +4786,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4774,6 +4840,8 @@ CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4788,6 +4856,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4801,7 +4870,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -4824,6 +4895,8 @@ CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
@@ -4840,10 +4913,12 @@ CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
CONFIG_SND_SOC_NAU8540=m
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4973,6 +5048,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5033,6 +5109,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5098,6 +5175,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -5123,6 +5201,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5153,6 +5232,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5231,6 +5311,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5272,11 +5353,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5481,6 +5567,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5490,6 +5577,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5768,6 +5856,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5781,6 +5870,7 @@ CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VMXNET3=m
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -5808,6 +5898,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5904,6 +5995,7 @@ CONFIG_X86_LONGRUN=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_INJECT=m
CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_MCE=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_MSR=y
@@ -5939,6 +6031,7 @@ CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_DEBUG_FS=y
# CONFIG_XEN_DEBUG is not set
CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_DOM0=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XENFS=m
CONFIG_XEN_GNTDEV=m
@@ -5947,7 +6040,9 @@ CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PVHVM=y
CONFIG_XEN_PVH=y
+CONFIG_XEN_PV=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_SCSI_BACKEND=m
@@ -6001,3 +6096,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-i686-debug.config b/kernel-i686-debug.config
index f6d44423b..edcdbe09e 100644
--- a/kernel-i686-debug.config
+++ b/kernel-i686-debug.config
@@ -151,6 +151,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -223,6 +225,7 @@ CONFIG_APPLE_PROPERTIES=y
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_PTDUMP=y
# CONFIG_AS3935 is not set
CONFIG_ASUS_LAPTOP=m
@@ -350,6 +353,7 @@ CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -381,6 +385,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
CONFIG_BATTERY_OLPC=y
@@ -405,6 +410,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -412,6 +418,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -434,7 +441,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -459,6 +465,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -562,6 +569,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -610,14 +618,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -631,6 +642,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -652,6 +664,7 @@ CONFIG_CC_STACKPROTECTOR=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -831,6 +844,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
CONFIG_CRYPTO_DEV_CCP=y
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_GEODE=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -845,7 +859,7 @@ CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1007,6 +1021,7 @@ CONFIG_DELL_RBTN=m
CONFIG_DELL_SMBIOS=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_LED=m
CONFIG_DELL_WMI=m
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEV_APPLETALK=m
@@ -1049,6 +1064,7 @@ CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
CONFIG_DMIID=y
+CONFIG_DM_INTEGRITY=m
CONFIG_DMI_SYSFS=y
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
@@ -1092,8 +1108,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1108,13 +1126,16 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915=m
CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1123,18 +1144,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
+CONFIG_DRM_PANEL_LVDS=m
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1249,6 +1274,7 @@ CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_EARLY_PRINTK_EFI=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
@@ -1261,6 +1287,7 @@ CONFIG_EDAC_AMD8131=m
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_E752X=m
CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_I3000=m
CONFIG_EDAC_I3200=m
CONFIG_EDAC_I5000=m
@@ -1273,9 +1300,7 @@ CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_IE31200=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_R82600=m
-# CONFIG_EDAC_SBRIDGE is not set
CONFIG_EDAC_X38=m
CONFIG_EDAC=y
CONFIG_EDD=m
@@ -1571,6 +1596,7 @@ CONFIG_GPIO_CS5535=y
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
CONFIG_GPIO_ICH=m
@@ -1616,6 +1642,7 @@ CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
@@ -1628,6 +1655,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1672,6 +1700,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1693,12 +1722,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1862,6 +1893,7 @@ CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1921,6 +1953,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2056,7 +2090,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2079,10 +2112,13 @@ CONFIG_INPUT_YEALINK=m
CONFIG_INT3406_THERMAL=m
CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
+# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
CONFIG_INTEL_IDMA64=m
+# CONFIG_INTEL_INT0002_VGPIO is not set
CONFIG_INTEL_IOATDMA=m
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
@@ -2106,6 +2142,7 @@ CONFIG_INTEL_RST=m
# CONFIG_INTEL_SCU_IPC is not set
CONFIG_INTEL_SMARTCONNECT=y
CONFIG_INTEL_SOC_DTS_THERMAL=m
+# CONFIG_INTEL_SOC_PMIC_CHTWC is not set
CONFIG_INTEL_SOC_PMIC=y
# CONFIG_INTEL_TH is not set
# CONFIG_INTEL_TXT is not set
@@ -2117,6 +2154,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2302,6 +2340,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2402,6 +2441,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2530,7 +2571,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
CONFIG_LEDS_INTEL_SS4200=m
# CONFIG_LEDS_IS31FL319X is not set
@@ -2606,7 +2646,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2619,6 +2658,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+CONFIG_LOAD_UEFI_KEYS=y
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2647,6 +2687,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2692,14 +2734,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2740,6 +2785,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2790,7 +2836,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
CONFIG_MFD_CS5535=m
# CONFIG_MFD_DA9052_I2C is not set
@@ -2800,7 +2846,6 @@ CONFIG_MFD_CS5535=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
@@ -2844,6 +2889,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2899,6 +2945,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
# CONFIG_MLX5_INFINIBAND is not set
# CONFIG_MLX90614 is not set
@@ -2940,6 +2987,7 @@ CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF is not set
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2961,7 +3009,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-CONFIG_MODULE_SIG_UEFI=y
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3000,8 +3047,9 @@ CONFIG_MPILIB=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3111,6 +3159,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3154,11 +3203,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3281,6 +3334,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3593,6 +3647,7 @@ CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=32
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
CONFIG_NSC_GPIO=m
@@ -3740,6 +3795,8 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_GOANY=y
@@ -3750,12 +3807,14 @@ CONFIG_PCI_HERMES=m
CONFIG_PCI_HYPERV=m
CONFIG_PCI_IOV=y
CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3810,7 +3869,6 @@ CONFIG_PINCTRL_CHERRYVIEW=y
# CONFIG_PINCTRL_SINGLE is not set
CONFIG_PINCTRL_SUNRISEPOINT=m
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PKCS7_MESSAGE_PARSER=y
@@ -3972,6 +4030,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4012,9 +4071,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4048,6 +4108,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -4175,6 +4236,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4389,6 +4451,7 @@ CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATK0110=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
@@ -4671,7 +4734,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4687,7 +4750,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4721,6 +4786,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4774,6 +4840,8 @@ CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4788,6 +4856,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4801,7 +4870,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -4824,6 +4895,8 @@ CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
@@ -4840,10 +4913,12 @@ CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
CONFIG_SND_SOC_NAU8540=m
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4973,6 +5048,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5033,6 +5109,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5098,6 +5175,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -5123,6 +5201,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5153,6 +5232,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5231,6 +5311,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5272,11 +5353,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5481,6 +5567,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5490,6 +5577,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5768,6 +5856,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5781,6 +5870,7 @@ CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VMXNET3=m
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -5808,6 +5898,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5904,6 +5995,7 @@ CONFIG_X86_LONGRUN=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_INJECT=m
CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_MCE=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_MSR=y
@@ -5938,6 +6030,7 @@ CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_DEBUG_FS=y
# CONFIG_XEN_DEBUG is not set
+CONFIG_XEN_DOM0=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XENFS=m
CONFIG_XEN_GNTDEV=m
@@ -5946,7 +6039,9 @@ CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PVHVM=y
CONFIG_XEN_PVH=y
+CONFIG_XEN_PV=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_SCSI_BACKEND=m
@@ -5999,3 +6094,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-i686.config b/kernel-i686.config
index b2c87dec4..38f571487 100644
--- a/kernel-i686.config
+++ b/kernel-i686.config
@@ -151,6 +151,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -223,6 +225,7 @@ CONFIG_APPLE_PROPERTIES=y
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_NB_WMI=m
@@ -349,6 +352,7 @@ CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -380,6 +384,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
CONFIG_BATTERY_OLPC=y
@@ -404,6 +409,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -411,6 +417,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -433,7 +440,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -458,6 +464,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -561,6 +568,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -609,14 +617,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -630,6 +641,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -651,6 +663,7 @@ CONFIG_CC_STACKPROTECTOR=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -829,6 +842,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
CONFIG_CRYPTO_DEV_CCP=y
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_GEODE=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -843,7 +857,7 @@ CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -997,6 +1011,7 @@ CONFIG_DELL_RBTN=m
CONFIG_DELL_SMBIOS=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_LED=m
CONFIG_DELL_WMI=m
# CONFIG_DETECT_HUNG_TASK is not set
CONFIG_DEV_APPLETALK=m
@@ -1038,6 +1053,7 @@ CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
CONFIG_DMIID=y
+CONFIG_DM_INTEGRITY=m
CONFIG_DMI_SYSFS=y
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
@@ -1081,8 +1097,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1097,13 +1115,16 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915=m
CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1112,18 +1133,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
+CONFIG_DRM_PANEL_LVDS=m
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1238,6 +1263,7 @@ CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_EARLY_PRINTK_EFI=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
@@ -1250,6 +1276,7 @@ CONFIG_EDAC_AMD8131=m
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_E752X=m
CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_I3000=m
CONFIG_EDAC_I3200=m
CONFIG_EDAC_I5000=m
@@ -1262,9 +1289,7 @@ CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_IE31200=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_R82600=m
-# CONFIG_EDAC_SBRIDGE is not set
CONFIG_EDAC_X38=m
CONFIG_EDAC=y
CONFIG_EDD=m
@@ -1553,6 +1578,7 @@ CONFIG_GPIO_CS5535=y
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
CONFIG_GPIO_ICH=m
@@ -1598,6 +1624,7 @@ CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
@@ -1610,6 +1637,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1654,6 +1682,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1675,12 +1704,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1844,6 +1875,7 @@ CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1903,6 +1935,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2038,7 +2072,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2061,10 +2094,13 @@ CONFIG_INPUT_YEALINK=m
CONFIG_INT3406_THERMAL=m
CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
+# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
CONFIG_INTEL_IDMA64=m
+# CONFIG_INTEL_INT0002_VGPIO is not set
CONFIG_INTEL_IOATDMA=m
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
@@ -2088,6 +2124,7 @@ CONFIG_INTEL_RST=m
# CONFIG_INTEL_SCU_IPC is not set
CONFIG_INTEL_SMARTCONNECT=y
CONFIG_INTEL_SOC_DTS_THERMAL=m
+# CONFIG_INTEL_SOC_PMIC_CHTWC is not set
CONFIG_INTEL_SOC_PMIC=y
# CONFIG_INTEL_TH is not set
# CONFIG_INTEL_TXT is not set
@@ -2099,6 +2136,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2284,6 +2322,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2384,6 +2423,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2510,7 +2551,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
CONFIG_LEDS_INTEL_SS4200=m
# CONFIG_LEDS_IS31FL319X is not set
@@ -2586,7 +2626,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2599,6 +2638,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+CONFIG_LOAD_UEFI_KEYS=y
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2627,6 +2667,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2672,14 +2714,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2720,6 +2765,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2770,7 +2816,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
CONFIG_MFD_CS5535=m
# CONFIG_MFD_DA9052_I2C is not set
@@ -2780,7 +2826,6 @@ CONFIG_MFD_CS5535=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
@@ -2824,6 +2869,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2879,6 +2925,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
# CONFIG_MLX5_INFINIBAND is not set
# CONFIG_MLX90614 is not set
@@ -2920,6 +2967,7 @@ CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF is not set
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2941,7 +2989,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-CONFIG_MODULE_SIG_UEFI=y
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2980,8 +3027,9 @@ CONFIG_MPILIB=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3091,6 +3139,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3134,11 +3183,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3261,6 +3314,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3573,6 +3627,7 @@ CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_NOZOMI=m
CONFIG_NR_CPUS=32
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
CONFIG_NSC_GPIO=m
@@ -3720,6 +3775,8 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_GOANY=y
@@ -3730,12 +3787,14 @@ CONFIG_PCI_HERMES=m
CONFIG_PCI_HYPERV=m
CONFIG_PCI_IOV=y
CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3790,7 +3849,6 @@ CONFIG_PINCTRL_CHERRYVIEW=y
# CONFIG_PINCTRL_SINGLE is not set
CONFIG_PINCTRL_SUNRISEPOINT=m
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PKCS7_MESSAGE_PARSER=y
@@ -3951,6 +4009,7 @@ CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
CONFIG_RANDOMIZE_BASE=y
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3991,9 +4050,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4027,6 +4087,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -4154,6 +4215,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4368,6 +4430,7 @@ CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATK0110=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
@@ -4650,7 +4713,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4666,7 +4729,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4700,6 +4765,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4752,6 +4818,8 @@ CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4766,6 +4834,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4779,7 +4848,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -4802,6 +4873,8 @@ CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
@@ -4818,10 +4891,12 @@ CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
CONFIG_SND_SOC_NAU8540=m
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4951,6 +5026,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5011,6 +5087,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5076,6 +5153,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -5101,6 +5179,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5131,6 +5210,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5209,6 +5289,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5250,11 +5331,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5459,6 +5545,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5468,6 +5555,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5746,6 +5834,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5759,6 +5848,7 @@ CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VMXNET3=m
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -5786,6 +5876,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5882,6 +5973,7 @@ CONFIG_X86_LONGRUN=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_INJECT=m
CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_MCE=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_MSR=y
@@ -5916,6 +6008,7 @@ CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_DEBUG_FS=y
# CONFIG_XEN_DEBUG is not set
+CONFIG_XEN_DOM0=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XENFS=m
CONFIG_XEN_GNTDEV=m
@@ -5924,7 +6017,9 @@ CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PVHVM=y
CONFIG_XEN_PVH=y
+CONFIG_XEN_PV=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_SCSI_BACKEND=m
@@ -5977,3 +6072,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-ppc64-debug.config b/kernel-ppc64-debug.config
index 46c54c5ea..86e58ba7e 100644
--- a/kernel-ppc64-debug.config
+++ b/kernel-ppc64-debug.config
@@ -118,6 +118,8 @@ CONFIG_ADB=y
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -175,6 +177,7 @@ CONFIG_APPLE_AIRPORT=m
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_PTDUMP=y
# CONFIG_AS3935 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
@@ -299,6 +302,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -329,6 +333,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -352,6 +357,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -359,6 +365,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -389,7 +396,6 @@ CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
CONFIG_BLK_DEV_GENERIC=y
-# CONFIG_BLK_DEV_HD is not set
# CONFIG_BLK_DEV_HPT366 is not set
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDECS is not set
@@ -441,6 +447,7 @@ CONFIG_BLK_DEV_SR=y
# CONFIG_BLK_DEV_SVWKS is not set
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_TC86C001 is not set
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_TRM290 is not set
@@ -548,6 +555,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -596,16 +604,19 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MPC5XXX is not set
# CONFIG_CAN_MSCAN is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -619,6 +630,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -638,6 +650,7 @@ CONFIG_CB710_CORE=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -738,6 +751,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -807,11 +821,13 @@ CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_CRC32C_VPMSUM=m
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -824,7 +840,7 @@ CONFIG_CRYPTO_DEV_NX=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
CONFIG_CRYPTO_DEV_VMX=y
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -881,6 +897,7 @@ CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_VMAC=m
+# CONFIG_CRYPTO_VPMSUM_TESTER is not set
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_XTS=y
@@ -1018,6 +1035,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1059,8 +1077,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HISI_HIBMC=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511=m
@@ -1070,7 +1090,9 @@ CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1079,13 +1101,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1197,6 +1228,7 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
@@ -1205,8 +1237,8 @@ CONFIG_EDAC_AMD8111=m
CONFIG_EDAC_AMD8131=m
CONFIG_EDAC_CPC925=m
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
# CONFIG_EDAC_MPC85XX is not set
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1255,7 +1287,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
CONFIG_EXTRA_FIRMWARE=""
@@ -1479,6 +1510,7 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_IT87 is not set
@@ -1520,6 +1552,7 @@ CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
# CONFIG_HCALL_STATS is not set
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1531,6 +1564,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
# CONFIG_HIBERNATION is not set
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1574,6 +1608,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1595,12 +1630,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1751,6 +1788,7 @@ CONFIG_I2C=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MPC=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1813,6 +1851,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -1948,7 +1988,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_PCSPKR is not set
@@ -1977,6 +2016,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
CONFIG_IO_EVENT_IRQ=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2158,6 +2198,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2256,6 +2297,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2383,7 +2426,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set
@@ -2457,7 +2499,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2470,6 +2511,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2499,6 +2541,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2539,14 +2583,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2586,6 +2633,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2640,7 +2688,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=m
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2650,7 +2698,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
@@ -2691,6 +2738,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2741,6 +2789,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2783,6 +2832,7 @@ CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_OF=m
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2804,7 +2854,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2838,8 +2887,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -2938,6 +2988,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -2981,11 +3032,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3107,6 +3162,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3552,16 +3608,20 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_PCIEPORTBUS is not set
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_IOV=y
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3603,7 +3663,6 @@ CONFIG_PID_NS=y
# CONFIG_PINCTRL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
# CONFIG_PINMUX is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
@@ -3654,8 +3713,10 @@ CONFIG_PPC64=y
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
# CONFIG_PPC_CELL is not set
+CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN=y
CONFIG_PPC_DENORMALISATION=y
CONFIG_PPC_DISABLE_WERROR=y
+CONFIG_PPC_DT_CPU_FTRS=y
# CONFIG_PPC_EARLY_DEBUG is not set
CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
@@ -3793,6 +3854,7 @@ CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3833,9 +3895,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=m
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -3869,6 +3932,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -4000,6 +4064,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4211,6 +4276,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4494,7 +4560,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4510,7 +4576,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4544,6 +4612,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4551,8 +4620,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KORG1212=m
@@ -4599,6 +4668,8 @@ CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
# CONFIG_SND_SOC_ADAU1701 is not set
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4613,6 +4684,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4626,7 +4698,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES8328 is not set
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
# CONFIG_SND_SOC_FSL_ASRC is not set
@@ -4645,10 +4719,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC is not set
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4720,8 +4796,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -4737,7 +4813,7 @@ CONFIG_SONY_FF=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
# CONFIG_SOUND_PRIME is not set
-# CONFIG_SPAPR_TCE_IOMMU is not set
+CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -4773,6 +4849,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -4833,6 +4910,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -4856,6 +4934,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
# CONFIG_TCG_TIS_I2C_ATMEL is not set
@@ -4896,6 +4975,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -4921,6 +5001,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -4945,6 +5026,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5017,6 +5099,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5059,11 +5142,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5274,6 +5362,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5283,6 +5372,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5430,7 +5520,7 @@ CONFIG_VETH=m
# CONFIG_VF610_ADC is not set
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
-CONFIG_VFIO_IOMMU_TYPE1=m
+# CONFIG_VFIO_IOMMU_TYPE1 is not set
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
@@ -5557,6 +5647,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5565,6 +5656,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
CONFIG_VSX=y
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
@@ -5593,6 +5685,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5668,6 +5761,7 @@ CONFIG_WQ_WATCHDOG=y
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_PTDUMP=y
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
@@ -5715,3 +5809,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-ppc64.config b/kernel-ppc64.config
index a793d5527..de5284ba0 100644
--- a/kernel-ppc64.config
+++ b/kernel-ppc64.config
@@ -118,6 +118,8 @@ CONFIG_ADB=y
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -175,6 +177,7 @@ CONFIG_APPLE_AIRPORT=m
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYNC_RAID6_TEST=m
@@ -298,6 +301,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -328,6 +332,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -351,6 +356,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -358,6 +364,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -388,7 +395,6 @@ CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
CONFIG_BLK_DEV_GENERIC=y
-# CONFIG_BLK_DEV_HD is not set
# CONFIG_BLK_DEV_HPT366 is not set
CONFIG_BLK_DEV_IDECD=m
# CONFIG_BLK_DEV_IDECS is not set
@@ -440,6 +446,7 @@ CONFIG_BLK_DEV_SR=y
# CONFIG_BLK_DEV_SVWKS is not set
CONFIG_BLK_DEV_SX8=m
# CONFIG_BLK_DEV_TC86C001 is not set
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_TRM290 is not set
@@ -547,6 +554,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -595,16 +603,19 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MPC5XXX is not set
# CONFIG_CAN_MSCAN is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -618,6 +629,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -637,6 +649,7 @@ CONFIG_CB710_CORE=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -737,6 +750,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -805,11 +819,13 @@ CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_CRC32C_VPMSUM=m
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -822,7 +838,7 @@ CONFIG_CRYPTO_DEV_NX=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
CONFIG_CRYPTO_DEV_VMX=y
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -879,6 +895,7 @@ CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_VMAC=m
+# CONFIG_CRYPTO_VPMSUM_TESTER is not set
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_XTS=y
@@ -1007,6 +1024,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1048,8 +1066,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HISI_HIBMC=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511=m
@@ -1059,7 +1079,9 @@ CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1068,13 +1090,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1186,6 +1217,7 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
@@ -1194,8 +1226,8 @@ CONFIG_EDAC_AMD8111=m
CONFIG_EDAC_AMD8131=m
CONFIG_EDAC_CPC925=m
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
# CONFIG_EDAC_MPC85XX is not set
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1244,7 +1276,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
CONFIG_EXTRA_FIRMWARE=""
@@ -1461,6 +1492,7 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_IT87 is not set
@@ -1502,6 +1534,7 @@ CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
# CONFIG_HCALL_STATS is not set
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1513,6 +1546,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
# CONFIG_HIBERNATION is not set
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1556,6 +1590,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1577,12 +1612,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1733,6 +1770,7 @@ CONFIG_I2C=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MPC=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1795,6 +1833,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -1930,7 +1970,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_PCSPKR is not set
@@ -1959,6 +1998,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
CONFIG_IO_EVENT_IRQ=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2140,6 +2180,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2238,6 +2279,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2363,7 +2406,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set
@@ -2437,7 +2479,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2450,6 +2491,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2479,6 +2521,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2519,14 +2563,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
# CONFIG_MC3230 is not set
@@ -2565,6 +2612,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2619,7 +2667,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=m
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2629,7 +2677,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
@@ -2670,6 +2717,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2720,6 +2768,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2762,6 +2811,7 @@ CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_OF=m
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2782,7 +2832,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2816,8 +2865,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -2916,6 +2966,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -2959,11 +3010,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3085,6 +3140,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3530,16 +3586,20 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_PCIEPORTBUS is not set
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_IOV=y
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3581,7 +3641,6 @@ CONFIG_PID_NS=y
# CONFIG_PINCTRL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
# CONFIG_PINMUX is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
@@ -3632,8 +3691,10 @@ CONFIG_PPC64=y
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
# CONFIG_PPC_CELL is not set
+CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN=y
CONFIG_PPC_DENORMALISATION=y
CONFIG_PPC_DISABLE_WERROR=y
+CONFIG_PPC_DT_CPU_FTRS=y
# CONFIG_PPC_EARLY_DEBUG is not set
CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
@@ -3770,6 +3831,7 @@ CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3810,9 +3872,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=m
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -3846,6 +3909,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -3977,6 +4041,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4188,6 +4253,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4471,7 +4537,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4487,7 +4553,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4521,6 +4589,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4528,8 +4597,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KORG1212=m
@@ -4575,6 +4644,8 @@ CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
# CONFIG_SND_SOC_ADAU1701 is not set
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4589,6 +4660,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4602,7 +4674,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES8328 is not set
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
# CONFIG_SND_SOC_FSL_ASRC is not set
@@ -4621,10 +4695,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC is not set
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4696,8 +4772,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -4713,7 +4789,7 @@ CONFIG_SONY_FF=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
# CONFIG_SOUND_PRIME is not set
-# CONFIG_SPAPR_TCE_IOMMU is not set
+CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -4749,6 +4825,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -4809,6 +4886,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -4832,6 +4910,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
# CONFIG_TCG_TIS_I2C_ATMEL is not set
@@ -4872,6 +4951,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -4897,6 +4977,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -4921,6 +5002,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -4993,6 +5075,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5035,11 +5118,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5250,6 +5338,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5259,6 +5348,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5406,7 +5496,7 @@ CONFIG_VETH=m
# CONFIG_VF610_ADC is not set
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
-CONFIG_VFIO_IOMMU_TYPE1=m
+# CONFIG_VFIO_IOMMU_TYPE1 is not set
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
@@ -5533,6 +5623,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5541,6 +5632,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
CONFIG_VSX=y
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
@@ -5569,6 +5661,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5644,6 +5737,7 @@ CONFIG_WM8350_WATCHDOG=m
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
+CONFIG_X86_MCELOG_LEGACY=y
# CONFIG_X86_PTDUMP is not set
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
@@ -5691,3 +5785,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-ppc64le-debug.config b/kernel-ppc64le-debug.config
index c40265de2..7e734fb90 100644
--- a/kernel-ppc64le-debug.config
+++ b/kernel-ppc64le-debug.config
@@ -115,6 +115,8 @@ CONFIG_ADB_PMU_LED_DISK=y
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -169,6 +171,7 @@ CONFIG_APM_POWER=m
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_PTDUMP=y
# CONFIG_AS3935 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
@@ -293,6 +296,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -323,6 +327,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -346,6 +351,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -353,6 +359,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -374,7 +381,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -401,6 +407,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -505,6 +512,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -553,16 +561,19 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MPC5XXX is not set
# CONFIG_CAN_MSCAN is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -576,6 +587,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -595,6 +607,7 @@ CONFIG_CB710_CORE=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -695,6 +708,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -762,11 +776,13 @@ CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_CRC32C_VPMSUM=m
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -779,7 +795,7 @@ CONFIG_CRYPTO_DEV_NX=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
CONFIG_CRYPTO_DEV_VMX=y
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -836,6 +852,7 @@ CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_VMAC=m
+# CONFIG_CRYPTO_VPMSUM_TESTER is not set
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_XTS=y
@@ -974,6 +991,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1015,8 +1033,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HISI_HIBMC=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511=m
@@ -1026,7 +1046,9 @@ CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1035,13 +1057,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1153,14 +1184,15 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_CPC925 is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
# CONFIG_EDAC_MPC85XX is not set
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1209,7 +1241,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
CONFIG_EXTRA_FIRMWARE=""
@@ -1433,6 +1464,7 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_IT87 is not set
@@ -1474,6 +1506,7 @@ CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
# CONFIG_HCALL_STATS is not set
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1485,6 +1518,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
# CONFIG_HIBERNATION is not set
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1528,6 +1562,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1549,12 +1584,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1704,6 +1741,7 @@ CONFIG_I2C=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MPC=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1759,6 +1797,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -1894,7 +1934,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_PCSPKR is not set
@@ -1923,6 +1962,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
CONFIG_IO_EVENT_IRQ=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2104,6 +2144,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2202,6 +2243,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2329,7 +2372,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set
@@ -2403,7 +2445,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2416,6 +2457,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2445,6 +2487,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2485,14 +2529,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2532,6 +2579,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2586,7 +2634,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=m
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2596,7 +2644,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
@@ -2637,6 +2684,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2687,6 +2735,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2729,6 +2778,7 @@ CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_OF=m
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2749,7 +2799,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2783,8 +2832,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -2883,6 +2933,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -2926,11 +2977,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3052,6 +3107,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3495,16 +3551,20 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_PCIEPORTBUS is not set
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_IOV=y
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3546,7 +3606,6 @@ CONFIG_PID_NS=y
# CONFIG_PINCTRL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
# CONFIG_PINMUX is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
@@ -3594,8 +3653,10 @@ CONFIG_PPC64=y
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
# CONFIG_PPC_CELL is not set
+CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN=y
CONFIG_PPC_DENORMALISATION=y
CONFIG_PPC_DISABLE_WERROR=y
+CONFIG_PPC_DT_CPU_FTRS=y
# CONFIG_PPC_EARLY_DEBUG is not set
CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
@@ -3733,6 +3794,7 @@ CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3773,9 +3835,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=m
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -3809,6 +3872,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -3940,6 +4004,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4151,6 +4216,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4425,7 +4491,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4441,7 +4507,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4475,6 +4543,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4482,8 +4551,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KORG1212=m
@@ -4528,6 +4597,8 @@ CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
# CONFIG_SND_SOC_ADAU1701 is not set
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4542,6 +4613,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4555,7 +4627,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES8328 is not set
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
# CONFIG_SND_SOC_FSL_ASRC is not set
@@ -4574,10 +4648,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC is not set
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4649,8 +4725,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -4666,7 +4742,7 @@ CONFIG_SONY_FF=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
# CONFIG_SOUND_PRIME is not set
-# CONFIG_SPAPR_TCE_IOMMU is not set
+CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -4702,6 +4778,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -4762,6 +4839,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -4785,6 +4863,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
# CONFIG_TCG_TIS_I2C_ATMEL is not set
@@ -4825,6 +4904,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -4850,6 +4930,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -4874,6 +4955,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -4946,6 +5028,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -4988,11 +5071,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5203,6 +5291,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5212,6 +5301,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5359,7 +5449,7 @@ CONFIG_VETH=m
# CONFIG_VF610_ADC is not set
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
-CONFIG_VFIO_IOMMU_TYPE1=m
+# CONFIG_VFIO_IOMMU_TYPE1 is not set
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
@@ -5486,6 +5576,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5494,6 +5585,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
CONFIG_VSX=y
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
@@ -5522,6 +5614,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5591,6 +5684,7 @@ CONFIG_WQ_WATCHDOG=y
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_PTDUMP=y
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
@@ -5638,3 +5732,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-ppc64le.config b/kernel-ppc64le.config
index 915390b15..4e6b87062 100644
--- a/kernel-ppc64le.config
+++ b/kernel-ppc64le.config
@@ -115,6 +115,8 @@ CONFIG_ADB_PMU_LED_DISK=y
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -169,6 +171,7 @@ CONFIG_APM_POWER=m
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYNC_RAID6_TEST=m
@@ -292,6 +295,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -322,6 +326,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -345,6 +350,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -352,6 +358,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -373,7 +380,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -400,6 +406,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -504,6 +511,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -552,16 +560,19 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MPC5XXX is not set
# CONFIG_CAN_MSCAN is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -575,6 +586,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -594,6 +606,7 @@ CONFIG_CB710_CORE=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -694,6 +707,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -760,11 +774,13 @@ CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_CRC32C_VPMSUM=m
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -777,7 +793,7 @@ CONFIG_CRYPTO_DEV_NX=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
CONFIG_CRYPTO_DEV_VMX=y
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -834,6 +850,7 @@ CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_VMAC=m
+# CONFIG_CRYPTO_VPMSUM_TESTER is not set
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_XTS=y
@@ -963,6 +980,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1004,8 +1022,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HISI_HIBMC=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511=m
@@ -1015,7 +1035,9 @@ CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1024,13 +1046,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1142,14 +1173,15 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_CPC925 is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
# CONFIG_EDAC_MPC85XX is not set
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1198,7 +1230,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
CONFIG_EXTRA_FIRMWARE=""
@@ -1415,6 +1446,7 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_IT87 is not set
@@ -1456,6 +1488,7 @@ CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
# CONFIG_HCALL_STATS is not set
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1467,6 +1500,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
# CONFIG_HIBERNATION is not set
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1510,6 +1544,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1531,12 +1566,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1686,6 +1723,7 @@ CONFIG_I2C=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MPC=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1741,6 +1779,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -1876,7 +1916,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_PCSPKR is not set
@@ -1905,6 +1944,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
CONFIG_IO_EVENT_IRQ=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2086,6 +2126,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2184,6 +2225,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2309,7 +2352,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set
@@ -2383,7 +2425,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2396,6 +2437,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2425,6 +2467,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2465,14 +2509,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
# CONFIG_MC3230 is not set
@@ -2511,6 +2558,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2565,7 +2613,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=m
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2575,7 +2623,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
@@ -2616,6 +2663,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2666,6 +2714,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2708,6 +2757,7 @@ CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_OF=m
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2727,7 +2777,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2761,8 +2810,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -2861,6 +2911,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -2904,11 +2955,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3030,6 +3085,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3473,16 +3529,20 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_PCIEPORTBUS is not set
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_IOV=y
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3524,7 +3584,6 @@ CONFIG_PID_NS=y
# CONFIG_PINCTRL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
# CONFIG_PINMUX is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
@@ -3572,8 +3631,10 @@ CONFIG_PPC64=y
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
# CONFIG_PPC_CELL is not set
+CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN=y
CONFIG_PPC_DENORMALISATION=y
CONFIG_PPC_DISABLE_WERROR=y
+CONFIG_PPC_DT_CPU_FTRS=y
# CONFIG_PPC_EARLY_DEBUG is not set
CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
@@ -3710,6 +3771,7 @@ CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3750,9 +3812,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=m
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -3786,6 +3849,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -3917,6 +3981,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4128,6 +4193,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4402,7 +4468,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4418,7 +4484,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4452,6 +4520,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4459,8 +4528,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KORG1212=m
@@ -4504,6 +4573,8 @@ CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
# CONFIG_SND_SOC_ADAU1701 is not set
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4518,6 +4589,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4531,7 +4603,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES8328 is not set
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
# CONFIG_SND_SOC_FSL_ASRC is not set
@@ -4550,10 +4624,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC is not set
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4625,8 +4701,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -4642,7 +4718,7 @@ CONFIG_SONY_FF=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
# CONFIG_SOUND_PRIME is not set
-# CONFIG_SPAPR_TCE_IOMMU is not set
+CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -4678,6 +4754,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -4738,6 +4815,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -4761,6 +4839,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
# CONFIG_TCG_TIS_I2C_ATMEL is not set
@@ -4801,6 +4880,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -4826,6 +4906,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -4850,6 +4931,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -4922,6 +5004,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -4964,11 +5047,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5179,6 +5267,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5188,6 +5277,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5335,7 +5425,7 @@ CONFIG_VETH=m
# CONFIG_VF610_ADC is not set
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
-CONFIG_VFIO_IOMMU_TYPE1=m
+# CONFIG_VFIO_IOMMU_TYPE1 is not set
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
@@ -5462,6 +5552,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5470,6 +5561,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
CONFIG_VSX=y
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
@@ -5498,6 +5590,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5567,6 +5660,7 @@ CONFIG_WM8350_WATCHDOG=m
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
+CONFIG_X86_MCELOG_LEGACY=y
# CONFIG_X86_PTDUMP is not set
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
@@ -5614,3 +5708,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-ppc64p7-debug.config b/kernel-ppc64p7-debug.config
index 0a5afe940..5b666cbee 100644
--- a/kernel-ppc64p7-debug.config
+++ b/kernel-ppc64p7-debug.config
@@ -115,6 +115,8 @@ CONFIG_ADB_PMU_LED_DISK=y
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -169,6 +171,7 @@ CONFIG_APM_POWER=m
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_PTDUMP=y
# CONFIG_AS3935 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
@@ -293,6 +296,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -323,6 +327,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -346,6 +351,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -353,6 +359,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -374,7 +381,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -401,6 +407,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -505,6 +512,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -553,16 +561,19 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MPC5XXX is not set
# CONFIG_CAN_MSCAN is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -576,6 +587,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -595,6 +607,7 @@ CONFIG_CB710_CORE=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -695,6 +708,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -762,11 +776,13 @@ CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_CRC32C_VPMSUM=m
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -779,7 +795,7 @@ CONFIG_CRYPTO_DEV_NX=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
CONFIG_CRYPTO_DEV_VMX=y
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -836,6 +852,7 @@ CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_VMAC=m
+# CONFIG_CRYPTO_VPMSUM_TESTER is not set
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_XTS=y
@@ -973,6 +990,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1014,8 +1032,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HISI_HIBMC=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511=m
@@ -1025,7 +1045,9 @@ CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1034,13 +1056,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1152,14 +1183,15 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_CPC925 is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
# CONFIG_EDAC_MPC85XX is not set
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1208,7 +1240,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
CONFIG_EXTRA_FIRMWARE=""
@@ -1432,6 +1463,7 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_IT87 is not set
@@ -1473,6 +1505,7 @@ CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
# CONFIG_HCALL_STATS is not set
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1484,6 +1517,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
# CONFIG_HIBERNATION is not set
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1527,6 +1561,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1548,12 +1583,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1703,6 +1740,7 @@ CONFIG_I2C=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MPC=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1758,6 +1796,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -1893,7 +1933,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_PCSPKR is not set
@@ -1922,6 +1961,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
CONFIG_IO_EVENT_IRQ=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2103,6 +2143,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2201,6 +2242,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2328,7 +2371,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set
@@ -2402,7 +2444,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2415,6 +2456,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2444,6 +2486,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2484,14 +2528,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2531,6 +2578,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2585,7 +2633,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=m
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2595,7 +2643,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
@@ -2636,6 +2683,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2686,6 +2734,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2728,6 +2777,7 @@ CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_OF=m
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2748,7 +2798,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2782,8 +2831,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -2882,6 +2932,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -2925,11 +2976,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3051,6 +3106,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3494,16 +3550,20 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_PCIEPORTBUS is not set
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_IOV=y
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3545,7 +3605,6 @@ CONFIG_PID_NS=y
# CONFIG_PINCTRL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
# CONFIG_PINMUX is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
@@ -3593,8 +3652,10 @@ CONFIG_PPC64=y
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
# CONFIG_PPC_CELL is not set
+CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN=y
CONFIG_PPC_DENORMALISATION=y
CONFIG_PPC_DISABLE_WERROR=y
+CONFIG_PPC_DT_CPU_FTRS=y
# CONFIG_PPC_EARLY_DEBUG is not set
CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
@@ -3732,6 +3793,7 @@ CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3772,9 +3834,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=m
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -3808,6 +3871,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -3939,6 +4003,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4150,6 +4215,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4424,7 +4490,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4440,7 +4506,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4474,6 +4542,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4481,8 +4550,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KORG1212=m
@@ -4527,6 +4596,8 @@ CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
# CONFIG_SND_SOC_ADAU1701 is not set
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4541,6 +4612,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4554,7 +4626,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES8328 is not set
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
# CONFIG_SND_SOC_FSL_ASRC is not set
@@ -4573,10 +4647,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC is not set
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4648,8 +4724,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -4665,7 +4741,7 @@ CONFIG_SONY_FF=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
# CONFIG_SOUND_PRIME is not set
-# CONFIG_SPAPR_TCE_IOMMU is not set
+CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -4701,6 +4777,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -4761,6 +4838,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -4784,6 +4862,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
# CONFIG_TCG_TIS_I2C_ATMEL is not set
@@ -4824,6 +4903,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -4849,6 +4929,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -4873,6 +4954,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -4945,6 +5027,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -4987,11 +5070,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5202,6 +5290,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5211,6 +5300,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5358,7 +5448,7 @@ CONFIG_VETH=m
# CONFIG_VF610_ADC is not set
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
-CONFIG_VFIO_IOMMU_TYPE1=m
+# CONFIG_VFIO_IOMMU_TYPE1 is not set
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
@@ -5485,6 +5575,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5493,6 +5584,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
CONFIG_VSX=y
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
@@ -5521,6 +5613,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5590,6 +5683,7 @@ CONFIG_WQ_WATCHDOG=y
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_PTDUMP=y
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
@@ -5637,3 +5731,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-ppc64p7.config b/kernel-ppc64p7.config
index e6fbcf5db..719bca476 100644
--- a/kernel-ppc64p7.config
+++ b/kernel-ppc64p7.config
@@ -115,6 +115,8 @@ CONFIG_ADB_PMU_LED_DISK=y
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -169,6 +171,7 @@ CONFIG_APM_POWER=m
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYNC_RAID6_TEST=m
@@ -292,6 +295,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -322,6 +326,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -345,6 +350,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -352,6 +358,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -373,7 +380,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -400,6 +406,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_UMEM=m
@@ -504,6 +511,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -552,16 +560,19 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MPC5XXX is not set
# CONFIG_CAN_MSCAN is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -575,6 +586,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -594,6 +606,7 @@ CONFIG_CB710_CORE=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -694,6 +707,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -760,11 +774,13 @@ CONFIG_CRYPTO_CMAC=m
CONFIG_CRYPTO_CRC32C_VPMSUM=m
CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_CTR=y
CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
CONFIG_CRYPTO_DEV_HIFN_795X=m
@@ -777,7 +793,7 @@ CONFIG_CRYPTO_DEV_NX=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m
CONFIG_CRYPTO_DEV_VMX=y
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -834,6 +850,7 @@ CONFIG_CRYPTO_USER_API_RNG=y
CONFIG_CRYPTO_USER_API_SKCIPHER=y
CONFIG_CRYPTO_USER=m
CONFIG_CRYPTO_VMAC=m
+# CONFIG_CRYPTO_VPMSUM_TESTER is not set
CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_XTS=y
@@ -962,6 +979,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1003,8 +1021,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HISI_HIBMC=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511=m
@@ -1014,7 +1034,9 @@ CONFIG_DRM_I2C_NXP_TDA998X=m
CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1023,13 +1045,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1141,14 +1172,15 @@ CONFIG_E1000E=m
CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_CPC925 is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
# CONFIG_EDAC_MPC85XX is not set
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
@@ -1197,7 +1229,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
CONFIG_EXTRA_FIRMWARE=""
@@ -1414,6 +1445,7 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_IT87 is not set
@@ -1455,6 +1487,7 @@ CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_BOOTMEM_INFO_NODE=y
# CONFIG_HCALL_STATS is not set
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1466,6 +1499,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
# CONFIG_HIBERNATION is not set
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1509,6 +1543,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1530,12 +1565,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1685,6 +1722,7 @@ CONFIG_I2C=m
CONFIG_I2C_MLXCPLD=m
CONFIG_I2C_MPC=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1740,6 +1778,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -1875,7 +1915,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
# CONFIG_INPUT_PCSPKR is not set
@@ -1904,6 +1943,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_SPI is not set
CONFIG_IO_EVENT_IRQ=y
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2085,6 +2125,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2183,6 +2224,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2308,7 +2351,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set
@@ -2382,7 +2424,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2395,6 +2436,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2424,6 +2466,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2464,14 +2508,17 @@ CONFIG_MARVELL_PHY=m
# CONFIG_MATH_EMULATION is not set
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
# CONFIG_MC3230 is not set
@@ -2510,6 +2557,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2564,7 +2612,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=m
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2574,7 +2622,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
@@ -2615,6 +2662,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2665,6 +2713,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2707,6 +2756,7 @@ CONFIG_MMC_SDHCI=m
CONFIG_MMC_SDHCI_OF=m
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2726,7 +2776,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2760,8 +2809,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -2860,6 +2910,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -2903,11 +2954,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3029,6 +3084,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3472,16 +3528,20 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
# CONFIG_PCIEPORTBUS is not set
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_IOV=y
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3523,7 +3583,6 @@ CONFIG_PID_NS=y
# CONFIG_PINCTRL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
# CONFIG_PINMUX is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
@@ -3571,8 +3630,10 @@ CONFIG_PPC64=y
# CONFIG_PPC_83xx is not set
# CONFIG_PPC_86xx is not set
# CONFIG_PPC_CELL is not set
+CONFIG_PPC_CPUFEATURES_ENABLE_UNKNOWN=y
CONFIG_PPC_DENORMALISATION=y
CONFIG_PPC_DISABLE_WERROR=y
+CONFIG_PPC_DT_CPU_FTRS=y
# CONFIG_PPC_EARLY_DEBUG is not set
CONFIG_PPC_EMULATED_STATS=y
# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
@@ -3709,6 +3770,7 @@ CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3749,9 +3811,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=m
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -3785,6 +3848,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -3916,6 +3980,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4127,6 +4192,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
CONFIG_SENSORS_DME1737=m
@@ -4401,7 +4467,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4417,7 +4483,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4451,6 +4519,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4458,8 +4527,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KORG1212=m
@@ -4503,6 +4572,8 @@ CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
# CONFIG_SND_SOC_ADAU1701 is not set
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4517,6 +4588,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4530,7 +4602,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES8328 is not set
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
# CONFIG_SND_SOC_FSL_ASRC is not set
@@ -4549,10 +4623,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC is not set
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4624,8 +4700,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -4641,7 +4717,7 @@ CONFIG_SONY_FF=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS_CORE_PRECLAIM=y
# CONFIG_SOUND_PRIME is not set
-# CONFIG_SPAPR_TCE_IOMMU is not set
+CONFIG_SPAPR_TCE_IOMMU=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_SPARSE_RCU_POINTER=y
@@ -4677,6 +4753,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -4737,6 +4814,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -4760,6 +4838,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
# CONFIG_TCG_TIS_I2C_ATMEL is not set
@@ -4800,6 +4879,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -4825,6 +4905,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -4849,6 +4930,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -4921,6 +5003,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -4963,11 +5046,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5178,6 +5266,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5187,6 +5276,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5334,7 +5424,7 @@ CONFIG_VETH=m
# CONFIG_VF610_ADC is not set
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
-CONFIG_VFIO_IOMMU_TYPE1=m
+# CONFIG_VFIO_IOMMU_TYPE1 is not set
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
CONFIG_VFIO_MDEV=m
@@ -5461,6 +5551,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5469,6 +5560,7 @@ CONFIG_VLSI_FIR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
CONFIG_VSX=y
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
@@ -5497,6 +5589,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5566,6 +5659,7 @@ CONFIG_WM8350_WATCHDOG=m
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
+CONFIG_X86_MCELOG_LEGACY=y
# CONFIG_X86_PTDUMP is not set
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
@@ -5613,3 +5707,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-s390x-debug.config b/kernel-s390x-debug.config
index c1a343c01..ea1ef6e3a 100644
--- a/kernel-s390x-debug.config
+++ b/kernel-s390x-debug.config
@@ -114,6 +114,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -169,7 +171,9 @@ CONFIG_APPLDATA_OS=m
# CONFIG_APPLICOM is not set
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
+CONFIG_ARCH_RANDOM=y
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_PTDUMP=y
# CONFIG_AS3935 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
@@ -293,6 +297,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -323,6 +328,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -346,6 +352,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
# CONFIG_BCMA is not set
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_BE2ISCSI is not set
@@ -353,6 +360,7 @@ CONFIG_BCMGENET=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -374,7 +382,6 @@ CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -399,6 +406,7 @@ CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_UMEM is not set
@@ -503,6 +511,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -550,14 +559,17 @@ CONFIG_CAN_ESD_USB2=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 is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -571,6 +583,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
# CONFIG_CAPI_EICON is not set
@@ -593,6 +606,7 @@ CONFIG_CCW=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -691,6 +705,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -765,11 +780,12 @@ CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DES_S390=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -969,6 +985,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -1010,8 +1027,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HISI_HIBMC=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511=m
@@ -1022,6 +1041,8 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1030,13 +1051,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1148,13 +1178,14 @@ CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EADM_SCH=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
# CONFIG_ECHO is not set
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
# CONFIG_EEPROM_93XX46 is not set
@@ -1202,7 +1233,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
CONFIG_EXTRA_FIRMWARE=""
@@ -1376,7 +1406,7 @@ CONFIG_GAMEPORT_NS558=m
# CONFIG_GDB_SCRIPTS is not set
# CONFIG_GENERIC_ADC_BATTERY is not set
# CONFIG_GENERIC_ADC_THERMAL is not set
-# CONFIG_GENERIC_PHY is not set
+CONFIG_GENERIC_PHY=y
CONFIG_GENEVE=m
# CONFIG_GEN_RTC is not set
CONFIG_GENWQE=m
@@ -1403,6 +1433,7 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_IT87 is not set
@@ -1440,6 +1471,7 @@ CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1451,6 +1483,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1495,6 +1528,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1516,12 +1550,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1614,6 +1650,7 @@ CONFIG_HWLAT_TRACER=y
# CONFIG_HWMON is not set
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_OMAP=m
+CONFIG_HW_RANDOM_S390=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=m
CONFIG_HW_RANDOM_VIRTIO=m
@@ -1658,6 +1695,7 @@ CONFIG_I2C=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
# CONFIG_I2C_MUX is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
@@ -1707,6 +1745,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
# CONFIG_IEEE802154_DRIVERS is not set
CONFIG_IEEE802154_FAKELB=m
@@ -1842,7 +1882,6 @@ CONFIG_INPUT_LEDS=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -1870,6 +1909,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_IIO is not set
# CONFIG_INV_MPU6050_SPI is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2050,6 +2090,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2149,6 +2190,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2269,7 +2312,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set
@@ -2342,7 +2384,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2355,6 +2396,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2383,6 +2425,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2422,15 +2466,19 @@ CONFIG_MARCH_ZEC12=y
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
+CONFIG_MAX_PHYSMEM_BITS=46
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
# CONFIG_MC3230 is not set
@@ -2452,6 +2500,7 @@ CONFIG_MDIO_BITBANG=m
# CONFIG_MDIO_BUS_MUX_GPIO is not set
# CONFIG_MDIO_BUS_MUX is not set
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+CONFIG_MDIO_DEVICE=m
# CONFIG_MDIO_GPIO is not set
# CONFIG_MDIO_HISI_FEMAC is not set
# CONFIG_MDIO_OCTEON is not set
@@ -2468,6 +2517,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2521,7 +2571,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
# CONFIG_MFD_CORE is not set
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2531,7 +2581,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
@@ -2572,6 +2621,7 @@ CONFIG_MFD_SM501_GPIO=y
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2621,6 +2671,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2662,6 +2713,7 @@ CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF is not set
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2682,7 +2734,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2716,8 +2767,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -2812,6 +2864,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -2855,11 +2908,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -2982,6 +3039,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3289,6 +3347,7 @@ CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOZOMI is not set
CONFIG_NR_CPUS=64
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
# CONFIG_NTB is not set
@@ -3418,10 +3477,13 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_IOV=y
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_NR_FUNCTIONS=64
CONFIG_PCI_PASID=y
@@ -3429,6 +3491,7 @@ CONFIG_PCI_PASID=y
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3471,7 +3534,6 @@ CONFIG_PID_NS=y
# CONFIG_PINCTRL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
# CONFIG_PINMUX is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
@@ -3622,6 +3684,7 @@ CONFIG_RADIO_WL1273=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3662,9 +3725,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=m
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -3698,6 +3762,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -3825,6 +3890,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -3837,6 +3903,7 @@ CONFIG_RTLLIB=m
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
CONFIG_S2IO=m
+CONFIG_S390_CCW_IOMMU=y
CONFIG_S390_GUEST_OLD_TRANSPORT=y
CONFIG_S390_GUEST=y
CONFIG_S390_HYPFS_FS=y
@@ -4049,6 +4116,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
# CONFIG_SENSORS_APDS990X is not set
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
# CONFIG_SENSORS_BH1770 is not set
CONFIG_SENSORS_DME1737=m
@@ -4319,7 +4387,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4335,7 +4403,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4369,6 +4439,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4376,8 +4447,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KORG1212=m
@@ -4421,6 +4492,8 @@ CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
# CONFIG_SND_SOC_ADAU1701 is not set
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4435,6 +4508,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4448,7 +4522,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES8328 is not set
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
# CONFIG_SND_SOC_FSL_ASRC is not set
@@ -4467,10 +4543,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4542,8 +4620,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
CONFIG_SND_VERBOSE_PRINTK=y
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -4592,6 +4670,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -4651,6 +4730,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -4674,6 +4754,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
# CONFIG_TCG_TIS_I2C_ATMEL is not set
@@ -4714,6 +4795,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -4739,6 +4821,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -4763,6 +4846,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
# CONFIG_TIFM_CORE is not set
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -4841,6 +4925,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -4882,11 +4967,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5090,6 +5180,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5099,6 +5190,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5246,6 +5338,7 @@ CONFIG_VETH=m
# CONFIG_VF610_ADC is not set
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
+CONFIG_VFIO_CCW=m
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
@@ -5373,6 +5466,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5383,6 +5477,7 @@ CONFIG_VMLOGRDR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -5410,6 +5505,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5478,6 +5574,7 @@ CONFIG_WQ_WATCHDOG=y
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_PTDUMP=y
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
@@ -5521,3 +5618,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-s390x.config b/kernel-s390x.config
index a036cb5ca..026a01195 100644
--- a/kernel-s390x.config
+++ b/kernel-s390x.config
@@ -114,6 +114,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -169,7 +171,9 @@ CONFIG_APPLDATA_OS=m
# CONFIG_APPLICOM is not set
CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
+CONFIG_ARCH_RANDOM=y
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
CONFIG_ASYMMETRIC_KEY_TYPE=y
CONFIG_ASYNC_RAID6_TEST=m
@@ -292,6 +296,7 @@ CONFIG_B53_SPI_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -322,6 +327,7 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_SBS is not set
@@ -345,6 +351,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
# CONFIG_BCMA is not set
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_BE2ISCSI is not set
@@ -352,6 +359,7 @@ CONFIG_BCMGENET=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -373,7 +381,6 @@ CONFIG_BLK_DEV_BSG=y
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -398,6 +405,7 @@ CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_UMEM is not set
@@ -502,6 +510,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -549,14 +558,17 @@ CONFIG_CAN_ESD_USB2=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 is not set
CONFIG_CAN_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -570,6 +582,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
# CONFIG_CAPI_EICON is not set
@@ -592,6 +605,7 @@ CONFIG_CCW=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -690,6 +704,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -763,11 +778,12 @@ CONFIG_CRYPTO_CTS=y
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DES_S390=m
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -958,6 +974,7 @@ CONFIG_DM_DEBUG=y
CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
+CONFIG_DM_INTEGRITY=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
CONFIG_DM_MIRROR=y
@@ -999,8 +1016,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_HISI_HIBMC=m
CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_I2C_ADV7511=m
@@ -1011,6 +1030,8 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM is not set
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1019,13 +1040,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_LVDS is not set
+# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1137,13 +1167,14 @@ CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EADM_SCH=m
CONFIG_EARLY_PRINTK_DBGP=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
# CONFIG_ECHO is not set
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC=y
CONFIG_EEPROM_93CX6=m
# CONFIG_EEPROM_93XX46 is not set
@@ -1191,7 +1222,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
-CONFIG_EXTCON_INTEL_INT3496=m
# CONFIG_EXTCON is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
CONFIG_EXTRA_FIRMWARE=""
@@ -1358,7 +1388,7 @@ CONFIG_GAMEPORT_NS558=m
# CONFIG_GDB_SCRIPTS is not set
# CONFIG_GENERIC_ADC_BATTERY is not set
# CONFIG_GENERIC_ADC_THERMAL is not set
-# CONFIG_GENERIC_PHY is not set
+CONFIG_GENERIC_PHY=y
CONFIG_GENEVE=m
# CONFIG_GEN_RTC is not set
CONFIG_GENWQE=m
@@ -1385,6 +1415,7 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_BT8XX is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
# CONFIG_GPIO_IT87 is not set
@@ -1422,6 +1453,7 @@ CONFIG_HAMRADIO=y
CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HEADERS_CHECK=y
CONFIG_HERMES_CACHE_FW_ON_INIT=y
@@ -1433,6 +1465,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1477,6 +1510,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1498,12 +1532,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1596,6 +1632,7 @@ CONFIG_HWLAT_TRACER=y
# CONFIG_HWMON is not set
CONFIG_HWPOISON_INJECT=m
CONFIG_HW_RANDOM_OMAP=m
+CONFIG_HW_RANDOM_S390=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_TPM=m
CONFIG_HW_RANDOM_VIRTIO=m
@@ -1640,6 +1677,7 @@ CONFIG_I2C=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
# CONFIG_I2C_MUX is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
# CONFIG_I2C_MUX_PCA954x is not set
@@ -1689,6 +1727,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
# CONFIG_IEEE802154_DRIVERS is not set
CONFIG_IEEE802154_FAKELB=m
@@ -1824,7 +1864,6 @@ CONFIG_INPUT_LEDS=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_MOUSE is not set
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -1852,6 +1891,7 @@ CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INV_MPU6050_IIO is not set
# CONFIG_INV_MPU6050_SPI is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2032,6 +2072,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2131,6 +2172,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2249,7 +2292,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_IS31FL319X is not set
# CONFIG_LEDS_IS31FL32XX is not set
@@ -2322,7 +2364,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2335,6 +2376,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+# CONFIG_LOAD_UEFI_KEYS is not set
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2363,6 +2405,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2402,15 +2446,19 @@ CONFIG_MARCH_ZEC12=y
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
+CONFIG_MAX_PHYSMEM_BITS=46
CONFIG_MAX_RAW_DEVS=8192
# CONFIG_MC3230 is not set
# CONFIG_MCB is not set
@@ -2431,6 +2479,7 @@ CONFIG_MDIO_BITBANG=m
# CONFIG_MDIO_BUS_MUX_GPIO is not set
# CONFIG_MDIO_BUS_MUX is not set
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+CONFIG_MDIO_DEVICE=m
# CONFIG_MDIO_GPIO is not set
# CONFIG_MDIO_HISI_FEMAC is not set
# CONFIG_MDIO_OCTEON is not set
@@ -2447,6 +2496,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2500,7 +2550,7 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_AXP20X is not set
# CONFIG_MFD_BCM590XX is not set
# CONFIG_MFD_CORE is not set
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2510,7 +2560,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
@@ -2551,6 +2600,7 @@ CONFIG_MFD_SM501_GPIO=y
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2600,6 +2650,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2641,6 +2692,7 @@ CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF is not set
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2660,7 +2712,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-# CONFIG_MODULE_SIG_UEFI is not set
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -2694,8 +2745,9 @@ CONFIG_MOVABLE_NODE=y
# CONFIG_MPL3115 is not set
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -2790,6 +2842,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -2833,11 +2886,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -2960,6 +3017,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3267,6 +3325,7 @@ CONFIG_NOUVEAU_DEBUG=5
CONFIG_NOUVEAU_DEBUG_DEFAULT=3
# CONFIG_NOZOMI is not set
CONFIG_NR_CPUS=64
+CONFIG_NR_DEV_DAX=32768
CONFIG_NS83820=m
CONFIG_NSC_FIR=m
# CONFIG_NTB is not set
@@ -3396,10 +3455,13 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_IOV=y
+# CONFIG_PCI_MSI_IRQ_DOMAIN is not set
CONFIG_PCI_MSI=y
CONFIG_PCI_NR_FUNCTIONS=64
CONFIG_PCI_PASID=y
@@ -3407,6 +3469,7 @@ CONFIG_PCI_PASID=y
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3449,7 +3512,6 @@ CONFIG_PID_NS=y
# CONFIG_PINCTRL is not set
# CONFIG_PINCTRL_MSM8994 is not set
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
# CONFIG_PINMUX is not set
CONFIG_PKCS7_MESSAGE_PARSER=y
# CONFIG_PKCS7_TEST_KEY is not set
@@ -3599,6 +3661,7 @@ CONFIG_RADIO_WL1273=m
CONFIG_RADIO_ZOLTRIX=m
CONFIG_RAID_ATTRS=m
# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -3639,9 +3702,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=m
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -3675,6 +3739,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -3802,6 +3867,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -3814,6 +3880,7 @@ CONFIG_RTLLIB=m
CONFIG_RTLWIFI=m
# CONFIG_RTS5208 is not set
CONFIG_S2IO=m
+CONFIG_S390_CCW_IOMMU=y
CONFIG_S390_GUEST_OLD_TRANSPORT=y
CONFIG_S390_GUEST=y
CONFIG_S390_HYPFS_FS=y
@@ -4026,6 +4093,7 @@ CONFIG_SENSORS_ADT7475=m
CONFIG_SENSORS_AMC6821=m
# CONFIG_SENSORS_APDS990X is not set
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATXP1=m
# CONFIG_SENSORS_BH1770 is not set
CONFIG_SENSORS_DME1737=m
@@ -4296,7 +4364,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4312,7 +4380,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4346,6 +4416,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4353,8 +4424,8 @@ CONFIG_SND_INDIGODJX=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGO=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
CONFIG_SND_ISIGHT=m
CONFIG_SND_JACK=y
CONFIG_SND_KORG1212=m
@@ -4397,6 +4468,8 @@ CONFIG_SND_SIMPLE_CARD=m
CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
# CONFIG_SND_SOC_ADAU1701 is not set
+CONFIG_SND_SOC_ADAU1761_I2C=m
+CONFIG_SND_SOC_ADAU1761_SPI=m
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4411,6 +4484,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4424,7 +4498,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
# CONFIG_SND_SOC_ES8328 is not set
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
# CONFIG_SND_SOC_FSL_ASRC is not set
@@ -4443,10 +4519,12 @@ CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
# CONFIG_SND_SOC_NAU8540 is not set
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4518,8 +4596,8 @@ CONFIG_SND_USB_VARIAX=m
CONFIG_SND_USB=y
# CONFIG_SND_VERBOSE_PRINTK is not set
CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
CONFIG_SND_VIRMIDI=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
@@ -4568,6 +4646,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -4627,6 +4706,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -4650,6 +4730,7 @@ CONFIG_TASKS_RCU=y
CONFIG_TASKSTATS=y
CONFIG_TASK_XACCT=y
CONFIG_TCG_ATMEL=m
+CONFIG_TCG_CRB=m
# CONFIG_TCG_INFINEON is not set
CONFIG_TCG_NSC=m
# CONFIG_TCG_TIS_I2C_ATMEL is not set
@@ -4690,6 +4771,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -4715,6 +4797,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
# CONFIG_THERMAL_GOV_BANG_BANG is not set
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -4739,6 +4822,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
# CONFIG_TIFM_CORE is not set
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -4817,6 +4901,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -4858,11 +4943,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5066,6 +5156,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5075,6 +5166,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5222,6 +5314,7 @@ CONFIG_VETH=m
# CONFIG_VF610_ADC is not set
# CONFIG_VF610_DAC is not set
CONFIG_VFAT_FS=m
+CONFIG_VFIO_CCW=m
CONFIG_VFIO_IOMMU_TYPE1=m
CONFIG_VFIO=m
CONFIG_VFIO_MDEV_DEVICE=m
@@ -5349,6 +5442,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5359,6 +5453,7 @@ CONFIG_VMLOGRDR=m
# CONFIG_VMXNET3 is not set
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -5386,6 +5481,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5454,6 +5550,7 @@ CONFIG_WM8350_WATCHDOG=m
# CONFIG_WW_MUTEX_SELFTEST is not set
# CONFIG_X25 is not set
# CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set
+CONFIG_X86_MCELOG_LEGACY=y
# CONFIG_X86_PTDUMP is not set
CONFIG_XFRM_MIGRATE=y
CONFIG_XFRM_STATISTICS=y
@@ -5497,3 +5594,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-x86_64-debug.config b/kernel-x86_64-debug.config
index 9364257c1..98bf5347d 100644
--- a/kernel-x86_64-debug.config
+++ b/kernel-x86_64-debug.config
@@ -153,6 +153,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -190,7 +192,7 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000
CONFIG_AIX_PARTITION=y
# CONFIG_AK09911 is not set
# CONFIG_AK8974 is not set
-# CONFIG_AK8975 is not set
+CONFIG_AK8975=m
# CONFIG_AL3320A is not set
CONFIG_ALIENWARE_WMI=m
CONFIG_ALI_FIR=m
@@ -222,6 +224,7 @@ CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCH_MEMORY_PROBE is not set
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
CONFIG_ARM64_PTDUMP=y
# CONFIG_AS3935 is not set
CONFIG_ASUS_LAPTOP=m
@@ -323,6 +326,11 @@ CONFIG_AUXDISPLAY=y
# CONFIG_AVERAGE is not set
CONFIG_AX25_DAMA_SLAVE=y
CONFIG_AX25=m
+# CONFIG_AXP20X_ADC is not set
+# CONFIG_AXP20X_POWER is not set
+CONFIG_AXP288_ADC=m
+CONFIG_AXP288_CHARGER=m
+CONFIG_AXP288_FUEL_GAUGE=m
CONFIG_B43_BCMA_PIO=y
CONFIG_B43_BCMA=y
CONFIG_B43_DEBUG=y
@@ -349,6 +357,7 @@ CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -379,8 +388,9 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
+CONFIG_BATTERY_MAX17042=m
# CONFIG_BATTERY_SBS is not set
CONFIG_BAYCOM_EPP=m
CONFIG_BAYCOM_PAR=m
@@ -402,6 +412,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -409,6 +420,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -435,7 +447,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -461,6 +472,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_UB is not set
@@ -565,6 +577,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -614,14 +627,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -635,6 +651,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -656,6 +673,7 @@ CONFIG_CC_STACKPROTECTOR=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -686,7 +704,7 @@ CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_SCHED=y
CONFIG_CGROUPS=y
# CONFIG_CHARGER_BQ2415X is not set
-# CONFIG_CHARGER_BQ24190 is not set
+CONFIG_CHARGER_BQ24190=m
# CONFIG_CHARGER_BQ24257 is not set
# CONFIG_CHARGER_BQ24735 is not set
# CONFIG_CHARGER_BQ25890 is not set
@@ -715,6 +733,7 @@ CONFIG_CHR_DEV_ST=m
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHT_WC_PMIC_OPREGION=y
CONFIG_CICADA_PHY=m
CONFIG_CIFS_ACL=y
# CONFIG_CIFS_DEBUG2 is not set
@@ -756,6 +775,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -847,6 +867,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
CONFIG_CRYPTO_DEV_CCP=y
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
@@ -860,7 +881,7 @@ CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1035,6 +1056,7 @@ CONFIG_DELL_RBTN=m
CONFIG_DELL_SMBIOS=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_LED=m
CONFIG_DELL_WMI=m
CONFIG_DETECT_HUNG_TASK=y
CONFIG_DEV_APPLETALK=m
@@ -1081,6 +1103,7 @@ CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
CONFIG_DMIID=y
+CONFIG_DM_INTEGRITY=m
CONFIG_DMI_SYSFS=y
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
@@ -1124,8 +1147,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1140,13 +1165,16 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915=m
CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1155,16 +1183,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
+CONFIG_DRM_PANEL_LVDS=m
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1279,19 +1313,19 @@ CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_EARLY_PRINTK_EFI=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
CONFIG_EDAC_AMD64=m
-CONFIG_EDAC_AMD76X=m
CONFIG_EDAC_AMD8111=m
CONFIG_EDAC_AMD8131=m
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_E752X=m
-CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_I3000=m
CONFIG_EDAC_I3200=m
CONFIG_EDAC_I5000=m
@@ -1299,14 +1333,10 @@ CONFIG_EDAC_I5100=m
CONFIG_EDAC_I5400=m
CONFIG_EDAC_I7300=m
CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_I82860=m
-CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_IE31200=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_PND2=m
-CONFIG_EDAC_R82600=m
CONFIG_EDAC_SBRIDGE=m
CONFIG_EDAC_SKX=m
CONFIG_EDAC_X38=m
@@ -1374,9 +1404,16 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
+CONFIG_EXTCON_AXP288=m
+# CONFIG_EXTCON_GPIO is not set
+CONFIG_EXTCON_INTEL_CHT_WC=m
CONFIG_EXTCON_INTEL_INT3496=m
-# CONFIG_EXTCON is not set
+CONFIG_EXTCON=m
+# CONFIG_EXTCON_MAX3355 is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+# CONFIG_EXTCON_USB_GPIO is not set
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_EZNPS_GIC is not set
# CONFIG_EZX_PCAP is not set
@@ -1593,12 +1630,14 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_ALTERA is not set
# CONFIG_GPIO_AMD8111 is not set
# CONFIG_GPIO_AMDPT is not set
+# CONFIG_GPIO_AXP209 is not set
# CONFIG_GPIO_BT8XX is not set
CONFIG_GPIO_CRYSTAL_COVE=y
# CONFIG_GPIO_CS5535 is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
CONFIG_GPIO_ICH=m
@@ -1644,6 +1683,7 @@ CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
@@ -1658,6 +1698,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1702,6 +1743,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1723,12 +1765,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1867,16 +1911,17 @@ CONFIG_I2C_AMD8111=m
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_CHT_WC=m
CONFIG_I2C_COMPAT=y
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEMUX_PINCTRL is not set
CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
-CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_CORE=y
# CONFIG_I2C_DESIGNWARE is not set
-CONFIG_I2C_DESIGNWARE_PCI=m
-CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_DESIGNWARE_PCI=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_EG20T is not set
# CONFIG_I2C_EMEV2 is not set
@@ -1888,6 +1933,7 @@ CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1950,6 +1996,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2032,6 +2080,7 @@ CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_NES=m
CONFIG_INFINIBAND_OCRDMA=m
CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_OPA_VNIC=m
# CONFIG_INFINIBAND_QEDR is not set
CONFIG_INFINIBAND_QIB_DCA=y
CONFIG_INFINIBAND_QIB=m
@@ -2052,6 +2101,7 @@ CONFIG_INPUT_APANEL=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_ATLAS_BTNS=m
# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+CONFIG_INPUT_AXP20X_PEK=m
# CONFIG_INPUT_BMA150 is not set
CONFIG_INPUT_CM109=m
CONFIG_INPUT_CMA3000_I2C=m
@@ -2086,7 +2136,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2109,10 +2158,13 @@ CONFIG_INPUT_YEALINK=m
CONFIG_INT3406_THERMAL=m
CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
+# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_INT0002_VGPIO=m
CONFIG_INTEL_IOATDMA=m
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
@@ -2141,6 +2193,7 @@ CONFIG_INTEL_RST=m
# CONFIG_INTEL_SCU_IPC is not set
CONFIG_INTEL_SMARTCONNECT=y
CONFIG_INTEL_SOC_DTS_THERMAL=m
+CONFIG_INTEL_SOC_PMIC_CHTWC=y
CONFIG_INTEL_SOC_PMIC=y
# CONFIG_INTEL_TH is not set
CONFIG_INTEL_TURBO_MAX_3=y
@@ -2148,12 +2201,13 @@ CONFIG_INTEL_TXT=y
CONFIG_INTEL_VBTN=m
CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_INV_MPU6050_I2C is not set
-# CONFIG_INV_MPU6050_IIO is not set
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_INV_MPU6050_IIO=m
# CONFIG_INV_MPU6050_SPI is not set
# CONFIG_IOMMU_DEBUG is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2340,6 +2394,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2440,6 +2495,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2567,7 +2624,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
CONFIG_LEDS_INTEL_SS4200=m
# CONFIG_LEDS_IS31FL319X is not set
@@ -2643,7 +2699,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2656,6 +2711,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+CONFIG_LOAD_UEFI_KEYS=y
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2684,6 +2740,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2723,14 +2781,17 @@ CONFIG_MANTIS_CORE=m
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2769,6 +2830,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2819,11 +2881,11 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_ASIC3 is not set
# CONFIG_MFD_ATMEL_FLEXCOM is not set
# CONFIG_MFD_ATMEL_HLCDC is not set
-# CONFIG_MFD_AXP20X_I2C is not set
-# CONFIG_MFD_AXP20X is not set
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_AXP20X=y
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2833,7 +2895,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
@@ -2877,6 +2938,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2931,6 +2993,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2973,6 +3036,7 @@ CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF is not set
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2994,7 +3058,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-CONFIG_MODULE_SIG_UEFI=y
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3029,8 +3092,9 @@ CONFIG_MPILIB=y
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
# CONFIG_MPSC is not set
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3135,6 +3199,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3178,11 +3243,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3305,6 +3374,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3771,18 +3841,22 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_HYPERV=m
CONFIG_PCI_IOV=y
CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3835,7 +3909,6 @@ CONFIG_PINCTRL_CHERRYVIEW=y
# CONFIG_PINCTRL_MSM8994 is not set
CONFIG_PINCTRL_SUNRISEPOINT=m
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PKCS7_MESSAGE_PARSER=y
@@ -3996,6 +4069,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RANDOMIZE_BASE=y
CONFIG_RANDOMIZE_MEMORY=y
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4036,9 +4110,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4072,6 +4147,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -4199,6 +4275,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4414,6 +4491,7 @@ CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATK0110=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
@@ -4633,7 +4711,7 @@ CONFIG_SH_ETH=m
# CONFIG_SIGMA is not set
CONFIG_SIGMATEL_FIR=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
-# CONFIG_SILEAD_DMI is not set
+CONFIG_SILEAD_DMI=y
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4701,7 +4779,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DEBUG=y
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4717,7 +4795,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4751,6 +4831,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4804,6 +4885,8 @@ CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4818,6 +4901,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4831,7 +4915,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -4854,6 +4940,8 @@ CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
@@ -4870,10 +4958,12 @@ CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
CONFIG_SND_SOC_NAU8540=m
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -5007,6 +5097,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5067,6 +5158,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5131,6 +5223,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -5156,6 +5249,7 @@ CONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5186,6 +5280,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5263,6 +5358,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5305,11 +5401,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5514,6 +5615,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5523,6 +5625,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5644,7 +5747,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
CONFIG_USB_XHCI_HCD=y
-# CONFIG_USB_XHCI_PLATFORM is not set
+CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
CONFIG_USB_YUREX=m
@@ -5802,6 +5905,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5818,6 +5922,7 @@ CONFIG_VOP_BUS=m
CONFIG_VOP=m
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -5845,6 +5950,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5933,6 +6039,7 @@ CONFIG_X86_INTEL_PSTATE=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_INJECT=m
CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_MCE=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_MSR=y
@@ -5966,6 +6073,7 @@ CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_DEBUG_FS=y
# CONFIG_XEN_DEBUG is not set
CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_DOM0=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XENFS=m
CONFIG_XEN_GNTDEV=m
@@ -5975,7 +6083,9 @@ CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PVHVM=y
CONFIG_XEN_PVH=y
+CONFIG_XEN_PV=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_SCSI_BACKEND=m
@@ -6030,3 +6140,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel-x86_64.config b/kernel-x86_64.config
index c65afc783..f1e7819cf 100644
--- a/kernel-x86_64.config
+++ b/kernel-x86_64.config
@@ -153,6 +153,8 @@ CONFIG_ADAPTEC_STARFIRE=m
# CONFIG_ADM8211 is not set
# CONFIG_ADT7316 is not set
# CONFIG_ADVANTECH_WDT is not set
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
# CONFIG_ADXRS450 is not set
# CONFIG_AFE4403 is not set
# CONFIG_AFE4404 is not set
@@ -190,7 +192,7 @@ CONFIG_AIC7XXX_RESET_DELAY_MS=15000
CONFIG_AIX_PARTITION=y
# CONFIG_AK09911 is not set
# CONFIG_AK8974 is not set
-# CONFIG_AK8975 is not set
+CONFIG_AK8975=m
# CONFIG_AL3320A is not set
CONFIG_ALIENWARE_WMI=m
CONFIG_ALI_FIR=m
@@ -222,6 +224,7 @@ CONFIG_AQUANTIA_PHY=m
CONFIG_AR5523=m
# CONFIG_ARCH_MEMORY_PROBE is not set
# CONFIG_ARCNET is not set
+CONFIG_ARM64_ERRATUM_858921=y
# CONFIG_AS3935 is not set
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_NB_WMI=m
@@ -322,6 +325,11 @@ CONFIG_AUXDISPLAY=y
# CONFIG_AVERAGE is not set
CONFIG_AX25_DAMA_SLAVE=y
CONFIG_AX25=m
+# CONFIG_AXP20X_ADC is not set
+# CONFIG_AXP20X_POWER is not set
+CONFIG_AXP288_ADC=m
+CONFIG_AXP288_CHARGER=m
+CONFIG_AXP288_FUEL_GAUGE=m
CONFIG_B43_BCMA_PIO=y
CONFIG_B43_BCMA=y
# CONFIG_B43_DEBUG is not set
@@ -348,6 +356,7 @@ CONFIG_B53_SRAB_DRIVER=m
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
CONFIG_BACKLIGHT_APPLE=m
+CONFIG_BACKLIGHT_ARCXCNN=m
# CONFIG_BACKLIGHT_BD6107 is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
@@ -378,8 +387,9 @@ CONFIG_BATMAN_ADV_NC=y
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
+CONFIG_BATTERY_MAX17042=m
# CONFIG_BATTERY_SBS is not set
CONFIG_BAYCOM_EPP=m
CONFIG_BAYCOM_PAR=m
@@ -401,6 +411,7 @@ CONFIG_BCMA_HOST_PCI_POSSIBLE=y
CONFIG_BCMA_HOST_PCI=y
# CONFIG_BCMA_HOST_SOC is not set
CONFIG_BCMA=m
+# CONFIG_BCM_FLEXRM_MBOX is not set
CONFIG_BCMGENET=m
# CONFIG_BCM_KONA_USB2_PHY is not set
CONFIG_BE2ISCSI=m
@@ -408,6 +419,7 @@ CONFIG_BE2ISCSI=m
CONFIG_BE2NET=m
# CONFIG_BEFS_DEBUG is not set
CONFIG_BEFS_FS=m
+CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_BFS_FS is not set
CONFIG_BH1750=m
# CONFIG_BH1780 is not set
@@ -434,7 +446,6 @@ CONFIG_BLK_DEV_DAC960=m
CONFIG_BLK_DEV_DM=y
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_FD=m
-# CONFIG_BLK_DEV_HD is not set
CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_IO_TRACE=y
@@ -460,6 +471,7 @@ CONFIG_BLK_DEV_SKD=m
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_THROTTLING_LOW is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_UB is not set
@@ -564,6 +576,7 @@ CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_MRVL=y
CONFIG_BT_HCIUART_NOKIA=m
CONFIG_BT_HCIUART_QCA=y
+CONFIG_BT_HCIUART_SERDEV=y
CONFIG_BT_HCIVHCI=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
@@ -613,14 +626,17 @@ CONFIG_CAN_ESD_USB2=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_KVASER_PCI=m
CONFIG_CAN_KVASER_USB=m
CONFIG_CAN_LEDS=y
CONFIG_CAN=m
CONFIG_CAN_M_CAN=m
+CONFIG_CAN_MCBA_USB=m
# CONFIG_CAN_MCP251X is not set
CONFIG_CAN_PEAK_PCIEC=y
+CONFIG_CAN_PEAK_PCIEFD=m
CONFIG_CAN_PEAK_PCI=m
# CONFIG_CAN_PEAK_PCMCIA is not set
CONFIG_CAN_PEAK_USB=m
@@ -634,6 +650,7 @@ CONFIG_CAN_SLCAN=m
CONFIG_CAN_SOFTING=m
# CONFIG_CAN_TSCAN1 is not set
CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
# CONFIG_CAN_XILINXCAN is not set
CONFIG_CAPI_AVM=y
CONFIG_CAPI_EICON=y
@@ -655,6 +672,7 @@ CONFIG_CC_STACKPROTECTOR=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
CONFIG_CDROM_PKTCDVD=m
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+CONFIG_CEC_PLATFORM_DRIVERS=y
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -685,7 +703,7 @@ CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_SCHED=y
CONFIG_CGROUPS=y
# CONFIG_CHARGER_BQ2415X is not set
-# CONFIG_CHARGER_BQ24190 is not set
+CONFIG_CHARGER_BQ24190=m
# CONFIG_CHARGER_BQ24257 is not set
# CONFIG_CHARGER_BQ24735 is not set
# CONFIG_CHARGER_BQ25890 is not set
@@ -714,6 +732,7 @@ CONFIG_CHR_DEV_ST=m
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHT_WC_PMIC_OPREGION=y
CONFIG_CICADA_PHY=m
CONFIG_CIFS_ACL=y
# CONFIG_CIFS_DEBUG2 is not set
@@ -755,6 +774,7 @@ CONFIG_CODA_FS=m
# CONFIG_COMMON_CLK_PWM is not set
# CONFIG_COMMON_CLK_SI514 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
# CONFIG_COMMON_CLK_VC5 is not set
# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
# CONFIG_COMMON_RESET_HI3660 is not set
@@ -845,6 +865,7 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_CCP_DD=m
CONFIG_CRYPTO_DEV_CCP=y
+# CONFIG_CRYPTO_DEV_CCREE is not set
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_HIFN_795X=m
CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
@@ -858,7 +879,7 @@ CONFIG_CRYPTO_DEV_QAT_C62XVF=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_CRYPTO_DEV_VIRTIO=m
-CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_DH=y
CONFIG_CRYPTO_DRBG_CTR=y
CONFIG_CRYPTO_DRBG_HASH=y
CONFIG_CRYPTO_DRBG_MENU=y
@@ -1025,6 +1046,7 @@ CONFIG_DELL_RBTN=m
CONFIG_DELL_SMBIOS=m
CONFIG_DELL_SMO8800=m
CONFIG_DELL_WMI_AIO=m
+CONFIG_DELL_WMI_LED=m
CONFIG_DELL_WMI=m
# CONFIG_DETECT_HUNG_TASK is not set
CONFIG_DEV_APPLETALK=m
@@ -1070,6 +1092,7 @@ CONFIG_DM_DELAY=m
# CONFIG_DM_ERA is not set
CONFIG_DM_FLAKEY=m
CONFIG_DMIID=y
+CONFIG_DM_INTEGRITY=m
CONFIG_DMI_SYSFS=y
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_LOG_WRITES=m
@@ -1113,8 +1136,10 @@ CONFIG_DRM_CIRRUS_QEMU=m
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
CONFIG_DRM_DP_AUX_CHARDEV=y
# CONFIG_DRM_DUMB_VGA_DAC is not set
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_GMA3600=y
CONFIG_DRM_GMA500=m
# CONFIG_DRM_GMA600 is not set
@@ -1129,13 +1154,16 @@ CONFIG_DRM_I2C_SIL164=m
# CONFIG_DRM_I915_ALPHA_SUPPORT is not set
CONFIG_DRM_I915_CAPTURE_ERROR=y
CONFIG_DRM_I915_COMPRESS_ERROR=y
+# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
CONFIG_DRM_I915_GVT_KVMGT=m
CONFIG_DRM_I915_GVT=y
CONFIG_DRM_I915=m
CONFIG_DRM_I915_USERPTR=y
# CONFIG_DRM_LEGACY is not set
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+# CONFIG_DRM_LVDS_ENCODER is not set
CONFIG_DRM=m
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
CONFIG_DRM_MGAG200=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_MXSFB is not set
@@ -1144,16 +1172,22 @@ CONFIG_DRM_NOUVEAU=m
# CONFIG_DRM_NXP_PTN3460 is not set
# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
+CONFIG_DRM_PANEL_LVDS=m
# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
+# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
# CONFIG_DRM_PANEL_SIMPLE is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
CONFIG_DRM_PANEL=y
# CONFIG_DRM_PARADE_PS8622 is not set
CONFIG_DRM_QXL=m
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_USERPTR=y
+# CONFIG_DRM_RCAR_DW_HDMI is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_DRM_SII902X is not set
CONFIG_DRM_SIL_SII8620=m
@@ -1268,19 +1302,19 @@ CONFIG_E1000=m
CONFIG_E100=m
CONFIG_EARLY_PRINTK_DBGP=y
CONFIG_EARLY_PRINTK_EFI=y
+CONFIG_EARLY_PRINTK_USB_XDBC=y
# CONFIG_EBC_C384_WDT is not set
CONFIG_ECHO=m
CONFIG_ECRYPT_FS=m
# CONFIG_ECRYPT_FS_MESSAGING is not set
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
CONFIG_EDAC_AMD64=m
-CONFIG_EDAC_AMD76X=m
CONFIG_EDAC_AMD8111=m
CONFIG_EDAC_AMD8131=m
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_E752X=m
-CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_GHES=y
CONFIG_EDAC_I3000=m
CONFIG_EDAC_I3200=m
CONFIG_EDAC_I5000=m
@@ -1288,14 +1322,10 @@ CONFIG_EDAC_I5100=m
CONFIG_EDAC_I5400=m
CONFIG_EDAC_I7300=m
CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_I82860=m
-CONFIG_EDAC_I82875P=m
CONFIG_EDAC_I82975X=m
CONFIG_EDAC_IE31200=m
CONFIG_EDAC_LEGACY_SYSFS=y
-CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_PND2=m
-CONFIG_EDAC_R82600=m
CONFIG_EDAC_SBRIDGE=m
CONFIG_EDAC_SKX=m
CONFIG_EDAC_X38=m
@@ -1363,9 +1393,16 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_FS=y
CONFIG_EXT4_USE_FOR_EXT2=y
# CONFIG_EXTCON_ADC_JACK is not set
+CONFIG_EXTCON_AXP288=m
+# CONFIG_EXTCON_GPIO is not set
+CONFIG_EXTCON_INTEL_CHT_WC=m
CONFIG_EXTCON_INTEL_INT3496=m
-# CONFIG_EXTCON is not set
+CONFIG_EXTCON=m
+# CONFIG_EXTCON_MAX3355 is not set
# CONFIG_EXTCON_QCOM_SPMI_MISC is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+# CONFIG_EXTCON_USB_GPIO is not set
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_EZNPS_GIC is not set
# CONFIG_EZX_PCAP is not set
@@ -1575,12 +1612,14 @@ CONFIG_GIRBIL_DONGLE=m
# CONFIG_GPIO_ALTERA is not set
# CONFIG_GPIO_AMD8111 is not set
# CONFIG_GPIO_AMDPT is not set
+# CONFIG_GPIO_AXP209 is not set
# CONFIG_GPIO_BT8XX is not set
CONFIG_GPIO_CRYSTAL_COVE=y
# CONFIG_GPIO_CS5535 is not set
# CONFIG_GPIO_DWAPB is not set
CONFIG_GPIO_EXAR=m
# CONFIG_GPIO_F7188X is not set
+# CONFIG_GPIO_FTGPIO010 is not set
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_GRGPIO is not set
CONFIG_GPIO_ICH=m
@@ -1626,6 +1665,7 @@ CONFIG_HANGCHECK_TIMER=m
CONFIG_HAPPYMEAL=m
CONFIG_HARDENED_USERCOPY=y
CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HD44780=m
# CONFIG_HDC100X is not set
CONFIG_HDMI_LPE_AUDIO=m
CONFIG_HEADERS_CHECK=y
@@ -1640,6 +1680,7 @@ CONFIG_HFSPLUS_FS=m
# CONFIG_HI8435 is not set
CONFIG_HIBERNATION=y
CONFIG_HID_A4TECH=m
+CONFIG_HID_ACCUTOUCH=m
CONFIG_HID_ACRUX_FF=y
CONFIG_HID_ACRUX=m
CONFIG_HID_ALPS=m
@@ -1684,6 +1725,7 @@ CONFIG_HID_MAYFLASH=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MONTEREY=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTI=m
CONFIG_HID_NTRIG=y
CONFIG_HID_ORTEK=m
CONFIG_HID_PANTHERLORD=m
@@ -1705,12 +1747,14 @@ CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUB=m
+CONFIG_HID_SENSOR_HUMIDITY=m
CONFIG_HID_SENSOR_IIO_COMMON=m
CONFIG_HID_SENSOR_IIO_TRIGGER=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
# CONFIG_HID_SENSOR_PRESS is not set
# CONFIG_HID_SENSOR_PROX is not set
+CONFIG_HID_SENSOR_TEMP=m
CONFIG_HID_SMARTJOYPLUS=m
CONFIG_HID_SONY=m
CONFIG_HID_SPEEDLINK=m
@@ -1849,16 +1893,17 @@ CONFIG_I2C_AMD8111=m
# CONFIG_I2C_CADENCE is not set
# CONFIG_I2C_CBUS_GPIO is not set
CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_CHT_WC=m
CONFIG_I2C_COMPAT=y
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEMUX_PINCTRL is not set
CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
-CONFIG_I2C_DESIGNWARE_CORE=m
+CONFIG_I2C_DESIGNWARE_CORE=y
# CONFIG_I2C_DESIGNWARE is not set
-CONFIG_I2C_DESIGNWARE_PCI=m
-CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_DESIGNWARE_PCI=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_DIOLAN_U2C=m
# CONFIG_I2C_EG20T is not set
# CONFIG_I2C_EMEV2 is not set
@@ -1870,6 +1915,7 @@ CONFIG_I2C_ISCH=m
CONFIG_I2C_ISMT=m
CONFIG_I2C_MLXCPLD=m
# CONFIG_I2C_MUX_GPIO is not set
+CONFIG_I2C_MUX_LTC4306=m
CONFIG_I2C_MUX=m
CONFIG_I2C_MUX_MLXCPLD=m
# CONFIG_I2C_MUX_PCA9541 is not set
@@ -1932,6 +1978,8 @@ CONFIG_IEEE802154_ADF7242=m
# CONFIG_IEEE802154_AT86RF230_DEBUGFS is not set
CONFIG_IEEE802154_AT86RF230=m
CONFIG_IEEE802154_ATUSB=m
+# CONFIG_IEEE802154_CA8210_DEBUGFS is not set
+CONFIG_IEEE802154_CA8210=m
CONFIG_IEEE802154_CC2520=m
CONFIG_IEEE802154_DRIVERS=m
CONFIG_IEEE802154_FAKELB=m
@@ -2014,6 +2062,7 @@ CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_NES=m
CONFIG_INFINIBAND_OCRDMA=m
CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
+CONFIG_INFINIBAND_OPA_VNIC=m
# CONFIG_INFINIBAND_QEDR is not set
CONFIG_INFINIBAND_QIB_DCA=y
CONFIG_INFINIBAND_QIB=m
@@ -2034,6 +2083,7 @@ CONFIG_INPUT_APANEL=m
CONFIG_INPUT_ATI_REMOTE2=m
CONFIG_INPUT_ATLAS_BTNS=m
# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+CONFIG_INPUT_AXP20X_PEK=m
# CONFIG_INPUT_BMA150 is not set
CONFIG_INPUT_CM109=m
CONFIG_INPUT_CMA3000_I2C=m
@@ -2068,7 +2118,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSE=y
-CONFIG_INPUT_MPU3050=m
CONFIG_INPUT_PCF50633_PMU=m
# CONFIG_INPUT_PCF8574 is not set
CONFIG_INPUT_PCSPKR=m
@@ -2091,10 +2140,13 @@ CONFIG_INPUT_YEALINK=m
CONFIG_INT3406_THERMAL=m
CONFIG_INT340X_THERMAL=m
# CONFIG_INTEGRITY is not set
+# CONFIG_INTEL_ATOMISP is not set
CONFIG_INTEL_BXT_PMIC_THERMAL=m
+CONFIG_INTEL_CHT_INT33FE=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_IDLE=y
CONFIG_INTEL_IDMA64=m
+CONFIG_INTEL_INT0002_VGPIO=m
CONFIG_INTEL_IOATDMA=m
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
CONFIG_INTEL_IOMMU_FLOPPY_WA=y
@@ -2123,6 +2175,7 @@ CONFIG_INTEL_RST=m
# CONFIG_INTEL_SCU_IPC is not set
CONFIG_INTEL_SMARTCONNECT=y
CONFIG_INTEL_SOC_DTS_THERMAL=m
+CONFIG_INTEL_SOC_PMIC_CHTWC=y
CONFIG_INTEL_SOC_PMIC=y
# CONFIG_INTEL_TH is not set
CONFIG_INTEL_TURBO_MAX_3=y
@@ -2130,12 +2183,13 @@ CONFIG_INTEL_TXT=y
CONFIG_INTEL_VBTN=m
CONFIG_INTEL_XWAY_PHY=m
# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_INV_MPU6050_I2C is not set
-# CONFIG_INV_MPU6050_IIO is not set
+CONFIG_INV_MPU6050_I2C=m
+CONFIG_INV_MPU6050_IIO=m
# CONFIG_INV_MPU6050_SPI is not set
# CONFIG_IOMMU_DEBUG is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOSCHED_BFQ=m
CONFIG_IOSCHED_CFQ=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_NOOP=y
@@ -2322,6 +2376,7 @@ CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SERIAL=m
CONFIG_IR_SERIAL_TRANSMITTER=y
CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SIR=m
CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SPI=m
CONFIG_IR_STREAMZAP=m
@@ -2422,6 +2477,8 @@ CONFIG_JOYSTICK_IFORCE_USB=y
CONFIG_JOYSTICK_INTERACT=m
CONFIG_JOYSTICK_JOYDUMP=m
CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_JOYSTICK_PSXPAD_SPI=m
CONFIG_JOYSTICK_SIDEWINDER=m
CONFIG_JOYSTICK_SPACEBALL=m
CONFIG_JOYSTICK_SPACEORB=m
@@ -2547,7 +2604,6 @@ CONFIG_LEDS_CLASS_FLASH=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLEVO_MAIL=m
# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_DELL_NETBOOKS=m
# CONFIG_LEDS_GPIO is not set
CONFIG_LEDS_INTEL_SS4200=m
# CONFIG_LEDS_IS31FL319X is not set
@@ -2623,7 +2679,6 @@ CONFIG_LIRC_BT829=m
CONFIG_LIRC_IMON=m
CONFIG_LIRC=m
CONFIG_LIRC_PARALLEL=m
-CONFIG_LIRC_SASEM=m
CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
@@ -2636,6 +2691,7 @@ CONFIG_LITELINK_DONGLE=m
CONFIG_LLC=m
CONFIG_LMP91000=m
# CONFIG_LNET is not set
+CONFIG_LOAD_UEFI_KEYS=y
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_LOCKD=m
@@ -2664,6 +2720,8 @@ CONFIG_LPFC_NVME_TARGET=y
CONFIG_LSI_ET1011C_PHY=m
CONFIG_LSM_MMAP_MIN_ADDR=65536
# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_LTC2632 is not set
# CONFIG_LTE_GDM724X is not set
# CONFIG_LTR501 is not set
# CONFIG_LUSTRE_FS is not set
@@ -2703,14 +2761,17 @@ CONFIG_MANTIS_CORE=m
CONFIG_MARVELL_PHY=m
# CONFIG_MAX1027 is not set
# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
CONFIG_MAX1363=m
CONFIG_MAX30100=m
+# CONFIG_MAX30102 is not set
# CONFIG_MAX44000 is not set
# CONFIG_MAX517 is not set
# CONFIG_MAX5481 is not set
# CONFIG_MAX5487 is not set
# CONFIG_MAX5821 is not set
# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_MAX9611 is not set
# CONFIG_MAXIM_THERMOCOUPLE is not set
CONFIG_MAX_RAW_DEVS=8192
CONFIG_MAXSMP=y
@@ -2749,6 +2810,7 @@ CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
CONFIG_MEDIA_ATTACH=y
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_CEC_DEBUG=y
+CONFIG_MEDIA_CEC_RC=y
CONFIG_MEDIA_CEC_SUPPORT=y
# CONFIG_MEDIA_CONTROLLER_DVB is not set
CONFIG_MEDIA_CONTROLLER=y
@@ -2799,11 +2861,11 @@ CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_MFD_ASIC3 is not set
# CONFIG_MFD_ATMEL_FLEXCOM is not set
# CONFIG_MFD_ATMEL_HLCDC is not set
-# CONFIG_MFD_AXP20X_I2C is not set
-# CONFIG_MFD_AXP20X is not set
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_AXP20X=y
# CONFIG_MFD_BCM590XX is not set
CONFIG_MFD_CORE=y
-CONFIG_MFD_CPCAP=m
+# CONFIG_MFD_CPCAP is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_DA9052_I2C is not set
@@ -2813,7 +2875,6 @@ CONFIG_MFD_CPCAP=m
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_EXYNOS_LPASS is not set
# CONFIG_MFD_HI6421_PMIC is not set
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
@@ -2857,6 +2918,7 @@ CONFIG_MFD_SM501=m
# CONFIG_MFD_TC3589X is not set
# CONFIG_MFD_TC6393XB is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_TI_LMU is not set
# CONFIG_MFD_TI_LP873X is not set
# CONFIG_MFD_TIMBERDALE is not set
# CONFIG_MFD_TPS65086 is not set
@@ -2911,6 +2973,7 @@ CONFIG_MLX4_EN=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_CORE_EN_DCB=y
CONFIG_MLX5_CORE_EN=y
+CONFIG_MLX5_CORE_IPOIB=y
CONFIG_MLX5_CORE=m
CONFIG_MLX5_INFINIBAND=m
# CONFIG_MLX90614 is not set
@@ -2953,6 +3016,7 @@ CONFIG_MMC_SDHCI=m
# CONFIG_MMC_SDHCI_OF is not set
CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDHCI_XENON=m
CONFIG_MMC_SDRICOH_CS=m
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_TEST is not set
@@ -2974,7 +3038,6 @@ CONFIG_MODULE_SIG_ALL=y
CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
# CONFIG_MODULE_SIG_SHA1 is not set
CONFIG_MODULE_SIG_SHA256=y
-CONFIG_MODULE_SIG_UEFI=y
CONFIG_MODULE_SIG=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_MODULES=y
@@ -3009,8 +3072,9 @@ CONFIG_MPILIB=y
CONFIG_MPLS_IPTUNNEL=m
CONFIG_MPLS_ROUTING=m
# CONFIG_MPSC is not set
-# CONFIG_MPU3050_I2C is not set
+CONFIG_MPU3050_I2C=m
CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=m
# CONFIG_MS5611 is not set
# CONFIG_MS5637 is not set
# CONFIG_MS_BLOCK is not set
@@ -3115,6 +3179,7 @@ CONFIG_NE2K_PCI=m
CONFIG_NET_9P=m
CONFIG_NET_9P_RDMA=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_NET_ACT_BPF=m
CONFIG_NET_ACT_CONNMARK=m
CONFIG_NET_ACT_CSUM=m
@@ -3158,11 +3223,15 @@ CONFIG_NET_DEVLINK=m
CONFIG_NET_DROP_MONITOR=y
CONFIG_NET_DSA_BCM_SF2=m
CONFIG_NET_DSA_HWMON=y
+CONFIG_NET_DSA_LOOP=m
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_MT7530=m
CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_QCA8K=m
+CONFIG_NET_DSA_SMSC_LAN9303_I2C=m
+CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m
CONFIG_NET_EMATCH_CANID=m
CONFIG_NET_EMATCH_CMP=m
CONFIG_NET_EMATCH_IPSET=m
@@ -3285,6 +3354,7 @@ CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_CHOKE=m
CONFIG_NET_SCH_CODEL=m
+# CONFIG_NET_SCH_DEFAULT is not set
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCHED=y
@@ -3751,18 +3821,22 @@ CONFIG_PCIEASPM=y
CONFIG_PCIE_DPC=y
# CONFIG_PCIE_DW_PLAT is not set
CONFIG_PCIE_ECRC=y
+# CONFIG_PCI_ENDPOINT is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
CONFIG_PCIEPORTBUS=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_HERMES=m
CONFIG_PCI_HYPERV=m
CONFIG_PCI_IOV=y
CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
CONFIG_PCI_MSI=y
CONFIG_PCI_PASID=y
CONFIG_PCIPCWATCHDOG=m
CONFIG_PCI_PRI=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
CONFIG_PCI_STUB=y
+CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCI=y
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
@@ -3815,7 +3889,6 @@ CONFIG_PINCTRL_CHERRYVIEW=y
# CONFIG_PINCTRL_MSM8994 is not set
CONFIG_PINCTRL_SUNRISEPOINT=m
# CONFIG_PINCTRL_SX150X is not set
-# CONFIG_PINCTRL_TI_IODELAY is not set
CONFIG_PINCTRL=y
CONFIG_PINMUX=y
CONFIG_PKCS7_MESSAGE_PARSER=y
@@ -3975,6 +4048,7 @@ CONFIG_RAID_ATTRS=m
CONFIG_RANDOMIZE_BASE=y
CONFIG_RANDOMIZE_MEMORY=y
# CONFIG_RAPIDIO is not set
+CONFIG_RAS_CEC=y
CONFIG_RAW_DRIVER=y
# CONFIG_RBTREE_TEST is not set
CONFIG_RC_ATI_REMOTE=m
@@ -4015,9 +4089,10 @@ CONFIG_REALTEK_AUTOPM=y
CONFIG_REALTEK_PHY=m
CONFIG_REGMAP_I2C=y
CONFIG_REGMAP=y
-CONFIG_REGULATOR_CPCAP=m
# CONFIG_REGULATOR_DEBUG is not set
# CONFIG_REGULATOR is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+CONFIG_REGULATOR_VCTRL=m
# CONFIG_REISERFS_CHECK is not set
CONFIG_REISERFS_FS=m
CONFIG_REISERFS_FS_POSIX_ACL=y
@@ -4051,6 +4126,7 @@ CONFIG_ROCKETPORT=m
CONFIG_ROMFS_FS=m
CONFIG_ROSE=m
CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_RPMSG_CHAR is not set
CONFIG_RPR0521=m
CONFIG_RSI_91X=m
CONFIG_RSI_DEBUGFS=y
@@ -4178,6 +4254,7 @@ CONFIG_RTL8192SE=m
# CONFIG_RTL8192U is not set
CONFIG_RTL8723AE=m
CONFIG_RTL8723BE=m
+CONFIG_RTL8723BS=m
CONFIG_RTL8821AE=m
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
@@ -4393,6 +4470,7 @@ CONFIG_SENSORS_APDS990X=m
CONFIG_SENSORS_APPLESMC=m
CONFIG_SENSORS_ASB100=m
CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ASPEED=m
CONFIG_SENSORS_ATK0110=m
CONFIG_SENSORS_ATXP1=m
CONFIG_SENSORS_BH1770=m
@@ -4612,7 +4690,7 @@ CONFIG_SH_ETH=m
# CONFIG_SIGMA is not set
CONFIG_SIGMATEL_FIR=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
-# CONFIG_SILEAD_DMI is not set
+CONFIG_SILEAD_DMI=y
CONFIG_SIS190=m
CONFIG_SIS900=m
# CONFIG_SKFP is not set
@@ -4680,7 +4758,7 @@ CONFIG_SND_DARLA24=m
# CONFIG_SND_DEBUG is not set
# CONFIG_SND_DEBUG_VERBOSE is not set
CONFIG_SND_DESIGNWARE_I2S=m
-CONFIG_SND_DESIGNWARE_PCM=m
+CONFIG_SND_DESIGNWARE_PCM=y
CONFIG_SND_DICE=m
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_DRIVERS=y
@@ -4696,7 +4774,9 @@ CONFIG_SND_ES1938=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_RADIO=y
+CONFIG_SND_FIREFACE=m
CONFIG_SND_FIREWIRE_DIGI00X=m
+CONFIG_SND_FIREWIRE_MOTU=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWORKS=m
@@ -4730,6 +4810,7 @@ CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_HRTIMER=m
+CONFIG_SND_I2S_HI6210_I2S=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INDIGODJ=m
@@ -4782,6 +4863,8 @@ CONFIG_SND_SIMPLE_SCU_CARD=m
CONFIG_SND_SIS7019=m
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_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
@@ -4796,6 +4879,7 @@ CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
CONFIG_SND_SOC_CS35L34=m
+CONFIG_SND_SOC_CS35L35=m
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
@@ -4809,7 +4893,9 @@ CONFIG_SND_SOC_CS42L42=m
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
+CONFIG_SND_SOC_DIO2125=m
CONFIG_SND_SOC_DMIC=m
+CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
@@ -4832,6 +4918,8 @@ CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
@@ -4848,10 +4936,12 @@ CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
+CONFIG_SND_SOC_MAX98927=m
# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
CONFIG_SND_SOC_NAU8540=m
# CONFIG_SND_SOC_NAU8810 is not set
+CONFIG_SND_SOC_NAU8824=m
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X is not set
@@ -4985,6 +5075,7 @@ CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZLIB=y
# CONFIG_SRAM is not set
+# CONFIG_SRF04 is not set
# CONFIG_SRF08 is not set
# CONFIG_SSB_DEBUG is not set
CONFIG_SSB_DRIVER_GPIO=y
@@ -5045,6 +5136,7 @@ CONFIG_SYN_COOKIES=y
CONFIG_SYSCTL=y
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSTEM_BLACKLIST_HASH_LIST=""
CONFIG_SYSTEM_BLACKLIST_KEYRING=y
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set
# CONFIG_SYSTEMPORT is not set
@@ -5109,6 +5201,7 @@ CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_MD5SIG=y
# CONFIG_TCS3414 is not set
# CONFIG_TCS3472 is not set
+# CONFIG_TEE is not set
CONFIG_TEHUTI=m
CONFIG_TEKRAM_DONGLE=m
CONFIG_TELCLOCK=m
@@ -5134,6 +5227,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_UUID is not set
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
# CONFIG_THERMAL_EMULATION is not set
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
@@ -5164,6 +5258,7 @@ CONFIG_TI_ADS1015=m
# CONFIG_TI_DAC7512 is not set
CONFIG_TIFM_7XX1=m
CONFIG_TIFM_CORE=m
+CONFIG_TIGON3_HWMON=y
CONFIG_TIGON3=m
# CONFIG_TIMB_DMA is not set
# CONFIG_TIMER_STATS is not set
@@ -5241,6 +5336,7 @@ CONFIG_TOUCHSCREEN_TOUCHWIN=m
CONFIG_TOUCHSCREEN_TS4800=m
# CONFIG_TOUCHSCREEN_TSC2004 is not set
# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007_IIO=y
CONFIG_TOUCHSCREEN_TSC2007=m
CONFIG_TOUCHSCREEN_TSC_SERIO=m
CONFIG_TOUCHSCREEN_UCB1400=m
@@ -5283,11 +5379,16 @@ CONFIG_TUN=m
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_TWL4030_CORE is not set
# CONFIG_TWL6040_CORE is not set
+CONFIG_TYPEC_FUSB302=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_WCOVE=m
CONFIG_TYPHOON=m
CONFIG_UBIFS_ATIME_SUPPORT=y
# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
CONFIG_UBIFS_FS_ENCRYPTION=y
CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_SECURITY=y
# CONFIG_UBSAN_ALIGNMENT is not set
# CONFIG_UBSAN is not set
# CONFIG_UBSAN_SANITIZE_ALL is not set
@@ -5492,6 +5593,7 @@ CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OTG is not set
# CONFIG_USB_OTG_WHITELIST is not set
# CONFIG_USB_OXU210HP_HCD is not set
+CONFIG_USB_PCI=y
CONFIG_USBPCWATCHDOG=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_PHY=y
@@ -5501,6 +5603,7 @@ CONFIG_USB_PULSE8_CEC=m
CONFIG_USB_PWC_INPUT_EVDEV=y
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_RTL8150=m
@@ -5622,7 +5725,7 @@ CONFIG_USB_WDM=m
CONFIG_USB_WUSB_CBAF=m
CONFIG_USB_WUSB=m
CONFIG_USB_XHCI_HCD=y
-# CONFIG_USB_XHCI_PLATFORM is not set
+CONFIG_USB_XHCI_PLATFORM=m
CONFIG_USB_XUSBATM=m
CONFIG_USB=y
CONFIG_USB_YUREX=m
@@ -5780,6 +5883,7 @@ CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTUALIZATION=y
CONFIG_VITESSE_PHY=m
+CONFIG_VL6180=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
@@ -5796,6 +5900,7 @@ CONFIG_VOP_BUS=m
CONFIG_VOP=m
CONFIG_VORTEX=m
CONFIG_VSOCKETS=m
+CONFIG_VSOCKMON=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_VT_CONSOLE=y
@@ -5823,6 +5928,7 @@ CONFIG_W1_SLAVE_DS2423=m
CONFIG_W1_SLAVE_DS2431=m
CONFIG_W1_SLAVE_DS2433_CRC=y
CONFIG_W1_SLAVE_DS2433=m
+CONFIG_W1_SLAVE_DS2438=m
CONFIG_W1_SLAVE_DS2760=m
CONFIG_W1_SLAVE_DS2780=m
CONFIG_W1_SLAVE_DS2781=m
@@ -5911,6 +6017,7 @@ CONFIG_X86_INTEL_PSTATE=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_INJECT=m
CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCELOG_LEGACY=y
CONFIG_X86_MCE=y
CONFIG_X86_MPPARSE=y
CONFIG_X86_MSR=y
@@ -5944,6 +6051,7 @@ CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_DEBUG_FS=y
# CONFIG_XEN_DEBUG is not set
CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_DOM0=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XENFS=m
CONFIG_XEN_GNTDEV=m
@@ -5953,7 +6061,9 @@ CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_PCIDEV_BACKEND=m
CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_XEN_PVHVM=y
CONFIG_XEN_PVH=y
+CONFIG_XEN_PV=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_SCSI_BACKEND=m
@@ -6008,3 +6118,4 @@ CONFIG_ZRAM=m
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC=y
CONFIG_ZSWAP=y
+# CONFIG_ZX_TDM is not set
diff --git a/kernel.spec b/kernel.spec
index de1216a6f..68a5fe702 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -50,7 +50,7 @@ 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 11
+%define base_sublevel 12
## If this is a released kernel ##
%if 0%{?released_kernel}
@@ -58,7 +58,7 @@ Summary: The Linux kernel
%define stable_rc 0
# Do we have a -stable update to apply?
-%define stable_update 11
+%define stable_update 3
# Set rpm version accordingly
%if 0%{?stable_update}
%define stablerev %{stable_update}
@@ -535,156 +535,154 @@ Patch002: 0001-iio-Use-event-header-from-kernel-tree.patch
# Git trees.
# Standalone patches
+# 100 - Generic long running patches
-# a tempory patch for QCOM hardware enablement. Will be gone by end of 2016/F-26 GA
-Patch420: qcom-QDF2432-tmp-errata.patch
+Patch110: lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
-# Upstream (in 4.12) patches to fix HiKey WiFi
-Patch421: arm-hikey-fixWiFi.patch
+Patch111: input-kill-stupid-messages.patch
-# http://www.spinics.net/lists/linux-tegra/msg26029.html
-Patch422: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch
-
-# Fix OMAP4 (pandaboard)
-Patch423: arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch
-
-# BBWireless Bluetooth
-Patch424: arm-dts-boneblack-wireless-add-WL1835-Bluetooth-device-node.patch
-
-# http://patchwork.ozlabs.org/patch/587554/
-Patch425: ARM-tegra-usb-no-reset.patch
-
-Patch426: AllWinner-h3.patch
-Patch427: AllWinner-net-emac.patch
-
-# http://www.spinics.net/lists/linux-bluetooth/msg70169.html
-# https://www.spinics.net/lists/devicetree/msg170619.html
-Patch428: ti-bluetooth.patch
-
-Patch429: arm64-hikey-fixes.patch
+Patch112: die-floppy-die.patch
-Patch430: arm-rk3288-tinker.patch
+Patch113: no-pcspkr-modalias.patch
-# https://www.spinics.net/lists/arm-kernel/msg554183.html
-Patch431: arm-imx6-hummingboard2.patch
+Patch114: silence-fbcon-logo.patch
-# Cavium fixes
-Patch432: arm64-cavium-fixes.patch
+Patch115: Kbuild-Add-an-option-to-enable-GCC-VTA.patch
-Patch433: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch
+Patch116: crash-driver.patch
-# https://patchwork.kernel.org/patch/9815555/
-# https://patchwork.kernel.org/patch/9815651/
-# Patch434: qcom-rmsg-spmi-fixes.patch
+Patch117: lis3-improve-handling-of-null-rate.patch
-# http://www.spinics.net/lists/devicetree/msg163238.html
-Patch440: bcm2837-initial-support.patch
+Patch118: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch
-# bcm283x mmc for wifi http://www.spinics.net/lists/arm-kernel/msg567077.html
-Patch441: bcm283x-mmc-bcm2835.patch
+Patch119: criu-no-expert.patch
-# Upstream fixes for i2c/serial/ethernet MAC addresses
-Patch442: bcm283x-fixes.patch
+Patch120: ath9k-rx-dma-stop-check.patch
-# https://lists.freedesktop.org/archives/dri-devel/2017-February/133823.html
-Patch443: vc4-fix-vblank-cursor-update-issue.patch
+Patch121: xen-pciback-Don-t-disable-PCI_COMMAND-on-PCI-device-.patch
-Patch444: bcm283x-hdmi-audio.patch
+Patch122: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch
-Patch445: bcm2835-clk-audio-jitter-issues.patch
+Patch123: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch
-# http://www.spinics.net/lists/dri-devel/msg132235.html
-Patch446: drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-constructed-BO..patch
-
-# https://lists.freedesktop.org/archives/dri-devel/2017-June/143688.html
-Patch447: vc4-tformat-fixes.patch
-
-# https://patchwork.freedesktop.org/patch/163300/
-# https://patchwork.freedesktop.org/patch/161978/
-Patch448: bcm283x-vc4-fix-vblank.patch
+# 200 - x86 / secureboot
-Patch460: lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
+Patch201: efi-lockdown.patch
-Patch466: input-kill-stupid-messages.patch
+Patch202: KEYS-Allow-unrestricted-boot-time-addition-of-keys-t.patch
-Patch467: die-floppy-die.patch
+Patch203: Add-EFI-signature-data-types.patch
-Patch468: no-pcspkr-modalias.patch
+Patch204: Add-an-EFI-signature-blob-parser-and-key-loader.patch
-Patch470: silence-fbcon-logo.patch
+Patch205: MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
-Patch471: Kbuild-Add-an-option-to-enable-GCC-VTA.patch
+Patch206: MODSIGN-Support-not-importing-certs-from-db.patch
-Patch472: crash-driver.patch
+Patch210: disable-i8042-check-on-apple-mac.patch
-Patch473: efi-lockdown.patch
+Patch211: drm-i915-hush-check-crtc-state.patch
-Patch487: Add-EFI-signature-data-types.patch
+# 300 - ARM patches
-Patch488: Add-an-EFI-signature-blob-parser-and-key-loader.patch
+# a tempory patch for QCOM hardware enablement. Will be gone by F-26 GA
+Patch301: qcom-QDF2432-tmp-errata.patch
-# This doesn't apply. It seems like it could be replaced by
-# https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5ac7eace2d00eab5ae0e9fdee63e38aee6001f7c
-# which has an explicit line about blacklisting
-Patch489: KEYS-Add-a-system-blacklist-keyring.patch
+# http://www.spinics.net/lists/linux-tegra/msg26029.html
+Patch302: usb-phy-tegra-Add-38.4MHz-clock-table-entry.patch
-Patch490: MODSIGN-Import-certificates-from-UEFI-Secure-Boot.patch
+# Fix OMAP4 (pandaboard)
+Patch303: arm-revert-mmc-omap_hsmmc-Use-dma_request_chan-for-reque.patch
-Patch491: MODSIGN-Support-not-importing-certs-from-db.patch
+# http://www.spinics.net/lists/arm-kernel/msg582772.html
+Patch304: arm-dts-boneblack-wireless-add-WL1835-Bluetooth-device-node.patch
-Patch493: drm-i915-hush-check-crtc-state.patch
+# http://patchwork.ozlabs.org/patch/587554/
+Patch305: ARM-tegra-usb-no-reset.patch
-Patch494: disable-i8042-check-on-apple-mac.patch
+Patch306: AllWinner-net-emac.patch
-Patch495: lis3-improve-handling-of-null-rate.patch
+# http://www.spinics.net/lists/devicetree/msg163238.html
+Patch308: bcm2837-initial-support.patch
-Patch497: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch
+# http://www.spinics.net/lists/dri-devel/msg132235.html
+Patch309: drm-vc4-Fix-OOPSes-from-trying-to-cache-a-partially-constructed-BO..patch
-Patch498: criu-no-expert.patch
+# https://www.spinics.net/lists/arm-kernel/msg554183.html
+Patch311: arm-imx6-hummingboard2.patch
-Patch499: ath9k-rx-dma-stop-check.patch
+Patch312: arm64-Add-option-of-13-for-FORCE_MAX_ZONEORDER.patch
-Patch500: xen-pciback-Don-t-disable-PCI_COMMAND-on-PCI-device-.patch
+Patch313: bcm2835-clk-audio-jitter-issues.patch
+Patch314: bcm2835-fix-potential-null-pointer-dereferences.patch
-Patch501: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch
+# https://patchwork.freedesktop.org/patch/163300/
+# https://patchwork.freedesktop.org/patch/161978/
+Patch315: bcm283x-vc4-fix-vblank.patch
-Patch502: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch
+# https://patchwork.kernel.org/patch/9815555/
+# https://patchwork.kernel.org/patch/9815651/
+# https://patchwork.kernel.org/patch/9819885/
+# https://patchwork.kernel.org/patch/9820417/
+# https://patchwork.kernel.org/patch/9821151/
+# https://patchwork.kernel.org/patch/9821157/
+Patch316: qcom-msm89xx-fixes.patch
-# Patch503: drm-i915-turn-off-wc-mmaps.patch
+Patch317: arm-thermal-fixes.patch
+# https://patchwork.kernel.org/patch/9802555/
+Patch318: pinctrl-bcm2835-Avoid-warning-from-__irq_do_set_handler.patch
-Patch509: MODSIGN-Don-t-try-secure-boot-if-EFI-runtime-is-disa.patch
+# https://patchwork.kernel.org/patch/9831825/
+# https://patchwork.kernel.org/patch/9833721/
+Patch319: arm-tegra-fix-gpu-iommu.patch
-# rhbz 1436686
-Patch600: dell-laptop-Adds-support-for-keyboard-backlight-timeout-AC-settings.patch
+# https://www.spinics.net/lists/linux-arm-msm/msg28203.html
+Patch320: qcom-display-iommu.patch
-#CVE-2016-3134 rhbz 1317383 1317384
-Patch665: netfilter-x_tables-deal-with-bogus-nextoffset-values.patch
+# This breaks RPi booting with a LPAE kernel, we don't support the DSI ports currently
+# Revert it while I engage upstream to work out what's going on
+Patch321: Revert-ARM-dts-bcm2835-Add-the-DSI-module-nodes-and-.patch
-#rhbz 1435154
-Patch666: powerpc-prom-Increase-RMA-size-to-512MB.patch
+# 400 - IBM (ppc/s390x) patches
-# CVE-2017-7645 rhbz 1443615 1443617
-Patch667: CVE-2017-7645.patch
+# 500 - Temp fixes/CVEs etc
# CVE-2017-7477 rhbz 1445207 1445208
-Patch668: CVE-2017-7477.patch
-
-#CVE-2017-9059 rhbz 1451386 1451996
-Patch669: 0001-SUNRPC-Refactor-svc_set_num_threads.patch
-Patch670: 0002-NFSv4-Fix-callback-server-shutdown.patch
-
-# rhbz 1455780
-Patch676: 2-2-nvme-Quirk-APST-on-Intel-600P-P3100-devices.patch
-
-# rhbz 1459272
-Patch680: 0001-platform-x86-thinkpad_acpi-guard-generic-hotkey-case.patch
-Patch681: 0002-platform-x86-thinkpad_acpi-add-mapping-for-new-hotke.patch
+Patch502: CVE-2017-7477.patch
# rhbz 1459326
-Patch683: RFC-audit-fix-a-race-condition-with-the-auditd-tracking-code.patch
-
-# rhbz 1458599
-Patch685: 0001-ACPI-LPSS-Only-call-pwm_add_table-for-the-first-PWM-.patch
+Patch504: RFC-audit-fix-a-race-condition-with-the-auditd-tracking-code.patch
+
+# 600 - Patches for improved Bay and Cherry Trail device support
+# Below patches are pending in -next:
+Patch601: 0001-platform-x86-Add-driver-for-ACPI-INT0002-Virtual-GPI.patch
+Patch602: 0002-mfd-Add-Cherry-Trail-Whiskey-Cove-PMIC-driver.patch
+Patch603: 0003-power-supply-core-Add-support-for-supplied-from-devi.patch
+Patch604: 0004-platform-x86-intel_cht_int33fe-Set-supplied-from-pro.patch
+Patch605: 0005-ACPI-PMIC-xpower-Add-support-for-the-GPI1-regulator-.patch
+Patch606: 0006-Input-axp20x-pek-Add-wakeup-support.patch
+Patch607: 0007-platform-x86-silead_dmi-Add-touchscreen-info-for-GP-.patch
+Patch608: 0008-platform-x86-silead_dmi-Add-touchscreen-info-for-PoV.patch
+Patch609: 0009-platform-x86-silead_dmi-Add-touchscreen-info-for-Pip.patch
+# Below patches are submitted upstream, awaiting review / merging
+Patch610: 0010-Input-silead-Add-support-for-capactive-home-button-f.patch
+Patch611: 0011-Input-goodix-Add-support-for-capacitive-home-button.patch
+Patch612: 0012-Input-gpio_keys-Do-not-report-wake-button-presses-as.patch
+Patch613: 0013-iio-accel-bmc150-Add-support-for-BOSC0200-ACPI-devic.patch
+Patch614: 0014-mmc-sdhci-acpi-Workaround-conflict-with-PCI-wifi-on-.patch
+Patch615: 0015-i2c-cht-wc-Add-Intel-Cherry-Trail-Whiskey-Cove-SMBUS.patch
+# Small workaround patches for issues with a more comprehensive fix in -next
+Patch616: 0016-Input-silead-Do-not-try-to-directly-access-the-GPIO-.patch
+
+# CVE-2017-7542 rhbz 1473649 1473650
+Patch701: 0001-ipv6-avoid-overflow-of-offset-in-ip6_find_1stfragopt.patch
+
+# CVE-2017-11473 rhbz 1473209 147310
+Patch702: CVE-2017-11473.patch
+
+# rhbz 1431375
+Patch703: HID-rmi-Make-sure-the-HID-device-is-opened-on-resume.patch
+Patch704: input-rmi4-remove-the-need-for-artifical-IRQ.patch
# END OF PATCH DEFINITIONS
@@ -1889,7 +1887,7 @@ find $RPM_BUILD_ROOT/usr/tmp-headers/include \
# 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/asm-${arch} $RPM_BUILD_ROOT/usr/${arch}-linux-gnu/include/asm
+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
@@ -1920,6 +1918,9 @@ rm -rf %{buildroot}%{_docdir}/perf-tip
mkdir -p %{buildroot}/%{_mandir}/man1
pushd %{buildroot}/%{_mandir}/man1
tar -xf %{SOURCE10}
+%if !%{with_tools}
+ rm -f kvm_stat.1
+%endif
popd
%endif
@@ -1964,6 +1965,9 @@ popd
pushd tools/gpio
make DESTDIR=%{buildroot} install
popd
+pushd tools/kvm/kvm_stat
+make INSTALL_ROOT=%{buildroot} install-tools
+popd
%endif
%if %{with_bootwrapper}
@@ -2161,6 +2165,8 @@ fi
%{_bindir}/lsgpio
%{_bindir}/gpio-hammer
%{_bindir}/gpio-event-mon
+%{_mandir}/man1/kvm_stat*
+%{_bindir}/kvm_stat
%endif
%if %{with_debuginfo}
@@ -2254,6 +2260,10 @@ fi
#
#
%changelog
+* Mon Jul 24 2017 Justin M. Forbes <jforbes@fedoraproject.org> - 4.12.3-300
+- Linux v4.12.3
+- Fix rhbz 1431375
+
* Mon Jul 17 2017 Laura Abbott <labbott@fedoraproject.org> - 4.11.11-300
- Linux v4.11.11
- Bring back /dev/port (rhbz 1471429 1451220)
diff --git a/netfilter-x_tables-deal-with-bogus-nextoffset-values.patch b/netfilter-x_tables-deal-with-bogus-nextoffset-values.patch
deleted file mode 100644
index e6f5fa6f5..000000000
--- a/netfilter-x_tables-deal-with-bogus-nextoffset-values.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 2b32a7d82223d76ace432305b18c5816cadff878 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw () strlen ! de>
-Date: Thu, 10 Mar 2016 00:56:02 -0800
-Subject: [PATCH] netfilter: x_tables: deal with bogus nextoffset values
-
-Ben Hawkes says:
-
- In the mark_source_chains function (net/ipv4/netfilter/ip_tables.c) it
- is possible for a user-supplied ipt_entry structure to have a large
- next_offset field. This field is not bounds checked prior to writing a
- counter value at the supplied offset.
-
-Problem is that xt_entry_foreach() macro stops iterating once e->next_offset
-is out of bounds, assuming this is the last entry.
-
-With malformed data thats not necessarily the case so we can
-write outside of allocated area later as we might not have walked the
-entire blob.
-
-Fix this by simplifying mark_source_chains -- it already has to check
-if nextoff is in range to catch invalid jumps, so just do the check
-when we move to a next entry as well.
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
- net/ipv4/netfilter/arp_tables.c | 8 ++++++++
- net/ipv4/netfilter/ip_tables.c | 8 ++++++++
- net/ipv6/netfilter/ip6_tables.c | 6 ++++++
- 3 files changed, 22 insertions(+)
-
-diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
-index 2033f92..a9b6c76 100644
---- a/net/ipv4/netfilter/arp_tables.c
-+++ b/net/ipv4/netfilter/arp_tables.c
-@@ -376,6 +376,10 @@ static int mark_source_chains(const struct xt_table_info *newinfo,
-
- /* Move along one */
- size = e->next_offset;
-+
-+ if (pos + size > newinfo->size - sizeof(*e))
-+ return 0;
-+
- e = (struct arpt_entry *)
- (entry0 + pos + size);
- if (pos + size >= newinfo->size)
-@@ -399,6 +403,10 @@ static int mark_source_chains(const struct xt_table_info *newinfo,
- if (newpos >= newinfo->size)
- return 0;
- }
-+
-+ if (newpos > newinfo->size - sizeof(*e))
-+ return 0;
-+
- e = (struct arpt_entry *)
- (entry0 + newpos);
- e->counters.pcnt = pos;
-diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
-index 54906e0..7530ecd 100644
---- a/net/ipv4/netfilter/ip_tables.c
-+++ b/net/ipv4/netfilter/ip_tables.c
-@@ -447,6 +447,10 @@ mark_source_chains(const struct xt_table_info *newinfo,
-
- /* Move along one */
- size = e->next_offset;
-+
-+ if (pos + size > newinfo->size - sizeof(*e))
-+ return 0;
-+
- e = (struct ipt_entry *)
- (entry0 + pos + size);
- if (pos + size >= newinfo->size)
-@@ -470,6 +474,10 @@ mark_source_chains(const struct xt_table_info *newinfo,
- if (newpos >= newinfo->size)
- return 0;
- }
-+
-+ if (newpos > newinfo->size - sizeof(*e))
-+ return 0;
-+
- e = (struct ipt_entry *)
- (entry0 + newpos);
- e->counters.pcnt = pos;
-diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
-index 63e06c3..894da69 100644
---- a/net/ipv6/netfilter/ip6_tables.c
-+++ b/net/ipv6/netfilter/ip6_tables.c
-@@ -474,6 +474,8 @@ mark_source_chains(const struct xt_table_info *newinfo,
-
- /* Move along one */
- size = e->next_offset;
-+ if (pos + size > newinfo->size - sizeof(*e))
-+ return 0;
- e = (struct ip6t_entry *)
- (entry0 + pos + size);
- if (pos + size >= newinfo->size)
-@@ -497,6 +499,10 @@ mark_source_chains(const struct xt_table_info *newinfo,
- if (newpos >= newinfo->size)
- return 0;
- }
-+
-+ if (newpos > newinfo->size - sizeof(*e))
-+ return 0;
-+
- e = (struct ip6t_entry *)
- (entry0 + newpos);
- e->counters.pcnt = pos;
---
-2.5.5
-
diff --git a/pinctrl-bcm2835-Avoid-warning-from-__irq_do_set_handler.patch b/pinctrl-bcm2835-Avoid-warning-from-__irq_do_set_handler.patch
new file mode 100644
index 000000000..d44e5318b
--- /dev/null
+++ b/pinctrl-bcm2835-Avoid-warning-from-__irq_do_set_handler.patch
@@ -0,0 +1,40 @@
+From patchwork Wed Jun 21 18:20:04 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: pinctrl: bcm2835: Avoid warning from __irq_do_set_handler
+From: Stefan Wahren <stefan.wahren@i2se.com>
+X-Patchwork-Id: 9802555
+Message-Id: <1498069204-28154-1-git-send-email-stefan.wahren@i2se.com>
+To: Linus Walleij <linus.walleij@linaro.org>, Eric Anholt <eric@anholt.net>
+Cc: Stefan Wahren <stefan.wahren@i2se.com>, linux-gpio@vger.kernel.org,
+ Phil Elwell <phil@raspberrypi.org>, linux-rpi-kernel@lists.infradead.org,
+ linux-arm-kernel@lists.infradead.org
+Date: Wed, 21 Jun 2017 20:20:04 +0200
+
+We get a warning during boot with enabled EARLY_PRINTK that
+we try to set a irq_chip without data. This is caused by ignoring
+the return value of irq_of_parse_and_map(). So avoid calling
+gpiochip_set_chained_irqchip() in error case.
+
+Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
+Fixes: 85ae9e512f43 ("pinctrl: bcm2835: switch to GPIOLIB_IRQCHIP")
+---
+ drivers/pinctrl/bcm/pinctrl-bcm2835.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+index 1eb7a1a..2308831 100644
+--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
++++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+@@ -1048,6 +1048,10 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev)
+ for (i = 0; i < BCM2835_NUM_IRQS; i++) {
+ pc->irq[i] = irq_of_parse_and_map(np, i);
+ pc->irq_group[i] = i;
++
++ if (pc->irq[i] == 0)
++ continue;
++
+ /*
+ * Use the same handler for all groups: this is necessary
+ * since we use one gpiochip to cover all lines - the
diff --git a/powerpc-prom-Increase-RMA-size-to-512MB.patch b/powerpc-prom-Increase-RMA-size-to-512MB.patch
deleted file mode 100644
index 422f0a9ec..000000000
--- a/powerpc-prom-Increase-RMA-size-to-512MB.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From patchwork Thu Mar 30 04:03:49 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: powerpc/prom: Increase RMA size to 512MB
-From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
-X-Patchwork-Id: 745044
-Message-Id: <20170330040349.GA31756@us.ibm.com>
-To: Michael Ellerman <mpe@ellerman.id.au>
-Cc: praveen.pandey@in.ibm.com, linuxppc-dev@lists.ozlabs.org,
- linux-kernel@vger.kernel.org
-Date: Wed, 29 Mar 2017 21:03:49 -0700
-
->From 3ae8d1ed31b01b92b172fe20e4560cfbfab135ec Mon Sep 17 00:00:00 2001
-From: root <root@furatripa-lp2.aus.stglabs.ibm.com>
-Date: Mon, 27 Mar 2017 19:43:14 -0400
-Subject: [PATCH] powerpc/prom: Increase RMA size to 512MB
-
-When booting very large systems with a large initrd, we run out of
-space for either the RTAS or the flattened device tree (FDT). Boot
-fails with messages like:
-
- Could not allocate memory for RTAS
-or
- No memory for flatten_device_tree (no room)
-
-Increasing the minimum RMA size to 512MB fixes the problem. This
-should not have an impact on smaller LPARs (with 256MB memory),
-as the firmware will cap the RMA to the memory assigned to the LPAR.
-
-Fix is based on input/discussions with Michael Ellerman. Thanks to
-Praveen K. Pandey for testing on a large system.
-
-Reported-by: Praveen K. Pandey <preveen.pandey@in.ibm.com>
-Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
----
- arch/powerpc/kernel/prom_init.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
-index 1c1b44e..dd8a04f 100644
---- a/arch/powerpc/kernel/prom_init.c
-+++ b/arch/powerpc/kernel/prom_init.c
-@@ -815,7 +815,7 @@ struct ibm_arch_vec __cacheline_aligned ibm_architecture_vec = {
- .virt_base = cpu_to_be32(0xffffffff),
- .virt_size = cpu_to_be32(0xffffffff),
- .load_base = cpu_to_be32(0xffffffff),
-- .min_rma = cpu_to_be32(256), /* 256MB min RMA */
-+ .min_rma = cpu_to_be32(512), /* 512MB min RMA */
- .min_load = cpu_to_be32(0xffffffff), /* full client load */
- .min_rma_percent = 0, /* min RMA percentage of total RAM */
- .max_pft_size = 48, /* max log_2(hash table size) */
diff --git a/qcom-display-iommu.patch b/qcom-display-iommu.patch
new file mode 100644
index 000000000..87d4473c8
--- /dev/null
+++ b/qcom-display-iommu.patch
@@ -0,0 +1,1960 @@
+From patchwork Thu Jul 13 12:07:44 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [RESEND,1/4] Docs: dt: document qcom iommu bindings
+From: Rob Clark <robdclark@gmail.com>
+X-Patchwork-Id: 9838369
+Message-Id: <20170713120747.20490-2-robdclark@gmail.com>
+To: iommu@lists.linux-foundation.org
+Cc: linux-arm-msm@vger.kernel.org, Archit Taneja <architt@codeaurora.org>,
+ Rob Herring <robh@kernel.org>, Will Deacon <will.deacon@arm.com>,
+ Sricharan <sricharan@codeaurora.org>,
+ Mark Rutland <mark.rutland@arm.com>, Robin Murphy <robin.murphy@arm.com>,
+ Rob Clark <robdclark@gmail.com>, devicetree@vger.kernel.org
+Date: Thu, 13 Jul 2017 08:07:44 -0400
+
+Cc: devicetree@vger.kernel.org
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+Reviewed-by: Rob Herring <robh@kernel.org>
+---
+ .../devicetree/bindings/iommu/qcom,iommu.txt | 121 +++++++++++++++++++++
+ 1 file changed, 121 insertions(+)
+ create mode 100644 Documentation/devicetree/bindings/iommu/qcom,iommu.txt
+
+diff --git a/Documentation/devicetree/bindings/iommu/qcom,iommu.txt b/Documentation/devicetree/bindings/iommu/qcom,iommu.txt
+new file mode 100644
+index 000000000000..b2641ceb2b40
+--- /dev/null
++++ b/Documentation/devicetree/bindings/iommu/qcom,iommu.txt
+@@ -0,0 +1,121 @@
++* QCOM IOMMU v1 Implementation
++
++Qualcomm "B" family devices which are not compatible with arm-smmu have
++a similar looking IOMMU but without access to the global register space,
++and optionally requiring additional configuration to route context irqs
++to non-secure vs secure interrupt line.
++
++** Required properties:
++
++- compatible : Should be one of:
++
++ "qcom,msm8916-iommu"
++
++ Followed by "qcom,msm-iommu-v1".
++
++- clock-names : Should be a pair of "iface" (required for IOMMUs
++ register group access) and "bus" (required for
++ the IOMMUs underlying bus access).
++
++- clocks : Phandles for respective clocks described by
++ clock-names.
++
++- #address-cells : must be 1.
++
++- #size-cells : must be 1.
++
++- #iommu-cells : Must be 1. Index identifies the context-bank #.
++
++- ranges : Base address and size of the iommu context banks.
++
++- qcom,iommu-secure-id : secure-id.
++
++- List of sub-nodes, one per translation context bank. Each sub-node
++ has the following required properties:
++
++ - compatible : Should be one of:
++ - "qcom,msm-iommu-v1-ns" : non-secure context bank
++ - "qcom,msm-iommu-v1-sec" : secure context bank
++ - reg : Base address and size of context bank within the iommu
++ - interrupts : The context fault irq.
++
++** Optional properties:
++
++- reg : Base address and size of the SMMU local base, should
++ be only specified if the iommu requires configuration
++ for routing of context bank irq's to secure vs non-
++ secure lines. (Ie. if the iommu contains secure
++ context banks)
++
++
++** Examples:
++
++ apps_iommu: iommu@1e20000 {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ #iommu-cells = <1>;
++ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
++ ranges = <0 0x1e20000 0x40000>;
++ reg = <0x1ef0000 0x3000>;
++ clocks = <&gcc GCC_SMMU_CFG_CLK>,
++ <&gcc GCC_APSS_TCU_CLK>;
++ clock-names = "iface", "bus";
++ qcom,iommu-secure-id = <17>;
++
++ // mdp_0:
++ iommu-ctx@4000 {
++ compatible = "qcom,msm-iommu-v1-ns";
++ reg = <0x4000 0x1000>;
++ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
++ };
++
++ // venus_ns:
++ iommu-ctx@5000 {
++ compatible = "qcom,msm-iommu-v1-sec";
++ reg = <0x5000 0x1000>;
++ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
++ };
++ };
++
++ gpu_iommu: iommu@1f08000 {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ #iommu-cells = <1>;
++ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
++ ranges = <0 0x1f08000 0x10000>;
++ clocks = <&gcc GCC_SMMU_CFG_CLK>,
++ <&gcc GCC_GFX_TCU_CLK>;
++ clock-names = "iface", "bus";
++ qcom,iommu-secure-id = <18>;
++
++ // gfx3d_user:
++ iommu-ctx@1000 {
++ compatible = "qcom,msm-iommu-v1-ns";
++ reg = <0x1000 0x1000>;
++ interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
++ };
++
++ // gfx3d_priv:
++ iommu-ctx@2000 {
++ compatible = "qcom,msm-iommu-v1-ns";
++ reg = <0x2000 0x1000>;
++ interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
++ };
++ };
++
++ ...
++
++ venus: video-codec@1d00000 {
++ ...
++ iommus = <&apps_iommu 5>;
++ };
++
++ mdp: mdp@1a01000 {
++ ...
++ iommus = <&apps_iommu 4>;
++ };
++
++ gpu@01c00000 {
++ ...
++ iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
++ };
+From patchwork Thu Jul 13 12:07:45 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [RESEND,2/4] iommu: arm-smmu: split out register defines
+From: Rob Clark <robdclark@gmail.com>
+X-Patchwork-Id: 9838371
+Message-Id: <20170713120747.20490-3-robdclark@gmail.com>
+To: iommu@lists.linux-foundation.org
+Cc: linux-arm-msm@vger.kernel.org, Archit Taneja <architt@codeaurora.org>,
+ Rob Herring <robh@kernel.org>, Will Deacon <will.deacon@arm.com>,
+ Sricharan <sricharan@codeaurora.org>,
+ Mark Rutland <mark.rutland@arm.com>, Robin Murphy <robin.murphy@arm.com>,
+ Rob Clark <robdclark@gmail.com>
+Date: Thu, 13 Jul 2017 08:07:45 -0400
+
+I want to re-use some of these for qcom_iommu, which has (roughly) the
+same context-bank registers.
+
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+---
+ drivers/iommu/arm-smmu-regs.h | 227 ++++++++++++++++++++++++++++++++++++++++++
+ drivers/iommu/arm-smmu.c | 203 +------------------------------------
+ 2 files changed, 228 insertions(+), 202 deletions(-)
+ create mode 100644 drivers/iommu/arm-smmu-regs.h
+
+diff --git a/drivers/iommu/arm-smmu-regs.h b/drivers/iommu/arm-smmu-regs.h
+new file mode 100644
+index 000000000000..87589c863068
+--- /dev/null
++++ b/drivers/iommu/arm-smmu-regs.h
+@@ -0,0 +1,227 @@
++/*
++ * IOMMU API for ARM architected SMMU implementations.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ *
++ * Copyright (C) 2013 ARM Limited
++ *
++ * Author: Will Deacon <will.deacon@arm.com>
++ */
++
++#ifndef _ARM_SMMU_REGS_H
++#define _ARM_SMMU_REGS_H
++
++/* Configuration registers */
++#define ARM_SMMU_GR0_sCR0 0x0
++#define sCR0_CLIENTPD (1 << 0)
++#define sCR0_GFRE (1 << 1)
++#define sCR0_GFIE (1 << 2)
++#define sCR0_EXIDENABLE (1 << 3)
++#define sCR0_GCFGFRE (1 << 4)
++#define sCR0_GCFGFIE (1 << 5)
++#define sCR0_USFCFG (1 << 10)
++#define sCR0_VMIDPNE (1 << 11)
++#define sCR0_PTM (1 << 12)
++#define sCR0_FB (1 << 13)
++#define sCR0_VMID16EN (1 << 31)
++#define sCR0_BSU_SHIFT 14
++#define sCR0_BSU_MASK 0x3
++
++/* Auxiliary Configuration register */
++#define ARM_SMMU_GR0_sACR 0x10
++
++/* Identification registers */
++#define ARM_SMMU_GR0_ID0 0x20
++#define ARM_SMMU_GR0_ID1 0x24
++#define ARM_SMMU_GR0_ID2 0x28
++#define ARM_SMMU_GR0_ID3 0x2c
++#define ARM_SMMU_GR0_ID4 0x30
++#define ARM_SMMU_GR0_ID5 0x34
++#define ARM_SMMU_GR0_ID6 0x38
++#define ARM_SMMU_GR0_ID7 0x3c
++#define ARM_SMMU_GR0_sGFSR 0x48
++#define ARM_SMMU_GR0_sGFSYNR0 0x50
++#define ARM_SMMU_GR0_sGFSYNR1 0x54
++#define ARM_SMMU_GR0_sGFSYNR2 0x58
++
++#define ID0_S1TS (1 << 30)
++#define ID0_S2TS (1 << 29)
++#define ID0_NTS (1 << 28)
++#define ID0_SMS (1 << 27)
++#define ID0_ATOSNS (1 << 26)
++#define ID0_PTFS_NO_AARCH32 (1 << 25)
++#define ID0_PTFS_NO_AARCH32S (1 << 24)
++#define ID0_CTTW (1 << 14)
++#define ID0_NUMIRPT_SHIFT 16
++#define ID0_NUMIRPT_MASK 0xff
++#define ID0_NUMSIDB_SHIFT 9
++#define ID0_NUMSIDB_MASK 0xf
++#define ID0_EXIDS (1 << 8)
++#define ID0_NUMSMRG_SHIFT 0
++#define ID0_NUMSMRG_MASK 0xff
++
++#define ID1_PAGESIZE (1 << 31)
++#define ID1_NUMPAGENDXB_SHIFT 28
++#define ID1_NUMPAGENDXB_MASK 7
++#define ID1_NUMS2CB_SHIFT 16
++#define ID1_NUMS2CB_MASK 0xff
++#define ID1_NUMCB_SHIFT 0
++#define ID1_NUMCB_MASK 0xff
++
++#define ID2_OAS_SHIFT 4
++#define ID2_OAS_MASK 0xf
++#define ID2_IAS_SHIFT 0
++#define ID2_IAS_MASK 0xf
++#define ID2_UBS_SHIFT 8
++#define ID2_UBS_MASK 0xf
++#define ID2_PTFS_4K (1 << 12)
++#define ID2_PTFS_16K (1 << 13)
++#define ID2_PTFS_64K (1 << 14)
++#define ID2_VMID16 (1 << 15)
++
++#define ID7_MAJOR_SHIFT 4
++#define ID7_MAJOR_MASK 0xf
++
++/* Global TLB invalidation */
++#define ARM_SMMU_GR0_TLBIVMID 0x64
++#define ARM_SMMU_GR0_TLBIALLNSNH 0x68
++#define ARM_SMMU_GR0_TLBIALLH 0x6c
++#define ARM_SMMU_GR0_sTLBGSYNC 0x70
++#define ARM_SMMU_GR0_sTLBGSTATUS 0x74
++#define sTLBGSTATUS_GSACTIVE (1 << 0)
++#define TLB_LOOP_TIMEOUT 1000000 /* 1s! */
++#define TLB_SPIN_COUNT 10
++
++/* Stream mapping registers */
++#define ARM_SMMU_GR0_SMR(n) (0x800 + ((n) << 2))
++#define SMR_VALID (1 << 31)
++#define SMR_MASK_SHIFT 16
++#define SMR_ID_SHIFT 0
++
++#define ARM_SMMU_GR0_S2CR(n) (0xc00 + ((n) << 2))
++#define S2CR_CBNDX_SHIFT 0
++#define S2CR_CBNDX_MASK 0xff
++#define S2CR_EXIDVALID (1 << 10)
++#define S2CR_TYPE_SHIFT 16
++#define S2CR_TYPE_MASK 0x3
++enum arm_smmu_s2cr_type {
++ S2CR_TYPE_TRANS,
++ S2CR_TYPE_BYPASS,
++ S2CR_TYPE_FAULT,
++};
++
++#define S2CR_PRIVCFG_SHIFT 24
++#define S2CR_PRIVCFG_MASK 0x3
++enum arm_smmu_s2cr_privcfg {
++ S2CR_PRIVCFG_DEFAULT,
++ S2CR_PRIVCFG_DIPAN,
++ S2CR_PRIVCFG_UNPRIV,
++ S2CR_PRIVCFG_PRIV,
++};
++
++/* Context bank attribute registers */
++#define ARM_SMMU_GR1_CBAR(n) (0x0 + ((n) << 2))
++#define CBAR_VMID_SHIFT 0
++#define CBAR_VMID_MASK 0xff
++#define CBAR_S1_BPSHCFG_SHIFT 8
++#define CBAR_S1_BPSHCFG_MASK 3
++#define CBAR_S1_BPSHCFG_NSH 3
++#define CBAR_S1_MEMATTR_SHIFT 12
++#define CBAR_S1_MEMATTR_MASK 0xf
++#define CBAR_S1_MEMATTR_WB 0xf
++#define CBAR_TYPE_SHIFT 16
++#define CBAR_TYPE_MASK 0x3
++#define CBAR_TYPE_S2_TRANS (0 << CBAR_TYPE_SHIFT)
++#define CBAR_TYPE_S1_TRANS_S2_BYPASS (1 << CBAR_TYPE_SHIFT)
++#define CBAR_TYPE_S1_TRANS_S2_FAULT (2 << CBAR_TYPE_SHIFT)
++#define CBAR_TYPE_S1_TRANS_S2_TRANS (3 << CBAR_TYPE_SHIFT)
++#define CBAR_IRPTNDX_SHIFT 24
++#define CBAR_IRPTNDX_MASK 0xff
++
++#define ARM_SMMU_GR1_CBA2R(n) (0x800 + ((n) << 2))
++#define CBA2R_RW64_32BIT (0 << 0)
++#define CBA2R_RW64_64BIT (1 << 0)
++#define CBA2R_VMID_SHIFT 16
++#define CBA2R_VMID_MASK 0xffff
++
++#define ARM_SMMU_CB_SCTLR 0x0
++#define ARM_SMMU_CB_ACTLR 0x4
++#define ARM_SMMU_CB_RESUME 0x8
++#define ARM_SMMU_CB_TTBCR2 0x10
++#define ARM_SMMU_CB_TTBR0 0x20
++#define ARM_SMMU_CB_TTBR1 0x28
++#define ARM_SMMU_CB_TTBCR 0x30
++#define ARM_SMMU_CB_CONTEXTIDR 0x34
++#define ARM_SMMU_CB_S1_MAIR0 0x38
++#define ARM_SMMU_CB_S1_MAIR1 0x3c
++#define ARM_SMMU_CB_PAR 0x50
++#define ARM_SMMU_CB_FSR 0x58
++#define ARM_SMMU_CB_FAR 0x60
++#define ARM_SMMU_CB_FSYNR0 0x68
++#define ARM_SMMU_CB_S1_TLBIVA 0x600
++#define ARM_SMMU_CB_S1_TLBIASID 0x610
++#define ARM_SMMU_CB_S1_TLBIVAL 0x620
++#define ARM_SMMU_CB_S2_TLBIIPAS2 0x630
++#define ARM_SMMU_CB_S2_TLBIIPAS2L 0x638
++#define ARM_SMMU_CB_TLBSYNC 0x7f0
++#define ARM_SMMU_CB_TLBSTATUS 0x7f4
++#define ARM_SMMU_CB_ATS1PR 0x800
++#define ARM_SMMU_CB_ATSR 0x8f0
++
++#define SCTLR_S1_ASIDPNE (1 << 12)
++#define SCTLR_CFCFG (1 << 7)
++#define SCTLR_CFIE (1 << 6)
++#define SCTLR_CFRE (1 << 5)
++#define SCTLR_E (1 << 4)
++#define SCTLR_AFE (1 << 2)
++#define SCTLR_TRE (1 << 1)
++#define SCTLR_M (1 << 0)
++
++#define ARM_MMU500_ACTLR_CPRE (1 << 1)
++
++#define ARM_MMU500_ACR_CACHE_LOCK (1 << 26)
++#define ARM_MMU500_ACR_SMTNMB_TLBEN (1 << 8)
++
++#define CB_PAR_F (1 << 0)
++
++#define ATSR_ACTIVE (1 << 0)
++
++#define RESUME_RETRY (0 << 0)
++#define RESUME_TERMINATE (1 << 0)
++
++#define TTBCR2_SEP_SHIFT 15
++#define TTBCR2_SEP_UPSTREAM (0x7 << TTBCR2_SEP_SHIFT)
++#define TTBCR2_AS (1 << 4)
++
++#define TTBRn_ASID_SHIFT 48
++
++#define FSR_MULTI (1 << 31)
++#define FSR_SS (1 << 30)
++#define FSR_UUT (1 << 8)
++#define FSR_ASF (1 << 7)
++#define FSR_TLBLKF (1 << 6)
++#define FSR_TLBMCF (1 << 5)
++#define FSR_EF (1 << 4)
++#define FSR_PF (1 << 3)
++#define FSR_AFF (1 << 2)
++#define FSR_TF (1 << 1)
++
++#define FSR_IGN (FSR_AFF | FSR_ASF | \
++ FSR_TLBMCF | FSR_TLBLKF)
++#define FSR_FAULT (FSR_MULTI | FSR_SS | FSR_UUT | \
++ FSR_EF | FSR_PF | FSR_TF | FSR_IGN)
++
++#define FSYNR0_WNR (1 << 4)
++
++#endif /* _ARM_SMMU_REGS_H */
+diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
+index 7ec30b08b3bd..ca9c20f915a8 100644
+--- a/drivers/iommu/arm-smmu.c
++++ b/drivers/iommu/arm-smmu.c
+@@ -54,6 +54,7 @@
+ #include <linux/amba/bus.h>
+
+ #include "io-pgtable.h"
++#include "arm-smmu-regs.h"
+
+ /* Maximum number of context banks per SMMU */
+ #define ARM_SMMU_MAX_CBS 128
+@@ -83,211 +84,9 @@
+ #define smmu_write_atomic_lq writel_relaxed
+ #endif
+
+-/* Configuration registers */
+-#define ARM_SMMU_GR0_sCR0 0x0
+-#define sCR0_CLIENTPD (1 << 0)
+-#define sCR0_GFRE (1 << 1)
+-#define sCR0_GFIE (1 << 2)
+-#define sCR0_EXIDENABLE (1 << 3)
+-#define sCR0_GCFGFRE (1 << 4)
+-#define sCR0_GCFGFIE (1 << 5)
+-#define sCR0_USFCFG (1 << 10)
+-#define sCR0_VMIDPNE (1 << 11)
+-#define sCR0_PTM (1 << 12)
+-#define sCR0_FB (1 << 13)
+-#define sCR0_VMID16EN (1 << 31)
+-#define sCR0_BSU_SHIFT 14
+-#define sCR0_BSU_MASK 0x3
+-
+-/* Auxiliary Configuration register */
+-#define ARM_SMMU_GR0_sACR 0x10
+-
+-/* Identification registers */
+-#define ARM_SMMU_GR0_ID0 0x20
+-#define ARM_SMMU_GR0_ID1 0x24
+-#define ARM_SMMU_GR0_ID2 0x28
+-#define ARM_SMMU_GR0_ID3 0x2c
+-#define ARM_SMMU_GR0_ID4 0x30
+-#define ARM_SMMU_GR0_ID5 0x34
+-#define ARM_SMMU_GR0_ID6 0x38
+-#define ARM_SMMU_GR0_ID7 0x3c
+-#define ARM_SMMU_GR0_sGFSR 0x48
+-#define ARM_SMMU_GR0_sGFSYNR0 0x50
+-#define ARM_SMMU_GR0_sGFSYNR1 0x54
+-#define ARM_SMMU_GR0_sGFSYNR2 0x58
+-
+-#define ID0_S1TS (1 << 30)
+-#define ID0_S2TS (1 << 29)
+-#define ID0_NTS (1 << 28)
+-#define ID0_SMS (1 << 27)
+-#define ID0_ATOSNS (1 << 26)
+-#define ID0_PTFS_NO_AARCH32 (1 << 25)
+-#define ID0_PTFS_NO_AARCH32S (1 << 24)
+-#define ID0_CTTW (1 << 14)
+-#define ID0_NUMIRPT_SHIFT 16
+-#define ID0_NUMIRPT_MASK 0xff
+-#define ID0_NUMSIDB_SHIFT 9
+-#define ID0_NUMSIDB_MASK 0xf
+-#define ID0_EXIDS (1 << 8)
+-#define ID0_NUMSMRG_SHIFT 0
+-#define ID0_NUMSMRG_MASK 0xff
+-
+-#define ID1_PAGESIZE (1 << 31)
+-#define ID1_NUMPAGENDXB_SHIFT 28
+-#define ID1_NUMPAGENDXB_MASK 7
+-#define ID1_NUMS2CB_SHIFT 16
+-#define ID1_NUMS2CB_MASK 0xff
+-#define ID1_NUMCB_SHIFT 0
+-#define ID1_NUMCB_MASK 0xff
+-
+-#define ID2_OAS_SHIFT 4
+-#define ID2_OAS_MASK 0xf
+-#define ID2_IAS_SHIFT 0
+-#define ID2_IAS_MASK 0xf
+-#define ID2_UBS_SHIFT 8
+-#define ID2_UBS_MASK 0xf
+-#define ID2_PTFS_4K (1 << 12)
+-#define ID2_PTFS_16K (1 << 13)
+-#define ID2_PTFS_64K (1 << 14)
+-#define ID2_VMID16 (1 << 15)
+-
+-#define ID7_MAJOR_SHIFT 4
+-#define ID7_MAJOR_MASK 0xf
+-
+-/* Global TLB invalidation */
+-#define ARM_SMMU_GR0_TLBIVMID 0x64
+-#define ARM_SMMU_GR0_TLBIALLNSNH 0x68
+-#define ARM_SMMU_GR0_TLBIALLH 0x6c
+-#define ARM_SMMU_GR0_sTLBGSYNC 0x70
+-#define ARM_SMMU_GR0_sTLBGSTATUS 0x74
+-#define sTLBGSTATUS_GSACTIVE (1 << 0)
+-#define TLB_LOOP_TIMEOUT 1000000 /* 1s! */
+-#define TLB_SPIN_COUNT 10
+-
+-/* Stream mapping registers */
+-#define ARM_SMMU_GR0_SMR(n) (0x800 + ((n) << 2))
+-#define SMR_VALID (1 << 31)
+-#define SMR_MASK_SHIFT 16
+-#define SMR_ID_SHIFT 0
+-
+-#define ARM_SMMU_GR0_S2CR(n) (0xc00 + ((n) << 2))
+-#define S2CR_CBNDX_SHIFT 0
+-#define S2CR_CBNDX_MASK 0xff
+-#define S2CR_EXIDVALID (1 << 10)
+-#define S2CR_TYPE_SHIFT 16
+-#define S2CR_TYPE_MASK 0x3
+-enum arm_smmu_s2cr_type {
+- S2CR_TYPE_TRANS,
+- S2CR_TYPE_BYPASS,
+- S2CR_TYPE_FAULT,
+-};
+-
+-#define S2CR_PRIVCFG_SHIFT 24
+-#define S2CR_PRIVCFG_MASK 0x3
+-enum arm_smmu_s2cr_privcfg {
+- S2CR_PRIVCFG_DEFAULT,
+- S2CR_PRIVCFG_DIPAN,
+- S2CR_PRIVCFG_UNPRIV,
+- S2CR_PRIVCFG_PRIV,
+-};
+-
+-/* Context bank attribute registers */
+-#define ARM_SMMU_GR1_CBAR(n) (0x0 + ((n) << 2))
+-#define CBAR_VMID_SHIFT 0
+-#define CBAR_VMID_MASK 0xff
+-#define CBAR_S1_BPSHCFG_SHIFT 8
+-#define CBAR_S1_BPSHCFG_MASK 3
+-#define CBAR_S1_BPSHCFG_NSH 3
+-#define CBAR_S1_MEMATTR_SHIFT 12
+-#define CBAR_S1_MEMATTR_MASK 0xf
+-#define CBAR_S1_MEMATTR_WB 0xf
+-#define CBAR_TYPE_SHIFT 16
+-#define CBAR_TYPE_MASK 0x3
+-#define CBAR_TYPE_S2_TRANS (0 << CBAR_TYPE_SHIFT)
+-#define CBAR_TYPE_S1_TRANS_S2_BYPASS (1 << CBAR_TYPE_SHIFT)
+-#define CBAR_TYPE_S1_TRANS_S2_FAULT (2 << CBAR_TYPE_SHIFT)
+-#define CBAR_TYPE_S1_TRANS_S2_TRANS (3 << CBAR_TYPE_SHIFT)
+-#define CBAR_IRPTNDX_SHIFT 24
+-#define CBAR_IRPTNDX_MASK 0xff
+-
+-#define ARM_SMMU_GR1_CBA2R(n) (0x800 + ((n) << 2))
+-#define CBA2R_RW64_32BIT (0 << 0)
+-#define CBA2R_RW64_64BIT (1 << 0)
+-#define CBA2R_VMID_SHIFT 16
+-#define CBA2R_VMID_MASK 0xffff
+-
+ /* Translation context bank */
+ #define ARM_SMMU_CB(smmu, n) ((smmu)->cb_base + ((n) << (smmu)->pgshift))
+
+-#define ARM_SMMU_CB_SCTLR 0x0
+-#define ARM_SMMU_CB_ACTLR 0x4
+-#define ARM_SMMU_CB_RESUME 0x8
+-#define ARM_SMMU_CB_TTBCR2 0x10
+-#define ARM_SMMU_CB_TTBR0 0x20
+-#define ARM_SMMU_CB_TTBR1 0x28
+-#define ARM_SMMU_CB_TTBCR 0x30
+-#define ARM_SMMU_CB_CONTEXTIDR 0x34
+-#define ARM_SMMU_CB_S1_MAIR0 0x38
+-#define ARM_SMMU_CB_S1_MAIR1 0x3c
+-#define ARM_SMMU_CB_PAR 0x50
+-#define ARM_SMMU_CB_FSR 0x58
+-#define ARM_SMMU_CB_FAR 0x60
+-#define ARM_SMMU_CB_FSYNR0 0x68
+-#define ARM_SMMU_CB_S1_TLBIVA 0x600
+-#define ARM_SMMU_CB_S1_TLBIASID 0x610
+-#define ARM_SMMU_CB_S1_TLBIVAL 0x620
+-#define ARM_SMMU_CB_S2_TLBIIPAS2 0x630
+-#define ARM_SMMU_CB_S2_TLBIIPAS2L 0x638
+-#define ARM_SMMU_CB_TLBSYNC 0x7f0
+-#define ARM_SMMU_CB_TLBSTATUS 0x7f4
+-#define ARM_SMMU_CB_ATS1PR 0x800
+-#define ARM_SMMU_CB_ATSR 0x8f0
+-
+-#define SCTLR_S1_ASIDPNE (1 << 12)
+-#define SCTLR_CFCFG (1 << 7)
+-#define SCTLR_CFIE (1 << 6)
+-#define SCTLR_CFRE (1 << 5)
+-#define SCTLR_E (1 << 4)
+-#define SCTLR_AFE (1 << 2)
+-#define SCTLR_TRE (1 << 1)
+-#define SCTLR_M (1 << 0)
+-
+-#define ARM_MMU500_ACTLR_CPRE (1 << 1)
+-
+-#define ARM_MMU500_ACR_CACHE_LOCK (1 << 26)
+-#define ARM_MMU500_ACR_SMTNMB_TLBEN (1 << 8)
+-
+-#define CB_PAR_F (1 << 0)
+-
+-#define ATSR_ACTIVE (1 << 0)
+-
+-#define RESUME_RETRY (0 << 0)
+-#define RESUME_TERMINATE (1 << 0)
+-
+-#define TTBCR2_SEP_SHIFT 15
+-#define TTBCR2_SEP_UPSTREAM (0x7 << TTBCR2_SEP_SHIFT)
+-#define TTBCR2_AS (1 << 4)
+-
+-#define TTBRn_ASID_SHIFT 48
+-
+-#define FSR_MULTI (1 << 31)
+-#define FSR_SS (1 << 30)
+-#define FSR_UUT (1 << 8)
+-#define FSR_ASF (1 << 7)
+-#define FSR_TLBLKF (1 << 6)
+-#define FSR_TLBMCF (1 << 5)
+-#define FSR_EF (1 << 4)
+-#define FSR_PF (1 << 3)
+-#define FSR_AFF (1 << 2)
+-#define FSR_TF (1 << 1)
+-
+-#define FSR_IGN (FSR_AFF | FSR_ASF | \
+- FSR_TLBMCF | FSR_TLBLKF)
+-#define FSR_FAULT (FSR_MULTI | FSR_SS | FSR_UUT | \
+- FSR_EF | FSR_PF | FSR_TF | FSR_IGN)
+-
+-#define FSYNR0_WNR (1 << 4)
+-
+ #define MSI_IOVA_BASE 0x8000000
+ #define MSI_IOVA_LENGTH 0x100000
+
+From patchwork Thu Jul 13 12:07:46 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [RESEND,3/4] iommu: add qcom_iommu
+From: Rob Clark <robdclark@gmail.com>
+X-Patchwork-Id: 9838375
+Message-Id: <20170713120747.20490-4-robdclark@gmail.com>
+To: iommu@lists.linux-foundation.org
+Cc: linux-arm-msm@vger.kernel.org, Archit Taneja <architt@codeaurora.org>,
+ Rob Herring <robh@kernel.org>, Will Deacon <will.deacon@arm.com>,
+ Sricharan <sricharan@codeaurora.org>,
+ Mark Rutland <mark.rutland@arm.com>, Robin Murphy <robin.murphy@arm.com>,
+ Rob Clark <robdclark@gmail.com>
+Date: Thu, 13 Jul 2017 08:07:46 -0400
+
+An iommu driver for Qualcomm "B" family devices which do implement the
+ARM SMMU spec, but not in a way that is compatible with how the arm-smmu
+driver is designed. It seems SMMU_SCR1.GASRAE=1 so the global register
+space is not accessible. This means it needs to get configuration from
+devicetree instead of setting it up dynamically.
+
+In the end, other than register definitions, there is not much code to
+share with arm-smmu (other than what has already been refactored out
+into the pgtable helpers).
+
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+Tested-by: Riku Voipio <riku.voipio@linaro.org>
+---
+v1: original
+v2: bindings cleanups and kconfig issues that kbuild robot pointed out
+v3: fix issues pointed out by Rob H. and actually make device removal
+ work
+v4: fix WARN_ON() splats reported by Archit
+v5: some fixes to build as a module.. note that it cannot actually
+ be built as a module yet (at minimum a bunch of other iommu syms
+ that are needed are not exported, but there may be more to it
+ than that), but at least qcom_iommu is ready should it become
+ possible to build iommu drivers as modules.
+v6: Add additional pm-runtime get/puts around paths that can hit
+ TLB inv, to avoid unclocked register access if device using the
+ iommu is not powered on. And pre-emptively clear interrupts
+ before registering IRQ handler just in case the bootloader has
+ left us a surpise.
+v7: Address review comments from Robin (don't associate iommu_group
+ with context bank, table lookup instead of list to find context
+ bank, etc)
+v8: Fix silly bug on detach. Actually Robin already pointed it out
+ but I somehow overlooked that comment when preparing v7.
+
+ drivers/iommu/Kconfig | 10 +
+ drivers/iommu/Makefile | 1 +
+ drivers/iommu/qcom_iommu.c | 868 +++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 879 insertions(+)
+ create mode 100644 drivers/iommu/qcom_iommu.c
+
+diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
+index 6ee3a25ae731..aa4b62893fe1 100644
+--- a/drivers/iommu/Kconfig
++++ b/drivers/iommu/Kconfig
+@@ -367,4 +367,14 @@ config MTK_IOMMU_V1
+
+ if unsure, say N here.
+
++config QCOM_IOMMU
++ # Note: iommu drivers cannot (yet?) be built as modules
++ bool "Qualcomm IOMMU Support"
++ depends on ARCH_QCOM || COMPILE_TEST
++ select IOMMU_API
++ select IOMMU_IO_PGTABLE_LPAE
++ select ARM_DMA_USE_IOMMU
++ help
++ Support for IOMMU on certain Qualcomm SoCs.
++
+ endif # IOMMU_SUPPORT
+diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile
+index 195f7b997d8e..b910aea813a1 100644
+--- a/drivers/iommu/Makefile
++++ b/drivers/iommu/Makefile
+@@ -27,3 +27,4 @@ obj-$(CONFIG_TEGRA_IOMMU_SMMU) += tegra-smmu.o
+ obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu.o
+ obj-$(CONFIG_FSL_PAMU) += fsl_pamu.o fsl_pamu_domain.o
+ obj-$(CONFIG_S390_IOMMU) += s390-iommu.o
++obj-$(CONFIG_QCOM_IOMMU) += qcom_iommu.o
+diff --git a/drivers/iommu/qcom_iommu.c b/drivers/iommu/qcom_iommu.c
+new file mode 100644
+index 000000000000..860cad1cb167
+--- /dev/null
++++ b/drivers/iommu/qcom_iommu.c
+@@ -0,0 +1,868 @@
++/*
++ * IOMMU API for QCOM secure IOMMUs. Somewhat based on arm-smmu.c
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program. If not, see <http://www.gnu.org/licenses/>.
++ *
++ * Copyright (C) 2013 ARM Limited
++ * Copyright (C) 2017 Red Hat
++ */
++
++#include <linux/atomic.h>
++#include <linux/clk.h>
++#include <linux/delay.h>
++#include <linux/dma-iommu.h>
++#include <linux/dma-mapping.h>
++#include <linux/err.h>
++#include <linux/interrupt.h>
++#include <linux/io.h>
++#include <linux/io-64-nonatomic-hi-lo.h>
++#include <linux/iommu.h>
++#include <linux/iopoll.h>
++#include <linux/kconfig.h>
++#include <linux/module.h>
++#include <linux/mutex.h>
++#include <linux/of.h>
++#include <linux/of_address.h>
++#include <linux/of_device.h>
++#include <linux/of_iommu.h>
++#include <linux/platform_device.h>
++#include <linux/pm.h>
++#include <linux/pm_runtime.h>
++#include <linux/qcom_scm.h>
++#include <linux/slab.h>
++#include <linux/spinlock.h>
++
++#include "io-pgtable.h"
++#include "arm-smmu-regs.h"
++
++#define SMMU_INTR_SEL_NS 0x2000
++
++struct qcom_iommu_ctx;
++
++struct qcom_iommu_dev {
++ /* IOMMU core code handle */
++ struct iommu_device iommu;
++ struct device *dev;
++ struct clk *iface_clk;
++ struct clk *bus_clk;
++ void __iomem *local_base;
++ u32 sec_id;
++ u8 num_ctxs;
++ struct qcom_iommu_ctx *ctxs[0]; /* indexed by asid-1 */
++};
++
++struct qcom_iommu_ctx {
++ struct device *dev;
++ void __iomem *base;
++ bool secure_init;
++ u8 asid; /* asid and ctx bank # are 1:1 */
++};
++
++struct qcom_iommu_domain {
++ struct io_pgtable_ops *pgtbl_ops;
++ spinlock_t pgtbl_lock;
++ struct mutex init_mutex; /* Protects iommu pointer */
++ struct iommu_domain domain;
++ struct qcom_iommu_dev *iommu;
++};
++
++static struct qcom_iommu_domain *to_qcom_iommu_domain(struct iommu_domain *dom)
++{
++ return container_of(dom, struct qcom_iommu_domain, domain);
++}
++
++static const struct iommu_ops qcom_iommu_ops;
++
++static struct qcom_iommu_dev * to_iommu(struct iommu_fwspec *fwspec)
++{
++ if (!fwspec || fwspec->ops != &qcom_iommu_ops)
++ return NULL;
++ return fwspec->iommu_priv;
++}
++
++static struct qcom_iommu_ctx * to_ctx(struct iommu_fwspec *fwspec, unsigned asid)
++{
++ struct qcom_iommu_dev *qcom_iommu = to_iommu(fwspec);
++ if (!qcom_iommu)
++ return NULL;
++ return qcom_iommu->ctxs[asid - 1];
++}
++
++static inline void
++iommu_writel(struct qcom_iommu_ctx *ctx, unsigned reg, u32 val)
++{
++ writel_relaxed(val, ctx->base + reg);
++}
++
++static inline void
++iommu_writeq(struct qcom_iommu_ctx *ctx, unsigned reg, u64 val)
++{
++ writeq_relaxed(val, ctx->base + reg);
++}
++
++static inline u32
++iommu_readl(struct qcom_iommu_ctx *ctx, unsigned reg)
++{
++ return readl_relaxed(ctx->base + reg);
++}
++
++static inline u64
++iommu_readq(struct qcom_iommu_ctx *ctx, unsigned reg)
++{
++ return readq_relaxed(ctx->base + reg);
++}
++
++static void qcom_iommu_tlb_sync(void *cookie)
++{
++ struct iommu_fwspec *fwspec = cookie;
++ unsigned i;
++
++ for (i = 0; i < fwspec->num_ids; i++) {
++ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]);
++ unsigned int val, ret;
++
++ iommu_writel(ctx, ARM_SMMU_CB_TLBSYNC, 0);
++
++ ret = readl_poll_timeout(ctx->base + ARM_SMMU_CB_TLBSTATUS, val,
++ (val & 0x1) == 0, 0, 5000000);
++ if (ret)
++ dev_err(ctx->dev, "timeout waiting for TLB SYNC\n");
++ }
++}
++
++static void qcom_iommu_tlb_inv_context(void *cookie)
++{
++ struct iommu_fwspec *fwspec = cookie;
++ unsigned i;
++
++ for (i = 0; i < fwspec->num_ids; i++) {
++ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]);
++ iommu_writel(ctx, ARM_SMMU_CB_S1_TLBIASID, ctx->asid);
++ }
++
++ qcom_iommu_tlb_sync(cookie);
++}
++
++static void qcom_iommu_tlb_inv_range_nosync(unsigned long iova, size_t size,
++ size_t granule, bool leaf, void *cookie)
++{
++ struct iommu_fwspec *fwspec = cookie;
++ unsigned i, reg;
++
++ reg = leaf ? ARM_SMMU_CB_S1_TLBIVAL : ARM_SMMU_CB_S1_TLBIVA;
++
++ for (i = 0; i < fwspec->num_ids; i++) {
++ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]);
++ size_t s = size;
++
++ iova &= ~12UL;
++ iova |= ctx->asid;
++ do {
++ iommu_writel(ctx, reg, iova);
++ iova += granule;
++ } while (s -= granule);
++ }
++}
++
++static const struct iommu_gather_ops qcom_gather_ops = {
++ .tlb_flush_all = qcom_iommu_tlb_inv_context,
++ .tlb_add_flush = qcom_iommu_tlb_inv_range_nosync,
++ .tlb_sync = qcom_iommu_tlb_sync,
++};
++
++static irqreturn_t qcom_iommu_fault(int irq, void *dev)
++{
++ struct qcom_iommu_ctx *ctx = dev;
++ u32 fsr, fsynr;
++ u64 iova;
++
++ fsr = iommu_readl(ctx, ARM_SMMU_CB_FSR);
++
++ if (!(fsr & FSR_FAULT))
++ return IRQ_NONE;
++
++ fsynr = iommu_readl(ctx, ARM_SMMU_CB_FSYNR0);
++ iova = iommu_readq(ctx, ARM_SMMU_CB_FAR);
++
++ dev_err_ratelimited(ctx->dev,
++ "Unhandled context fault: fsr=0x%x, "
++ "iova=0x%016llx, fsynr=0x%x, cb=%d\n",
++ fsr, iova, fsynr, ctx->asid);
++
++ iommu_writel(ctx, ARM_SMMU_CB_FSR, fsr);
++
++ return IRQ_HANDLED;
++}
++
++static int qcom_iommu_init_domain(struct iommu_domain *domain,
++ struct qcom_iommu_dev *qcom_iommu,
++ struct iommu_fwspec *fwspec)
++{
++ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain);
++ struct io_pgtable_ops *pgtbl_ops;
++ struct io_pgtable_cfg pgtbl_cfg;
++ int i, ret = 0;
++ u32 reg;
++
++ mutex_lock(&qcom_domain->init_mutex);
++ if (qcom_domain->iommu)
++ goto out_unlock;
++
++ pgtbl_cfg = (struct io_pgtable_cfg) {
++ .pgsize_bitmap = qcom_iommu_ops.pgsize_bitmap,
++ .ias = 32,
++ .oas = 40,
++ .tlb = &qcom_gather_ops,
++ .iommu_dev = qcom_iommu->dev,
++ };
++
++ qcom_domain->iommu = qcom_iommu;
++ pgtbl_ops = alloc_io_pgtable_ops(ARM_32_LPAE_S1, &pgtbl_cfg, fwspec);
++ if (!pgtbl_ops) {
++ dev_err(qcom_iommu->dev, "failed to allocate pagetable ops\n");
++ ret = -ENOMEM;
++ goto out_clear_iommu;
++ }
++
++ /* Update the domain's page sizes to reflect the page table format */
++ domain->pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
++ domain->geometry.aperture_end = (1ULL << pgtbl_cfg.ias) - 1;
++ domain->geometry.force_aperture = true;
++
++ for (i = 0; i < fwspec->num_ids; i++) {
++ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]);
++
++ if (!ctx->secure_init) {
++ ret = qcom_scm_restore_sec_cfg(qcom_iommu->sec_id, ctx->asid);
++ if (ret) {
++ dev_err(qcom_iommu->dev, "secure init failed: %d\n", ret);
++ goto out_clear_iommu;
++ }
++ ctx->secure_init = true;
++ }
++
++ /* TTBRs */
++ iommu_writeq(ctx, ARM_SMMU_CB_TTBR0,
++ pgtbl_cfg.arm_lpae_s1_cfg.ttbr[0] |
++ ((u64)ctx->asid << TTBRn_ASID_SHIFT));
++ iommu_writeq(ctx, ARM_SMMU_CB_TTBR1,
++ pgtbl_cfg.arm_lpae_s1_cfg.ttbr[1] |
++ ((u64)ctx->asid << TTBRn_ASID_SHIFT));
++
++ /* TTBCR */
++ iommu_writel(ctx, ARM_SMMU_CB_TTBCR2,
++ (pgtbl_cfg.arm_lpae_s1_cfg.tcr >> 32) |
++ TTBCR2_SEP_UPSTREAM);
++ iommu_writel(ctx, ARM_SMMU_CB_TTBCR,
++ pgtbl_cfg.arm_lpae_s1_cfg.tcr);
++
++ /* MAIRs (stage-1 only) */
++ iommu_writel(ctx, ARM_SMMU_CB_S1_MAIR0,
++ pgtbl_cfg.arm_lpae_s1_cfg.mair[0]);
++ iommu_writel(ctx, ARM_SMMU_CB_S1_MAIR1,
++ pgtbl_cfg.arm_lpae_s1_cfg.mair[1]);
++
++ /* SCTLR */
++ reg = SCTLR_CFIE | SCTLR_CFRE | SCTLR_AFE | SCTLR_TRE |
++ SCTLR_M | SCTLR_S1_ASIDPNE;
++
++ if (IS_ENABLED(CONFIG_BIG_ENDIAN))
++ reg |= SCTLR_E;
++
++ iommu_writel(ctx, ARM_SMMU_CB_SCTLR, reg);
++ }
++
++ mutex_unlock(&qcom_domain->init_mutex);
++
++ /* Publish page table ops for map/unmap */
++ qcom_domain->pgtbl_ops = pgtbl_ops;
++
++ return 0;
++
++out_clear_iommu:
++ qcom_domain->iommu = NULL;
++out_unlock:
++ mutex_unlock(&qcom_domain->init_mutex);
++ return ret;
++}
++
++static struct iommu_domain *qcom_iommu_domain_alloc(unsigned type)
++{
++ struct qcom_iommu_domain *qcom_domain;
++
++ if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA)
++ return NULL;
++ /*
++ * Allocate the domain and initialise some of its data structures.
++ * We can't really do anything meaningful until we've added a
++ * master.
++ */
++ qcom_domain = kzalloc(sizeof(*qcom_domain), GFP_KERNEL);
++ if (!qcom_domain)
++ return NULL;
++
++ if (type == IOMMU_DOMAIN_DMA &&
++ iommu_get_dma_cookie(&qcom_domain->domain)) {
++ kfree(qcom_domain);
++ return NULL;
++ }
++
++ mutex_init(&qcom_domain->init_mutex);
++ spin_lock_init(&qcom_domain->pgtbl_lock);
++
++ return &qcom_domain->domain;
++}
++
++static void qcom_iommu_domain_free(struct iommu_domain *domain)
++{
++ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain);
++
++ if (WARN_ON(qcom_domain->iommu)) /* forgot to detach? */
++ return;
++
++ iommu_put_dma_cookie(domain);
++
++ /* NOTE: unmap can be called after client device is powered off,
++ * for example, with GPUs or anything involving dma-buf. So we
++ * cannot rely on the device_link. Make sure the IOMMU is on to
++ * avoid unclocked accesses in the TLB inv path:
++ */
++ pm_runtime_get_sync(qcom_domain->iommu->dev);
++
++ free_io_pgtable_ops(qcom_domain->pgtbl_ops);
++
++ pm_runtime_put_sync(qcom_domain->iommu->dev);
++
++ kfree(qcom_domain);
++}
++
++static int qcom_iommu_attach_dev(struct iommu_domain *domain, struct device *dev)
++{
++ struct qcom_iommu_dev *qcom_iommu = to_iommu(dev->iommu_fwspec);
++ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain);
++ int ret;
++
++ if (!qcom_iommu) {
++ dev_err(dev, "cannot attach to IOMMU, is it on the same bus?\n");
++ return -ENXIO;
++ }
++
++ /* Ensure that the domain is finalized */
++ pm_runtime_get_sync(qcom_iommu->dev);
++ ret = qcom_iommu_init_domain(domain, qcom_iommu, dev->iommu_fwspec);
++ pm_runtime_put_sync(qcom_iommu->dev);
++ if (ret < 0)
++ return ret;
++
++ /*
++ * Sanity check the domain. We don't support domains across
++ * different IOMMUs.
++ */
++ if (qcom_domain->iommu != qcom_iommu) {
++ dev_err(dev, "cannot attach to IOMMU %s while already "
++ "attached to domain on IOMMU %s\n",
++ dev_name(qcom_domain->iommu->dev),
++ dev_name(qcom_iommu->dev));
++ return -EINVAL;
++ }
++
++ return 0;
++}
++
++static void qcom_iommu_detach_dev(struct iommu_domain *domain, struct device *dev)
++{
++ struct iommu_fwspec *fwspec = dev->iommu_fwspec;
++ struct qcom_iommu_dev *qcom_iommu = to_iommu(fwspec);
++ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain);
++ unsigned i;
++
++ if (!qcom_domain->iommu)
++ return;
++
++ pm_runtime_get_sync(qcom_iommu->dev);
++ for (i = 0; i < fwspec->num_ids; i++) {
++ struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]);
++
++ /* Disable the context bank: */
++ iommu_writel(ctx, ARM_SMMU_CB_SCTLR, 0);
++ }
++ pm_runtime_put_sync(qcom_iommu->dev);
++
++ qcom_domain->iommu = NULL;
++}
++
++static int qcom_iommu_map(struct iommu_domain *domain, unsigned long iova,
++ phys_addr_t paddr, size_t size, int prot)
++{
++ int ret;
++ unsigned long flags;
++ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain);
++ struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops;
++
++ if (!ops)
++ return -ENODEV;
++
++ spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags);
++ ret = ops->map(ops, iova, paddr, size, prot);
++ spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags);
++ return ret;
++}
++
++static size_t qcom_iommu_unmap(struct iommu_domain *domain, unsigned long iova,
++ size_t size)
++{
++ size_t ret;
++ unsigned long flags;
++ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain);
++ struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops;
++
++ if (!ops)
++ return 0;
++
++ /* NOTE: unmap can be called after client device is powered off,
++ * for example, with GPUs or anything involving dma-buf. So we
++ * cannot rely on the device_link. Make sure the IOMMU is on to
++ * avoid unclocked accesses in the TLB inv path:
++ */
++ pm_runtime_get_sync(qcom_domain->iommu->dev);
++ spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags);
++ ret = ops->unmap(ops, iova, size);
++ spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags);
++ pm_runtime_put_sync(qcom_domain->iommu->dev);
++
++ return ret;
++}
++
++static phys_addr_t qcom_iommu_iova_to_phys(struct iommu_domain *domain,
++ dma_addr_t iova)
++{
++ phys_addr_t ret;
++ unsigned long flags;
++ struct qcom_iommu_domain *qcom_domain = to_qcom_iommu_domain(domain);
++ struct io_pgtable_ops *ops = qcom_domain->pgtbl_ops;
++
++ if (!ops)
++ return 0;
++
++ spin_lock_irqsave(&qcom_domain->pgtbl_lock, flags);
++ ret = ops->iova_to_phys(ops, iova);
++ spin_unlock_irqrestore(&qcom_domain->pgtbl_lock, flags);
++
++ return ret;
++}
++
++static bool qcom_iommu_capable(enum iommu_cap cap)
++{
++ switch (cap) {
++ case IOMMU_CAP_CACHE_COHERENCY:
++ /*
++ * Return true here as the SMMU can always send out coherent
++ * requests.
++ */
++ return true;
++ case IOMMU_CAP_NOEXEC:
++ return true;
++ default:
++ return false;
++ }
++}
++
++static int qcom_iommu_add_device(struct device *dev)
++{
++ struct qcom_iommu_dev *qcom_iommu = to_iommu(dev->iommu_fwspec);
++ struct iommu_group *group;
++ struct device_link *link;
++
++ if (!qcom_iommu)
++ return -ENODEV;
++
++ /*
++ * Establish the link between iommu and master, so that the
++ * iommu gets runtime enabled/disabled as per the master's
++ * needs.
++ */
++ link = device_link_add(dev, qcom_iommu->dev, DL_FLAG_PM_RUNTIME);
++ if (!link) {
++ dev_err(qcom_iommu->dev, "Unable to create device link between %s and %s\n",
++ dev_name(qcom_iommu->dev), dev_name(dev));
++ return -ENODEV;
++ }
++
++ group = iommu_group_get_for_dev(dev);
++ if (IS_ERR_OR_NULL(group))
++ return PTR_ERR_OR_ZERO(group);
++
++ iommu_group_put(group);
++ iommu_device_link(&qcom_iommu->iommu, dev);
++
++ return 0;
++}
++
++static void qcom_iommu_remove_device(struct device *dev)
++{
++ struct qcom_iommu_dev *qcom_iommu = to_iommu(dev->iommu_fwspec);
++
++ if (!qcom_iommu)
++ return;
++
++ iommu_device_unlink(&qcom_iommu->iommu, dev);
++ iommu_group_remove_device(dev);
++ iommu_fwspec_free(dev);
++}
++
++static int qcom_iommu_of_xlate(struct device *dev, struct of_phandle_args *args)
++{
++ struct qcom_iommu_dev *qcom_iommu;
++ struct platform_device *iommu_pdev;
++ unsigned asid = args->args[0];
++
++ if (args->args_count != 1) {
++ dev_err(dev, "incorrect number of iommu params found for %s "
++ "(found %d, expected 1)\n",
++ args->np->full_name, args->args_count);
++ return -EINVAL;
++ }
++
++ iommu_pdev = of_find_device_by_node(args->np);
++ if (WARN_ON(!iommu_pdev))
++ return -EINVAL;
++
++ qcom_iommu = platform_get_drvdata(iommu_pdev);
++
++ /* make sure the asid specified in dt is valid, so we don't have
++ * to sanity check this elsewhere, since 'asid - 1' is used to
++ * index into qcom_iommu->ctxs:
++ */
++ if (WARN_ON(asid < 1) ||
++ WARN_ON(asid > qcom_iommu->num_ctxs))
++ return -EINVAL;
++
++ if (!dev->iommu_fwspec->iommu_priv) {
++ dev->iommu_fwspec->iommu_priv = qcom_iommu;
++ } else {
++ /* make sure devices iommus dt node isn't referring to
++ * multiple different iommu devices. Multiple context
++ * banks are ok, but multiple devices are not:
++ */
++ if (WARN_ON(qcom_iommu != dev->iommu_fwspec->iommu_priv))
++ return -EINVAL;
++ }
++
++ return iommu_fwspec_add_ids(dev, &asid, 1);
++}
++
++static const struct iommu_ops qcom_iommu_ops = {
++ .capable = qcom_iommu_capable,
++ .domain_alloc = qcom_iommu_domain_alloc,
++ .domain_free = qcom_iommu_domain_free,
++ .attach_dev = qcom_iommu_attach_dev,
++ .detach_dev = qcom_iommu_detach_dev,
++ .map = qcom_iommu_map,
++ .unmap = qcom_iommu_unmap,
++ .map_sg = default_iommu_map_sg,
++ .iova_to_phys = qcom_iommu_iova_to_phys,
++ .add_device = qcom_iommu_add_device,
++ .remove_device = qcom_iommu_remove_device,
++ .device_group = generic_device_group,
++ .of_xlate = qcom_iommu_of_xlate,
++ .pgsize_bitmap = SZ_4K | SZ_64K | SZ_1M | SZ_16M,
++};
++
++static int qcom_iommu_enable_clocks(struct qcom_iommu_dev *qcom_iommu)
++{
++ int ret;
++
++ ret = clk_prepare_enable(qcom_iommu->iface_clk);
++ if (ret) {
++ dev_err(qcom_iommu->dev, "Couldn't enable iface_clk\n");
++ return ret;
++ }
++
++ ret = clk_prepare_enable(qcom_iommu->bus_clk);
++ if (ret) {
++ dev_err(qcom_iommu->dev, "Couldn't enable bus_clk\n");
++ clk_disable_unprepare(qcom_iommu->iface_clk);
++ return ret;
++ }
++
++ return 0;
++}
++
++static void qcom_iommu_disable_clocks(struct qcom_iommu_dev *qcom_iommu)
++{
++ clk_disable_unprepare(qcom_iommu->bus_clk);
++ clk_disable_unprepare(qcom_iommu->iface_clk);
++}
++
++static int get_asid(const struct device_node *np)
++{
++ u32 reg;
++
++ /* read the "reg" property directly to get the relative address
++ * of the context bank, and calculate the asid from that:
++ */
++ if (of_property_read_u32_index(np, "reg", 0, &reg))
++ return -ENODEV;
++
++ return reg / 0x1000; /* context banks are 0x1000 apart */
++}
++
++static int qcom_iommu_ctx_probe(struct platform_device *pdev)
++{
++ struct qcom_iommu_ctx *ctx;
++ struct device *dev = &pdev->dev;
++ struct qcom_iommu_dev *qcom_iommu = dev_get_drvdata(dev->parent);
++ struct resource *res;
++ int ret, irq;
++
++ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
++ if (!ctx)
++ return -ENOMEM;
++
++ ctx->dev = dev;
++ platform_set_drvdata(pdev, ctx);
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ ctx->base = devm_ioremap_resource(dev, res);
++ if (IS_ERR(ctx->base))
++ return PTR_ERR(ctx->base);
++
++ irq = platform_get_irq(pdev, 0);
++ if (irq < 0) {
++ dev_err(dev, "failed to get irq\n");
++ return -ENODEV;
++ }
++
++ /* clear IRQs before registering fault handler, just in case the
++ * boot-loader left us a surprise:
++ */
++ iommu_writel(ctx, ARM_SMMU_CB_FSR, iommu_readl(ctx, ARM_SMMU_CB_FSR));
++
++ ret = devm_request_irq(dev, irq,
++ qcom_iommu_fault,
++ IRQF_SHARED,
++ "qcom-iommu-fault",
++ ctx);
++ if (ret) {
++ dev_err(dev, "failed to request IRQ %u\n", irq);
++ return ret;
++ }
++
++ ret = get_asid(dev->of_node);
++ if (ret < 0) {
++ dev_err(dev, "missing reg property\n");
++ return ret;
++ }
++
++ ctx->asid = ret;
++
++ dev_dbg(dev, "found asid %u\n", ctx->asid);
++
++ qcom_iommu->ctxs[ctx->asid - 1] = ctx;
++
++ return 0;
++}
++
++static int qcom_iommu_ctx_remove(struct platform_device *pdev)
++{
++ struct qcom_iommu_dev *qcom_iommu = dev_get_drvdata(pdev->dev.parent);
++ struct qcom_iommu_ctx *ctx = platform_get_drvdata(pdev);
++
++ platform_set_drvdata(pdev, NULL);
++
++ qcom_iommu->ctxs[ctx->asid - 1] = NULL;
++
++ return 0;
++}
++
++static const struct of_device_id ctx_of_match[] = {
++ { .compatible = "qcom,msm-iommu-v1-ns" },
++ { .compatible = "qcom,msm-iommu-v1-sec" },
++ { /* sentinel */ }
++};
++
++static struct platform_driver qcom_iommu_ctx_driver = {
++ .driver = {
++ .name = "qcom-iommu-ctx",
++ .of_match_table = of_match_ptr(ctx_of_match),
++ },
++ .probe = qcom_iommu_ctx_probe,
++ .remove = qcom_iommu_ctx_remove,
++};
++
++static int qcom_iommu_device_probe(struct platform_device *pdev)
++{
++ struct device_node *child;
++ struct qcom_iommu_dev *qcom_iommu;
++ struct device *dev = &pdev->dev;
++ struct resource *res;
++ int ret, sz, max_asid = 0;
++
++ /* find the max asid (which is 1:1 to ctx bank idx), so we know how
++ * many child ctx devices we have:
++ */
++ for_each_child_of_node(dev->of_node, child)
++ max_asid = max(max_asid, get_asid(child));
++
++ sz = sizeof(*qcom_iommu) + (max_asid * sizeof(qcom_iommu->ctxs[0]));
++
++ qcom_iommu = devm_kzalloc(dev, sz, GFP_KERNEL);
++ if (!qcom_iommu)
++ return -ENOMEM;
++ qcom_iommu->num_ctxs = max_asid;
++ qcom_iommu->dev = dev;
++
++ res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
++ if (res)
++ qcom_iommu->local_base = devm_ioremap_resource(dev, res);
++
++ qcom_iommu->iface_clk = devm_clk_get(dev, "iface");
++ if (IS_ERR(qcom_iommu->iface_clk)) {
++ dev_err(dev, "failed to get iface clock\n");
++ return PTR_ERR(qcom_iommu->iface_clk);
++ }
++
++ qcom_iommu->bus_clk = devm_clk_get(dev, "bus");
++ if (IS_ERR(qcom_iommu->bus_clk)) {
++ dev_err(dev, "failed to get bus clock\n");
++ return PTR_ERR(qcom_iommu->bus_clk);
++ }
++
++ if (of_property_read_u32(dev->of_node, "qcom,iommu-secure-id",
++ &qcom_iommu->sec_id)) {
++ dev_err(dev, "missing qcom,iommu-secure-id property\n");
++ return -ENODEV;
++ }
++
++ platform_set_drvdata(pdev, qcom_iommu);
++
++ pm_runtime_enable(dev);
++
++ /* register context bank devices, which are child nodes: */
++ ret = devm_of_platform_populate(dev);
++ if (ret) {
++ dev_err(dev, "Failed to populate iommu contexts\n");
++ return ret;
++ }
++
++ ret = iommu_device_sysfs_add(&qcom_iommu->iommu, dev, NULL,
++ dev_name(dev));
++ if (ret) {
++ dev_err(dev, "Failed to register iommu in sysfs\n");
++ return ret;
++ }
++
++ iommu_device_set_ops(&qcom_iommu->iommu, &qcom_iommu_ops);
++ iommu_device_set_fwnode(&qcom_iommu->iommu, dev->fwnode);
++
++ ret = iommu_device_register(&qcom_iommu->iommu);
++ if (ret) {
++ dev_err(dev, "Failed to register iommu\n");
++ return ret;
++ }
++
++ bus_set_iommu(&platform_bus_type, &qcom_iommu_ops);
++
++ if (qcom_iommu->local_base) {
++ pm_runtime_get_sync(dev);
++ writel_relaxed(0xffffffff, qcom_iommu->local_base + SMMU_INTR_SEL_NS);
++ pm_runtime_put_sync(dev);
++ }
++
++ return 0;
++}
++
++static int qcom_iommu_device_remove(struct platform_device *pdev)
++{
++ struct qcom_iommu_dev *qcom_iommu = platform_get_drvdata(pdev);
++
++ bus_set_iommu(&platform_bus_type, NULL);
++
++ pm_runtime_force_suspend(&pdev->dev);
++ platform_set_drvdata(pdev, NULL);
++ iommu_device_sysfs_remove(&qcom_iommu->iommu);
++ iommu_device_unregister(&qcom_iommu->iommu);
++
++ return 0;
++}
++
++#ifdef CONFIG_PM
++static int qcom_iommu_resume(struct device *dev)
++{
++ struct platform_device *pdev = to_platform_device(dev);
++ struct qcom_iommu_dev *qcom_iommu = platform_get_drvdata(pdev);
++
++ return qcom_iommu_enable_clocks(qcom_iommu);
++}
++
++static int qcom_iommu_suspend(struct device *dev)
++{
++ struct platform_device *pdev = to_platform_device(dev);
++ struct qcom_iommu_dev *qcom_iommu = platform_get_drvdata(pdev);
++
++ qcom_iommu_disable_clocks(qcom_iommu);
++
++ return 0;
++}
++#endif
++
++static const struct dev_pm_ops qcom_iommu_pm_ops = {
++ SET_RUNTIME_PM_OPS(qcom_iommu_suspend, qcom_iommu_resume, NULL)
++ SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
++ pm_runtime_force_resume)
++};
++
++static const struct of_device_id qcom_iommu_of_match[] = {
++ { .compatible = "qcom,msm-iommu-v1" },
++ { /* sentinel */ }
++};
++MODULE_DEVICE_TABLE(of, qcom_iommu_of_match);
++
++static struct platform_driver qcom_iommu_driver = {
++ .driver = {
++ .name = "qcom-iommu",
++ .of_match_table = of_match_ptr(qcom_iommu_of_match),
++ .pm = &qcom_iommu_pm_ops,
++ },
++ .probe = qcom_iommu_device_probe,
++ .remove = qcom_iommu_device_remove,
++};
++
++static int __init qcom_iommu_init(void)
++{
++ int ret;
++
++ ret = platform_driver_register(&qcom_iommu_ctx_driver);
++ if (ret)
++ return ret;
++
++ ret = platform_driver_register(&qcom_iommu_driver);
++ if (ret)
++ platform_driver_unregister(&qcom_iommu_ctx_driver);
++
++ return ret;
++}
++
++static void __exit qcom_iommu_exit(void)
++{
++ platform_driver_unregister(&qcom_iommu_driver);
++ platform_driver_unregister(&qcom_iommu_ctx_driver);
++}
++
++module_init(qcom_iommu_init);
++module_exit(qcom_iommu_exit);
++
++IOMMU_OF_DECLARE(qcom_iommu_dev, "qcom,msm-iommu-v1", NULL);
++
++MODULE_DESCRIPTION("IOMMU API for QCOM IOMMU v1 implementations");
++MODULE_LICENSE("GPL v2");
+From patchwork Thu Jul 13 12:07:47 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [RESEND,4/4] iommu: qcom: initialize secure page table
+From: Rob Clark <robdclark@gmail.com>
+X-Patchwork-Id: 9838373
+Message-Id: <20170713120747.20490-5-robdclark@gmail.com>
+To: iommu@lists.linux-foundation.org
+Cc: linux-arm-msm@vger.kernel.org, Archit Taneja <architt@codeaurora.org>,
+ Rob Herring <robh@kernel.org>, Will Deacon <will.deacon@arm.com>,
+ Sricharan <sricharan@codeaurora.org>,
+ Mark Rutland <mark.rutland@arm.com>, Robin Murphy <robin.murphy@arm.com>,
+ Stanimir Varbanov <stanimir.varbanov@linaro.org>,
+ Rob Clark <robdclark@gmail.com>
+Date: Thu, 13 Jul 2017 08:07:47 -0400
+
+From: Stanimir Varbanov <stanimir.varbanov@linaro.org>
+
+This basically gets the secure page table size, allocates memory for
+secure pagetables and passes the physical address to the trusted zone.
+
+Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+---
+ drivers/iommu/qcom_iommu.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 64 insertions(+)
+
+diff --git a/drivers/iommu/qcom_iommu.c b/drivers/iommu/qcom_iommu.c
+index 860cad1cb167..48b62aa52787 100644
+--- a/drivers/iommu/qcom_iommu.c
++++ b/drivers/iommu/qcom_iommu.c
+@@ -604,6 +604,51 @@ static void qcom_iommu_disable_clocks(struct qcom_iommu_dev *qcom_iommu)
+ clk_disable_unprepare(qcom_iommu->iface_clk);
+ }
+
++static int qcom_iommu_sec_ptbl_init(struct device *dev)
++{
++ size_t psize = 0;
++ unsigned int spare = 0;
++ void *cpu_addr;
++ dma_addr_t paddr;
++ unsigned long attrs;
++ static bool allocated = false;
++ int ret;
++
++ if (allocated)
++ return 0;
++
++ ret = qcom_scm_iommu_secure_ptbl_size(spare, &psize);
++ if (ret) {
++ dev_err(dev, "failed to get iommu secure pgtable size (%d)\n",
++ ret);
++ return ret;
++ }
++
++ dev_info(dev, "iommu sec: pgtable size: %zu\n", psize);
++
++ attrs = DMA_ATTR_NO_KERNEL_MAPPING;
++
++ cpu_addr = dma_alloc_attrs(dev, psize, &paddr, GFP_KERNEL, attrs);
++ if (!cpu_addr) {
++ dev_err(dev, "failed to allocate %zu bytes for pgtable\n",
++ psize);
++ return -ENOMEM;
++ }
++
++ ret = qcom_scm_iommu_secure_ptbl_init(paddr, psize, spare);
++ if (ret) {
++ dev_err(dev, "failed to init iommu pgtable (%d)\n", ret);
++ goto free_mem;
++ }
++
++ allocated = true;
++ return 0;
++
++free_mem:
++ dma_free_attrs(dev, psize, cpu_addr, paddr, attrs);
++ return ret;
++}
++
+ static int get_asid(const struct device_node *np)
+ {
+ u32 reg;
+@@ -700,6 +745,17 @@ static struct platform_driver qcom_iommu_ctx_driver = {
+ .remove = qcom_iommu_ctx_remove,
+ };
+
++static bool qcom_iommu_has_secure_context(struct qcom_iommu_dev *qcom_iommu)
++{
++ struct device_node *child;
++
++ for_each_child_of_node(qcom_iommu->dev->of_node, child)
++ if (of_device_is_compatible(child, "qcom,msm-iommu-v1-sec"))
++ return true;
++
++ return false;
++}
++
+ static int qcom_iommu_device_probe(struct platform_device *pdev)
+ {
+ struct device_node *child;
+@@ -744,6 +800,14 @@ static int qcom_iommu_device_probe(struct platform_device *pdev)
+ return -ENODEV;
+ }
+
++ if (qcom_iommu_has_secure_context(qcom_iommu)) {
++ ret = qcom_iommu_sec_ptbl_init(dev);
++ if (ret) {
++ dev_err(dev, "cannot init secure pg table(%d)\n", ret);
++ return ret;
++ }
++ }
++
+ platform_set_drvdata(pdev, qcom_iommu);
+
+ pm_runtime_enable(dev);
+From patchwork Mon Jun 12 12:43:15 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [1/3] ARM64: DT: add gpu for msm8916
+From: Rob Clark <robdclark@gmail.com>
+X-Patchwork-Id: 9781057
+Message-Id: <20170612124317.29313-1-robdclark@gmail.com>
+To: linux-arm-msm@vger.kernel.org
+Cc: Stephen Boyd <sboyd@codeaurora.org>, Andy Gross <agross@codeaurora.org>,
+ Stanimir Varbanov <stanimir.varbanov@linaro.org>,
+ Rob Clark <robdclark@gmail.com>
+Date: Mon, 12 Jun 2017 08:43:15 -0400
+
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
+---
+ arch/arm64/boot/dts/qcom/msm8916.dtsi | 35 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 35 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
+index ab30939..24c24ab 100644
+--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
++++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
+@@ -204,6 +204,17 @@
+
+ };
+
++ gpu_opp_table: opp_table {
++ compatible = "operating-points-v2";
++
++ opp-400000000 {
++ opp-hz = /bits/ 64 <400000000>;
++ };
++ opp-19200000 {
++ opp-hz = /bits/ 64 <19200000>;
++ };
++ };
++
+ timer {
+ compatible = "arm,armv8-timer";
+ interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+@@ -698,6 +709,30 @@
+ #thermal-sensor-cells = <1>;
+ };
+
++ gpu@1c00000 {
++ compatible = "qcom,adreno-306.0", "qcom,adreno";
++ reg = <0x01c00000 0x20000>;
++ reg-names = "kgsl_3d0_reg_memory";
++ interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
++ interrupt-names = "kgsl_3d0_irq";
++ clock-names =
++ "core",
++ "iface",
++ "mem",
++ "mem_iface",
++ "alt_mem_iface",
++ "gfx3d";
++ clocks =
++ <&gcc GCC_OXILI_GFX3D_CLK>,
++ <&gcc GCC_OXILI_AHB_CLK>,
++ <&gcc GCC_OXILI_GMEM_CLK>,
++ <&gcc GCC_BIMC_GFX_CLK>,
++ <&gcc GCC_BIMC_GPU_CLK>,
++ <&gcc GFX3D_CLK_SRC>;
++ power-domains = <&gcc OXILI_GDSC>;
++ operating-points-v2 = <&gpu_opp_table>;
++ };
++
+ mdss: mdss@1a00000 {
+ compatible = "qcom,mdss";
+ reg = <0x1a00000 0x1000>,
+From patchwork Mon Jun 12 12:43:16 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [2/3] ARM64: DT: add video codec devicetree node
+From: Rob Clark <robdclark@gmail.com>
+X-Patchwork-Id: 9781059
+Message-Id: <20170612124317.29313-2-robdclark@gmail.com>
+To: linux-arm-msm@vger.kernel.org
+Cc: Stephen Boyd <sboyd@codeaurora.org>, Andy Gross <agross@codeaurora.org>,
+ Stanimir Varbanov <stanimir.varbanov@linaro.org>,
+ Rob Clark <robdclark@gmail.com>
+Date: Mon, 12 Jun 2017 08:43:16 -0400
+
+From: Stanimir Varbanov <stanimir.varbanov@linaro.org>
+
+Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
+---
+ arch/arm64/boot/dts/qcom/msm8916.dtsi | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
+index 24c24ab..1dcd632 100644
+--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
++++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
+@@ -88,6 +88,13 @@
+ no-map;
+ };
+
++ venus_mem: venus@89900000 {
++ compatible = "shared-dma-pool";
++ reg = <0x0 0x89900000 0x0 0x800000>;
++ alignment = <0x1000>;
++ no-map;
++ };
++
+ mba_mem: mba@8ea00000 {
+ no-map;
+ reg = <0 0x8ea00000 0 0x100000>;
+@@ -1214,6 +1221,27 @@
+ };
+ };
+ };
++
++ venus: video-codec@1d00000 {
++ compatible = "qcom,msm8916-venus";
++ reg = <0x01d00000 0xff000>;
++ interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
++ power-domains = <&gcc VENUS_GDSC>;
++ clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
++ <&gcc GCC_VENUS0_AHB_CLK>,
++ <&gcc GCC_VENUS0_AXI_CLK>;
++ clock-names = "core", "iface", "bus";
++ memory-region = <&venus_mem>;
++ status = "okay";
++
++ video-decoder {
++ compatible = "venus-decoder";
++ };
++
++ video-encoder {
++ compatible = "venus-encoder";
++ };
++ };
+ };
+
+ smd {
+From patchwork Mon Jun 12 12:43:17 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: [3/3] ARM64: DT: add iommu for msm8916
+From: Rob Clark <robdclark@gmail.com>
+X-Patchwork-Id: 9781061
+Message-Id: <20170612124317.29313-3-robdclark@gmail.com>
+To: linux-arm-msm@vger.kernel.org
+Cc: Stephen Boyd <sboyd@codeaurora.org>, Andy Gross <agross@codeaurora.org>,
+ Stanimir Varbanov <stanimir.varbanov@linaro.org>,
+ Rob Clark <robdclark@gmail.com>
+Date: Mon, 12 Jun 2017 08:43:17 -0400
+
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
+---
+ arch/arm64/boot/dts/qcom/msm8916.dtsi | 57 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 57 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
+index 1dcd632..9a1d7ef 100644
+--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
++++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
+@@ -716,6 +716,59 @@
+ #thermal-sensor-cells = <1>;
+ };
+
++ apps_iommu: iommu@1ef0000 {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ #iommu-cells = <1>;
++ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
++ ranges = <0 0x1e20000 0x40000>;
++ reg = <0x1ef0000 0x3000>;
++ clocks = <&gcc GCC_SMMU_CFG_CLK>,
++ <&gcc GCC_APSS_TCU_CLK>;
++ clock-names = "iface", "bus";
++ qcom,iommu-secure-id = <17>;
++
++ // mdp_0:
++ iommu-ctx@4000 {
++ compatible = "qcom,msm-iommu-v1-ns";
++ reg = <0x4000 0x1000>;
++ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
++ };
++
++ // venus_ns:
++ iommu-ctx@5000 {
++ compatible = "qcom,msm-iommu-v1-sec";
++ reg = <0x5000 0x1000>;
++ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
++ };
++ };
++
++ gpu_iommu: iommu@1f08000 {
++ #address-cells = <1>;
++ #size-cells = <1>;
++ #iommu-cells = <1>;
++ compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
++ ranges = <0 0x1f08000 0x10000>;
++ clocks = <&gcc GCC_SMMU_CFG_CLK>,
++ <&gcc GCC_GFX_TCU_CLK>;
++ clock-names = "iface", "bus";
++ qcom,iommu-secure-id = <18>;
++
++ // gfx3d_user:
++ iommu-ctx@1000 {
++ compatible = "qcom,msm-iommu-v1-ns";
++ reg = <0x1000 0x1000>;
++ interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
++ };
++
++ // gfx3d_priv:
++ iommu-ctx@2000 {
++ compatible = "qcom,msm-iommu-v1-ns";
++ reg = <0x2000 0x1000>;
++ interrupts = <GIC_SPI 242 0>;
++ };
++ };
++
+ gpu@1c00000 {
+ compatible = "qcom,adreno-306.0", "qcom,adreno";
+ reg = <0x01c00000 0x20000>;
+@@ -738,6 +791,7 @@
+ <&gcc GFX3D_CLK_SRC>;
+ power-domains = <&gcc OXILI_GDSC>;
+ operating-points-v2 = <&gpu_opp_table>;
++ iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
+ };
+
+ mdss: mdss@1a00000 {
+@@ -781,6 +835,8 @@
+ "core_clk",
+ "vsync_clk";
+
++ iommus = <&apps_iommu 4>;
++
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+@@ -1231,6 +1287,7 @@
+ <&gcc GCC_VENUS0_AHB_CLK>,
+ <&gcc GCC_VENUS0_AXI_CLK>;
+ clock-names = "core", "iface", "bus";
++ iommus = <&apps_iommu 5>;
+ memory-region = <&venus_mem>;
+ status = "okay";
+
diff --git a/qcom-msm89xx-fixes.patch b/qcom-msm89xx-fixes.patch
new file mode 100644
index 000000000..fc2f16dc3
--- /dev/null
+++ b/qcom-msm89xx-fixes.patch
@@ -0,0 +1,285 @@
+From 83b8b93188114e1a39b3475d9429a2ee8977a398 Mon Sep 17 00:00:00 2001
+From: Bjorn Andersson <bjorn.andersson@linaro.org>
+Date: Wed, 28 Jun 2017 14:53:23 -0700
+Subject: [PATCH 1/6] rpmsg: Make modalias work for DeviceTree based devices
+
+When rpmsg devices are expected to be matched based on their compatible
+the modalias should reflect this, so that module autoloading has a
+chance to match and load the appropriate module.
+
+Tested-by: Rob Clark <robdclark@gmail.com>
+Reported-by: Rob Clark <robdclark@gmail.com>
+Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
+---
+ drivers/rpmsg/rpmsg_core.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
+index 600f5f9f7431..62580ad1b1f1 100644
+--- a/drivers/rpmsg/rpmsg_core.c
++++ b/drivers/rpmsg/rpmsg_core.c
+@@ -342,6 +342,11 @@ static ssize_t modalias_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+ {
+ struct rpmsg_device *rpdev = to_rpmsg_device(dev);
++ ssize_t len;
++
++ len = of_device_modalias(dev, buf, PAGE_SIZE);
++ if (len != -ENODEV)
++ return len;
+
+ return sprintf(buf, RPMSG_DEVICE_MODALIAS_FMT "\n", rpdev->id.name);
+ }
+@@ -384,6 +389,11 @@ static int rpmsg_dev_match(struct device *dev, struct device_driver *drv)
+ static int rpmsg_uevent(struct device *dev, struct kobj_uevent_env *env)
+ {
+ struct rpmsg_device *rpdev = to_rpmsg_device(dev);
++ int ret;
++
++ ret = of_device_uevent_modalias(dev, env);
++ if (ret != -ENODEV)
++ return ret;
+
+ return add_uevent_var(env, "MODALIAS=" RPMSG_DEVICE_MODALIAS_FMT,
+ rpdev->id.name);
+--
+2.13.0
+
+From ccdf75f90484a87ddb29649304156a503bf5a829 Mon Sep 17 00:00:00 2001
+From: Bjorn Andersson <bjorn.andersson@linaro.org>
+Date: Wed, 28 Jun 2017 16:44:58 -0700
+Subject: [PATCH 2/6] spmi: Include OF based modalias in device uevent
+
+Include the OF-based modalias in the uevent sent when registering SPMI
+devices, so that user space has a chance to autoload the kernel module
+for the device.
+
+Reported-by: Rob Clark <robdclark@gmail.com>
+Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
+Tested-by: Rob Clark <robdclark@gmail.com>
+Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
+---
+ drivers/spmi/spmi.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c
+index 2b9b0941d9eb..6d23226e5f69 100644
+--- a/drivers/spmi/spmi.c
++++ b/drivers/spmi/spmi.c
+@@ -365,11 +365,23 @@ static int spmi_drv_remove(struct device *dev)
+ return 0;
+ }
+
++static int spmi_drv_uevent(struct device *dev, struct kobj_uevent_env *env)
++{
++ int ret;
++
++ ret = of_device_uevent_modalias(dev, env);
++ if (ret != -ENODEV)
++ return ret;
++
++ return 0;
++}
++
+ static struct bus_type spmi_bus_type = {
+ .name = "spmi",
+ .match = spmi_device_match,
+ .probe = spmi_drv_probe,
+ .remove = spmi_drv_remove,
++ .uevent = spmi_drv_uevent,
+ };
+
+ /**
+--
+2.13.0
+
+From 283d0e00a18b294ec56f1fb904896a546704faaf Mon Sep 17 00:00:00 2001
+From: Rob Clark <robdclark@gmail.com>
+Date: Fri, 30 Jun 2017 11:47:21 -0400
+Subject: [PATCH 3/6] soc: qcom: smsm: fix of_node refcnting problem
+
+of_find_node_with_property() drops the reference to the 'from' node,
+which eventually (after enough -EPROBE_DEFERs) drops the last reference
+to the node causing all sorts of fun problems, and this nice splat.
+
+ BUG: sleeping function called from invalid context at ../kernel/locking/mutex.c:747
+ in_atomic(): 1, irqs_disabled(): 128, pid: 33, name: kworker/0:1
+ 4 locks held by kworker/0:1/33:
+ #0: ("events"){.+.+.+}, at: [<ffff0000080fa91c>] process_one_work+0x1a4/0x728
+ #1: (deferred_probe_work){+.+.+.}, at: [<ffff0000080fa91c>] process_one_work+0x1a4/0x728
+ #2: (&dev->mutex){......}, at: [<ffff000008676078>] __device_attach+0x30/0x168
+ #3: (devtree_lock){......}, at: [<ffff000008828fd0>] of_find_node_with_property+0x30/0xe0
+ irq event stamp: 18976
+ hardirqs last enabled at (18975): [<ffff00000815794c>] __down_trylock_console_sem+0x74/0xb8
+ hardirqs last disabled at (18976): [<ffff0000089e26d4>] _raw_spin_lock_irqsave+0x2c/0x78
+ softirqs last enabled at (16880): [<ffff0000080e0f00>] __do_softirq+0x580/0x640
+ softirqs last disabled at (16871): [<ffff0000080e13a4>] irq_exit+0xe4/0x138
+ CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G E 4.12.0-rc5+ #1455
+ Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
+ Workqueue: events deferred_probe_work_func
+ Call trace:
+ [<ffff000008089ee0>] dump_backtrace+0x0/0x230
+ [<ffff00000808a134>] show_stack+0x24/0x30
+ [<ffff0000084e1944>] dump_stack+0xac/0xe8
+ [<ffff00000810d7e0>] ___might_sleep+0x150/0x230
+ [<ffff00000810d918>] __might_sleep+0x58/0x90
+ [<ffff0000089dde18>] __mutex_lock+0x50/0x870
+ [<ffff0000089de674>] mutex_lock_nested+0x3c/0x50
+ [<ffff000008388ae0>] kernfs_remove+0x30/0x50
+ [<ffff00000838b720>] sysfs_remove_dir+0x58/0x70
+ [<ffff0000084e393c>] kobject_del+0x1c/0x58
+ [<ffff0000084e374c>] kobject_put+0xb4/0x208
+ [<ffff00000882c364>] of_node_put+0x24/0x30
+ [<ffff000008829018>] of_find_node_with_property+0x78/0xe0
+ [<ffff000000aff5f4>] qcom_smsm_probe+0x194/0x720 [smsm]
+ [<ffff0000086793b4>] platform_drv_probe+0x74/0x110
+ [<ffff0000086765bc>] driver_probe_device+0x2b4/0x420
+ [<ffff000008676920>] __device_attach_driver+0xd0/0x150
+ [<ffff000008673e78>] bus_for_each_drv+0x68/0xa8
+ [<ffff00000867611c>] __device_attach+0xd4/0x168
+ [<ffff000008676a1c>] device_initial_probe+0x24/0x30
+ [<ffff000008675380>] bus_probe_device+0xa0/0xa8
+ [<ffff000008675948>] deferred_probe_work_func+0xb8/0xf8
+ [<ffff0000080fa9d4>] process_one_work+0x25c/0x728
+ [<ffff0000080faef4>] worker_thread+0x54/0x3d8
+ [<ffff0000081031d8>] kthread+0x110/0x140
+ [<ffff000008082d90>] ret_from_fork+0x10/0x40
+ OF: ERROR: Bad of_node_put() on /smsm
+ CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G W E 4.12.0-rc5+ #1455
+ Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
+ Workqueue: events deferred_probe_work_func
+
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+---
+ drivers/soc/qcom/smsm.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/soc/qcom/smsm.c b/drivers/soc/qcom/smsm.c
+index d0337b2a71c8..a64ecd597a22 100644
+--- a/drivers/soc/qcom/smsm.c
++++ b/drivers/soc/qcom/smsm.c
+@@ -495,7 +495,8 @@ static int qcom_smsm_probe(struct platform_device *pdev)
+ if (!smsm->hosts)
+ return -ENOMEM;
+
+- local_node = of_find_node_with_property(pdev->dev.of_node, "#qcom,smem-state-cells");
++ local_node = of_find_node_with_property(of_node_get(pdev->dev.of_node),
++ "#qcom,smem-state-cells");
+ if (!local_node) {
+ dev_err(&pdev->dev, "no state entry\n");
+ return -EINVAL;
+--
+2.13.0
+
+From 40cb129048e5d2456da8d9d6468f292da3071b91 Mon Sep 17 00:00:00 2001
+From: Rob Clark <robdclark@gmail.com>
+Date: Fri, 30 Jun 2017 16:40:23 -0400
+Subject: [PATCH 4/6] thermal: qcom: tsens: fix crash due to incorrect __init
+
+init_common() is called from probe, which can happen after the __init
+section is already unloaded in the case of -EPROBE_DEFER. Causing a
+later probe to attempt to branch to hyperspace.
+
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+Acked-by: Bjorn Andersson <bjorn.andersson@linaro.org>
+---
+ drivers/thermal/qcom/tsens-common.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c
+index b1449ad67fc0..22ad37c9808c 100644
+--- a/drivers/thermal/qcom/tsens-common.c
++++ b/drivers/thermal/qcom/tsens-common.c
+@@ -123,7 +123,7 @@ static const struct regmap_config tsens_config = {
+ .reg_stride = 4,
+ };
+
+-int __init init_common(struct tsens_device *tmdev)
++int init_common(struct tsens_device *tmdev)
+ {
+ void __iomem *base;
+
+--
+2.13.0
+
+From ae9b4fa55748cc9ce3c8ac039e46feab7257eff9 Mon Sep 17 00:00:00 2001
+From: Rob Clark <robdclark@gmail.com>
+Date: Sun, 2 Jul 2017 09:23:36 -0400
+Subject: [PATCH 5/6] soc: qcom: wcnss_ctrl: add missing MODULE_DEVICE_TABLE()
+
+This fixes a problem of wifi module not loading on db410c.
+
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
+---
+ drivers/soc/qcom/wcnss_ctrl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/soc/qcom/wcnss_ctrl.c b/drivers/soc/qcom/wcnss_ctrl.c
+index b9069184df19..d008e5b82db4 100644
+--- a/drivers/soc/qcom/wcnss_ctrl.c
++++ b/drivers/soc/qcom/wcnss_ctrl.c
+@@ -347,6 +347,7 @@ static const struct of_device_id wcnss_ctrl_of_match[] = {
+ { .compatible = "qcom,wcnss", },
+ {}
+ };
++MODULE_DEVICE_TABLE(of, wcnss_ctrl_of_match);
+
+ static struct rpmsg_driver wcnss_ctrl_driver = {
+ .probe = wcnss_ctrl_probe,
+--
+2.13.0
+
+From 173c1207986956ea4c00601a67c952751a1985e6 Mon Sep 17 00:00:00 2001
+From: Peter Robinson <pbrobinson@gmail.com>
+Date: Mon, 3 Jul 2017 10:10:21 +0100
+Subject: [PATCH 6/6] wcn36xx: check dma_mapping_error()
+
+Fixes splat:
+
+ wcn36xx a204000.wcnss:smd-edge:wcnss:wifi: DMA-API: device driver failed to check map error[device address=0x00000000b45ba000] [size=3872 bytes] [mapped as single]
+ ------------[ cut here ]------------
+ WARNING: CPU: 0 PID: 0 at ../lib/dma-debug.c:1167 check_unmap+0x474/0x8d0
+ Modules linked in: bnep(E) arc4(E) wcn36xx(E) mac80211(E) btqcomsmd(E) btqca(E) bluetooth(E) cfg80211(E) ecdh_generic(E) rfkill(E) vfat(E) fat(E) wcnss_ctrl qcom_wcnss_pil(E) mdt_loader(E) qcom_common(E) remoteproc(E) crc32_ce(E) virtio_ring(E) snd_soc_lpass_apq8016(E) snd_soc_lpass_cpu(E) virtio(E) snd_soc_lpass_platform(E) leds_gpio(E) snd_soc_hdmi_codec(E) snd_soc_apq8016_sbc(E) snd_soc_msm8916_digital(E) snd_soc_core(E) qcom_spmi_temp_alarm(E) ac97_bus(E) snd_pcm_dmaengine(E) snd_seq(E) snd_seq_device(E) snd_pcm(E) spi_qup(E) nvmem_qfprom(E) snd_timer(E) snd(E) soundcore(E) msm_rng(E) qcom_tsens(E) nvmem_core(E) uas(E) usb_storage(E) dm9601(E) cdc_ether(E) usbnet(E) mii(E) mmc_block(E) sdhci_msm(E) sdhci_pltfm(E) qcom_spmi_vadc(E) qcom_vadc_common(PE) clk_smd_rpm(E) industrialio(E)
+ qcom_smd_regulator(E) pinctrl_spmi_mpp(E) pinctrl_spmi_gpio(E) rtc_pm8xxx(E) adv7511(E) smd_rpm(E) qcom_spmi_pmic(E) regmap_spmi(E) phy_msm_usb(E) usb3503(E) extcon_usb_gpio(E) ci_hdrc_msm(E) ci_hdrc(E) qcom_hwspinlock(E) udc_core(E) extcon_core(E) ehci_msm(E) i2c_qup(E) sdhci(E) msm(E) mmc_core(E) drm_kms_helper(E) syscopyarea(E) sysfillrect(E) sysimgblt(E) fb_sys_fops(E) spmi_pmic_arb(E) drm(E) spmi(E) qcom_smd(E) rpmsg_core smsm(E) gpio_keys(E) smp2p(E) smem(E) hwspinlock_core(E) sunrpc(E) scsi_transport_iscsi(E)
+ CPU: 0 PID: 0 Comm: swapper/0 Tainted: P E 4.12.0-rc7+ #1476
+ Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
+ task: ffff000009049780 task.stack: ffff000009030000
+ PC is at check_unmap+0x474/0x8d0
+ LR is at check_unmap+0x474/0x8d0
+ ...
+ Mapped at:
+ dma_entry_alloc+0x68/0xa8
+ debug_dma_map_page+0x94/0x148
+ wcn36xx_dxe_fill_skb.isra.1+0xbc/0xf8 [wcn36xx]
+ wcn36xx_dxe_init+0x244/0x398 [wcn36xx]
+ wcn36xx_start+0xf4/0x298 [wcn36xx]
+
+v2: pbrobinson: add kfree_skb(skb);
+
+Signed-off-by: Rob Clark <robdclark@gmail.com>
+Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
+---
+ drivers/net/wireless/ath/wcn36xx/dxe.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/drivers/net/wireless/ath/wcn36xx/dxe.c b/drivers/net/wireless/ath/wcn36xx/dxe.c
+index 87dfdaf9044c..d5c810a8cc52 100644
+--- a/drivers/net/wireless/ath/wcn36xx/dxe.c
++++ b/drivers/net/wireless/ath/wcn36xx/dxe.c
+@@ -289,6 +289,11 @@ static int wcn36xx_dxe_fill_skb(struct device *dev, struct wcn36xx_dxe_ctl *ctl)
+ skb_tail_pointer(skb),
+ WCN36XX_PKT_SIZE,
+ DMA_FROM_DEVICE);
++ if (dma_mapping_error(dev, dxe->dst_addr_l)) {
++ dev_err(dev, "unable to map skb\n");
++ kfree_skb(skb);
++ return -ENOMEM;
++ }
+ ctl->skb = skb;
+
+ return 0;
+--
+2.13.0
+
diff --git a/qcom-rmsg-spmi-fixes.patch b/qcom-rmsg-spmi-fixes.patch
deleted file mode 100644
index 7aa1ca18c..000000000
--- a/qcom-rmsg-spmi-fixes.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From patchwork Wed Jun 28 21:53:23 2017
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [v2] rpmsg: Make modalias work for DeviceTree based devices
-From: Bjorn Andersson <bjorn.andersson@linaro.org>
-X-Patchwork-Id: 9815555
-Message-Id: <20170628215323.5658-1-bjorn.andersson@linaro.org>
-To: Ohad Ben-Cohen <ohad@wizery.com>,
- Bjorn Andersson <bjorn.andersson@linaro.org>
-Cc: linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org,
- Rob Clark <robdclark@gmail.com>
-Date: Wed, 28 Jun 2017 14:53:23 -0700
-
-When rpmsg devices are expected to be matched based on their compatible
-the modalias should reflect this, so that module autoloading has a
-chance to match and load the appropriate module.
-
-Tested-by: Rob Clark <robdclark@gmail.com>
-Reported-by: Rob Clark <robdclark@gmail.com>
-Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
----
-
-Changes since v1:
-- Also update rpmsg_uevent()
-
- drivers/rpmsg/rpmsg_core.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c
-index ad3d2a9df287..067650c5bcb6 100644
---- a/drivers/rpmsg/rpmsg_core.c
-+++ b/drivers/rpmsg/rpmsg_core.c
-@@ -343,6 +343,11 @@ static ssize_t modalias_show(struct device *dev,
- struct device_attribute *attr, char *buf)
- {
- struct rpmsg_device *rpdev = to_rpmsg_device(dev);
-+ ssize_t len;
-+
-+ len = of_device_modalias(dev, buf, PAGE_SIZE);
-+ if (len != -ENODEV)
-+ return len;
-
- return sprintf(buf, RPMSG_DEVICE_MODALIAS_FMT "\n", rpdev->id.name);
- }
-@@ -387,6 +392,11 @@ static int rpmsg_dev_match(struct device *dev, struct device_driver *drv)
- static int rpmsg_uevent(struct device *dev, struct kobj_uevent_env *env)
- {
- struct rpmsg_device *rpdev = to_rpmsg_device(dev);
-+ int ret;
-+
-+ ret = of_device_uevent_modalias(dev, env);
-+ if (ret != -ENODEV)
-+ return ret;
-
- return add_uevent_var(env, "MODALIAS=" RPMSG_DEVICE_MODALIAS_FMT,
- rpdev->id.name);
-diff --git a/drivers/spmi/spmi.c b/drivers/spmi/spmi.c
-index 2b9b0941d9eb..6d23226e5f69 100644
---- a/drivers/spmi/spmi.c
-+++ b/drivers/spmi/spmi.c
-@@ -365,11 +365,23 @@ static int spmi_drv_remove(struct device *dev)
- return 0;
- }
-
-+static int spmi_drv_uevent(struct device *dev, struct kobj_uevent_env *env)
-+{
-+ int ret;
-+
-+ ret = of_device_uevent_modalias(dev, env);
-+ if (ret != -ENODEV)
-+ return ret;
-+
-+ return 0;
-+}
-+
- static struct bus_type spmi_bus_type = {
- .name = "spmi",
- .match = spmi_device_match,
- .probe = spmi_drv_probe,
- .remove = spmi_drv_remove,
-+ .uevent = spmi_drv_uevent,
- };
-
- /**
diff --git a/scripts/allarchconfig.sh b/scripts/allarchconfig.sh
new file mode 100755
index 000000000..f80c23197
--- /dev/null
+++ b/scripts/allarchconfig.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+# Run from within a source tree.
+
+for i in configs/kernel-*.config
+do
+ cp -f $i .config
+ Arch=`head -1 .config | cut -b 3-`
+ echo $Arch \($i\)
+ make ARCH=$Arch listnewconfig | grep -E '^CONFIG_' >.newoptions || true;
+ if [ -s .newoptions ]; then
+ cat .newoptions;
+ exit 1;
+ fi;
+ rm -f .newoptions;
+done
+
diff --git a/scripts/bumpspecfile.py b/scripts/bumpspecfile.py
new file mode 100755
index 000000000..bc02ab300
--- /dev/null
+++ b/scripts/bumpspecfile.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+#
+# Uses git config options user.name and user.email, falls
+# back to env vars $GIT_COMMITTER_NAME and $GIT_COMMITTER_EMAIL
+#
+import re
+import sys
+import time
+import os
+import string
+
+class Specfile:
+ def __init__(self,filename):
+ file=open(filename,"r")
+ self.lines=file.readlines()
+ self.vr=""
+
+ def getNextVR(self,aspec):
+ # Get VR for changelog entry.
+ (ver,rel) = os.popen("LC_ALL=C rpm --specfile -q --qf '%%{version} %%{release}\n' --define 'dist %%{nil}' %s | head -1" % aspec).read().strip().split(' ')
+ pos = 0
+ # general released kernel case, bump 1st field
+ fedora_build = rel.split('.')[pos]
+ if fedora_build == "0":
+ # this is a devel kernel, bump 2nd field
+ pos = 1
+ elif rel.split('.')[-1] != fedora_build:
+ # this is a branch, must bump 3rd field
+ pos = 2
+ fedora_build = rel.split('.')[pos]
+ if pos == 1 and len(rel.split('.')) > 4:
+ # uh... what? devel kernel in a branch? private build? just do no VR in clog...
+ print "Warning: not adding any VR to changelog, couldn't tell for sure which field to bump"
+ pos = -1
+ next_fedora_build = int(fedora_build) + 1
+ if pos == 0:
+ nextrel = str(next_fedora_build)
+ elif pos == 1:
+ nextrel = "0." + str(next_fedora_build)
+ elif pos == 2:
+ nextrel = rel.split('.')[0] + "." + rel.split('.')[1] + "." + str(next_fedora_build)
+ if pos >= 0:
+ for s in rel.split('.')[pos + 1:]:
+ nextrel = nextrel + "." + s
+ self.vr = " "+ver+'-'+nextrel
+
+ def addChangelogEntry(self,entry):
+ user = os.popen("git config --get user.name").read().rstrip()
+ if (user == ""):
+ user = os.environ.get("GIT_COMMITTER_NAME","Unknown")
+ email = os.popen("git config --get user.email").read().rstrip()
+ if (email == ""):
+ email = os.environ.get("GIT_COMMITTER_EMAIL","unknown")
+ if (email == "unknown"):
+ email = os.environ.get("USER","unknown")+"@fedoraproject.org"
+ changematch=re.compile(r"^%changelog")
+ date=time.strftime("%a %b %d %Y", time.localtime(time.time()))
+ newchangelogentry="%changelog\n* "+date+" "+user+" <"+email+">"+self.vr+"\n"+entry+"\n\n"
+ for i in range(len(self.lines)):
+ if(changematch.match(self.lines[i])):
+ self.lines[i]=newchangelogentry
+ break
+
+ def writeFile(self,filename):
+ file=open(filename,"w")
+ file.writelines(self.lines)
+ file.close()
+
+if __name__=="__main__":
+ aspec=(sys.argv[1])
+ s=Specfile(aspec)
+ entry=(sys.argv[2])
+ s.getNextVR(aspec)
+ s.addChangelogEntry(entry)
+ s.writeFile(aspec)
+
diff --git a/scripts/generate-perf-man.sh b/scripts/generate-perf-man.sh
index 27691fafd..f5332ad86 100755
--- a/scripts/generate-perf-man.sh
+++ b/scripts/generate-perf-man.sh
@@ -47,8 +47,12 @@ if [ ! -z "$@" ]; then
esac
done
fi
-cd tools/perf/Documentation/
+cd tools/kvm/kvm_stat/
+make man
+mv kvm_stat.1 ../../perf/Documentation
+cd ../../perf/Documentation/
make
tar -czvf $BASEDIR/perf-man-${KERNEL_VERSION}.${KERNEL_PATCHLEVEL}.tar.gz *.1
make clean
+rm kvm_stat.1
popd
diff --git a/scripts/rawhide-rc.sh b/scripts/rawhide-rc.sh
index 5982403e7..40f32a8fe 100755
--- a/scripts/rawhide-rc.sh
+++ b/scripts/rawhide-rc.sh
@@ -19,6 +19,7 @@ fedpkg commit -c
RC=`grep "%global rcrev" kernel.spec| cut -d ' ' -f 3`
RC=$(($RC+1))
BASE=`grep "%define base_sublevel" kernel.spec| cut -d ' ' -f 3`
+OLDBASE=$BASE
# See comment in kernel.spec about the base numbering
BASE=$(($BASE+1))
@@ -28,10 +29,11 @@ mv sources.tmp sources
# Grab the tarball
if [ ! -f patch-4.$BASE-rc$RC.xz ]; then
- wget https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/patch-4.$BASE-rc$RC.xz
+ wget -O patch-4.$BASE-rc$RC https://git.kernel.org/torvalds/p/v4.$BASE-rc$RC/v4.$OLDBASE
if [ ! $? -eq 0 ]; then
exit 1
fi
+ xz -9 patch-4.$BASE-rc$RC
fedpkg upload patch-4.$BASE-rc$RC.xz
fi
diff --git a/scripts/rediffall.pl b/scripts/rediffall.pl
new file mode 100644
index 000000000..29f12beb9
--- /dev/null
+++ b/scripts/rediffall.pl
@@ -0,0 +1,64 @@
+#!/usr/bin/perl -w
+#
+# Script to rediff all patches in the spec
+# Usage: perl -w rediffall.pl < kernel-2.4.spec
+#
+# $workdir is where the new rediff'ed patches are created
+# $origdir is where the original patches and tarball are located
+#
+# Note that both $workdir and $origdir must be absolute path names.
+# Suggestion: create a /kernel symbolic link to the top of your CVS tree.
+
+my $workdir = "/dev/shm/redifftree";
+my $origdir = "/home/davej/devel";
+my $kernver = "linux-2.6.17";
+my $datestrip = "s/^\\(\\(+++\\|---\\) [^[:blank:]]\\+\\)[[:blank:]].*/\\1/";
+my $patchindex = 0;
+my @patchlist;
+
+# phase 1: create a tree
+print "Extracting pristine source..\n";
+system("mkdir -p $workdir");
+system("rm -rf $workdir/*");
+chdir("$workdir");
+system("tar -jxvf $origdir/$kernver.tar.bz2 > /dev/null");
+system("cp -al $kernver linux-$patchindex");
+
+# phase 2: read the spec from stdin and store all patches
+print "Reading specfile..\n";
+
+while (<>) {
+ my $line = $_;
+ if ($line =~ /^Patch([0-9]+)\: ([a-zA-Z0-9\-\_\.\+]+\.patch)/) {
+ $patchlist[$1] = $2;
+ } else {
+ if ($line =~ /^Patch([0-9]+)\: ([a-zA-Z0-9\-\_\.]+\.bz2)/) {
+ $patchlist[$1] = $2;
+ }
+ }
+
+ if ($line =~ /^%patch([0-9]+) -p1/) {
+ # copy the tree, apply the patch, diff and remove the old tree
+ my $oldindex = $patchindex;
+ $patchindex = $1;
+
+ print "rediffing patch number $patchindex: $patchlist[$patchindex]\n";
+
+ system("cp -al linux-$oldindex linux-$patchindex");
+ chdir("linux-$patchindex");
+ if ($patchlist[$patchindex] =~ /bz2/) {
+ system("bzcat $origdir/$patchlist[$patchindex] | patch -p1 &>/dev/null");
+ } else {
+ system("cat $origdir/$patchlist[$patchindex] | patch -p1 &>/dev/null");
+ }
+ chdir("$workdir");
+ system("rm -f `find -name \"*orig\"`");
+ if ($patchlist[$patchindex] =~ /bz2/) {
+ } else {
+ system("diff -urNp --exclude-from=/home/davej/.exclude linux-$oldindex linux-$patchindex | sed '$datestrip' > $patchlist[$patchindex]");
+ }
+ system("rm -rf linux-$oldindex");
+ }
+};
+
+1;
diff --git a/sources b/sources
index f0afac622..700a46c92 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (perf-man-4.11.tar.gz) = 0b070d2f10a743329de2f532e2d7e19ef385a3e6ef3c700b591ae2697604dbe542b36e31121b3e37517ee8071ab800386fa8663c24a5b36520a18e096c6eefc8
-SHA512 (linux-4.11.tar.xz) = 6610eed97ffb7207c71771198c36179b8244ace7222bebb109507720e26c5f17d918079a56d5febdd8605844d67fb2df0ebe910fa2f2f53690daf6e2a8ad09c3
-SHA512 (patch-4.11.11.xz) = 63b7ce0446de9b4651d795e172dc3aa07189b6bc888c25767e313a6f4aa5459a09985e65f06a6c795230899d6aa64e905249775b45261823a1907e3fa18a3974
+SHA512 (perf-man-4.12.tar.gz) = 4d3bbda1f520dba0007c351af46f45085fe4842074eb2e01aee736fd369df595f8f72ed6c1192715f1120bf3353279777f9dca1178fe93bffe5be2de700d409c
+SHA512 (linux-4.12.tar.xz) = 8e81b41b253e63233e92948941f44c6482acb52aa3a3fd172f03a38a86f2c35b2ad4fd407acd1bc3964673eba344fe104d3a03e3ff4bf9cd1f22bd44263bd728
+SHA512 (patch-4.12.3.xz) = a6ace68b6387665a1f77420b415a72032465fae6d99ec409487765ecf7cfb8a8458fe09f844662249f14e5739db3f82b28cdac705b0d54d4c6e268719d350c0d
diff --git a/ti-bluetooth.patch b/ti-bluetooth.patch
deleted file mode 100644
index 288eb7c94..000000000
--- a/ti-bluetooth.patch
+++ /dev/null
@@ -1,2480 +0,0 @@
-From patchwork Sat Aug 13 03:14:32 2016
-Content-Type: text/plain; charset="utf-8"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Subject: [RFC,1/7] tty: serial: omap: add UPF_BOOT_AUTOCONF flag for DT init
-From: Sebastian Reichel <sre@kernel.org>
-X-Patchwork-Id: 9278297
-Message-Id: <1471058078-5579-2-git-send-email-sre@kernel.org>
-To: Sebastian Reichel <sre@kernel.org>, Tony Lindgren <tony@atomide.com>,
- Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>,
- Marcel Holtmann <marcel@holtmann.org>,
- Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
- Jiri Slaby <jslaby@suse.com>
-Cc: Ville Tervo <ville.tervo@iki.fi>,
- =?UTF-8?q?Filip=20Matijevi=C4=87?= <filip.matijevic.pz@gmail.com>,
- Aaro Koskinen <aaro.koskinen@iki.fi>, Pavel Machek <pavel@ucw.cz>,
- =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali.rohar@gmail.com>,
- ivo.g.dimitrov.75@gmail.com, linux-bluetooth@vger.kernel.org,
- linux-serial@vger.kernel.org, linux-omap@vger.kernel.org,
- devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
-Date: Sat, 13 Aug 2016 05:14:32 +0200
-
----
- drivers/tty/serial/omap-serial.c | 3 +++
- 1 file changed, 3 insertions(+)
-Acked-by: Pavel Machek <pavel@ucw.cz>
-
-diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
-index a2a529994ba5..7c2c77789c2c 100644
---- a/drivers/tty/serial/omap-serial.c
-+++ b/drivers/tty/serial/omap-serial.c
-@@ -1542,6 +1542,9 @@ static struct omap_uart_port_info *of_get_uart_port_info(struct device *dev)
-
- of_property_read_u32(dev->of_node, "clock-frequency",
- &omap_up_info->uartclk);
-+
-+ omap_up_info->flags = UPF_BOOT_AUTOCONF;
-+
- return omap_up_info;
- }
-
-From 6102245c5711e73b83ad79ab0f2c3ec040262a87 Mon Sep 17 00:00:00 2001
-From: Sebastian Reichel <sre@kernel.org>
-Date: Tue, 28 Mar 2017 17:59:31 +0200
-Subject: [PATCH 01/13] serdev: add serdev_device_wait_until_sent
-
-Add method, which waits until the transmission buffer has been sent.
-Note, that the change in ttyport_write_wakeup is related, since
-tty_wait_until_sent will hang without that change.
-
-Acked-by: Rob Herring <robh@kernel.org>
-Acked-by: Pavel Machek <pavel@ucw.cz>
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-Signed-off-by: Rob Herring <robh@kernel.org>
----
- drivers/tty/serdev/core.c | 11 +++++++++++
- drivers/tty/serdev/serdev-ttyport.c | 18 ++++++++++++++----
- include/linux/serdev.h | 3 +++
- 3 files changed, 28 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/tty/serdev/core.c b/drivers/tty/serdev/core.c
-index f4c6c90add78..a63b74031e22 100644
---- a/drivers/tty/serdev/core.c
-+++ b/drivers/tty/serdev/core.c
-@@ -173,6 +173,17 @@ void serdev_device_set_flow_control(struct serdev_device *serdev, bool enable)
- }
- EXPORT_SYMBOL_GPL(serdev_device_set_flow_control);
-
-+void serdev_device_wait_until_sent(struct serdev_device *serdev, long timeout)
-+{
-+ struct serdev_controller *ctrl = serdev->ctrl;
-+
-+ if (!ctrl || !ctrl->ops->wait_until_sent)
-+ return;
-+
-+ ctrl->ops->wait_until_sent(ctrl, timeout);
-+}
-+EXPORT_SYMBOL_GPL(serdev_device_wait_until_sent);
-+
- static int serdev_drv_probe(struct device *dev)
- {
- const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver);
-diff --git a/drivers/tty/serdev/serdev-ttyport.c b/drivers/tty/serdev/serdev-ttyport.c
-index d05393594f15..50dc75c4d204 100644
---- a/drivers/tty/serdev/serdev-ttyport.c
-+++ b/drivers/tty/serdev/serdev-ttyport.c
-@@ -14,6 +14,7 @@
- #include <linux/serdev.h>
- #include <linux/tty.h>
- #include <linux/tty_driver.h>
-+#include <linux/poll.h>
-
- #define SERPORT_ACTIVE 1
-
-@@ -46,11 +47,11 @@ static void ttyport_write_wakeup(struct tty_port *port)
- struct serdev_controller *ctrl = port->client_data;
- struct serport *serport = serdev_controller_get_drvdata(ctrl);
-
-- if (!test_and_clear_bit(TTY_DO_WRITE_WAKEUP, &port->tty->flags))
-- return;
--
-- if (test_bit(SERPORT_ACTIVE, &serport->flags))
-+ if (test_and_clear_bit(TTY_DO_WRITE_WAKEUP, &port->tty->flags) &&
-+ test_bit(SERPORT_ACTIVE, &serport->flags))
- serdev_controller_write_wakeup(ctrl);
-+
-+ wake_up_interruptible_poll(&port->tty->write_wait, POLLOUT);
- }
-
- static const struct tty_port_client_operations client_ops = {
-@@ -167,6 +168,14 @@ static void ttyport_set_flow_control(struct serdev_controller *ctrl, bool enable
- tty_set_termios(tty, &ktermios);
- }
-
-+static void ttyport_wait_until_sent(struct serdev_controller *ctrl, long timeout)
-+{
-+ struct serport *serport = serdev_controller_get_drvdata(ctrl);
-+ struct tty_struct *tty = serport->tty;
-+
-+ tty_wait_until_sent(tty, timeout);
-+}
-+
- static const struct serdev_controller_ops ctrl_ops = {
- .write_buf = ttyport_write_buf,
- .write_flush = ttyport_write_flush,
-@@ -175,6 +184,7 @@ static const struct serdev_controller_ops ctrl_ops = {
- .close = ttyport_close,
- .set_flow_control = ttyport_set_flow_control,
- .set_baudrate = ttyport_set_baudrate,
-+ .wait_until_sent = ttyport_wait_until_sent,
- };
-
- struct device *serdev_tty_port_register(struct tty_port *port,
-diff --git a/include/linux/serdev.h b/include/linux/serdev.h
-index 9519da6253a8..a308b206d204 100644
---- a/include/linux/serdev.h
-+++ b/include/linux/serdev.h
-@@ -81,6 +81,7 @@ struct serdev_controller_ops {
- void (*close)(struct serdev_controller *);
- void (*set_flow_control)(struct serdev_controller *, bool);
- unsigned int (*set_baudrate)(struct serdev_controller *, unsigned int);
-+ void (*wait_until_sent)(struct serdev_controller *, long);
- };
-
- /**
-@@ -186,6 +187,7 @@ int serdev_device_open(struct serdev_device *);
- void serdev_device_close(struct serdev_device *);
- unsigned int serdev_device_set_baudrate(struct serdev_device *, unsigned int);
- void serdev_device_set_flow_control(struct serdev_device *, bool);
-+void serdev_device_wait_until_sent(struct serdev_device *, long);
- int serdev_device_write_buf(struct serdev_device *, const unsigned char *, size_t);
- void serdev_device_write_flush(struct serdev_device *);
- int serdev_device_write_room(struct serdev_device *);
-@@ -223,6 +225,7 @@ static inline unsigned int serdev_device_set_baudrate(struct serdev_device *sdev
- return 0;
- }
- static inline void serdev_device_set_flow_control(struct serdev_device *sdev, bool enable) {}
-+static inline void serdev_device_wait_until_sent(struct serdev_device *sdev, long timeout) {}
- static inline int serdev_device_write_buf(struct serdev_device *sdev, const unsigned char *buf, size_t count)
- {
- return -ENODEV;
---
-2.12.2
-
-From 6e1713b03eab6f42251bad76ab05e7e1aa28b199 Mon Sep 17 00:00:00 2001
-From: Sebastian Reichel <sre@kernel.org>
-Date: Tue, 28 Mar 2017 17:59:32 +0200
-Subject: [PATCH 02/13] serdev: implement get/set tiocm
-
-Add method for getting and setting tiocm.
-
-Acked-by: Pavel Machek <pavel@ucw.cz>
-Acked-by: Rob Herring <robh@kernel.org>
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-Signed-off-by: Rob Herring <robh@kernel.org>
----
- drivers/tty/serdev/core.c | 22 ++++++++++++++++++++++
- drivers/tty/serdev/serdev-ttyport.c | 24 ++++++++++++++++++++++++
- include/linux/serdev.h | 13 +++++++++++++
- 3 files changed, 59 insertions(+)
-
-diff --git a/drivers/tty/serdev/core.c b/drivers/tty/serdev/core.c
-index a63b74031e22..1e1cbae3a0ea 100644
---- a/drivers/tty/serdev/core.c
-+++ b/drivers/tty/serdev/core.c
-@@ -184,6 +184,28 @@ void serdev_device_wait_until_sent(struct serdev_device *serdev, long timeout)
- }
- EXPORT_SYMBOL_GPL(serdev_device_wait_until_sent);
-
-+int serdev_device_get_tiocm(struct serdev_device *serdev)
-+{
-+ struct serdev_controller *ctrl = serdev->ctrl;
-+
-+ if (!ctrl || !ctrl->ops->get_tiocm)
-+ return -ENOTSUPP;
-+
-+ return ctrl->ops->get_tiocm(ctrl);
-+}
-+EXPORT_SYMBOL_GPL(serdev_device_get_tiocm);
-+
-+int serdev_device_set_tiocm(struct serdev_device *serdev, int set, int clear)
-+{
-+ struct serdev_controller *ctrl = serdev->ctrl;
-+
-+ if (!ctrl || !ctrl->ops->set_tiocm)
-+ return -ENOTSUPP;
-+
-+ return ctrl->ops->set_tiocm(ctrl, set, clear);
-+}
-+EXPORT_SYMBOL_GPL(serdev_device_set_tiocm);
-+
- static int serdev_drv_probe(struct device *dev)
- {
- const struct serdev_device_driver *sdrv = to_serdev_device_driver(dev->driver);
-diff --git a/drivers/tty/serdev/serdev-ttyport.c b/drivers/tty/serdev/serdev-ttyport.c
-index 50dc75c4d204..487c88f6aa0e 100644
---- a/drivers/tty/serdev/serdev-ttyport.c
-+++ b/drivers/tty/serdev/serdev-ttyport.c
-@@ -176,6 +176,28 @@ static void ttyport_wait_until_sent(struct serdev_controller *ctrl, long timeout
- tty_wait_until_sent(tty, timeout);
- }
-
-+static int ttyport_get_tiocm(struct serdev_controller *ctrl)
-+{
-+ struct serport *serport = serdev_controller_get_drvdata(ctrl);
-+ struct tty_struct *tty = serport->tty;
-+
-+ if (!tty->ops->tiocmget)
-+ return -ENOTSUPP;
-+
-+ return tty->driver->ops->tiocmget(tty);
-+}
-+
-+static int ttyport_set_tiocm(struct serdev_controller *ctrl, unsigned int set, unsigned int clear)
-+{
-+ struct serport *serport = serdev_controller_get_drvdata(ctrl);
-+ struct tty_struct *tty = serport->tty;
-+
-+ if (!tty->ops->tiocmset)
-+ return -ENOTSUPP;
-+
-+ return tty->driver->ops->tiocmset(tty, set, clear);
-+}
-+
- static const struct serdev_controller_ops ctrl_ops = {
- .write_buf = ttyport_write_buf,
- .write_flush = ttyport_write_flush,
-@@ -185,6 +207,8 @@ static const struct serdev_controller_ops ctrl_ops = {
- .set_flow_control = ttyport_set_flow_control,
- .set_baudrate = ttyport_set_baudrate,
- .wait_until_sent = ttyport_wait_until_sent,
-+ .get_tiocm = ttyport_get_tiocm,
-+ .set_tiocm = ttyport_set_tiocm,
- };
-
- struct device *serdev_tty_port_register(struct tty_port *port,
-diff --git a/include/linux/serdev.h b/include/linux/serdev.h
-index a308b206d204..e29a270f603c 100644
---- a/include/linux/serdev.h
-+++ b/include/linux/serdev.h
-@@ -15,6 +15,7 @@
-
- #include <linux/types.h>
- #include <linux/device.h>
-+#include <linux/termios.h>
-
- struct serdev_controller;
- struct serdev_device;
-@@ -82,6 +83,8 @@ struct serdev_controller_ops {
- void (*set_flow_control)(struct serdev_controller *, bool);
- unsigned int (*set_baudrate)(struct serdev_controller *, unsigned int);
- void (*wait_until_sent)(struct serdev_controller *, long);
-+ int (*get_tiocm)(struct serdev_controller *);
-+ int (*set_tiocm)(struct serdev_controller *, unsigned int, unsigned int);
- };
-
- /**
-@@ -188,6 +191,8 @@ void serdev_device_close(struct serdev_device *);
- unsigned int serdev_device_set_baudrate(struct serdev_device *, unsigned int);
- void serdev_device_set_flow_control(struct serdev_device *, bool);
- void serdev_device_wait_until_sent(struct serdev_device *, long);
-+int serdev_device_get_tiocm(struct serdev_device *);
-+int serdev_device_set_tiocm(struct serdev_device *, int, int);
- int serdev_device_write_buf(struct serdev_device *, const unsigned char *, size_t);
- void serdev_device_write_flush(struct serdev_device *);
- int serdev_device_write_room(struct serdev_device *);
-@@ -226,6 +231,14 @@ static inline unsigned int serdev_device_set_baudrate(struct serdev_device *sdev
- }
- static inline void serdev_device_set_flow_control(struct serdev_device *sdev, bool enable) {}
- static inline void serdev_device_wait_until_sent(struct serdev_device *sdev, long timeout) {}
-+static inline int serdev_device_get_tiocm(struct serdev_device *serdev)
-+{
-+ return -ENOTSUPP;
-+}
-+static inline int serdev_device_set_tiocm(struct serdev_device *serdev, int set, int clear)
-+{
-+ return -ENOTSUPP;
-+}
- static inline int serdev_device_write_buf(struct serdev_device *sdev, const unsigned char *buf, size_t count)
- {
- return -ENODEV;
---
-2.12.2
-
-From 9425a7e94dba6d5585c542c50f253f8fbf764a81 Mon Sep 17 00:00:00 2001
-From: Sebastian Reichel <sre@kernel.org>
-Date: Tue, 28 Mar 2017 17:59:33 +0200
-Subject: [PATCH 03/13] serdev: add helpers for cts and rts handling
-
-Add serdev helper functions for handling of cts and rts
-lines using the serdev's tiocm functions.
-
-Acked-by: Rob Herring <robh@kernel.org>
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-Signed-off-by: Rob Herring <robh@kernel.org>
----
- include/linux/serdev.h | 31 +++++++++++++++++++++++++++++++
- 1 file changed, 31 insertions(+)
-
-diff --git a/include/linux/serdev.h b/include/linux/serdev.h
-index e29a270f603c..37395b8eb8f1 100644
---- a/include/linux/serdev.h
-+++ b/include/linux/serdev.h
-@@ -16,6 +16,7 @@
- #include <linux/types.h>
- #include <linux/device.h>
- #include <linux/termios.h>
-+#include <linux/delay.h>
-
- struct serdev_controller;
- struct serdev_device;
-@@ -254,6 +255,36 @@ static inline int serdev_device_write_room(struct serdev_device *sdev)
-
- #endif /* CONFIG_SERIAL_DEV_BUS */
-
-+static inline bool serdev_device_get_cts(struct serdev_device *serdev)
-+{
-+ int status = serdev_device_get_tiocm(serdev);
-+ return !!(status & TIOCM_CTS);
-+}
-+
-+static inline int serdev_device_wait_for_cts(struct serdev_device *serdev, bool state, int timeout_ms)
-+{
-+ unsigned long timeout;
-+ bool signal;
-+
-+ timeout = jiffies + msecs_to_jiffies(timeout_ms);
-+ while (time_is_after_jiffies(timeout)) {
-+ signal = serdev_device_get_cts(serdev);
-+ if (signal == state)
-+ return 0;
-+ usleep_range(1000, 2000);
-+ }
-+
-+ return -ETIMEDOUT;
-+}
-+
-+static inline int serdev_device_set_rts(struct serdev_device *serdev, bool enable)
-+{
-+ if (enable)
-+ return serdev_device_set_tiocm(serdev, TIOCM_RTS, 0);
-+ else
-+ return serdev_device_set_tiocm(serdev, 0, TIOCM_RTS);
-+}
-+
- /*
- * serdev hooks into TTY core
- */
---
-2.12.2
-
-From 8656be75e893514bac2aa817f1c1b35e8dbd9e5b Mon Sep 17 00:00:00 2001
-From: Sebastian Reichel <sre@kernel.org>
-Date: Tue, 28 Mar 2017 17:59:34 +0200
-Subject: [PATCH 04/13] Bluetooth: hci_uart: add support for word alignment
-
-This will be used by Nokia's H4+ protocol, which
-uses 2-byte aligned packets.
-
-Acked-by: Pavel Machek <pavel@ucw.cz>
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-Signed-off-by: Rob Herring <robh@kernel.org>
----
- drivers/bluetooth/hci_h4.c | 17 +++++++++++++++++
- drivers/bluetooth/hci_ldisc.c | 4 ++++
- drivers/bluetooth/hci_uart.h | 3 +++
- 3 files changed, 24 insertions(+)
-
-diff --git a/drivers/bluetooth/hci_h4.c b/drivers/bluetooth/hci_h4.c
-index 635597b6e168..82e5a32b87a4 100644
---- a/drivers/bluetooth/hci_h4.c
-+++ b/drivers/bluetooth/hci_h4.c
-@@ -171,9 +171,20 @@ struct sk_buff *h4_recv_buf(struct hci_dev *hdev, struct sk_buff *skb,
- const unsigned char *buffer, int count,
- const struct h4_recv_pkt *pkts, int pkts_count)
- {
-+ struct hci_uart *hu = hci_get_drvdata(hdev);
-+ u8 alignment = hu->alignment;
-+
- while (count) {
- int i, len;
-
-+ /* remove padding bytes from buffer */
-+ for (; hu->padding && count > 0; hu->padding--) {
-+ count--;
-+ buffer++;
-+ }
-+ if (!count)
-+ break;
-+
- if (!skb) {
- for (i = 0; i < pkts_count; i++) {
- if (buffer[0] != (&pkts[i])->type)
-@@ -253,11 +264,17 @@ struct sk_buff *h4_recv_buf(struct hci_dev *hdev, struct sk_buff *skb,
- }
-
- if (!dlen) {
-+ hu->padding = (skb->len - 1) % alignment;
-+ hu->padding = (alignment - hu->padding) % alignment;
-+
- /* No more data, complete frame */
- (&pkts[i])->recv(hdev, skb);
- skb = NULL;
- }
- } else {
-+ hu->padding = (skb->len - 1) % alignment;
-+ hu->padding = (alignment - hu->padding) % alignment;
-+
- /* Complete frame */
- (&pkts[i])->recv(hdev, skb);
- skb = NULL;
-diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
-index 9497c469efd2..0ec8a94bd712 100644
---- a/drivers/bluetooth/hci_ldisc.c
-+++ b/drivers/bluetooth/hci_ldisc.c
-@@ -459,6 +459,10 @@ static int hci_uart_tty_open(struct tty_struct *tty)
- hu->tty = tty;
- tty->receive_room = 65536;
-
-+ /* disable alignment support by default */
-+ hu->alignment = 1;
-+ hu->padding = 0;
-+
- INIT_WORK(&hu->init_ready, hci_uart_init_work);
- INIT_WORK(&hu->write_work, hci_uart_write_work);
-
-diff --git a/drivers/bluetooth/hci_uart.h b/drivers/bluetooth/hci_uart.h
-index 070139513e65..4aff50960cac 100644
---- a/drivers/bluetooth/hci_uart.h
-+++ b/drivers/bluetooth/hci_uart.h
-@@ -92,6 +92,9 @@ struct hci_uart {
-
- unsigned int init_speed;
- unsigned int oper_speed;
-+
-+ u8 alignment;
-+ u8 padding;
- };
-
- /* HCI_UART proto flag bits */
---
-2.12.2
-
-From f2d830b35ce8c834eaa895ff29c461455024f05e Mon Sep 17 00:00:00 2001
-From: Rob Herring <robh@kernel.org>
-Date: Tue, 28 Mar 2017 17:59:35 +0200
-Subject: [PATCH 05/13] Bluetooth: hci_uart: add serdev driver support library
-
-This adds library functions for serdev based BT drivers. This is largely
-copied from hci_ldisc.c and modified to use serdev calls. There's a little
-bit of duplication, but I avoided intermixing this as the ldisc code should
-eventually go away.
-
-Signed-off-by: Rob Herring <robh@kernel.org>
-Cc: Marcel Holtmann <marcel@holtmann.org>
-Cc: Gustavo Padovan <gustavo@padovan.org>
-Cc: Johan Hedberg <johan.hedberg@gmail.com>
-Cc: linux-bluetooth@vger.kernel.org
-Acked-by: Pavel Machek <pavel@ucw.cz>
-[Fix style issues reported by Pavel]
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-Signed-off-by: Rob Herring <robh@kernel.org>
----
- drivers/bluetooth/Makefile | 1 +
- drivers/bluetooth/hci_serdev.c | 361 +++++++++++++++++++++++++++++++++++++++++
- drivers/bluetooth/hci_uart.h | 4 +
- 3 files changed, 366 insertions(+)
- create mode 100644 drivers/bluetooth/hci_serdev.c
-
-diff --git a/drivers/bluetooth/Makefile b/drivers/bluetooth/Makefile
-index 80627187c8b6..fd571689eed6 100644
---- a/drivers/bluetooth/Makefile
-+++ b/drivers/bluetooth/Makefile
-@@ -29,6 +29,7 @@ btmrvl-y := btmrvl_main.o
- btmrvl-$(CONFIG_DEBUG_FS) += btmrvl_debugfs.o
-
- hci_uart-y := hci_ldisc.o
-+hci_uart-$(CONFIG_SERIAL_DEV_BUS) += hci_serdev.o
- hci_uart-$(CONFIG_BT_HCIUART_H4) += hci_h4.o
- hci_uart-$(CONFIG_BT_HCIUART_BCSP) += hci_bcsp.o
- hci_uart-$(CONFIG_BT_HCIUART_LL) += hci_ll.o
-diff --git a/drivers/bluetooth/hci_serdev.c b/drivers/bluetooth/hci_serdev.c
-new file mode 100644
-index 000000000000..f5ccb2c7ef92
---- /dev/null
-+++ b/drivers/bluetooth/hci_serdev.c
-@@ -0,0 +1,361 @@
-+/*
-+ * Bluetooth HCI serdev driver lib
-+ *
-+ * Copyright (C) 2017 Linaro, Ltd., Rob Herring <robh@kernel.org>
-+ *
-+ * Based on hci_ldisc.c:
-+ *
-+ * Copyright (C) 2000-2001 Qualcomm Incorporated
-+ * Copyright (C) 2002-2003 Maxim Krasnyansky <maxk@qualcomm.com>
-+ * Copyright (C) 2004-2005 Marcel Holtmann <marcel@holtmann.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * 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.
-+ *
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/serdev.h>
-+#include <linux/skbuff.h>
-+
-+#include <net/bluetooth/bluetooth.h>
-+#include <net/bluetooth/hci_core.h>
-+
-+#include "hci_uart.h"
-+
-+struct serdev_device_ops hci_serdev_client_ops;
-+
-+static inline void hci_uart_tx_complete(struct hci_uart *hu, int pkt_type)
-+{
-+ struct hci_dev *hdev = hu->hdev;
-+
-+ /* Update HCI stat counters */
-+ switch (pkt_type) {
-+ case HCI_COMMAND_PKT:
-+ hdev->stat.cmd_tx++;
-+ break;
-+
-+ case HCI_ACLDATA_PKT:
-+ hdev->stat.acl_tx++;
-+ break;
-+
-+ case HCI_SCODATA_PKT:
-+ hdev->stat.sco_tx++;
-+ break;
-+ }
-+}
-+
-+static inline struct sk_buff *hci_uart_dequeue(struct hci_uart *hu)
-+{
-+ struct sk_buff *skb = hu->tx_skb;
-+
-+ if (!skb)
-+ skb = hu->proto->dequeue(hu);
-+ else
-+ hu->tx_skb = NULL;
-+
-+ return skb;
-+}
-+
-+static void hci_uart_write_work(struct work_struct *work)
-+{
-+ struct hci_uart *hu = container_of(work, struct hci_uart, write_work);
-+ struct serdev_device *serdev = hu->serdev;
-+ struct hci_dev *hdev = hu->hdev;
-+ struct sk_buff *skb;
-+
-+ /* REVISIT:
-+ * should we cope with bad skbs or ->write() returning an error value?
-+ */
-+ do {
-+ clear_bit(HCI_UART_TX_WAKEUP, &hu->tx_state);
-+
-+ while ((skb = hci_uart_dequeue(hu))) {
-+ int len;
-+
-+ len = serdev_device_write_buf(serdev,
-+ skb->data, skb->len);
-+ hdev->stat.byte_tx += len;
-+
-+ skb_pull(skb, len);
-+ if (skb->len) {
-+ hu->tx_skb = skb;
-+ break;
-+ }
-+
-+ hci_uart_tx_complete(hu, hci_skb_pkt_type(skb));
-+ kfree_skb(skb);
-+ }
-+ } while(test_bit(HCI_UART_TX_WAKEUP, &hu->tx_state));
-+
-+ clear_bit(HCI_UART_SENDING, &hu->tx_state);
-+}
-+
-+/* ------- Interface to HCI layer ------ */
-+
-+/* Initialize device */
-+static int hci_uart_open(struct hci_dev *hdev)
-+{
-+ struct hci_uart *hu = hci_get_drvdata(hdev);
-+
-+ BT_DBG("%s %p", hdev->name, hdev);
-+
-+ serdev_device_set_client_ops(hu->serdev, &hci_serdev_client_ops);
-+
-+ return serdev_device_open(hu->serdev);
-+}
-+
-+/* Reset device */
-+static int hci_uart_flush(struct hci_dev *hdev)
-+{
-+ struct hci_uart *hu = hci_get_drvdata(hdev);
-+
-+ BT_DBG("hdev %p serdev %p", hdev, hu->serdev);
-+
-+ if (hu->tx_skb) {
-+ kfree_skb(hu->tx_skb); hu->tx_skb = NULL;
-+ }
-+
-+ /* Flush any pending characters in the driver and discipline. */
-+ serdev_device_write_flush(hu->serdev);
-+
-+ if (test_bit(HCI_UART_PROTO_READY, &hu->flags))
-+ hu->proto->flush(hu);
-+
-+ return 0;
-+}
-+
-+/* Close device */
-+static int hci_uart_close(struct hci_dev *hdev)
-+{
-+ struct hci_uart *hu = hci_get_drvdata(hdev);
-+
-+ BT_DBG("hdev %p", hdev);
-+
-+ hci_uart_flush(hdev);
-+ hdev->flush = NULL;
-+
-+ serdev_device_close(hu->serdev);
-+
-+ return 0;
-+}
-+
-+/* Send frames from HCI layer */
-+static int hci_uart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
-+{
-+ struct hci_uart *hu = hci_get_drvdata(hdev);
-+
-+ BT_DBG("%s: type %d len %d", hdev->name, hci_skb_pkt_type(skb),
-+ skb->len);
-+
-+ hu->proto->enqueue(hu, skb);
-+
-+ hci_uart_tx_wakeup(hu);
-+
-+ return 0;
-+}
-+
-+static int hci_uart_setup(struct hci_dev *hdev)
-+{
-+ struct hci_uart *hu = hci_get_drvdata(hdev);
-+ struct hci_rp_read_local_version *ver;
-+ struct sk_buff *skb;
-+ unsigned int speed;
-+ int err;
-+
-+ /* Init speed if any */
-+ if (hu->init_speed)
-+ speed = hu->init_speed;
-+ else if (hu->proto->init_speed)
-+ speed = hu->proto->init_speed;
-+ else
-+ speed = 0;
-+
-+ if (speed)
-+ serdev_device_set_baudrate(hu->serdev, speed);
-+
-+ /* Operational speed if any */
-+ if (hu->oper_speed)
-+ speed = hu->oper_speed;
-+ else if (hu->proto->oper_speed)
-+ speed = hu->proto->oper_speed;
-+ else
-+ speed = 0;
-+
-+ if (hu->proto->set_baudrate && speed) {
-+ err = hu->proto->set_baudrate(hu, speed);
-+ if (err)
-+ BT_ERR("%s: failed to set baudrate", hdev->name);
-+ else
-+ serdev_device_set_baudrate(hu->serdev, speed);
-+ }
-+
-+ if (hu->proto->setup)
-+ return hu->proto->setup(hu);
-+
-+ if (!test_bit(HCI_UART_VND_DETECT, &hu->hdev_flags))
-+ return 0;
-+
-+ skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL,
-+ HCI_INIT_TIMEOUT);
-+ if (IS_ERR(skb)) {
-+ BT_ERR("%s: Reading local version information failed (%ld)",
-+ hdev->name, PTR_ERR(skb));
-+ return 0;
-+ }
-+
-+ if (skb->len != sizeof(*ver)) {
-+ BT_ERR("%s: Event length mismatch for version information",
-+ hdev->name);
-+ }
-+
-+ kfree_skb(skb);
-+ return 0;
-+}
-+
-+/** hci_uart_write_wakeup - transmit buffer wakeup
-+ * @serdev: serial device
-+ *
-+ * This function is called by the serdev framework when it accepts
-+ * more data being sent.
-+ */
-+static void hci_uart_write_wakeup(struct serdev_device *serdev)
-+{
-+ struct hci_uart *hu = serdev_device_get_drvdata(serdev);
-+
-+ BT_DBG("");
-+
-+ if (!hu || serdev != hu->serdev) {
-+ WARN_ON(1);
-+ return;
-+ }
-+
-+ if (test_bit(HCI_UART_PROTO_READY, &hu->flags))
-+ hci_uart_tx_wakeup(hu);
-+}
-+
-+/** hci_uart_receive_buf - receive buffer wakeup
-+ * @serdev: serial device
-+ * @data: pointer to received data
-+ * @count: count of received data in bytes
-+ *
-+ * This function is called by the serdev framework when it received data
-+ * in the RX buffer.
-+ *
-+ * Return: number of processed bytes
-+ */
-+static int hci_uart_receive_buf(struct serdev_device *serdev, const u8 *data,
-+ size_t count)
-+{
-+ struct hci_uart *hu = serdev_device_get_drvdata(serdev);
-+
-+ if (!hu || serdev != hu->serdev) {
-+ WARN_ON(1);
-+ return 0;
-+ }
-+
-+ if (!test_bit(HCI_UART_PROTO_READY, &hu->flags))
-+ return 0;
-+
-+ /* It does not need a lock here as it is already protected by a mutex in
-+ * tty caller
-+ */
-+ hu->proto->recv(hu, data, count);
-+
-+ if (hu->hdev)
-+ hu->hdev->stat.byte_rx += count;
-+
-+ return count;
-+}
-+
-+struct serdev_device_ops hci_serdev_client_ops = {
-+ .receive_buf = hci_uart_receive_buf,
-+ .write_wakeup = hci_uart_write_wakeup,
-+};
-+
-+int hci_uart_register_device(struct hci_uart *hu,
-+ const struct hci_uart_proto *p)
-+{
-+ int err;
-+ struct hci_dev *hdev;
-+
-+ BT_DBG("");
-+
-+ err = p->open(hu);
-+ if (err)
-+ return err;
-+
-+ hu->proto = p;
-+ set_bit(HCI_UART_PROTO_READY, &hu->flags);
-+
-+ /* Initialize and register HCI device */
-+ hdev = hci_alloc_dev();
-+ if (!hdev) {
-+ BT_ERR("Can't allocate HCI device");
-+ err = -ENOMEM;
-+ goto err_alloc;
-+ }
-+
-+ hu->hdev = hdev;
-+
-+ hdev->bus = HCI_UART;
-+ hci_set_drvdata(hdev, hu);
-+
-+ INIT_WORK(&hu->write_work, hci_uart_write_work);
-+
-+ /* Only when vendor specific setup callback is provided, consider
-+ * the manufacturer information valid. This avoids filling in the
-+ * value for Ericsson when nothing is specified.
-+ */
-+ if (hu->proto->setup)
-+ hdev->manufacturer = hu->proto->manufacturer;
-+
-+ hdev->open = hci_uart_open;
-+ hdev->close = hci_uart_close;
-+ hdev->flush = hci_uart_flush;
-+ hdev->send = hci_uart_send_frame;
-+ hdev->setup = hci_uart_setup;
-+ SET_HCIDEV_DEV(hdev, &hu->serdev->dev);
-+
-+ if (test_bit(HCI_UART_RAW_DEVICE, &hu->hdev_flags))
-+ set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks);
-+
-+ if (test_bit(HCI_UART_EXT_CONFIG, &hu->hdev_flags))
-+ set_bit(HCI_QUIRK_EXTERNAL_CONFIG, &hdev->quirks);
-+
-+ if (!test_bit(HCI_UART_RESET_ON_INIT, &hu->hdev_flags))
-+ set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks);
-+
-+ if (test_bit(HCI_UART_CREATE_AMP, &hu->hdev_flags))
-+ hdev->dev_type = HCI_AMP;
-+ else
-+ hdev->dev_type = HCI_PRIMARY;
-+
-+ if (test_bit(HCI_UART_INIT_PENDING, &hu->hdev_flags))
-+ return 0;
-+
-+ if (hci_register_dev(hdev) < 0) {
-+ BT_ERR("Can't register HCI device");
-+ err = -ENODEV;
-+ goto err_register;
-+ }
-+
-+ set_bit(HCI_UART_REGISTERED, &hu->flags);
-+
-+ return 0;
-+
-+err_register:
-+ hci_free_dev(hdev);
-+err_alloc:
-+ clear_bit(HCI_UART_PROTO_READY, &hu->flags);
-+ p->close(hu);
-+ return err;
-+}
-diff --git a/drivers/bluetooth/hci_uart.h b/drivers/bluetooth/hci_uart.h
-index 4aff50960cac..1b41c661bbb8 100644
---- a/drivers/bluetooth/hci_uart.h
-+++ b/drivers/bluetooth/hci_uart.h
-@@ -58,6 +58,7 @@
- #define HCI_UART_VND_DETECT 5
-
- struct hci_uart;
-+struct serdev_device;
-
- struct hci_uart_proto {
- unsigned int id;
-@@ -77,6 +78,7 @@ struct hci_uart_proto {
-
- struct hci_uart {
- struct tty_struct *tty;
-+ struct serdev_device *serdev;
- struct hci_dev *hdev;
- unsigned long flags;
- unsigned long hdev_flags;
-@@ -108,6 +110,8 @@ struct hci_uart {
-
- int hci_uart_register_proto(const struct hci_uart_proto *p);
- int hci_uart_unregister_proto(const struct hci_uart_proto *p);
-+int hci_uart_register_device(struct hci_uart *hu, const struct hci_uart_proto *p);
-+
- int hci_uart_tx_wakeup(struct hci_uart *hu);
- int hci_uart_init_ready(struct hci_uart *hu);
- void hci_uart_init_tty(struct hci_uart *hu);
---
-2.12.2
-
-From c76b6c5106713b00e183ccb757bc15732d369a33 Mon Sep 17 00:00:00 2001
-From: Sebastian Reichel <sre@kernel.org>
-Date: Tue, 28 Mar 2017 17:59:36 +0200
-Subject: [PATCH 06/13] Bluetooth: hci_serdev: do not open device in hci open
-
-The device driver may need to communicate with the UART
-device while the Bluetooth device is closed (e.g. due
-to interrupts).
-
-Acked-by: Pavel Machek <pavel@ucw.cz>
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-Signed-off-by: Rob Herring <robh@kernel.org>
----
- drivers/bluetooth/hci_serdev.c | 12 +++---------
- 1 file changed, 3 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/bluetooth/hci_serdev.c b/drivers/bluetooth/hci_serdev.c
-index f5ccb2c7ef92..3b8ac0ece3fb 100644
---- a/drivers/bluetooth/hci_serdev.c
-+++ b/drivers/bluetooth/hci_serdev.c
-@@ -104,13 +104,9 @@ static void hci_uart_write_work(struct work_struct *work)
- /* Initialize device */
- static int hci_uart_open(struct hci_dev *hdev)
- {
-- struct hci_uart *hu = hci_get_drvdata(hdev);
--
- BT_DBG("%s %p", hdev->name, hdev);
-
-- serdev_device_set_client_ops(hu->serdev, &hci_serdev_client_ops);
--
-- return serdev_device_open(hu->serdev);
-+ return 0;
- }
-
- /* Reset device */
-@@ -136,15 +132,11 @@ static int hci_uart_flush(struct hci_dev *hdev)
- /* Close device */
- static int hci_uart_close(struct hci_dev *hdev)
- {
-- struct hci_uart *hu = hci_get_drvdata(hdev);
--
- BT_DBG("hdev %p", hdev);
-
- hci_uart_flush(hdev);
- hdev->flush = NULL;
-
-- serdev_device_close(hu->serdev);
--
- return 0;
- }
-
-@@ -289,6 +281,8 @@ int hci_uart_register_device(struct hci_uart *hu,
-
- BT_DBG("");
-
-+ serdev_device_set_client_ops(hu->serdev, &hci_serdev_client_ops);
-+
- err = p->open(hu);
- if (err)
- return err;
---
-2.12.2
-
-From 7fe8800d90c5e0f614e72c475687a68a76592241 Mon Sep 17 00:00:00 2001
-From: Sebastian Reichel <sre@kernel.org>
-Date: Tue, 28 Mar 2017 17:59:37 +0200
-Subject: [PATCH 07/13] Bluetooth: hci_serdev: allow modular drivers
-
-For bluetooth protocol driver only supporting serdev it makes
-sense to follow common practice and built them into their own
-module.
-
-Such modules need access to hci_uart_register_device and
-hci_uart_tx_wakeup for using the common protocol helpers.
-
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-Signed-off-by: Rob Herring <robh@kernel.org>
----
- drivers/bluetooth/hci_ldisc.c | 1 +
- drivers/bluetooth/hci_serdev.c | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
-index 0ec8a94bd712..17bcbc13623f 100644
---- a/drivers/bluetooth/hci_ldisc.c
-+++ b/drivers/bluetooth/hci_ldisc.c
-@@ -134,6 +134,7 @@ int hci_uart_tx_wakeup(struct hci_uart *hu)
-
- return 0;
- }
-+EXPORT_SYMBOL_GPL(hci_uart_tx_wakeup);
-
- static void hci_uart_write_work(struct work_struct *work)
- {
-diff --git a/drivers/bluetooth/hci_serdev.c b/drivers/bluetooth/hci_serdev.c
-index 3b8ac0ece3fb..7de0edc0ff8c 100644
---- a/drivers/bluetooth/hci_serdev.c
-+++ b/drivers/bluetooth/hci_serdev.c
-@@ -353,3 +353,4 @@ int hci_uart_register_device(struct hci_uart *hu,
- p->close(hu);
- return err;
- }
-+EXPORT_SYMBOL_GPL(hci_uart_register_device);
---
-2.12.2
-
-From 68bfebdd86741d45508148c6fa13b5bd21116c7e Mon Sep 17 00:00:00 2001
-From: Sebastian Reichel <sre@kernel.org>
-Date: Tue, 28 Mar 2017 17:59:38 +0200
-Subject: [PATCH 08/13] dt-bindings: net: bluetooth: Add nokia-bluetooth
-
-Add binding document for serial bluetooth chips using
-Nokia H4+ protocol.
-
-Acked-by: Rob Herring <robh@kernel.org>
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-
-Changes since PATCHv1:
- * change compatible strings
- * mention active high/low state for GPIOs
-Signed-off-by: Rob Herring <robh@kernel.org>
----
- .../devicetree/bindings/net/nokia-bluetooth.txt | 51 ++++++++++++++++++++++
- 1 file changed, 51 insertions(+)
- create mode 100644 Documentation/devicetree/bindings/net/nokia-bluetooth.txt
-
-diff --git a/Documentation/devicetree/bindings/net/nokia-bluetooth.txt b/Documentation/devicetree/bindings/net/nokia-bluetooth.txt
-new file mode 100644
-index 000000000000..42be7dc9a70b
---- /dev/null
-+++ b/Documentation/devicetree/bindings/net/nokia-bluetooth.txt
-@@ -0,0 +1,51 @@
-+Nokia Bluetooth Chips
-+---------------------
-+
-+Nokia phones often come with UART connected bluetooth chips from different
-+vendors and modified device API. Those devices speak a protocol named H4+
-+(also known as h4p) by Nokia, which is similar to the H4 protocol from the
-+Bluetooth standard. In addition to the H4 protocol it specifies two more
-+UART status lines for wakeup of UART transceivers to improve power management
-+and a few new packet types used to negotiate uart speed.
-+
-+Required properties:
-+
-+ - compatible: should contain "nokia,h4p-bluetooth" as well as one of the following:
-+ * "brcm,bcm2048-nokia"
-+ * "ti,wl1271-bluetooth-nokia"
-+ - reset-gpios: GPIO specifier, used to reset the BT module (active low)
-+ - bluetooth-wakeup-gpios: GPIO specifier, used to wakeup the BT module (active high)
-+ - host-wakeup-gpios: GPIO specifier, used to wakeup the host processor (active high)
-+ - clock-names: should be "sysclk"
-+ - clocks: should contain a clock specifier for every name in clock-names
-+
-+Optional properties:
-+
-+ - None
-+
-+Example:
-+
-+/ {
-+ /* controlled (enabled/disabled) directly by BT module */
-+ bluetooth_clk: vctcxo {
-+ compatible = "fixed-clock";
-+ #clock-cells = <0>;
-+ clock-frequency = <38400000>;
-+ };
-+};
-+
-+&uart2 {
-+ pinctrl-names = "default";
-+ pinctrl-0 = <&uart2_pins>;
-+
-+ bluetooth {
-+ compatible = "ti,wl1271-bluetooth-nokia", "nokia,h4p-bluetooth";
-+
-+ reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; /* gpio26 */
-+ host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */
-+ bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* gpio37 */
-+
-+ clocks = <&bluetooth_clk>;
-+ clock-names = "sysclk";
-+ };
-+};
---
-2.12.2
-
-From 90753299ed56ee7c5807c09b2185094a91a2cbbe Mon Sep 17 00:00:00 2001
-From: Sebastian Reichel <sre@kernel.org>
-Date: Tue, 28 Mar 2017 17:59:39 +0200
-Subject: [PATCH 09/13] Bluetooth: add nokia driver
-
-This adds a driver for the Nokia H4+ protocol, which is used
-at least on the Nokia N9, N900 & N950.
-
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-Signed-off-by: Rob Herring <robh@kernel.org>
----
- drivers/bluetooth/Kconfig | 12 +
- drivers/bluetooth/Makefile | 2 +
- drivers/bluetooth/hci_nokia.c | 819 ++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 833 insertions(+)
- create mode 100644 drivers/bluetooth/hci_nokia.c
-
-diff --git a/drivers/bluetooth/Kconfig b/drivers/bluetooth/Kconfig
-index 08e054507d0b..479e2eacd1aa 100644
---- a/drivers/bluetooth/Kconfig
-+++ b/drivers/bluetooth/Kconfig
-@@ -86,6 +86,18 @@ config BT_HCIUART_H4
-
- Say Y here to compile support for HCI UART (H4) protocol.
-
-+config BT_HCIUART_NOKIA
-+ tristate "UART Nokia H4+ protocol support"
-+ depends on BT_HCIUART
-+ depends on SERIAL_DEV_BUS
-+ depends on PM
-+ help
-+ Nokia H4+ is serial protocol for communication between Bluetooth
-+ device and host. This protocol is required for Bluetooth devices
-+ with UART interface in Nokia devices.
-+
-+ Say Y here to compile support for Nokia's H4+ protocol.
-+
- config BT_HCIUART_BCSP
- bool "BCSP protocol support"
- depends on BT_HCIUART
-diff --git a/drivers/bluetooth/Makefile b/drivers/bluetooth/Makefile
-index fd571689eed6..a7f237320f4b 100644
---- a/drivers/bluetooth/Makefile
-+++ b/drivers/bluetooth/Makefile
-@@ -25,6 +25,8 @@ obj-$(CONFIG_BT_BCM) += btbcm.o
- obj-$(CONFIG_BT_RTL) += btrtl.o
- obj-$(CONFIG_BT_QCA) += btqca.o
-
-+obj-$(CONFIG_BT_HCIUART_NOKIA) += hci_nokia.o
-+
- btmrvl-y := btmrvl_main.o
- btmrvl-$(CONFIG_DEBUG_FS) += btmrvl_debugfs.o
-
-diff --git a/drivers/bluetooth/hci_nokia.c b/drivers/bluetooth/hci_nokia.c
-new file mode 100644
-index 000000000000..c77f04af01bf
---- /dev/null
-+++ b/drivers/bluetooth/hci_nokia.c
-@@ -0,0 +1,819 @@
-+/*
-+ * Bluetooth HCI UART H4 driver with Nokia Extensions AKA Nokia H4+
-+ *
-+ * Copyright (C) 2015 Marcel Holtmann <marcel@holtmann.org>
-+ * Copyright (C) 2015-2017 Sebastian Reichel <sre@kernel.org>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * 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.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/clk.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/interrupt.h>
-+#include <linux/pm_runtime.h>
-+#include <linux/firmware.h>
-+#include <linux/slab.h>
-+#include <linux/string.h>
-+#include <linux/errno.h>
-+#include <linux/skbuff.h>
-+#include <linux/gpio/consumer.h>
-+#include <linux/unaligned/le_struct.h>
-+#include <net/bluetooth/bluetooth.h>
-+#include <net/bluetooth/hci_core.h>
-+#include <linux/serdev.h>
-+
-+#include "hci_uart.h"
-+#include "btbcm.h"
-+
-+#define NOKIA_ID_BCM2048 0x04
-+#define NOKIA_ID_TI1271 0x31
-+
-+#define FIRMWARE_BCM2048 "nokia/bcmfw.bin"
-+#define FIRMWARE_TI1271 "nokia/ti1273.bin"
-+
-+#define HCI_NOKIA_NEG_PKT 0x06
-+#define HCI_NOKIA_ALIVE_PKT 0x07
-+#define HCI_NOKIA_RADIO_PKT 0x08
-+
-+#define HCI_NOKIA_NEG_HDR_SIZE 1
-+#define HCI_NOKIA_MAX_NEG_SIZE 255
-+#define HCI_NOKIA_ALIVE_HDR_SIZE 1
-+#define HCI_NOKIA_MAX_ALIVE_SIZE 255
-+#define HCI_NOKIA_RADIO_HDR_SIZE 2
-+#define HCI_NOKIA_MAX_RADIO_SIZE 255
-+
-+#define NOKIA_PROTO_PKT 0x44
-+#define NOKIA_PROTO_BYTE 0x4c
-+
-+#define NOKIA_NEG_REQ 0x00
-+#define NOKIA_NEG_ACK 0x20
-+#define NOKIA_NEG_NAK 0x40
-+
-+#define H4_TYPE_SIZE 1
-+
-+#define NOKIA_RECV_ALIVE \
-+ .type = HCI_NOKIA_ALIVE_PKT, \
-+ .hlen = HCI_NOKIA_ALIVE_HDR_SIZE, \
-+ .loff = 0, \
-+ .lsize = 1, \
-+ .maxlen = HCI_NOKIA_MAX_ALIVE_SIZE \
-+
-+#define NOKIA_RECV_NEG \
-+ .type = HCI_NOKIA_NEG_PKT, \
-+ .hlen = HCI_NOKIA_NEG_HDR_SIZE, \
-+ .loff = 0, \
-+ .lsize = 1, \
-+ .maxlen = HCI_NOKIA_MAX_NEG_SIZE \
-+
-+#define NOKIA_RECV_RADIO \
-+ .type = HCI_NOKIA_RADIO_PKT, \
-+ .hlen = HCI_NOKIA_RADIO_HDR_SIZE, \
-+ .loff = 1, \
-+ .lsize = 1, \
-+ .maxlen = HCI_NOKIA_MAX_RADIO_SIZE \
-+
-+struct hci_nokia_neg_hdr {
-+ u8 dlen;
-+} __packed;
-+
-+struct hci_nokia_neg_cmd {
-+ u8 ack;
-+ u16 baud;
-+ u16 unused1;
-+ u8 proto;
-+ u16 sys_clk;
-+ u16 unused2;
-+} __packed;
-+
-+#define NOKIA_ALIVE_REQ 0x55
-+#define NOKIA_ALIVE_RESP 0xcc
-+
-+struct hci_nokia_alive_hdr {
-+ u8 dlen;
-+} __packed;
-+
-+struct hci_nokia_alive_pkt {
-+ u8 mid;
-+ u8 unused;
-+} __packed;
-+
-+struct hci_nokia_neg_evt {
-+ u8 ack;
-+ u16 baud;
-+ u16 unused1;
-+ u8 proto;
-+ u16 sys_clk;
-+ u16 unused2;
-+ u8 man_id;
-+ u8 ver_id;
-+} __packed;
-+
-+#define MAX_BAUD_RATE 3692300
-+#define SETUP_BAUD_RATE 921600
-+#define INIT_BAUD_RATE 120000
-+
-+struct hci_nokia_radio_hdr {
-+ u8 evt;
-+ u8 dlen;
-+} __packed;
-+
-+struct nokia_bt_dev {
-+ struct hci_uart hu;
-+ struct serdev_device *serdev;
-+
-+ struct gpio_desc *reset;
-+ struct gpio_desc *wakeup_host;
-+ struct gpio_desc *wakeup_bt;
-+ unsigned long sysclk_speed;
-+
-+ int wake_irq;
-+ struct sk_buff *rx_skb;
-+ struct sk_buff_head txq;
-+ bdaddr_t bdaddr;
-+
-+ int init_error;
-+ struct completion init_completion;
-+
-+ u8 man_id;
-+ u8 ver_id;
-+
-+ bool initialized;
-+ bool tx_enabled;
-+ bool rx_enabled;
-+};
-+
-+static int nokia_enqueue(struct hci_uart *hu, struct sk_buff *skb);
-+
-+static void nokia_flow_control(struct serdev_device *serdev, bool enable)
-+{
-+ if (enable) {
-+ serdev_device_set_rts(serdev, true);
-+ serdev_device_set_flow_control(serdev, true);
-+ } else {
-+ serdev_device_set_flow_control(serdev, false);
-+ serdev_device_set_rts(serdev, false);
-+ }
-+}
-+
-+static irqreturn_t wakeup_handler(int irq, void *data)
-+{
-+ struct nokia_bt_dev *btdev = data;
-+ struct device *dev = &btdev->serdev->dev;
-+ int wake_state = gpiod_get_value(btdev->wakeup_host);
-+
-+ if (btdev->rx_enabled == wake_state)
-+ return IRQ_HANDLED;
-+
-+ if (wake_state)
-+ pm_runtime_get(dev);
-+ else
-+ pm_runtime_put(dev);
-+
-+ btdev->rx_enabled = wake_state;
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static int nokia_reset(struct hci_uart *hu)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+ int err;
-+
-+ /* reset routine */
-+ gpiod_set_value_cansleep(btdev->reset, 1);
-+ gpiod_set_value_cansleep(btdev->wakeup_bt, 1);
-+
-+ msleep(100);
-+
-+ /* safety check */
-+ err = gpiod_get_value_cansleep(btdev->wakeup_host);
-+ if (err == 1) {
-+ dev_err(dev, "reset: host wakeup not low!");
-+ return -EPROTO;
-+ }
-+
-+ /* flush queue */
-+ serdev_device_write_flush(btdev->serdev);
-+
-+ /* init uart */
-+ nokia_flow_control(btdev->serdev, false);
-+ serdev_device_set_baudrate(btdev->serdev, INIT_BAUD_RATE);
-+
-+ gpiod_set_value_cansleep(btdev->reset, 0);
-+
-+ /* wait for cts */
-+ err = serdev_device_wait_for_cts(btdev->serdev, true, 200);
-+ if (err < 0) {
-+ dev_err(dev, "CTS not received: %d", err);
-+ return err;
-+ }
-+
-+ nokia_flow_control(btdev->serdev, true);
-+
-+ return 0;
-+}
-+
-+static int nokia_send_alive_packet(struct hci_uart *hu)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+ struct hci_nokia_alive_hdr *hdr;
-+ struct hci_nokia_alive_pkt *pkt;
-+ struct sk_buff *skb;
-+ int len;
-+
-+ init_completion(&btdev->init_completion);
-+
-+ len = H4_TYPE_SIZE + sizeof(*hdr) + sizeof(*pkt);
-+ skb = bt_skb_alloc(len, GFP_KERNEL);
-+ if (!skb)
-+ return -ENOMEM;
-+
-+ hci_skb_pkt_type(skb) = HCI_NOKIA_ALIVE_PKT;
-+ memset(skb->data, 0x00, len);
-+
-+ hdr = (struct hci_nokia_alive_hdr *)skb_put(skb, sizeof(*hdr));
-+ hdr->dlen = sizeof(*pkt);
-+ pkt = (struct hci_nokia_alive_pkt *)skb_put(skb, sizeof(*pkt));
-+ pkt->mid = NOKIA_ALIVE_REQ;
-+
-+ nokia_enqueue(hu, skb);
-+ hci_uart_tx_wakeup(hu);
-+
-+ dev_dbg(dev, "Alive sent");
-+
-+ if (!wait_for_completion_interruptible_timeout(&btdev->init_completion,
-+ msecs_to_jiffies(1000))) {
-+ return -ETIMEDOUT;
-+ }
-+
-+ if (btdev->init_error < 0)
-+ return btdev->init_error;
-+
-+ return 0;
-+}
-+
-+static int nokia_send_negotiation(struct hci_uart *hu)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+ struct hci_nokia_neg_cmd *neg_cmd;
-+ struct hci_nokia_neg_hdr *neg_hdr;
-+ struct sk_buff *skb;
-+ int len, err;
-+ u16 baud = DIV_ROUND_CLOSEST(btdev->sysclk_speed * 10, SETUP_BAUD_RATE);
-+ int sysclk = btdev->sysclk_speed / 1000;
-+
-+ len = H4_TYPE_SIZE + sizeof(*neg_hdr) + sizeof(*neg_cmd);
-+ skb = bt_skb_alloc(len, GFP_KERNEL);
-+ if (!skb)
-+ return -ENOMEM;
-+
-+ hci_skb_pkt_type(skb) = HCI_NOKIA_NEG_PKT;
-+
-+ neg_hdr = (struct hci_nokia_neg_hdr *)skb_put(skb, sizeof(*neg_hdr));
-+ neg_hdr->dlen = sizeof(*neg_cmd);
-+
-+ neg_cmd = (struct hci_nokia_neg_cmd *)skb_put(skb, sizeof(*neg_cmd));
-+ neg_cmd->ack = NOKIA_NEG_REQ;
-+ neg_cmd->baud = cpu_to_le16(baud);
-+ neg_cmd->unused1 = 0x0000;
-+ neg_cmd->proto = NOKIA_PROTO_BYTE;
-+ neg_cmd->sys_clk = cpu_to_le16(sysclk);
-+ neg_cmd->unused2 = 0x0000;
-+
-+ btdev->init_error = 0;
-+ init_completion(&btdev->init_completion);
-+
-+ nokia_enqueue(hu, skb);
-+ hci_uart_tx_wakeup(hu);
-+
-+ dev_dbg(dev, "Negotiation sent");
-+
-+ if (!wait_for_completion_interruptible_timeout(&btdev->init_completion,
-+ msecs_to_jiffies(10000))) {
-+ return -ETIMEDOUT;
-+ }
-+
-+ if (btdev->init_error < 0)
-+ return btdev->init_error;
-+
-+ /* Change to previously negotiated speed. Flow Control
-+ * is disabled until bluetooth adapter is ready to avoid
-+ * broken bytes being received.
-+ */
-+ nokia_flow_control(btdev->serdev, false);
-+ serdev_device_set_baudrate(btdev->serdev, SETUP_BAUD_RATE);
-+ err = serdev_device_wait_for_cts(btdev->serdev, true, 200);
-+ if (err < 0) {
-+ dev_err(dev, "CTS not received: %d", err);
-+ return err;
-+ }
-+ nokia_flow_control(btdev->serdev, true);
-+
-+ dev_dbg(dev, "Negotiation successful");
-+
-+ return 0;
-+}
-+
-+static int nokia_setup_fw(struct hci_uart *hu)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+ const char *fwname;
-+ const struct firmware *fw;
-+ const u8 *fw_ptr;
-+ size_t fw_size;
-+ int err;
-+
-+ dev_dbg(dev, "setup firmware");
-+
-+ if (btdev->man_id == NOKIA_ID_BCM2048) {
-+ fwname = FIRMWARE_BCM2048;
-+ } else if (btdev->man_id == NOKIA_ID_TI1271) {
-+ fwname = FIRMWARE_TI1271;
-+ } else {
-+ dev_err(dev, "Unsupported bluetooth device!");
-+ return -ENODEV;
-+ }
-+
-+ err = request_firmware(&fw, fwname, dev);
-+ if (err < 0) {
-+ dev_err(dev, "%s: Failed to load Nokia firmware file (%d)",
-+ hu->hdev->name, err);
-+ return err;
-+ }
-+
-+ fw_ptr = fw->data;
-+ fw_size = fw->size;
-+
-+ while (fw_size >= 4) {
-+ u16 pkt_size = get_unaligned_le16(fw_ptr);
-+ u8 pkt_type = fw_ptr[2];
-+ const struct hci_command_hdr *cmd;
-+ u16 opcode;
-+ struct sk_buff *skb;
-+
-+ switch (pkt_type) {
-+ case HCI_COMMAND_PKT:
-+ cmd = (struct hci_command_hdr *)(fw_ptr + 3);
-+ opcode = le16_to_cpu(cmd->opcode);
-+
-+ skb = __hci_cmd_sync(hu->hdev, opcode, cmd->plen,
-+ fw_ptr + 3 + HCI_COMMAND_HDR_SIZE,
-+ HCI_INIT_TIMEOUT);
-+ if (IS_ERR(skb)) {
-+ err = PTR_ERR(skb);
-+ dev_err(dev, "%s: FW command %04x failed (%d)",
-+ hu->hdev->name, opcode, err);
-+ goto done;
-+ }
-+ kfree_skb(skb);
-+ break;
-+ case HCI_NOKIA_RADIO_PKT:
-+ case HCI_NOKIA_NEG_PKT:
-+ case HCI_NOKIA_ALIVE_PKT:
-+ break;
-+ }
-+
-+ fw_ptr += pkt_size + 2;
-+ fw_size -= pkt_size + 2;
-+ }
-+
-+done:
-+ release_firmware(fw);
-+ return err;
-+}
-+
-+static int nokia_setup(struct hci_uart *hu)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+ int err;
-+
-+ btdev->initialized = false;
-+
-+ nokia_flow_control(btdev->serdev, false);
-+
-+ pm_runtime_get_sync(dev);
-+
-+ if (btdev->tx_enabled) {
-+ gpiod_set_value_cansleep(btdev->wakeup_bt, 0);
-+ pm_runtime_put(&btdev->serdev->dev);
-+ btdev->tx_enabled = false;
-+ }
-+
-+ dev_dbg(dev, "protocol setup");
-+
-+ /* 0. reset connection */
-+ err = nokia_reset(hu);
-+ if (err < 0) {
-+ dev_err(dev, "Reset failed: %d", err);
-+ goto out;
-+ }
-+
-+ /* 1. negotiate speed etc */
-+ err = nokia_send_negotiation(hu);
-+ if (err < 0) {
-+ dev_err(dev, "Negotiation failed: %d", err);
-+ goto out;
-+ }
-+
-+ /* 2. verify correct setup using alive packet */
-+ err = nokia_send_alive_packet(hu);
-+ if (err < 0) {
-+ dev_err(dev, "Alive check failed: %d", err);
-+ goto out;
-+ }
-+
-+ /* 3. send firmware */
-+ err = nokia_setup_fw(hu);
-+ if (err < 0) {
-+ dev_err(dev, "Could not setup FW: %d", err);
-+ goto out;
-+ }
-+
-+ nokia_flow_control(btdev->serdev, false);
-+ serdev_device_set_baudrate(btdev->serdev, MAX_BAUD_RATE);
-+ nokia_flow_control(btdev->serdev, true);
-+
-+ if (btdev->man_id == NOKIA_ID_BCM2048) {
-+ hu->hdev->set_bdaddr = btbcm_set_bdaddr;
-+ set_bit(HCI_QUIRK_INVALID_BDADDR, &hu->hdev->quirks);
-+ dev_dbg(dev, "bcm2048 has invalid bluetooth address!");
-+ }
-+
-+ dev_dbg(dev, "protocol setup done!");
-+
-+ gpiod_set_value_cansleep(btdev->wakeup_bt, 0);
-+ pm_runtime_put(dev);
-+ btdev->tx_enabled = false;
-+ btdev->initialized = true;
-+
-+ return 0;
-+out:
-+ pm_runtime_put(dev);
-+
-+ return err;
-+}
-+
-+static int nokia_open(struct hci_uart *hu)
-+{
-+ struct device *dev = &hu->serdev->dev;
-+
-+ dev_dbg(dev, "protocol open");
-+
-+ serdev_device_open(hu->serdev);
-+
-+ pm_runtime_enable(dev);
-+
-+ return 0;
-+}
-+
-+static int nokia_flush(struct hci_uart *hu)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+
-+ dev_dbg(&btdev->serdev->dev, "flush device");
-+
-+ skb_queue_purge(&btdev->txq);
-+
-+ return 0;
-+}
-+
-+static int nokia_close(struct hci_uart *hu)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+
-+ dev_dbg(dev, "close device");
-+
-+ btdev->initialized = false;
-+
-+ skb_queue_purge(&btdev->txq);
-+
-+ kfree_skb(btdev->rx_skb);
-+
-+ /* disable module */
-+ gpiod_set_value(btdev->reset, 1);
-+ gpiod_set_value(btdev->wakeup_bt, 0);
-+
-+ pm_runtime_disable(&btdev->serdev->dev);
-+ serdev_device_close(btdev->serdev);
-+
-+ return 0;
-+}
-+
-+/* Enqueue frame for transmittion (padding, crc, etc) */
-+static int nokia_enqueue(struct hci_uart *hu, struct sk_buff *skb)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ int err;
-+
-+ /* Prepend skb with frame type */
-+ memcpy(skb_push(skb, 1), &bt_cb(skb)->pkt_type, 1);
-+
-+ /* Packets must be word aligned */
-+ if (skb->len % 2) {
-+ err = skb_pad(skb, 1);
-+ if (err)
-+ return err;
-+ *skb_put(skb, 1) = 0x00;
-+ }
-+
-+ skb_queue_tail(&btdev->txq, skb);
-+
-+ return 0;
-+}
-+
-+static int nokia_recv_negotiation_packet(struct hci_dev *hdev,
-+ struct sk_buff *skb)
-+{
-+ struct hci_uart *hu = hci_get_drvdata(hdev);
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+ struct hci_nokia_neg_hdr *hdr;
-+ struct hci_nokia_neg_evt *evt;
-+ int ret = 0;
-+
-+ hdr = (struct hci_nokia_neg_hdr *)skb->data;
-+ if (hdr->dlen != sizeof(*evt)) {
-+ btdev->init_error = -EIO;
-+ ret = -EIO;
-+ goto finish_neg;
-+ }
-+
-+ evt = (struct hci_nokia_neg_evt *)skb_pull(skb, sizeof(*hdr));
-+
-+ if (evt->ack != NOKIA_NEG_ACK) {
-+ dev_err(dev, "Negotiation received: wrong reply");
-+ btdev->init_error = -EINVAL;
-+ ret = -EINVAL;
-+ goto finish_neg;
-+ }
-+
-+ btdev->man_id = evt->man_id;
-+ btdev->ver_id = evt->ver_id;
-+
-+ dev_dbg(dev, "Negotiation received: baud=%u:clk=%u:manu=%u:vers=%u",
-+ evt->baud, evt->sys_clk, evt->man_id, evt->ver_id);
-+
-+finish_neg:
-+ complete(&btdev->init_completion);
-+ kfree_skb(skb);
-+ return ret;
-+}
-+
-+static int nokia_recv_alive_packet(struct hci_dev *hdev, struct sk_buff *skb)
-+{
-+ struct hci_uart *hu = hci_get_drvdata(hdev);
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+ struct hci_nokia_alive_hdr *hdr;
-+ struct hci_nokia_alive_pkt *pkt;
-+ int ret = 0;
-+
-+ hdr = (struct hci_nokia_alive_hdr *)skb->data;
-+ if (hdr->dlen != sizeof(*pkt)) {
-+ dev_err(dev, "Corrupted alive message");
-+ btdev->init_error = -EIO;
-+ ret = -EIO;
-+ goto finish_alive;
-+ }
-+
-+ pkt = (struct hci_nokia_alive_pkt *)skb_pull(skb, sizeof(*hdr));
-+
-+ if (pkt->mid != NOKIA_ALIVE_RESP) {
-+ dev_err(dev, "Alive received: invalid response: 0x%02x!",
-+ pkt->mid);
-+ btdev->init_error = -EINVAL;
-+ ret = -EINVAL;
-+ goto finish_alive;
-+ }
-+
-+ dev_dbg(dev, "Alive received");
-+
-+finish_alive:
-+ complete(&btdev->init_completion);
-+ kfree_skb(skb);
-+ return ret;
-+}
-+
-+static int nokia_recv_radio(struct hci_dev *hdev, struct sk_buff *skb)
-+{
-+ /* Packets received on the dedicated radio channel are
-+ * HCI events and so feed them back into the core.
-+ */
-+ hci_skb_pkt_type(skb) = HCI_EVENT_PKT;
-+ return hci_recv_frame(hdev, skb);
-+}
-+
-+/* Recv data */
-+static const struct h4_recv_pkt nokia_recv_pkts[] = {
-+ { H4_RECV_ACL, .recv = hci_recv_frame },
-+ { H4_RECV_SCO, .recv = hci_recv_frame },
-+ { H4_RECV_EVENT, .recv = hci_recv_frame },
-+ { NOKIA_RECV_ALIVE, .recv = nokia_recv_alive_packet },
-+ { NOKIA_RECV_NEG, .recv = nokia_recv_negotiation_packet },
-+ { NOKIA_RECV_RADIO, .recv = nokia_recv_radio },
-+};
-+
-+static int nokia_recv(struct hci_uart *hu, const void *data, int count)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+ int err;
-+
-+ if (!test_bit(HCI_UART_REGISTERED, &hu->flags))
-+ return -EUNATCH;
-+
-+ btdev->rx_skb = h4_recv_buf(hu->hdev, btdev->rx_skb, data, count,
-+ nokia_recv_pkts, ARRAY_SIZE(nokia_recv_pkts));
-+ if (IS_ERR(btdev->rx_skb)) {
-+ err = PTR_ERR(btdev->rx_skb);
-+ dev_err(dev, "Frame reassembly failed (%d)", err);
-+ btdev->rx_skb = NULL;
-+ return err;
-+ }
-+
-+ return count;
-+}
-+
-+static struct sk_buff *nokia_dequeue(struct hci_uart *hu)
-+{
-+ struct nokia_bt_dev *btdev = hu->priv;
-+ struct device *dev = &btdev->serdev->dev;
-+ struct sk_buff *result = skb_dequeue(&btdev->txq);
-+
-+ if (!btdev->initialized)
-+ return result;
-+
-+ if (btdev->tx_enabled == !!result)
-+ return result;
-+
-+ if (result) {
-+ pm_runtime_get_sync(dev);
-+ gpiod_set_value_cansleep(btdev->wakeup_bt, 1);
-+ } else {
-+ serdev_device_wait_until_sent(btdev->serdev, 0);
-+ gpiod_set_value_cansleep(btdev->wakeup_bt, 0);
-+ pm_runtime_put(dev);
-+ }
-+
-+ btdev->tx_enabled = !!result;
-+
-+ return result;
-+}
-+
-+static const struct hci_uart_proto nokia_proto = {
-+ .id = HCI_UART_NOKIA,
-+ .name = "Nokia",
-+ .open = nokia_open,
-+ .close = nokia_close,
-+ .recv = nokia_recv,
-+ .enqueue = nokia_enqueue,
-+ .dequeue = nokia_dequeue,
-+ .flush = nokia_flush,
-+ .setup = nokia_setup,
-+ .manufacturer = 1,
-+};
-+
-+static int nokia_bluetooth_serdev_probe(struct serdev_device *serdev)
-+{
-+ struct device *dev = &serdev->dev;
-+ struct nokia_bt_dev *btdev;
-+ struct clk *sysclk;
-+ int err = 0;
-+
-+ btdev = devm_kzalloc(dev, sizeof(*btdev), GFP_KERNEL);
-+ if (!btdev)
-+ return -ENOMEM;
-+
-+ btdev->hu.serdev = btdev->serdev = serdev;
-+ serdev_device_set_drvdata(serdev, btdev);
-+
-+ btdev->reset = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH);
-+ if (IS_ERR(btdev->reset)) {
-+ err = PTR_ERR(btdev->reset);
-+ dev_err(dev, "could not get reset gpio: %d", err);
-+ return err;
-+ }
-+
-+ btdev->wakeup_host = devm_gpiod_get(dev, "host-wakeup", GPIOD_IN);
-+ if (IS_ERR(btdev->wakeup_host)) {
-+ err = PTR_ERR(btdev->wakeup_host);
-+ dev_err(dev, "could not get host wakeup gpio: %d", err);
-+ return err;
-+ }
-+
-+ btdev->wake_irq = gpiod_to_irq(btdev->wakeup_host);
-+
-+ err = devm_request_threaded_irq(dev, btdev->wake_irq, NULL,
-+ wakeup_handler,
-+ IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
-+ "wakeup", btdev);
-+ if (err) {
-+ dev_err(dev, "could request wakeup irq: %d", err);
-+ return err;
-+ }
-+
-+ btdev->wakeup_bt = devm_gpiod_get(dev, "bluetooth-wakeup",
-+ GPIOD_OUT_LOW);
-+ if (IS_ERR(btdev->wakeup_bt)) {
-+ err = PTR_ERR(btdev->wakeup_bt);
-+ dev_err(dev, "could not get BT wakeup gpio: %d", err);
-+ return err;
-+ }
-+
-+ sysclk = devm_clk_get(dev, "sysclk");
-+ if (IS_ERR(sysclk)) {
-+ err = PTR_ERR(sysclk);
-+ dev_err(dev, "could not get sysclk: %d", err);
-+ return err;
-+ }
-+
-+ clk_prepare_enable(sysclk);
-+ btdev->sysclk_speed = clk_get_rate(sysclk);
-+ clk_disable_unprepare(sysclk);
-+
-+ skb_queue_head_init(&btdev->txq);
-+
-+ btdev->hu.priv = btdev;
-+ btdev->hu.alignment = 2; /* Nokia H4+ is word aligned */
-+
-+ err = hci_uart_register_device(&btdev->hu, &nokia_proto);
-+ if (err) {
-+ dev_err(dev, "could not register bluetooth uart: %d", err);
-+ return err;
-+ }
-+
-+ return 0;
-+}
-+
-+static void nokia_bluetooth_serdev_remove(struct serdev_device *serdev)
-+{
-+ struct nokia_bt_dev *btdev = serdev_device_get_drvdata(serdev);
-+ struct hci_uart *hu = &btdev->hu;
-+ struct hci_dev *hdev = hu->hdev;
-+
-+ cancel_work_sync(&hu->write_work);
-+
-+ hci_unregister_dev(hdev);
-+ hci_free_dev(hdev);
-+ hu->proto->close(hu);
-+
-+ pm_runtime_disable(&btdev->serdev->dev);
-+}
-+
-+static int nokia_bluetooth_runtime_suspend(struct device *dev)
-+{
-+ struct serdev_device *serdev = to_serdev_device(dev);
-+
-+ nokia_flow_control(serdev, false);
-+ return 0;
-+}
-+
-+static int nokia_bluetooth_runtime_resume(struct device *dev)
-+{
-+ struct serdev_device *serdev = to_serdev_device(dev);
-+
-+ nokia_flow_control(serdev, true);
-+ return 0;
-+}
-+
-+static const struct dev_pm_ops nokia_bluetooth_pm_ops = {
-+ SET_RUNTIME_PM_OPS(nokia_bluetooth_runtime_suspend,
-+ nokia_bluetooth_runtime_resume,
-+ NULL)
-+};
-+
-+#ifdef CONFIG_OF
-+static const struct of_device_id nokia_bluetooth_of_match[] = {
-+ { .compatible = "nokia,h4p-bluetooth", },
-+ {},
-+};
-+MODULE_DEVICE_TABLE(of, nokia_bluetooth_of_match);
-+#endif
-+
-+static struct serdev_device_driver nokia_bluetooth_serdev_driver = {
-+ .probe = nokia_bluetooth_serdev_probe,
-+ .remove = nokia_bluetooth_serdev_remove,
-+ .driver = {
-+ .name = "nokia-bluetooth",
-+ .pm = &nokia_bluetooth_pm_ops,
-+ .of_match_table = of_match_ptr(nokia_bluetooth_of_match),
-+ },
-+};
-+
-+module_serdev_device_driver(nokia_bluetooth_serdev_driver);
---
-2.12.2
-
-From 5593378d18f2487bdce87a687b4263c9626510cb Mon Sep 17 00:00:00 2001
-From: Rob Herring <robh@kernel.org>
-Date: Wed, 5 Apr 2017 12:10:13 -0500
-Subject: [PATCH 10/13] dt-bindings: net: Add TI WiLink shared transport
- binding
-
-Add serial slave device binding for the TI WiLink series of Bluetooth/FM/GPS
-devices.
-
-Signed-off-by: Rob Herring <robh@kernel.org>
-Cc: Mark Rutland <mark.rutland@arm.com>
-Cc: netdev@vger.kernel.org
-Cc: devicetree@vger.kernel.org
----
- .../devicetree/bindings/net/ti,wilink-st.txt | 35 ++++++++++++++++++++++
- 1 file changed, 35 insertions(+)
- create mode 100644 Documentation/devicetree/bindings/net/ti,wilink-st.txt
-
-diff --git a/Documentation/devicetree/bindings/net/ti,wilink-st.txt b/Documentation/devicetree/bindings/net/ti,wilink-st.txt
-new file mode 100644
-index 000000000000..cbad73a84ac4
---- /dev/null
-+++ b/Documentation/devicetree/bindings/net/ti,wilink-st.txt
-@@ -0,0 +1,35 @@
-+TI WiLink 7/8 (wl12xx/wl18xx) Shared Transport BT/FM/GPS devices
-+
-+TI WiLink devices have a UART interface for providing Bluetooth, FM radio,
-+and GPS over what's called "shared transport". The shared transport is
-+standard BT HCI protocol with additional channels for the other functions.
-+
-+These devices also have a separate WiFi interface as described in
-+wireless/ti,wlcore.txt.
-+
-+This bindings follows the UART slave device binding in
-+../serial/slave-device.txt.
-+
-+Required properties:
-+ - compatible: should be one of the following:
-+ "ti,wl1271-st"
-+ "ti,wl1273-st"
-+ "ti,wl1831-st"
-+ "ti,wl1835-st"
-+ "ti,wl1837-st"
-+
-+Optional properties:
-+ - enable-gpios : GPIO signal controlling enabling of BT. Active high.
-+ - vio-supply : Vio input supply (1.8V)
-+ - vbat-supply : Vbat input supply (2.9-4.8V)
-+
-+Example:
-+
-+&serial0 {
-+ compatible = "ns16550a";
-+ ...
-+ bluetooth {
-+ compatible = "ti,wl1835-st";
-+ enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
-+ };
-+};
---
-2.12.2
-
-From d22a4564d1b8e1eeb7c442171cedcc3ae809cfff Mon Sep 17 00:00:00 2001
-From: Rob Herring <robh@kernel.org>
-Date: Tue, 17 Jan 2017 09:58:10 -0600
-Subject: [PATCH 11/13] bluetooth: hci_uart: remove unused hci_uart_init_tty
-
-There are no users of hci_uart_init_tty, so remove it.
-
-Signed-off-by: Rob Herring <robh@kernel.org>
-Cc: Marcel Holtmann <marcel@holtmann.org>
-Cc: Gustavo Padovan <gustavo@padovan.org>
-Cc: Johan Hedberg <johan.hedberg@gmail.com>
-Cc: linux-bluetooth@vger.kernel.org
----
- drivers/bluetooth/hci_ldisc.c | 19 -------------------
- drivers/bluetooth/hci_uart.h | 1 -
- 2 files changed, 20 deletions(-)
-
-diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
-index 17bcbc13623f..cec4438ede01 100644
---- a/drivers/bluetooth/hci_ldisc.c
-+++ b/drivers/bluetooth/hci_ldisc.c
-@@ -319,25 +319,6 @@ void hci_uart_set_speeds(struct hci_uart *hu, unsigned int init_speed,
- hu->oper_speed = oper_speed;
- }
-
--void hci_uart_init_tty(struct hci_uart *hu)
--{
-- struct tty_struct *tty = hu->tty;
-- struct ktermios ktermios;
--
-- /* Bring the UART into a known 8 bits no parity hw fc state */
-- ktermios = tty->termios;
-- ktermios.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP |
-- INLCR | IGNCR | ICRNL | IXON);
-- ktermios.c_oflag &= ~OPOST;
-- ktermios.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
-- ktermios.c_cflag &= ~(CSIZE | PARENB);
-- ktermios.c_cflag |= CS8;
-- ktermios.c_cflag |= CRTSCTS;
--
-- /* tty_set_termios() return not checked as it is always 0 */
-- tty_set_termios(tty, &ktermios);
--}
--
- void hci_uart_set_baudrate(struct hci_uart *hu, unsigned int speed)
- {
- struct tty_struct *tty = hu->tty;
-diff --git a/drivers/bluetooth/hci_uart.h b/drivers/bluetooth/hci_uart.h
-index 1b41c661bbb8..2b05e557fad0 100644
---- a/drivers/bluetooth/hci_uart.h
-+++ b/drivers/bluetooth/hci_uart.h
-@@ -114,7 +114,6 @@ int hci_uart_register_device(struct hci_uart *hu, const struct hci_uart_proto *p
-
- int hci_uart_tx_wakeup(struct hci_uart *hu);
- int hci_uart_init_ready(struct hci_uart *hu);
--void hci_uart_init_tty(struct hci_uart *hu);
- void hci_uart_set_baudrate(struct hci_uart *hu, unsigned int speed);
- void hci_uart_set_flow_control(struct hci_uart *hu, bool enable);
- void hci_uart_set_speeds(struct hci_uart *hu, unsigned int init_speed,
---
-2.12.2
-
-From 4664fe8eb293288c1fba2ebc50ac50131f6125cf Mon Sep 17 00:00:00 2001
-From: Rob Herring <robh@kernel.org>
-Date: Wed, 18 Jan 2017 11:41:25 -0600
-Subject: [PATCH 12/13] bluetooth: hci_uart: add LL protocol serdev driver
- support
-
-Turns out that the LL protocol and the TI-ST are the same thing AFAICT.
-The TI-ST adds firmware loading, GPIO control, and shared access for
-NFC, FM radio, etc. For now, we're only implementing what is needed for
-BT. This mirrors other drivers like BCM and Intel, but uses the new
-serdev bus.
-
-The firmware loading is greatly simplified by using existing
-infrastructure to send commands. It may be a bit slower than the
-original code using synchronous functions, but the real bottleneck is
-likely doing firmware load at 115.2kbps.
-
-Signed-off-by: Rob Herring <robh@kernel.org>
-Cc: Marcel Holtmann <marcel@holtmann.org>
-Cc: Gustavo Padovan <gustavo@padovan.org>
-Cc: Johan Hedberg <johan.hedberg@gmail.com>
-Cc: linux-bluetooth@vger.kernel.org
----
- drivers/bluetooth/hci_ll.c | 261 ++++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 260 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/bluetooth/hci_ll.c b/drivers/bluetooth/hci_ll.c
-index 02692fe30279..9b2054f5502d 100644
---- a/drivers/bluetooth/hci_ll.c
-+++ b/drivers/bluetooth/hci_ll.c
-@@ -34,20 +34,23 @@
- #include <linux/sched.h>
- #include <linux/types.h>
- #include <linux/fcntl.h>
-+#include <linux/firmware.h>
- #include <linux/interrupt.h>
- #include <linux/ptrace.h>
- #include <linux/poll.h>
-
- #include <linux/slab.h>
--#include <linux/tty.h>
- #include <linux/errno.h>
- #include <linux/string.h>
- #include <linux/signal.h>
- #include <linux/ioctl.h>
-+#include <linux/serdev.h>
- #include <linux/skbuff.h>
-+#include <linux/ti_wilink_st.h>
-
- #include <net/bluetooth/bluetooth.h>
- #include <net/bluetooth/hci_core.h>
-+#include <linux/gpio/consumer.h>
-
- #include "hci_uart.h"
-
-@@ -76,6 +79,12 @@ struct hcill_cmd {
- u8 cmd;
- } __packed;
-
-+struct ll_device {
-+ struct hci_uart hu;
-+ struct serdev_device *serdev;
-+ struct gpio_desc *enable_gpio;
-+};
-+
- struct ll_struct {
- unsigned long rx_state;
- unsigned long rx_count;
-@@ -136,6 +145,9 @@ static int ll_open(struct hci_uart *hu)
-
- hu->priv = ll;
-
-+ if (hu->serdev)
-+ serdev_device_open(hu->serdev);
-+
- return 0;
- }
-
-@@ -164,6 +176,13 @@ static int ll_close(struct hci_uart *hu)
-
- kfree_skb(ll->rx_skb);
-
-+ if (hu->serdev) {
-+ struct ll_device *lldev = serdev_device_get_drvdata(hu->serdev);
-+ gpiod_set_value_cansleep(lldev->enable_gpio, 0);
-+
-+ serdev_device_close(hu->serdev);
-+ }
-+
- hu->priv = NULL;
-
- kfree(ll);
-@@ -505,9 +524,245 @@ static struct sk_buff *ll_dequeue(struct hci_uart *hu)
- return skb_dequeue(&ll->txq);
- }
-
-+#ifdef CONFIG_SERIAL_DEV_BUS
-+static int read_local_version(struct hci_dev *hdev)
-+{
-+ int err = 0;
-+ unsigned short version = 0;
-+ struct sk_buff *skb;
-+ struct hci_rp_read_local_version *ver;
-+
-+ skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL, HCI_INIT_TIMEOUT);
-+ if (IS_ERR(skb)) {
-+ bt_dev_err(hdev, "Reading TI version information failed (%ld)",
-+ PTR_ERR(skb));
-+ err = PTR_ERR(skb);
-+ goto out;
-+ }
-+ if (skb->len != sizeof(*ver)) {
-+ err = -EILSEQ;
-+ goto out;
-+ }
-+
-+ ver = (struct hci_rp_read_local_version *)skb->data;
-+ if (le16_to_cpu(ver->manufacturer) != 13) {
-+ err = -ENODEV;
-+ goto out;
-+ }
-+
-+ version = le16_to_cpu(ver->lmp_subver);
-+
-+out:
-+ if (err) bt_dev_err(hdev, "Failed to read TI version info: %d", err);
-+ kfree_skb(skb);
-+ return err ? err : version;
-+}
-+
-+/**
-+ * download_firmware -
-+ * internal function which parses through the .bts firmware
-+ * script file intreprets SEND, DELAY actions only as of now
-+ */
-+static int download_firmware(struct ll_device *lldev)
-+{
-+ unsigned short chip, min_ver, maj_ver;
-+ int version, err, len;
-+ unsigned char *ptr, *action_ptr;
-+ unsigned char bts_scr_name[40]; /* 40 char long bts scr name? */
-+ const struct firmware *fw;
-+ struct sk_buff *skb;
-+ struct hci_command *cmd;
-+
-+ version = read_local_version(lldev->hu.hdev);
-+ if (version < 0)
-+ return version;
-+
-+ chip = (version & 0x7C00) >> 10;
-+ min_ver = (version & 0x007F);
-+ maj_ver = (version & 0x0380) >> 7;
-+ if (version & 0x8000)
-+ maj_ver |= 0x0008;
-+
-+ snprintf(bts_scr_name, sizeof(bts_scr_name),
-+ "ti-connectivity/TIInit_%d.%d.%d.bts",
-+ chip, maj_ver, min_ver);
-+
-+ err = request_firmware(&fw, bts_scr_name, &lldev->serdev->dev);
-+ if (err || !fw->data || !fw->size) {
-+ bt_dev_err(lldev->hu.hdev, "request_firmware failed(errno %d) for %s",
-+ err, bts_scr_name);
-+ return -EINVAL;
-+ }
-+ ptr = (void *)fw->data;
-+ len = fw->size;
-+ /* bts_header to remove out magic number and
-+ * version
-+ */
-+ ptr += sizeof(struct bts_header);
-+ len -= sizeof(struct bts_header);
-+
-+ while (len > 0 && ptr) {
-+ bt_dev_dbg(lldev->hu.hdev, " action size %d, type %d ",
-+ ((struct bts_action *)ptr)->size,
-+ ((struct bts_action *)ptr)->type);
-+
-+ action_ptr = &(((struct bts_action *)ptr)->data[0]);
-+
-+ switch (((struct bts_action *)ptr)->type) {
-+ case ACTION_SEND_COMMAND: /* action send */
-+ bt_dev_dbg(lldev->hu.hdev, "S");
-+ cmd = (struct hci_command *)action_ptr;
-+ if (cmd->opcode == 0xff36) {
-+ /* ignore remote change
-+ * baud rate HCI VS command */
-+ bt_dev_warn(lldev->hu.hdev, "change remote baud rate command in firmware");
-+ break;
-+ }
-+ if (cmd->prefix != 1)
-+ bt_dev_dbg(lldev->hu.hdev, "command type %d\n", cmd->prefix);
-+
-+ skb = __hci_cmd_sync(lldev->hu.hdev, cmd->opcode, cmd->plen, &cmd->speed, HCI_INIT_TIMEOUT);
-+ if (IS_ERR(skb)) {
-+ bt_dev_err(lldev->hu.hdev, "send command failed\n");
-+ goto out_rel_fw;
-+ }
-+ kfree_skb(skb);
-+ break;
-+ case ACTION_WAIT_EVENT: /* wait */
-+ /* no need to wait as command was synchronous */
-+ bt_dev_dbg(lldev->hu.hdev, "W");
-+ break;
-+ case ACTION_DELAY: /* sleep */
-+ bt_dev_info(lldev->hu.hdev, "sleep command in scr");
-+ mdelay(((struct bts_action_delay *)action_ptr)->msec);
-+ break;
-+ }
-+ len -= (sizeof(struct bts_action) +
-+ ((struct bts_action *)ptr)->size);
-+ ptr += sizeof(struct bts_action) +
-+ ((struct bts_action *)ptr)->size;
-+ }
-+
-+out_rel_fw:
-+ /* fw download complete */
-+ release_firmware(fw);
-+ return err;
-+}
-+
-+static int ll_setup(struct hci_uart *hu)
-+{
-+ int err, retry = 3;
-+ struct ll_device *lldev;
-+ struct serdev_device *serdev = hu->serdev;
-+ u32 speed;
-+
-+ if (!serdev)
-+ return 0;
-+
-+ lldev = serdev_device_get_drvdata(serdev);
-+
-+ serdev_device_set_flow_control(serdev, true);
-+
-+ do {
-+ /* Configure BT_EN to HIGH state */
-+ gpiod_set_value_cansleep(lldev->enable_gpio, 0);
-+ msleep(5);
-+ gpiod_set_value_cansleep(lldev->enable_gpio, 1);
-+ msleep(100);
-+
-+ err = download_firmware(lldev);
-+ if (!err)
-+ break;
-+
-+ /* Toggle BT_EN and retry */
-+ bt_dev_err(hu->hdev, "download firmware failed, retrying...");
-+ } while (retry--);
-+
-+ if (err)
-+ return err;
-+
-+ /* Operational speed if any */
-+ if (hu->oper_speed)
-+ speed = hu->oper_speed;
-+ else if (hu->proto->oper_speed)
-+ speed = hu->proto->oper_speed;
-+ else
-+ speed = 0;
-+
-+ if (speed) {
-+ struct sk_buff *skb = __hci_cmd_sync(hu->hdev, 0xff36, sizeof(speed), &speed, HCI_INIT_TIMEOUT);
-+ if (!IS_ERR(skb)) {
-+ kfree_skb(skb);
-+ serdev_device_set_baudrate(serdev, speed);
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+static const struct hci_uart_proto llp;
-+
-+static int hci_ti_probe(struct serdev_device *serdev)
-+{
-+ struct hci_uart *hu;
-+ struct ll_device *lldev;
-+ u32 max_speed = 3000000;
-+
-+ lldev = devm_kzalloc(&serdev->dev, sizeof(struct ll_device), GFP_KERNEL);
-+ if (!lldev)
-+ return -ENOMEM;
-+ hu = &lldev->hu;
-+
-+ serdev_device_set_drvdata(serdev, lldev);
-+ lldev->serdev = hu->serdev = serdev;
-+
-+ lldev->enable_gpio = devm_gpiod_get_optional(&serdev->dev, "enable", GPIOD_OUT_LOW);
-+ if (IS_ERR(lldev->enable_gpio))
-+ return PTR_ERR(lldev->enable_gpio);
-+
-+ of_property_read_u32(serdev->dev.of_node, "max-speed", &max_speed);
-+ hci_uart_set_speeds(hu, 115200, max_speed);
-+
-+ return hci_uart_register_device(hu, &llp);
-+}
-+
-+static void hci_ti_remove(struct serdev_device *serdev)
-+{
-+ struct ll_device *lldev = serdev_device_get_drvdata(serdev);
-+ struct hci_uart *hu = &lldev->hu;
-+ struct hci_dev *hdev = hu->hdev;
-+
-+ cancel_work_sync(&hu->write_work);
-+
-+ hci_unregister_dev(hdev);
-+ hci_free_dev(hdev);
-+ hu->proto->close(hu);
-+}
-+
-+static const struct of_device_id hci_ti_of_match[] = {
-+ { .compatible = "ti,wl1831-st" },
-+ { .compatible = "ti,wl1835-st" },
-+ { .compatible = "ti,wl1837-st" },
-+ {},
-+};
-+MODULE_DEVICE_TABLE(of, hci_ti_of_match);
-+
-+static struct serdev_device_driver hci_ti_drv = {
-+ .driver = {
-+ .name = "hci-ti",
-+ .of_match_table = of_match_ptr(hci_ti_of_match),
-+ },
-+ .probe = hci_ti_probe,
-+ .remove = hci_ti_remove,
-+};
-+#else
-+#define ll_setup NULL
-+#endif
-+
- static const struct hci_uart_proto llp = {
- .id = HCI_UART_LL,
- .name = "LL",
-+ .setup = ll_setup,
- .open = ll_open,
- .close = ll_close,
- .recv = ll_recv,
-@@ -518,10 +773,14 @@ static const struct hci_uart_proto llp = {
-
- int __init ll_init(void)
- {
-+ serdev_device_driver_register(&hci_ti_drv);
-+
- return hci_uart_register_proto(&llp);
- }
-
- int __exit ll_deinit(void)
- {
-+ serdev_device_driver_unregister(&hci_ti_drv);
-+
- return hci_uart_unregister_proto(&llp);
- }
---
-2.12.2
-
-From 33bbcaa7b1a4639a5e149e725a674324e7487b17 Mon Sep 17 00:00:00 2001
-From: Rob Herring <robh@kernel.org>
-Date: Mon, 21 Nov 2016 15:21:56 -0600
-Subject: [PATCH 13/13] arm64: dts: hikey: add WL1835 Bluetooth device node
-
-This adds the serial slave device for the WL1835 Bluetooth interface.
-
-Signed-off-by: Rob Herring <robh@kernel.org>
-Cc: Wei Xu <xuwei5@hisilicon.com>
-Cc: Mark Rutland <mark.rutland@arm.com>
----
- arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-index dba3c131c62c..9b4ba7169210 100644
---- a/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-+++ b/arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
-@@ -98,6 +98,11 @@
- assigned-clocks = <&sys_ctrl HI6220_UART1_SRC>;
- assigned-clock-rates = <150000000>;
- status = "ok";
-+
-+ bluetooth {
-+ compatible = "ti,wl1835-st";
-+ enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
-+ };
- };
-
- uart2: uart@f7112000 {
---
-2.12.2
-
diff --git a/vc4-fix-vblank-cursor-update-issue.patch b/vc4-fix-vblank-cursor-update-issue.patch
deleted file mode 100644
index 8537d67ca..000000000
--- a/vc4-fix-vblank-cursor-update-issue.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 6d24c1c5918907ab78a5729b78c0d165deb3cc2b Mon Sep 17 00:00:00 2001
-From: Michael Zoran <mzoran@crowfest.net>
-Date: Thu, 23 Feb 2017 17:54:31 -0800
-Subject: drm/vc4: Don't wait for vblank when updating the cursor
-
-Commonly used desktop environments such as xfce4 and gnome
-on debian sid can flood the graphics drivers with cursor
-updates. Because the current implementation is waiting
-for a vblank between cursor updates, this will cause the
-display to hang for a long time since a typical refresh
-rate is only 60Hz.
-
-This is unnecessary and unexpected by user mode software,
-so simply swap out the cursor frame buffer without waiting.
-
-Signed-off-by: Michael Zoran <mzoran@crowfest.net>
-Reviewed-by: Eric Anholt <eric@anholt.net>
-Link: http://patchwork.freedesktop.org/patch/msgid/20170224015431.24583-1-mzoran@crowfest.net
-
-diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
-index f7a229d..110224c 100644
---- a/drivers/gpu/drm/vc4/vc4_plane.c
-+++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -20,6 +20,7 @@
-
- #include "vc4_drv.h"
- #include "vc4_regs.h"
-+#include "drm_atomic.h"
- #include "drm_atomic_helper.h"
- #include "drm_fb_cma_helper.h"
- #include "drm_plane_helper.h"
-@@ -769,12 +770,6 @@ vc4_update_plane(struct drm_plane *plane,
- if (!plane_state)
- goto out;
-
-- /* If we're changing the cursor contents, do that in the
-- * normal vblank-synced atomic path.
-- */
-- if (fb != plane_state->fb)
-- goto out;
--
- /* No configuring new scaling in the fast path. */
- if (crtc_w != plane_state->crtc_w ||
- crtc_h != plane_state->crtc_h ||
-@@ -783,6 +778,11 @@ vc4_update_plane(struct drm_plane *plane,
- goto out;
- }
-
-+ if (fb != plane_state->fb) {
-+ drm_atomic_set_fb_for_plane(plane->state, fb);
-+ vc4_plane_async_set_fb(plane, fb);
-+ }
-+
- /* Set the cursor's position on the screen. This is the
- * expected change from the drm_mode_cursor_universal()
- * helper.
---
-cgit v0.10.2
-
diff --git a/vc4-tformat-fixes.patch b/vc4-tformat-fixes.patch
deleted file mode 100644
index 4941fb92f..000000000
--- a/vc4-tformat-fixes.patch
+++ /dev/null
@@ -1,428 +0,0 @@
-From ac4e55169649132123c4f2f39e0b02b5c849bae8 Mon Sep 17 00:00:00 2001
-From: Peter Robinson <pbrobinson@gmail.com>
-Date: Mon, 19 Jun 2017 13:20:48 +0100
-Subject: [PATCH] drm/vc4: Add T-format scanout support
-
-The T tiling format is what V3D uses for textures, with no raster
-support at all until later revisions of the hardware (and always at a
-large 3D performance penalty). If we can't scan out V3D's format,
-then we often need to do a relayout at some stage of the pipeline,
-either right before texturing from the scanout buffer (common in X11
-without a compositor) or between a tiled screen buffer right before
-scanout (an option I've considered in trying to resolve this
-inconsistency, but which means needing to use the dirty fb ioctl and
-having some update policy).
-
-T-format scanout lets us avoid either of those shadow copies, for a
-massive, obvious performance improvement to X11 window dragging
-without a compositor. Unfortunately, enabling a compositor to work
-around the discrepancy has turned out to be too costly in memory
-consumption for the Raspbian distribution.
-
-Because the HVS operates a scanline at a time, compositing from T does
-increase the memory bandwidth cost of scanout. On my 1920x1080@32bpp
-display on a RPi3, we go from about 15% of system memory bandwidth
-with linear to about 20% with tiled. However, for X11 this still ends
-up being a huge performance win in active usage.
-
-This patch doesn't yet handle src_x/src_y offsetting within the tiled
-buffer. However, we fail to do so for untiled buffers already.
-
-drm/vc4: Add get/set tiling ioctls.
-
-This allows mesa to set the tiling format for a BO and have that
-tiling format be respected by mesa on the other side of an
-import/export (and by vc4 scanout in the kernel), without defining a
-protocol to pass the tiling through userspace.
-
-Signed-off-by: Eric Anholt <eric@anholt.net>
-Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
-Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
----
- drivers/gpu/drm/vc4/vc4_bo.c | 83 +++++++++++++++++++++++++++++++++++++++++
- drivers/gpu/drm/vc4/vc4_drv.c | 2 +
- drivers/gpu/drm/vc4/vc4_drv.h | 6 +++
- drivers/gpu/drm/vc4/vc4_kms.c | 41 +++++++++++++++++++-
- drivers/gpu/drm/vc4/vc4_plane.c | 31 +++++++++++++--
- drivers/gpu/drm/vc4/vc4_regs.h | 19 ++++++++++
- include/uapi/drm/drm_fourcc.h | 22 +++++++++++
- include/uapi/drm/vc4_drm.h | 16 ++++++++
- 8 files changed, 215 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
-index 3f6704cf6608..0918346c248e 100644
---- a/drivers/gpu/drm/vc4/vc4_bo.c
-+++ b/drivers/gpu/drm/vc4/vc4_bo.c
-@@ -325,6 +325,7 @@ void vc4_free_object(struct drm_gem_object *gem_bo)
- bo->validated_shader = NULL;
- }
-
-+ bo->t_format = false;
- bo->free_time = jiffies;
- list_add(&bo->size_head, cache_list);
- list_add(&bo->unref_head, &vc4->bo_cache.time_list);
-@@ -525,6 +526,88 @@ vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data,
- return ret;
- }
-
-+/**
-+ * vc4_set_tiling_ioctl() - Sets the tiling modifier for a BO.
-+ * @dev: DRM device
-+ * @data: ioctl argument
-+ * @file_priv: DRM file for this fd
-+ *
-+ * The tiling state of the BO decides the default modifier of an fb if
-+ * no specific modifier was set by userspace, and the return value of
-+ * vc4_get_tiling_ioctl() (so that userspace can treat a BO it
-+ * received from dmabuf as the same tiling format as the producer
-+ * used).
-+ */
-+int vc4_set_tiling_ioctl(struct drm_device *dev, void *data,
-+ struct drm_file *file_priv)
-+{
-+ struct drm_vc4_set_tiling *args = data;
-+ struct drm_gem_object *gem_obj;
-+ struct vc4_bo *bo;
-+ bool t_format;
-+
-+ if (args->flags != 0)
-+ return -EINVAL;
-+
-+ switch (args->modifier) {
-+ case DRM_FORMAT_MOD_NONE:
-+ t_format = false;
-+ break;
-+ case DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED:
-+ t_format = true;
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+
-+ gem_obj = drm_gem_object_lookup(file_priv, args->handle);
-+ if (!gem_obj) {
-+ DRM_ERROR("Failed to look up GEM BO %d\n", args->handle);
-+ return -ENOENT;
-+ }
-+ bo = to_vc4_bo(gem_obj);
-+ bo->t_format = t_format;
-+
-+ drm_gem_object_unreference_unlocked(gem_obj);
-+
-+ return 0;
-+}
-+
-+/**
-+ * vc4_get_tiling_ioctl() - Gets the tiling modifier for a BO.
-+ * @dev: DRM device
-+ * @data: ioctl argument
-+ * @file_priv: DRM file for this fd
-+ *
-+ * Returns the tiling modifier for a BO as set by vc4_set_tiling_ioctl().
-+ */
-+int vc4_get_tiling_ioctl(struct drm_device *dev, void *data,
-+ struct drm_file *file_priv)
-+{
-+ struct drm_vc4_get_tiling *args = data;
-+ struct drm_gem_object *gem_obj;
-+ struct vc4_bo *bo;
-+
-+ if (args->flags != 0 || args->modifier != 0)
-+ return -EINVAL;
-+
-+ gem_obj = drm_gem_object_lookup(file_priv, args->handle);
-+ if (!gem_obj) {
-+ DRM_ERROR("Failed to look up GEM BO %d\n", args->handle);
-+ return -ENOENT;
-+ }
-+ bo = to_vc4_bo(gem_obj);
-+
-+ if (bo->t_format)
-+ args->modifier = DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED;
-+ else
-+ args->modifier = DRM_FORMAT_MOD_NONE;
-+
-+ drm_gem_object_unreference_unlocked(gem_obj);
-+
-+ return 0;
-+}
-+
- void vc4_bo_cache_init(struct drm_device *dev)
- {
- struct vc4_dev *vc4 = to_vc4_dev(dev);
-diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c
-index a459745e96f7..2edf2d4c5156 100644
---- a/drivers/gpu/drm/vc4/vc4_drv.c
-+++ b/drivers/gpu/drm/vc4/vc4_drv.c
-@@ -122,6 +122,8 @@ static const struct drm_ioctl_desc vc4_drm_ioctls[] = {
- DRM_IOCTL_DEF_DRV(VC4_GET_HANG_STATE, vc4_get_hang_state_ioctl,
- DRM_ROOT_ONLY),
- DRM_IOCTL_DEF_DRV(VC4_GET_PARAM, vc4_get_param_ioctl, DRM_RENDER_ALLOW),
-+ DRM_IOCTL_DEF_DRV(VC4_SET_TILING, vc4_set_tiling_ioctl, DRM_RENDER_ALLOW),
-+ DRM_IOCTL_DEF_DRV(VC4_GET_TILING, vc4_get_tiling_ioctl, DRM_RENDER_ALLOW),
- };
-
- static struct drm_driver vc4_drm_driver = {
-diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
-index 0e59f3ee1b83..64f0cb1f889e 100644
---- a/drivers/gpu/drm/vc4/vc4_drv.h
-+++ b/drivers/gpu/drm/vc4/vc4_drv.h
-@@ -135,6 +135,8 @@ struct vc4_bo {
- */
- uint64_t write_seqno;
-
-+ bool t_format;
-+
- /* List entry for the BO's position in either
- * vc4_exec_info->unref_list or vc4_dev->bo_cache.time_list
- */
-@@ -433,6 +435,10 @@ int vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
- int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
-+int vc4_set_tiling_ioctl(struct drm_device *dev, void *data,
-+ struct drm_file *file_priv);
-+int vc4_get_tiling_ioctl(struct drm_device *dev, void *data,
-+ struct drm_file *file_priv);
- int vc4_get_hang_state_ioctl(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
- int vc4_mmap(struct file *filp, struct vm_area_struct *vma);
-diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
-index ad7925a9e0ea..25be60016527 100644
---- a/drivers/gpu/drm/vc4/vc4_kms.c
-+++ b/drivers/gpu/drm/vc4/vc4_kms.c
-@@ -202,11 +202,50 @@ static int vc4_atomic_commit(struct drm_device *dev,
- return 0;
- }
-
-+static struct drm_framebuffer *vc4_fb_create(struct drm_device *dev,
-+ struct drm_file *file_priv,
-+ const struct drm_mode_fb_cmd2 *mode_cmd)
-+{
-+ struct drm_mode_fb_cmd2 mode_cmd_local;
-+
-+ /* If the user didn't specify a modifier, use the
-+ * vc4_set_tiling_ioctl() state for the BO.
-+ */
-+ if (!(mode_cmd->flags & DRM_MODE_FB_MODIFIERS)) {
-+ struct drm_gem_object *gem_obj;
-+ struct vc4_bo *bo;
-+
-+ gem_obj = drm_gem_object_lookup(file_priv,
-+ mode_cmd->handles[0]);
-+ if (!gem_obj) {
-+ DRM_ERROR("Failed to look up GEM BO %d\n",
-+ mode_cmd->handles[0]);
-+ return ERR_PTR(-ENOENT);
-+ }
-+ bo = to_vc4_bo(gem_obj);
-+
-+ mode_cmd_local = *mode_cmd;
-+
-+ if (bo->t_format) {
-+ mode_cmd_local.modifier[0] =
-+ DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED;
-+ } else {
-+ mode_cmd_local.modifier[0] = DRM_FORMAT_MOD_NONE;
-+ }
-+
-+ drm_gem_object_unreference_unlocked(gem_obj);
-+
-+ mode_cmd = &mode_cmd_local;
-+ }
-+
-+ return drm_fb_cma_create(dev, file_priv, mode_cmd);
-+}
-+
- static const struct drm_mode_config_funcs vc4_mode_funcs = {
- .output_poll_changed = vc4_output_poll_changed,
- .atomic_check = drm_atomic_helper_check,
- .atomic_commit = vc4_atomic_commit,
-- .fb_create = drm_fb_cma_create,
-+ .fb_create = vc4_fb_create,
- };
-
- int vc4_kms_load(struct drm_device *dev)
-diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c
-index f7a229df572d..99f4d4b48015 100644
---- a/drivers/gpu/drm/vc4/vc4_plane.c
-+++ b/drivers/gpu/drm/vc4/vc4_plane.c
-@@ -498,8 +498,8 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
- u32 ctl0_offset = vc4_state->dlist_count;
- const struct hvs_format *format = vc4_get_hvs_format(fb->format->format);
- int num_planes = drm_format_num_planes(format->drm);
-- u32 scl0, scl1;
-- u32 lbm_size;
-+ u32 scl0, scl1, pitch0;
-+ u32 lbm_size, tiling;
- unsigned long irqflags;
- int ret, i;
-
-@@ -540,11 +540,31 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
- scl1 = vc4_get_scl_field(state, 0);
- }
-
-+ switch (fb->modifier) {
-+ case DRM_FORMAT_MOD_LINEAR:
-+ tiling = SCALER_CTL0_TILING_LINEAR;
-+ pitch0 = VC4_SET_FIELD(fb->pitches[0], SCALER_SRC_PITCH);
-+ break;
-+ case DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED:
-+ tiling = SCALER_CTL0_TILING_256B_OR_T;
-+
-+ pitch0 = (VC4_SET_FIELD(0, SCALER_PITCH0_TILE_Y_OFFSET),
-+ VC4_SET_FIELD(0, SCALER_PITCH0_TILE_WIDTH_L),
-+ VC4_SET_FIELD((vc4_state->src_w[0] + 31) >> 5,
-+ SCALER_PITCH0_TILE_WIDTH_R));
-+ break;
-+ default:
-+ DRM_DEBUG_KMS("Unsupported FB tiling flag 0x%16llx",
-+ (long long)fb->modifier);
-+ return -EINVAL;
-+ }
-+
- /* Control word */
- vc4_dlist_write(vc4_state,
- SCALER_CTL0_VALID |
- (format->pixel_order << SCALER_CTL0_ORDER_SHIFT) |
- (format->hvs << SCALER_CTL0_PIXEL_FORMAT_SHIFT) |
-+ VC4_SET_FIELD(tiling, SCALER_CTL0_TILING) |
- (vc4_state->is_unity ? SCALER_CTL0_UNITY : 0) |
- VC4_SET_FIELD(scl0, SCALER_CTL0_SCL0) |
- VC4_SET_FIELD(scl1, SCALER_CTL0_SCL1));
-@@ -598,8 +618,11 @@ static int vc4_plane_mode_set(struct drm_plane *plane,
- for (i = 0; i < num_planes; i++)
- vc4_dlist_write(vc4_state, 0xc0c0c0c0);
-
-- /* Pitch word 0/1/2 */
-- for (i = 0; i < num_planes; i++) {
-+ /* Pitch word 0 */
-+ vc4_dlist_write(vc4_state, pitch0);
-+
-+ /* Pitch word 1/2 */
-+ for (i = 1; i < num_planes; i++) {
- vc4_dlist_write(vc4_state,
- VC4_SET_FIELD(fb->pitches[i], SCALER_SRC_PITCH));
- }
-diff --git a/drivers/gpu/drm/vc4/vc4_regs.h b/drivers/gpu/drm/vc4/vc4_regs.h
-index 385405a2df05..362d8b7f8a5f 100644
---- a/drivers/gpu/drm/vc4/vc4_regs.h
-+++ b/drivers/gpu/drm/vc4/vc4_regs.h
-@@ -604,6 +604,13 @@ enum hvs_pixel_format {
- #define SCALER_CTL0_SIZE_MASK VC4_MASK(29, 24)
- #define SCALER_CTL0_SIZE_SHIFT 24
-
-+#define SCALER_CTL0_TILING_MASK VC4_MASK(21, 20)
-+#define SCALER_CTL0_TILING_SHIFT 20
-+#define SCALER_CTL0_TILING_LINEAR 0
-+#define SCALER_CTL0_TILING_64B 1
-+#define SCALER_CTL0_TILING_128B 2
-+#define SCALER_CTL0_TILING_256B_OR_T 3
-+
- #define SCALER_CTL0_HFLIP BIT(16)
- #define SCALER_CTL0_VFLIP BIT(15)
-
-@@ -733,7 +740,19 @@ enum hvs_pixel_format {
- #define SCALER_PPF_KERNEL_OFFSET_SHIFT 0
- #define SCALER_PPF_KERNEL_UNCACHED BIT(31)
-
-+/* PITCH0/1/2 fields for raster. */
- #define SCALER_SRC_PITCH_MASK VC4_MASK(15, 0)
- #define SCALER_SRC_PITCH_SHIFT 0
-
-+/* PITCH0 fields for T-tiled. */
-+#define SCALER_PITCH0_TILE_WIDTH_L_MASK VC4_MASK(22, 16)
-+#define SCALER_PITCH0_TILE_WIDTH_L_SHIFT 16
-+#define SCALER_PITCH0_TILE_LINE_DIR BIT(15)
-+#define SCALER_PITCH0_TILE_INITIAL_LINE_DIR BIT(14)
-+/* Y offset within a tile. */
-+#define SCALER_PITCH0_TILE_Y_OFFSET_MASK VC4_MASK(13, 7)
-+#define SCALER_PITCH0_TILE_Y_OFFSET_SHIFT 7
-+#define SCALER_PITCH0_TILE_WIDTH_R_MASK VC4_MASK(6, 0)
-+#define SCALER_PITCH0_TILE_WIDTH_R_SHIFT 0
-+
- #endif /* VC4_REGS_H */
-diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
-index ef20abb8119b..9aaf633788a7 100644
---- a/include/uapi/drm/drm_fourcc.h
-+++ b/include/uapi/drm/drm_fourcc.h
-@@ -168,6 +168,7 @@ extern "C" {
- #define DRM_FORMAT_MOD_VENDOR_SAMSUNG 0x04
- #define DRM_FORMAT_MOD_VENDOR_QCOM 0x05
- #define DRM_FORMAT_MOD_VENDOR_VIVANTE 0x06
-+#define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07
- /* add more to the end as needed */
-
- #define fourcc_mod_code(vendor, val) \
-@@ -292,6 +293,27 @@ extern "C" {
- */
- #define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4)
-
-+/*
-+ * Broadcom VC4 "T" format
-+ *
-+ * This is the primary layout that the V3D GPU can texture from (it
-+ * can't do linear). The T format has:
-+ *
-+ * - 64b utiles of pixels in a raster-order grid according to cpp. It's 4x4
-+ * pixels at 32 bit depth.
-+ *
-+ * - 1k subtiles made of a 4x4 raster-order grid of 64b utiles (so usually
-+ * 16x16 pixels).
-+ *
-+ * - 4k tiles made of a 2x2 grid of 1k subtiles (so usually 32x32 pixels). On
-+ * even 4k tile rows, they're arranged as (BL, TL, TR, BR), and on odd rows
-+ * they're (TR, BR, BL, TL), where bottom left is start of memory.
-+ *
-+ * - an image made of 4k tiles in rows either left-to-right (even rows of 4k
-+ * tiles) or right-to-left (odd rows of 4k tiles).
-+ */
-+#define DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED fourcc_mod_code(BROADCOM, 1)
-+
- #if defined(__cplusplus)
- }
- #endif
-diff --git a/include/uapi/drm/vc4_drm.h b/include/uapi/drm/vc4_drm.h
-index f07a09016726..6ac4c5c014cb 100644
---- a/include/uapi/drm/vc4_drm.h
-+++ b/include/uapi/drm/vc4_drm.h
-@@ -38,6 +38,8 @@ extern "C" {
- #define DRM_VC4_CREATE_SHADER_BO 0x05
- #define DRM_VC4_GET_HANG_STATE 0x06
- #define DRM_VC4_GET_PARAM 0x07
-+#define DRM_VC4_SET_TILING 0x08
-+#define DRM_VC4_GET_TILING 0x09
-
- #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl)
- #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno)
-@@ -47,6 +49,8 @@ extern "C" {
- #define DRM_IOCTL_VC4_CREATE_SHADER_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_CREATE_SHADER_BO, struct drm_vc4_create_shader_bo)
- #define DRM_IOCTL_VC4_GET_HANG_STATE DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_HANG_STATE, struct drm_vc4_get_hang_state)
- #define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param)
-+#define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling)
-+#define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling)
-
- struct drm_vc4_submit_rcl_surface {
- __u32 hindex; /* Handle index, or ~0 if not present. */
-@@ -295,6 +299,18 @@ struct drm_vc4_get_param {
- __u64 value;
- };
-
-+struct drm_vc4_get_tiling {
-+ __u32 handle;
-+ __u32 flags;
-+ __u64 modifier;
-+};
-+
-+struct drm_vc4_set_tiling {
-+ __u32 handle;
-+ __u32 flags;
-+ __u64 modifier;
-+};
-+
- #if defined(__cplusplus)
- }
- #endif
---
-2.13.0
-